]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/arm/Kconfig.debug
Merge tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
[karo-tx-linux.git] / arch / arm / Kconfig.debug
index 15337833d05d4580005edb879d0dde262b7c4f1b..9762c84b419845f05ee6a7d1f9f95084dde310b5 100644 (file)
@@ -92,6 +92,7 @@ choice
        config DEBUG_BCM2835
                bool "Kernel low-level debugging on BCM2835 PL011 UART"
                depends on ARCH_BCM2835
+               select DEBUG_UART_PL01X
 
        config DEBUG_CLPS711X_UART1
                bool "Kernel low-level debugging messages via UART1"
@@ -110,6 +111,7 @@ choice
        config DEBUG_CNS3XXX
                bool "Kernel Kernel low-level debugging on Cavium Networks CNS3xxx"
                depends on ARCH_CNS3XXX
+               select DEBUG_UART_PL01X
                help
                  Say Y here if you want the debug print routines to direct
                   their output to the CNS3xxx UART0.
@@ -117,6 +119,7 @@ choice
        config DEBUG_DAVINCI_DA8XX_UART1
                bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
                depends on ARCH_DAVINCI_DA8XX
+               select DEBUG_UART_8250
                help
                  Say Y here if you want the debug print routines to direct
                  their output to UART1 serial port on DaVinci DA8XX devices.
@@ -124,6 +127,7 @@ choice
        config DEBUG_DAVINCI_DA8XX_UART2
                bool "Kernel low-level debugging on DaVinci DA8XX using UART2"
                depends on ARCH_DAVINCI_DA8XX
+               select DEBUG_UART_8250
                help
                  Say Y here if you want the debug print routines to direct
                  their output to UART2 serial port on DaVinci DA8XX devices.
@@ -131,6 +135,7 @@ choice
        config DEBUG_DAVINCI_DMx_UART0
                bool "Kernel low-level debugging on DaVinci DMx using UART0"
                depends on ARCH_DAVINCI_DMx
+               select DEBUG_UART_8250
                help
                  Say Y here if you want the debug print routines to direct
                  their output to UART0 serial port on DaVinci DMx devices.
@@ -138,6 +143,7 @@ choice
        config DEBUG_DAVINCI_TNETV107X_UART1
                bool "Kernel low-level debugging on DaVinci TNETV107x using UART1"
                depends on ARCH_DAVINCI_TNETV107X
+               select DEBUG_UART_8250
                help
                  Say Y here if you want the debug print routines to direct
                  their output to UART1 serial port on DaVinci TNETV107X
@@ -174,9 +180,26 @@ choice
                  Say Y here if you want the debug print routines to direct
                  their output to the 8250 at PCI COM1.
 
+       config DEBUG_HI3620_UART
+               bool "Hisilicon HI3620 Debug UART"
+               depends on ARCH_HI3xxx
+               select DEBUG_UART_PL01X
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on HI3620 UART.
+
+       config DEBUG_HI3716_UART
+               bool "Hisilicon Hi3716 Debug UART"
+               depends on ARCH_HI3xxx
+               select DEBUG_UART_PL01X
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on HI3716 UART.
+
        config DEBUG_HIGHBANK_UART
                bool "Kernel low-level debugging messages via Highbank UART"
                depends on ARCH_HIGHBANK
+               select DEBUG_UART_PL01X
                help
                  Say Y here if you want the debug print routines to direct
                  their output to the UART on Highbank based devices.
@@ -191,6 +214,7 @@ choice
        config DEBUG_IMX23_UART
                bool "i.MX23 Debug UART"
                depends on SOC_IMX23
+               select DEBUG_UART_PL01X
                help
                  Say Y here if you want kernel low-level debugging support
                  on i.MX23.
@@ -212,6 +236,7 @@ choice
        config DEBUG_IMX28_UART
                bool "i.MX28 Debug UART"
                depends on SOC_IMX28
+               select DEBUG_UART_PL01X
                help
                  Say Y here if you want kernel low-level debugging support
                  on i.MX28.
@@ -261,6 +286,7 @@ choice
        config DEBUG_KEYSTONE_UART0
                bool "Kernel low-level debugging on KEYSTONE2 using UART0"
                depends on ARCH_KEYSTONE
