Re: [PATCH] drm/amdgpu: add the hw_ip version of all IP's

2024-03-15 Thread Khatri, Sunil



On 3/15/2024 6:45 PM, Alex Deucher wrote:

On Fri, Mar 15, 2024 at 8:13 AM Sunil Khatri  wrote:

Add all the IP's version information on a SOC to the
devcoredump.

Signed-off-by: Sunil Khatri 

This looks great.

Reviewed-by: Alex Deucher 


Thanks Alex




---
  drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c | 62 +++
  1 file changed, 62 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
index a0dbccad2f53..3d4bfe0a5a7c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
@@ -29,6 +29,43 @@
  #include "sienna_cichlid.h"
  #include "smu_v13_0_10.h"

+const char *hw_ip_names[MAX_HWIP] = {
+   [GC_HWIP]   = "GC",
+   [HDP_HWIP]  = "HDP",
+   [SDMA0_HWIP]= "SDMA0",
+   [SDMA1_HWIP]= "SDMA1",
+   [SDMA2_HWIP]= "SDMA2",
+   [SDMA3_HWIP]= "SDMA3",
+   [SDMA4_HWIP]= "SDMA4",
+   [SDMA5_HWIP]= "SDMA5",
+   [SDMA6_HWIP]= "SDMA6",
+   [SDMA7_HWIP]= "SDMA7",
+   [LSDMA_HWIP]= "LSDMA",
+   [MMHUB_HWIP]= "MMHUB",
+   [ATHUB_HWIP]= "ATHUB",
+   [NBIO_HWIP] = "NBIO",
+   [MP0_HWIP]  = "MP0",
+   [MP1_HWIP]  = "MP1",
+   [UVD_HWIP]  = "UVD/JPEG/VCN",
+   [VCN1_HWIP] = "VCN1",
+   [VCE_HWIP]  = "VCE",
+   [VPE_HWIP]  = "VPE",
+   [DF_HWIP]   = "DF",
+   [DCE_HWIP]  = "DCE",
+   [OSSSYS_HWIP]   = "OSSSYS",
+   [SMUIO_HWIP]= "SMUIO",
+   [PWR_HWIP]  = "PWR",
+   [NBIF_HWIP] = "NBIF",
+   [THM_HWIP]  = "THM",
+   [CLK_HWIP]  = "CLK",
+   [UMC_HWIP]  = "UMC",
+   [RSMU_HWIP] = "RSMU",
+   [XGMI_HWIP] = "XGMI",
+   [DCI_HWIP]  = "DCI",
+   [PCIE_HWIP] = "PCIE",
+};
+
+
  int amdgpu_reset_init(struct amdgpu_device *adev)
  {
 int ret = 0;
@@ -196,6 +233,31 @@ amdgpu_devcoredump_read(char *buffer, loff_t offset, 
size_t count,
coredump->reset_task_info.process_name,
coredump->reset_task_info.pid);

+   /* GPU IP's information of the SOC */
+   if (coredump->adev) {
+
+   drm_printf(, "\nIP Information\n");
+   drm_printf(, "SOC Family: %d\n", coredump->adev->family);
+   drm_printf(, "SOC Revision id: %d\n", coredump->adev->rev_id);
+   drm_printf(, "SOC External Revision id: %d\n",
+  coredump->adev->external_rev_id);
+
+   for (int i = 1; i < MAX_HWIP; i++) {
+   for (int j = 0; j < HWIP_MAX_INSTANCE; j++) {
+   int ver = coredump->adev->ip_versions[i][j];
+
+   if (ver)
+   drm_printf(, "HWIP: %s[%d][%d]: 
v%d.%d.%d.%d.%d\n",
+  hw_ip_names[i], i, j,
+  IP_VERSION_MAJ(ver),
+  IP_VERSION_MIN(ver),
+  IP_VERSION_REV(ver),
+  IP_VERSION_VARIANT(ver),
+  IP_VERSION_SUBREV(ver));
+   }
+   }
+   }
+
 if (coredump->ring) {
 drm_printf(, "\nRing timed out details\n");
 drm_printf(, "IP Type: %d Ring Name: %s\n",
--
2.34.1



Re: [PATCH] drm/amdgpu: add the hw_ip version of all IP's

2024-03-15 Thread Alex Deucher
On Fri, Mar 15, 2024 at 8:13 AM Sunil Khatri  wrote:
>
> Add all the IP's version information on a SOC to the
> devcoredump.
>
> Signed-off-by: Sunil Khatri 

This looks great.

Reviewed-by: Alex Deucher 

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c | 62 +++
>  1 file changed, 62 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
> index a0dbccad2f53..3d4bfe0a5a7c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
> @@ -29,6 +29,43 @@
>  #include "sienna_cichlid.h"
>  #include "smu_v13_0_10.h"
>
> +const char *hw_ip_names[MAX_HWIP] = {
> +   [GC_HWIP]   = "GC",
> +   [HDP_HWIP]  = "HDP",
> +   [SDMA0_HWIP]= "SDMA0",
> +   [SDMA1_HWIP]= "SDMA1",
> +   [SDMA2_HWIP]= "SDMA2",
> +   [SDMA3_HWIP]= "SDMA3",
> +   [SDMA4_HWIP]= "SDMA4",
> +   [SDMA5_HWIP]= "SDMA5",
> +   [SDMA6_HWIP]= "SDMA6",
> +   [SDMA7_HWIP]= "SDMA7",
> +   [LSDMA_HWIP]= "LSDMA",
> +   [MMHUB_HWIP]= "MMHUB",
> +   [ATHUB_HWIP]= "ATHUB",
> +   [NBIO_HWIP] = "NBIO",
> +   [MP0_HWIP]  = "MP0",
> +   [MP1_HWIP]  = "MP1",
> +   [UVD_HWIP]  = "UVD/JPEG/VCN",
> +   [VCN1_HWIP] = "VCN1",
> +   [VCE_HWIP]  = "VCE",
> +   [VPE_HWIP]  = "VPE",
> +   [DF_HWIP]   = "DF",
> +   [DCE_HWIP]  = "DCE",
> +   [OSSSYS_HWIP]   = "OSSSYS",
> +   [SMUIO_HWIP]= "SMUIO",
> +   [PWR_HWIP]  = "PWR",
> +   [NBIF_HWIP] = "NBIF",
> +   [THM_HWIP]  = "THM",
> +   [CLK_HWIP]  = "CLK",
> +   [UMC_HWIP]  = "UMC",
> +   [RSMU_HWIP] = "RSMU",
> +   [XGMI_HWIP] = "XGMI",
> +   [DCI_HWIP]  = "DCI",
> +   [PCIE_HWIP] = "PCIE",
> +};
> +
> +
>  int amdgpu_reset_init(struct amdgpu_device *adev)
>  {
> int ret = 0;
> @@ -196,6 +233,31 @@ amdgpu_devcoredump_read(char *buffer, loff_t offset, 
> size_t count,
>coredump->reset_task_info.process_name,
>coredump->reset_task_info.pid);
>
> +   /* GPU IP's information of the SOC */
> +   if (coredump->adev) {
> +
> +   drm_printf(, "\nIP Information\n");
> +   drm_printf(, "SOC Family: %d\n", coredump->adev->family);
> +   drm_printf(, "SOC Revision id: %d\n", 
> coredump->adev->rev_id);
> +   drm_printf(, "SOC External Revision id: %d\n",
> +  coredump->adev->external_rev_id);
> +
> +   for (int i = 1; i < MAX_HWIP; i++) {
> +   for (int j = 0; j < HWIP_MAX_INSTANCE; j++) {
> +   int ver = coredump->adev->ip_versions[i][j];
> +
> +   if (ver)
> +   drm_printf(, "HWIP: %s[%d][%d]: 
> v%d.%d.%d.%d.%d\n",
> +  hw_ip_names[i], i, j,
> +  IP_VERSION_MAJ(ver),
> +  IP_VERSION_MIN(ver),
> +  IP_VERSION_REV(ver),
> +  IP_VERSION_VARIANT(ver),
> +  IP_VERSION_SUBREV(ver));
> +   }
> +   }
> +   }
> +
> if (coredump->ring) {
> drm_printf(, "\nRing timed out details\n");
> drm_printf(, "IP Type: %d Ring Name: %s\n",
> --
> 2.34.1
>


RE: [PATCH] drm/amdgpu: add the hw_ip version of all IP's

2024-03-15 Thread Khatri, Sunil
[AMD Official Use Only - General]

Hello Alex

Added the information directly from the ip_version and also added names for 
each ip so the version information makes more sense to the user.

Below is the output in devcoredump now:
IP Information
SOC Family: 143
SOC Revision id: 0
SOC External Revision id: 50
HWIP: GC[1][0]: v10.3.2.0.0
HWIP: HDP[2][0]: v5.0.3.0.0
HWIP: SDMA0[3][0]: v5.2.2.0.0
HWIP: SDMA1[4][0]: v5.2.2.0.0
HWIP: MMHUB[12][0]: v2.1.0.0.0
HWIP: ATHUB[13][0]: v2.1.0.0.0
HWIP: NBIO[14][0]: v3.3.1.0.0
HWIP: MP0[15][0]: v11.0.11.0.0
HWIP: MP1[16][0]: v11.0.11.0.0
HWIP: UVD/JPEG/VCN[17][0]: v3.0.0.0.0
HWIP: UVD/JPEG/VCN[17][1]: v3.0.1.0.0
HWIP: DF[21][0]: v3.7.3.0.0
HWIP: DCE[22][0]: v3.0.0.0.0
HWIP: OSSSYS[23][0]: v5.0.3.0.0
HWIP: SMUIO[24][0]: v11.0.6.0.0
HWIP: NBIF[26][0]: v3.3.1.0.0
HWIP: THM[27][0]: v11.0.5.0.0
HWIP: CLK[28][0]: v11.0.3.0.0
HWIP: CLK[28][1]: v11.0.3.0.0
HWIP: CLK[28][2]: v11.0.3.0.0
HWIP: CLK[28][3]: v11.0.3.0.0
HWIP: CLK[28][4]: v11.0.3.0.0
HWIP: CLK[28][5]: v11.0.3.0.0
HWIP: CLK[28][6]: v11.0.3.0.0
HWIP: CLK[28][7]: v11.0.3.0.0
HWIP: UMC[29][0]: v8.7.1.0.0
HWIP: UMC[29][1]: v8.7.1.0.0
HWIP: UMC[29][2]: v8.7.1.0.0
HWIP: UMC[29][3]: v8.7.1.0.0
HWIP: UMC[29][4]: v8.7.1.0.0
HWIP: UMC[29][5]: v8.7.1.0.0
HWIP: PCIE[33][0]: v6.5.0.0.0


-Original Message-
From: Sunil Khatri 
Sent: Friday, March 15, 2024 5:43 PM
To: Deucher, Alexander ; Koenig, Christian 
; Sharma, Shashank 
Cc: amd-...@lists.freedesktop.org; dri-devel@lists.freedesktop.org; 
linux-ker...@vger.kernel.org; Khatri, Sunil 
Subject: [PATCH] drm/amdgpu: add the hw_ip version of all IP's

Add all the IP's version information on a SOC to the devcoredump.

Signed-off-by: Sunil Khatri 
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c | 62 +++
 1 file changed, 62 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
index a0dbccad2f53..3d4bfe0a5a7c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
@@ -29,6 +29,43 @@
 #include "sienna_cichlid.h"
 #include "smu_v13_0_10.h"

+const char *hw_ip_names[MAX_HWIP] = {
+   [GC_HWIP]   = "GC",
+   [HDP_HWIP]  = "HDP",
+   [SDMA0_HWIP]= "SDMA0",
+   [SDMA1_HWIP]= "SDMA1",
+   [SDMA2_HWIP]= "SDMA2",
+   [SDMA3_HWIP]= "SDMA3",
+   [SDMA4_HWIP]= "SDMA4",
+   [SDMA5_HWIP]= "SDMA5",
+   [SDMA6_HWIP]= "SDMA6",
+   [SDMA7_HWIP]= "SDMA7",
+   [LSDMA_HWIP]= "LSDMA",
+   [MMHUB_HWIP]= "MMHUB",
+   [ATHUB_HWIP]= "ATHUB",
+   [NBIO_HWIP] = "NBIO",
+   [MP0_HWIP]  = "MP0",
+   [MP1_HWIP]  = "MP1",
+   [UVD_HWIP]  = "UVD/JPEG/VCN",
+   [VCN1_HWIP] = "VCN1",
+   [VCE_HWIP]  = "VCE",
+   [VPE_HWIP]  = "VPE",
+   [DF_HWIP]   = "DF",
+   [DCE_HWIP]  = "DCE",
+   [OSSSYS_HWIP]   = "OSSSYS",
+   [SMUIO_HWIP]= "SMUIO",
+   [PWR_HWIP]  = "PWR",
+   [NBIF_HWIP] = "NBIF",
+   [THM_HWIP]  = "THM",
+   [CLK_HWIP]  = "CLK",
+   [UMC_HWIP]  = "UMC",
+   [RSMU_HWIP] = "RSMU",
+   [XGMI_HWIP] = "XGMI",
+   [DCI_HWIP]  = "DCI",
+   [PCIE_HWIP] = "PCIE",
+};
+
+
 int amdgpu_reset_init(struct amdgpu_device *adev)  {
int ret = 0;
@@ -196,6 +233,31 @@ amdgpu_devcoredump_read(char *buffer, loff_t offset, 
size_t count,
   coredump->reset_task_info.process_name,
   coredump->reset_task_info.pid);

+   /* GPU IP's information of the SOC */
+   if (coredump->adev) {
+
+   drm_printf(, "\nIP Information\n");
+   drm_printf(, "SOC Family: %d\n", coredump->adev->family);
+   drm_printf(, "SOC Revision id: %d\n", coredump->adev->rev_id);
+   drm_printf(, "SOC External Revision id: %d\n",
+  coredump->adev->external_rev_id);
+
+   for (int i = 1; i < MAX_HWIP; i++) {
+   for (int j = 0; j < HWIP_MAX_INSTANCE; j++) {
+   int ver = coredump->adev->ip_versions[i][j];
+
+   if (ver)
+   drm_printf(, "HWIP: %s[%d][%d]: 
v%d.%d.%d.%d.%d\n",
+  hw_ip_names[i], i, j,
+  IP_VERSION_MAJ(ver),
+  IP_VERSION_MIN(ver),
+  IP_VERSION_REV(ver),
+  IP_VERSION_VARIANT(ver),
+