1. 18 Jan, 2018 4 commits
    • Dimitris Papastamos's avatar
      Workaround for CVE-2017-5715 for Cortex A9, A15 and A17 · e4b34efa
      Dimitris Papastamos authored
      
      
      A per-cpu vbar is installed that implements the workaround by
      invalidating the branch target buffer (BTB) directly in the case of A9
      and A17 and indirectly by invalidating the icache in the case of A15.
      
      For Cortex A57 and A72 there is currently no workaround implemented
      when EL3 is in AArch32 mode so report it as missing.
      
      For other vulnerable CPUs (e.g. Cortex A73 and Cortex A75), there are
      no changes since there is currently no upstream AArch32 EL3 support
      for these CPUs.
      
      Change-Id: Ib42c6ef0b3c9ff2878a9e53839de497ff736258f
      Signed-off-by: default avatarDimitris Papastamos <dimitris.papastamos@arm.com>
      e4b34efa
    • Dimitris Papastamos's avatar
      sp_min: Implement workaround for CVE-2017-5715 · 7343505d
      Dimitris Papastamos authored
      
      
      This patch introduces two workarounds for ARMv7 systems.  The
      workarounds need to be applied prior to any `branch` instruction in
      secure world.  This is achieved using a custom vector table where each
      entry is an `add sp, sp, #1` instruction.
      
      On entry to monitor mode, once the sequence of `ADD` instructions is
      executed, the branch target buffer (BTB) is invalidated.  The bottom
      bits of `SP` are then used to decode the exception entry type.
      
      A side effect of this change is that the exception vectors are
      installed before the CPU specific reset function.  This is now
      consistent with how it is done on AArch64.
      
      Note, on AArch32 systems, the exception vectors are typically tightly
      integrated with the secure payload (e.g. the Trusted OS).  This
      workaround will need porting to each secure payload that requires it.
      
      The patch to modify the AArch32 per-cpu vbar to the corresponding
      workaround vector table according to the CPU type will be done in a
      later patch.
      
      Change-Id: I5786872497d359e496ebe0757e8017fa98f753fa
      Signed-off-by: default avatarDimitris Papastamos <dimitris.papastamos@arm.com>
      7343505d
    • Dimitris Papastamos's avatar
      Print erratum application report for CVE-2017-5715 · eec9e7d1
      Dimitris Papastamos authored
      
      
      Even though the workaround for CVE-2017-5715 is not a CPU erratum, the
      code is piggybacking on the errata framework to print whether the
      workaround was applied, missing or not needed.
      
      Change-Id: I821197a4b8560c73fd894cd7cd9ecf9503c72fa3
      Signed-off-by: default avatarDimitris Papastamos <dimitris.papastamos@arm.com>
      eec9e7d1
    • Dimitris Papastamos's avatar
      Change the default errata format string · c0ca14d6
      Dimitris Papastamos authored
      
      
      As we are using the errata framework to handle workarounds in a more
      general sense, change the default string to reflect that.
      
      Change-Id: I2e266af2392c9d95e18fe4e965f9a1d46fd0e95e
      Signed-off-by: default avatarDimitris Papastamos <dimitris.papastamos@arm.com>
      c0ca14d6
  2. 17 Jan, 2018 2 commits
  3. 16 Jan, 2018 8 commits
  4. 15 Jan, 2018 4 commits
  5. 12 Jan, 2018 1 commit
  6. 11 Jan, 2018 12 commits
  7. 10 Jan, 2018 6 commits
  8. 09 Jan, 2018 3 commits