+               select DEBUG_UART_8250
                help
                  Say Y here if you want the debug print routines to direct
                  their output to UART0 serial port on KEYSTONE2 devices.
@@ -268,6 +294,7 @@ choice
        config DEBUG_KEYSTONE_UART1
                bool "Kernel low-level debugging on KEYSTONE2 using UART1"
                depends on ARCH_KEYSTONE
+               select DEBUG_UART_8250
                help
                  Say Y here if you want the debug print routines to direct
                  their output to UART1 serial port on KEYSTONE2 devices.
@@ -275,6 +302,7 @@ choice
        config DEBUG_MMP_UART2
                bool "Kernel low-level debugging message via MMP UART2"
                depends on ARCH_MMP
+               select DEBUG_UART_8250
                help
                  Say Y here if you want kernel low-level debugging support
                  on MMP UART2.
@@ -282,6 +310,7 @@ choice
        config DEBUG_MMP_UART3
                bool "Kernel low-level debugging message via MMP UART3"
                depends on ARCH_MMP
+               select DEBUG_UART_8250
                help
                  Say Y here if you want kernel low-level debugging support
                  on MMP UART3.
@@ -326,6 +355,7 @@ choice
        config DEBUG_MVEBU_UART
                bool "Kernel low-level debugging messages via MVEBU UART (old bootloaders)"
                depends on ARCH_MVEBU
+               select DEBUG_UART_8250
                help
                  Say Y here if you want kernel low-level debugging support
                  on MVEBU based platforms.
@@ -344,6 +374,7 @@ choice
        config DEBUG_MVEBU_UART_ALTERNATE
                bool "Kernel low-level debugging messages via MVEBU UART (new bootloaders)"
                depends on ARCH_MVEBU
+               select DEBUG_UART_8250
                help
                  Say Y here if you want kernel low-level debugging support
                  on MVEBU based platforms.
@@ -358,6 +389,7 @@ choice
        config DEBUG_NOMADIK_UART
                bool "Kernel low-level debugging messages via NOMADIK UART"
                depends on ARCH_NOMADIK
+               select DEBUG_UART_PL01X
                help
                  Say Y here if you want kernel low-level debugging support
                  on NOMADIK based platforms.
@@ -365,6 +397,7 @@ choice
        config DEBUG_NSPIRE_CLASSIC_UART
                bool "Kernel low-level debugging via TI-NSPIRE 8250 UART"
                depends on ARCH_NSPIRE
+               select DEBUG_UART_8250
                help
                  Say Y here if you want kernel low-level debugging support
                  on TI-NSPIRE classic models.
@@ -372,20 +405,82 @@ choice
        config DEBUG_NSPIRE_CX_UART
                bool "Kernel low-level debugging via TI-NSPIRE PL011 UART"
                depends on ARCH_NSPIRE
+               select DEBUG_UART_PL01X
                help
                  Say Y here if you want kernel low-level debugging support
                  on TI-NSPIRE CX models.
 
-       config DEBUG_OMAP2PLUS_UART
-               bool "Kernel low-level debugging messages via OMAP2PLUS UART"
+       config DEBUG_OMAP2UART1
+               bool "OMAP2/3/4 UART1 (omap2/3 sdp boards and some omap3 boards)"
                depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
                help
