1. 11 May, 2020 2 commits
  2. 05 May, 2020 2 commits
    • Andre Przywara's avatar
      plat/stm32: Use generic fdt_get_stdout_node_offset() · 7a61114d
      Andre Przywara authored
      
      
      Now that we have an implementation for getting the node offset of the
      stdout-path property in the generic fdt_wrappers code, use that to
      replace the current ST platform specific implementation.
      
      Change-Id: I5dd05684e7ca3cb563b5f71c885e1066393e057e
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      7a61114d
    • Andre Przywara's avatar
      plat/stm32: Use generic fdt_get_reg_props_by_name() · 7ad6d362
      Andre Przywara authored
      
      
      The STM32 platform port parse DT nodes to find base address to
      peripherals. It does this by using its own implementation, even though
      this functionality is generic and actually widely useful outside of the
      STM32 code.
      
      Re-implement fdt_get_reg_props_by_name() on top of the newly introduced
      fdt_get_reg_props_by_index() function, and move it to fdt_wrapper.c.
      This is removes the assumption that #address-cells and #size-cells are
      always one.
      
      Change-Id: I6d584930262c732b6e0356d98aea50b2654f789d
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      7ad6d362
  3. 29 Apr, 2020 1 commit
    • Andre Przywara's avatar
      plat/stm32: Implement fdt_read_uint32_default() as a wrapper · be858cff
      Andre Przywara authored
      
      
      The STM32 platform code uses its own set of FDT helper functions,
      although some of them are fairly generic.
      
      Remove the implementation of fdt_read_uint32_default() and implement it
      on top of the newly introduced fdt_read_uint32() function, then convert
      all users over.
      
      This also fixes two callers, which were slightly abusing the "default"
      semantic.
      
      Change-Id: I570533362b4846e58dd797a92347de3e0e5abb75
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      be858cff
  4. 28 Apr, 2020 1 commit
    • Andre Przywara's avatar
      plat/stm32: Use generic fdt_read_uint32_array() implementation · 52a616b4
      Andre Przywara authored
      
      
      The device tree parsing code for the STM32 platform is using its own FDT
      helper functions, some of them being rather generic.
      In particular the existing fdt_read_uint32_array() implementation is now
      almost identical to the new generic code in fdt_wrappers.c, so we can
      remove the ST specific version and adjust the existing callers.
      
      Compared to the original ST implementation the new version takes a
      pointer to the DTB as the first argument, and also swaps the order of
      the number of cells and the pointer.
      
      Change-Id: Id06b0f1ba4db1ad1f733be40e82c34f46638551a
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      52a616b4
  5. 26 Mar, 2020 4 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
    • Yann Gautier's avatar
      stm32mp1: add a function to get non-secure DDR size · e6cc3ccf
      Yann Gautier authored
      
      
      This function gets the DDR size from DT, and withdraws (if defined) the
      sizes of secure DDR and shared memory areas.
      This function also checks DT values fits the default DDR range.
      This non-secure memory is available for BL33 and non-secure OS.
      
      Change-Id: I162ae5e990a0f9b6b7d07e539de029f1d61a391b
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      e6cc3ccf
  6. 23 Mar, 2020 2 commits
    • Yann Gautier's avatar
      plat/st: correctly check pwr-regulators node · e9d1e5af
      Yann Gautier authored
      
      
      This warning was issued by cppcheck in our downstream code:
      [plat/st/common/stm32mp_dt.c:629] -> [plat/st/common/stm32mp_dt.c:634]:
       (warning) Identical condition 'node<0', second condition is always false
      
      The second test has to check variable pwr_regulators_node.
      
      Change-Id: I4a20c4a3ac0ef0639c2df36309d90a61c02b511f
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      e9d1e5af
    • Yann Gautier's avatar
      plat/st: correct static analysis tool warning · cd4941de
      Yann Gautier authored
      
      
      Correct the following sparse warnings:
      plat/st/common/stm32mp_dt.c:103:5: warning:
       symbol 'fdt_get_node_parent_address_cells' was not declared.
       Should it be static?
      plat/st/common/stm32mp_dt.c:123:5: warning:
       symbol 'fdt_get_node_parent_size_cells' was not declared.
       Should it be static?
      
      As those 2 functions are only used by assert(), put them under
      ENABLE_ASSERTIONS flag.
      
      Change-Id: Iad721f12128df83a3de3f53e7920a9c1dce64c56
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      cd4941de
  7. 25 Feb, 2020 6 commits
  8. 28 Jan, 2020 1 commit
    • Madhukar Pappireddy's avatar
      Enable -Wredundant-decls warning check · ca661a00
      Madhukar Pappireddy authored
      
      
      This flag warns if anything is declared more than once in the same
      scope, even in cases where multiple declaration is valid and changes
      nothing.
      
      Consequently, this patch also fixes the issues reported by this
      flag. Consider the following two lines of code from two different source
      files(bl_common.h and bl31_plat_setup.c):
      
      IMPORT_SYM(uintptr_t, __RO_START__, BL_CODE_BASE);
      IMPORT_SYM(unsigned long, __RO_START__, BL2_RO_BASE);
      
      The IMPORT_SYM macro which actually imports a linker symbol as a C expression.
      The macro defines the __RO_START__ as an extern variable twice, one for each
      instance. __RO_START__ symbol is defined by the linker script to mark the start
      of the Read-Only area of the memory map.
      
      Essentially, the platform code redefines the linker symbol with a different
      (relevant) name rather than using the standard symbol. A simple solution to
      fix this issue in the platform code for redundant declarations warning is
      to remove the second IMPORT_SYM and replace it with following assignment
      
      static const unsigned long BL2_RO_BASE = BL_CODE_BASE;
      
      Change-Id: If4835d1ee462d52b75e5afd2a59b64828707c5aa
      Signed-off-by: default avatarMadhukar Pappireddy <madhukar.pappireddy@arm.com>
      ca661a00
  9. 24 Jan, 2020 1 commit
  10. 20 Jan, 2020 6 commits
  11. 27 Nov, 2019 1 commit
  12. 03 Oct, 2019 1 commit
    • Lionel Debieve's avatar
      delay: timeout detection support · 0711ee5c
      Lionel Debieve authored
      
      
      Introduce timeout_init_us/timeout_elapsed() delay tracking with CNTPCT.
      
      timeout_init_us(some_timeout_us); returns a reference to detect
      timeout for the provided microsecond delay value from current time.
      
      timeout_elapsed(reference) return true/false whether the reference
      timeout is elapsed.
      
      Cherry picked from OP-TEE implementation [1].
        [1] commit 33d30a74502b ("core: timeout detection support")
      
      Minor:
      - Remove stm32mp platform duplicated implementation.
      - Add new include in marvell ble.mk
      Signed-off-by: default avatarEtienne Carriere <etienne.carriere@linaro.org>
      Signed-off-by: default avatarLionel Debieve <lionel.debieve@st.com>
      Change-Id: Iaef6d43c11a2e6992fb48efdc674a0552755ad9c
      0711ee5c
  13. 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
  14. 20 Sep, 2019 1 commit
  15. 10 Sep, 2019 1 commit
  16. 02 Sep, 2019 9 commits