mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-11-27 01:11:31 +00:00
The "root" device search was introduced to support SMN access for Zen systems. This device represents a PCIe root complex. It is not the same as the "CPU/node" devices found at slots 0x18-0x1F. There may be multiple PCIe root complexes within an AMD node. Such is the case with server or High-end Desktop (HEDT) systems, etc. Therefore it is not enough to assume "root <-> AMD node" is a 1-to-1 association. Currently, this is handled by skipping "extra" root complexes during the search. However, the hardware provides the PCI bus number of an AMD node's root device. Use the hardware info to get the root device's bus and drop the extra search code and PCI IDs. Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Link: https://lore.kernel.org/r/20241206161210.163701-7-yazen.ghannam@amd.com
28 lines
702 B
C
28 lines
702 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* AMD Node helper functions and common defines
|
|
*
|
|
* Copyright (c) 2024, Advanced Micro Devices, Inc.
|
|
* All Rights Reserved.
|
|
*
|
|
* Author: Yazen Ghannam <Yazen.Ghannam@amd.com>
|
|
*
|
|
* Note:
|
|
* Items in this file may only be used in a single place.
|
|
* However, it's prudent to keep all AMD Node functionality
|
|
* in a unified place rather than spreading throughout the
|
|
* kernel.
|
|
*/
|
|
|
|
#ifndef _ASM_X86_AMD_NODE_H_
|
|
#define _ASM_X86_AMD_NODE_H_
|
|
|
|
#include <linux/pci.h>
|
|
|
|
#define MAX_AMD_NUM_NODES 8
|
|
#define AMD_NODE0_PCI_SLOT 0x18
|
|
|
|
struct pci_dev *amd_node_get_func(u16 node, u8 func);
|
|
struct pci_dev *amd_node_get_root(u16 node);
|
|
|
|
#endif /*_ASM_X86_AMD_NODE_H_*/
|