• Soby Mathew's avatar
    Build option to include AArch32 registers in cpu context · 8cd16e6b
    Soby Mathew authored
    The system registers that are saved and restored in CPU context include
    AArch32 systems registers like SPSR_ABT, SPSR_UND, SPSR_IRQ, SPSR_FIQ,
    DACR32_EL2, IFSR32_EL2 and FPEXC32_EL2. Accessing these registers on an
    AArch64-only (i.e. on hardware that does not implement AArch32, or at
    least not at EL1 and higher ELs) platform leads to an exception. This patch
    introduces the build option `CTX_INCLUDE_AARCH32_REGS` to specify whether to
    include these AArch32 systems registers in the cpu context or not. By default
    this build option is set to 1 to ensure compatibility. AArch64-only platforms
    must set it to 0. A runtime check is added in BL1 and BL31 cold boot path to
    verify this.
    
    Fixes ARM-software/tf-issues#386
    
    Change-Id: I720cdbd7ed7f7d8516635a2ec80d025f478b95ee
    8cd16e6b
bl31_main.c 7.11 KB