Please find attached patch to add new armacpi command to grub. This will
load the blob and do the correct thing to add it to the system
configuration table.
Graeme
Here is the first version of prototype for cpu-hotplug on ARM64.
The first part is patch 1~3 for MADT parse.
MADT is being parsed and the cpu possible map and cpu present map are
prefilled.
I kept the terminology consistent with x86 as Al and Andrea's advice.
CPU possible map is equal to the GIC entries in MADT no matter enabled or
disabled, and cpu present map limits to the enabled cpu in MADT. This is
the base for cpu hot-plug.
The second part is patch 4~10 for ACPI cpu hot-plug drivers.
ACPI driver for CPU hot-plug is implemented in this part, when the cpu
logical online/offline is ready, the cpu hot-plug can work on arm64.
Please give some comments, thanks.
Hanjun Guo (10):
ARM64 / ACPI: MADT for armv8 foundation model
ARM64 / ACPI: Core functions for MADT parse
ARM64 / ACPI: Prefill cpu possible and present maps and map logical cpu
id to APIC id
ARM64 / ACPI: Declare processors in ACPI namespace in the DSDT
ARM64 / ACPI: Introduce map_gic_id() to get apic id from MADT or _MAT
method
ARM64 / ACPI: Get logic cpu id to see if the cpu is a new added cpu
ARM64 / ACPI: Implement acpi_map/unmap_lsapic for cpu hot-plug
ARM64 / ACPI: Fix the variable declared but not defined
ARM64 / ACPI: Introduce arch_register/unregister_cpu() for arm64
ARM64 / CPU hot-plug: Skeleton logic cpu online/offline for cpu
hot-plug
arch/arm64/Kconfig | 7 +
arch/arm64/boot/asl/foundation-v8.acpi/apic.asl | 165 +++++++------
arch/arm64/boot/asl/foundation-v8.acpi/dsdt.asl | 205 +++++++++++++++-
arch/arm64/include/asm/acpi.h | 12 +
arch/arm64/include/asm/cpu.h | 5 +
arch/arm64/include/asm/smp.h | 3 +
arch/arm64/kernel/setup.c | 16 +-
arch/arm64/kernel/smp.c | 23 ++
arch/arm64/kernel/topology.c | 26 +++
drivers/acpi/plat/arm/boot.c | 286 +++++++++++++++++++++--
drivers/acpi/processor_core.c | 50 ++--
drivers/acpi/tables.c | 21 ++
12 files changed, 694 insertions(+), 125 deletions(-)
--
1.7.9.5
Hi Hanjun and others,
I have rebased these patches on the 3.10rcX based tree and done a quick
boot test and they don't cause any oopses. So I thought I would push them
to the tree.
Thanks
Graeme
We are able to inject GHES from userspace. Kernel can parse error status block
and print error message in a more descriptive way:
[...]
[ 0.744715] GHES: APEI firmware first mode is enabled by APEI bit.
[ 0.744749] EINJ: Error INJection is initialized.
[...]
# echo 0x20 > /sys/kernel/debug/apei/einj/error_inject
[ 149.010380] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2
[ 149.017080] {1}[Hardware Error]: APEI generic hardware error status
[ 149.023217] {1}[Hardware Error]: severity: 1, fatal
[ 149.027998] {1}[Hardware Error]: section: 0, severity: 0, recoverable
[ 149.034317] {1}[Hardware Error]: flags: 0x00
[ 149.038501] {1}[Hardware Error]: section_type: memory error
where 0x20 can be random error ID because of the hack. Please see following
patches for more explanation.