[lkml]   [2012]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] of: specify initrd location using 64-bit
    On 09/13/2012 01:47 AM, Sebastian Andrzej Siewior wrote:
    > On 09/13/2012 12:08 AM, Rob Herring wrote:
    >>> Geert is right here. If it is a physical address, it should be
    >>> phys_addr_t.
    >> While generally true, for the DT specific code I think it should be a
    >> fixed u64. The size of the address is defined by the FDT, not the
    >> kernel. It is very likely we could have a FDT that specifies addresses
    >> in 64-bit values, but then we boot a kernel is compiled for !LPAE.
    >> phys_addr_t is currently sized based on LPAE setting.
    > If your kernel is 32bit without PAE and your DTB address is >32ibt than
    > you can't handle it. If you don't notice this in your dt code than you
    > remap the wrong memory ioremap().

    The size of the initrd fields are set by #address-cells properties and
    determined when you create the dtb. The address to load the initrd is
    decided by the bootloader/user and set at that point later in time. The
    dtb should not be tied to the kernel you are booting. Obviously, if you
    want to boot a non-PAE kernel, everything has to be placed at <4GB.

    I can boot i386 and i386-pae kernels on an i386-pae machines. I expect
    to generally be able to do that on ARM. Perhaps some SOCs like this one
    will not allow that, it is not always true.


     \ /
      Last update: 2012-09-13 23:41    [W:0.037 / U:8.936 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site