Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Are we talking about the same "firmware" here? If you're talking about firmware loaded directly onto the CPU (like microcode updates are), that runs even before the motherboard gets to do anything, then the mode the CPU starts in can only be observed after that point anyway, so for all we know it probably could already be implementing your idea without anyone noticing.

I have objections to changing the way the CPU observably starts (i.e. mode in which the BIOS or bootloader starts in).



I'm talking about the firmware on the motherboard. Your BIOS is CPU-specific - if a future CPU changes the default CPU mode, you simply update your BIOS code to match while you're doing the rest of the work you need to do for that BIOS to run on the new CPU. If the BIOS expects to run in real mode (I'm not aware of any modern firmware that does, but) then you just add some code to switch back to real mode. Otherwise, you probably just delete the code that currently transitions from real mode to protected mode. That doesn't preclude you switching back to real mode if the bootloader expects that.


> I'm talking about the firmware on the motherboard.

Then that's what I thought, yeah.

I don't see why you're explaining how your idea would be implemented; I'm rather saying that implementing it in that way might be prohibitive if Intel or AMD still have customers that expect the CPU to act a certain way. And these customers aren't necessarily standard desktop/laptop motherboards.

In other words, changing "what mode the CPU starts in" would be a big and observable breaking change and not necessarily just an implementation detail that can be magically worked around by firmware updates like you describe.


You usually can't take existing firmware and run it on a new CPU, because the new CPU requires different bringup code anyway. Take a look at https://github.com/coreboot/coreboot/tree/master/src/soc/int... to get some idea of how many different implementations there are for modern Intel alone (there's a bunch more for the pre-SoC style Intels). If you already have to port your firmware to a new CPU, you can deal with the CPU starting in a different mode - it is entirely an implementation detail that can be handled in the firmware.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: