drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v15_0_8_pmfw.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v15_0_8_pmfw.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v15_0_8_pmfw.h
Extension
.h
Size
13001 bytes
Lines
428
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

typedef struct __attribute__((packed, aligned(4))) {
  uint64_t AccumulationCounter;

  //TEMPERATURE
  uint32_t MaxSocketTemperature;
  uint32_t MaxVrTemperature;
  uint32_t HbmTemperature[12];
  uint64_t MaxSocketTemperatureAcc;
  uint64_t MaxVrTemperatureAcc;
  uint64_t HbmTemperatureAcc[12];
  uint32_t MidTemperature[2];
  uint32_t AidTemperature[2];
  uint32_t XcdTemperature[8];

  //POWER
  uint32_t SocketPowerLimit;
  uint32_t SocketPower;

  //ENERGY
  uint64_t Timestamp;
  uint64_t SocketEnergyAcc;
  uint64_t HbmEnergyAcc;

  //FREQUENCY
  uint32_t GfxclkFrequencyLimit;
  uint32_t FclkFrequency[2];
  uint32_t UclkFrequency[2];
  uint64_t GfxclkFrequencyAcc[8];
  uint32_t GfxclkFrequency[8];
  uint32_t SocclkFrequency[2];
  uint32_t VclkFrequency[4];
  uint32_t DclkFrequency[4];
  uint32_t LclkFrequency[2];

  //XGMI:
  uint32_t XgmiWidth;
  uint32_t XgmiBitrate;
  uint64_t XgmiReadBandwidthAcc;
  uint64_t XgmiWriteBandwidthAcc;

  //ACTIVITY:
  uint32_t SocketGfxBusy;
  uint32_t DramBandwidthUtilization;
  uint64_t SocketGfxBusyAcc;
  uint64_t DramBandwidthAcc;
  uint32_t MaxDramBandwidth;
  uint64_t DramBandwidthUtilizationAcc;
  uint64_t PcieBandwidthAcc[2];

  //THROTTLERS
  uint64_t ProchotResidencyAcc;
  uint64_t PptResidencyAcc;
  uint64_t SocketThmResidencyAcc;
  uint64_t VrThmResidencyAcc;
  uint64_t HbmThmResidencyAcc;

  //PCIE BW Data and error count
  uint32_t PcieBandwidth[2];
  uint64_t PCIeL0ToRecoveryCountAcc;
  uint64_t PCIenReplayAAcc;
  uint64_t PCIenReplayARolloverCountAcc;
  uint64_t PCIeNAKSentCountAcc;
  uint64_t PCIeNAKReceivedCountAcc;
  uint64_t PCIeOtherEndRecoveryAcc;       // The Pcie counter itself is accumulated

  // VCN/JPEG ACTIVITY
  uint32_t VcnBusy[4];
  uint32_t JpegBusy[40];

  // PCIE LINK Speed and width
  uint32_t PCIeLinkSpeed;
  uint32_t PCIeLinkWidth;

  // PER XCD ACTIVITY
  uint32_t GfxBusy[8];
  uint64_t GfxBusyAcc[8];

  //NVML-Parity: Total App Clock Counter
  uint64_t GfxclkBelowHostLimitPptAcc[8];
  uint64_t GfxclkBelowHostLimitThmAcc[8];
  uint64_t GfxclkBelowHostLimitTotalAcc[8];
  uint64_t GfxclkLowUtilizationAcc[8];
} MetricsTable_t;

#define SMU_SYSTEM_METRICS_TABLE_VERSION 0x1

#pragma pack(push, 4)
typedef struct {
  uint64_t AccumulationCounter;                             // Last update timestamp
  uint16_t LabelVersion;                                    //Defaults to 0.

Annotation

Implementation Notes