tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: eccc876724927ff3b9ff91f36f7b6b159e948f0c
commit: 2596a72d338481b49a678ab880338fd5a661e663 ARM: 9009/1: uncompress: Enable debug in head.S
date: 8 weeks ago
config: arm-randconfig-c004-20201109 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2596a72d338481b49a678ab880338fd5a661e663
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 2596a72d338481b49a678ab880338fd5a661e663
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
All errors (new ones prefixed by >>):
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.
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
On Wed, Nov 11, 2020 at 7:18 AM kernel test robot <[email protected]> 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.
Nicolas, something that should be fixed, I think?
Yours,
Linus Walleij
On 11/11/2020 09:51:26+0100, Linus Walleij wrote:
> On Wed, Nov 11, 2020 at 7:18 AM kernel test robot <[email protected]> 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.
>
> Nicolas, something that should be fixed, I think?
>
This is what the platforms without an MMU are doing. I don't think there
is anything platform specific to fix.
On 11/11/2020 09:51:26+0100, Linus Walleij wrote:
> On Wed, Nov 11, 2020 at 7:18 AM kernel test robot <[email protected]> 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.
>
> 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
On Sat, Nov 14, 2020 at 12:58 AM Alexandre Belloni
<[email protected]> wrote:
> On 11/11/2020 09:51:26+0100, Linus Walleij wrote:
> > On Wed, Nov 11, 2020 at 7:18 AM kernel test robot <[email protected]> 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