1. 16 Mar, 2020 6 commits
    • Suman Anna's avatar
      remoteproc: k3-r5: Fix rproc init failure on Split-mode _only_ devices · 445b4504
      Suman Anna authored
      The R5F subsystem/cluster on K3 SoCs can support both LockStep and
      Split-modes (superset) or just Split-mode depending on an eFUSE
      capability register. The LockStep configuration bit is Read-only
      though on Split-mode _only_ devices and as such the System Firmware
      does not allow the LockStep mode bit to be configured on such devices.
      The current logic in k3_r5f_rproc_configure() fails on Split-mode
      devices because of this unconditional programming of the LockStep
      mode bit, and results in the probe failure shown during the
      "rproc init" step at U-Boot prompt.
      
      Fix this by limiting the LockStep mode bit clear configuration only on
      devices supporting both LockStep/Split-modes.
      
      Fixes: 4c850356 ("remoteproc: Introduce K3 remoteproc driver for R5F subsystem")
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      Signed-off-by: default avatarAndreas Dannenberg <dannenberg@ti.com>
      Signed-off-by: Lokesh Vutla's avatarLokesh Vutla <lokeshvutla@ti.com>
      445b4504
    • Suman Anna's avatar
      remoteproc: k3-r5: Fix rproc init failure for Main R5FSS0 · 0438a0a1
      Suman Anna authored
      The Main R5FSS0 cluster is also enabled to probe the R5F remoteproc
      driver within R5 SPL for booting the Core0 very early. This results
      in a ti_sci_power_domain_on failure during the probe from the A72
      U-Boot when "rproc init" is executed at U-Boot prompt, and doesn't
      enumerate all the rproc devices.
      
      Fix this by suppressing the power_domain_on altogether using the
      flag DM_FLAG_DEFAULT_PD_CTRL_OFF added in commit af94ad41
      ("dm: core: Allow for not controlling the power-domain by DM framework").
      
      Fixes: fac6aa81 ("configs: j721e_evm_r5: Enable R5F remoteproc support")
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      0438a0a1
    • Suman Anna's avatar
      remoteproc: k3-dsp: Add support for L2RAM loading on C66x DSPs · 42005817
      Suman Anna authored
      The resets for the DSP processors on K3 SoCs are managed through the
      Power and Sleep Controller (PSC) module. Each DSP typically has two
      resets - a global module reset for powering on the device, and a local
      reset that affects only the CPU while allowing access to the other
      sub-modules within the DSP processor sub-systems.
      
      The C66x DSPs have two levels of internal RAMs that can be used to
      boot from, and the firmware loading into these RAMs require the
      local reset to be asserted with the device powered on/enabled using
      the module reset. Enhance the K3 DSP remoteproc driver to add support
      for loading into the internal RAMs. The local reset is deasserted on
      SoC power-on-reset, so logic has to be added in probe in remoteproc
      mode to balance the remoteproc state-machine.
      
      Note that the local resets are a no-op on C71x cores, and the hardware
      does not supporting loading into its internal RAMs.
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      42005817
    • Suman Anna's avatar
      armv8: K3: j721e: Add DSP internal memory regions in MMU table · 8f4109e0
      Suman Anna authored
      The A72 U-Boot code supports early load and boot of a number of
      remote processors including the C66_0 and C66_1 DSPs. The current
      code supports only loading into the DDR regions which were already
      given the appropriate memory attributes. The C66 DSPs also have L1
      and L2 internal memory regions that can behave as normal-memories.
      
      Add a new entry to the J721E MMU table covering these regions with
      the appropriate memory attributes to allow the A72 U-Boot code to
      support loading directly into these memory regions.
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      8f4109e0
    • Suman Anna's avatar
      remoteproc: k3-dsp: Add a sanity check for DSP boot address alignment · 1e53d5b5
      Suman Anna authored
      The DSP remote processors on K3 SoCs require a boot register to be
      programmed with a boot address, and these boot addresses need to be
      aligned on certain address boundaries. The current code does not have
      any error checks, and relies on the System Firmware to perform the
      checking. Add logic to perform this sanity check within the remoteproc
      driver itself to detect these anomalies specifically, and print a
      meaningful trace. This avoids the cumbersome debug of root-causing
      such failures from the corresponding TI-SCI failure.
      
      The C66x and C71x DSP cores have different alignment needs and are
      as follows:
      	C66x DSP = 1 KB (0x400)
      	C71x DSP = 2 MB (0x200000)
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      1e53d5b5
    • Suman Anna's avatar
      remoteproc: k3-dsp: Fix unbalanced state machine in k3_dsp_start · 0020003e
      Suman Anna authored
      The global module reset is deasserted through the ti_sci_power_domain_on()
      call in k3_dsp_start(), but is not asserted back if the local module reset
      fails. Fix this.
      
      While at this, remove the stale comment about assigned-clock-rates that
      seems to have been copied from the K3 ARM64 Remoteproc driver.
      
      Fixes: ab827b38 ("remoteproc: Introduce K3 C66 and C71 remoteproc driver")
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      0020003e
  2. 11 Mar, 2020 2 commits
  3. 06 Mar, 2020 4 commits
  4. 03 Mar, 2020 28 commits