1. 23 Dec, 2020 6 commits
    • Nishanth Menon's avatar
      ti: k3: Move USE_COHERENT_MEM only for the generic board · ff7b75e2
      Nishanth Menon authored
      commit 65f7b817
      
       ("ti: k3: common: Use coherent memory for shared data")
      introduced WARMBOOT_ENABLE_DCACHE_EARLY and USE_COHERENT_MEM to handle
      multiple clusters across L3 cache systems. This is represented by
      "generic" board in k3 platform.
      
      On "lite" platforms, however, system level coherency is lacking since
      we don't have a global monitor or an L3 cache controller. Though, at
      a cluster level, ARM CPU level coherency is very much possible since
      the max number of clusters permitted in lite platform configuration is
      "1".
      
      However, we need to be able to disable USE_COHERENT_MEM for the lite
      configuration due to the lack of system level coherency.
      
      See docs/getting_started/build-options.rst for further information.
      Signed-off-by: default avatarNishanth Menon <nm@ti.com>
      Change-Id: I4a0ec150b3f9ea12369254aef834a6cbe82d6be6
      ff7b75e2
    • Suman Anna's avatar
      ti: k3: drivers: ti_sci: Update ti_sci_msg_req_reboot to include domain · 22b7a229
      Suman Anna authored
      
      
      The ti_sci_msg_req_reboot message payload has been extended to include
      a domain field, and this should be zero to reset the entire SoC with
      System Firmwares newer than v2020.04. Add the domain field to the
      ti_sci_msg_req_reboot message structure for completeness. Set it up
      to zero to fix the reboot issues with newer firmwares.
      
      This takes care of the specific ABI that changed and has an impact on
      ATF function.
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      Signed-off-by: default avatarDave Gerlach <d-gerlach@ti.com>
      Signed-off-by: default avatarNishanth Menon <nm@ti.com>
      Change-Id: I4f8064b9d6555687822dc2b2b8ec97609286fa0b
      22b7a229
    • Nishanth Menon's avatar
      ti: k3: common: sec_proxy: Fill non-message data fields with 0x0 · f577388a
      Nishanth Menon authored
      
      
      Sec proxy data buffer is 60 bytes with the last of the registers
      indicating transmission completion. This however poses a bit
      of a challenge.
      
      The backing memory for sec_proxy is regular memory, and all sec proxy
      does is to trigger a burst of all 60 bytes of data over to the target
      thread backing ring accelerator. It doesn't do a memory scrub when
      it moves data out in the burst. When we transmit multiple messages,
      remnants of previous message is also transmitted which results in
      some random data being set in TISCI fields of messages that have been
      expanded forward.
      
      The entire concept of backward compatibility hinges on the fact that
      the unused message fields remain 0x0 allowing for 0x0 value to be
      specially considered when backward compatibility of message extension
      is done.
      
      So, instead of just writing the completion register, we continue
      to fill the message buffer up with 0x0 (note: for partial message
      involving completion, we already do this).
      
      This allows us to scale and introduce ABI changes back into TF-A only
      as needed.
      Signed-off-by: default avatarNishanth Menon <nm@ti.com>
      Change-Id: Ie22cb2a319f4aa80aef23ffc7e059207e5d4c640
      f577388a
    • Nishanth Menon's avatar
      ti: k3: common: Make plat_get_syscnt_freq2 check CNT_FID0 GTC reg · 6a22d9ea
      Nishanth Menon authored
      ARM's generic timer[1] picks up it's graycode from GTC. However, the
      frequency of the GTC is supposed to be programmed in CNTFID0[2]
      register.
      
      In K3, architecture, GTC provides a central time to many parts of the
      SoC including graycode to the generic timer in the ARMv8 subsystem.
      However, due to the central nature and the need to enable the counter
      early in the boot process, the R5 based bootloader enables GTC and
      programs it's frequency based on central needs of the system. This
      may not be a constant 200MHz based on the system. The bootloader is
      supposed to program the FID0 register with the correct frequency it
      has sourced for GTC from the central system controller, and TF-A is
      supposed to use that as the frequency for it's local timer.
      
      A mismatch in programmed frequency and what we program for generic
      timer will, as we can imagine, all kind of weird mayhem.
      
      So, check the CNTFID0 register, if it is 0, warn and use the default
      frequency to continue the boot process.
      
      While at it, we can also check CNTCR register to provide some basic
      diagnostics to make sure that we don't have OS folks scratch their
      heads. Even though this is used during cpu online operations, the cost
      of this additional check is minimal enough for us not to use #ifdeffery
      with DEBUG flags.
      
      [1] https://developer.arm.com/documentation/100095/0002/generic-timer/generic-timer-register-summary/aarch64-generic-timer-register-summary
      [2] https://developer.arm.com/docs/ddi0595/h/external-system-registers/cntfid0
      [3] https://developer.arm.com/docs/ddi0595/h/external-system-registers/cntcr
      
      Signed-off-by: default avatarNishanth Menon <nm@ti.com>
      Change-Id: Ib03e06788580f3540dcb1a11677d0d6d398b2c9f
      6a22d9ea
    • Nishanth Menon's avatar
      ti: k3: common: Enable A72 erratum 1319367 · 60fba7c8
      Nishanth Menon authored
      The CatB erratum ARM_ERRATA_A72_1319367 applies to all TI A72
      platforms as well.
      
      See the following for further information:
      https://developer.arm.com/documentation/epm012079/11/
      
      Signed-off-by: default avatarNishanth Menon <nm@ti.com>
      Change-Id: I80c6262b9cdadcb12f6dfd5a21272989ba257719
      60fba7c8
    • Nishanth Menon's avatar
      ti: k3: common: Enable A53 erratum 1530924 · c3e23332
      Nishanth Menon authored
      The CatB erratum ARM_ERRATA_A53_1530924 applies to all TI A53
      platforms as well.
      
      See the following for further information:
      https://developer.arm.com/documentation/epm048406/2100
      
      Signed-off-by: default avatarNishanth Menon <nm@ti.com>
      Change-Id: Ic095424ce510139e060b38cfb84509d2cc573cad
      c3e23332
  2. 16 Dec, 2020 5 commits
  3. 15 Dec, 2020 4 commits
  4. 14 Dec, 2020 9 commits
  5. 10 Dec, 2020 1 commit
  6. 09 Dec, 2020 6 commits
  7. 08 Dec, 2020 6 commits
  8. 07 Dec, 2020 3 commits