1. 13 Sep, 2019 1 commit
    • Alexei Fedorov's avatar
      Refactor ARMv8.3 Pointer Authentication support code · ed108b56
      Alexei Fedorov authored
      
      
      This patch provides the following features and makes modifications
      listed below:
      - Individual APIAKey key generation for each CPU.
      - New key generation on every BL31 warm boot and TSP CPU On event.
      - Per-CPU storage of APIAKey added in percpu_data[]
        of cpu_data structure.
      - `plat_init_apiakey()` function replaced with `plat_init_apkey()`
        which returns 128-bit value and uses Generic timer physical counter
        value to increase the randomness of the generated key.
        The new function can be used for generation of all ARMv8.3-PAuth keys
      - ARMv8.3-PAuth specific code placed in `lib\extensions\pauth`.
      - New `pauth_init_enable_el1()` and `pauth_init_enable_el3()` functions
        generate, program and enable APIAKey_EL1 for EL1 and EL3 respectively;
        pauth_disable_el1()` and `pauth_disable_el3()` functions disable
        PAuth for EL1 and EL3 respectively;
        `pauth_load_bl31_apiakey()` loads saved per-CPU APIAKey_EL1 from
        cpu-data structure.
      - Combined `save_gp_pauth_registers()` function replaces calls to
        `save_gp_registers()` and `pauth_context_save()`;
        `restore_gp_pauth_registers()` replaces `pauth_context_restore()`
        and `restore_gp_registers()` calls.
      - `restore_gp_registers_eret()` function removed with corresponding
        code placed in `el3_exit()`.
      - Fixed the issue when `pauth_t pauth_ctx` structure allocated space
        for 12 uint64_t PAuth registers instead of 10 by removal of macro
        CTX_PACGAKEY_END from `include/lib/el3_runtime/aarch64/context.h`
        and assigning its value to CTX_PAUTH_REGS_END.
      - Use of MODE_SP_ELX and MODE_SP_EL0 macro definitions
        in `msr	spsel`  instruction instead of hard-coded values.
      - Changes in documentation related to ARMv8.3-PAuth and ARMv8.5-BTI.
      
      Change-Id: Id18b81cc46f52a783a7e6a09b9f149b6ce803211
      Signed-off-by: default avatarAlexei Fedorov <Alexei.Fedorov@arm.com>
      ed108b56
  2. 12 Sep, 2019 10 commits
  3. 11 Sep, 2019 6 commits
  4. 10 Sep, 2019 2 commits
    • Jolly Shah's avatar
      plat: xilinx: zynqmp: Initialize IPI table from zynqmp_config_setup() · 705bed5d
      Jolly Shah authored
      
      
      Common ipi_table needs to be initialized before using any
      IPI command (i.e send/receive). Move zynqmp ipi config table
      initialization from sip_svc_setup() to zynqmp_config_setup().
      
      Change-Id: Ic8aaa0728a43936cd4c6e1ed590e01ba8f0fbf5b
      Signed-off-by: default avatarTejas Patel <tejas.patel@xilinx.com>
      Signed-off-by: default avatarJolly Shah <jolly.shah@xilinx.com>
      705bed5d
    • Soby Mathew's avatar
      Merge changes from topic "yg/stm32mp1_wdg_updates" into integration · 0289ab9e
      Soby Mathew authored
      * changes:
        mmc: stm32_sdmmc2: correctly manage block size
        mmc: stm32_sdmmc2: manage max-frequency property from DT
        stm32mp1: move check_header() to common code
        stm32mp1: keep console during runtime
        stm32mp1: sp_min: initialize MMU and cache earlier
        stm32mp1: add support for LpDDR3
        stm32mp1: use a common function to check spinlock is available
        clk: stm32mp: enable RTCAPB clock for dual-core chips
        stm32mp1: check if the SoC is single core
        stm32mp1: print information about board
        stm32mp1: print information about SoC
        stm32mp1: add watchdog support
      0289ab9e
  5. 09 Sep, 2019 2 commits
  6. 05 Sep, 2019 19 commits