linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* ARM page tables
@ 2014-12-09 17:21 Mason
  2014-12-09 17:27 ` Russell King - ARM Linux
  0 siblings, 1 reply; 5+ messages in thread
From: Mason @ 2014-12-09 17:21 UTC (permalink / raw)
  To: linux-arm-kernel

Hello everyone,

On my SoC, we have two MMIO regions mapped at init:

  {
   .virtual = (0xf0000000 + 0x00800000),
   .pfn =((unsigned long)((0x20000000) >> 12)),
   .length = 0x00200000,
   .type = 0,
  },
  {
   .virtual = (0xf0000000 +(0)),
   .pfn =((unsigned long)((0) >> 12)),
   .length = 0x00800000,
   .type = 0,
  },

I dumped the L1 page table descriptors, expecting to find
entries for the MMIO regions:
(AFAICT, the page table starts at 0xc0007000)

col_1 = entry number (hex)
col_2 = entry value
col_3 = string for (desc & 3)

300 00011452 SECTION
301 00111452 SECTION
302 00211452 SECTION
303 00311452 SECTION
304 00411452 SECTION
305 00511452 SECTION
306 00611452 SECTION
307 00711452 SECTION
308 20011452 SECTION
309 20111452 SECTION

If I understand correctly, entry 308 means:
VIRTUAL ADDRESS 0x3080_0000 is mapped to PHYSICAL ADDRESS 0x2000_0000
(Is my reading correct?)

But we asked to map PA 0x2000_0000 to VA 0xf080_0000 in iotable_init,
so I'm confused...

Also, looking at entry 300:
VA 0x3000_0000 to PA 0
but we asked for VA 0xf000_0000 didn't we?

Can someone clear my confusion?

Regards.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-12-10  9:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-09 17:21 ARM page tables Mason
2014-12-09 17:27 ` Russell King - ARM Linux
2014-12-09 22:59   ` Mason
2014-12-10  0:16     ` Russell King - ARM Linux
2014-12-10  9:41       ` Mason

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).