"Yinghai Lu" yinghai.lu@amd.com writes:
On 12/8/06, Eric W. Biederman ebiederm@xmission.com wrote:
Your or I missed a bug fix/enhancement in there somewhere.
I found the problem. the __set_fixmap need to __va, so the entries will be referred from PAGE_OFFSET.
solution will be
- move enable_dbgp_console from setup_early_printk, and call it from
setup_arch after init_memory_mapping. 2. or make __set_fixmap can use __pa or pa()+__START_KERNEL_map in addtion to _va.
3. Make __va always work. I had this in my tree and I guess it didn't get into my big rollup patch.
Eric
x86_64: Fix the memory mapping in the early page table
diff --git a/arch/x86_64/kernel/head.S b/arch/x86_64/kernel/head.S index 1e6f808..2f65469 100644 --- a/arch/x86_64/kernel/head.S +++ b/arch/x86_64/kernel/head.S @@ -328,9 +328,9 @@ ENTRY(wakeup_level4_pgt) .align PAGE_SIZE ENTRY(boot_level4_pgt) .quad phys_level3_ident_pgt | 0x007 - .fill 255,8,0 + .fill 257,8,0 .quad phys_level3_physmem_pgt | 0x007 - .fill 254,8,0 + .fill 252,8,0 /* (2^48-(2*1024*1024*1024))/(2^39) = 511 */ .quad phys_level3_kernel_pgt | 0x007