[PATCH 0/3] ACPI: parse the SPCR table

Aleksey Makarov aleksey.makarov at linaro.org
Mon Jan 25 03:45:20 PST 2016


This patchset is based on the patchset by Leif Lindholm [1]

'ARM Server Base Boot Requirements' [2] mention SPCR 
(Serial Port Console Redirection Table) [3] as a mandatory
ACPI table that specifies the configuration of serial console.

Licensing concerns have prevented implementing it in the past, but as of
10 August 2015, these tables have both been released also under 
OWF 1.0 [4].

SPCR support is included in QEMU's ARM mach-virt since 2.4 release.

Parse the SPCR table and check if any registered console match
the description.  If it does, enable that console.

To implement that, introduce a new member
int (*acpi_match)(struct console *, struct acpi_table_spcr *);
of struct console.  It allows drivers to check if they provide
a matching console device.

Also add an implementation of this member function to the pl011 driver
and fix a minor issue in kernel/printk/printk.c

[1] https://lkml.kernel.org/g/1441716217-23786-1-git-send-email-leif.lindholm@linaro.org
[2] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0044a/index.html
[3] https://msdn.microsoft.com/en-us/library/windows/hardware/dn639132(v=vs.85).aspx
[4] http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0

Aleksey Makarov (3):
  printk: make preferred_console local static bool
  ACPI: parse SPCR and enable matching console
  serial: pl011: add acpi_match for amba-pl011.c

 arch/arm64/Kconfig              |  1 +
 drivers/acpi/Kconfig            |  3 ++
 drivers/acpi/Makefile           |  1 +
 drivers/acpi/spcr.c             | 85 +++++++++++++++++++++++++++++++++++++
 drivers/tty/serial/amba-pl011.c | 14 ++++++
 include/acpi/actbl2.h           |  4 ++
 include/linux/console.h         | 12 ++++++
 kernel/printk/printk.c          | 94 +++++++++++++++++++++++++++++++----------
 8 files changed, 191 insertions(+), 23 deletions(-)
 create mode 100644 drivers/acpi/spcr.c

-- 
2.7.0




More information about the linux-arm-kernel mailing list