diff mbox

[RESEND,v5,3/5] ARM: Conceal DEBUG_LL_UART_NONE from unsupported platforms

Message ID 1400857819-7975-4-git-send-email-daniel.thompson@linaro.org
State New
Headers show

Commit Message

Daniel Thompson May 23, 2014, 3:10 p.m. UTC
Only a small handful of platforms support DEBUG_LL_UART_NONE but it
lurks in the menus of every single platform config ready to break the
build. This is an especial problem for defconfigs since it is often
selected by default.

This patch limit this choice only to platforms capable of supporting it.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
---
 arch/arm/Kconfig.debug | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Comments

Arnd Bergmann May 23, 2014, 3:35 p.m. UTC | #1
On Friday 23 May 2014 16:10:17 Daniel Thompson wrote:
> Only a small handful of platforms support DEBUG_LL_UART_NONE but it
> lurks in the menus of every single platform config ready to break the
> build. This is an especial problem for defconfigs since it is often
> selected by default.
> 
> This patch limit this choice only to platforms capable of supporting it.
> 
> Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
> ---
>  arch/arm/Kconfig.debug | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> 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.

As an alternative to your patch, we could decide to move the remaining
files as well.

	Arnd
Daniel Thompson May 27, 2014, 1:13 p.m. UTC | #2
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.

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?


Daniel.
Arnd Bergmann May 27, 2014, 1:37 p.m. UTC | #3
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
Daniel Thompson May 27, 2014, 1:52 p.m. UTC | #4
On 27/05/14 14:37, Arnd Bergmann wrote:
>> 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".

Ok. Thanks.

I'll refresh the patch shortly.


Daniel.
diff mbox

Patch

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