1. 13 Jul, 2021 1 commit
    • Yann Gautier's avatar
      refactor(plat/st): map DDR secure at boot · c1ad41fb
      Yann Gautier authored
      
      
      In BL2, the DDR can be mapped as secured in MMU, as no other SW
      has access to it during its execution.
      The TZC400 configuration is also updated to reflect this. When using
      OP-TEE, the TZC400 is reconfigured at the end of BL2, to match OP-TEE
      mapping. Else, SP_min will be in charge to reconfigure TZC400 to set
      DDR non-secure.
      
      Change-Id: Ic5ec614b218f733796feeab1cdc425d28cc7c103
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      c1ad41fb
  2. 04 Jun, 2021 1 commit
    • Yann Gautier's avatar
      refactor(plat/st): avoid fixed DT address · c20b0606
      Yann Gautier authored
      
      
      Device Tree address is now a parameter for dt_open_and_check() function.
      This will allow better flexibility when introducing PIE and FIP.
      The fdt pointer is now only assigned if the given address holds
      a valid device tree file. This allows removing the fdt_checked variable,
      as we now check fdt is not null.
      
      Change-Id: I04cbb2fc05c9c711ae1c77d56368dbeb6dd4b01a
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      c20b0606
  3. 21 Apr, 2021 1 commit
  4. 01 Jun, 2020 1 commit
    • Etienne Carriere's avatar
      drivers: stm32_reset adapt interface to timeout argument · 45c70e68
      Etienne Carriere authored
      
      
      Changes stm32mp1 reset driver to API to add a timeout argument
      to stm32mp_reset_assert() and stm32mp_reset_deassert() and
      a return value.
      
      With a supplied timeout, the functions wait the target reset state
      is reached before returning. With a timeout of zero, the functions
      simply load target reset state in SoC interface and return without
      waiting.
      
      Helper functions stm32mp_reset_set() and stm32mp_reset_release()
      use a zero timeout and return without a return code.
      
      This change updates few stm32 drivers and plat/stm32mp1 blé_plat_setup.c
      accordingly without any functional change.
      functional change.
      
      Change-Id: Ia1a73a15125d3055fd8739c125b70bcb9562c27f
      Signed-off-by: default avatarEtienne Carriere <etienne.carriere@st.com>
      45c70e68
  5. 26 Mar, 2020 3 commits
    • Yann Gautier's avatar
      stm32mp1: use stm32mp_get_ddr_ns_size() function · 5813e6ed
      Yann Gautier authored
      
      
      Instead of using dt_get_ddr_size() and withdrawing the secure and shared
      memory areas, use stm32mp_get_ddr_ns_size() function.
      
      Change-Id: I5608fd7873589ea0e1262ba7d2ee3e52b53d9a7d
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      5813e6ed
    • Yann Gautier's avatar
      stm32mp1: set XN attribute for some areas in BL2 · 9c52e69f
      Yann Gautier authored
      
      
      DTB and BL32 area should not be set as executable in MMU during BL2
      execution, hence set those areas as MT_RO_DATA.
      
      Change-Id: I87c47a1e7fda761e541ec98a5b294588384d31db
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      9c52e69f
    • Yann Gautier's avatar
      stm32mp1: dynamically map DDR later and non-cacheable during its test · 84686ba3
      Yann Gautier authored
      
      
      A speculative accesses to DDR could be done whereas it was not reachable
      and could lead to bus stall.
      To correct this the dynamic mapping in MMU is used.
      A first mapping is done for DDR tests with MT_NON_CACHEABLE attribute,
      once DDR access is setup. It is then unmapped and a new mapping DDR is done
      with cacheable attribute (through MT_MEMORY) to speed-up BL33 (or OP-TEE)
      load.
      
      The disabling of cache during DDR tests is also removed, as now useless.
      A call to new functions stm32mp_{,un}map_ddr_non_cacheable() is done
      instead.
      
      PLAT_XLAT_TABLES_DYNAMIC is activated globally as used in BL2 and BL32.
      
      BL33 max size is also updated to take into account the secure and shared
      memory areas. Those are used in OP-TEE case.
      
      Change-Id: I22c48b4a48255ee264991c34ecbb15bfe87e67c3
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      84686ba3
  6. 25 Feb, 2020 1 commit
  7. 23 Sep, 2019 1 commit
    • Lionel Debieve's avatar
      stm32mp1: add authentication support for stm32image · 4bdb1a7a
      Lionel Debieve authored
      
      
      This commit adds authentication binary support for STM32MP1.
      It prints the bootrom authentication result if signed
      image is used and authenticates the next loaded STM32 images.
      It also enables the dynamic translation table support
      (PLAT_XLAT_TABLES_DYNAMIC) to use bootrom services.
      Signed-off-by: default avatarLionel Debieve <lionel.debieve@st.com>
      Change-Id: Iba706519e0dc6b6fae1f3dd498383351f0f75f51
      4bdb1a7a
  8. 10 Sep, 2019 1 commit
  9. 02 Sep, 2019 3 commits
  10. 17 Jun, 2019 1 commit
    • Yann Gautier's avatar
      stm32mp1: add general SYSCFG management · f33b2433
      Yann Gautier authored
      
      
      The system configuration controller is mainly used to manage
      the compensation cell and other IOs and system related settings.
      
      The SYSCFG driver is in charge of configuring masters on the interconnect,
      IO compensation, low voltage boards, or pull-ups for boot pins.
      All other configurations should be handled in Linux drivers requiring it.
      
      Device tree files are also updated to manage vdd-supply regulator.
      
      Change-Id: I10fb513761a7d1f2b7afedca9c723ad9d1bccf42
      Signed-off-by: default avatarNicolas Le Bayon <nicolas.le.bayon@st.com>
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      f33b2433
  11. 23 Apr, 2019 1 commit
    • Yann Gautier's avatar
      stm32mp1: add OP-TEE support · 1989a19c
      Yann Gautier authored
      
      
      Support booting OP-TEE as BL32 boot stage and secure runtime
      service.
      
      OP-TEE executes in internal RAM and uses a secure DDR area to store
      the pager pagestore. Memory mapping and TZC are configured accordingly
      prior OP-TEE boot. OP-TEE image is expected in OP-TEE v2 format where
      a header file describes the effective boot images. This change
      post processes header file content to get OP-TEE load addresses
      and set OP-TEE boot arguments.
      
      Change-Id: I02ef8b915e4be3e95b27029357d799d70e01cd44
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      Signed-off-by: default avatarEtienne Carriere <etienne.carriere@st.com>
      1989a19c
  12. 20 Feb, 2019 1 commit
  13. 14 Feb, 2019 6 commits
  14. 18 Jan, 2019 2 commits
  15. 04 Jan, 2019 1 commit
    • Antonio Nino Diaz's avatar
      Sanitise includes across codebase · 09d40e0e
      Antonio Nino Diaz authored
      Enforce full include path for includes. Deprecate old paths.
      
      The following folders inside include/lib have been left unchanged:
      
      - include/lib/cpus/${ARCH}
      - include/lib/el3_runtime/${ARCH}
      
      The reason for this change is that having a global namespace for
      includes isn't a good idea. It defeats one of the advantages of having
      folders and it introduces problems that are sometimes subtle (because
      you may not know the header you are actually including if there are two
      of them).
      
      For example, this patch had to be created because two headers were
      called the same way: e0ea0928 ("Fix gpio includes of mt8173 platform
      to avoid collision."). More recently, this patch has had similar
      problems: 46f9b2c3 ("drivers: add tzc380 support").
      
      This problem was introduced in commit 4ecca339
      
       ("Move include and
      source files to logical locations"). At that time, there weren't too
      many headers so it wasn't a real issue. However, time has shown that
      this creates problems.
      
      Platforms that want to preserve the way they include headers may add the
      removed paths to PLAT_INCLUDES, but this is discouraged.
      
      Change-Id: I39dc53ed98f9e297a5966e723d1936d6ccf2fc8f
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      09d40e0e
  16. 15 Nov, 2018 1 commit
  17. 24 Jul, 2018 6 commits