TinyBIOS – A minimalist open-source BIOS project for fun
The main task for any BIOS is to initialize the memory controller, which for modern DDR4 or DDR5 memory is a very complex and undocumented task, so it must be done usually by a binary firmware blob provided by Intel or AMD.<p>The usual operating systems might be able to initialize the peripherals, but they expect an already working memory and a memory map provided by the BIOS.<p>After a quick browsing through the sources, it seems that this project has not progressed so far yet, even if it probes for working memory and it may be able to use the cache memory as RAM on some CPU models (as all BIOSes must do, before the memory controller is initialized).<p>Under an emulator like QEMU, a BIOS can work even if it is not able to initialize a real memory controller, but on real bare-metal hardware that has to work.