Message ID | 1408459715-10151-7-git-send-email-daniel.thompson@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 2014-08-19 at 15:48 +0100, Daniel Thompson wrote: > As part of the migration we introduce DEBUG_UART_PHYS/DEBUG_UART_VIRT > which default to UART1 but allow a user to configure UART2 or UART3. > We also introduce symbolic names for the registers and flags. > > Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org> > Cc: Russell King <linux@arm.linux.org.uk> > Acked-by: Arnd Bergmann <arnd.bergmann@linaro.org> > Cc: linux-arm-kernel@lists.infradead.org This patch landed in today's linux-next, as 880fa9b6fd73 ("ARM: 8144/1: netx: Migrate DEBUG_LL macros to shared directory"). > [...] > --- a/arch/arm/Kconfig.debug > +++ b/arch/arm/Kconfig.debug > @@ -447,6 +447,14 @@ choice > Say Y here if you want kernel low-level debugging support > on Vybrid based platforms. > > + config DEBUG_NETX_UART > + bool "Kernel low-level debugging messages via NetX UART" > + depends on ARCH_NETX > + select DEBUG_UART_NETX There's no Kconfig symbol DEBUG_UART_NETX in next-20140915. So in linux-next this is currently a nop. Is this symbol queued somewhere? > + help > + Say Y here if you want kernel low-level debugging support > + on Hilscher NetX based platforms. > + > config DEBUG_NOMADIK_UART > bool "Kernel low-level debugging messages via NOMADIK UART" > depends on ARCH_NOMADIK Paul Bolle
On 15/09/14 17:34, Paul Bolle wrote: > On Tue, 2014-08-19 at 15:48 +0100, Daniel Thompson wrote: >> As part of the migration we introduce DEBUG_UART_PHYS/DEBUG_UART_VIRT >> which default to UART1 but allow a user to configure UART2 or UART3. >> We also introduce symbolic names for the registers and flags. >> >> Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org> >> Cc: Russell King <linux@arm.linux.org.uk> >> Acked-by: Arnd Bergmann <arnd.bergmann@linaro.org> >> Cc: linux-arm-kernel@lists.infradead.org > > This patch landed in today's linux-next, as 880fa9b6fd73 ("ARM: 8144/1: > netx: Migrate DEBUG_LL macros to shared directory"). > >> [...] >> --- a/arch/arm/Kconfig.debug >> +++ b/arch/arm/Kconfig.debug >> @@ -447,6 +447,14 @@ choice >> Say Y here if you want kernel low-level debugging support >> on Vybrid based platforms. >> >> + config DEBUG_NETX_UART >> + bool "Kernel low-level debugging messages via NetX UART" >> + depends on ARCH_NETX >> + select DEBUG_UART_NETX > > There's no Kconfig symbol DEBUG_UART_NETX in next-20140915. So in > linux-next this is currently a nop. Is this symbol queued somewhere? No. The symbol isn't queued anywhere. DEBUG_UART_NETX is a config value that existed transiently when I wrote the patch and I didn't clean it up properly. I suspect its visual similarity to DEBUG_NETX_UART means it didn't jump out when I self reviewed. Thanks for raising this. I will share a patch to remove this.
On 15/09/14 22:47, Daniel Thompson wrote: > On 15/09/14 17:34, Paul Bolle wrote: >> On Tue, 2014-08-19 at 15:48 +0100, Daniel Thompson wrote: >>> As part of the migration we introduce DEBUG_UART_PHYS/DEBUG_UART_VIRT >>> which default to UART1 but allow a user to configure UART2 or UART3. >>> We also introduce symbolic names for the registers and flags. >>> >>> Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org> >>> Cc: Russell King <linux@arm.linux.org.uk> >>> Acked-by: Arnd Bergmann <arnd.bergmann@linaro.org> >>> Cc: linux-arm-kernel@lists.infradead.org >> >> This patch landed in today's linux-next, as 880fa9b6fd73 ("ARM: 8144/1: >> netx: Migrate DEBUG_LL macros to shared directory"). >> >>> [...] >>> --- a/arch/arm/Kconfig.debug >>> +++ b/arch/arm/Kconfig.debug >>> @@ -447,6 +447,14 @@ choice >>> Say Y here if you want kernel low-level debugging support >>> on Vybrid based platforms. >>> >>> + config DEBUG_NETX_UART >>> + bool "Kernel low-level debugging messages via NetX UART" >>> + depends on ARCH_NETX >>> + select DEBUG_UART_NETX >> >> There's no Kconfig symbol DEBUG_UART_NETX in next-20140915. So in >> linux-next this is currently a nop. Is this symbol queued somewhere? > > No. The symbol isn't queued anywhere. > > DEBUG_UART_NETX is a config value that existed transiently when I wrote > the patch and I didn't clean it up properly. I suspect its visual > similarity to DEBUG_NETX_UART means it didn't jump out when I self reviewed. > > Thanks for raising this. I will share a patch to remove this. I was just finalizing this and, since it was on my screen anyway, took another look at my assembler changes. They are broken! Rather than initializing \rp and \rv as they are supposed to they set \rp to two different values leaving \rv uninitialized. This I will also fix. Daniel.
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 01f4ee2..d71427e 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -447,6 +447,14 @@ choice Say Y here if you want kernel low-level debugging support on Vybrid based platforms. + config DEBUG_NETX_UART + bool "Kernel low-level debugging messages via NetX UART" + depends on ARCH_NETX + select DEBUG_UART_NETX + help + Say Y here if you want kernel low-level debugging support + on Hilscher NetX based platforms. + config DEBUG_NOMADIK_UART bool "Kernel low-level debugging messages via NOMADIK UART" depends on ARCH_NOMADIK @@ -1074,6 +1082,7 @@ config DEBUG_LL_INCLUDE DEBUG_IMX6SX_UART default "debug/ks8695.S" if DEBUG_KS8695_UART default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM + default "debug/netx.S" if DEBUG_NETX_UART default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART default "debug/s5pv210.S" if DEBUG_S5PV210_UART @@ -1106,6 +1115,7 @@ config DEBUG_UART_8250 config DEBUG_UART_PHYS hex "Physical base address of debug UART" + default 0x00100a00 if DEBUG_NETX_UART default 0x01c20000 if DEBUG_DAVINCI_DMx_UART0 default 0x01c28000 if DEBUG_SUNXI_UART0 default 0x01c28400 if DEBUG_SUNXI_UART1 @@ -1176,10 +1186,12 @@ config DEBUG_UART_PHYS depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ DEBUG_LL_UART_EFM32 || \ DEBUG_UART_8250 || DEBUG_UART_PL01X || \ - DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART + DEBUG_MSM_UART || DEBUG_NETX_UART || DEBUG_QCOM_UARTDM || \ + DEBUG_S3C24XX_UART config DEBUG_UART_VIRT hex "Virtual base address of debug UART" + default 0xe0000a00 if DEBUG_NETX_UART default 0xe0010fe0 if ARCH_RPC default 0xe1000000 if DEBUG_MSM_UART default 0xf0000be0 if ARCH_EBSA110 @@ -1247,7 +1259,8 @@ config DEBUG_UART_VIRT default DEBUG_UART_PHYS if !MMU depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ DEBUG_UART_8250 || DEBUG_UART_PL01X || \ - DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART + DEBUG_MSM_UART || DEBUG_NETX_UART || DEBUG_QCOM_UARTDM || \ + DEBUG_S3C24XX_UART config DEBUG_UART_8250_SHIFT int "Register offset shift for the 8250 debug UART" diff --git a/arch/arm/include/debug/netx.S b/arch/arm/include/debug/netx.S new file mode 100644 index 0000000..cf7522a --- /dev/null +++ b/arch/arm/include/debug/netx.S @@ -0,0 +1,36 @@ +/* + * Debugging macro include header + * + * Copyright (C) 1994-1999 Russell King + * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * +*/ + +#define UART_DATA 0 +#define UART_FLAG 0x18 +#define UART_FLAG_BUSY (1 << 3) + + .macro addruart, rp, rv, tmp + ldr \rp, =CONFIG_DEBUG_UART_PHYS + ldr \rp, =CONFIG_DEBUG_UART_VIRT + .endm + + .macro senduart,rd,rx + str \rd, [\rx, #UART_DATA] + .endm + + .macro busyuart,rd,rx +1002: ldr \rd, [\rx, #UART_FLAG] + tst \rd, #UART_FLAG_BUSY + bne 1002b + .endm + + .macro waituart,rd,rx +1001: ldr \rd, [\rx, #UART_FLAG] + tst \rd, #UART_FLAG_BUSY + bne 1001b + .endm diff --git a/arch/arm/mach-netx/include/mach/debug-macro.S b/arch/arm/mach-netx/include/mach/debug-macro.S deleted file mode 100644 index 247781e..0000000 --- a/arch/arm/mach-netx/include/mach/debug-macro.S +++ /dev/null @@ -1,36 +0,0 @@ -/* arch/arm/mach-netx/include/mach/debug-macro.S - * - * Debugging macro include header - * - * Copyright (C) 1994-1999 Russell King - * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * -*/ - -#include "hardware.h" - - .macro addruart, rp, rv, tmp - mov \rp, #0x00000a00 - orr \rv, \rp, #io_p2v(0x00100000) @ virtual - orr \rp, \rp, #0x00100000 @ physical - .endm - - .macro senduart,rd,rx - str \rd, [\rx, #0] - .endm - - .macro busyuart,rd,rx -1002: ldr \rd, [\rx, #0x18] - tst \rd, #(1 << 3) - bne 1002b - .endm - - .macro waituart,rd,rx -1001: ldr \rd, [\rx, #0x18] - tst \rd, #(1 << 3) - bne 1001b - .endm