On Mon, Jul 21, 2008 at 2:27 PM, Roman Kononov <[EMAIL PROTECTED]> wrote: > Hello, > > I have this chain: coreboot v2 -> etherboot as the payload -> x86_64 kernel > 2.6.25.6. > > The kernel panics in arch/x86/e820_64.c, reserve_early() with the message: > > Overlapping early reservations f0-100ef EBDA to 0-fff BIOS data page > > reserve_early(start,end) is called from arch/x86/head64.c, reserve_ebda() > with start=0xf0 and end=0x100f0. > > The address and size of EBDA is gotten this way: > > #define EBDA_ADDR_POINTER 0x40E > ebda_addr = *(unsigned short *)__va(EBDA_ADDR_POINTER); > ebda_addr <<= 4; > ebda_size = *(unsigned short *)__va(ebda_addr); > > After the above sequence ebda_addr=0xf0 and ebda_size=0x2049 KiB; > > This all happened in a very well working system after I added the second > dual-core Opteron. > > Without the second CPU, ebda_addr=0x12010 and ebda_size=0, which combination > passes reserve_early() without overlapping. The resulting reservations are: > early res: 0 [0-fff] BIOS data page > early res: 1 [6000-7fff] SMP_TRAMPOLINE > early res: 2 [200000-75b503] TEXT DATA BSS > early res: 3 [800000-9bd8dd] RAMDISK > early res: 4 [12010-1300f] EBDA > early res: 5 [8000-cfff] PGTABLE > > How come? What is responsible to clear the memory at 0x40e? What is EBDA and > what needs it?
interesting, EBDA should be in [0x90000, 0x100000] please check with 2.6.26 YH -- coreboot mailing list [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

