Skip to content
  1. Sep 21, 2022
  2. Sep 20, 2022
  3. Sep 16, 2022
  4. Sep 15, 2022
  5. Sep 09, 2022
  6. Sep 08, 2022
    • Tony Nadackal's avatar
      cmn700: print cmn700 revision number · 2b51ea68
      Tony Nadackal authored
      
      
      Add get_cmn700_revision() to retrieve the revision number from CMN-700
      peripheral id register. Use this function to print the revision number
      at the start of the discovery process.
      
      Signed-off-by: Tony Nadackal's avatarTony K Nadackal <tony.nadackal@arm.com>
      Change-Id: I9744c3b57bff637ad69a292d428b2b8c45e63c3a
      2b51ea68
    • Tony Nadackal's avatar
      cmn650: print cmn650 revision number · 0c992471
      Tony Nadackal authored
      
      
      Add get_cmn650_revision() to retrieve the revision number from CMN-650
      peripheral id register. Use this function to print the revision number
      at the start of the discovery process.
      
      Signed-off-by: Tony Nadackal's avatarTony K Nadackal <tony.nadackal@arm.com>
      Change-Id: Ic767feedb05272077201689ee59aa06e0768ece6
      0c992471
    • Tony Nadackal's avatar
      cmn600: print cmn600 revision number · 1413e344
      Tony Nadackal authored
      
      
      Add get_cmn600_revision_name() to convert the cmn600 revision number to
      a matching string in TRM. During cmn600 discovery process, this revision
      string is logged.
      
      The definitions of the peripheral ID revision numbers have been updated.
      The lower 4-bits of these definitions are the same for all revisions and
      so these bits are discarded and converted it to an enum. This also
      allows better indexing into the revision string array as well.
      
      Signed-off-by: Tony Nadackal's avatarTony K Nadackal <tony.nadackal@arm.com>
      Change-Id: If59c40d14ff5c569c340cd4bbde1deda402856f7
      1413e344
    • Tony Nadackal's avatar
      cmn700: fix out of bounds access of SYS_CACHE_GRP_REGION register · f16c0ee2
      Tony Nadackal authored
      
      
      SYS_CACHE_GRP_REGION[] registers were accessed under the condition of
      region_idx < NON_HASH_MEM_REG_COUNT. Since SYS_CACHE_GRP_REGION has only
      four registers, access to SYS_CACHE_GRP_REGION[region_idx] could lead to
      an out of bound access.
      
      So this patch checks the sam_type to identify the type of the region
      being configured and based on that, separate checks are introduced for
      the boundary conditions for both NON_HASH_MEM_REGION and
      SYS_CACHE_GRP_REGION registers.
      
      Signed-off-by: Tony Nadackal's avatarTony K Nadackal <tony.nadackal@arm.com>
      Change-Id: I0905897fdf312f8f16911e5eebc4436e45f646fb
      f16c0ee2
    • Tony Nadackal's avatar
      cmn600: add support for additional NON_HASH_TGT_NODEID registers · 9ac0773b
      Tony Nadackal authored
      
      
      In latest revisions of cmn600, there are five NON_HASH_TGT_NODEID
      registers. But last two NON_HASH_TGT_NODEID registers are implemented in
      a different address offset.
      
      So the cmn600 version is checked to calculate the maximum number of IO
      memory regions supported and decide which NON_HASH_TGT_NODEID bank needs
      to be programmed based on the group index.
      
      Signed-off-by: Tony Nadackal's avatarTony K Nadackal <tony.nadackal@arm.com>
      Change-Id: Ib83c3fef5d5048eb3d24ec230da6c2f535b2eccc
      9ac0773b
  7. Sep 05, 2022
    • Vivek Kumar Gautam's avatar
      product/rdn2: update base address of expansion block · d64be926
      Vivek Kumar Gautam authored
      
      
      The base address of the SoC expansion block connected to the IO
      Virtualization block is changed from 0xC000_0000_0000 to 0x10_8000_0000.
      Correspondingly, update the memory region descriptor in the CMN-700
      module config data and the mmio start/end address of the four ports
      of the IO virtualization block.
      
      Signed-off-by: Vivek Kumar Gautam's avatarVivek Gautam <vivek.gautam@arm.com>
      Change-Id: I44c7ec66399b276738f352d23bfd5c05dc7ceb3c
      d64be926
  8. Sep 01, 2022
    • Vijayenthiran Subramaniam's avatar
      product/rdn2: enable CCLA to CCLA direct connect mode for variant 2 · 3b7f0acb
      Vijayenthiran Subramaniam authored
      
      
      RD-N2 Multichip platform variant uses CCLA to CCLA direct connect mode
      which connects the upper link layer (ULL) of CCLA of one chip to another
      chip's CCLA's ULL. Hence enable this mode for all the CCG nodes in the
      config data.
      
      Signed-off-by: Vijayenthiran Subramaniam's avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      Change-Id: I593e78778ea599d8a9043c72d82e2f8e2082c93d
      3b7f0acb
    • Vijayenthiran Subramaniam's avatar
      product/rdn2: update cross chip CCG connections for RD-N2 Multichip · 8e60d31d
      Vijayenthiran Subramaniam authored
      
      
      RD-N2 Multichip variant mesh has been updated with total CCG count of
      five per chip and the connections between the chips has been modified.
      Out of the five CCGs, four CCGs are used for the cross chip connection
      and one for the CXL device.
      
      This patch updates the CMN-700 CCG config data with the updated
      connections. Since there are only four CCG used for cross chip
      connections and one CCG left for CXL device, use CCG_PER_CHIP instead of
      RNF_PER_CHIP for calculating the HAID value of the CCG nodes to avoid
      overlapping HAIDs between two or more chips.
      
      Signed-off-by: Vijayenthiran Subramaniam's avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      Change-Id: I4cfde332b33606b59b247983f8acda722d2feaae
      8e60d31d
    • Vijayenthiran Subramaniam's avatar
      product/rdn2: fix the num of RNF_PER_CHIP in cmn700 config data · 0bcaecb1
      Vijayenthiran Subramaniam authored
      
      
      RD-N2 Multichip platform variant contains four CPUs (RN-Fs) per chip.
      Fix this count in the config data. In order to make this macro specific
      to the Multichip variant (Cfg2), rename this macro to RNF_PER_CHIP_CFG2.
      
      Signed-off-by: Vijayenthiran Subramaniam's avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      Change-Id: Iaab9867a97aef6a9d2d8d3333ba9cbd2a06647df
      0bcaecb1
    • Vijayenthiran Subramaniam's avatar
      cmn700: ccg: fix the RAID to LDID programming · a4bc2011
      Vijayenthiran Subramaniam authored
      
      
      RAID to LDID programming in the CCG HA (CCHA hereafter) assign the LDID
      corresponding to the remote chip's RAID. This is used to generate the
      LDID for a request from an remote RN-F with RAID. The need to program
      this register is best explained with an example:
      
      Consider a quad chip configuration with four CMN-700 meshes connected to
      each other, with four RN-F per chip and with `local_ra_cnt` as 14. In
      this case, the RN-F RAID assignment (CCRA LDID to RAID LUT) for each
      chip is shown below:
      
       +------------------+  +------------------+
       |      Chip 0      |  |      Chip 1      |
       +--------+---------+  +--------+---------+
       |RNF LDID|RNF RAID |  |RNF LDID|RNF RAID |
       +--------+---------+  +--------+---------+
       |    0   |    0    |  |    0   |    14   |
       |        |         |  |        |         |
       |    1   |    1    |  |    1   |    15   |
       |        |         |  |        |         |
       |    2   |    2    |  |    2   |    16   |
       |        |         |  |        |         |
       |    3   |    3    |  |    3   |    17   |
       +--------+---------+  +--------+---------+
       +------------------+  +------------------+
       |      Chip 2      |  |      Chip 3      |
       +--------+---------+  +--------+---------+
       |RNF LDID|RNF RAID |  |RNF LDID|RNF RAID |
       +--------+---------+  +--------+---------+
       |    0   |    28   |  |    0   |    42   |
       |        |         |  |        |         |
       |    1   |    29   |  |    1   |    43   |
       |        |         |  |        |         |
       |    2   |    30   |  |    2   |    44   |
       |        |         |  |        |         |
       |    3   |    31   |  |    3   |    45   |
       +--------+---------+  +--------+---------+
      
      Each CMN-700 mesh would know the LDID of the local RN-F. When RN-F
      generates a snoop request, this LDID is then used to identify the RN-F's
      nodeid in the HN-F's `ldid_to_chi_node_id_reg`. In order to generate the
      LDID of a remote RN-F, RAID to LDID values are to be programmed in the
      CCHA raid to ldid LUT and the LDID values has to be contiguous with but
      above the LDID range assigned to local RN-F. When an request from an
      remote RN-F with a RAID arrives at the CCHA, RAID to LDID LUT is used to
      look up against the incoming RAID and generate LDID which would be then
      sent to HN-F's to look up `ldid_to_chi_node_id_reg` which would have the
      CCHA nodeid programmed for remote RN-Fs. Considering the above example,
      when RN-F with LDID 0 on the Chip 1 with RAID 14 sends a snoop request
      to the Chip 0, the request would arrive at Chip 0's CCHA. CCHA's raid to
      ldid LUT is used to generate the LDID for sending to HN-F. In this case,
      CCHA's rnf_exp_raid_to_ldid_reg[3]'s index 1 need to be programmed with
      an LDID value of 4.
      
      Currently, instead of programming the LDID values for the corresponding
      remote agentids (RAIDs of remote RN-Fs), the LDID values are programmed
      in sequence to the current chip's RAID. In the above case, on Chip 0,
      instead of programming the LDID value 4 for RAID 14 (expected), the LDID
      value 4 is programmed to the RAID 4 (actual). So when an snoop request
      from RAID 14 arrives the snoop request would get forwarded with LDID 14
      instead of LDID 4 which would result in response forwarded to wrong CCHA
      (to Chip 3's HA instead of Chip 1 HA) leading to coherency issues
      between chips.
      
      Expected:                 Actual:
      +---------------------+   +---------------------+
      |       Chip 0        |   |       Chip 0        |
      +-----------+---------+   +-----------+---------+
      |  RNF RAID |RNF LDID |   |  RNF RAID |RNF LDID |
      +-----------+---------+   +-----------+---------+
      |    14     |   4     |   |    4      |   4     |
      |           |         |   |           |         |
      |    15     |   5     |   |    5      |   5     |
      |           |         |   |           |         |
      |    16     |   6     |   |    6      |   6     |
      |           |         |   |           |         |
      |    17     |   7     |   |    7      |   7     |
      +-----------+---------+   +-----------+---------+
      |    28     |   8     |   |    8      |   8     |
      |           |         |   |           |         |
      |    29     |   9     |   |    9      |   9     |
      |           |         |   |           |         |
      |    30     |   10    |   |    10     |   10    |
      |           |         |   |           |         |
      |    31     |   11    |   |    11     |   11    |
      +-----------+---------+   +-----------+---------+
      |    42     |   12    |   |    12     |   12    |
      |           |         |   |           |         |
      |    43     |   13    |   |    13     |   13    |
      |           |         |   |           |         |
      |    44     |   14    |   |    14     |   14    |
      |           |         |   |           |         |
      |    45     |   15    |   |    15     |   15    |
      +-----------+---------+   +-----------+---------+
      
      Fix this by programming the LDID values on the correct RAID register
      groups.
      
      Signed-off-by: Vijayenthiran Subramaniam's avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      Change-Id: I58ecb49e5a83a647ffe3050cded0bb8a79c1d3e5
      a4bc2011
    • Vijayenthiran Subramaniam's avatar
      cmn700: ccg: add support for enabling CCLA to CCLA direct connect mode · 74ef1efe
      Vijayenthiran Subramaniam authored
      
      
      CCG enables connecting the CXS interface from the CCLA on one CMN‑700 to
      the CXS interface of the other. In this mode, the interfaces are
      connected without going through the lower link layer and PHY controller
      IP, essentially connecting the upper link layer (ULL) directly on both
      sides CCLA. This mode is used in simulation environments for quick
      system bringups. Add support to enable this mode. An option is also
      added in `mod_cmn700_ccg_config` structure to enable this mode through
      config data.
      
      Signed-off-by: Vijayenthiran Subramaniam's avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      Change-Id: If2164eb4740148a9c8b0b9e546b4d5fd70c9c25e
      74ef1efe
    • Vijayenthiran Subramaniam's avatar
      cmn700: ccg: do bound check while getting ldid · 250232c8
      Vijayenthiran Subramaniam authored
      
      
      get_ldid function returns the ldid based on the state of the port
      aggregation. To avoid any potential buffer overflow, do boundary check
      of ldid value with the total CCG node count.
      
      Signed-off-by: Vijayenthiran Subramaniam's avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      Change-Id: I0c31484ccb00fa21ff25538206d27073e7fa1f41
      250232c8
    • Vijayenthiran Subramaniam's avatar
      cmn700: ccg: do not overwrite link control reg while enabling it · ccc966af
      Vijayenthiran Subramaniam authored
      
      
      When SMP mode is enabled, CCRA and CCHA link control registers are
      programmed with SMP mode enable bit. When enabling the CCRA and CCHA
      links using the same link control registers, the existing values were
      overwritten causing the SMP mode to be disabled. Fix this by doing
      `bitwise OR` when setting the enable bit.
      
      Signed-off-by: Vijayenthiran Subramaniam's avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      Change-Id: Ie582335bae055d913e095e5493193a9254efbffe
      ccc966af
    • Vijayenthiran Subramaniam's avatar
      cmn700: ccg: use correct node names in comments · 45a7c806
      Vijayenthiran Subramaniam authored
      
      
      CXRA and CXHA are CCIX node type. CMN-700 CCG module uses CCRA and
      CCHA which are CXL node types. Rename all instances of CXRA and CXHA to
      CCRA and CCHA respectively in the comments and print statements. This
      patch does not cause any functionality change.
      
      Signed-off-by: Vijayenthiran Subramaniam's avatarVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
      Change-Id: Ib0d578927fe2da34add8c70dd8660de3c719a62a
      45a7c806
  9. Aug 31, 2022
  10. Aug 25, 2022
  11. Aug 17, 2022
  12. Aug 16, 2022
  13. Aug 15, 2022
  14. Aug 10, 2022
  15. Aug 08, 2022
    • Anurag Koul's avatar
      morello: Replace SCP to PCC communication interface · 1be56977
      Anurag Koul authored
      
      
      The communication between SCP and the on-board PCC
      (Platform Configuration Controller) on Morello, is
      currently based on shared memory based transport -
      which is prone to vulnerabilities and isn't secure.
      
      This patch leverages the I2C interface between SCP and
      the PCC to migrate the communication over to the I2C
      channel.
      
      Signed-off-by: Anurag Koul's avatarAnurag Koul <anurag.koul@arm.com>
      Change-Id: I33120c6e5699fa82349603ab8808059fe7b9dc6b
      1be56977
Loading