-                 Say Y here if you want kernel low-level debugging support
-                 on OMAP2PLUS based platforms.
+                 This covers at least h4, 2430sdp, 3430sdp, 3630sdp,
+                 omap3 torpedo and 3530 lv som.
+
+       config DEBUG_OMAP2UART2
+               bool "Kernel low-level debugging messages via OMAP2/3/4 UART2"
+               depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
+
+       config DEBUG_OMAP2UART3
+               bool "Kernel low-level debugging messages via OMAP2 UART3 (n8x0)"
+               depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
+
+       config DEBUG_OMAP3UART3
+               bool "Kernel low-level debugging messages via OMAP3 UART3 (most omap3 boards)"
+               depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
+               help
+                 This covers at least cm_t3x, beagle, crane, devkit8000,
+                 igep00x0, ldp, n900, n9(50), pandora, overo, touchbook,
+                 and 3517evm.
+
+       config DEBUG_OMAP4UART3
+               bool "Kernel low-level debugging messages via OMAP4/5 UART3 (omap4 blaze, panda, omap5 sevm)"
+               depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
+
+       config DEBUG_OMAP3UART4
+               bool "Kernel low-level debugging messages via OMAP36XX UART4"
+               depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
+
+       config DEBUG_OMAP4UART4
+               bool "Kernel low-level debugging messages via OMAP4/5 UART4"
+               depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
+
+       config DEBUG_TI81XXUART1
+               bool "Kernel low-level debugging messages via TI81XX UART1 (ti8148evm)"
+               depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
+
+       config DEBUG_TI81XXUART2
+               bool "Kernel low-level debugging messages via TI81XX UART2"
+               depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
+
+       config DEBUG_TI81XXUART3
+               bool "Kernel low-level debugging messages via TI81XX UART3 (ti8168evm)"
+               depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
+
+       config DEBUG_AM33XXUART1
+               bool "Kernel low-level debugging messages via AM33XX UART1"
+               depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
+
+       config DEBUG_ZOOM_UART
+               bool "Kernel low-level debugging messages via Zoom2/3 UART"
+               depends on ARCH_OMAP2PLUS
+               select DEBUG_OMAP2PLUS_UART
 
        config DEBUG_PICOXCELL_UART
                depends on ARCH_PICOXCELL
                bool "Use PicoXcell UART for low-level debug"
+               select DEBUG_UART_8250
                help
                  Say Y here if you want kernel low-level debugging support
                  on PicoXcell based platforms.
@@ -393,6 +488,7 @@ choice
        config DEBUG_PXA_UART1
                depends on ARCH_PXA
                bool "Use PXA UART1 for low-level debug"
+               select DEBUG_UART_8250
                help
                  Say Y here if you want kernel low-level debugging support
                  on PXA UART1.
@@ -400,6 +496,7 @@ choice
        config DEBUG_REALVIEW_STD_PORT
                bool "RealView Default UART"
                depends on ARCH_REALVIEW
+               select DEBUG_UART_PL01X
                help
                  Say Y here if you want the debug print routines to direct
                  their output to the serial port on RealView EB, PB11MP, PBA8
@@ -408,14 +505,64 @@ choice
        config DEBUG_REALVIEW_PB1176_PORT
                bool "RealView PB1176 UART"
                depends on MACH_REALVIEW_PB1176
+               select DEBUG_UART_PL01X
                help
                  Say Y here if you want the debug print routines to direct
                  their output to the standard serial port on the RealView
                  PB1176 platform.
 
-       config DEBUG_ROCKCHIP_UART
-               bool "Kernel low-level debugging messages via Rockchip UART"
+       config DEBUG_RK29_UART0
+               bool "Kernel low-level debugging messages via Rockchip RK29 UART0"
+               depends on ARCH_ROCKCHIP
+               select DEBUG_UART_8250
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Rockchip based platforms.
+
+       config DEBUG_RK29_UART1
+               bool "Kernel low-level debugging messages via Rockchip RK29 UART1"
+               depends on ARCH_ROCKCHIP
+               select DEBUG_UART_8250
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Rockchip based platforms.
+
+       config DEBUG_RK29_UART2
+               bool "Kernel low-level debugging messages via Rockchip RK29 UART2"
+               depends on ARCH_ROCKCHIP
+               select DEBUG_UART_8250
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Rockchip based platforms.
+
+       config DEBUG_RK3X_UART0
+               bool "Kernel low-level debugging messages via Rockchip RK3X UART0"
+               depends on ARCH_ROCKCHIP
+               select DEBUG_UART_8250
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Rockchip based platforms.
+
+       config DEBUG_RK3X_UART1
+               bool "Kernel low-level debugging messages via Rockchip RK3X UART1"
+               depends on ARCH_ROCKCHIP
+               select DEBUG_UART_8250
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Rockchip based platforms.
+
+       config DEBUG_RK3X_UART2
+               bool "Kernel low-level debugging messages via Rockchip RK3X UART2"
+               depends on ARCH_ROCKCHIP
+               select DEBUG_UART_8250
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Rockchip based platforms.
+
+       config DEBUG_RK3X_UART3
+               bool "Kernel low-level debugging messages via Rockchip RK3X UART3"
                depends on ARCH_ROCKCHIP
