On Mon, Apr 7, 2014 at 6:10 AM, Russell King - ARM Linux linux@arm.linux.org.uk wrote:
On Sun, Apr 06, 2014 at 11:12:51PM -0700, Olof's autobooter wrote:
Failed boards:
cubie multi_v7_defconfig : FAILED 1:05.77 cubie2 sunxi_defconfig : FAILED 1:21.41 cubie2 multi_v7_defconfig : FAILED 1:09.94 cubie2 multi_lpae_defconfig : FAILED 0:59.68 hummingboard multi_v7_defconfig : FAILED 1:04.69 panda multi_v7_defconfig : FAILED 1:36.35 snow exynos_defconfig : FAILED 2:24.53 snowball multi_v7_defconfig : FAILED 1:07.90 wandboard multi_v7_defconfig : FAILED 1:05.66
So do we have any clues what's causing these to fail?
For the mx6 boards the boot failure only happens with multi_v7_defconfig, not with imx_v6_v7_defconfig.
I tried to boot multi_v7_defconfig with earlyprintk support and I noticed that it forces the user to enter the physical and virtual addresses for the UART port (The default is incorrect for i.mx):
[*] Kernel low-level debugging functions (read help!) Kernel low-level debugging port (i.MX6Q/DL Debug UART) (1) i.MX Debug UART Port Selection (NEW) (0xe0000000) Physical base address of debug UART (0xfd000000) Virtual base address of debug UART
Then I unselected all other platforms, keeping only i.mx, then the physical/virtual adresses selection menu disappeared and the kernel booted fine.
Other experiment I tried was to boot multi_v7_defconfig with the following change:
--- arch/arm/Kconfig.debug | 118 ------------------------------------------------- 1 file changed, 118 deletions(-)
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 7289853..021fbc8 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -1009,124 +1009,6 @@ config DEBUG_UART_8250 ARCH_IOP33X || ARCH_IXP4XX || ARCH_KIRKWOOD || \ ARCH_LPC32XX || ARCH_MV78XX0 || ARCH_ORION5X || ARCH_RPC
-config DEBUG_UART_PHYS - hex "Physical base address of debug UART" - default 0x01c20000 if DEBUG_DAVINCI_DMx_UART0 - default 0x01c28000 if DEBUG_SUNXI_UART0 - default 0x01c28400 if DEBUG_SUNXI_UART1 - default 0x01d0c000 if DEBUG_DAVINCI_DA8XX_UART1 - default 0x01d0d000 if DEBUG_DAVINCI_DA8XX_UART2 - default 0x02530c00 if DEBUG_KEYSTONE_UART0 - default 0x02531000 if DEBUG_KEYSTONE_UART1 - default 0x03010fe0 if ARCH_RPC - default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \ - DEBUG_VEXPRESS_UART0_CA9 - default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT - default 0x10124000 if DEBUG_RK3X_UART0 - default 0x10126000 if DEBUG_RK3X_UART1 - default 0x101f1000 if ARCH_VERSATILE - default 0x101fb000 if DEBUG_NOMADIK_UART - default 0x16000000 if ARCH_INTEGRATOR - default 0x18000300 if DEBUG_BCM_5301X - default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1 - default 0x20060000 if DEBUG_RK29_UART0 - default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 - default 0x20068000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3 - default 0x20201000 if DEBUG_BCM2835 - default 0x3e000000 if DEBUG_BCM_KONA_UART - default 0x4000e400 if DEBUG_LL_UART_EFM32 - default 0x40090000 if ARCH_LPC32XX - default 0x40100000 if DEBUG_PXA_UART1 - default 0x42000000 if ARCH_GEMINI - default 0x7c0003f8 if FOOTBRIDGE - default 0x80230000 if DEBUG_PICOXCELL_UART - default 0x80070000 if DEBUG_IMX23_UART - default 0x80074000 if DEBUG_IMX28_UART - default 0x808c0000 if ARCH_EP93XX - default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART - default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX - default 0xc0013000 if DEBUG_U300_UART - default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN - default 0xc8000003 if ARCH_IXP4XX && CPU_BIG_ENDIAN - default 0xd0000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX - default 0xd0012000 if DEBUG_MVEBU_UART - default 0xd4017000 if DEBUG_MMP_UART2 - default 0xd4018000 if DEBUG_MMP_UART3 - default 0xe0000000 if ARCH_SPEAR13XX - default 0xf0000be0 if ARCH_EBSA110 - default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE - default 0xf1012000 if ARCH_DOVE || ARCH_KIRKWOOD || ARCH_MV78XX0 || \ - ARCH_ORION5X - default 0xf7fc9000 if DEBUG_BERLIN_UART - default 0xf8b00000 if DEBUG_HI3716_UART - default 0xfcb00000 if DEBUG_HI3620_UART - default 0xfe800000 if ARCH_IOP32X - default 0xffc02000 if DEBUG_SOCFPGA_UART - default 0xffd82340 if ARCH_IOP13XX - default 0xfff36000 if DEBUG_HIGHBANK_UART - default 0xfffff700 if ARCH_IOP33X - depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ - DEBUG_LL_UART_EFM32 || \ - DEBUG_UART_8250 || DEBUG_UART_PL01X - -config DEBUG_UART_VIRT - hex "Virtual base address of debug UART" - default 0xe0010fe0 if ARCH_RPC - default 0xf0000be0 if ARCH_EBSA110 - default 0xf0009000 if DEBUG_CNS3XXX - default 0xf01fb000 if DEBUG_NOMADIK_UART - default 0xf0201000 if DEBUG_BCM2835 - default 0xf1000300 if DEBUG_BCM_5301X - default 0xf11f1000 if ARCH_VERSATILE - default 0xf1600000 if ARCH_INTEGRATOR - default 0xf1c28000 if DEBUG_SUNXI_UART0 - default 0xf1c28400 if DEBUG_SUNXI_UART1 - default 0xf2100000 if DEBUG_PXA_UART1 - default 0xf4090000 if ARCH_LPC32XX - default 0xf4200000 if ARCH_GEMINI - default 0xf7fc9000 if DEBUG_BERLIN_UART - default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9 - default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1 - default 0xfb009000 if DEBUG_REALVIEW_STD_PORT - default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT - default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX - default 0xfd000000 if ARCH_SPEAR13XX - default 0xfd012000 if ARCH_MV78XX0 - default 0xfde12000 if ARCH_DOVE - default 0xfe012000 if ARCH_ORION5X - default 0xfe017000 if DEBUG_MMP_UART2 - default 0xfe018000 if DEBUG_MMP_UART3 - default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART - default 0xfe230000 if DEBUG_PICOXCELL_UART - default 0xfe300000 if DEBUG_BCM_KONA_UART - default 0xfe800000 if ARCH_IOP32X - default 0xfeb00000 if DEBUG_HI3620_UART || DEBUG_HI3716_UART - default 0xfeb24000 if DEBUG_RK3X_UART0 - default 0xfeb26000 if DEBUG_RK3X_UART1 - default 0xfeb30c00 if DEBUG_KEYSTONE_UART0 - default 0xfeb31000 if DEBUG_KEYSTONE_UART1 - default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE - default 0xfed60000 if DEBUG_RK29_UART0 - default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 - default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3 - default 0xfec02000 if DEBUG_SOCFPGA_UART - default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0 - default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1 - default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2 - default 0xfed12000 if ARCH_KIRKWOOD - default 0xfedc0000 if ARCH_EP93XX - default 0xfee003f8 if FOOTBRIDGE - default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART - default 0xfef36000 if DEBUG_HIGHBANK_UART - default 0xfee82340 if ARCH_IOP13XX - default 0xfef00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN - default 0xfef00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN - default 0xfefff700 if ARCH_IOP33X - default 0xff003000 if DEBUG_U300_UART - default DEBUG_UART_PHYS if !MMU - depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ - DEBUG_UART_8250 || DEBUG_UART_PL01X - config DEBUG_UART_8250_SHIFT int "Register offset shift for the 8250 debug UART" depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250