Some Large Address Space Ponders on A9
Jon Loeliger
loeliger at gmail.com
Tue Jul 1 10:41:36 PDT 2014
On Tue, Jul 1, 2014 at 11:26 AM, Catalin Marinas
<catalin.marinas at arm.com> wrote:
>> Here's the problem. Over in include/linux/types.h we find:
>>
>> #ifdef CONFIG_PHYS_ADDR_T_64BIT
>> typedef u64 phys_addr_t;
>> #else
>> typedef u32 phys_addr_t;
>> #endif
>>
>> typedef phys_addr_t resource_size_t;
>
> I won't comment on how you define this in DT but for the kernel things
> will likely break when you increase phys_addr_t to 64-bit on non-LPAE
> builds.
>
> First (only) question - how do you intend to map such physical address?
> The only way I'm aware of on A9 is using supersections and the ARM Linux
> port provides __arm_ioremap_pfn(). However, the supersections code is
> only enabled if !SMP.
>
> --
> Catalin
So, I don't really need to map in that as physical address space
that will be actually accessed. I need to be able to parse the
large values out of the DT (2-cell values) into resource_size_t
variables and then manipulate the address space they represent.
Later, my IP block can handle the larger addresses, not as physical
memory, but as addresses. I guess you could think of it as a
windowing or address translation mechanism that isn't coming
from the A9's 32-bit AXI bus.
Does that help explain the weird? Or just confuse it? :-)
jdl
More information about the linux-arm-kernel
mailing list