ia64: remove support for machvecs
The only thing remaining of the machvecs is a few checks if we are running on an SGI UV system. Replace those with the existing is_uv_system() check that has been rewritten to simply check the OEM ID directly. That leaves us with a generic kernel that is as fast as the previous DIG/ZX1/UV kernels, but can support all hardware. Support for UV and the HP SBA IOMMU is now optional based on new config options. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lkml.kernel.org/r/20190813072514.23299-27-hch@lst.de Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
committed by
Tony Luck
parent
a8384e6ce5
commit
df41017eaf
@@ -8,11 +8,17 @@
|
||||
* Copyright (C) 2008 Silicon Graphics, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/efi.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/percpu.h>
|
||||
#include <asm/uv/uv.h>
|
||||
#include <asm/uv/uv_mmrs.h>
|
||||
#include <asm/uv/uv_hub.h>
|
||||
|
||||
bool ia64_is_uv;
|
||||
EXPORT_SYMBOL_GPL(ia64_is_uv);
|
||||
|
||||
DEFINE_PER_CPU(struct uv_hub_info_s, __uv_hub_info);
|
||||
EXPORT_PER_CPU_SYMBOL_GPL(__uv_hub_info);
|
||||
|
||||
@@ -47,6 +53,34 @@ static __init void get_lowmem_redirect(unsigned long *base, unsigned long *size)
|
||||
BUG();
|
||||
}
|
||||
|
||||
void __init uv_probe_system_type(void)
|
||||
{
|
||||
struct acpi_table_rsdp *rsdp;
|
||||
struct acpi_table_xsdt *xsdt;
|
||||
|
||||
if (efi.acpi20 == EFI_INVALID_TABLE_ADDR) {
|
||||
pr_err("ACPI 2.0 RSDP not found.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
rsdp = (struct acpi_table_rsdp *)__va(efi.acpi20);
|
||||
if (strncmp(rsdp->signature, ACPI_SIG_RSDP, sizeof(ACPI_SIG_RSDP) - 1)) {
|
||||
pr_err("ACPI 2.0 RSDP signature incorrect.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
xsdt = (struct acpi_table_xsdt *)__va(rsdp->xsdt_physical_address);
|
||||
if (strncmp(xsdt->header.signature, ACPI_SIG_XSDT,
|
||||
sizeof(ACPI_SIG_XSDT) - 1)) {
|
||||
pr_err("ACPI 2.0 XSDT signature incorrect.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!strcmp(xsdt->header.oem_id, "SGI") &&
|
||||
!strcmp(xsdt->header.oem_table_id + 4, "UV"))
|
||||
ia64_is_uv = true;
|
||||
}
|
||||
|
||||
void __init uv_setup(char **cmdline_p)
|
||||
{
|
||||
union uvh_si_addr_map_config_u m_n_config;
|
||||
|
||||
Reference in New Issue
Block a user