Commit 57678cdd 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/I8U3GP


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 d553095c
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -3001,6 +3001,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;
@@ -3026,7 +3029,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;
		}