+               select DEBUG_UART_8250
                help
                  Say Y here if you want kernel low-level debugging support
                  on Rockchip based platforms.
@@ -471,6 +618,7 @@ choice
        config DEBUG_SOCFPGA_UART
                depends on ARCH_SOCFPGA
                bool "Use SOCFPGA UART for low-level debug"
+               select DEBUG_UART_8250
                help
                  Say Y here if you want kernel low-level debugging support
                  on SOCFPGA based platforms.
@@ -478,6 +626,7 @@ choice
        config DEBUG_SUNXI_UART0
                bool "Kernel low-level debugging messages via sunXi UART0"
                depends on ARCH_SUNXI
+               select DEBUG_UART_8250
                help
                  Say Y here if you want kernel low-level debugging support
                  on Allwinner A1X based platforms on the UART0.
@@ -485,13 +634,59 @@ choice
        config DEBUG_SUNXI_UART1
                bool "Kernel low-level debugging messages via sunXi UART1"
                depends on ARCH_SUNXI
+               select DEBUG_UART_8250
                help
                  Say Y here if you want kernel low-level debugging support
                  on Allwinner A1X based platforms on the UART1.
 
-       config DEBUG_TEGRA_UART
+       config TEGRA_DEBUG_UART_AUTO_ODMDATA
+               bool "Kernel low-level debugging messages via Tegra UART via ODMDATA"
+               depends on ARCH_TEGRA
+               select DEBUG_TEGRA_UART
+               help
+                 Automatically determines which UART to use for low-level
+                 debug based on the ODMDATA value. This value is part of
+                 the BCT, and is written to the boot memory device using
+                 nvflash, or other flashing tool.  When bits 19:18 are 3,
+                 then bits 17:15 indicate which UART to use; 0/1/2/3/4
+                 are UART A/B/C/D/E.
+
+       config TEGRA_DEBUG_UARTA
+               bool "Kernel low-level debugging messages via Tegra UART A"
+               depends on ARCH_TEGRA
+               select DEBUG_TEGRA_UART
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Tegra based platforms.
+
+       config TEGRA_DEBUG_UARTB
+               bool "Kernel low-level debugging messages via Tegra UART B"
+               depends on ARCH_TEGRA
+               select DEBUG_TEGRA_UART
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Tegra based platforms.
+
+       config TEGRA_DEBUG_UARTC
+               bool "Kernel low-level debugging messages via Tegra UART C"
+               depends on ARCH_TEGRA
+               select DEBUG_TEGRA_UART
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Tegra based platforms.
+
+       config TEGRA_DEBUG_UARTD
+               bool "Kernel low-level debugging messages via Tegra UART D"
+               depends on ARCH_TEGRA
+               select DEBUG_TEGRA_UART
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Tegra based platforms.
+
+       config TEGRA_DEBUG_UARTE
+               bool "Kernel low-level debugging messages via Tegra UART E"
                depends on ARCH_TEGRA
-               bool "Use Tegra UART for low-level debug"
+               select DEBUG_TEGRA_UART
                help
                  Say Y here if you want kernel low-level debugging support
                  on Tegra based platforms.
@@ -510,19 +705,32 @@ choice
                  Say Y here if you want the debug print routines to direct
                  their output to the uart1 port on SiRFmarco devices.
 
-       config DEBUG_STI_UART
+       config STIH41X_DEBUG_ASC2
+               bool "Use StiH415/416 ASC2 UART for low-level debug"
+               depends on ARCH_STI
+               select DEBUG_STI_UART
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on STiH415/416 based platforms like b2000, which has
+                 default UART wired up to ASC2.
+
+                 If unsure, say N.
+
+       config STIH41X_DEBUG_SBC_ASC1
+               bool "Use StiH415/416 SBC ASC1 UART for low-level debug"
                depends on ARCH_STI
