On Tuesday 27 May 2014 14:13:32 Daniel Thompson wrote:
On 26/05/14 14:39, Arnd Bergmann wrote:
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index eab8ecb..4c8d7db 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -842,7 +842,18 @@ choice config DEBUG_LL_UART_NONE bool "No low-level debugging UART"
depends on !ARCH_MULTIPLATFORM
depends on ARCH_AT91 || \
ARCH_CLPS711X || \
ARCH_FOOTBRIDGE || \
ARCH_KS8695 || \
ARCH_NETX || \
ARCH_OMAP1 || \
ARCH_SA1100 || \
ARCH_S3C24XX || \
ARCH_S3C64XX || \
ARCH_S5P64X0 || \
ARCH_S5PC100 || \
ARCH_S5PV210 help Say Y here if your platform doesn't provide a UART option above. This relies on your platform choosing the right UART
ARCH_S3C24XX has been moved over in linux-next to use debug/s3c24xx.S. A few others will likely move soon (AT91, CLPS711x, S5PV210), as the platforms get moved to ARCH_MULTIPLATFORM.
The list in my patch came from:
sundance$ find arch/arm -name "debug-macro.S" arch/arm/mach-at91/include/mach/debug-macro.S arch/arm/mach-clps711x/include/mach/debug-macro.S arch/arm/mach-footbridge/include/mach/debug-macro.S arch/arm/mach-ks8695/include/mach/debug-macro.S arch/arm/mach-netx/include/mach/debug-macro.S arch/arm/mach-omap1/include/mach/debug-macro.S arch/arm/mach-s3c64xx/include/mach/debug-macro.S arch/arm/mach-s5p64x0/include/mach/debug-macro.S arch/arm/mach-s5pc100/include/mach/debug-macro.S arch/arm/mach-s5pv210/include/mach/debug-macro.S arch/arm/mach-sa1100/include/mach/debug-macro.S
In other words this patch lists of all platforms where DEBUG_LL_UART_NONE should not result in failure to compile the kernel.
I see the same list, this is only half the story though.
This list doesn't seem to have changed in linux-next.
As an alternative to your patch, we could decide to move the remaining files as well.
Follow-up: I also noticed that AT91, CLPS711X, FOOTBRIDGE and all the SAMSUNG platforms already have an entry in the list, so DEBUG_LL_UART_NONE is redundant for them. The below change should be enough.
For AT91 this is actually better because the old AT91X40 support doesn't have working DEBUG_LL support. This gets handled correctly by AT91_DEBUG_LL_DBGU0/AT91_DEBUG_LL_DBGU1, but not DEBUG_LL_UART_NONE.
I'm very happy to update my patch to follow this one. However since it will render the corresponding debug-macro.S unreachable by KBuild I like to nuke the file as well. Good idea?
No. See the description under config DEBUG_LL_UART_NONE:
Say Y here if your platform doesn't provide a UART option above. This relies on your platform choosing the right UART definition internally in order for low-level debugging to work.
The platforms I listed do have "a UART option above", e.g.
config AT91_DEBUG_LL_DBGU0 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl" depends on HAVE_AT91_DBGU0
Most of the platforms that have an option like this put the file into include/debug, as is required for ARCH_MULTIPLATFORM. The ones that are not converted to ARCH_MULTIPLATFORM can have it in either place, see
config DEBUG_LL_INCLUDE string default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250 default "debug/pl01x.S" if DEBUG_LL_UART_PL01X || DEBUG_UART_PL01X ... default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1 default "mach/debug-macro.S"
Anything that is not explicitly listed under DEBUG_LL_INCLUDE will default to "mach/debug-macro.S", and the list does not (have to) match the choice statements in "Kernel low-level debugging port".
Arnd