From: Julien Grall <julien.grall@linaro.org>
To: Andre Przywara <andre.przywara@calxeda.com>
Cc: xen-devel@lists.xen.org, Ian.Campbell@citrix.com,
stefano.stabellini@eu.citrix.com
Subject: Re: [PATCH v2 2/5] arm/early-printk: allow skipping of UART init
Date: Fri, 24 May 2013 15:02:02 +0100 [thread overview]
Message-ID: <519F72DA.7040404@linaro.org> (raw)
In-Reply-To: <1369403250-9132-3-git-send-email-andre.przywara@calxeda.com>
On 05/24/2013 02:47 PM, Andre Przywara wrote:
> While it seems obvious to initialize the UART before using it, chances
> are that some firmware code or the bootloader already did this.
> So it may actually be a good idea to skip the initialization, in fact
> this fixes early printk on my TC2 Versatile Express.
> So provide an option in xen/arch/arm/Rules.mk to only initialize the
> UART when needed.
>
> Signed-off-by: Andre Przywara <andre.przywara@calxeda.com>
Reviewed-by: Julien Grall <julien.grall@linaro.org>
> ---
> docs/misc/arm/early-printk.txt | 4 ++++
> xen/arch/arm/Rules.mk | 2 ++
> xen/arch/arm/arm32/head.S | 2 ++
> xen/arch/arm/arm64/head.S | 2 ++
> 4 files changed, 10 insertions(+)
>
> diff --git a/docs/misc/arm/early-printk.txt b/docs/misc/arm/early-printk.txt
> index 10c3053..965add5 100644
> --- a/docs/misc/arm/early-printk.txt
> +++ b/docs/misc/arm/early-printk.txt
> @@ -14,5 +14,9 @@ where mach is the name of the machine:
>
> The baud rate is hardcoded in xen/arch/arm/Rules.mk,
> see there when adding support for new machines.
> +If not explicitly requested with "EARLY_PRINTK_INIT_UART := y" in Rules.mk,
> +the code will not try to initialize the UART, so that bootloader or
> +firmware settings can be used for maximum compatibility. The baud rate
> +parameter is ignored in this case.
>
> By default early printk is disabled.
> diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk
> index b4d6907..fdcf73e 100644
> --- a/xen/arch/arm/Rules.mk
> +++ b/xen/arch/arm/Rules.mk
> @@ -49,6 +49,7 @@ EARLY_PRINTK_BAUD := 38400
> endif
> ifeq ($(CONFIG_EARLY_PRINTK), exynos5250)
> EARLY_PRINTK_INC := exynos4210
> +EARLY_PRINTK_INIT_UART := y
> EARLY_PRINTK_BAUD := 115200
> endif
>
> @@ -57,6 +58,7 @@ EARLY_PRINTK := y
> endif
>
> CFLAGS-$(EARLY_PRINTK) += -DEARLY_PRINTK
> +CFLAGS-$(EARLY_PRINTK_INIT_UART) += -DEARLY_PRINTK_INIT_UART
> CFLAGS-$(EARLY_PRINTK) += -DEARLY_PRINTK_INC=\"debug-$(EARLY_PRINTK_INC).inc\"
> CFLAGS-$(EARLY_PRINTK) += -DEARLY_PRINTK_BAUD=$(EARLY_PRINTK_BAUD)
> endif
> diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S
> index ec7f640..0588d54 100644
> --- a/xen/arch/arm/arm32/head.S
> +++ b/xen/arch/arm/arm32/head.S
> @@ -369,7 +369,9 @@ fail: PRINT("- Boot failed -\r\n")
> * r11: Early UART base address
> * Clobbers r0-r2 */
> init_uart:
> +#ifdef EARLY_PRINTK_INIT_UART
> early_uart_init r11, r1, r2
> +#endif
> adr r0, 1f
> b puts /* Jump to puts */
> 1: .asciz "- UART enabled -\r\n"
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index 8955946..21b7e4d 100644
> --- a/xen/arch/arm/arm64/head.S
> +++ b/xen/arch/arm/arm64/head.S
> @@ -116,7 +116,9 @@ boot_cpu:
> #ifdef EARLY_PRINTK
> ldr x23, =EARLY_UART_BASE_ADDRESS /* x23 := UART base address */
> cbnz x22, 1f
> +#ifdef EARLY_PRINTK_INIT_UART
> bl init_uart /* CPU 0 sets up the UART too */
> +#endif
> 1: PRINT("- CPU ")
> mov x0, x22
> bl putn
next prev parent reply other threads:[~2013-05-24 14:02 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-24 13:47 [PATCH v2 0/5] arm/early-printk: Improve reusability and add Calxeda support Andre Przywara
2013-05-24 13:47 ` [PATCH v2 1/5] arm/early-printk: calculate baud rate divisor from user provided value Andre Przywara
2013-05-24 14:01 ` Julien Grall
2013-05-24 13:47 ` [PATCH v2 2/5] arm/early-printk: allow skipping of UART init Andre Przywara
2013-05-24 14:02 ` Julien Grall [this message]
2013-05-24 13:47 ` [PATCH v2 3/5] arm/early-printk: move UART base address to Rules.mk Andre Przywara
2013-05-24 14:02 ` Julien Grall
2013-05-24 13:47 ` [PATCH v2 4/5] arm/early-printk: add support for ARM Fastmodel Andre Przywara
2013-05-24 14:03 ` Julien Grall
2013-05-24 13:47 ` [PATCH v2 5/5] arm/early-printk: add Calxeda Midway UART support Andre Przywara
2013-05-24 14:03 ` Julien Grall
2013-05-30 8:59 ` [PATCH v2 0/5] arm/early-printk: Improve reusability and add Calxeda support Ian Campbell
2013-05-30 9:14 ` Andre Przywara
2013-05-30 9:22 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=519F72DA.7040404@linaro.org \
--to=julien.grall@linaro.org \
--cc=Ian.Campbell@citrix.com \
--cc=andre.przywara@calxeda.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).