[PATCH 00/16] AMD NB and SMN rework

Yazen Ghannam
2024-10-23T17:22:07Z

Hi all,

The theme of this set is decoupling the "AMD node" concept from the
legacy northbridge support.

Additionally, AMD System Management Network (SMN) access code is
decoupled and expanded too.

Patches 1-3 begin reducing the scope of AMD_NB.

Patches 4-9 begin moving generic AMD node support out of AMD_NB.

Patches 10-13 move SMN support out of AMD_NB and do some refactoring.

Patch 14 has HSMP reuse SMN functionality.

Patches 15-16 address userspace access to SMN.

I say "begin" above because there is more to do here. Ultimately, AMD_NB
should only be needed for code used on legacy systems with northbridges.
Also, any and all SMN users in the kernel need to be updated to use the
central SMN code. Local solutions should be avoided.

Thanks,
Yazen

Mario Limonciello (4):
x86/amd_nb, x86/amd_node: Simplify amd_pci_dev_to_node_id()
x86/amd_nb: Move SMN access code to a new amd_smn driver
x86/amd_smn: Add SMN offsets to exclusive region access
x86/amd_smn: Add support for debugfs access to SMN registers

Yazen Ghannam (12):
x86/mce/amd: Remove shared threshold bank plumbing
x86/amd_nb: Restrict init function to AMD-based systems
x86/amd_nb: Clean up early_is_amd_nb()
x86: Start moving AMD Node functionality out of AMD_NB
x86/amd_nb: Simplify function 4 search
x86/amd_nb: Simplify root device search
x86/amd_nb: Use topology info to get AMD node count
x86/amd_nb: Simplify function 3 search
x86/amd_smn: Fixup __amd_smn_rw()
x86/amd_smn: Remove dependency on AMD_NB
x86/amd_smn: Use defines for register offsets
x86/amd_smn, platform/x86/amd/hsmp: Have HSMP use SMN

MAINTAINERS | 15 ++
arch/x86/Kconfig | 9 +-
arch/x86/include/asm/amd_nb.h | 53 +----
arch/x86/include/asm/amd_node.h | 39 ++++
arch/x86/include/asm/amd_smn.h | 14 ++
arch/x86/kernel/Makefile | 2 +
arch/x86/kernel/amd_nb.c | 294 ++-------------------------
arch/x86/kernel/amd_node.c | 91 +++++++++
arch/x86/kernel/amd_smn.c | 269 ++++++++++++++++++++++++
arch/x86/kernel/cpu/mce/amd.c | 127 +++---------
arch/x86/pci/fixup.c | 4 +-
drivers/edac/Kconfig | 1 +
drivers/edac/amd64_edac.c | 1 +
drivers/hwmon/Kconfig | 2 +-
drivers/hwmon/k10temp.c | 2 +-
drivers/platform/x86/amd/Kconfig | 2 +-
drivers/platform/x86/amd/hsmp.c | 32 +--
drivers/platform/x86/amd/pmc/Kconfig | 2 +-
drivers/platform/x86/amd/pmc/pmc.c | 2 +-
drivers/platform/x86/amd/pmf/Kconfig | 2 +-
drivers/platform/x86/amd/pmf/core.c | 2 +-
drivers/ras/amd/atl/Kconfig | 1 +
drivers/ras/amd/atl/internal.h | 1 +
23 files changed, 495 insertions(+), 472 deletions(-)
create mode 100644 arch/x86/include/asm/amd_node.h
create mode 100644 arch/x86/include/asm/amd_smn.h
create mode 100644 arch/x86/kernel/amd_node.c
create mode 100644 arch/x86/kernel/amd_smn.c

base-commit: 94559bac4d403b1575b32a863f5c0429cdd33eaa
--
2.43.0