• Thomas Petazzoni's avatar
    arch/sh: pcie-sh7786: adjust the memory mapping · 79e1c5e7
    Thomas Petazzoni authored
    The code setting up the PCI -> SuperHighway mapping doesn't take into
    account the fact that the address stored in PCIELARx must be aligned
    with the size stored in PCIELAMRx.
    
    For example, when your physical memory starts at 0x0800_0000 (128 MB),
    a size of 64 MB or 128 MB is fine. However, if you have 256 MB of
    memory, it doesn't work because the base address is not aligned on the
    size.
    
    In such situation, we have to round down the base address to make sure
    it is aligned on the size of the area. For for a 0x0800_0000 base
    address with 256 MB of memory, we will round down to 0x0, and extend
    the size of the mapping to 512 MB.
    
    This allows the mapping to work on platforms that have 256 MB of
    RAM. The current setup would only work with 128 MB of RAM or less.
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Signed-off-by: default avatarRich Felker <dalias@libc.org>
    79e1c5e7
pcie-sh7786.c 14.6 KB