[PATCH 000/109] RAS support for GC 12.1 devices
Alex Deucher <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
This series adds RAS support for GC 12.1 devices including:
- PSP support
- CPER handling
- MCE handling for A+A platforms
- ACPI BERT integration
- EEPROM handling for bad pages
- UMC support
- SR-IOV support
Candice Li (6):
drm/amdgpu: factor PSP v1.0 firmware bin descriptor parsing
drm/amdgpu: load standalone RL firmware on psp v15_0_8
drm/amdgpu: load TA firmware for psp v15_0_8
drm/amdgpu: update UMC active_mask to u64
drm/amdgpu: add ext_umc_mask to RAS TA init
drm/amd/ras: add ext_umc_mask to RAS TA init
Felix Kuehling (1):
drm/amdgpu: Make extra space in psp->cmd_buf_bo usable
Jiahao Li (2):
drm/amd/ras: overlap VF RAS_CMD buffer and legacy RAS telemetry memory
regions
drm/amdgpu: add new interface in guest driver for getting RAS
capability when uniras enabled
Xiang Liu (24):
drm/amd/ras: Rename CPER section descriptor struct
drm/amd/ras: register mce notifier to obtain ras error info
drm/amd/ras: Introduce BOOT CPER encoding function
drm/amdgpu/ras: prepare ras_psp for ras_mgr-owned TA reload
drm/amdgpu/ras: reload RAS TA from ras mgr resume
drm/amd/ras: add PCIE_PL ACA block mapping
drm/amd/ras: map boot log events to CPER type
drm/amd/ras: add rascore BERT record walker
drm/amd/ras: process cached BERT boot errors
drm/amd/ras: add missing ras core block names
drm/amd/ras: add BERT CPER table helpers
drm/amd/ras: record crashdump BERT sections as boot CPER
drm/amd/ras: move BERT boot errors to BERT sw init
drm/amd/ras: allow waking RAS processing without an event
drm/amd/ras: classify ACA v5 MCE status
drm/amd/ras: preserve CPU MCE context in the log ring
drm/amd/ras: define processor and memory CPER formats
drm/amd/ras: generate AMD crashdump CPER records
drm/amd/ras: generate processor CPER records
drm/amd/ras: generate Platform Memory CPER records
drm/amd/ras: collect CPU MCE metadata
drm/amd/ras: parse and route BERT sections
drm/amd/ras: assign BERT platform record ownership
drm/amd/ras: fix CPER command record retrieval
YiPeng Chai (76):
drm/amd/ras: Add ras notification event
drm/amd/ras: add interface to support parsing aca bank ecc info
drm/amd/ras: Parse error type of MCE and encode CPER
drm/amd/ras: Add interface to get ras eeprom table version
drm/amd/ras: Add dedicated interface to obtain cper info
drm/amd/ras: optimize mp1 dump bank interface
drm/amd/ras: support separate logging of gfx aid and xcd errors
drm/amd/ras: Optimize and remove redundant code
drm/amd/ras: Supports recording data source timestamps to EEPROM
drm/amd/ras: Improve function interface to record different types of
data
drm/amd/ras: Change variable name to avoid confusion
drm/amd/ras: add common interface to query ras subunit version
drm/amd/ras: Add aca parser v5_0
drm/amd/ras: Add fifo to cache ras data from mce notification
drm/amd/ras: Add mce ras error type
drm/amd/ras: Handling ras mce notification event
drm/amd/ras: Add ras ip configuration for A + A
drm/amd/ras: Add ras_psp v15_0 for A + A
drm/amd/ras: Add ras block id mapping
drm/amd/ras: Support querying RAS driver capabilities
drm/amd/ras: Add ras command to obtain ras capabilities
drm/amd/ras: Support poison consumption handling for A + A sriov guest
drm/amdgpu: Handle ras interrupts using unified interface
drm/amdgpu: Support obtaining ras capabilities
drm/amd/ras: Remove unused function interfaces
drm/amd/ras: Isolate ras mce handler with CONFIG_X86_MCE_AMD
drm/amd/ras: add interface to query nps mode and vram type
drm/amd/ras: add helper to convert aca bank to eeprom record
drm/amd/ras: ras mp1 introduces common interfaces
drm/amd/ras: Support retrieving bad page info from mp1_v15_0
drm/amd/ras: add interfaces to manage multiple EEPROMs
drm/amd/ras: Refactor EEPROM parameter config to support multiple ras
EEPROMs
drm/amd/ras: Ras eeprom supports new eeprom management interfaces
drm/amd/ras: switch to use new eeprom management interfaces
drm/amdgpu/ras: Rework fw eeprom handling for new management interface
drm/amd/ras: unify umc record logging paths for runtime and preload
drm/amd/ras: add interface to obtain FW eeprom records at runtime
drm/amd/ras: preload and handle bad pages at boot time
drm/amd/ras: add interface to report bad page info
drm/amd/ras: Support obtaining bad page info at boot time for
ras_mp1_v15_0
drm/amd/ras: Add gpu rma exception handling
drm/amd/ras: use record count instead of bad page count for EEPROM
threshold checking
drm/amd/ras: remove unused code from ras eeprom
drm/amd/ras: Add null check to prevent null pointer exception
drm/amdgpu: Add bad page preloading and pre-reservation support
drm/amdgpu: fix duplicate ras debugfs node creation on driver reload
drm/amdgpu: refactor memory handling to support both external and
internal allocation
drm/amdgpu/ras: support loading RAS RL and TA firmware in RAS module
drm/amdgpu: add switch to select firmware loading path for RAS RL and
TA
drm/amd/pm: update RAS-specific interface to support multi-parameter
drm/amd/ras: update mp1_v13_0 to use smu ras multi-parameter interface
drm/amd/ras: support multi-parameter communication with mp1 in
ras_mp1_v15_0
drm/amd/ras: harden error handling and fix resource/lock issues
drm/amd/ras: fix silent error swallowing in get_record_count paths
drm/amd/ras: add address translation interface for umc_v15_0
drm/amd/ras: fix driver unload failure when uniras is enabled
drm/amd/ras: use single socket per GPU device to store ACA RAS error
info
drm/amd/ras: update aca bank decoding for A + A
drm/amd/ras: add management interface to support psp bad page address
translation
drm/amdgpu/ras: use flip-bit mask to generalize bad page address
derivation
drm/amd/ras: introduce row page address buffer alloc/free interfaces
drm/amd/ras: limit eeprom ras table validation to init and post-write
drm/amd/ras: resolve compiler warning for stack frame exceeding 1024
bytes
drm/amd/ras: replace variable with function to check poison support
drm/amd/ras: update interface to support multiple ras query methods
drm/amd/ras: improve ras log timestamp precision
drm/amd/ras: add module parameter for uniras
drm/amdgpu: extend ras feature mask to 64-bit for A + A
drm/amd/ras: refactor ras cper to simplify adding new cper events
drm/amd/ras: fix ras cmd returning incorrect cper count
drm/amd/ras: unify variable naming conventions
drm/amd/ras: add interface and improve extensibility
drm/amd/ras: populate cper aca register info for rma device
drm/amd/ras: filter out invalid pages from extended page addresses
drm/amd/ras: fix and improve bad page count calculation
drm/amd/ras: increase page buffer size for A+A
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 10 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 11 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 177 ++--
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 16 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 88 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 3 +
.../gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c | 46 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 39 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 2 +
drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h | 49 +-
drivers/gpu/drm/amd/amdgpu/psp_v15_0_8.c | 10 +
drivers/gpu/drm/amd/amdgpu/ta_ras_if.h | 1 +
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 18 +-
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 13 +-
.../drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 7 +-
drivers/gpu/drm/amd/ras/core/Makefile | 9 +-
drivers/gpu/drm/amd/ras/core/aca.c | 341 +++----
drivers/gpu/drm/amd/ras/core/aca.h | 41 +-
drivers/gpu/drm/amd/ras/core/aca_v1_0.c | 41 +-
drivers/gpu/drm/amd/ras/core/cmd.c | 145 ++-
drivers/gpu/drm/amd/ras/core/cmd.h | 32 +-
drivers/gpu/drm/amd/ras/core/core.c | 281 ++++--
drivers/gpu/drm/amd/ras/core/eeprom.c | 472 ++++------
drivers/gpu/drm/amd/ras/core/eeprom.h | 27 +-
drivers/gpu/drm/amd/ras/core/eeprom_fw.c | 576 ++++--------
drivers/gpu/drm/amd/ras/core/eeprom_fw.h | 67 +-
drivers/gpu/drm/amd/ras/core/log_ring.c | 56 +-
drivers/gpu/drm/amd/ras/core/log_ring.h | 46 +-
drivers/gpu/drm/amd/ras/core/ras.h | 127 ++-
drivers/gpu/drm/amd/ras/core/ras_aca_v5_0.c | 394 +++++++++
drivers/gpu/drm/amd/ras/core/ras_aca_v5_0.h | 62 ++
drivers/gpu/drm/amd/ras/core/ras_bert.c | 546 ++++++++++++
drivers/gpu/drm/amd/ras/core/ras_bert.h | 33 +
drivers/gpu/drm/amd/ras/core/ras_cper.c | 834 ++++++++++++++----
drivers/gpu/drm/amd/ras/core/ras_cper.h | 175 +++-
drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c | 418 +++++++++
drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.h | 124 +++
drivers/gpu/drm/amd/ras/core/ras_gfx.c | 10 +-
drivers/gpu/drm/amd/ras/core/ras_mce.c | 151 ++++
drivers/gpu/drm/amd/ras/core/ras_mce.h | 51 ++
drivers/gpu/drm/amd/ras/core/ras_mp1.c | 147 ++-
drivers/gpu/drm/amd/ras/core/ras_mp1.h | 52 +-
drivers/gpu/drm/amd/ras/core/ras_mp1_v13_0.c | 12 +-
drivers/gpu/drm/amd/ras/core/ras_mp1_v15_0.c | 249 ++++++
drivers/gpu/drm/amd/ras/core/ras_mp1_v15_0.h | 30 +
drivers/gpu/drm/amd/ras/core/ras_nbio.c | 9 +-
drivers/gpu/drm/amd/ras/core/ras_process.c | 36 +-
drivers/gpu/drm/amd/ras/core/ras_psp.c | 570 ++++++++----
drivers/gpu/drm/amd/ras/core/ras_psp.h | 109 ++-
drivers/gpu/drm/amd/ras/core/ras_psp_v13_0.c | 76 ++
drivers/gpu/drm/amd/ras/core/ras_psp_v15_0.c | 133 +++
drivers/gpu/drm/amd/ras/core/ras_psp_v15_0.h | 31 +
drivers/gpu/drm/amd/ras/core/ras_umc.c | 624 ++++++++-----
drivers/gpu/drm/amd/ras/core/ras_umc.h | 45 +-
drivers/gpu/drm/amd/ras/core/ras_umc_v12_0.c | 123 ++-
drivers/gpu/drm/amd/ras/core/ras_umc_v15_0.c | 220 +++++
drivers/gpu/drm/amd/ras/core/ras_umc_v15_0.h | 69 ++
drivers/gpu/drm/amd/ras/core/ta_if.h | 35 +
drivers/gpu/drm/amd/ras/ras_mgr/Makefile | 5 +-
.../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_bert.c | 191 ++++
.../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_bert.h | 30 +
.../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_cmd.c | 38 +
.../amd/ras/ras_mgr/amdgpu_ras_eeprom_i2c.c | 128 ++-
.../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mce.c | 268 ++++++
.../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mce.h | 31 +
.../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c | 298 ++++---
.../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.h | 6 +-
.../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mp1.c | 71 ++
.../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mp1.h | 30 +
.../amd/ras/ras_mgr/amdgpu_ras_mp1_v13_0.c | 17 +-
.../drm/amd/ras/ras_mgr/amdgpu_ras_process.c | 8 +-
.../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_sys.c | 88 +-
.../drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c | 42 +-
drivers/gpu/drm/amd/ras/ras_mgr/ras_sys.h | 2 +
79 files changed, 7247 insertions(+), 2148 deletions(-)
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_aca_v5_0.c
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_aca_v5_0.h
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_bert.c
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_bert.h
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.h
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_mce.c
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_mce.h
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_mp1_v15_0.c
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_mp1_v15_0.h
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_psp_v15_0.c
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_psp_v15_0.h
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_umc_v15_0.c
create mode 100644 drivers/gpu/drm/amd/ras/core/ras_umc_v15_0.h
create mode 100644 drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_bert.c
create mode 100644 drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_bert.h
create mode 100644 drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mce.c
create mode 100644 drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mce.h
create mode 100644 drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mp1.c
create mode 100644 drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mp1.h
--
2.55.0