Skip to content
0:00 / 0:00

#bios#cache-as-ram#bootblock

NIM game running on a RAM-less computer (custom BIOS bootblock)

DavidsonQWERTY

118 subscribers • 1 video on Hallway

YouTube

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 ).

Why it's here

1 person recommends this

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

Tiny BIOS from scratch running a serial game without RAM