From 99adb10c4288a8c9ea59f298956b439f6ae2b3b6 Mon Sep 17 00:00:00 2001 From: Al Stone Date: Fri, 29 May 2015 17:06:02 -0600 Subject: [PATCH] Add new patches to fix NFIT UUIDs, GIC entries for MADT, and remove requirement for using /dev/mem Signed-off-by: Al Stone --- acpica-tools.spec | 9 ++++ acuuid.patch | 26 +++++++++ arm-madt.patch | 45 ++++++++++++++++ dev-mem.patch | 135 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 215 insertions(+) create mode 100644 acuuid.patch create mode 100644 arm-madt.patch create mode 100644 dev-mem.patch diff --git a/acpica-tools.spec b/acpica-tools.spec index 01cfa36..f10e442 100644 --- a/acpica-tools.spec +++ b/acpica-tools.spec @@ -32,6 +32,9 @@ Patch5: re-enable-big-endian.patch Patch6: OPT_LDFLAGS.patch Patch7: int-format.patch Patch8: f23-harden.patch +Patch9: acuuid.patch +Patch10: dev-mem.patch +Patch11: arm-madt.patch BuildRequires: bison patchutils flex @@ -91,6 +94,9 @@ gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f - %patch6 -p1 -b .OPT_LDFLAGS %patch7 -p1 -b .int-format %patch8 -p1 -b .f23-harden +%patch9 -p1 -b .acuuid +%patch10 -p1 -b .dev-mem +%patch11 -p1 -b .arm-madt cp -p %{SOURCE2} README.Fedora cp -p %{SOURCE3} iasl.1 @@ -198,6 +204,9 @@ fi * Thu May 28 2015 Al Stone - 20150515-1 - Update to latest upstream. Closes BZ#122166 - Refresh patches +- Add patch from upstream for incorrect UUIDs for NFIT +- Add patch from Linaro to remove use of /dev/mem (use /sys instead) +- Add patch from upstream to correct ARM GIC entries in MADT * Mon Apr 13 2015 Al Stone - 20150410-1 - Update to latest upstream. Closes BZ#1190383 diff --git a/acuuid.patch b/acuuid.patch new file mode 100644 index 0000000..e9a3148 --- /dev/null +++ b/acuuid.patch @@ -0,0 +1,26 @@ +Index: acpica-unix/source/include/acuuid.h +=================================================================== +--- acpica-unix.orig/source/include/acuuid.h ++++ acpica-unix/source/include/acuuid.h +@@ -52,13 +52,13 @@ + + /* NFIT/NVDIMM */ + +-#define UUID_VOLATILE_MEMORY "4F940573-DAFD-E344-B16C-3F22D252E5D0" +-#define UUID_PERSISTENT_MEMORY "79D3F066-F3B4-7440-AC43-0D3318B78CDB" +-#define UUID_CONTROL_REGION "F601F792-B413-5D40-910B-299367E8234C" +-#define UUID_DATA_REGION "3005AF91-865D-0E47-A6B0-0A2DB9408249" +-#define UUID_VOLATILE_VIRTUAL_DISK "5A53AB77-FC45-4B62-5560-F7B281D1F96E" +-#define UUID_VOLATILE_VIRTUAL_CD "30BD5A3D-7541-CE87-6D64-D2ADE523C4BB" +-#define UUID_PERSISTENT_VIRTUAL_DISK "C902EA5C-074D-69D3-269F-4496FBE096F9" +-#define UUID_PERSISTENT_VIRTUAL_CD "88810108-CD42-48BB-100F-5387D53DED3D" ++#define UUID_VOLATILE_MEMORY "7305944F-FDDA-44E3-B16C-3F22D252E5D0" ++#define UUID_PERSISTENT_MEMORY "66F0D379-B4F3-4074-AC43-0D3318B78CDB" ++#define UUID_CONTROL_REGION "92F701F6-13B4-405D-910B-299367E8234C" ++#define UUID_DATA_REGION "91AF0530-5D86-470E-A6B0-0A2DB9408249" ++#define UUID_VOLATILE_VIRTUAL_DISK "77AB535A-45FC-624B-5560-F7B281D1F96E" ++#define UUID_VOLATILE_VIRTUAL_CD "3D5ABD30-4175-87CE-6D64-D2ADE523C4BB" ++#define UUID_PERSISTENT_VIRTUAL_DISK "5CEA02C9-4D07-69D3-269F-4496FBE096F9" ++#define UUID_PERSISTENT_VIRTUAL_CD "08018188-42CD-BB48-100F-5387D53DED3D" + + #endif /* __AUUID_H__ */ diff --git a/arm-madt.patch b/arm-madt.patch new file mode 100644 index 0000000..4aab3a3 --- /dev/null +++ b/arm-madt.patch @@ -0,0 +1,45 @@ +ACPI 6.0 specified MADT generic distributor version values, but +the detail definition is missing, add its support in this patch. + +Signed-off-by: Hanjun Guo +--- +Hi Bob, Lv, + +As discussed with Lv on linux-acpi maillist, I prepared this +patch for review. + +Please treat this patch as a fix for next ACPICA version and +linux kernel 4.2 material, because we still can not +use the newest ACPICA for linux when this enum is missing, +any comments are welcomed. + +Thanks +Hanjun + + source/include/actbl1.h | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/source/include/actbl1.h b/source/include/actbl1.h +index 1c508a0..0235543 100644 +--- a/source/include/actbl1.h ++++ b/source/include/actbl1.h +@@ -978,6 +978,18 @@ typedef struct acpi_madt_generic_distributor + + } ACPI_MADT_GENERIC_DISTRIBUTOR; + ++/* Values for Version in Generic Distributor (ACPI 6.0) */ ++ ++enum AcpiMadtGicVersionType ++{ ++ ACPI_MADT_GIC_VER_UNKNOWN = 0, ++ ACPI_MADT_GIC_VER_V1 = 1, ++ ACPI_MADT_GIC_VER_V2 = 2, ++ ACPI_MADT_GIC_VER_V3 = 3, ++ ACPI_MADT_GIC_VER_V4 = 4, ++ ACPI_MADT_GIC_VER_RESERVED = 5 /* 5 and greater are reserved */ ++}; ++ + + /* 13: Generic MSI Frame (ACPI 5.1) */ + +-- 1.9.1 diff --git a/dev-mem.patch b/dev-mem.patch new file mode 100644 index 0000000..1511717 --- /dev/null +++ b/dev-mem.patch @@ -0,0 +1,135 @@ +Subject: [RFC PATCH] Avoid all Linux /dev/mem accesses when -c is specified +From: Roy Franz +Date: 05/15/2015 12:50 PM +To: linaro-uefi@lists.linaro.org, linaro-acpi@lists.linaro.org, graeme.gregory@linaro.org, al.stone@linaro.org +CC: Roy Franz + +Don't try to read the RSDP structure or RSDT/XSDT tables +from memory with the -c option. These are now provided +as files in /sysfs, and this allows acpidump to function +when /dev/mem is not available, which will be the case +for Aarch64 servers. + +Signed-off-by: Roy Franz +--- + source/os_specific/service_layers/oslinuxtbl.c | 87 +++++++++++++------------- + 1 file changed, 43 insertions(+), 44 deletions(-) + +Index: acpica-unix/source/os_specific/service_layers/oslinuxtbl.c +=================================================================== +--- acpica-unix.orig/source/os_specific/service_layers/oslinuxtbl.c ++++ acpica-unix/source/os_specific/service_layers/oslinuxtbl.c +@@ -686,70 +686,69 @@ OslTableInitialize ( + return (AE_OK); + } + ++ if (!Gbl_DumpCustomizedTables) ++ { + /* Get RSDP from memory */ + +- Status = OslLoadRsdp (); +- if (ACPI_FAILURE (Status)) +- { +- return (Status); +- } ++ Status = OslLoadRsdp (); ++ if (ACPI_FAILURE (Status)) ++ { ++ return (Status); ++ } + +- /* Get XSDT from memory */ ++ /* Get XSDT from memory */ + +- if (Gbl_Rsdp.Revision && !Gbl_DoNotDumpXsdt) +- { +- if (Gbl_Xsdt) ++ if (Gbl_Rsdp.Revision && !Gbl_DoNotDumpXsdt) + { +- free (Gbl_Xsdt); +- Gbl_Xsdt = NULL; ++ if (Gbl_Xsdt) ++ { ++ free (Gbl_Xsdt); ++ Gbl_Xsdt = NULL; ++ } ++ ++ Gbl_Revision = 2; ++ Status = OslGetBiosTable (ACPI_SIG_XSDT, 0, ++ ACPI_CAST_PTR (ACPI_TABLE_HEADER *, &Gbl_Xsdt), &Address); ++ if (ACPI_FAILURE (Status)) ++ { ++ return (Status); ++ } + } + +- Gbl_Revision = 2; +- Status = OslGetBiosTable (ACPI_SIG_XSDT, 0, +- ACPI_CAST_PTR (ACPI_TABLE_HEADER *, &Gbl_Xsdt), &Address); +- if (ACPI_FAILURE (Status)) ++ /* Get RSDT from memory */ ++ ++ if (Gbl_Rsdp.RsdtPhysicalAddress) + { +- return (Status); ++ if (Gbl_Rsdt) ++ { ++ free (Gbl_Rsdt); ++ Gbl_Rsdt = NULL; ++ } ++ ++ Status = OslGetBiosTable (ACPI_SIG_RSDT, 0, ++ ACPI_CAST_PTR (ACPI_TABLE_HEADER *, &Gbl_Rsdt), &Address); ++ if (ACPI_FAILURE (Status)) ++ { ++ return (Status); ++ } + } +- } + +- /* Get RSDT from memory */ ++ /* Get FADT from memory */ + +- if (Gbl_Rsdp.RsdtPhysicalAddress) +- { +- if (Gbl_Rsdt) ++ if (Gbl_Fadt) + { +- free (Gbl_Rsdt); +- Gbl_Rsdt = NULL; ++ free (Gbl_Fadt); ++ Gbl_Fadt = NULL; + } + +- Status = OslGetBiosTable (ACPI_SIG_RSDT, 0, +- ACPI_CAST_PTR (ACPI_TABLE_HEADER *, &Gbl_Rsdt), &Address); ++ Status = OslGetBiosTable (ACPI_SIG_FADT, 0, ++ ACPI_CAST_PTR (ACPI_TABLE_HEADER *, &Gbl_Fadt), &Gbl_FadtAddress); + if (ACPI_FAILURE (Status)) + { + return (Status); + } +- } +- +- /* Get FADT from memory */ +- +- if (Gbl_Fadt) +- { +- free (Gbl_Fadt); +- Gbl_Fadt = NULL; +- } + +- Status = OslGetBiosTable (ACPI_SIG_FADT, 0, +- ACPI_CAST_PTR (ACPI_TABLE_HEADER *, &Gbl_Fadt), &Gbl_FadtAddress); +- if (ACPI_FAILURE (Status)) +- { +- return (Status); +- } +- +- if (!Gbl_DumpCustomizedTables) +- { + /* Add mandatory tables to global table list first */ +- + Status = OslAddTableToList (ACPI_RSDP_NAME, 0); + if (ACPI_FAILURE (Status)) + {