• J
    ARM: mpu: add early bring-up code for the ARMv7 PMSA-compliant MPU · 67c9845b
    Jonathan Austin 提交于
    This patch adds initial support for using the MPU, which is necessary for
    SMP operation on PMSAv7 processors because it is the only way to ensure
    memory is shared. This is an initial patch and full SMP support is added
    later in this series.
    
    The setup of the MPU is performed in a way analagous to that for the MMU:
    Very early initialisation before the C environment is brought up, followed
    by a sanity check and more complete initialisation in C.
    
    This patch provides the simplest possible memory region configuration:
    MPU_PROBE_REGION: Reserved for probing MPU details, not enabled
    MPU_BG_REGION: A 'background' region that specifies all memory strongly ordered
    MPU_RAM_REGION: A single shared, cacheable, normal region for the valid RAM.
    
    In this early initialisation code we simply map the whole of the address
    space with the BG_REGION and (at least) the kernel with the RAM_REGION. The
    MPU has region alignment constraints that require us to round past the end
    of the kernel.
    
    As region 2 has a higher priority than region 1, it overrides the strongly-
    ordered behaviour for RAM only.
    
    Subsequent patches will add more complete initialisation from the C-world
    and support for bringing up secondary CPUs.
    Signed-off-by: NJonathan Austin <jonathan.austin@arm.com>
    Reviewed-by: NWill Deacon <will.deacon@arm.com>
    CC: Hyok S. Choi <hyok.choi@samsung.com>
    67c9845b
head-nommu.S 6.7 KB