[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.