It's been so long that I can't tell an e820 map from an MTRR, but this was still a fun read.
It's been so long that I can't tell an e820 map from an MTRR, but this was still a fun read.
I'd love to see this code; doing memory management entirely in the OS and ignoring the BIOS sounds like fun (modulo working around BIOS-specific memory reservations so the OS doesn't get its memory stomped on by the BIOS).
I spent some time last year running various scripts to get an NVIDIA GPU working over thunderbolt in windows on a macbook pro. The problem is the DSDT table in many macbooks doesn't allocate enough space for pci-e devices. The NVIDIA driver in windows tries to allocate memory via that table to talk to the eGPU and it fails.
For some reason it works fine under MacOS - either macos ignores the DSDT table completely, or it allocates memory a bit differently than windows. In any case, the answer is to use obscure tools to download and patch the DSDT tables to allocate more RAM toward PCI-e. Doing this through UEFI feels very magic.
I don't know why so much of this stuff is up to the hardware vendor. Maybe there's a good reason, but I would expect the windows memory manager could do a much better job if it didn't have a bunch of memory range sizes hardcoded by apple.
Kids today...