On Sat, Nov 14, 2020 at 12:58 AM Alexandre Belloni
<alexandre.belloni(a)bootlin.com> wrote:
On 11/11/2020 09:51:26+0100, Linus Walleij wrote:
> On Wed, Nov 11, 2020 at 7:18 AM kernel test robot <lkp(a)intel.com> wrote:
>
> > In file included from include/linux/kconfig.h:7,
> > from <command-line>:
> > >> ./include/generated/autoconf.h:1601:33: fatal error:
mach/debug-macro.S: No such file or directory
> > 1601 | #define CONFIG_DEBUG_LL_INCLUDE "mach/debug-macro.S"
> > | ^~~~~~~~~~~~~~~~~~~~
> > compilation terminated.
>
> This is an interesting one!
>
> It happens when CONFIG_DEBUG_LL_INCLUDE does not have a custom
> debug header for the platform under arch/arm/include/debug and the
> KConfig falls through to the default value, which is <mach/debug-macro.S>.
>
> Only that the majority is not using <mach/*> anymore.
>
> I feel a bit like setting the default to debug/8250.S or something.
>
> Suggestions?
>
> Then the actual bug exposed:
>
> The config tested by the robot is using
> CONFIG_ARCH_AT91=y
> CONFIG_SOC_SAMV7=y
>
> When I look into Kconfig.debug it seems that this will define
> DEBUG_AT91_SAMV7_USART1 but only a physical address,
> no virtual address and and actually no debug header. It seems
> LL_DEBUG is broken on SAMV7 and never really worked
> so now that crops up.
The last mach/debug-macro.S file was apparently removed in 2015,
in commit 0045c0dd2f64 ("ARM: debug-ll: rework footbridge handling").
At that point we should have changed the fallback
> Nicolas, something that should be fixed, I think?
>
I confirm DEBUG_LL is not broken on SAMV7. The config used by lkp doen't
define DEBUG_AT91_SAMV7_USART1, it is not the culprit. Select it and the
problem is gone since DEBUG_AT91_SAMV7_USART1 selects DEBUG_AT91_UART
and DEBUG_LL_INCLUDE has:
default "debug/at91.S" if DEBUG_AT91_UART
Your issue is CONFIG_DEBUG_SEMIHOSTING
Right, in particular, semihosting is not handled in
arch/arm/boot/compressed/head.S the way it is handled in
arch/arm/boot/compressed/debug.S, arch/arm/kernel/debug.S
and arch/arm/kernel/head.S.
I wonder if we should move the semihosting code into a separate
arch/arm/include/debug/semihosting.S to make the generic
code treat it the same as all the other options.
Alternatively, disabling CONFIG_DEBUG_UNCOMPRESS
when SEMIHOSTING is set would be the cheapest workaround
for the particular build failure.
Arnd