• Ard Biesheuvel's avatar
    ARM: 9012/1: move device tree mapping out of linear region · 7a1be318
    Ard Biesheuvel authored
    On ARM, setting up the linear region is tricky, given the constraints
    around placement and alignment of the memblocks, and how the kernel
    itself as well as the DT are placed in physical memory.
    
    Let's simplify matters a bit, by moving the device tree mapping to the
    top of the address space, right between the end of the vmalloc region
    and the start of the the fixmap region, and create a read-only mapping
    for it that is independent of the size of the linear region, and how it
    is organized.
    
    Since this region was formerly used as a guard region, which will now be
    populated fully on LPAE builds by this read-only mapping (which will
    still be able to function as a guard region for stray writes), bump the
    start of the [underutilized] fixmap region by 512 KB as well, to ensure
    that there is always a proper guard region here. Doing so still leaves
    ample room for the fixmap space, even with NR_CPUS set to its maximum
    value of 32.
    Tested-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Reviewed-by: default avatarNicolas Pitre <nico@fluxnic.net>
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    7a1be318
head.S 18.7 KB