[coreboot] Enabling 4MB window in LPC adressing space

Mart Raudsepp mart.raudsepp at artecdesign.ee
Mon May 26 13:02:07 CEST 2008

Ühel kenal päeval, E, 2008-05-26 kell 12:51, kirjutas llandre:
> >>>> However it does not work:
> >>>> a) white LED on dongle is still off
> >>> See http://coreboot.org/viewvc?view=rev&root=coreboot-v3&revision=660
> >>> and do it in a similar place
> >> Ok, thank you for your suggestion. I'll try it.
> > 
> > This particular spot enables 4MB mode in mainboard stage1, which I'd
> > think would be early enough, as it's right after the enabling of serial
> > output (and the 4MB mode LED should be lighting up). Then again, I'd
> > think that your previous spot should have been early enough as well, so
> > not sure what the issue is.
> Also when the post code logger is enabled (jumper 7-8 shorted), we see 
> on the USB virtual serial port these strings only: "x00" .
> So we suspect dongle is not getting the the I/O write operations at all.
> Any idea?

Nope, works for me. If post code logger isn't enabled, do you see other
codes than 00 on the post code segments on the dongle?

> >>>> b) coreboot prints:
> >>>>
> >>>> Before VSA:
> >> ...
> >> option ROM_SIZE=4*1024*1024-36*1024
> >>
> >> Is this correct?
> > 
> > Two questions about this:
> > 
> > 1) Why do you need a 4MB ROM? Do you have linux as a payload or what?
> Yes. I need to boot a linux kernel. At the moment I don't see any other 
> ways to do that.

The commit message of the commit that I pointed you at explains a way to
do that on the dongle with FILO payload and a 256KB or so ROM (that
includes coreboot, VSA, VGA ROM and filo). You can address the dongle
memory in FILO when 4MB mode is turned on, and you don't have to then
deal with the mess that is dealing with over 1MB at firmware stage.

> > 2) Don't you have VGA ROM added to the ROM? Your ROM_SIZE seems to
> > indicate there is no room for that, and the log seems to indicate it's
> > trying to do graphics init, which my ignorancy makes me now believe it's
> > trying to init the VGA ROM and doesn't find it. Maybe you don't have VGA
> > ROM included, but using a VSA that does the VGA init stuff which might
> > need a VGA ROM to pass? I'm not sure about these specifics, but I do
> > have to use a different VSA on coreboot-v2 and coreboot-v3, with my v2
> > code having a VGA ROM too, and v3 not - this might very well be just
> > codebase and coreboot VSA init differences, but could also be related to
> > VGA - hopefully someone who knows will chime in, I've been wondering
> > about the differences in the VSA versions for a while.
> I suspect VGA ROM is not found by coreboot because it can't access whole 
> 4MB window.

you aren't reserving any space to fit a VGA ROM in 4MB.
You have
option ROM_SIZE=4*1024*1024-36*1024
but for example upstream artecgroup/dbe61 has the following comment (in
the code we use we have the commented out version that has 32KB for VGA
ROM reserved too):

## ROM_SIZE is the total number of bytes allocated for coreboot use
## (normal AND fallback images and payloads).
## leave 36k for vsa and 32K for video ROM
#option ROM_SIZE = 1024*256 - 36*1024 - 32 * 1024

#No VGA for now
option ROM_SIZE = 1024*512 - 36*1024

There's no 32KB reserved for VGA ROM in your case either, hence why I
don't believe you are adding a VGA ROM to the end result. That might be
what you want (the VGA ROM is proprietary and has not had code released
due to that, while the VSA code without VGA ROM init bits is), but just
make sure you are using an appropriate VSA. Note that you won't be able
to see any VGA picture without the VGA ROM unless you use libpayload's
geode graphics support (coreinfo payload with libpayload configured with
geode gfx support is a great way to test if things work) or until you
reach lxfb module loading in linux kernel or native Xorg driver, which
talk to the hardware directly instead of relying on the BIOS interrupt
handlers that the VGA ROM blob provides.

Mart Raudsepp
Artec Design LLC

More information about the coreboot mailing list