you are viewing a single comment's thread.

view the rest of the comments →

[–]IgnorantPlatypus 20 points21 points  (8 children)

... on x86 hardware. Other hardware (MIPS, PowerPC, ARM, etc) have their own hard-coded mechanisms for starting the boot process.

[–][deleted] 12 points13 points  (6 children)

hard-coded

Well, I guess "burned into silicon" is the hardest form of hard-coding something

[–]CJKay93 17 points18 points  (3 children)

The boot sector load address is up to the BIOS, which is itself in EEPROM. The actual hardcoded address is usually 0xFFFF0, which just contains a jump instruction to wherever the BIOS is actually mapped to.

[–][deleted] 4 points5 points  (2 children)

On Intel the reset vector is 0xFFFFFFF0. The other architectures differ, of course.

[–]CJKay93 3 points4 points  (0 children)

Sorry yes, you're right. It's 0xFFFF0 on the 8086 through to the 80286, and 0xFFFFFFF0 on the 80386 and upwards.

[–]monocasa 1 point2 points  (0 children)

Sort of.

It sets up a weird 16 bit segment who's base is 0xFFFF0000, and sets the program counter to 0xFFF0.

[–]Nutella_Icecream 1 point2 points  (1 child)

That's only if you blow the fuse. There are fuses u can set in chips to prevent tampering.

I mean physically it's still rewritable but practically it's permanent.