u/theldusin r/osdev • Recommends
Tiny BIOS from scratch running a serial game without RAM
118 subscribers • 1 video on Hallway
Advanced. Deep dive for people who know the field.
406 views3 years ago1 recommendation
Systems programmingHardwareOperating systemsEmbedded systems
DavidsonQWERTY demonstrates running a NIM game directly from BIOS flash memory using Cache-as-RAM before initializing system memory.
Source code: github.com/Theldus/AMI_BIOS_CodeInjection/tree/main/tools/bi… By carefully building a BIOS from scratch for this motherboard (PCWare IPM41-D3/Intel DG41WV), it becomes possible to run code without RAM. In fact, while booting a PC, it starts executing directly from the BIOS flash memory, and only later, the BIOS initialize the RAM, by talking to the chipset. However, at this stage, all the memory is read-only, so I used a feature called CAR, or Cache-as-RAM. By programming CPU-specific registers, it is possible to specify a range of memory and use it directly as if it were RAM, or rather, avoiding access to RAM. Although it seems something new, this technique has been around for a long time (possibly since the i486), but it is rarely used, although there are some projects that use it, such as Coreboot in some SoCs, and as a mitigation for cold boot attacks (see vCage ).What people say. Engineers shared this as an interesting demonstration of writing a custom BIOS bootblock to run code without RAM.
u/theldusin r/osdev • Recommends