-               bool "Use StiH415/416 ASC for low-level debug"
+               select DEBUG_STI_UART
                help
                  Say Y here if you want kernel low-level debugging support
-                 on StiH415/416 based platforms like B2000, B2020.
-                 It support UART2 and SBC_UART1.
+                 on STiH415/416 based platforms like b2020. which has
+                 default UART wired up to SBC ASC1.
 
                  If unsure, say N.
 
        config DEBUG_U300_UART
                bool "Kernel low-level debugging messages via U300 UART0"
                depends on ARCH_U300
+               select DEBUG_UART_PL01X
                help
                  Say Y here if you want the debug print routines to direct
                  their output to the uart port on U300 devices.
@@ -548,6 +756,7 @@ choice
        config DEBUG_VEXPRESS_UART0_CA9
                bool "Use PL011 UART0 at 0x10009000 (V2P-CA9 core tile)"
                depends on ARCH_VEXPRESS
+               select DEBUG_UART_PL01X
                help
                  This option selects UART0 at 0x10009000. Except for custom models,
                  this applies only to the V2P-CA9 tile.
@@ -555,6 +764,7 @@ choice
        config DEBUG_VEXPRESS_UART0_RS1
                bool "Use PL011 UART0 at 0x1c090000 (RS1 complaint tiles)"
                depends on ARCH_VEXPRESS
+               select DEBUG_UART_PL01X
                help
                  This option selects UART0 at 0x1c090000. This applies to most
                  of the tiles using the RS1 memory map, including all new A-class
@@ -563,6 +773,7 @@ choice
        config DEBUG_VEXPRESS_UART0_CRX
                bool "Use PL011 UART0 at 0xb0090000 (Cortex-R compliant tiles)"
                depends on ARCH_VEXPRESS && !MMU
+               select DEBUG_UART_PL01X
                help
                  This option selects UART0 at 0xb0090000. This is appropriate for
                  Cortex-R series tiles and SMMs, such as Cortex-R5 and Cortex-R7
@@ -579,7 +790,7 @@ choice
                depends on !ARCH_MULTIPLATFORM
                help
                  Say Y here if your platform doesn't provide a UART option
-                 below. This relies on your platform choosing the right UART
+                 above. This relies on your platform choosing the right UART
                  definition internally in order for low-level debugging to
                  work.
 
@@ -610,11 +821,41 @@ choice
                  For more details about semihosting, please see
                  chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd.
 
+       config DEBUG_LL_UART_8250
+               bool "Kernel low-level debugging via 8250 UART"
+               help
+                 Say Y here if you wish the debug print routes to direct
+                 their output to an 8250 UART.  You can use this option
+                 to provide the parameters for the 8250 UART rather than
+                 selecting one of the platform specific options above if
+                 you know the parameters for the port.
+
+                 This option is preferred over the platform specific
+                 options; the platform specific options are deprecated
+                 and will be soon removed.
+
+       config DEBUG_LL_UART_PL01X
+               bool "Kernel low-level debugging via ARM Ltd PL01x Primecell UART"
+               help
+                 Say Y here if you wish the debug print routes to direct
+                 their output to a PL01x Primecell UART.  You can use
+                 this option to provide the parameters for the UART
+                 rather than selecting one of the platform specific
+                 options above if you know the parameters for the port.
+
+                 This option is preferred over the platform specific
+                 options; the platform specific options are deprecated
+                 and will be soon removed.
+
 endchoice
 
 config DEBUG_EXYNOS_UART
        bool
 
+config DEBUG_OMAP2PLUS_UART
+       bool
+       depends on ARCH_OMAP2PLUS
+
 config DEBUG_IMX_UART_PORT
        int "i.MX Debug UART Port Selection" if DEBUG_IMX1_UART || \
                                                DEBUG_IMX25_UART || \
@@ -631,140 +872,19 @@ config DEBUG_IMX_UART_PORT
          Choose UART port on which kernel low-level debug messages
          should be output.
 
