amd64 SMP AP init corrupting the BDA? (newbie)

John Baldwin jhb at freebsd.org
Wed Jun 27 17:58:52 UTC 2007


On Friday 12 May 2006 04:28:59 am Adam Soderlund wrote:
> Hi All,
> 
>             Hope this is the right place for questions like this.  I've got
> something bad going on when booting 6.1release or 7-current amd64 SMP, the
> bios data area on my machine is getting whacked (killing usb legacy, which
> in turn causes a hang when kernel tries to take over the host
> controller(s)).    I've debugged it a little bit and here is what I see.
> when setting up to launch the APs start_all_aps() calls into pmap_kenter()
> which is writing a pte to 0x000004e0 (physical).  
> 
>  
> 
> 0x04e0 in the BDA prior to pmap_kenter(va, boot_address)
> 
> 0x0000002B
> 
> 0x04e0 in the BDA after pmap_kenter(va, boot_address)
> 
> 0x03C10900      (boot_address on the way in 0x9C000)

The pmap_kenter() should not be changing that address.  The page tables 
actually are located after the kernel itself (just after kernend) in memory, 
so pmap_kenter() isn't going to be writing to a PTE at an address that low.

-- 
John Baldwin


More information about the freebsd-amd64 mailing list