• Jeenu Viswambharan's avatar
    Introduce locking primitives using CAS instruction · c877b414
    Jeenu Viswambharan authored
    
    
    The ARMv8v.1 architecture extension has introduced support for far
    atomics, which includes compare-and-swap. Compare and Swap instruction
    is only available for AArch64.
    
    Introduce build options to choose the architecture versions to target
    ARM Trusted Firmware:
    
      - ARM_ARCH_MAJOR: selects the major version of target ARM
        Architecture. Default value is 8.
    
      - ARM_ARCH_MINOR: selects the minor version of target ARM
        Architecture. Default value is 0.
    
    When:
    
      (ARM_ARCH_MAJOR > 8) || ((ARM_ARCH_MAJOR == 8) && (ARM_ARCH_MINOR >= 1)),
    
    for AArch64, Compare and Swap instruction is used to implement spin
    locks. Otherwise, the implementation falls back to using
    load-/store-exclusive instructions.
    
    Update user guide, and introduce a section in Firmware Design guide to
    summarize support for features introduced in ARMv8 Architecture
    Extensions.
    
    Change-Id: I73096a0039502f7aef9ec6ab3ae36680da033f16
    Signed-off-by: default avatarJeenu Viswambharan <jeenu.viswambharan@arm.com>
    c877b414
user-guide.md 67.3 KB