1

enter image description here

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?

artless noise
  • 21,212
  • 6
  • 68
  • 105
RootPhoenix
  • 1,626
  • 1
  • 22
  • 40
  • Notlikethat: Take a look. – RootPhoenix Mar 05 '15 at 06:58
  • Oh, right (sorry, my bad for getting the addresses mixed up, and forgetting that that particular document is really more of a low-level Raspberry Pi user guide than a pure SoC datasheet) - that's not describing any property of the hardware, it's just showing how Linux typically chooses to lay out the relevant parts of kernel address space. There's lots of information around about the Linux kernel memory map, most of which applies more or less equally to all supported architectures. Note that, being Linux, it _originated_ on x86 ;) – Notlikethat Mar 05 '15 at 09:29
  • x86 either uses direct, physical addresses, or paged addressing, depending on the CPU settings. In paged mode, the translation from virtual to physical address depends dynamically on the contents of the page table. – Kerrek SB Mar 05 '15 at 09:31
  • @Notlikethat and Kerrek SB can you please elaborate. – RootPhoenix Mar 05 '15 at 10:38

0 Answers0