Previously, the bootloader would only provide a single memory range. At least on VirtualBox, this memory range includes the ACPI tables, which the kernel then happily overwrites when executing VM. Much of the infrastructure to use a fullblown memory map is already in place; this patch adds the last (and strangely missing) bit of generating the memory map in a multiboot-compatible way. It should be noted that both the bootloader and the kernel actually violate the multiboot specification by not packing the structure for the memory ranges. This is a NetBSD bug, but it is also a nonissue for (our) practical purposes. It can be fixed without changing the code added in this patch. Change-Id: I7c0a307a8a8133239531e1d2b80f376849f90247 |
||
|---|---|---|
| .. | ||
| crt/dos | ||
| netif | ||
| test | ||
| bios_disk.S | ||
| bios_pci.S | ||
| biosdelay.S | ||
| biosdisk_ll.c | ||
| biosdisk_ll.h | ||
| biosdisk.c | ||
| biosdisk.h | ||
| biosgetrtc.S | ||
| biosgetsystime.S | ||
| biosmca.h | ||
| biosmca.S | ||
| biosmem.S | ||
| biosmemps2.S | ||
| biosmemx.S | ||
| biospci.c | ||
| biosreboot.S | ||
| biosvbe.S | ||
| biosvideomode.S | ||
| boot_params.S | ||
| bootinfo_biosgeom.c | ||
| bootinfo_memmap.c | ||
| bootinfo.c | ||
| bootinfo.h | ||
| bootmenu.c | ||
| bootmenu.h | ||
| bootmod.h | ||
| comio_direct.c | ||
| comio_direct.h | ||
| comio.S | ||
| conio.S | ||
| cpufunc.h | ||
| cpufunc.S | ||
| diskbuf.c | ||
| diskbuf.h | ||
| dos_file.S | ||
| dosfile.c | ||
| dosfile.h | ||
| dump_eax.S | ||
| exec.c | ||
| gatea20.c | ||
| getextmemx.c | ||
| getsecs.c | ||
| isadma.c | ||
| isadmavar.h | ||
| isapnp.c | ||
| isapnpvar.h | ||
| libi386.h | ||
| Makefile | ||
| Makefile.inc | ||
| menuutils.c | ||
| message.S | ||
| message32.S | ||
| multiboot.S | ||
| parseutils.c | ||
| pcio.c | ||
| pcivar.h | ||
| pread.c | ||
| printmemlist.c | ||
| putstr.S | ||
| putstr32.S | ||
| pvcopy.S | ||
| rasops.c | ||
| realprot.S | ||
| startprog.S | ||
| vbe.c | ||
| vbe.h | ||