This patch set is the kernel part of code for cpu hotplug.
I got a patch in upstream but not accepted by mainline, this patch
emulate an ACPI SCI interrupt to emulate a hot-plug event. Useful
for testing ACPI based hot-plug on systems that don't have the
necessary firmware support. With this patch, I can test the hot-add
and hot-remove repeatly.
This patch set is intended to close the cpu hotplug related cards
in JIRA, just for review purpose, *should not* pushed to our linaro
acpi.
I have created an acpi-hotplug-next branch in our git tree for these
patches.
This patch set includes 3 parts, the forst part is the kernel code,
and the second is the ASL code fix, the third part is the boot wrapper.
Hanjun Guo (4):
Revert "ARM64 / CPU hot-plug: Skeleton logic cpu online/offline for
cpu hot-plug"
ACPI: Enable SCI_EMULATE to manually simulate physical hotplug
testing
arm / ACPI: Remove __cpuinit and fix __init attribute location
arm: fix cpu hot add failure
Mark Rutland (6):
arm64: reorganise smp_enable_ops
arm64: factor out spin-table boot method
arm64: read enable-method for CPU0
arm64: add CPU_HOTPLUG infrastructure
arm64: add PSCI CPU_OFF-based hotplug support
HACK: arm64: dts: foundation: add PSCI data
arch/arm64/Kconfig | 2 +-
arch/arm64/boot/dts/foundation-v8.dts | 19 +--
arch/arm64/include/asm/irq.h | 1 +
arch/arm64/include/asm/smp.h | 46 +++++--
arch/arm64/kernel/cputable.c | 2 +-
arch/arm64/kernel/head.S | 12 +-
arch/arm64/kernel/irq.c | 61 +++++++++
arch/arm64/kernel/process.c | 7 ++
arch/arm64/kernel/smp.c | 222 ++++++++++++++++++---------------
arch/arm64/kernel/smp_psci.c | 54 ++++++--
arch/arm64/kernel/smp_spin_table.c | 85 ++++++++++++-
arch/arm64/kernel/vmlinux.lds.S | 1 -
drivers/acpi/Kconfig | 10 ++
drivers/acpi/Makefile | 1 +
drivers/acpi/plat/arm/boot.c | 20 +--
drivers/acpi/sci_emu.c | 145 +++++++++++++++++++++
16 files changed, 538 insertions(+), 150 deletions(-)
create mode 100644 drivers/acpi/sci_emu.c
--
1.7.9.5
From: Al Stone <ahs3(a)redhat.com>
The first two patches in this series have been submitted before;
this series just combines all of the Arndale GPIO changes so far.
The last of the three converts yet another GPIO device to ACPI.
All that remains is to convert the final controller. To make that
work, the GIC and GIC combiner will need to work first and that I'm
still investigating.
Al Stone (3):
ACPI: ARM: arndale: move definition of GPZ GPIO from DT to ACPI
ACPI: ARM: arndale: convert GPIO controller 3 of 4 to ACPI
ACPI: ARM: arndale: convert GPIO controller 2 of 4 to ACPI
platforms/exynos5250-arndale.acpi/ssdt0.asl | 554 +++++++++++++++++++++++++++-
1 file changed, 553 insertions(+), 1 deletion(-)
--
1.8.3.1
Hi everyone,
I read the wiki about ACPI Table Prioritization:
https://wiki.linaro.org/LEG/Engineering/Kernel/ACPI/TablePriorities
and I noticed that CSRT is in the *Never Tables* priority, here I got
some different opinions.
Yes, CSRT or Core System Resources Table is a proprietary ACPI table
introduced by Microsoft, but This table can contain devices that are not in
the system DSDT table. In particular DMA controllers, Timer, interrupt might
be described here.
we can get DMA description from DMAR (DMA Remapping Table) tables on Intel platform,
but on ARM SoCs, there is no table to describe DMA, only CSRT is available.
Actually, the support code of CSRT in Linux kernel already have submitted
by Intel on Jan 17 this year, but only DMA is supported, still have something
more to do (if needed).
So, why not use the CSRT table to describe DMA?
Thanks
Hanjun
v1->v2: Return specific error value instead of just return -1, and
correct some grammar mistake in changelog.
For cpu hot add, evaluate _MAT or parse MADT will did twice to get
APIC id:
acpi_processor_add()
acpi_processor_get_info()
acpi_get_cpuid() will evaluate _MAT or parse MADT;
acpi_processor_hotadd_init()
acpi_map_lsapic() will evaluate _MAT again;
This patch set introduces apic_id in struct processor to save parsed
APIC id, and use it to remove the duplicated _MAT evaluation.
Further more, the new logical cpu number will be generated in
acpi_register_lapic(), this can be returned to remove the cpumask
allocation and operation to simplify _acpi_map_lsapic().
There are also some cleanups for the ACPI processor dirver code.
Hanjun Guo (2):
ACPI / processor: remove unnecessary if (!pr) check
ACPI / processor: Remove outdated comments
Jiang Liu (4):
ACPI / processor: Introduce apic_id in struct processor to save
parsed APIC id
ACPI / processor: use apic_id and remove duplicated _MAT evaluation
x86 / ACPI: simplify _acpi_map_lsapic()
ACPI / processor: remove some dead code in acpi_processor_get_info()
arch/ia64/kernel/acpi.c | 38 ++----------------
arch/x86/include/asm/mpspec.h | 2 +-
arch/x86/kernel/acpi/boot.c | 88 +++++++++--------------------------------
arch/x86/kernel/apic/apic.c | 8 ++--
drivers/acpi/acpi_processor.c | 22 +++--------
drivers/acpi/processor_core.c | 26 +++++++++---
include/acpi/processor.h | 3 ++
include/linux/acpi.h | 2 +-
8 files changed, 60 insertions(+), 129 deletions(-)
--
1.7.9.5
From: Al Stone <ahs3(a)redhat.com>
This adds another GPIO/pinctrl device to Arndale. In the process,
logic errors in the portions of the Samsung pinctrl driver that
were using ACPI were weeded out.
Al Stone (2):
ACPI: ARM: arndale: move GPIO controller 3 of 4 from FDT to ACPI
ACPI: ARM: arndale: Enable pinctrl for configuring many controllers
via ACPI
arch/arm/boot/dts/exynos5250-arndale.dts | 26 +++++++++++++++
arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos5250.dtsi | 6 ++--
drivers/pinctrl/pinctrl-samsung.c | 53 ++++++++++++++++---------------
4 files changed, 59 insertions(+), 28 deletions(-)
--
1.8.3.1