[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [XEN PATCH v2 1/2] xen/arm: Rename all early printk macro



On Fri, 6 Mar 2020, Anthony PERARD wrote:
> We are going to move the generation of the early printk macro into
> Kconfig. This means all macro will be prefix with CONFIG_. We do that
> ahead of the change.
> 
> We also take the opportunity to better name some variables, which are
> used by only one driver and wouldn't make sens for other UART driver.
> Thus,
>     - EARLY_UART_REG_SHIFT became CONFIG_EARLY_UART_8250_REG_SHIFT
>     - EARLY_PRINTK_VERSION_* became CONFIG_EARLY_UART_SCIF_VERSION_*
> 
> The other variables are change to have the prefix CONFIG_EARLY_UART_
> when they change a parameter of the driver. So we have now:
>     - CONFIG_EARLY_UART_BAUD_RATE
>     - CONFIG_EARLY_UART_BASE_ADDRESS
>     - CONFIG_EARLY_UART_INIT
> 
> We also reuse CONFIG_EARLY_PRINTK provided by users to enable or not
> early printk, thus we need to override the value in makefile.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>

I tried this patch and it breaks the build with EARLY_PRINTK. With:

export CONFIG_EARLY_PRINTK=zynqmp

I get:

/local/repos/gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
 -D__ASSEMBLY__ -DBUILD_ID -fno-strict-aliasing -Wall -Wstrict-prototypes 
-Wdeclaration-after-statement -Wno-unused-but-set-variable 
-Wno-unused-local-typedefs -O1 -fno-omit-frame-pointer -nostdinc -fno-builtin 
-fno-common -Werror -Wredundant-decls -Wno-pointer-arith -Wvla -pipe -D__XEN__ 
-include /local/repos/xen-upstream/xen/include/xen/config.h 
'-D__OBJECT_FILE__="arm64/head.o"' -Wa,--strip-local-absolute -g -MMD -MF 
arm64/.head.o.d -mcpu=generic -mgeneral-regs-only -DCONFIG_EARLY_PRINTK 
-DCONFIG_EARLY_PRINTK_INC=\"debug-y.inc\" -DCONFIG_EARLY_UART_BAUD_RATE= 
-DCONFIG_EARLY_UART_BASE_ADDRESS= -DCONFIG_EARLY_UART_8250_REG_SHIFT= 
-I/local/repos/xen-upstream/xen/include -fno-stack-protector -fno-exceptions 
-Wnested-externs -c arm64/head.S -o arm64/head.o
arm64/head.S:49:33: fatal error: debug-y.inc: No such file or directory

I take the patch was not expected to do that?



> ---
> That's based on early work by Julien
>     [PATCH for-4.13] xen/arm: Add Skeleton for using configuring early printk 
> using Kconfig
>     <20190913103953.8182-1-julien.grall@xxxxxxx>
> ---
>  xen/arch/arm/Makefile              |  2 +-
>  xen/arch/arm/Rules.mk              | 20 +++++++++-----------
>  xen/arch/arm/arm32/Makefile        |  2 +-
>  xen/arch/arm/arm32/debug-8250.inc  |  2 +-
>  xen/arch/arm/arm32/debug-pl011.inc |  4 ++--
>  xen/arch/arm/arm32/debug-scif.inc  |  4 ++--
>  xen/arch/arm/arm32/debug.S         |  4 ++--
>  xen/arch/arm/arm32/head.S          | 10 +++++-----
>  xen/arch/arm/arm64/Makefile        |  2 +-
>  xen/arch/arm/arm64/debug-8250.inc  |  4 ++--
>  xen/arch/arm/arm64/debug-pl011.inc |  4 ++--
>  xen/arch/arm/arm64/debug.S         |  4 ++--
>  xen/arch/arm/arm64/head.S          | 10 +++++-----
>  xen/include/asm-arm/early_printk.h |  2 +-
>  14 files changed, 36 insertions(+), 38 deletions(-)
> 
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index 1044c2298a05..12f92a4bd3f9 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -16,7 +16,7 @@ obj-y += device.o
>  obj-y += domain.o
>  obj-y += domain_build.init.o
>  obj-y += domctl.o
> -obj-$(EARLY_PRINTK) += early_printk.o
> +obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
>  obj-y += gic.o
>  obj-y += gic-v2.o
>  obj-$(CONFIG_GICV3) += gic-v3.o
> diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk
> index 022a3a6f82ba..85f8a4c6f914 100644
> --- a/xen/arch/arm/Rules.mk
> +++ b/xen/arch/arm/Rules.mk
> @@ -18,8 +18,6 @@ CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-a15
>  CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
>  CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
>  
> -EARLY_PRINTK := n
> -
>  ifeq ($(CONFIG_DEBUG),y)
>  
>  # See docs/misc/arm/early-printk.txt for syntax
> @@ -66,22 +64,22 @@ endif
>  endif
>  ifeq ($(EARLY_PRINTK_INC),scif)
>  ifneq ($(word 3,$(EARLY_PRINTK_CFG)),)
> -CFLAGS-y += -DEARLY_PRINTK_VERSION_$(word 3,$(EARLY_PRINTK_CFG))
> +CFLAGS-y += -DCONFIG_EARLY_UART_SCIF_VERSION_$(word 3,$(EARLY_PRINTK_CFG))
>  else
> -CFLAGS-y += -DEARLY_PRINTK_VERSION_NONE
> +CFLAGS-y += -DCONFIG_EARLY_UART_SCIF_VERSION_NONE
>  endif
>  endif
>  
>  ifneq ($(EARLY_PRINTK_INC),)
> -EARLY_PRINTK := y
> +override CONFIG_EARLY_PRINTK := y
>  endif
>  
> -CFLAGS-$(EARLY_PRINTK) += -DCONFIG_EARLY_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)
> -CFLAGS-$(EARLY_PRINTK) += -DEARLY_UART_REG_SHIFT=$(EARLY_UART_REG_SHIFT)
> +CFLAGS-$(CONFIG_EARLY_PRINTK) += -DCONFIG_EARLY_PRINTK
> +CFLAGS-$(EARLY_PRINTK_INIT_UART) += -DCONFIG_EARLY_UART_INIT
> +CFLAGS-$(CONFIG_EARLY_PRINTK) += 
> -DCONFIG_EARLY_PRINTK_INC=\"debug-$(EARLY_PRINTK_INC).inc\"
> +CFLAGS-$(CONFIG_EARLY_PRINTK) += 
> -DCONFIG_EARLY_UART_BAUD_RATE=$(EARLY_PRINTK_BAUD)
> +CFLAGS-$(CONFIG_EARLY_PRINTK) += 
> -DCONFIG_EARLY_UART_BASE_ADDRESS=$(EARLY_UART_BASE_ADDRESS)
> +CFLAGS-$(CONFIG_EARLY_PRINTK) += 
> -DCONFIG_EARLY_UART_8250_REG_SHIFT=$(EARLY_UART_REG_SHIFT)
>  
>  else # !CONFIG_DEBUG
>  
> diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
> index 539bbef298a7..96105d238307 100644
> --- a/xen/arch/arm/arm32/Makefile
> +++ b/xen/arch/arm/arm32/Makefile
> @@ -1,6 +1,6 @@
>  obj-y += lib/
>  
> -obj-$(EARLY_PRINTK) += debug.o
> +obj-$(CONFIG_EARLY_PRINTK) += debug.o
>  obj-y += domctl.o
>  obj-y += domain.o
>  obj-y += entry.o
> diff --git a/xen/arch/arm/arm32/debug-8250.inc 
> b/xen/arch/arm/arm32/debug-8250.inc
> index 0759a27ee157..c47e8be4aaf3 100644
> --- a/xen/arch/arm/arm32/debug-8250.inc
> +++ b/xen/arch/arm/arm32/debug-8250.inc
> @@ -23,7 +23,7 @@
>   */
>  .macro early_uart_ready rb rc
>  1:
> -        ldr     \rc, [\rb, #(UART_LSR << EARLY_UART_REG_SHIFT)] /* Read LSR 
> */
> +        ldr     \rc, [\rb, #(UART_LSR << CONFIG_EARLY_UART_8250_REG_SHIFT)] 
> /* Read LSR */
>          tst     \rc, #UART_LSR_THRE     /* Check Xmit holding register flag 
> */
>          beq     1b                         /* Wait for the UART to be ready 
> */
>  .endm
> diff --git a/xen/arch/arm/arm32/debug-pl011.inc 
> b/xen/arch/arm/arm32/debug-pl011.inc
> index ec462eabab5c..82a22984d9b5 100644
> --- a/xen/arch/arm/arm32/debug-pl011.inc
> +++ b/xen/arch/arm/arm32/debug-pl011.inc
> @@ -25,9 +25,9 @@
>   * rd: scratch register 2 (unused here)
>   */
>  .macro early_uart_init rb, rc, rd
> -        mov   \rc, #(7372800 / EARLY_PRINTK_BAUD % 16)
> +        mov   \rc, #(7372800 / CONFIG_EARLY_UART_BAUD_RATE % 16)
>          str   \rc, [\rb, #FBRD]     /* -> UARTFBRD (Baud divisor fraction) */
> -        mov   \rc, #(7372800 / EARLY_PRINTK_BAUD / 16)
> +        mov   \rc, #(7372800 / CONFIG_EARLY_UART_BAUD_RATE / 16)
>          str   \rc, [\rb, #IBRD]     /* -> UARTIBRD (Baud divisor integer) */
>          mov   \rc, #0x60            /* 8n1 */
>          str   \rc, [\rb, #LCR_H]     /* -> UARTLCR_H (Line control) */
> diff --git a/xen/arch/arm/arm32/debug-scif.inc 
> b/xen/arch/arm/arm32/debug-scif.inc
> index 3f01c909c238..b2b82501e792 100644
> --- a/xen/arch/arm/arm32/debug-scif.inc
> +++ b/xen/arch/arm/arm32/debug-scif.inc
> @@ -19,10 +19,10 @@
>  
>  #include <asm/scif-uart.h>
>  
> -#ifdef EARLY_PRINTK_VERSION_NONE
> +#ifdef CONFIG_EARLY_UART_SCIF_VERSION_NONE
>  #define STATUS_REG    SCIF_SCFSR
>  #define TX_FIFO_REG   SCIF_SCFTDR
> -#elif EARLY_PRINTK_VERSION_A
> +#elif CONFIG_EARLY_UART_SCIF_VERSION_A
>  #define STATUS_REG    SCIFA_SCASSR
>  #define TX_FIFO_REG   SCIFA_SCAFTDR
>  #endif
> diff --git a/xen/arch/arm/arm32/debug.S b/xen/arch/arm/arm32/debug.S
> index 1829b29915e0..e77c76d0debc 100644
> --- a/xen/arch/arm/arm32/debug.S
> +++ b/xen/arch/arm/arm32/debug.S
> @@ -19,8 +19,8 @@
>  
>  #include <asm/early_printk.h>
>  
> -#ifdef EARLY_PRINTK_INC
> -#include EARLY_PRINTK_INC
> +#if defined (CONFIG_EARLY_PRINTK_INC)
> +#include CONFIG_EARLY_PRINTK_INC
>  #endif
>  
>  /*
> diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S
> index e9d356f05c2b..2b593c5ef99a 100644
> --- a/xen/arch/arm/arm32/head.S
> +++ b/xen/arch/arm/arm32/head.S
> @@ -36,8 +36,8 @@
>  #define XEN_FIRST_SLOT      first_table_offset(XEN_VIRT_START)
>  #define XEN_SECOND_SLOT     second_table_offset(XEN_VIRT_START)
>  
> -#if (defined (CONFIG_EARLY_PRINTK)) && (defined (EARLY_PRINTK_INC))
> -#include EARLY_PRINTK_INC
> +#if (defined (CONFIG_EARLY_PRINTK)) && (defined (CONFIG_EARLY_PRINTK_INC))
> +#include CONFIG_EARLY_PRINTK_INC
>  #endif
>  
>  /*
> @@ -223,7 +223,7 @@ GLOBAL(init_secondary)
>  1:
>  
>  #ifdef CONFIG_EARLY_PRINTK
> -        mov_w r11, EARLY_UART_BASE_ADDRESS   /* r11 := UART base address */
> +        mov_w r11, CONFIG_EARLY_UART_BASE_ADDRESS   /* r11 := UART base 
> address */
>          PRINT("- CPU ")
>          print_reg r7
>          PRINT(" booting -\r\n")
> @@ -706,8 +706,8 @@ ENTRY(switch_ttbr)
>   * Clobbers r0 - r3
>   */
>  init_uart:
> -        mov_w r11, EARLY_UART_BASE_ADDRESS
> -#ifdef EARLY_PRINTK_INIT_UART
> +        mov_w r11, CONFIG_EARLY_UART_BASE_ADDRESS
> +#ifdef CONFIG_EARLY_UART_INIT
>          early_uart_init r11, r1, r2
>  #endif
>          PRINT("- UART enabled -\r\n")
> diff --git a/xen/arch/arm/arm64/Makefile b/xen/arch/arm/arm64/Makefile
> index db8565b71a33..40642ff57494 100644
> --- a/xen/arch/arm/arm64/Makefile
> +++ b/xen/arch/arm/arm64/Makefile
> @@ -2,7 +2,7 @@ obj-y += lib/
>  
>  obj-y += cache.o
>  obj-$(CONFIG_HARDEN_BRANCH_PREDICTOR) += bpi.o
> -obj-$(EARLY_PRINTK) += debug.o
> +obj-$(CONFIG_EARLY_PRINTK) += debug.o
>  obj-y += domctl.o
>  obj-y += domain.o
>  obj-y += entry.o
> diff --git a/xen/arch/arm/arm64/debug-8250.inc 
> b/xen/arch/arm/arm64/debug-8250.inc
> index 53d6828bfafe..30ea13077e22 100644
> --- a/xen/arch/arm/arm64/debug-8250.inc
> +++ b/xen/arch/arm/arm64/debug-8250.inc
> @@ -25,7 +25,7 @@
>   */
>  .macro early_uart_ready xb c
>  1:
> -       ldrb  w\c, [\xb, #UART_LSR << EARLY_UART_REG_SHIFT]
> +       ldrb  w\c, [\xb, #UART_LSR << CONFIG_EARLY_UART_8250_REG_SHIFT]
>         and w\c, w\c, #UART_LSR_THRE
>         cmp w\c, #UART_LSR_THRE
>         b.ne 1b
> @@ -38,7 +38,7 @@
>   */
>  .macro early_uart_transmit xb wt
>          /* UART_THR  transmit holding */
> -        strb   \wt, [\xb, #UART_THR << EARLY_UART_REG_SHIFT]
> +        strb   \wt, [\xb, #UART_THR << CONFIG_EARLY_UART_8250_REG_SHIFT]
>  .endm
>  
>  /*
> diff --git a/xen/arch/arm/arm64/debug-pl011.inc 
> b/xen/arch/arm/arm64/debug-pl011.inc
> index 569c3dfbcf47..117b5b256405 100644
> --- a/xen/arch/arm/arm64/debug-pl011.inc
> +++ b/xen/arch/arm/arm64/debug-pl011.inc
> @@ -24,9 +24,9 @@
>   * c: scratch register number
>   */
>  .macro early_uart_init xb, c
> -        mov   x\c, #(7372800 / EARLY_PRINTK_BAUD % 16)
> +        mov   x\c, #(7372800 / CONFIG_EARLY_UART_BAUD_RATE % 16)
>          strh  w\c, [\xb, #0x28]      /* -> UARTFBRD (Baud divisor fraction) 
> */
> -        mov   x\c, #(7372800 / EARLY_PRINTK_BAUD / 16)
> +        mov   x\c, #(7372800 / CONFIG_EARLY_UART_BAUD_RATE / 16)
>          strh  w\c, [\xb, #0x24]      /* -> UARTIBRD (Baud divisor integer) */
>          mov   x\c, #0x60             /* 8n1 */
>          str   w\c, [\xb, #0x2C]      /* -> UARTLCR_H (Line control) */
> diff --git a/xen/arch/arm/arm64/debug.S b/xen/arch/arm/arm64/debug.S
> index b7f53ac0519b..71cad9d762b2 100644
> --- a/xen/arch/arm/arm64/debug.S
> +++ b/xen/arch/arm/arm64/debug.S
> @@ -19,8 +19,8 @@
>  
>  #include <asm/early_printk.h>
>  
> -#ifdef EARLY_PRINTK_INC
> -#include EARLY_PRINTK_INC
> +#ifdef CONFIG_EARLY_PRINTK_INC
> +#include CONFIG_EARLY_PRINTK_INC
>  #endif
>  
>  /*
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index e5015f93a2d8..4d45ea3dac3c 100644
> --- a/xen/arch/arm/arm64/head.S
> +++ b/xen/arch/arm/arm64/head.S
> @@ -45,8 +45,8 @@
>  #define __HEAD_FLAGS            ((__HEAD_FLAG_PAGE_SIZE << 1) | \
>                                   (__HEAD_FLAG_PHYS_BASE << 3))
>  
> -#if (defined (CONFIG_EARLY_PRINTK)) && (defined (EARLY_PRINTK_INC))
> -#include EARLY_PRINTK_INC
> +#if (defined (CONFIG_EARLY_PRINTK)) && (defined (CONFIG_EARLY_PRINTK_INC))
> +#include CONFIG_EARLY_PRINTK_INC
>  #endif
>  
>  /*
> @@ -363,7 +363,7 @@ GLOBAL(init_secondary)
>  1:
>  
>  #ifdef CONFIG_EARLY_PRINTK
> -        ldr   x23, =EARLY_UART_BASE_ADDRESS /* x23 := UART base address */
> +        ldr   x23, =CONFIG_EARLY_UART_BASE_ADDRESS /* x23 := UART base 
> address */
>          PRINT("- CPU ")
>          print_reg x24
>          PRINT(" booting -\r\n")
> @@ -843,8 +843,8 @@ ENTRY(switch_ttbr)
>   * Clobbers x0 - x1
>   */
>  init_uart:
> -        ldr   x23, =EARLY_UART_BASE_ADDRESS
> -#ifdef EARLY_PRINTK_INIT_UART
> +        ldr   x23, =CONFIG_EARLY_UART_BASE_ADDRESS
> +#ifdef CONFIG_EARLY_UART_INIT
>          early_uart_init x23, 0
>  #endif
>          PRINT("- UART enabled -\r\n")
> diff --git a/xen/include/asm-arm/early_printk.h 
> b/xen/include/asm-arm/early_printk.h
> index 078cf701dcb0..d5485decfa9f 100644
> --- a/xen/include/asm-arm/early_printk.h
> +++ b/xen/include/asm-arm/early_printk.h
> @@ -15,7 +15,7 @@
>  
>  /* need to add the uart address offset in page to the fixmap address */
>  #define EARLY_UART_VIRTUAL_ADDRESS \
> -    (FIXMAP_ADDR(FIXMAP_CONSOLE) +(EARLY_UART_BASE_ADDRESS & ~PAGE_MASK))
> +    (FIXMAP_ADDR(FIXMAP_CONSOLE) + (CONFIG_EARLY_UART_BASE_ADDRESS & 
> ~PAGE_MASK))
>  
>  #endif /* !CONFIG_EARLY_PRINTK */
>  
> -- 
> Anthony PERARD
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.