Re: [PATCH 01/19] ARM64 / ACPI: Get RSDP and ACPI boot-time tables

From: Sudeep Holla
Date: Tue Jul 29 2014 - 04:48:50 EST

On 28/07/14 23:49, Graeme Gregory wrote:

On 28/07/2014 19:29, Sudeep Holla wrote:

On 24/07/14 14:00, Hanjun Guo wrote:
From: Al Stone <al.stone@xxxxxxxxxx>

As we want to get ACPI tables to parse and then use the information
for system initialization, we should get the RSDP (Root System
Description Pointer) first, it then locates Extended Root Description
Table (XSDT) which contains all the 64-bit physical address that
pointer to other boot-time tables.

Introduce acpi.c and its related head file in this patch to provide
fundamental needs of extern variables and functions for ACPI core,
and then get boot-time tables as needed.
- asm/cpu.h need for ACPI core and will be updated in the future to
add definitions for arch_(un)register_cpu which are required for
ACPI based physical CPU hotplug;
- asm/acenv.h for arch specific ACPICA environments and
- asm/acpi.h for arch specific variables and functions needed by
ACPI driver core;
- acpi.c for ARM64 related ACPI implementation for ACPI driver

acpi_boot_table_init() is introduced to get RSDP and boot-time tables,
it will be called in setup_arch() before paging_init(), so we should
use eary_memremap() mechanism here to get the RSDP and all the table

Signed-off-by: Al Stone <al.stone@xxxxxxxxxx>
Signed-off-by: Graeme Gregory <graeme.gregory@xxxxxxxxxx>
Signed-off-by: Tomasz Nowicki <tomasz.nowicki@xxxxxxxxxx>
Signed-off-by: Hanjun Guo <hanjun.guo@xxxxxxxxxx>
arch/arm64/include/asm/acenv.h | 18 ++++++++++
arch/arm64/include/asm/acpi.h | 41 ++++++++++++++++++++++
arch/arm64/include/asm/cpu.h | 11 ++++++
arch/arm64/kernel/Makefile | 1 +
arch/arm64/kernel/acpi.c | 76
arch/arm64/kernel/setup.c | 4 +++
6 files changed, 151 insertions(+)
create mode 100644 arch/arm64/include/asm/acenv.h
create mode 100644 arch/arm64/include/asm/acpi.h
create mode 100644 arch/arm64/include/asm/cpu.h
create mode 100644 arch/arm64/kernel/acpi.c


+ * MADT must provide at least one GICC structure
+ * for GIC initialization, so CPU will be
+ * always available in MADT on ARM64
+ */
+static inline bool acpi_has_cpu_in_madt(void)
+ return 1;

I don't see the user of this function in the series, it's better to
remove. Moreover the comment is so misleading. We will have CPU UID
not the CPU itself in MADT.

This is actually required for a patch that is now upstreamed. Comment
should actually say that its checking for the posibility that the CPU
can be initialised from the MADT. Its used from core in crash kernel
case where boot CPU is not necessarily CPU0 like spec demands.

Ah OK, I now see that in Rafael's linux-pm/linux-next. Sorry I might have
missed to notice that and I assumed this series is based on mainline.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at