drm/amdgpu: Add nps info table to IP discovery
authorLijo Lazar <lijo.lazar@amd.com>
Mon, 11 Mar 2024 05:02:01 +0000 (10:32 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 17 May 2024 21:40:36 +0000 (17:40 -0400)
Add support to fetch NPS info table in IP discovery table.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Le Ma <le.ma@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/include/discovery.h

index 7a9d473..46bf19c 100644 (file)
 #define HARVEST_TABLE_SIGNATURE         0x56524148
 #define VCN_INFO_TABLE_ID               0x004E4356
 #define MALL_INFO_TABLE_ID              0x4C4C414D
+#define NPS_INFO_TABLE_ID 0x0053504E
 
-typedef enum
-{
+typedef enum {
        IP_DISCOVERY = 0,
        GC,
        HARVEST_INFO,
        VCN_INFO,
        MALL_INFO,
-       RESERVED_1,
+       NPS_INFO,
        TOTAL_TABLES = 6
 } table;
 
@@ -380,6 +380,28 @@ struct vcn_info_v1_0 {
        uint32_t reserved[4];
 };
 
+#define NPS_INFO_TABLE_MAX_NUM_INSTANCES 12
+
+struct nps_info_header {
+       uint32_t table_id; /* table ID */
+       uint16_t version_major; /* table version */
+       uint16_t version_minor; /* table version */
+       uint32_t size_bytes; /* size of the entire header+data in bytes = 0x000000D4 (212) */
+};
+
+struct nps_instance_info_v1_0 {
+       uint64_t base_address;
+       uint64_t limit_address;
+};
+
+struct nps_info_v1_0 {
+       struct nps_info_header header;
+       uint32_t nps_type;
+       uint32_t count;
+       struct nps_instance_info_v1_0
+               instance_info[NPS_INFO_TABLE_MAX_NUM_INSTANCES];
+};
+
 #pragma pack()
 
 #endif