-choice
-       prompt "Low-level debug console UART"
-       depends on DEBUG_OMAP2PLUS_UART
-
-       config DEBUG_OMAP2UART1
-               bool "OMAP2/3/4 UART1 (omap2/3 sdp boards and some omap3 boards)"
-               help
-                 This covers at least h4, 2430sdp, 3430sdp, 3630sdp,
-                 omap3 torpedo and 3530 lv som.
-
-       config DEBUG_OMAP2UART2
-               bool "OMAP2/3/4 UART2"
-
-       config DEBUG_OMAP2UART3
-               bool "OMAP2 UART3 (n8x0)"
-
-       config DEBUG_OMAP3UART3
-               bool "OMAP3 UART3 (most omap3 boards)"
-               help
-                 This covers at least cm_t3x, beagle, crane, devkit8000,
-                 igep00x0, ldp, n900, n9(50), pandora, overo, touchbook,
-                 and 3517evm.
-
-       config DEBUG_OMAP4UART3
-               bool "OMAP4/5 UART3 (omap4 blaze, panda, omap5 sevm)"
-
-       config DEBUG_OMAP3UART4
-               bool "OMAP36XX UART4"
-
-       config DEBUG_OMAP4UART4
-               bool "OMAP4/5 UART4"
-
-       config DEBUG_TI81XXUART1
-               bool "TI81XX UART1 (ti8148evm)"
-
-       config DEBUG_TI81XXUART2
-               bool "TI81XX UART2"
-
-       config DEBUG_TI81XXUART3
-               bool "TI81XX UART3 (ti8168evm)"
-
-       config DEBUG_AM33XXUART1
-               bool "AM33XX UART1"
-
-       config DEBUG_ZOOM_UART
-               bool "Zoom2/3 UART"
-endchoice
-
-choice
-       prompt "Low-level debug console UART"
-       depends on DEBUG_ROCKCHIP_UART
-
-       config DEBUG_RK29_UART0
-               bool "RK29 UART0"
-
-       config DEBUG_RK29_UART1
-               bool "RK29 UART1"
-
-       config DEBUG_RK29_UART2
-               bool "RK29 UART2"
-
-       config DEBUG_RK3X_UART0
-               bool "RK3X UART0"
-
-       config DEBUG_RK3X_UART1
-               bool "RK3X UART1"
-
-       config DEBUG_RK3X_UART2
-               bool "RK3X UART2"
-
-       config DEBUG_RK3X_UART3
-               bool "RK3X UART3"
-endchoice
-
-choice
-       prompt "Low-level debug console UART"
-       depends on DEBUG_LL && DEBUG_TEGRA_UART
-
-       config TEGRA_DEBUG_UART_AUTO_ODMDATA
-       bool "Via ODMDATA"
-       help
-         Automatically determines which UART to use for low-level debug based
-         on the ODMDATA value. This value is part of the BCT, and is written
-         to the boot memory device using nvflash, or other flashing tool.
-         When bits 19:18 are 3, then bits 17:15 indicate which UART to use;
-         0/1/2/3/4 are UART A/B/C/D/E.
-
-       config TEGRA_DEBUG_UARTA
-               bool "UART A"
-
-       config TEGRA_DEBUG_UARTB
-               bool "UART B"
-
-       config TEGRA_DEBUG_UARTC
-               bool "UART C"
-
-       config TEGRA_DEBUG_UARTD
-               bool "UART D"
-
-       config TEGRA_DEBUG_UARTE
-               bool "UART E"
-
-endchoice
-
-choice
-       prompt "Low-level debug console UART"
-       depends on DEBUG_LL && DEBUG_STI_UART
-
-       config STIH41X_DEBUG_ASC2
-               bool "ASC2 UART"
-               help
-                 Say Y here if you want kernel low-level debugging support
-                 on STiH415/416 based platforms like b2000, which has
-                 default UART wired up to ASC2.
-
-                 If unsure, say N.
-
-       config STIH41X_DEBUG_SBC_ASC1
-               bool "SBC ASC1 UART"
-               help
-                 Say Y here if you want kernel low-level debugging support
-                 on STiH415/416 based platforms like b2020. which has
-                 default UART wired up to SBC ASC1.
-
-                 If unsure, say N.
+config DEBUG_TEGRA_UART
+       bool
+       depends on ARCH_TEGRA
 
