1. 07 Feb, 2020 9 commits
    • Vijayenthiran Subramaniam's avatar
      board/rdn1edge: add support for dual-chip configuration · 2d4b719c
      Vijayenthiran Subramaniam authored
      
      
      RD-N1-Edge based platforms can operate in dual-chip configuration
      wherein two rdn1edge SoCs are connected through a high speed coherent
      CCIX link.
      
      This patch adds a function to check if the RD-N1-Edge platform is
      operating in multi-chip mode by reading the SID register's NODE_ID
      value. If operating in multi-chip mode, initialize GIC-600 multi-chip
      operation by overriding the default GICR frames with array of GICR
      frames and setting the chip 0 as routing table owner.
      
      The address space of the second RD-N1-Edge chip (chip 1) starts from the
      address 4TB. So increase the physical and virtual address space size to
      43 bits to accommodate the multi-chip configuration. If the multi-chip
      mode configuration is detected, dynamically add mmap entry for the
      peripherals memory region of the second RD-N1-Edge SoC. This is required
      to let the BL31 platform setup stage to configure the devices in the
      second chip.
      
      PLATFORM_CORE_COUNT macro is set to be multiple of CSS_SGI_CHIP_COUNT
      and topology changes are added to represent the dual-chip configuration.
      
      In order the build the dual-chip platform, CSS_SGI_CHIP_COUNT macro
      should be set to 2:
      export CROSS_COMPILE=<path-to-cross-compiler>
      make PLAT=rdn1edge CSS_SGI_CHIP_COUNT=2 ARCH=aarch64 all
      
      Change-Id: I576cdaf71f0b0e41b9a9181fa4feb7091f8c7bb4
      Signed-off-by: default avatarAditya Angadi <aditya.angadi@arm.com>
      Signed-off-by: default avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      2d4b719c
    • Aditya Angadi's avatar
      drivers/arm/scmi: allow use of multiple SCMI channels · 31e703f9
      Aditya Angadi authored
      
      
      On systems that have multiple platform components that can interpret the
      SCMI messages, there is a need to support multiple SCMI channels (one
      each to those platform components). Extend the existing SCMI interface
      that currently supports only a single SCMI channel to support multiple
      SCMI channels.
      
      Change-Id: Ice4062475b903aef3b5e5bc37df364c9778a62c5
      Signed-off-by: default avatarAditya Angadi <aditya.angadi@arm.com>
      31e703f9
    • Aditya Angadi's avatar
      drivers/mhu: derive doorbell base address · f8931606
      Aditya Angadi authored
      
      
      In order to allow the MHUv2 driver to be usable with multiple MHUv2
      controllers, use the base address of the controller from the platform
      information instead of the MHUV2_BASE_ADDR macro.
      
      Change-Id: I4dbab87b929fb0568935e6c8b339ce67937f8cd1
      Signed-off-by: default avatarAditya Angadi <aditya.angadi@arm.com>
      f8931606
    • Vijayenthiran Subramaniam's avatar
      plat/arm/sgi: include AFF3 affinity in core position calculation · 80151c27
      Vijayenthiran Subramaniam authored
      
      
      AFF3 bits of MPIDR corresponds to Chip-Id in Arm multi-chip platforms.
      For calculating linear core position of CPU cores from slave chips, AFF3
      bits has to be used. Update `plat_arm_calc_core_pos` assembly function
      to include AFF3 bits in calculation.
      
      Change-Id: I4af2bd82ab8e31e18bc61de22705a73893954260
      Signed-off-by: default avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      80151c27
    • Vijayenthiran Subramaniam's avatar
      plat/arm/sgi: add macros for remote chip device region · e4854153
      Vijayenthiran Subramaniam authored
      
      
      Some of the Reference Design platforms like RD-N1-Edge can operate in
      multi-chip configuration wherein two or more SoCs are connected through
      a high speed coherent CCIX link. For the RD platforms, the remote chip
      address space is at the offset of 4TB per chip. In order for the primary
      chip to access the device memory region on the remote chip, the required
      memory region entries need to be added as mmap entry. This patch adds
      macros related to the remote chip device memory region.
      
      Change-Id: I833810b96f1a0e7c3c289ac32597b6ba03344c80
      Signed-off-by: default avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      e4854153
    • Vijayenthiran Subramaniam's avatar
      plat/arm/sgi: add chip_id and multi_chip_mode to platform variant info · 6daeec70
      Vijayenthiran Subramaniam authored
      
      
      Multi-chip platforms have two or more identical chips connected using a
      high speed coherent link. In order to identify such platforms,
      add chip_id and multi_chip_mode information in the platform variant
      info structure. The values of these two new elements is populated
      during boot.
      
      Change-Id: Ie6e89cb33b3f0f408814f6239cd06647053e23ed
      Signed-off-by: default avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      6daeec70
    • Vijayenthiran Subramaniam's avatar
      plat/arm/sgi: move bl31_platform_setup to board file · c7d4a217
      Vijayenthiran Subramaniam authored
      
      
      For SGI-575 and RD platforms, move bl31_platform_setup handler to
      individual board files to allow the platforms to perform board specific
      bl31 setup.
      
      Change-Id: Ia44bccc0a7f40a155b33909bcb438a0909b20d42
      Signed-off-by: default avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      c7d4a217
    • Vijayenthiran Subramaniam's avatar
      board/rde1edge: fix incorrect topology tree description · 4e950109
      Vijayenthiran Subramaniam authored
      RD-E1-Edge platform consists of two clusters with eight CPUs each and
      two processing elements (PE) per CPU. Commit a9fbf13e
      
       (plat/arm/sgi:
      move topology information to board folder) defined the RD-E1-Edge
      topology tree to have two clusters with eight CPUs each but PE per CPU
      entries were not added. This patch fixes the topology tree accordingly.
      
      Change-Id: I7f97f0013be60e5d51c214fce3962e246bae8a0b
      Signed-off-by: default avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      4e950109
    • Vijayenthiran Subramaniam's avatar
      plat/arm/sgi: introduce number of chips macro · 4d37aa76
      Vijayenthiran Subramaniam authored
      
      
      Introduce macro 'CSS_SGI_CHIP_COUNT' to allow Arm CSS platforms with
      multi-chip support to define number of chiplets on the platform. By
      default, this flag is set to 1 and does not affect the existing single
      chip platforms.
      
      For multi-chip platforms, override the default value of
      CSS_SGI_CHIP_COUNT with the number of chiplets supported on the
      platform. As an example, the command below sets the number of chiplets
      to two on the RD-N1-Edge multi-chip platform:
      
      export CROSS_COMPILE=<path-to-cross-compiler>
      make PLAT=rdn1edge CSS_SGI_CHIP_COUNT=2 ARCH=aarch64 all
      
      Change-Id: If364dc36bd34b30cc356f74b3e97633933e6c8ee
      Signed-off-by: default avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      4d37aa76
  2. 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
  3. 05 Feb, 2020 3 commits
  4. 04 Feb, 2020 1 commit
  5. 03 Feb, 2020 1 commit
  6. 31 Jan, 2020 11 commits
    • Pritesh Raithatha's avatar
      Tegra186: memctrl: lock stream id security config · 029b45d1
      Pritesh Raithatha authored
      
      
      Tegra186 is in production so lock stream id security configs
      for all the clients.
      
      Change-Id: I64bdd5a9f12319a543291bfdbbfc1559d7a44113
      Signed-off-by: default avatarPritesh Raithatha <praithatha@nvidia.com>
      029b45d1
    • Varun Wadekar's avatar
      Tegra194: remove support for simulated system suspend · 8ad1e475
      Varun Wadekar authored
      
      
      This patch removes support for simulated system suspend for Tegra194
      platforms as we have actual silicon platforms that support this
      feature now.
      
      Change-Id: I9ed1b002886fed7bbc3d890a82d6cad67e900bae
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      8ad1e475
    • Varun Wadekar's avatar
      Tegra194: mce: fix multiple MISRA issues · 4a232d5b
      Varun Wadekar authored
      
      
      This patch fixes violations of the following MISRA rules
      
      * Rule 8.5  "An external object or function shall be declared once in
                   one and only one file"
      * Rule 10.3 "The value of an expression shall not be assigned to an
                   object with a narrower essential type or of a different
                   esential type category"
      
      Change-Id: I4314cd4fea0a4adc6665868dd31e619b4f367e14
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      4a232d5b
    • Varun Wadekar's avatar
      Tegra: bpmp: fix multiple MISRA issues · 64aa08fb
      Varun Wadekar authored
      
      
      This patch fixes violations for the following MISRA rules
      
      * Rule 5.7  "A tag name shall be a unique identifier"
      * Rule 10.1 "Operands shall not be of an inappropriate essential type"
      * Rule 10.3 "The value of an expression shall not be assigned to an object
                   with a narrower essential type or of a different essential type
                   category"
      * Rule 10.4 "Both operands of an operator in which the usual arithmetic
                   conversions are performed shall have the same essential type
                   category"
      * Rule 20.7 "Expressions resulting from the expansion of macro parameters
                   shall be enclosed in parentheses"
      * Rule 21.1 "#define and #undef shall not be used on a reserved identifier
                   or reserved macro name"
      
      Change-Id: I83cbe659c2d72e76dd4759959870b57c58adafdf
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      64aa08fb
    • Varun Wadekar's avatar
      Tegra194: se: fix multiple MISRA issues · 8d4107f0
      Varun Wadekar authored
      
      
      This patch fixes violations for the following MISRA rules
      
      * Rule 8.4  "A compatible declaration shall be visible when an object or
                   function with external linkage is defined"
      * Rule 10.1 "Operands shall not be of an inappropriate essential type"
      * Rule 10.6 "Both operands of an operator in which the usual arithmetic
                   conversions are perdormed shall have the same essential type
                   category"
      * Rule 17.7 "The value returned by a function having non-void return
                   type shall be used"
      
      Change-Id: I171ac8340de729fd7be928fa0c0694e9bb8569f0
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      8d4107f0
    • Varun Wadekar's avatar
      Tegra: compile PMC driver for Tegra132/Tegra210 platforms · 57c539f9
      Varun Wadekar authored
      
      
      The PMC driver is used only by Tegra210 and Tegra132 platforms. This
      patch removes pmc.c from the common makefile and moves it to the
      platform specific makefiles.
      
      As a result, the PMC code from common code has been moved to Tegra132
      and Tegra210 platform ports.
      
      Change-Id: Ia157f70e776b3eff3c12eb8f0f02d30102670a98
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      57c539f9
    • Varun Wadekar's avatar
      Tegra: memctrl_v2: remove weakly defined TZDRAM setup handler · f561a179
      Varun Wadekar authored
      
      
      This patch removes the per-platform, weakly defined TZDRAM setup handler,
      as all affected platforms implement the actual handler.
      
      Change-Id: I95d04b2a771bc5d673e56b097d45c493fa388ee8
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      f561a179
    • Varun Wadekar's avatar
      Tegra: remove weakly defined per-platform SiP handler · ba37943d
      Varun Wadekar authored
      
      
      This patch removes the weakly defined per-platform SiP handler
      as all platforms implement this handler, defeating the need for
      a weak definition.
      
      Change-Id: Id4c7e69163d2635de1813f5a385ac874253a8da9
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      ba37943d
    • Varun Wadekar's avatar
      Tegra: remove weakly defined PSCI platform handlers · e44f86ef
      Varun Wadekar authored
      
      
      This patch removes all the weakly defined PSCI handlers defined
      per-platform, to improve code coverage numbers and reduce MISRA
      defects.
      
      Change-Id: I0f9c0caa0a6071d0360d07454b19dcc7340da8c2
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      e44f86ef
    • Varun Wadekar's avatar
      Tegra: remove weakly defined platform setup handlers · 39171cd0
      Varun Wadekar authored
      
      
      This patch converts the weakly defined platform setup handlers into
      actual platform specific handlers to improve code coverage numbers
      and some MISRA defects.
      
      The weakly defined handlers never get executed thus resulting in
      lower coverage - function, function calls, statements, branches
      and pairs.
      
      Change-Id: I02f450f66b5754a90d934df4d76eb91459fca5f9
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      39171cd0
    • Varun Wadekar's avatar
      Tegra: per-SoC DRAM base values · 5f1803f9
      Varun Wadekar authored
      
      
      Tegra194 supports upto 64GB of DRAM, whereas the previous SoCs support
      upto 32GB DRAM. This patch moves the common DRAM base/end macros to
      individual Tegra SoC headers to fix this anomaly.
      
      Change-Id: I1a9f386b67c2311baab289e726d95cef6954071b
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      5f1803f9
  7. 30 Jan, 2020 2 commits
  8. 29 Jan, 2020 3 commits
  9. 28 Jan, 2020 3 commits
    • 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
    • Louis Mayencourt's avatar
      Use correct type when reading SCR register · f1be00da
      Louis Mayencourt authored
      
      
      The Secure Configuration Register is 64-bits in AArch64 and 32-bits in
      AArch32. Use u_register_t instead of unsigned int to reflect this.
      
      Change-Id: I51b69467baba36bf0cfaec2595dc8837b1566934
      Signed-off-by: default avatarLouis Mayencourt <louis.mayencourt@arm.com>
      f1be00da
    • Varun Wadekar's avatar
      Tegra194: enable spe-console functionality · ffd58cca
      Varun Wadekar authored
      
      
      This patch enables the config to switch to the console provided
      by the SPE firmware.
      
      Change-Id: I5a3bed09ee1e84f958d0925501d1a79fb7f694de
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      ffd58cca
  10. 27 Jan, 2020 6 commits