1. 25 Aug, 2020 2 commits
    • Julius Werner's avatar
      qti: Add SPMI PMIC arbitrator driver · f40008a4
      Julius Werner authored
      
      
      This patch adds a very rudimentary driver for the SPMI arbitrator used
      to access the PMIC. It doesn't support all the controller's actual
      arbitration features, so it should probably not be used concurrently
      with a running kernel (and it's also not optimized for performance). But
      it can be used to set a few registers during boot or on shutdown to
      control reset handling, which is all we need it for.
      
      Change-Id: I8631c34a2a89ac71aa1ec9b8266e818c922fe34a
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      f40008a4
    • Julius Werner's avatar
      qti/sc7180: Fix GIC-600 support setting · 2acf0043
      Julius Werner authored
      
      
      The patch adding platform support for sc7180 landed around roughly the
      same time as the patch that changed GICV3_IMPL to GICV3_SUPPORT_GIC600.
      Thus the sc7180 Makefile is still using the old variable name which now
      no longer does anything, and it hangs on boot due to the lacking GIC-600
      support. This patch fixes the issue.
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      Change-Id: Id76ada1445c3c5ac9a5a3697b4e749088b89d796
      2acf0043
  2. 21 Aug, 2020 1 commit
  3. 20 Aug, 2020 2 commits
  4. 19 Aug, 2020 4 commits
    • Alexei Fedorov's avatar
      libc/memset: Implement function in assembler · e7d344de
      Alexei Fedorov authored
      
      
      Trace analysis of FVP_Base_AEMv8A model running in
      Aarch32 mode with the build options listed below:
      TRUSTED_BOARD_BOOT=1 GENERATE_COT=1
      ARM_ROTPK_LOCATION=devel_ecdsa KEY_ALG=ecdsa
      ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_ecdsa.pem
      shows that when auth_signature() gets called
      71.84% of CPU execution time is spent in memset() function
      written in C using single byte write operations,
      see lib\libc\memset.c.
      This patch replaces C memset() implementation with assembler
      version giving the following results:
      - for Aarch32 in auth_signature() call memset() CPU time
      reduced to 24.84%.
      - Number of CPU instructions executed during TF-A
      boot stage before start of BL33 in RELEASE builds:
      ----------------------------------------------
      |  Arch   |     C      |  assembler |    %   |
      ----------------------------------------------
      | Aarch32 | 2073275460 | 1487400003 | -28.25 |
      | Aarch64 | 2056807158 | 1244898303 | -39.47 |
      ----------------------------------------------
      The patch also replaces memset.c with aarch64/memset.S
      in plat\nvidia\tegra\platform.mk.
      
      Change-Id: Ifbf085a2f577a25491e2d28446ee95a4ac891597
      Signed-off-by: default avatarAlexei Fedorov <Alexei.Fedorov@arm.com>
      e7d344de
    • Ruari Phipps's avatar
      SPM: Add third cactus partition to manifests · 9de91c75
      Ruari Phipps authored
      
      
      Add information about the third partition so it can be loaded into SPM
      when running the tests
      Signed-off-by: default avatarRuari Phipps <ruari.phipps@arm.com>
      Change-Id: I5544e88df391ef294ddf6b5750d468d3e74892b1
      9de91c75
    • Jacky Bai's avatar
      plat: imx8m: Correct the imr mask reg offset · fb9212be
      Jacky Bai authored
      
      
      The number of gpc imr mask reg & the offset is different
      on some SOC, so correct it & replace the magic number with
      macro define.
      Signed-off-by: default avatarJacky Bai <ping.bai@nxp.com>
      Change-Id: Ic701675cdd92e043dcd7f06722f2e871068aec74
      fb9212be
    • Jacky Bai's avatar
      plat: imx8m: Keep A53 PLAT on in wait mode(ret) · 9eb1bb63
      Jacky Bai authored
      
      
      Keep A53 PLAT(SCU) power domain on in wait mode(ret).
      RBC count only need to be set in PLAT OFF mode, so
      change it accordingly.
      Signed-off-by: default avatarJacky Bai <ping.bai@nxp.com>
      Change-Id: Ie55e25c8210d298506fc4dca7a9653583db45e0c
      9eb1bb63
  5. 18 Aug, 2020 8 commits
  6. 17 Aug, 2020 2 commits
  7. 14 Aug, 2020 5 commits
    • Yann Gautier's avatar
      stm32mp1: use newly introduced GICv2 makefile · 33c91baf
      Yann Gautier authored
      
      
      Include the GICv2 makefile in STM32MP1 SP_min makefile, and use
      ${GICV2_SOURCES} instead of taking drivers/arm/gic files directly.
      
      Change-Id: Ibcaed5b0bd17f6d8cf200e208c11cc10cd6d2ee5
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      33c91baf
    • Ruari Phipps's avatar
      SPM: Add owner field to cactus secure partitions · ad86d35a
      Ruari Phipps authored
      
      
      For supporting dualroot CoT for Secure Partitions a new optional field
      "owner" is introduced which will be used to sign the SP with
      corresponding signing domain. To demonstrate its usage, this patch adds
      owners to cactus Secure Partitions.
      Signed-off-by: default avatarRuari Phipps <ruari.phipps@arm.com>
      Change-Id: I7b760580355fc92edf5402cecc38c38125dc1cae
      ad86d35a
    • Manish Pandey's avatar
      plat/arm: enable support for Plat owned SPs · 990d972f
      Manish Pandey authored
      
      
      For Arm platforms SPs are loaded by parsing tb_fw_config.dts and
      adding them to SP structure sequentially, which in-turn is appended to
      loadable image list.
      
      With recently introduced dualroot CoT for SPs where they are owned
      either by SiP or by Platform. SiP owned SPs index starts at SP_PKG1_ID
      and Plat owned SPs index starts at SP_PKG5_ID. As the start index of SP
      depends on the owner, there should be a mechanism to parse owner of a SP
      and put it at the correct index in SP structure.
      
      This patch adds support for parsing a new optional field "owner" and
      based on it put SP details(UUID & Load-address) at the correct index in
      SP structure.
      
      Change-Id: Ibd255b60d5c45023cc7fdb10971bef6626cb560b
      Signed-off-by: default avatarManish Pandey <manish.pandey2@arm.com>
      990d972f
    • Jimmy Brisson's avatar
      Use true instead of 1 in while · 92069086
      Jimmy Brisson authored
      
      
      This resolves MISRA defects such as:
      
          plat/common/plat_bl1_common.c:63:[MISRA C-2012 Rule 14.4 (required)]
          The condition expression "1" does not have an essentially boolean type.
      
      Change-Id: I679411980ad661191fbc834a44a5eca5494fd0e2
      Signed-off-by: default avatarJimmy Brisson <jimmy.brisson@arm.com>
      92069086
    • Jimmy Brisson's avatar
      Prevent colliding identifiers · d74c6b83
      Jimmy Brisson authored
      
      
      There was a collision between the name of the typedef in the CASSERT and
      something else, so we make the name of the typedef unique to the
      invocation of DEFFINE_SVC_UUID2 by appending the name that's passed into
      the macro. This eliminates the following MISRA violation:
      
          bl1/bl1_main.c:233:[MISRA C-2012 Rule 5.6 (required)] Identifier
          "invalid_svc_uuid" is already used to represent a typedef.
      
      This also resolves MISRA rule 5.9.
      
      These renamings are as follows:
        * tzram -> secram. This matches the function call name as it has
        sec_mem in it's  name
        * fw_config_base -> config_base. This file does not mess with
        hw_conig, so there's little chance of confusion
      
      Change-Id: I8734ba0956140c8e29b89d0596d10d61a6ef351e
      Signed-off-by: default avatarJimmy Brisson <jimmy.brisson@arm.com>
      d74c6b83
  8. 13 Aug, 2020 1 commit
  9. 10 Aug, 2020 2 commits
    • Alexei Fedorov's avatar
      plat/arm: Reduce size of BL31 binary · fa1fdb22
      Alexei Fedorov authored
      
      
      BL31 binary size is aligned to 4KB because of the
      code in include\plat\arm\common\arm_reclaim_init.ld.S:
          __INIT_CODE_UNALIGNED__ = .;
          . = ALIGN(PAGE_SIZE);
          __INIT_CODE_END__ = .;
      with all the zero data after the last instruction of
      BL31 code to the end of the page.
      This causes increase in size of BL31 binary stored in FIP
      and its loading time by BL2.
      This patch reduces the size of BL31 image by moving
      page alignment from __INIT_CODE_END__ to __STACKS_END__
      which also increases the stack size for secondary CPUs.
      
      Change-Id: Ie2ec503fc774c22c12ec506d74fd3ef2b0b183a9
      Signed-off-by: default avatarAlexei Fedorov <Alexei.Fedorov@arm.com>
      fa1fdb22
    • Saurabh Gorecha's avatar
      sc7180 platform support · 5bd9c17d
      Saurabh Gorecha authored
      
      
      Adding support for QTI CHIP SC7180 on ATF
      
      Change-Id: I0d82d3a378036003fbd0bc4784f61464bb76ea82
      Signed-off-by: default avatarSaurabh Gorecha <sgorecha@codeaurora.org>
      Co-authored-by: default avatarMaulik Shah <mkshah@codeaurora.org>
      5bd9c17d
  10. 09 Aug, 2020 2 commits
  11. 06 Aug, 2020 1 commit
  12. 04 Aug, 2020 1 commit
    • Grant Likely's avatar
      Use abspath to dereference $BUILD_BASE · 29214e95
      Grant Likely authored
      
      
      If the user tries to change BUILD_BASE to put the build products outside
      the build tree the compile will fail due to hard coded assumptions that
      $BUILD_BASE is a relative path. Fix by using $(abspath $(BUILD_BASE))
      to rationalize to an absolute path every time and remove the relative
      path assumptions.
      
      This patch also adds documentation that BUILD_BASE can be specified by
      the user.
      Signed-off-by: default avatarGrant Likely <grant.likely@arm.com>
      Signed-off-by: default avatarManish Pandey <manish.pandey2@arm.com>
      Change-Id: Ib1af874de658484aaffc672f30029b852d2489c8
      29214e95
  13. 31 Jul, 2020 4 commits
  14. 30 Jul, 2020 5 commits
    • Andre Przywara's avatar
      arm_fpga: Support uploading a custom command line · fa30f73b
      Andre Przywara authored
      
      
      The command line for BL33 payloads is typically taken from the DTB. On
      "normal" systems the bootloader will put the right version in there, but
      we typically don't use one on the FPGAs.
      To avoid editing (and possibly re-packaging) the DTB for every change in
      the command line, try to read it from some "magic" memory location
      instead. It can be easily placed there by the tool that uploads the
      other payloads to the FPGA's memory. BL31 will then replace the existing
      command line in the DTB with that new string.
      
      To avoid reading garbage, check the memory location for containing a
      magic value. This is conveniently chosen to be a simple ASCII string, so
      it can just preceed the actual command line in a text file:
      --------------------------------
      CMD:console=ttyAMA0,38400n8 debug loglevel=8
      --------------------------------
      
      Change-Id: I5923a80332c9fac3b4afd1a6aaa321233d0f60da
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      fa30f73b
    • Olivier Deprez's avatar
      SPM: build OP-TEE as an S-EL1 Secure Partition · db1ef41a
      Olivier Deprez authored
      
      
      Provide manifest and build options to boot OP-TEE as a
      guest S-EL1 Secure Partition on top of Hafnium in S-EL2.
      
      Increase ARM_SP_MAX_SIZE to cope with OP-TEE debug build image.
      Signed-off-by: default avatarOlivier Deprez <olivier.deprez@arm.com>
      Change-Id: Idd2686fa689a78fe2d05ed92b1d23c65e2edd4cb
      db1ef41a
    • Grzegorz Jaszczyk's avatar
      plat: marvell: octeontx: add support for t9130 · 2c9d2636
      Grzegorz Jaszczyk authored
      
      
      CN-9130 has single CP0 inside the package and 2 additional one from MoChi
      interface. In case of db-9130-modular board the MCI interface is routed to:
      - on-board CP115 (MCI0)
      - extension board CP115 (MCI1)
      
      The board is based on DIMM DDR.
      
      The 9130 has up to 3CP, and decoding windows looks like below:
      
        (free for further use)
       .----------. 0xf800 0000
       | CP2 CFG  |
       '----------' 0xf600 0000
       | CP1 CFG  |
       '----------' 0xf400 0000
       | CP0 CFG  |
       '----------' 0xf200 0000
       | AP CFG   |
       '----------' 0xf000 0000
        (free for further use)
       .----------. 0xec00 0000
       | SPI      |
       | MEM_MAP  | (Currently not opened)
       '----------' 0xe800 0000
       | PEX2_CP2 |
       '----------' 0xe700 0000
       | PEX1_CP2 |
       '----------' 0xe600 0000
       | PEX0-CP2 |
       '----------'
       .----------. 0xe500 0000
       | PEX2_CP1 |
       '----------' 0xe400 0000
       | PEX1_CP1 |
       '----------' 0xe300 0000
       | PEX0-CP1 |
       '----------'
       .----------. 0xe200 0000
       | PEX2-CP0 |
       '----------' 0xe100 0000
       | PEX1-CP0 |
       '----------' 0xe000 0000
       | PEX0-CP0 |
       | 512MB    |
       '----------' 0xc000 0000
      
      Change-Id: Ia8eee4f96c1043753f74f9da437b9f72ce2d6eb0
      Signed-off-by: default avatarGrzegorz Jaszczyk <jaz@semihalf.com>
      2c9d2636
    • Alex Evraev's avatar
      plat: marvell: t9130: add SVC support · 12c66c6b
      Alex Evraev authored
      
      
      As the preparation for adding the CN913x SoC family support
      introduce code that enable SVC and the frequency handling
      specific for the AP807 North Bridge.
      
      Change-Id: Ibe34a511b49cd9671a2e53b77bdcfc644bb915e3
      Signed-off-by: default avatarAlex Evraev <alexev@marvell.com>
      12c66c6b
    • Grzegorz Jaszczyk's avatar
      plat: marvell: t9130: update AVS settings · 885cd821
      Grzegorz Jaszczyk authored
      
      
      Update AVS settings and remove unused macros.
      This is a preparation patch for adding CN913x SoC
      family support.
      
      Change-Id: Ib1dd70885a316ed5763d0f4730d0e4734da117b7
      Signed-off-by: default avatarGrzegorz Jaszczyk <jaz@semihalf.com>
      885cd821