-endchoice
+config DEBUG_STI_UART
+       bool
+       depends on ARCH_STI
 
 config DEBUG_LL_INCLUDE
        string
-       default "debug/bcm2835.S" if DEBUG_BCM2835
-       default "debug/cns3xxx.S" if DEBUG_CNS3XXX
+       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/exynos.S" if DEBUG_EXYNOS_UART
-       default "debug/highbank.S" if DEBUG_HIGHBANK_UART
        default "debug/icedcc.S" if DEBUG_ICEDCC
        default "debug/imx.S" if DEBUG_IMX1_UART || \
                                 DEBUG_IMX25_UART || \
@@ -775,43 +895,175 @@ config DEBUG_LL_INCLUDE
                                 DEBUG_IMX53_UART ||\
                                 DEBUG_IMX6Q_UART || \
                                 DEBUG_IMX6SL_UART
-       default "debug/keystone.S" if DEBUG_KEYSTONE_UART0 || \
-                                     DEBUG_KEYSTONE_UART1
        default "debug/msm.S" if DEBUG_MSM_UART1 || \
                                 DEBUG_MSM_UART2 || \
                                 DEBUG_MSM_UART3 || \
                                 DEBUG_MSM8660_UART || \
                                 DEBUG_MSM8960_UART
-       default "debug/mvebu.S" if DEBUG_MVEBU_UART || \
-                                  DEBUG_MVEBU_UART_ALTERNATE
-       default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
-       default "debug/nomadik.S" if DEBUG_NOMADIK_UART
-       default "debug/nspire.S" if     DEBUG_NSPIRE_CX_UART || \
-                                       DEBUG_NSPIRE_CLASSIC_UART
        default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
-       default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART
-       default "debug/pxa.S" if DEBUG_PXA_UART1 || DEBUG_MMP_UART2 || \
-                                DEBUG_MMP_UART3
-       default "debug/rockchip.S" if DEBUG_ROCKCHIP_UART
        default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
-       default "debug/socfpga.S" if DEBUG_SOCFPGA_UART
        default "debug/sti.S" if DEBUG_STI_UART
-       default "debug/sunxi.S" if DEBUG_SUNXI_UART0 || DEBUG_SUNXI_UART1
        default "debug/tegra.S" if DEBUG_TEGRA_UART
-       default "debug/u300.S" if DEBUG_U300_UART
        default "debug/ux500.S" if DEBUG_UX500_UART
-       default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT || \
-               DEBUG_VEXPRESS_UART0_CA9 || DEBUG_VEXPRESS_UART0_RS1 || \
-               DEBUG_VEXPRESS_UART0_CRX
+       default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT
        default "debug/vt8500.S" if DEBUG_VT8500_UART0
        default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
        default "mach/debug-macro.S"
 
+# Compatibility options for PL01x
+config DEBUG_UART_PL01X
+       def_bool ARCH_EP93XX || \
+               ARCH_INTEGRATOR || \
+               ARCH_SPEAR3XX || \
+               ARCH_SPEAR6XX || \
+               ARCH_SPEAR13XX || \
+               ARCH_VERSATILE
+
+# 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_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 0x08108300 if DEBUG_DAVINCI_TNETV107X_UART1
+       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 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 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 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_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 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 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 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 0xfee08300 if DEBUG_DAVINCI_TNETV107X_UART1
+       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
+       default 0 if FOOTBRIDGE || ARCH_IOP32X
+       default 2
+
+config DEBUG_UART_8250_WORD
+       bool "Use 32-bit accesses for 8250 UART"
+       depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
+       depends on DEBUG_UART_8250_SHIFT >= 2
+       default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \
+               ARCH_KEYSTONE || \
+               DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \
+               DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_DAVINCI_TNETV107X_UART1
+
+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
+
 config DEBUG_UNCOMPRESS
        bool
        depends on ARCH_MULTIPLATFORM || ARCH_MSM
        default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
-                    !DEBUG_TEGRA_UART
+                    (!DEBUG_TEGRA_UART || !ZBOOT_ROM)
        help
          This option influences the normal decompressor output for
          multiplatform kernels.  Normally, multiplatform kernels disable