I was looking at Raspberry Pi data sheet. On the page BCM ARM PERIPHERALS, A diagram showing mappings from Physical address to ARM virtual address, the mappings are constant.
That is: ARM Physical address 0x20000000 (IO base address) gets mapped at constant ARM Virtual address F2000000.
This conversion has been done by MACROS like IO_MEM(IO_ADDRESS) in the board platform files. So we just need to pass the proper address.
Are there any constant mappings in x86?
For PCI there can't be because the addresses change upon each boot. Am I correct on this?