Hacker News new | ask | show | jobs
by usr1106 2817 days ago
It would be interesting to understand the fundamental difference why ARM systems can even boot without a BIOS and a BIOS chip. Of course they also need to have their DRAM configured, but when compiling U-Boot I don't recall any complication like stackless code. Just that your address space is extremely small in the beginning.
1 comments

IIRC from my Embedded Linux course, ARM has a small amount of SRAM embedded in the chip that is available during boot and is later disabled in favor of the bigger DRAM chips once the controller is initialized.

Uboot is responsible for this in some chips.

Yes, ARM has this small amount of SRAM. Having a bit of memory available was such a trivial concept that I did not even think of that the much more complicated x86 processor could just lack it.

But I guess this might not be the only fundamental difference.

(I have thought to utilize the SRAM for some optimization later at system runtime because it should be incredibly fast. At least if you don't have to care about power consumption that should be possible or does the specification require to turn it off?)

Well, as the article mentions, Intel uses Cache during Boot as an early SRAM memory, difference seems to be (probably for legacy reasons) that this is not the default.

Most of the boot process is just swinging from one legacy mode to the next until you hit the modern parts.