誰がアドレスを設定するかについては100%わかりませんが、私が知る限り、ハードウェアベンダーはメモリマップを好きなように設定できます。
Linuxでは、次のようにして、現在マシンにメモリがどのようにマッピングされているかを確認できますcat /proc/iomem
。
00000000-0000ffff : reserved
00010000-0009f3ff : System RAM
0009f400-0009ffff : reserved
000a0000-000bffff : PCI Bus 0000:00
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000ca000-000cbfff : reserved
000ca000-000cafff : Adapter ROM
000cc000-000cffff : PCI Bus 0000:00
000d0000-000d3fff : PCI Bus 0000:00
000d4000-000d7fff : PCI Bus 0000:00
000d8000-000dbfff : PCI Bus 0000:00
000dc000-000fffff : reserved
000f0000-000fffff : System ROM
00100000-3fedffff : System RAM
01000000-01536143 : Kernel code
01536144-017c007f : Kernel data
01875000-0194bfff : Kernel bss
3fee0000-3fefefff : ACPI Tables
....