I am doing some baremetal programming on x86. I am in 16 bit mode and I emulate using qemu... I use int 0x15/ax = 0xE820 to view the memory map... Using the qemu monitor (to examine the region where I wrote the map) I get the following information about the memorymap:
Start=0 Length= 0x9fc00 (type 1)
Start=0x9fc00 Length= 0x400 (type 2)
Start=0xf0000 Length= 0x10000 (type 2)
Start=0x100000 Length= 0x7ee0000 (type 1)
Start=0x7fe0000 Length= 0x10000 (type 2)
Start=0xfffc0000 Length = 0x40000 (Type 2)
So, are the segments that are not in this map (Eg. 0xA0000) belong to something like MMIO? I know that type 2 memory regions are used by BIOS, etc. ( Start=0x9fc00 Length= 0x400 (type 2) is EDBA) What happens when I write to these regions?
Note: I don't have type 3(ACPI) probably because I'm using qemu. In real hardware I most probably should get type 3 regions too. Is that RAM also?