Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752857AbaKLOtM (ORCPT ); Wed, 12 Nov 2014 09:49:12 -0500 Received: from mail-wi0-f170.google.com ([209.85.212.170]:33952 "EHLO mail-wi0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752759AbaKLOtF (ORCPT ); Wed, 12 Nov 2014 09:49:05 -0500 Message-ID: <54637358.8090501@linaro.org> Date: Wed, 12 Nov 2014 14:48:56 +0000 From: Daniel Thompson User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: Arnd Bergmann , linux-arm-kernel@lists.infradead.org CC: Russell King , Paul Bolle , linaro-kernel@lists.linaro.org, patches@linaro.org, spear-devel@list.st.com, linux-kernel@vger.kernel.org, Srinivas Kandagatla Subject: Re: [PATCH v12 00/15] arm: Fix DEBUG_LL for multi-platform kernels (without PL01X) References: <1414148076-12685-1-git-send-email-daniel.thompson@linaro.org> <1822066.pI6QN22RDx@wuerfel> In-Reply-To: <1822066.pI6QN22RDx@wuerfel> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 24/10/14 16:46, Arnd Bergmann wrote: > On Friday 24 October 2014 11:54:21 Daniel Thompson wrote: >> This patchset removes some single-platform compatibility tricks related >> to DEBUG_LL and, as a result, allows multi_v7_defconfig derived builds >> to enable DEBUG_LL. Currently the user selected kbuild setting is >> ignored and the PL01X's DEBUG_LL stub is silently selected instead. This >> is a pain if your hardware doesn't have this cell, not least because it >> takes a little time to figure out that kbuild built the wrong code. >> > > Hi Daniel, > > All the patches in your series look good to me this time. If Russell > has no further comments, I'd like to put them into a branch in arm-soc. > It has turned out that a lot of changes in Kconfig.debug are for adding > new platforms, so we have fewer conflicts if we take it this way. Does this remain the plan? At present I did not punt these to Russell's patch tracker... > I would actually have put the defconfig changes into a combined patch, > I don't see a reason to split those up by platform, but I don't mind > merging them the way you have them either. [I really thought I had already replied to this bit but can't find it in my mailer]. I'll remember this in future. If you do decide it should be squashed together then let me know (I nearly squashed them together but in the end I couldn't think of a concise subject title saying what the had in common). > There is still a related bug that we should also fix, but I'd say let's > take your current patches first and then add whatever is missing > on top. Specifically, a snippet like this > > default 0xd4017000 if DEBUG_MMP_UART2 > default 0xd4018000 if DEBUG_MMP_UART3 > default 0xe0000000 if ARCH_SPEAR13XX > default 0xe4007000 if DEBUG_HIP04_UART > default 0xf0000be0 if ARCH_EBSA110 > > still means you get the wrong default when you build a multiplatform > kernel that you want to boot on HIP04 and you set DEBUG_HIP04_UART > but you happen to also have ARCH_SPEAR13XX enabled. Good spot. > I have a patch that I use locally for randconfig builds that tries > to fix this. It has some overlaps with your work but most parts are > distinct. See below. > > Arnd > > diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug > index 64d0e21cf7e7..bb27d0b19197 100644 > --- a/arch/arm/Kconfig.debug > +++ b/arch/arm/Kconfig.debug > @@ -211,6 +211,14 @@ choice > Say Y here if you want the debug print routines to direct > their output to the serial port in the DC21285 (Footbridge). > > + config DEBUG_EP93XX > + bool "Kernel low-level debugging messages via ep93xx UART" > + depends on ARCH_EP93XX > + select DEBUG_UART_PL01X > + help > + Say Y here if you want kernel low-level debugging support > + on Cirrus Logic EP93xx based platforms. > + > config DEBUG_FOOTBRIDGE_COM1 > bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1" > depends on FOOTBRIDGE > @@ -218,6 +226,14 @@ choice > Say Y here if you want the debug print routines to direct > their output to the 8250 at PCI COM1. > > + config DEBUG_GEMINI > + bool "Kernel low-level debugging messages via Cortina Systems Gemini UART" > + depends on ARCH_GEMINI > + select DEBUG_UART_8250 > + help > + Say Y here if you want kernel low-level debugging support > + on Cirrus Logic EP93xx based platforms. > + > config DEBUG_HI3620_UART > bool "Hisilicon HI3620 Debug UART" > depends on ARCH_HI3xxx > @@ -351,6 +367,14 @@ choice > Say Y here if you want kernel low-level debugging support > on i.MX6SX. > > + config DEBUG_INTEGRATOR > + bool "Kernel low-level debugging messages via ARM Integrator UART" > + depends on ARCH_INTEGRATOR > + select DEBUG_UART_PL01X > + help > + Say Y here if you want kernel low-level debugging support > + on Cirrus Logic EP93xx based platforms. > + > config DEBUG_KEYSTONE_UART0 > bool "Kernel low-level debugging on KEYSTONE2 using UART0" > depends on ARCH_KEYSTONE > @@ -367,6 +391,14 @@ choice > Say Y here if you want the debug print routines to direct > their output to UART1 serial port on KEYSTONE2 devices. > > + config DEBUG_LPC32XX > + bool "Kernel low-level debugging messages via NXP LPC32xx UART" > + depends on ARCH_LPC32XX > + select DEBUG_UART_8250 > + help > + Say Y here if you want kernel low-level debugging support > + on Cirrus Logic EP93xx based platforms. > + > config DEBUG_MESON_UARTAO > bool "Kernel low-level debugging via Meson6 UARTAO" > depends on ARCH_MESON > @@ -427,7 +459,7 @@ choice > > config DEBUG_MVEBU_UART > bool "Kernel low-level debugging messages via MVEBU UART (old bootloaders)" > - depends on ARCH_MVEBU > + depends on ARCH_MVEBU && CPU_V7 > select DEBUG_UART_8250 > help > Say Y here if you want kernel low-level debugging support > @@ -440,25 +472,40 @@ choice > Plathome OpenBlocks AX3, when using the original > bootloader. > > + This option will not work on older Marvell platforms > + (Kirkwood, Dove, MV78xx0, Orion5x), which should piock ^^^^^^ piock? > + the "new bootloader" variant. > + > If the wrong DEBUG_MVEBU_UART* option is selected, > when u-boot hands over to the kernel, the system > silently crashes, with no serial output at all. > > config DEBUG_MVEBU_UART_ALTERNATE > bool "Kernel low-level debugging messages via MVEBU UART (new bootloaders)" > - depends on ARCH_MVEBU > + depends on ARCH_MVEBU || ARCH_DOVE || ARCH_KIRKWOOD || ARCH_MV78XX0 || ARCH_ORION5X > select DEBUG_UART_8250 > help > Say Y here if you want kernel low-level debugging support > - on MVEBU based platforms. > + on MVEBU based platforms (Armada XP, Armada 3xx, Kirkwood, > + Dove, MV78xx0, Orion5x). > > This option should be used with the new bootloaders > that remap the internal registers at 0xf1000000. > + All of the older (pre Armada XP/370) platforms also use > + this address, regardless of the boot loader version. > > If the wrong DEBUG_MVEBU_UART* option is selected, > when u-boot hands over to the kernel, the system > silently crashes, with no serial output at all. > > + config DEBUG_MT6589_UART0 > + bool "Mediatek mt6589 UART0" > + depends on ARCH_MEDIATEK > + select DEBUG_UART_8250 > + help > + Say Y here if you want kernel low-level debugging support > + for Mediatek mt6589 based platforms on UART0. > + > config DEBUG_VF_UART > bool "Vybrid UART" > depends on SOC_VF610 > @@ -823,6 +870,22 @@ choice > Say Y here if you want the debug print routines to direct > their output to the uart1 port on SiRFmarco devices. > > + config DEBUG_SPEAR3XX > + bool "Kernel low-level debugging messages via ST SPEAr 3xx/6xx UART" > + depends on ARCH_SPEAR3XX || ARCH_SPEAR6XX > + select DEBUG_UART_PL01X > + help > + Say Y here if you want kernel low-level debugging support > + on Cirrus Logic EP93xx based platforms. > + > + config DEBUG_SPEAR13XX > + bool "Kernel low-level debugging messages via ST SPEAr 13xx UART" > + depends on ARCH_SPEAR13XX > + select DEBUG_UART_PL01X > + help > + Say Y here if you want kernel low-level debugging support > + on Cirrus Logic EP93xx based platforms. > + > config STIH41X_DEBUG_ASC2 > bool "Use StiH415/416 ASC2 UART for low-level debug" > depends on ARCH_STI > @@ -860,13 +923,13 @@ choice > Say Y here if you want kernel low-level debugging support > on Ux500 based platforms. > > - config DEBUG_MT6589_UART0 > - bool "Mediatek mt6589 UART0" > - depends on ARCH_MEDIATEK > - select DEBUG_UART_8250 > + config DEBUG_VERSATILE > + bool "Kernel low-level debugging messages via ARM Versatile UART" > + depends on ARCH_VERSATILE > + select DEBUG_UART_PL01X > help > Say Y here if you want kernel low-level debugging support > - for Mediatek mt6589 based platforms on UART0. > + on Cirrus Logic EP93xx based platforms. > > config DEBUG_VEXPRESS_UART0_DETECT > bool "Autodetect UART0 on Versatile Express Cortex-A core tiles" > @@ -1078,20 +1141,13 @@ config DEBUG_LL_INCLUDE > > # Compatibility options for PL01x > config DEBUG_UART_PL01X > - def_bool ARCH_EP93XX || \ > - ARCH_INTEGRATOR || \ > - ARCH_SPEAR3XX || \ > - ARCH_SPEAR6XX || \ > - ARCH_SPEAR13XX || \ > - ARCH_VERSATILE > + bool > > # Compatibility options for 8250 > config DEBUG_UART_8250 > - def_bool ARCH_DOVE || ARCH_EBSA110 || \ > - (FOOTBRIDGE && !DEBUG_DC21285_PORT) || \ > - ARCH_GEMINI || ARCH_IOP13XX || ARCH_IOP32X || \ > - ARCH_IOP33X || ARCH_IXP4XX || \ > - ARCH_LPC32XX || ARCH_MV78XX0 || ARCH_ORION5X || ARCH_RPC > + def_bool ARCH_EBSA110 || (FOOTBRIDGE && !DEBUG_DC21285_PORT) || \ > + ARCH_IOP13XX || ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX || \ > + ARCH_RPC > > # Compatibility options for BCM63xx > config DEBUG_UART_BCM63XX > @@ -1113,10 +1169,10 @@ config DEBUG_UART_PHYS > 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 0x101f1000 if DEBUG_VERSATILE > default 0x101fb000 if DEBUG_NOMADIK_UART > default 0x11006000 if DEBUG_MT6589_UART0 > - default 0x16000000 if ARCH_INTEGRATOR > + default 0x16000000 if DEBUG_INTEGRATOR > default 0x18000300 if DEBUG_BCM_5301X > default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1 > default 0x20060000 if DEBUG_RK29_UART0 > @@ -1125,9 +1181,9 @@ config DEBUG_UART_PHYS > 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 0x40090000 if DEBUG_LPC32XX > default 0x40100000 if DEBUG_PXA_UART1 > - default 0x42000000 if ARCH_GEMINI > + default 0x42000000 if DEBUG_GEMINI > default 0x50000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \ > DEBUG_S3C2410_UART0) > default 0x50004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \ > @@ -1140,24 +1196,22 @@ config DEBUG_UART_PHYS > default 0x80070000 if DEBUG_IMX23_UART > default 0x80074000 if DEBUG_IMX28_UART > default 0x80230000 if DEBUG_PICOXCELL_UART > - default 0x808c0000 if ARCH_EP93XX > + default 0x808c0000 if DEBUG_EP93XX || ARCH_EP93XX > default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART > default 0xa9a00000 if DEBUG_MSM_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 0xd0000000 if DEBUG_SPEAR3XX > default 0xd0012000 if DEBUG_MVEBU_UART > default 0xc81004c0 if DEBUG_MESON_UARTAO > default 0xd4017000 if DEBUG_MMP_UART2 > default 0xd4018000 if DEBUG_MMP_UART3 > - default 0xe0000000 if ARCH_SPEAR13XX > default 0xe4007000 if DEBUG_HIP04_UART > + default 0xe0000000 if DEBUG_SPEAR13XX You'll probabably spot this in a final sweep through but this moves the SPEAR13XX out of numeric order... Daniel. > default 0xf0000be0 if ARCH_EBSA110 > default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE > - default 0xf1012000 if ARCH_DOVE || ARCH_MV78XX0 || \ > - ARCH_ORION5X > default 0xf7fc9000 if DEBUG_BERLIN_UART > default 0xf8b00000 if DEBUG_HIX5HD2_UART > default 0xf991e000 if DEBUG_QCOM_UARTDM > @@ -1174,7 +1228,7 @@ config DEBUG_UART_PHYS > DEBUG_LL_UART_EFM32 || \ > DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \ > DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \ > - DEBUG_UART_BCM63XX > + DEBUG_UART_BCM63XX || ARCH_EP93XX > > config DEBUG_UART_VIRT > hex "Virtual base address of debug UART" > @@ -1185,14 +1239,15 @@ config DEBUG_UART_VIRT > default 0xf0201000 if DEBUG_BCM2835 > default 0xf1000300 if DEBUG_BCM_5301X > default 0xf1006000 if DEBUG_MT6589_UART0 > - default 0xf11f1000 if ARCH_VERSATILE > - default 0xf1600000 if ARCH_INTEGRATOR > + default 0xf11f1000 if DEBUG_VERSATILE > + default 0xf1600000 if DEBUG_INTEGRATOR > default 0xf1c28000 if DEBUG_SUNXI_UART0 > default 0xf1c28400 if DEBUG_SUNXI_UART1 > default 0xf1f02800 if DEBUG_SUNXI_R_UART > default 0xf2100000 if DEBUG_PXA_UART1 > - default 0xf4090000 if ARCH_LPC32XX > - default 0xf4200000 if ARCH_GEMINI > + default 0xf31004c0 if DEBUG_MESON_UARTAO > + default 0xf4090000 if DEBUG_LPC32XX > + default 0xf4200000 if DEBUG_GEMINI > default 0xf7000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \ > DEBUG_S3C2410_UART0) > default 0xf7004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \ > @@ -1208,12 +1263,10 @@ config DEBUG_UART_VIRT > default 0xfb009000 if DEBUG_REALVIEW_STD_PORT > default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT > default 0xfcfe8600 if DEBUG_UART_BCM63XX > - 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 0xf31004c0 if DEBUG_MESON_UARTAO > + default 0xfd000000 if DEBUG_SPEAR3XX || DEBUG_SPEAR13XX > + default 0xfd012000 if DEBUG_MVEBU_UART_ALTERNATE && ARCH_MV78XX0 > + default 0xfde12000 if DEBUG_MVEBU_UART_ALTERNATE && ARCH_DOVE > + default 0xfe012000 if DEBUG_MVEBU_UART_ALTERNATE && ARCH_ORION5X > default 0xfe017000 if DEBUG_MMP_UART2 > default 0xfe018000 if DEBUG_MMP_UART3 > default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART > @@ -1234,7 +1287,7 @@ config DEBUG_UART_VIRT > 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 0xfedc0000 if ARCH_EP93XX > + default 0xfedc0000 if DEBUG_EP93XX > default 0xfee003f8 if FOOTBRIDGE > default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART > default 0xfee82340 if ARCH_IOP13XX > @@ -1269,7 +1322,7 @@ config DEBUG_UART_8250_WORD > config DEBUG_UART_8250_FLOW_CONTROL > bool "Enable flow control for 8250 UART" > depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250 > - default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_GEMINI || ARCH_RPC > + default y if ARCH_EBSA110 || FOOTBRIDGE || DEBUG_GEMINI || ARCH_RPC > > config DEBUG_UNCOMPRESS > bool > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/