CVSROOT: /cvs Module name: src Changes by: d...@cvs.openbsd.org 2022/12/26 16:50:20
Modified files: sys/arch/amd64/amd64: vmm.c sys/arch/amd64/include: vmmvar.h usr.sbin/vmd : fw_cfg.c loadfile_elf.c vm.c Log message: vmd(8): provide a detailed e820 memory map. When booting guests with SeaBIOS, vmd(8) supplied details about the available guest memory via CMOS registers. Consequently, we've been carrying some patches in the ports tree to SeaBIOS to fetch this information like it's the 1990s. When a vm initializes memory ranges, we now track what each range represents. This information can be used to supply the e820 memory map to SeaBIOS via the fw_cfg interface allowing it to properly communicate memory ranges to a guest operating system. (This will also allow us to drop some patches from the port.) Given the ranges can now be marked with a purpose, this also allows vmm(4) to switch from hard-coded mmio ranges and instead let the information on the memory range dictate if vmm should be handling a page fault or sending to vmd for a memory assist. Tested by Mischa Peters and others. OK mlarkin@.