lkml.org 
[lkml]   [2012]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [tip:x86/microcode] x86/microcode_intel_early.c: Early update ucode on Intel's CPU
    On Tue, Dec 11, 2012 at 10:57:03PM -0800, H. Peter Anvin wrote:
    > @@ -372,46 +394,21 @@ ENTRY(name)
    > i = i + 1 ; \
    > .endr
    >
    > - .data
    > - /*
    > - * This default setting generates an ident mapping at address 0x100000
    > - * and a mapping for the kernel that precisely maps virtual address
    > - * 0xffffffff80000000 to physical address 0x000000. (always using
    > - * 2Mbyte large pages provided by PAE mode)
    > - */
    > -NEXT_PAGE(init_level4_pgt)
    > - .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE

    We completely lost level3_ident_pgt, causing:

    arch/x86/built-in.o: In function `setup_real_mode':
    /home/boris/kernel/linux-2.6/arch/x86/realmode/init.c:81: undefined reference to `level3_ident_pgt'
    make: *** [vmlinux] Error 1

    > - .org init_level4_pgt + L4_PAGE_OFFSET*8, 0
    > - .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
    > - .org init_level4_pgt + L4_START_KERNEL*8, 0
    > - /* (2^48-(2*1024*1024*1024))/(2^39) = 511 */
    > + __INITDATA
    > +NEXT_PAGE(early_level4_pgt)
    > + .fill 511,8,0
    > .quad level3_kernel_pgt - __START_KERNEL_map + _PAGE_TABLE
    >
    > -NEXT_PAGE(level3_ident_pgt)
    > - .quad level2_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
    > - .fill 511,8,0
    > +NEXT_PAGE(early_dynamic_pgts)
    > + .fill 512*EARLY_DYNAMIC_PAGE_TABLES,8,0
    >
    > + .data
    > NEXT_PAGE(level3_kernel_pgt)
    > .fill L3_START_KERNEL,8,0
    > /* (2^48-(2*1024*1024*1024)-((2^39)*511))/(2^30) = 510 */
    > .quad level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
    > .quad level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
    >
    > -NEXT_PAGE(level2_fixmap_pgt)
    > - .fill 506,8,0
    > - .quad level1_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
    > - /* 8MB reserved for vsyscalls + a 2MB hole = 4 + 1 entries */
    > - .fill 5,8,0
    > -
    > -NEXT_PAGE(level1_fixmap_pgt)
    > - .fill 512,8,0

    You still need that NEXT_PAGE(level1_fixmap_pgt) thing:

    arch/x86/kernel/head_64.o: In function `level2_fixmap_pgt':
    (.data+0x2fd0): undefined reference to `level1_fixmap_pgt'

    --
    Regards/Gruss,
    Boris.

    Sent from a fat crate under my desk. Formatting is fine.
    --


    \
     
     \ /
      Last update: 2012-12-12 15:21    [W:2.402 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site