• 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
mce.c 15.7 KB