From 0c6352ec2a238c1f89b0f394b34da57ab0849f6a Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Thu, 29 Aug 2019 17:04:19 +0300 Subject: [PATCH] x86: tangier: Reserve PCI ECAM in motherboard resources Per PCI firmware specification the ACPI has to reserve the memory which is defined as PCI ECAM. Fixes: 39665beed6f7 ("x86: tangier: Enable ACPI support for Intel Tangier") Signed-off-by: Andy Shevchenko Reviewed-by: Bin Meng --- arch/x86/cpu/tangier/acpi.c | 3 ++- .../include/asm/arch-tangier/acpi/platform.asl | 1 + .../asm/arch-tangier/acpi/southcluster.asl | 17 +++++++++++++++++ arch/x86/include/asm/arch-tangier/iomap.h | 10 ++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 arch/x86/include/asm/arch-tangier/iomap.h diff --git a/arch/x86/cpu/tangier/acpi.c b/arch/x86/cpu/tangier/acpi.c index 61b2642aa9..362e133cf1 100644 --- a/arch/x86/cpu/tangier/acpi.c +++ b/arch/x86/cpu/tangier/acpi.c @@ -14,6 +14,7 @@ #include #include #include +#include void acpi_create_fadt(struct acpi_fadt *fadt, struct acpi_facs *facs, void *dsdt) @@ -63,7 +64,7 @@ u32 acpi_fill_mcfg(u32 current) /* TODO: Derive parameters from SFI MCFG table */ current += acpi_create_mcfg_mmconfig ((struct acpi_mcfg_mmconfig *)current, - 0x3f500000, 0x0, 0x0, 0x0); + MCFG_BASE_ADDRESS, 0x0, 0x0, 0x0); return current; } diff --git a/arch/x86/include/asm/arch-tangier/acpi/platform.asl b/arch/x86/include/asm/arch-tangier/acpi/platform.asl index a75b388c47..cf75ca7543 100644 --- a/arch/x86/include/asm/arch-tangier/acpi/platform.asl +++ b/arch/x86/include/asm/arch-tangier/acpi/platform.asl @@ -6,6 +6,7 @@ */ #include +#include /* * The _PTS method (Prepare To Sleep) is called before the OS is diff --git a/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl b/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl index 1b9d808b7b..f73a6b351c 100644 --- a/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl +++ b/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl @@ -66,6 +66,23 @@ Device (PCI0) Return (MCRS) } + /* Device Resource Consumption */ + Device (PDRC) + { + Name (_HID, EISAID("PNP0C02")) + Name (_UID, One) + + Name (PDRS, ResourceTemplate() + { + Memory32Fixed(ReadWrite, MCFG_BASE_ADDRESS, MCFG_BASE_SIZE) + }) + + Method (_CRS, 0, Serialized) + { + Return (PDRS) + } + } + Method (_OSC, 4) { /* Check for proper GUID */ diff --git a/arch/x86/include/asm/arch-tangier/iomap.h b/arch/x86/include/asm/arch-tangier/iomap.h new file mode 100644 index 0000000000..b0fc03e015 --- /dev/null +++ b/arch/x86/include/asm/arch-tangier/iomap.h @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* Copyright (c) 2019 Intel Corporation */ + +#ifndef _TANGIER_IOMAP_H +#define _TANGIER_IOMAP_H + +#define MCFG_BASE_ADDRESS 0x3f500000 +#define MCFG_BASE_SIZE 0x00100000 + +#endif /* _TANGIER_IOMAP_H */ -- 2.39.5