1. 05 Apr, 2017 4 commits
  2. 30 Mar, 2017 2 commits
    • Varun Wadekar's avatar
      Tegra186: mce: Uncore Perfmon ARI Programming · c11e0ddf
      Varun Wadekar authored
      
      
      Uncore perfmon appears to the CPU as a set of uncore perfmon registers
      which can be read and written using the ARI interface. The MCE code
      sequence handles reads and writes to these registers by manipulating
      the underlying T186 uncore hardware.
      
      To access an uncore perfmon register, CPU software writes the ARI
      request registers to specify
      
      * whether the operation is a read or a write,
      * which uncore perfmon register to access,
      * the uncore perfmon unit, group, and counter number (if necessary),
      * the data to write (if the operation is a write).
      
      It then initiates an ARI request to run the uncore perfmon sequence in
      the MCE and reads the resulting value of the uncore perfmon register
      and any status information from the ARI response registers.
      
      The NS world's MCE driver issues MCE_CMD_UNCORE_PERFMON_REQ command
      for the EL3 layer to start the entire sequence. Once the request
      completes, the NS world would receive the command status in the X0
      register and the command data in the X1 register.
      
      Change-Id: I20bf2eca2385f7c8baa81e9445617ae711ecceea
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      c11e0ddf
    • Varun Wadekar's avatar
      Tegra186: mce: add the mce_update_cstate_info() helper function · 87a1df73
      Varun Wadekar authored
      
      
      This patch adds a helper function to the MCE driver to allow its
      clients to issue UPDATE_CSTATE_INFO requests, without having to
      setup the CPU context struct.
      
      We introduced a struct to encapsulate the request parameters, that
      clients can pass on to the MCE driver. The MCE driver gets the
      parameters from the struct and programs the hardware accordingly.
      
      Change-Id: I02bce57506c4ccd90da82127805d6b564375cbf1
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      87a1df73
  3. 23 Mar, 2017 2 commits
    • Varun Wadekar's avatar
      Tegra186: check MCE firmware version during boot · 5cb89c56
      Varun Wadekar authored
      
      
      This patch checks that the system is running with the supported MCE
      firmware during boot. In case the firmware version does not match the
      interface header version, then the system halts.
      
      Change-Id: Ib82013fd1c1668efd6f0e4f36cd3662d339ac076
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      5cb89c56
    • Varun Wadekar's avatar
      Tegra186: mce: enable LATIC for chip verification · 66ec1125
      Varun Wadekar authored
      
      
      This patch adds a new interface to allow for making an ARI call that
      will enable LATIC for the chip verification software harness.
      
      LATIC allows some MINI ISMs to be read in the CCPLEX. The ISMs are
      used for various measurements relevant ot particular locations in
      Silicon. They are small counters which can be polled to determine
      how fast a particular location in the Silicon is.
      
      Original change by Guy Sotomayor <gsotomayor@nvidia.com>
      
      Change-Id: Ifb49b8863a009d4cdd5d1ba38a23b5374500a4b3
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      66ec1125
  4. 20 Mar, 2017 1 commit
    • Varun Wadekar's avatar
      Tegra186: mce: driver for the CPU complex power manager block · 7808b06b
      Varun Wadekar authored
      
      
      The CPU Complex (CCPLEX) Power Manager (Denver MCE, or DMCE) is an
      offload engine for BPMP to do voltage related sequencing and for
      hardware requests to be handled in a better latency than BPMP-firmware.
      
      There are two interfaces to the MCEs - Abstract Request Interface (ARI)
      and the traditional NVGINDEX/NVGDATA interface.
      
      MCE supports various commands which can be used by CPUs - ARM as well
      as Denver, for power management and reset functionality. Since the
      linux kernel is the master for all these scenarios, each MCE command
      can be issued by a corresponding SMC. These SMCs have been moved to
      SiP SMC space as they are specific to the Tegra186 SoC.
      
      Change-Id: I67bee83d2289a8ab63bc5556e5744e5043803e51
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      7808b06b