1. 29 Mar, 2021 1 commit
    • Thomas Abraham's avatar
      plat/sgi: refactor SDEI specific macros · a8834474
      Thomas Abraham authored
      
      
      The macros specific to SDEI defined in the sgi_base_platform_def.h are
      not applicable for all the platforms supported by plat/sgi. So refactor
      the SDEI specific macros into a new header file and include this file on
      only on platforms it is applicable on.
      Signed-off-by: default avatarThomas Abraham <thomas.abraham@arm.com>
      Change-Id: I0cb7125334f02a21cae1837cdfd765c16ab50bf5
      a8834474
  2. 09 Dec, 2020 2 commits
  3. 02 Sep, 2020 1 commit
  4. 14 Aug, 2020 1 commit
  5. 24 Jun, 2020 1 commit
    • Manish V Badarkhe's avatar
      plat/arm: Rentroduce tb_fw_config device tree · 3cb84a54
      Manish V Badarkhe authored
      
      
      Moved BL2 configuration nodes from fw_config to newly
      created tb_fw_config device tree.
      
      fw_config device tree's main usage is to hold properties shared
      across all BLx images.
      An example is the "dtb-registry" node, which contains the
      information about the other device tree configurations
      (load-address, size).
      
      Also, Updated load-address of tb_fw_config which is now located
      after fw_config in SRAM.
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      Change-Id: Ic398c86a4d822dacd55b5e25fd41d4fe3888d79a
      3cb84a54
  6. 08 Jun, 2020 1 commit
    • Manish Pandey's avatar
      plat/arm: do not include export header directly · 81de5bf7
      Manish Pandey authored
      
      
      As per "include/export/README", TF-A code should never include export
      headers directly. Instead, it should include a wrapper header that
      ensures the export header is included in the right manner.
      
      "tbbr_img_def_exp.h" is directly included in TF-A code, this patch
      replaces it with its  wrapper header "tbbr_img_def.h".
      Signed-off-by: default avatarManish Pandey <manish.pandey2@arm.com>
      Change-Id: I31c1a42e6a7bcac4c396bb17e8548567ecd8147d
      81de5bf7
  7. 30 Apr, 2020 1 commit
  8. 24 Feb, 2020 1 commit
  9. 12 Feb, 2020 1 commit
  10. 07 Feb, 2020 6 commits
  11. 06 Feb, 2020 1 commit
    • Max Shvetsov's avatar
      Adds option to read ROTPK from registers for FVP · a6ffddec
      Max Shvetsov authored
      
      
      Enables usage of ARM_ROTPK_LOCATION=regs for FVP board.
      Removes hard-coded developer keys. Instead, setting
      ARM_ROTPK_LOCATION=devel_* takes keys from default directory.
      In case of ROT_KEY specified - generates a new hash and replaces the
      original.
      
      Note: Juno board was tested by original feature author and was not tested
      for this patch since we don't have access to the private key. Juno
      implementation was moved to board-specific file without changing
      functionality. It is not known whether byte-swapping is still needed
      for this platform.
      
      Change-Id: I0fdbaca0415cdcd78f3a388551c2e478c01ed986
      Signed-off-by: default avatarMax Shvetsov <maksims.svecovs@arm.com>
      a6ffddec
  12. 27 Jan, 2020 1 commit
  13. 10 Jan, 2020 1 commit
    • Deepika Bhavnani's avatar
      Unify type of "cpu_idx" across PSCI module. · 5b33ad17
      Deepika Bhavnani authored
      
      
      NOTE for platform integrators:
         API `plat_psci_stat_get_residency()` third argument
         `last_cpu_idx` is changed from "signed int" to the
         "unsigned int" type.
      
      Issue / Trouble points
      1. cpu_idx is used as mix of `unsigned int` and `signed int` in code
      with typecasting at some places leading to coverity issues.
      
      2. Underlying platform API's return cpu_idx as `unsigned int`
      and comparison is performed with platform specific defines
      `PLAFORM_xxx` which is not consistent
      
      Misra Rule 10.4:
      The value of a complex expression of integer type may only be cast to
      a type that is narrower and of the same signedness as the underlying
      type of the expression.
      
      Based on above points, cpu_idx is kept as `unsigned int` to match
      the API's and low-level functions and platform defines are updated
      where ever required
      Signed-off-by: default avatarDeepika Bhavnani <deepika.bhavnani@arm.com>
      Change-Id: Ib26fd16e420c35527204b126b9b91e8babcc3a5c
      5b33ad17
  14. 01 Aug, 2019 1 commit
    • Julius Werner's avatar
      Switch AARCH32/AARCH64 to __aarch64__ · 402b3cf8
      Julius Werner authored
      
      
      NOTE: AARCH32/AARCH64 macros are now deprecated in favor of __aarch64__.
      
      All common C compilers pre-define the same macros to signal which
      architecture the code is being compiled for: __arm__ for AArch32 (or
      earlier versions) and __aarch64__ for AArch64. There's no need for TF-A
      to define its own custom macros for this. In order to unify code with
      the export headers (which use __aarch64__ to avoid another dependency),
      let's deprecate the AARCH32 and AARCH64 macros and switch the code base
      over to the pre-defined standard macro. (Since it is somewhat
      unintuitive that __arm__ only means AArch32, let's standardize on only
      using __aarch64__.)
      
      Change-Id: Ic77de4b052297d77f38fc95f95f65a8ee70cf200
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      402b3cf8
  15. 23 Jul, 2019 1 commit
    • Ambroise Vincent's avatar
      arm: Shorten the Firmware Update (FWU) process · 37b70031
      Ambroise Vincent authored
      
      
      The watchdog is configured with a default value of 256 seconds in order
      to implement the Trusted Board Boot Requirements.
      
      For the FVP and Juno platforms, the FWU process relies on a watchdog
      reset. In order to automate the test of FWU, the length of this process
      needs to be as short as possible. Instead of waiting for those 4 minutes
      to have a reset by the watchdog, tell it to reset immediately.
      
      There are no side effects as the value of the watchdog's load register
      resets to 0xFFFFFFFF.
      
      Tested on Juno.
      
      Change-Id: Ib1aea80ceddc18ff1e0813a5b98dd141ba8a3ff2
      Signed-off-by: default avatarAmbroise Vincent <ambroise.vincent@arm.com>
      37b70031
  16. 26 Jun, 2019 1 commit
    • Manoj Kumar's avatar
      n1sdp: add code for DDR ECC enablement and BL33 copy to DDR · de8bc83e
      Manoj Kumar authored
      
      
      N1SDP platform supports RDIMMs with ECC capability. To use the ECC
      capability, the entire DDR memory space has to be zeroed out before
      enabling the ECC bits in DMC620. Zeroing out several gigabytes of
      memory from SCP is quite time consuming so functions are added that
      zeros out the DDR memory from application processor which is
      much faster compared to SCP. BL33 binary cannot be copied to DDR memory
      before enabling ECC so this is also done by TF-A from IOFPGA-DDR3
      memory to main DDR4 memory after ECC is enabled.
      
      Original PLAT_PHY_ADDR_SPACE_SIZE was limited to 36-bits with which
      the entire DDR space cannot be accessed as DRAM2 starts in base
      0x8080000000. So these macros are redefined for all ARM platforms.
      
      Change-Id: If09524fb65b421b7a368b1b9fc52c49f2ddb7846
      Signed-off-by: default avatarManoj Kumar <manoj.kumar3@arm.com>
      de8bc83e
  17. 01 Apr, 2019 1 commit
    • Ambroise Vincent's avatar
      Remove several warnings reported with W=1 · 609e053c
      Ambroise Vincent authored
      
      
      Improved support for W=1 compilation flag by solving missing-prototypes
      and old-style-definition warnings.
      
      The libraries are compiling with warnings (which turn into errors with
      the Werror flag).
      
      Outside of libraries, some warnings cannot be fixed without heavy
      structural changes.
      
      Change-Id: I1668cf99123ac4195c2a6a1d48945f7a64c67f16
      Signed-off-by: default avatarAmbroise Vincent <ambroise.vincent@arm.com>
      609e053c
  18. 13 Mar, 2019 1 commit
  19. 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
  20. 05 Dec, 2018 1 commit
    • Chandni Cherukuri's avatar
      plat/arm/sgi: Use NT_FW_CONFIG instead of HW_CONFIG · 77ab969a
      Chandni Cherukuri authored
      
      
      With the two new APIs 'plat_arm_sgi_get_platform_id' and
      'plat_arm_sgi_get_config_id' that are available now, BL31 need not
      depend on hw_config device tree to identify the platform. In addition
      to this, the existing hardware description in hw_config can be limited
      to use by BL33 and not by the operating system.
      
      So the hardware description from hw_config dts can be moved into
      nt_fw_config dts and the use of hw_config dts can be removed.
      
      Change-Id: I873b7e1e72823d3ec5d253a848e85ae724f09e49
      Signed-off-by: default avatarChandni Cherukuri <chandni.cherukuri@arm.com>
      77ab969a
  21. 03 Dec, 2018 1 commit
    • Chandni Cherukuri's avatar
      plat/arm/sgi: Use platform specific functions to get platform ids · 699223a2
      Chandni Cherukuri authored
      
      
      Add two new functions 'plat_arm_sgi_get_platform_id' and
      'plat_arm_sgi_get_config_id' which will be implemented by all the
      SGI platforms. These functions can be used to determine the part
      number and configuration id of the SGI platforms.
      
      In BL2, these functions are used to populate the 'system-id' node.
      In BL31, these functions are used to populate the 'sgi_plat_info_t'
      structure with the part number and configuration id of the platform.
      
      Change-Id: I3bacda933527724a3b4074ad4ed5b53a81ea4689
      Signed-off-by: default avatarChandni Cherukuri <chandni.cherukuri@arm.com>
      699223a2
  22. 27 Nov, 2018 2 commits
  23. 21 Nov, 2018 1 commit
  24. 18 Oct, 2018 3 commits
    • Chandni Cherukuri's avatar
      plat/arm/sgi: add system-id node in HW_CONFIG dts · 8c7b55f9
      Chandni Cherukuri authored
      
      
      Dynamically populating the 'system-id' node in the HW_CONFIG dts makes
      it difficult to enforce memory overlap checks. So add the system-id node
      in the HW_CONFIG dts file as a place holder with 'platform-id' and
      'config-id' set to zero.
      
      The code at BL2 stage determines the values of 'platform-id' and
      'config-id' at runtime and updates the corresponding fields in the
      system-id node of HW_CONFIG dts.
      
      Change-Id: I2ca9980b994ac418da8afa0c72716ede10aff68a
      Signed-off-by: default avatarChandni Cherukuri <chandni.cherukuri@arm.com>
      8c7b55f9
    • Chandni Cherukuri's avatar
      plat/arm/sgi: move fdts files to sgi575 board directory · 63197d01
      Chandni Cherukuri authored
      
      
      To align the placement of ftds files with that of other Arm platforms,
      move the ftds files from plat/arm/css/sgi/ to plat/arm/board/sgi575.
      
      Change-Id: Id7c772eb5cf3d308d4e02a3c8099218e889a0e96
      Signed-off-by: default avatarChandni Cherukuri <chandni.cherukuri@arm.com>
      63197d01
    • Chandni Cherukuri's avatar
      plat/arm/sgi: reorganize platform macros · 91e6f26f
      Chandni Cherukuri authored
      
      
      In preparation of adding support for upcoming SGI platforms, macros
      common to all the SGI platforms are moved into sgi_base_platform_def.h
      file. Macros that are specific to sgi575 platform remain in the
      platform_def.h file. In addition to this, the platform_def.h file is
      moved to sgi575 board directory. Also the ENT_CPU_SOURCES has been
      renamed to SGI_CPU_SOURCES and moved from sgi-common.mk to board
      specific makefile platform.mk
      
      Change-Id: Iccdd9f070f4feea232b9fbf4fdcc0ef2e8eccbf2
      Signed-off-by: default avatarChandni Cherukuri <chandni.cherukuri@arm.com>
      91e6f26f
  25. 10 Oct, 2018 1 commit
    • Antonio Nino Diaz's avatar
      plat/arm: Move norflash driver to drivers/ folder · aa7877c4
      Antonio Nino Diaz authored
      
      
      This way it can be reused by other platforms if needed.
      
      Note that this driver is designed to work with the Versatile Express NOR
      flash of Juno and FVP. In said platforms, the memory is organized as an
      interleaved memory of two chips with a 16 bit word.
      
      Any platform that wishes to reuse it with a different configuration will
      need to modify the driver so that it is more generic.
      
      Change-Id: Ic721758425864e0cf42b7b9b04bf0d9513b6022e
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      aa7877c4
  26. 21 Aug, 2018 1 commit
  27. 28 Mar, 2018 1 commit