Yetimwork Beyene
Yetimwork Beyene

Reputation: 249

Is address 0xFFFFFFF0 hardwired for system BIOS ROM?

I read this from a previous stack overflow answer:

At initial power on, the BIOS is executed directly from ROM. The ROM chip is mapped to a fixed location in the processor's memory space (this is typically a feature of the chipset). When the x86 processor comes out of reset, it immediately begins executing from 0xFFFFFFF0.

Follow up questions,

Is this address 0xFFFFFFF0 hardwired just to access the system BIOS ROM and later after the system is up and running this address 0xFFFFFFF0 can not be used by RAM?

Also, when this address 0xFFFFFFF0 is being us to access the system BIOS ROM, is the CPU accessing it as an IO device or Memory device?

Upvotes: 5

Views: 1540

Answers (2)

hayesti
hayesti

Reputation: 3073

It's mapped to the global memory space and is addressed in the same way. Conventionally, the RAM shouldn't be mapped to any range of addresses that are used by other devices. This is common enough. You might remember a few years ago before 64-bit operating systems became more standard on home PCs that a user could have 4 GB of physical memory installed but perhaps only 3.5 GB accessible due to the graphics card being mapped to 512 MB of the address space.

Upvotes: 0

myron-semack
myron-semack

Reputation: 6425

At power up, it is ROM. Has to be or the CPU would be unable to boot. Some chipsets have register bits that allow you to unmap the BIOS flash chip from the memory address space. Of course you should not do this while executing from ROM!

There is a common technique on PC hardware called "shadowing" where the BIOS will copy the contents of the ROM chip into RAM mapped at the same address. RAM is generally much faster than ROM, so it can speed up the system.

As for your second question, it is a memory device. It must be for the following reasons:

  1. I/O addresses are 16-bits, not 32.
  2. An x86 processors cannot execute code from I/O space. You cannot point the Instruction Pointer to an I/O address.

Upvotes: 2

Related Questions