1. 25 Jan, 2019 6 commits
  2. 23 Jan, 2019 1 commit
    • Sathees Balya's avatar
      plat/arm: Save BL2 descriptors to reserved memory. · 5b8d50e4
      Sathees Balya authored
      
      
      On ARM platforms, the BL2 memory can be overlaid by BL31/BL32. The memory
      descriptors describing the list of executable images are created in BL2
      R/W memory, which could be possibly corrupted later on by BL31/BL32 due
      to overlay. This patch creates a reserved location in SRAM for these
      descriptors and are copied over by BL2 before handing over to next BL
      image.
      
      Also this patch increases the PLAT_ARM_MAX_BL2_SIZE for juno when TBBR
      is enabled.
      
      Fixes ARM-Software/tf-issues#626
      
      Change-Id: I755735706fa702024b4032f51ed4895b3687377f
      Signed-off-by: default avatarSathees Balya <sathees.balya@arm.com>
      5b8d50e4
  3. 22 Jan, 2019 1 commit
  4. 15 Jan, 2019 1 commit
    • Antonio Nino Diaz's avatar
      plat/arm: Fix header dependencies · 234bc7f8
      Antonio Nino Diaz authored
      
      
      From now on, platform_def.h must include any header with definitions that
      are platform-specific (like arm_def.h) and the included headers mustn't
      include back platform_def.h, and shouldn't be used by other files. Only
      platform_def.h should be included in other files. This will ensure that all
      needed definitions are present, rather than needing to include all the
      headers in all the definitions' headers just in case.
      
      This also prevents problems like cyclic dependencies.
      
      Change-Id: I9d3cf4d1de4b956fa035c79545222697acdaf5ca
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      234bc7f8
  5. 08 Jan, 2019 2 commits
  6. 07 Jan, 2019 3 commits
  7. 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
  8. 18 Dec, 2018 1 commit
  9. 11 Dec, 2018 3 commits
  10. 10 Dec, 2018 3 commits
  11. 06 Dec, 2018 1 commit
  12. 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
  13. 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
  14. 29 Nov, 2018 1 commit
  15. 27 Nov, 2018 2 commits
  16. 23 Nov, 2018 1 commit
    • Sathees Balya's avatar
      juno: Add romlib support · afa5cfea
      Sathees Balya authored
      
      
      This patch adds support to build a combined BL1
      and ROMLIB binary file with the right page
      alignment in Juno. When USE_ROMLIB=1 is set for
      Juno, it generates the combined file
      bl1_romlib.bin which needs to be used instead of
      bl1.bin
      
      Change-Id: I407efbe48d3e522fa6ef855538a9587193cb1919
      Signed-off-by: default avatarSathees Balya <sathees.balya@arm.com>
      afa5cfea
  17. 21 Nov, 2018 1 commit
  18. 14 Nov, 2018 1 commit
    • Sughosh Ganu's avatar
      SPM: Register Secure Partition priority level with ehf module · 5681b292
      Sughosh Ganu authored
      
      
      Register a priority level, PLAT_SP_PRI, for secure partition with EL3
      exception handling framework(ehf) module.
      
      The secure partition manager(SPM) would raise the core's priority to
      PLAT_SP_PRI before entering the secure partition, to protect the core
      from getting interrupted while in secure partition.
      
      Change-Id: I686897f052a4371e0efa9b929c07d3ad77249e95
      Signed-off-by: default avatarSughosh Ganu <sughosh.ganu@arm.com>
      5681b292
  19. 08 Nov, 2018 1 commit
    • Antonio Nino Diaz's avatar
      Standardise header guards across codebase · c3cf06f1
      Antonio Nino Diaz authored
      
      
      All identifiers, regardless of use, that start with two underscores are
      reserved. This means they can't be used in header guards.
      
      The style that this project is now to use the full name of the file in
      capital letters followed by 'H'. For example, for a file called
      "uart_example.h", the header guard is UART_EXAMPLE_H.
      
      The exceptions are files that are imported from other projects:
      
      - CryptoCell driver
      - dt-bindings folders
      - zlib headers
      
      Change-Id: I50561bf6c88b491ec440d0c8385c74650f3c106e
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      c3cf06f1
  20. 06 Nov, 2018 1 commit
  21. 01 Nov, 2018 2 commits
    • Sudeep Holla's avatar
      plat: juno: fix build for !CSS_USE_SCMI_DRIVER · 8db71e37
      Sudeep Holla authored
      
      
      When CSS_USE_SCMI_DRIVER is not defined or set to 0, we get the
      following build error.
      
      plat/arm/board/juno/juno_topology.c:16:19: error: ‘CSS_SCMI_PAYLOAD_BASE’ undeclared here (not in a function)
         .scmi_mbx_mem = CSS_SCMI_PAYLOAD_BASE,
                         ^~~~~~~~~~~~~~~~~~~~~
      plat/arm/board/juno/juno_topology.c:17:38: error: ‘CSS_SCMI_MHU_DB_REG_OFF’ undeclared here (not in a function)
         .db_reg_addr = PLAT_CSS_MHU_BASE + CSS_SCMI_MHU_DB_REG_OFF,
                                            ^~~~~~~~~~~~~~~~~~~~~~~
                                            CSS_CPU_PWR_STATE_OFF
      
      Fix the error in order to get function legacy SCPI support functional.
      
      Change-Id: I00cb80db9968aa0be546e33a3a682a2db87719be
      Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
      8db71e37
    • Antonio Nino Diaz's avatar
      plat/arm: Fix types of constants in headers · f21c6321
      Antonio Nino Diaz authored
      
      
      Change-Id: I33eaee8e7c983b3042635a448cb8d689ea4e3a12
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      f21c6321
  22. 29 Oct, 2018 3 commits
    • Deepak Pandey's avatar
      plat/arm: Introduce the N1SDP. · 80d37c28
      Deepak Pandey authored
      
      
      This patch adds support for the N1SDP (NeoVerse N1 System Development
      Platform). It is an initial port and additional features are expected
      to be added later.
      
      The port includes only BL31 support as the System Control Processor
      (SCP) is expected to take the role of primary boatloader
      
      Change-Id: Ife17d8215a7bfcc1420204a72205e7ef920d0c10
      Signed-off-by: default avatarDeepak Pandey <Deepak.Pandey@arm.com>
      80d37c28
    • Soby Mathew's avatar
      FVP: Enable PIE for RESET_TO_BL31=1 · fc922ca8
      Soby Mathew authored
      
      
      This patch enabled PIE for FVP when RESET_TO_BL31=1. The references
      to BL31_BASE are replaced by BL31_START as being a symbol exported by
      the linker, will create a dynamic relocation entry in .rela.dyn and
      hence will be fixed up by dynamic linker at runtime. Also, we disable
      RECLAIM_INIT_CODE when PIE is enabled as the init section overlay
      creates some static relocations which cannot be handled by the
      dynamic linker currently.
      
      Change-Id: I86df1b0a8b2a8bbbe7c3f3c0b9a08c86c2963ec0
      Signed-off-by: default avatarSoby Mathew <soby.mathew@arm.com>
      fc922ca8
    • Soby Mathew's avatar
      plat/arm: Use `mov_imm` macro to load immediate values · bd83b396
      Soby Mathew authored
      
      
      This patch makes use of mov_imm macro where possible to load
      immediate values within ARM platform layer.
      
      Change-Id: I02bc7fbc1fa334c9fccf76fbddf515952f9a1298
      Signed-off-by: default avatarSoby Mathew <soby.mathew@arm.com>
      bd83b396
  23. 26 Oct, 2018 2 commits
    • Roberto Vargas's avatar
      Convert arm_setup_page_tables into a generic helper · 0916c38d
      Roberto Vargas authored
      
      
      This function is not related to Arm platforms and can be reused by other
      platforms if needed.
      
      Change-Id: Ia9c328ce57ce7e917b825a9e09a42b0abb1a53e8
      Co-authored-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      0916c38d
    • Antonio Nino Diaz's avatar
      xlat: Fix compatibility between v1 and v2 · 03987d01
      Antonio Nino Diaz authored
      
      
      There are several platforms using arm_setup_page_tables(), which is
      supposed to be Arm platform only. This creates several dependency
      problems between platforms.
      
      This patch adds the definition XLAT_TABLES_LIB_V2 to the xlat tables lib
      v2 makefile. This way it is possible to detect from C code which version
      is being used and include the correct header.
      
      The file arm_xlat_tables.h has been renamed to xlat_tables_compat.h and
      moved to a common folder. This way, when in doubt, this header can be
      used to guarantee compatibility, as it includes the correct header based
      on XLAT_TABLES_LIB_V2.
      
      This patch also removes the usage of ARM_XLAT_TABLES_V1 from QEMU (so
      that is now locked in xlat lib v2) and ZynqMP (where it was added as a
      workaround).
      
      Change-Id: Ie1e22a23b44c549603d1402a237a70d0120d3e04
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      03987d01