[PATCH v2 0/8] ACPI: parse the DBG2 table

From: Aleksey Makarov
Date: Wed Feb 24 2016 - 12:10:57 EST


"ARM Server Base Boot Requiremets" [1] mentions DBG2 (Microsoft Debug
Port Table 2) [2] as a mandatory ACPI table that specifies debug ports.

- Move acpi/dt decision earlier in boot process on ARM64
- Move earlycon early_param handling to serial to parse earlycon option once
- Add definition of DBG2 subtypes. It's the same patch as in the SPCR series [3]
- Refactor ACPI linker tables code to enable iterating over subtables other than
subtables having acpi_subtype header (such as DBG2)
- Implement macros

ACPI_DBG2_DECLARE(name, type, subtype, setup_fn, data_ptr)

that defines a handler for the port of the given type and subtype.
- For each port defined by that macros that is also described in the ACPI DBG2
table call provided callback.
- Implement a helper macros that can be used to define early serial console
- Enable DBG2 on ARM64
- Define early console for pl011 serial

Based on the original work by Leif Lindholm <leif.lindholm@xxxxxxxxxx> [4]

Should be applied to next-20160224.

Tested on last QEMU with patches that introduce DBG2 and fix a QEMU bug:

https://git.linaro.org/people/aleksey.makarov/qemu.git amakarov/gdb2.03

v2:
- Fix parse_acpi() (Matthias Brugger)
- Add a reference to QEMU DBG2 patches and to original work
- Rebase to the last linux-next

v1:
https://lkml.kernel.org/g/1456148818-26257-1-git-send-email-aleksey.makarov@xxxxxxxxxx

[1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0044a/index.html
[2] http://go.microsoft.com/fwlink/p/?LinkId=234837
[3] https://lkml.kernel.org/g/1455559532-8305-1-git-send-email-aleksey.makarov@xxxxxxxxxx
[4] https://lkml.kernel.org/g/1441716217-23786-1-git-send-email-leif.lindholm@xxxxxxxxxx

Aleksey Makarov (6):
ACPI: add definitions of DBG2 subtypes
ACPI: genaralize iterating over subtables in ACPI_PROBE_TABLE()
ACPI: parse DBG2 table
ACPI: serial: implement earlycon on ACPI DBG2 port
ACPI: enable ACPI_DBG2_TABLE on ARM64
serial: pl011: add ACPI DBG2 serial port

Leif Lindholm (2):
arm64: move acpi/dt decision earlier in boot process
of/serial: move earlycon early_param handling to serial

Documentation/kernel-parameters.txt | 3 +
arch/arm64/Kconfig | 1 +
arch/arm64/kernel/acpi.c | 64 ++++++++++-----------
drivers/acpi/Kconfig | 3 +
drivers/acpi/Makefile | 1 +
drivers/acpi/dbg2.c | 85 ++++++++++++++++++++++++++++
drivers/acpi/scan.c | 44 ++++++++++-----
drivers/clocksource/arm_arch_timer.c | 3 +-
drivers/irqchip/irq-gic.c | 4 +-
drivers/of/fdt.c | 11 +---
drivers/tty/serial/amba-pl011.c | 3 +
drivers/tty/serial/earlycon.c | 61 ++++++++++++++++++++
include/acpi/actbl2.h | 5 ++
include/asm-generic/vmlinux.lds.h | 1 +
include/linux/acpi.h | 104 ++++++++++++++++++++++++-----------
include/linux/acpi_dbg2.h | 68 +++++++++++++++++++++++
include/linux/clocksource.h | 2 +-
include/linux/irqchip.h | 5 +-
include/linux/of_fdt.h | 2 +
19 files changed, 375 insertions(+), 95 deletions(-)
create mode 100644 drivers/acpi/dbg2.c
create mode 100644 include/linux/acpi_dbg2.h

--
2.7.1