'ARM Server Base Boot Requirements' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.
Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().
Use SPCR to tell if SBSA serial driver should use 32-bit access to registers.
Based on the work by Leif Lindholm [3]
Should be applied to next-20160229.
Tested on QEMU. SPCR support is included in QEMU's ARM mach-virt
since 2.4 release.
v4:
- drop patch "ACPI: change __init to __ref for early_acpi_os_unmap_memory()"
ACPI developers work on a new API and asked not to do that.
Instead, use acpi_get_table_with_size()/early_acpi_os_unmap_memory() once
and cache the result. (Lv Zheng)
- fix some style issues (Yury Norov)
v3:
https://lkml.kernel.org/g/1455559532-8305-1-git-send-email-aleksey.makarov at linaro.org
Greg Kroah-Hartman did not like v2 so I have rewritten this patchset:
- drop acpi_match() member of struct console
- drop implementations of this member for pl011 and 8250
- drop the patch that renames some vars in printk.c as it is not needed anymore
- drop patch that introduces system wide acpi_table_parse2().
Instead introduce a custom acpi_table_parse_spcr() in spcr.c
Instead of introducing a new match_acpi() member of struct console,
this patchset introduces a new function acpi_console_check().
This function is called when a new uart is registered at serial_core.c
the same way OF code checks for console. If the registered uart is the
console specified by SPCR table, this function calls add_preferred_console()
The restrictions of this approach are:
- only serial consoles can be set up
- only consoles specified by the memory/io address can be set up
(SPCR can specify devices by PCI id/PCI address)
v2:
https://lkml.kernel.org/g/1455299022-11641-1-git-send-email-aleksey.makarov at linaro.org
- don't use SPCR if user specified console in command line
- fix initialization order of newcon->index = 0
- rename some variables at printk.c (Joe Perches, Peter Hurley)
- enable ACPI_SPCR_TABLE in a separate patch (Andy Shevchenko)
- remove the retry loop for console registering (Peter Hurley).
Instead, obtain SPCR with acpi_get_table(). That works after
call to acpi_early_init() i. e. in any *_initcall()
- describe design decision behind introducing acpi_match() (Peter Hurley)
- fix compilation for x86 + ACPI (Graeme Gregory)
- introduce DBG2 constants in a separate patch (Andy Shevchenko)
- fix a typo in DBG2 constants (Andy Shevchenko)
- add ACPI_DBG2_ARM_SBSA_32BIT constant (Christopher Covington)
- add support for ACPI_DBG2_ARM_SBSA_* consoles (Christopher Covington)
- add documentation for functions
- add a patch that uses SPCR to find if SBSA serial driver should use 32-bit
accessor functions (Christopher Covington)
- change __init to __ref for early_acpi_os_unmap_memory() in a separate patch
- introduce acpi_table_parse2() in a separate patch
- fix fetching the SPCR table early (Mark Salter)
- add a patch from Mark Salter that introduces support for matching 8250-based
consoles
v1:
https://lkml.kernel.org/g/1453722324-22407-1-git-send-email-aleksey.makarov at linaro.org
[1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0044a/index.html
[2] https://msdn.microsoft.com/en-us/library/windows/hardware/dn639132(v=vs.85).aspx
[3] https://lkml.kernel.org/g/1441716217-23786-1-git-send-email-leif.lindholm at linaro.org
Aleksey Makarov (4):
ACPI: parse SPCR and enable matching console
ACPI: enable ACPI_SPCR_TABLE on ARM64
ACPI: add definitions of DBG2 subtypes
serial: pl011: use ACPI SPCR to setup 32-bit access
arch/arm64/Kconfig | 1 +
drivers/acpi/Kconfig | 3 +
drivers/acpi/Makefile | 1 +
drivers/acpi/spcr.c | 138 +++++++++++++++++++++++++++++++++++++++
drivers/tty/serial/amba-pl011.c | 2 +
drivers/tty/serial/serial_core.c | 14 +++-
include/acpi/actbl2.h | 5 ++
include/linux/acpi.h | 15 +++++
8 files changed, 177 insertions(+), 2 deletions(-)
create mode 100644 drivers/acpi/spcr.c
--
2.7.1
'ARM Server Base Boot Requiremets' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.
Parse this table and check if any registered console match the
description. If it does, enable that console.
Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().
[1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0044a/index.html
[2] http://msdn.microsoft.com/en-us/library/windows/hardware/dn639131(v=vs.85).aspx
Signed-off-by: Aleksey Makarov <redacted>
---
drivers/acpi/Kconfig | 3 +
drivers/acpi/Makefile | 1 +
drivers/acpi/spcr.c | 116 +++++++++++++++++++++++++++++++++++++++
drivers/tty/serial/serial_core.c | 14 ++++-
include/linux/acpi.h | 10 ++++
5 files changed, 142 insertions(+), 2 deletions(-)
create mode 100644 drivers/acpi/spcr.c
@@ -82,6 +82,7 @@ obj-$(CONFIG_ACPI_EC_DEBUGFS) += ec_sys.oobj-$(CONFIG_ACPI_CUSTOM_METHOD)+=custom_method.oobj-$(CONFIG_ACPI_BGRT)+=bgrt.oobj-$(CONFIG_ACPI_CPPC_LIB)+=cppc_acpi.o+obj-$(CONFIG_ACPI_SPCR_TABLE)+=spcr.oobj-$(CONFIG_ACPI_DEBUGGER_USER)+=acpi_dbg.o# processor has its own "processor." module_param namespace
From: Andy Shevchenko <hidden> Date: 2016-02-29 13:29:48
On Mon, Feb 29, 2016 at 2:02 PM, Aleksey Makarov
[off-list ref] wrote:
'ARM Server Base Boot Requiremets' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.
Parse this table and check if any registered console match the
description. If it does, enable that console.
Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().
+ if (ACPI_FAILURE(status)) {
+ pr_err("could not get the table\n");
Is it worse to have on error level? Is it possible to have firmware
without this table? I think it would be a normal case for non-arm
world.
I'm also not sure if this message useful even on warn level.
+ * acpi_console_check - Check if uart matches the console specified by SPCR.
+ *
+ * @uport: uart port to check
+ *
Since you use sections, you may add:
+ * Description:
+ * This function checks if the ACPI SPCR table specifies @uport to be a console
+ * and if so calls add_preferred_console()
+ *
+ * Return: a non-error value if the console matches.
quoted hunk
@@ -2654,8 +2655,17 @@ int uart_add_one_port(struct uart_driver *drv, struct uart_port *uport) spin_lock_init(&uport->lock); lockdep_set_class(&uport->lock, &port_lock_key); }- if (uport->cons && uport->dev)- of_console_check(uport->dev->of_node, uport->cons->name, uport->line);++ /*+ * Support both open FW and ACPI access to console definitions.+ * Both of_console_check() and acpi_console_check() will call+ * add_preferred_console() if a console definition is found.+ */+ if (uport->cons && uport->dev) {+ if (!acpi_console_check(uport))
if (cond1) {
if (cond2) {
...
}
}
is equivalent to
if (cond1 && cond2) {
...
}
Hi Andy,
Thank you for review.
On 02/29/2016 04:29 PM, Andy Shevchenko wrote:
On Mon, Feb 29, 2016 at 2:02 PM, Aleksey Makarov
[off-list ref] wrote:
quoted
'ARM Server Base Boot Requiremets' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.
Parse this table and check if any registered console match the
description. If it does, enable that console.
Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().
quoted
+ if (ACPI_FAILURE(status)) {
+ pr_err("could not get the table\n");
Is it worse to have on error level? Is it possible to have firmware
without this table? I think it would be a normal case for non-arm
world.
I'm also not sure if this message useful even on warn level.
I will delete the message in the next version, thank you.
+ * acpi_console_check - Check if uart matches the console specified by SPCR.
+ *
+ * @uport: uart port to check
+ *
Since you use sections, you may add:
+ * Description:
According to kernel-doc-nano-HOWTO.txt "Description: " is optional.
quoted
+ * This function checks if the ACPI SPCR table specifies @uport to be a console
+ * and if so calls add_preferred_console()
+ *
+ * Return: a non-error value if the console matches.
quoted
@@ -2654,8 +2655,17 @@ int uart_add_one_port(struct uart_driver *drv, struct uart_port *uport) spin_lock_init(&uport->lock); lockdep_set_class(&uport->lock, &port_lock_key); }- if (uport->cons && uport->dev)- of_console_check(uport->dev->of_node, uport->cons->name, uport->line);++ /*+ * Support both open FW and ACPI access to console definitions.+ * Both of_console_check() and acpi_console_check() will call+ * add_preferred_console() if a console definition is found.+ */+ if (uport->cons && uport->dev) {+ if (!acpi_console_check(uport))
if (cond1) {
if (cond2) {
...
}
}
is equivalent to
if (cond1 && cond2) {
...
}
It is, but it's a style decision. I would prefer to leave it as is because it emphasizes that
after meeting some condition we first call acpi_console_check() and then of_console_check().
Thank you
Aleksey Makarov
Some implementations of ARM SBSA serial port hardware require that access
to the registers should be 32-bit. Unfortunately, the only way for
the driver to tell if it's the case is to use the data from ACPI SPCR/DBG2
tables. In this case the value of the 'Interface Type' field of the SPCR
table is ACPI_DBG2_ARM_SBSA_32BIT.
How this value is described in the DBG2 spec:
"(deprecated) ARM SBSA (2.x only) Generic UART supporting only
32-bit accesses"
Signed-off-by: Aleksey Makarov <redacted>
---
drivers/acpi/spcr.c | 22 ++++++++++++++++++++++
drivers/tty/serial/amba-pl011.c | 2 ++
include/linux/acpi.h | 5 +++++
3 files changed, 29 insertions(+)
From: Peter Hurley <hidden> Date: 2016-03-01 15:27:07
It's customary to cc reviewers of your previous series.
Please review my comments to v3.
Regards,
Peter Hurley
On 02/29/2016 04:02 AM, Aleksey Makarov wrote:
'ARM Server Base Boot Requirements' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.
Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().
Use SPCR to tell if SBSA serial driver should use 32-bit access to registers.
Based on the work by Leif Lindholm [3]
Should be applied to next-20160229.
Tested on QEMU. SPCR support is included in QEMU's ARM mach-virt
since 2.4 release.
v4:
- drop patch "ACPI: change __init to __ref for early_acpi_os_unmap_memory()"
ACPI developers work on a new API and asked not to do that.
Instead, use acpi_get_table_with_size()/early_acpi_os_unmap_memory() once
and cache the result. (Lv Zheng)
- fix some style issues (Yury Norov)
v3:
https://lkml.kernel.org/g/1455559532-8305-1-git-send-email-aleksey.makarov at linaro.org
Greg Kroah-Hartman did not like v2 so I have rewritten this patchset:
- drop acpi_match() member of struct console
- drop implementations of this member for pl011 and 8250
- drop the patch that renames some vars in printk.c as it is not needed anymore
- drop patch that introduces system wide acpi_table_parse2().
Instead introduce a custom acpi_table_parse_spcr() in spcr.c
Instead of introducing a new match_acpi() member of struct console,
this patchset introduces a new function acpi_console_check().
This function is called when a new uart is registered at serial_core.c
the same way OF code checks for console. If the registered uart is the
console specified by SPCR table, this function calls add_preferred_console()
The restrictions of this approach are:
- only serial consoles can be set up
- only consoles specified by the memory/io address can be set up
(SPCR can specify devices by PCI id/PCI address)
v2:
https://lkml.kernel.org/g/1455299022-11641-1-git-send-email-aleksey.makarov at linaro.org
- don't use SPCR if user specified console in command line
- fix initialization order of newcon->index = 0
- rename some variables at printk.c (Joe Perches, Peter Hurley)
- enable ACPI_SPCR_TABLE in a separate patch (Andy Shevchenko)
- remove the retry loop for console registering (Peter Hurley).
Instead, obtain SPCR with acpi_get_table(). That works after
call to acpi_early_init() i. e. in any *_initcall()
- describe design decision behind introducing acpi_match() (Peter Hurley)
- fix compilation for x86 + ACPI (Graeme Gregory)
- introduce DBG2 constants in a separate patch (Andy Shevchenko)
- fix a typo in DBG2 constants (Andy Shevchenko)
- add ACPI_DBG2_ARM_SBSA_32BIT constant (Christopher Covington)
- add support for ACPI_DBG2_ARM_SBSA_* consoles (Christopher Covington)
- add documentation for functions
- add a patch that uses SPCR to find if SBSA serial driver should use 32-bit
accessor functions (Christopher Covington)
- change __init to __ref for early_acpi_os_unmap_memory() in a separate patch
- introduce acpi_table_parse2() in a separate patch
- fix fetching the SPCR table early (Mark Salter)
- add a patch from Mark Salter that introduces support for matching 8250-based
consoles
v1:
https://lkml.kernel.org/g/1453722324-22407-1-git-send-email-aleksey.makarov at linaro.org
[1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0044a/index.html
[2] https://msdn.microsoft.com/en-us/library/windows/hardware/dn639132(v=vs.85).aspx
[3] https://lkml.kernel.org/g/1441716217-23786-1-git-send-email-leif.lindholm at linaro.org
Aleksey Makarov (4):
ACPI: parse SPCR and enable matching console
ACPI: enable ACPI_SPCR_TABLE on ARM64
ACPI: add definitions of DBG2 subtypes
serial: pl011: use ACPI SPCR to setup 32-bit access
arch/arm64/Kconfig | 1 +
drivers/acpi/Kconfig | 3 +
drivers/acpi/Makefile | 1 +
drivers/acpi/spcr.c | 138 +++++++++++++++++++++++++++++++++++++++
drivers/tty/serial/amba-pl011.c | 2 +
drivers/tty/serial/serial_core.c | 14 +++-
include/acpi/actbl2.h | 5 ++
include/linux/acpi.h | 15 +++++
8 files changed, 177 insertions(+), 2 deletions(-)
create mode 100644 drivers/acpi/spcr.c
From: Peter Hurley <hidden> Date: 2016-03-01 15:31:45
On 02/29/2016 04:02 AM, Aleksey Makarov wrote:
'ARM Server Base Boot Requirements' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.
Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().
How will a user enable an earlycon on the same console as the SPCR
console if there is no DBG2 table?
Use SPCR to tell if SBSA serial driver should use 32-bit access to registers.
Based on the work by Leif Lindholm [3]
Should be applied to next-20160229.
Tested on QEMU. SPCR support is included in QEMU's ARM mach-virt
since 2.4 release.
v4:
- drop patch "ACPI: change __init to __ref for early_acpi_os_unmap_memory()"
ACPI developers work on a new API and asked not to do that.
Instead, use acpi_get_table_with_size()/early_acpi_os_unmap_memory() once
and cache the result. (Lv Zheng)
- fix some style issues (Yury Norov)
v3:
https://lkml.kernel.org/g/1455559532-8305-1-git-send-email-aleksey.makarov at linaro.org
Greg Kroah-Hartman did not like v2 so I have rewritten this patchset:
- drop acpi_match() member of struct console
- drop implementations of this member for pl011 and 8250
- drop the patch that renames some vars in printk.c as it is not needed anymore
- drop patch that introduces system wide acpi_table_parse2().
Instead introduce a custom acpi_table_parse_spcr() in spcr.c
Instead of introducing a new match_acpi() member of struct console,
this patchset introduces a new function acpi_console_check().
This function is called when a new uart is registered at serial_core.c
the same way OF code checks for console. If the registered uart is the
console specified by SPCR table, this function calls add_preferred_console()
The restrictions of this approach are:
- only serial consoles can be set up
- only consoles specified by the memory/io address can be set up
(SPCR can specify devices by PCI id/PCI address)
v2:
https://lkml.kernel.org/g/1455299022-11641-1-git-send-email-aleksey.makarov at linaro.org
- don't use SPCR if user specified console in command line
- fix initialization order of newcon->index = 0
- rename some variables at printk.c (Joe Perches, Peter Hurley)
- enable ACPI_SPCR_TABLE in a separate patch (Andy Shevchenko)
- remove the retry loop for console registering (Peter Hurley).
Instead, obtain SPCR with acpi_get_table(). That works after
call to acpi_early_init() i. e. in any *_initcall()
- describe design decision behind introducing acpi_match() (Peter Hurley)
- fix compilation for x86 + ACPI (Graeme Gregory)
- introduce DBG2 constants in a separate patch (Andy Shevchenko)
- fix a typo in DBG2 constants (Andy Shevchenko)
- add ACPI_DBG2_ARM_SBSA_32BIT constant (Christopher Covington)
- add support for ACPI_DBG2_ARM_SBSA_* consoles (Christopher Covington)
- add documentation for functions
- add a patch that uses SPCR to find if SBSA serial driver should use 32-bit
accessor functions (Christopher Covington)
- change __init to __ref for early_acpi_os_unmap_memory() in a separate patch
- introduce acpi_table_parse2() in a separate patch
- fix fetching the SPCR table early (Mark Salter)
- add a patch from Mark Salter that introduces support for matching 8250-based
consoles
v1:
https://lkml.kernel.org/g/1453722324-22407-1-git-send-email-aleksey.makarov at linaro.org
[1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0044a/index.html
[2] https://msdn.microsoft.com/en-us/library/windows/hardware/dn639132(v=vs.85).aspx
[3] https://lkml.kernel.org/g/1441716217-23786-1-git-send-email-leif.lindholm at linaro.org
Aleksey Makarov (4):
ACPI: parse SPCR and enable matching console
ACPI: enable ACPI_SPCR_TABLE on ARM64
ACPI: add definitions of DBG2 subtypes
serial: pl011: use ACPI SPCR to setup 32-bit access
arch/arm64/Kconfig | 1 +
drivers/acpi/Kconfig | 3 +
drivers/acpi/Makefile | 1 +
drivers/acpi/spcr.c | 138 +++++++++++++++++++++++++++++++++++++++
drivers/tty/serial/amba-pl011.c | 2 +
drivers/tty/serial/serial_core.c | 14 +++-
include/acpi/actbl2.h | 5 ++
include/linux/acpi.h | 15 +++++
8 files changed, 177 insertions(+), 2 deletions(-)
create mode 100644 drivers/acpi/spcr.c
'ARM Server Base Boot Requirements' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.
Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().
How will a user enable an earlycon on the same console as the SPCR
console if there is no DBG2 table?
Use SPCR to tell if SBSA serial driver should use 32-bit access to registers.
Based on the work by Leif Lindholm [3]
Should be applied to next-20160229.
Tested on QEMU. SPCR support is included in QEMU's ARM mach-virt
since 2.4 release.
v4:
- drop patch "ACPI: change __init to __ref for early_acpi_os_unmap_memory()"
ACPI developers work on a new API and asked not to do that.
Instead, use acpi_get_table_with_size()/early_acpi_os_unmap_memory() once
and cache the result. (Lv Zheng)
- fix some style issues (Yury Norov)
v3:
https://lkml.kernel.org/g/1455559532-8305-1-git-send-email-aleksey.makarov at linaro.org
Greg Kroah-Hartman did not like v2 so I have rewritten this patchset:
- drop acpi_match() member of struct console
- drop implementations of this member for pl011 and 8250
- drop the patch that renames some vars in printk.c as it is not needed anymore
- drop patch that introduces system wide acpi_table_parse2().
Instead introduce a custom acpi_table_parse_spcr() in spcr.c
Instead of introducing a new match_acpi() member of struct console,
this patchset introduces a new function acpi_console_check().
This function is called when a new uart is registered at serial_core.c
the same way OF code checks for console. If the registered uart is the
console specified by SPCR table, this function calls add_preferred_console()
The restrictions of this approach are:
- only serial consoles can be set up
- only consoles specified by the memory/io address can be set up
(SPCR can specify devices by PCI id/PCI address)
v2:
https://lkml.kernel.org/g/1455299022-11641-1-git-send-email-aleksey.makarov at linaro.org
- don't use SPCR if user specified console in command line
- fix initialization order of newcon->index = 0
- rename some variables at printk.c (Joe Perches, Peter Hurley)
- enable ACPI_SPCR_TABLE in a separate patch (Andy Shevchenko)
- remove the retry loop for console registering (Peter Hurley).
Instead, obtain SPCR with acpi_get_table(). That works after
call to acpi_early_init() i. e. in any *_initcall()
- describe design decision behind introducing acpi_match() (Peter Hurley)
- fix compilation for x86 + ACPI (Graeme Gregory)
- introduce DBG2 constants in a separate patch (Andy Shevchenko)
- fix a typo in DBG2 constants (Andy Shevchenko)
- add ACPI_DBG2_ARM_SBSA_32BIT constant (Christopher Covington)
- add support for ACPI_DBG2_ARM_SBSA_* consoles (Christopher Covington)
- add documentation for functions
- add a patch that uses SPCR to find if SBSA serial driver should use 32-bit
accessor functions (Christopher Covington)
- change __init to __ref for early_acpi_os_unmap_memory() in a separate patch
- introduce acpi_table_parse2() in a separate patch
- fix fetching the SPCR table early (Mark Salter)
- add a patch from Mark Salter that introduces support for matching 8250-based
consoles
v1:
https://lkml.kernel.org/g/1453722324-22407-1-git-send-email-aleksey.makarov at linaro.org
[1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0044a/index.html
[2] https://msdn.microsoft.com/en-us/library/windows/hardware/dn639132(v=vs.85).aspx
[3] https://lkml.kernel.org/g/1441716217-23786-1-git-send-email-leif.lindholm at linaro.org
Aleksey Makarov (4):
ACPI: parse SPCR and enable matching console
ACPI: enable ACPI_SPCR_TABLE on ARM64
ACPI: add definitions of DBG2 subtypes
serial: pl011: use ACPI SPCR to setup 32-bit access
arch/arm64/Kconfig | 1 +
drivers/acpi/Kconfig | 3 +
drivers/acpi/Makefile | 1 +
drivers/acpi/spcr.c | 138 +++++++++++++++++++++++++++++++++++++++
drivers/tty/serial/amba-pl011.c | 2 +
drivers/tty/serial/serial_core.c | 14 +++-
include/acpi/actbl2.h | 5 ++
include/linux/acpi.h | 15 +++++
8 files changed, 177 insertions(+), 2 deletions(-)
create mode 100644 drivers/acpi/spcr.c
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Peter Hurley <hidden> Date: 2016-03-03 15:35:47
On 03/03/2016 03:59 AM, Aleksey Makarov wrote:
On 03/01/2016 06:31 PM, Peter Hurley wrote:
quoted
On 02/29/2016 04:02 AM, Aleksey Makarov wrote:
quoted
'ARM Server Base Boot Requirements' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.
Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().
How will a user enable an earlycon on the same console as the SPCR
console if there is no DBG2 table?
That's pretty disingenuous; via command line?
By that measure, none of your patches are required because a user
can already start both console and earlycon without them.
With the console location specified in the SPCR, earlycon should
be opt-in on the command-line simply with "earlycon" command-line
parameter.
'ARM Server Base Boot Requirements' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.
Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().
How will a user enable an earlycon on the same console as the SPCR
console if there is no DBG2 table?
That's pretty disingenuous; via command line?
By that measure, none of your patches are required because a user
can already start both console and earlycon without them.
With the console location specified in the SPCR, earlycon should
be opt-in on the command-line simply with "earlycon" command-line
parameter.
Yes. That's why we have SPCR *and* DBG2.
DBG2 specifies where we should run earlycon.
quoted
quoted
How will a user enable an earlycon on the same console as the SPCR
console if there is no DBG2 table?
In no way. You need DBG2 to run earlycon.
(If you don't want to specify it's address etc explicitly)
From: Peter Hurley <hidden> Date: 2016-03-04 15:47:43
On 03/04/2016 03:53 AM, Aleksey Makarov wrote:
On 03/03/2016 06:35 PM, Peter Hurley wrote:
quoted
On 03/03/2016 03:59 AM, Aleksey Makarov wrote:
quoted
On 03/01/2016 06:31 PM, Peter Hurley wrote:
quoted
On 02/29/2016 04:02 AM, Aleksey Makarov wrote:
quoted
'ARM Server Base Boot Requirements' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.
Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().
How will a user enable an earlycon on the same console as the SPCR
console if there is no DBG2 table?
That's pretty disingenuous; via command line?
By that measure, none of your patches are required because a user
can already start both console and earlycon without them.
With the console location specified in the SPCR, earlycon should
be opt-in on the command-line simply with "earlycon" command-line
parameter.
Yes. That's why we have SPCR *and* DBG2.
DBG2 specifies where we should run earlycon.
quoted
quoted
quoted
How will a user enable an earlycon on the same console as the SPCR
console if there is no DBG2 table?
In no way. You need DBG2 to run earlycon.
And that's an entirely arbitrary decision being made by you.
Which I think is unnecessarily limited.
(If you don't want to specify it's address etc explicitly)
Hi Peter,
You are right, SPCR console should support earlycon.
I will send next version that will try to follow your recommendations in
a week, after I return from vacations.
As we discussed with Christopher, "serial: pl011: use SPCR to setup
32-bit access" will be dropped.
Thank you
Aleksey Makarov
On 04.03.2016 22:47, Peter Hurley wrote:
On 03/04/2016 03:53 AM, Aleksey Makarov wrote:
quoted
On 03/03/2016 06:35 PM, Peter Hurley wrote:
quoted
On 03/03/2016 03:59 AM, Aleksey Makarov wrote:
quoted
On 03/01/2016 06:31 PM, Peter Hurley wrote:
quoted
On 02/29/2016 04:02 AM, Aleksey Makarov wrote:
quoted
'ARM Server Base Boot Requirements' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.
Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().
How will a user enable an earlycon on the same console as the SPCR
console if there is no DBG2 table?
That's pretty disingenuous; via command line?
By that measure, none of your patches are required because a user
can already start both console and earlycon without them.
With the console location specified in the SPCR, earlycon should
be opt-in on the command-line simply with "earlycon" command-line
parameter.
Yes. That's why we have SPCR *and* DBG2.
DBG2 specifies where we should run earlycon.
quoted
quoted
quoted
How will a user enable an earlycon on the same console as the SPCR
console if there is no DBG2 table?
In no way. You need DBG2 to run earlycon.
And that's an entirely arbitrary decision being made by you.
Which I think is unnecessarily limited.
quoted
(If you don't want to specify it's address etc explicitly)