I know that modern x86 chips start-up in 32-bit mode and begin executing code at 0xFFFFFFF0 (the last 16 bytes of a 32-bit address space). Usually, the contents of the BIOS firmware are memory-mapped to this location, similar to how an older 8086 chip would access the system's ROMs.

However, modern PC's don't have ROM chips attached directly to the processor's memory and data buses anymore. Rather, there's usually a small flash chip connected over SPI, LPC, i2c, or a similar bus to the chipset.

My question is; how is the processor able to access the ROM is if it were physical memory? Is the chipset sending out SPI/LPC read commands everytime it detects a memory access to the mapped region? Does the chipset start-up and load it's own firmware before starting the processor for this reason?

1 Answer 1


I basically only work with one x86 processor - Xeon D 1500. It's datasheet has 4 parts. If you open up part 1 and go to section 4.4 Memory Map, there's a table that says the address you mentioned targets internal LPC/SPI controller right after system start (the one that says always enabled). Section 4.4.1 mentions a tiny exception for when you want to download the main BIOS before starting to boot.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .