Operating System in PCI option ROM
Posted: Tue May 06, 2003 11:00 pm
I'm currently developing an OS in a PCI option ROM card using a 64K flash memory. I used the BEV as my method to boot the OS. My code currently working, but I still wonder how it is executed ? my code loads (probably relocates) itself into known RAM address at boot (after the BEV invoked by system BIOS) and get executed there. The thing that is still obscured is : How the code pointed to by the BEV (BEV 'partially' explained in PnP BIOS 1.0A spec) gets executed ? does system bios copies all of the code that reside in the option ROM to RAM prior to executing it ? As a hint: I discards all my option ROM codes during post, by setting the rom size to zero (offset 02h) prior to returning to system bios, and as far as I know the Expansion ROM Base Address register is disabled after POST by the system BIOS. Then how these confusing BEV booting method really works under the hood ?