[coreboot] Patch merged into coreboot/master: a3b2c44 Prepare the BIOS data areas before device init.

gerrit at coreboot.org gerrit at coreboot.org
Fri Mar 30 17:52:03 CEST 2012

the following patch was just integrated into master:
commit a3b2c440baca27f9275b2e4bb7cb591c565fc08d
Author: Duncan Laurie <dlaurie at chromium.org>
Date:   Tue Jan 17 09:03:11 2012 -0800

    Prepare the BIOS data areas before device init.
    Since we do not run option roms in normal mode nothing was
    initializing the BDA/EBDA and yet Linux depends very much
    on it having sane values here.  For the most part the kernel
    tries to work around this not being initialized, but every
    once in awhile (1/300 boots or so) it would end up reading
    something that looked sane from BDA but was not and then
    it would panic.
    In this change the EBDA is unconditionally setup before devices
    are initialized.  I'm not set on the location in dev_initialize()
    but there does not seem to be another place to hook it in so
    that it runs just once for ALL platforms regardless of whether
    they use option roms or not. (possibly hardwaremain?)
    The EBDA setup code has been moved into its own location in
    arch/x86/lib/ebda.c so it can be compiled in even if the option
    rom code is not.
    The low memory size is still set to 1MB which is enough to make
    linux happy without having to hook into each mainboard to get a
    more appropriate value.  The setup_ebda() function takes inputs
    so it could be changed for a mainboard if needed.
    OLD/BROKEN would read garbage.  Examples from different boots:
    ebda_addr=0x75e80 lowmem=0x1553400
    ebda_addr=0x5e080 lowmem=0x3e51400
    ebda_addr=0x7aa80 lowmem=0x2f8a800
    NEW/FIXED now reads consistent values:
    ebda_addr=0xf6000 lowmem=0x100000
    Change-Id: I6cb79f0e3e43cc65f7e5fe98b6cad1a557ccd949
    Signed-off-by: Duncan Laurie <dlaurie at google.com>

Build-Tested: build bot (Jenkins) at Fri Mar 30 12:26:50 2012, giving +1
See http://review.coreboot.org/769 for details.


More information about the coreboot mailing list