1. 18 Aug, 2020 5 commits
    • Manish V Badarkhe's avatar
      lib/cpus: Report AT speculative erratum workaround · e1c49333
      Manish V Badarkhe authored
      
      
      Reported the status (applies, missing) of AT speculative workaround
      which is applicable for below CPUs.
      
       +---------+--------------+
       | Errata  |      CPU     |
       +=========+==============+
       | 1165522 |  Cortex-A76  |
       +---------+--------------+
       | 1319367 |  Cortex-A72  |
       +---------+--------------+
       | 1319537 |  Cortex-A57  |
       +---------+--------------+
       | 1530923 |  Cortex-A55  |
       +---------+--------------+
       | 1530924 |  Cortex-A53  |
       +---------+--------------+
      
      Also, changes are done to enable common macro 'ERRATA_SPECULATIVE_AT'
      if AT speculative errata workaround is enabled for any of the above
      CPUs using 'ERRATA_*' CPU specific build macro.
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      Change-Id: I3e6a5316a2564071f3920c3ce9ae9a29adbe435b
      e1c49333
    • Manish V Badarkhe's avatar
      Add wrapper for AT instruction · 86ba5853
      Manish V Badarkhe authored
      
      
      In case of AT speculative workaround applied, page table walk
      is disabled for lower ELs (EL1 and EL0) in EL3.
      Hence added a wrapper function which temporarily enables page
      table walk to execute AT instruction for lower ELs and then
      disables page table walk.
      
      Execute AT instructions directly for lower ELs (EL1 and EL0)
      assuming page table walk is enabled always when AT speculative
      workaround is not applied.
      
      Change-Id: I4ad4c0bcbb761448af257e9f72ae979473c0dde8
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      86ba5853
    • Manish V Badarkhe's avatar
      runtime_exceptions: Update AT speculative workaround · 3b8456bd
      Manish V Badarkhe authored
      As per latest mailing communication [1], we decided to
      update AT speculative workaround implementation in order to
      disable page table walk for lower ELs(EL1 or EL0) immediately
      after context switching to EL3 from lower ELs.
      
      Previous implementation of AT speculative workaround is available
      here: 45aecff0
      
      AT speculative workaround is updated as below:
      1. Avoid saving and restoring of SCTLR and TCR registers for EL1
         in context save and restore routine respectively.
      2. On EL3 entry, save SCTLR and TCR registers for EL1.
      3. On EL3 entry, update EL1 system registers to disable stage 1
         page table walk for lower ELs (EL1 and EL0) and enable EL1
         MMU.
      4. On EL3 exit, restore SCTLR and TCR registers for EL1 which
         are saved in step 2.
      
      [1]:
      https://lists.trustedfirmware.org/pipermail/tf-a/2020-July/000586.html
      
      
      
      Change-Id: Iee8de16f81dc970a8f492726f2ddd57e7bd9ffb5
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      3b8456bd
    • Manish V Badarkhe's avatar
      el3_runtime: Rearrange context offset of EL1 sys registers · cb55615c
      Manish V Badarkhe authored
      
      
      SCTLR and TCR registers of EL1 plays role in enabling/disabling of
      page table walk for lower ELs (EL0 and EL1).
      Hence re-arranged EL1 context offsets to have SCTLR and TCR registers
      values one after another in the stack so that these registers values
      can be saved and restored using stp and ldp instruction respectively.
      
      Change-Id: Iaa28fd9eba82a60932b6b6d85ec8857a9acd5f8b
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      cb55615c
    • Manish V Badarkhe's avatar
      el3_runtime: Update context save and restore routines for EL1 and EL2 · fb2072b0
      Manish V Badarkhe authored
      As per latest mailing communication [1], we decided
      not to update SCTLR and TCR registers in EL1 and EL2 context
      restore routine when AT speculative workaround is enabled
      hence reverted the changes done as part of this commit: 45aecff0.
      
      [1]:
      https://lists.trustedfirmware.org/pipermail/tf-a/2020-July/000586.html
      
      
      
      Change-Id: I8c5f31d81fcd53770a610e302a5005d98772b71f
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      fb2072b0
  2. 17 Aug, 2020 3 commits
  3. 16 Aug, 2020 1 commit
  4. 14 Aug, 2020 19 commits
  5. 13 Aug, 2020 5 commits
  6. 12 Aug, 2020 2 commits
    • Manish Pandey's avatar
      dualroot: add chain of trust for Platform owned SPs · 2947412d
      Manish Pandey authored
      
      
      For dualroot CoT there are two sets of SP certificates, one owned by
      Silicon Provider(SiP) and other owned by Platform. Each certificate can
      have a maximum of 4 SPs.
      
      This patch reduces the number of SiP owned SPs from 8 to 4 and adds
      the remaining 4 to Plat owned SP.
      Plat owned SP certificate is signed using Platform RoT key and
      protected against anti-rollback using the Non-trusted Non-volatile
      counter.
      
      Change-Id: Idc3ddd87d6d85a5506a7435f45a6ec17c4c50425
      Signed-off-by: default avatarManish Pandey <manish.pandey2@arm.com>
      2947412d
    • Manish Pandey's avatar
      cert_create: add Platform owned secure partitions support · 23d5f03a
      Manish Pandey authored
      
      
      Add support to generate a certificate named "plat-sp-cert" for Secure
      Partitions(SP) owned by Platform.
      Earlier a single certificate file "sip-sp-cert" was generated which
      contained hash of all 8 SPs, with this change SPs are divided into
      two categories viz "SiP owned" and "Plat owned" containing 4 SPs each.
      
      Platform RoT key pair is used for signing.
      Signed-off-by: default avatarManish Pandey <manish.pandey2@arm.com>
      Change-Id: I5bd493cfce4cf3fc14b87c8ed1045f633d0c92b6
      23d5f03a
  7. 11 Aug, 2020 2 commits
  8. 10 Aug, 2020 3 commits
    • Manish Pandey's avatar
      Merge changes from topic "release/14.0" into integration · 8f09da46
      Manish Pandey authored
      * changes:
        docs: marvell: update PHY porting layer description
        docs: marvell: update path in marvell documentation
        docs: marvell: update build instructions with CN913x
        plat: marvell: octeontx: add support for t9130
        plat: marvell: t9130: add SVC support
        plat: marvell: t9130: update AVS settings
        plat: marvell: t9130: pass actual CP count for load_image
        plat: marvell: armada: a7k: add support to SVC validation mode
        plat: marvell: armada: add support for twin-die combined memory device
      8f09da46
    • Julius Werner's avatar
      37a12f04
    • Alexei Fedorov's avatar
      TF-A AMU extension: fix detection of group 1 counters. · f3ccf036
      Alexei Fedorov authored
      
      
      This patch fixes the bug when AMUv1 group1 counters was
      always assumed being implemented without checking for its
      presence which was causing exception otherwise.
      The AMU extension code was also modified as listed below:
      - Added detection of AMUv1 for ARMv8.6
      - 'PLAT_AMU_GROUP1_NR_COUNTERS' build option is removed and
      number of group1 counters 'AMU_GROUP1_NR_COUNTERS' is now
      calculated based on 'AMU_GROUP1_COUNTERS_MASK' value
      - Added bit fields definitions and access functions for
      AMCFGR_EL0/AMCFGR and AMCGCR_EL0/AMCGCR registers
      - Unification of amu.c Aarch64 and Aarch32 source files
      - Bug fixes and TF-A coding style compliant changes.
      
      Change-Id: I14e407be62c3026ebc674ec7045e240ccb71e1fb
      Signed-off-by: default avatarAlexei Fedorov <Alexei.Fedorov@arm.com>
      f3ccf036