Hi,
well following the BIOS spec (i think its somewhere in the PNP BIOS spec... i have to check... ) the BIOS copies the ROM to RAM... since YABEL uses its own "virtual" memory it _has_ to copy the ROM to its RAM... also some of the cards i have used do actually modify the memory where the ROM is stored, so it has to be in the virtual RAM.
Currently, the ROM is always copied from the Expansion ROM bar of PCI devices.... i havent had to initialize any onboard devices. If there is a parameter to run_bios that points to the location of the Option ROM i could pass that parameter to YABEL and only use the Expansion ROM BAR if that parameter is not set (null?). But IIRC i still have to copy it to the virtual memory.
If it helps coreboot to know where the Option ROM image is after execution of the ROM, i guess YABEL could return the location of the ROM (the length which could be changed during execution is part of the ROM, so coreboot could figure out how much to copy back if it decides to do so.
I am thinking of buying a x86 board to do coreboot development, i am wondering which one would be a good choice with regards to YABEL and maybe SEABIOS development? Any recommendations?
My requirements:
coreboot-v3 and preferably v2 "compatible" PCI and PCIe slots since Myles mentioned onboard devices with ROM in LAR that would be very interesting too... "affordable"
I am really unsure what else to look for... Flash Chip Types? Processor?
Cheers Patty
On Fri, Dec 19, 2008 at 6:05 PM, Myles Watson mylesgw@gmail.com wrote:
-----Original Message----- From: Jordan Crouse [mailto:jordan@cosmicpenguin.net] Sent: Friday, December 19, 2008 9:48 AM To: Myles Watson Cc: Pattrick Hueper; Coreboot Subject: Re: [coreboot] YABEL and images in LAR files
Myles Watson wrote:
Patty,
For some devices, Coreboot has the ROM image in a section of the ROM.
It
copies that image to memory and passes a pointer to run_bios. Actually, right now Coreboot copies the ROMs to RAM for devices too. YABEL works
when
the ROM is accessible from the device (by ignoring the fact that
Coreboot
already copied it), but not in the case that Coreboot expects it to be
run
from RAM. Do you have any thoughts on how to handle this case?
Thanks, Myles
We don't _have_ to copy it to RAM, it just never occurred to us that it shouldn't be. However, if we leave it on the ROM, don't we hit the same issue with the shadowed memory that we did with the shared functions a
I think it needs to be copied to RAM. I was just wondering who should do that copy. YABEL doesn't have a way of knowing where to find the ROM for onboard devices that have their ROM images imbedded in a LAR file. That information isn't in the ROM BAR. That's why we pass the address to bios_run. Right now YABEL just ignores that address.
I was just trying to think of the cleanest way to handle the following cases:
- The device is an add-in card with its own ROM.
- The device is onboard and coreboot has the ROM image.
- The device is an add-in card and coreboot wants to initialize it with a
different ROM.
I know 3 is unusual, but it might be useful sometimes.
Thanks, Myles