Commit a2e4e35b authored by Pu Wen's avatar Pu Wen
Browse files

iommu/hygon: Add support for Hygon family 18h model 4h IOAPIC

hygon inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I7DX6V


CVE: NA

---------------------------

The SB IOAPIC is on the device 0xb from Hygon family 18h model 4h.

Signed-off-by: default avatarPu Wen <puwen@hygon.cn>
parent 29203c13
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -2513,6 +2513,9 @@ static void __init free_iommu_resources(void)
/* SB IOAPIC is always on this device in AMD systems */
#define IOAPIC_SB_DEVID		((0x00 << 8) | PCI_DEVFN(0x14, 0))

/* SB IOAPIC for Hygon family 18h model 4h is on the device 0xb */
#define IOAPIC_SB_DEVID_FAM18H_M4H	((0x00 << 8) | PCI_DEVFN(0xb, 0))

static bool __init check_ioapic_information(void)
{
	const char *fw_bug = FW_BUG;
@@ -2538,7 +2541,12 @@ static bool __init check_ioapic_information(void)
			pr_err("%s: IOAPIC[%d] not in IVRS table\n",
				fw_bug, id);
			ret = false;
		} else if (devid == IOAPIC_SB_DEVID) {
		} else if (devid == IOAPIC_SB_DEVID ||
			   (boot_cpu_data.x86_vendor == X86_VENDOR_HYGON &&
			    boot_cpu_data.x86 == 0x18 &&
			    boot_cpu_data.x86_model >= 0x4 &&
			    boot_cpu_data.x86_model <= 0xf &&
			    devid == IOAPIC_SB_DEVID_FAM18H_M4H)) {
			has_sb_ioapic = true;
			ret           = true;
		}