From 74025300d55262155a3bdafddf257d82dcf0f6af Mon Sep 17 00:00:00 2001 From: Andre Przywara Date: Fri, 24 May 2013 15:47:28 +0200 Subject: arm/early-printk: move UART base address to Rules.mk The UART memory mapped base address is currently hardcoded in the early-printk UART driver, which denies the driver to be used by two machines with a different mapping. Move this definition out to xen/arch/arm/Rules.mk, allowing easier user access and later sharing of the driver. Signed-off-by: Andre Przywara Reviewed-by: Julien Grall Acked-by: Ian Campbell --- docs/misc/arm/early-printk.txt | 2 +- xen/arch/arm/Rules.mk | 4 +++- xen/arch/arm/arm32/debug-exynos4210.inc | 2 -- xen/arch/arm/arm32/debug-pl011.inc | 2 -- xen/arch/arm/arm64/debug-pl011.inc | 2 -- 5 files changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/misc/arm/early-printk.txt b/docs/misc/arm/early-printk.txt index 965add56b8..9220113e92 100644 --- a/docs/misc/arm/early-printk.txt +++ b/docs/misc/arm/early-printk.txt @@ -12,7 +12,7 @@ where mach is the name of the machine: - vexpress: printk with pl011 for versatile express - exynos5250: printk with the second UART -The baud rate is hardcoded in xen/arch/arm/Rules.mk, +The base address and 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 diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk index fdcf73e453..902bddb75f 100644 --- a/xen/arch/arm/Rules.mk +++ b/xen/arch/arm/Rules.mk @@ -42,15 +42,16 @@ EARLY_PRINTK := n ifeq ($(debug),y) # Early printk for versatile express -# TODO handle UART base address from make command line ifeq ($(CONFIG_EARLY_PRINTK), vexpress) EARLY_PRINTK_INC := pl011 EARLY_PRINTK_BAUD := 38400 +EARLY_UART_BASE_ADDRESS := 0x1c090000 endif ifeq ($(CONFIG_EARLY_PRINTK), exynos5250) EARLY_PRINTK_INC := exynos4210 EARLY_PRINTK_INIT_UART := y EARLY_PRINTK_BAUD := 115200 +EARLY_UART_BASE_ADDRESS := 0x12c20000 endif ifneq ($(EARLY_PRINTK_INC),) @@ -61,4 +62,5 @@ 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) +CFLAGS-$(EARLY_PRINTK) += -DEARLY_UART_BASE_ADDRESS=$(EARLY_UART_BASE_ADDRESS) endif diff --git a/xen/arch/arm/arm32/debug-exynos4210.inc b/xen/arch/arm/arm32/debug-exynos4210.inc index 4922148ac1..d746c35e30 100644 --- a/xen/arch/arm/arm32/debug-exynos4210.inc +++ b/xen/arch/arm/arm32/debug-exynos4210.inc @@ -18,8 +18,6 @@ #include -#define EARLY_UART_BASE_ADDRESS 0x12c20000 - /* Exynos 5 UART initialization * rb: register which contains the UART base address * rc: scratch register 1 diff --git a/xen/arch/arm/arm32/debug-pl011.inc b/xen/arch/arm/arm32/debug-pl011.inc index 2d970ea364..8b085b855c 100644 --- a/xen/arch/arm/arm32/debug-pl011.inc +++ b/xen/arch/arm/arm32/debug-pl011.inc @@ -16,8 +16,6 @@ * GNU General Public License for more details. */ -#define EARLY_UART_BASE_ADDRESS 0x1c090000 - /* PL011 UART initialization * rb: register which contains the UART base address * rc: scratch register 1 diff --git a/xen/arch/arm/arm64/debug-pl011.inc b/xen/arch/arm/arm64/debug-pl011.inc index 722094036d..b416235208 100644 --- a/xen/arch/arm/arm64/debug-pl011.inc +++ b/xen/arch/arm/arm64/debug-pl011.inc @@ -18,8 +18,6 @@ #include -#define EARLY_UART_BASE_ADDRESS 0x1c090000 - /* PL011 UART initialization * xb: register which containts the UART base address * c: scratch register number */ -- cgit v1.2.3