diff options
| author | Luben Tuikov <luben.tuikov@amd.com> | 2021-04-08 11:34:26 -0400 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2021-07-01 00:24:41 -0400 | 
| commit | c65b0805e779196ba07c2cb29e7f71777e81009d (patch) | |
| tree | 836d398b3cf78558758f3e1488a47f24c99d746d /drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | |
| parent | 63d4c081a556a1e1f200411ad1e34a51965f1048 (diff) | |
drm/amdgpu: RAS EEPROM table is now in debugfs
Add "ras_eeprom_size" file in debugfs, which
reports the maximum size allocated to the RAS
table in EEROM, as the number of bytes and the
number of records it could store. For instance,
$cat /sys/kernel/debug/dri/0/ras/ras_eeprom_size
262144 bytes or 10921 records
$_
Add "ras_eeprom_table" file in debugfs, which
dumps the RAS table stored EEPROM, in a formatted
way. For instance,
$cat ras_eeprom_table
 Signature    Version  FirstOffs       Size   Checksum
0x414D4452 0x00010000 0x00000014 0x000000EC 0x000000DA
Index  Offset ErrType Bank/CU          TimeStamp      Offs/Addr MemChl MCUMCID    RetiredPage
    0 0x00014      ue    0x00 0x00000000607608DC 0x000000000000   0x00    0x00 0x000000000000
    1 0x0002C      ue    0x00 0x00000000607608DC 0x000000001000   0x00    0x00 0x000000000001
    2 0x00044      ue    0x00 0x00000000607608DC 0x000000002000   0x00    0x00 0x000000000002
    3 0x0005C      ue    0x00 0x00000000607608DC 0x000000003000   0x00    0x00 0x000000000003
    4 0x00074      ue    0x00 0x00000000607608DC 0x000000004000   0x00    0x00 0x000000000004
    5 0x0008C      ue    0x00 0x00000000607608DC 0x000000005000   0x00    0x00 0x000000000005
    6 0x000A4      ue    0x00 0x00000000607608DC 0x000000006000   0x00    0x00 0x000000000006
    7 0x000BC      ue    0x00 0x00000000607608DC 0x000000007000   0x00    0x00 0x000000000007
    8 0x000D4      ue    0x00 0x00000000607608DD 0x000000008000   0x00    0x00 0x000000000008
$_
Cc: Alexander Deucher <Alexander.Deucher@amd.com>
Cc: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
Cc: John Clements <john.clements@amd.com>
Cc: Hawking Zhang <Hawking.Zhang@amd.com>
Cc: Xinhui Pan <xinhui.pan@amd.com>
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
Acked-by: Alexander Deucher <Alexander.Deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c index fd63e5f6d204..53a54ff8edc3 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c @@ -404,9 +404,9 @@ static ssize_t amdgpu_ras_debugfs_ctrl_write(struct file *f,  		/* umc ce/ue error injection for a bad page is not allowed */  		if ((data.head.block == AMDGPU_RAS_BLOCK__UMC) &&  		    amdgpu_ras_check_bad_page(adev, data.inject.address)) { -			dev_warn(adev->dev, "RAS WARN: 0x%llx has been marked " -					"as bad before error injection!\n", -					data.inject.address); +			dev_warn(adev->dev, "RAS WARN: inject: 0x%llx has " +				 "already been marked as bad!\n", +				 data.inject.address);  			break;  		} @@ -1301,6 +1301,12 @@ static struct dentry *amdgpu_ras_debugfs_create_ctrl_node(struct amdgpu_device *  			   &con->bad_page_cnt_threshold);  	debugfs_create_x32("ras_hw_enabled", 0444, dir, &adev->ras_hw_enabled);  	debugfs_create_x32("ras_enabled", 0444, dir, &adev->ras_enabled); +	debugfs_create_file("ras_eeprom_size", S_IRUGO, dir, adev, +			    &amdgpu_ras_debugfs_eeprom_size_ops); +	con->de_ras_eeprom_table = debugfs_create_file("ras_eeprom_table", +						       S_IRUGO, dir, adev, +						       &amdgpu_ras_debugfs_eeprom_table_ops); +	amdgpu_ras_debugfs_set_ret_size(&con->eeprom_control);  	/*  	 * After one uncorrectable error happens, usually GPU recovery will | 
