Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 21 Feb 2023 23:21:29 +0000 (15:21 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 21 Feb 2023 23:21:29 +0000 (15:21 -0800)
Pull ARM udpates from Russell King:

 - Improve Kconfig help text for Cortex A8 and Cortex A9 errata

 - Kconfig spelling and grammar fixes

 - Allow kernel-mode VFP/Neon in softirq context

 - Use Neon in softirq context

 - Implement AES-CTR/GHASH version of GCM

* tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
  ARM: 9289/1: Allow pre-ARMv5 builds with ld.lld 16.0.0 and newer
  ARM: 9288/1: Kconfigs: fix spelling & grammar
  ARM: 9286/1: crypto: Implement fused AES-CTR/GHASH version of GCM
  ARM: 9285/1: remove meaningless arch/arm/mach-rda/Makefile
  ARM: 9283/1: permit non-nested kernel mode NEON in softirq context
  ARM: 9282/1: vfp: Manipulate task VFP state with softirqs disabled
  ARM: 9281/1: improve Cortex A8/A9 errata help text

1  2 
arch/arm/Kconfig
arch/arm/Kconfig.debug
arch/arm/Makefile

diff --combined arch/arm/Kconfig
@@@ -282,7 -282,8 +282,7 @@@ config PHYS_OFFSE
        default DRAM_BASE if !MMU
        default 0x00000000 if ARCH_FOOTBRIDGE
        default 0x10000000 if ARCH_OMAP1 || ARCH_RPC
 -      default 0x30000000 if ARCH_S3C24XX
 -      default 0xa0000000 if ARCH_IOP32X || ARCH_PXA
 +      default 0xa0000000 if ARCH_PXA
        default 0xc0000000 if ARCH_EP93XX || ARCH_SA1100
        default 0
        help
@@@ -344,14 -345,16 +344,16 @@@ comment "CPU Core family selection
  config ARCH_MULTI_V4
        bool "ARMv4 based platforms (FA526, StrongARM)"
        depends on !ARCH_MULTI_V6_V7
-       depends on !LD_IS_LLD
+       # https://github.com/llvm/llvm-project/issues/50764
+       depends on !LD_IS_LLD || LLD_VERSION >= 160000
        select ARCH_MULTI_V4_V5
        select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)
  
  config ARCH_MULTI_V4T
        bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
        depends on !ARCH_MULTI_V6_V7
-       depends on !LD_IS_LLD
+       # https://github.com/llvm/llvm-project/issues/50764
+       depends on !LD_IS_LLD || LLD_VERSION >= 160000
        select ARCH_MULTI_V4_V5
        select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \
                CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \
@@@ -437,6 -440,8 +439,6 @@@ source "arch/arm/mach-berlin/Kconfig
  
  source "arch/arm/mach-clps711x/Kconfig"
  
 -source "arch/arm/mach-cns3xxx/Kconfig"
 -
  source "arch/arm/mach-davinci/Kconfig"
  
  source "arch/arm/mach-digicolor/Kconfig"
@@@ -459,6 -464,8 +461,6 @@@ source "arch/arm/mach-hpe/Kconfig
  
  source "arch/arm/mach-imx/Kconfig"
  
 -source "arch/arm/mach-iop32x/Kconfig"
 -
  source "arch/arm/mach-ixp4xx/Kconfig"
  
  source "arch/arm/mach-keystone/Kconfig"
@@@ -656,7 -663,9 +658,9 @@@ config ARM_ERRATA_45869
          hazard might then cause a processor deadlock. The workaround enables
          the L1 caching of the NEON accesses and disables the PLD instruction
          in the ACTLR register. Note that setting specific bits in the ACTLR
-         register may not be available in non-secure mode.
+         register may not be available in non-secure mode and thus is not
+         available on a multiplatform kernel. This should be applied by the
+         bootloader instead.
  
  config ARM_ERRATA_460075
        bool "ARM errata: Data written to the L2 cache can be overwritten with stale data"
          and overwritten with stale memory contents from external memory. The
          workaround disables the write-allocate mode for the L2 cache via the
          ACTLR register. Note that setting specific bits in the ACTLR register
-         may not be available in non-secure mode.
+         may not be available in non-secure mode and thus is not available on
+         a multiplatform kernel. This should be applied by the bootloader
+         instead.
  
  config ARM_ERRATA_742230
        bool "ARM errata: DMB operation may be faulty"
          ordering of the two writes. This workaround sets a specific bit in
          the diagnostic register of the Cortex-A9 which causes the DMB
          instruction to behave as a DSB, ensuring the correct behaviour of
-         the two writes.
+         the two writes. Note that setting specific bits in the diagnostics
+         register may not be available in non-secure mode and thus is not
+         available on a multiplatform kernel. This should be applied by the
+         bootloader instead.
  
  config ARM_ERRATA_742231
        bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption"
          replaced from one of the CPUs at the same time as another CPU is
          accessing it. This workaround sets specific bits in the diagnostic
          register of the Cortex-A9 which reduces the linefill issuing
-         capabilities of the processor.
+         capabilities of the processor. Note that setting specific bits in the
+         diagnostics register may not be available in non-secure mode and thus
+         is not available on a multiplatform kernel. This should be applied by
+         the bootloader instead.
  
  config ARM_ERRATA_643719
        bool "ARM errata: LoUIS bit field in CLIDR register is incorrect"
@@@ -734,7 -751,9 +746,9 @@@ config ARM_ERRATA_74362
          register of the Cortex-A9 which disables the Store Buffer
          optimisation, preventing the defect from occurring. This has no
          visible impact on the overall performance or power consumption of the
-         processor.
+         processor. Note that setting specific bits in the diagnostics register
+         may not be available in non-secure mode and thus is not available on a
+         multiplatform kernel. This should be applied by the bootloader instead.
  
  config ARM_ERRATA_751472
        bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation"
          completion of a following broadcasted operation if the second
          operation is received by a CPU before the ICIALLUIS has completed,
          potentially leading to corrupted entries in the cache or TLB.
+         Note that setting specific bits in the diagnostics register may
+         not be available in non-secure mode and thus is not available on
+         a multiplatform kernel. This should be applied by the bootloader
+         instead.
  
  config ARM_ERRATA_754322
        bool "ARM errata: possible faulty MMU translations following an ASID switch"
@@@ -926,6 -949,12 +944,6 @@@ config IS
  config ISA_DMA_API
        bool
  
 -config PCI_NANOENGINE
 -      bool "BSE nanoEngine PCI support"
 -      depends on SA1100_NANOENGINE
 -      help
 -        Enable PCI on the BSE nanoEngine board.
 -
  config ARM_ERRATA_814220
        bool "ARM errata: Cache maintenance by set/way operations can execute out of order"
        depends on CPU_V7
@@@ -1454,6 -1483,19 +1472,6 @@@ config ATAG
          the ARM_ATAG_DTB_COMPAT option) then you may unselect this option
          to remove ATAGS support from your kernel binary.
  
 -config UNUSED_BOARD_FILES
 -      bool "Board support for machines without known users"
 -      depends on ATAGS
 -      help
 -        Most ATAGS based board files are completely unused and are
 -        scheduled for removal in early 2023, and left out of kernels
 -        by default now.  If you are using a board file that is marked
 -        as unused, turn on this option to build support into the kernel.
 -
 -        To keep support for your individual board from being removed,
 -        send a reply to the email discussion at
 -        https://lore.kernel.org/all/CAK8P3a0Z9vGEQbVRBo84bSyPFM-LF+hs5w8ZA51g2Z+NsdtDQA@mail.gmail.com/
 -
  config DEPRECATED_PARAM_STRUCT
        bool "Provide old way to pass kernel parameters"
        depends on ATAGS
diff --combined arch/arm/Kconfig.debug
@@@ -307,6 -307,14 +307,6 @@@ choic
                  Say Y here if you want the debug print routines to direct
                  their output to the second serial port on these devices.
  
 -      config DEBUG_CNS3XXX
 -              bool "Kernel Kernel low-level debugging on Cavium Networks CNS3xxx"
 -              depends on ARCH_CNS3XXX
 -              select DEBUG_UART_8250
 -              help
 -                Say Y here if you want the debug print routines to direct
 -                  their output to the CNS3xxx UART0.
 -
        config DEBUG_DAVINCI_DA8XX_UART1
                bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
                depends on ARCH_DAVINCI_DA8XX
                  Say Y here if you want the debug print routines to direct
                  their output to UART2 serial port on DaVinci DA8XX devices.
  
 -      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.
 -
        config DEBUG_DC21285_PORT
                bool "Kernel low-level debugging messages via footbridge serial port"
                depends on FOOTBRIDGE
                depends on ARCH_OMAP2PLUS
                select DEBUG_UART_8250
  
 -      config DEBUG_OMAP7XXUART1
 -              bool "Kernel low-level debugging via OMAP730 UART1"
 -              depends on ARCH_OMAP730
 -              select DEBUG_UART_8250
 -              help
 -                Say Y here if you want kernel low-level debugging support
 -                on OMAP730 based platforms on the UART1.
 -
 -      config DEBUG_OMAP7XXUART2
 -              bool "Kernel low-level debugging via OMAP730 UART2"
 -              depends on ARCH_OMAP730
 -              select DEBUG_UART_8250
 -              help
 -                Say Y here if you want kernel low-level debugging support
 -                on OMAP730 based platforms on the UART2.
 -
 -      config DEBUG_OMAP7XXUART3
 -              bool "Kernel low-level debugging via OMAP730 UART3"
 -              depends on ARCH_OMAP730
 -              select DEBUG_UART_8250
 -              help
 -                Say Y here if you want kernel low-level debugging support
 -                on OMAP730 based platforms on the UART3.
 -
        config DEBUG_TI81XXUART1
                bool "Kernel low-level debugging messages via TI81XX UART1 (ti8148evm)"
                depends on ARCH_OMAP2PLUS
        config DEBUG_S3C_UART0
                depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
                select DEBUG_EXYNOS_UART if ARCH_EXYNOS
 -              select DEBUG_S3C24XX_UART if ARCH_S3C24XX
                select DEBUG_S3C64XX_UART if ARCH_S3C64XX
                select DEBUG_S5PV210_UART if ARCH_S5PV210
                bool "Use Samsung S3C UART 0 for low-level debug"
        config DEBUG_S3C_UART1
                depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
                select DEBUG_EXYNOS_UART if ARCH_EXYNOS
 -              select DEBUG_S3C24XX_UART if ARCH_S3C24XX
                select DEBUG_S3C64XX_UART if ARCH_S3C64XX
                select DEBUG_S5PV210_UART if ARCH_S5PV210
                bool "Use Samsung S3C UART 1 for low-level debug"
        config DEBUG_S3C_UART2
                depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
                select DEBUG_EXYNOS_UART if ARCH_EXYNOS
 -              select DEBUG_S3C24XX_UART if ARCH_S3C24XX
                select DEBUG_S3C64XX_UART if ARCH_S3C64XX
                select DEBUG_S5PV210_UART if ARCH_S5PV210
                bool "Use Samsung S3C UART 2 for low-level debug"
                  their output to UART 3. The port must have been initialised
                  by the boot-loader before use.
  
 -      config DEBUG_S3C2410_UART0
 -              depends on ARCH_S3C24XX
 -              select DEBUG_S3C2410_UART
 -              bool "Use S3C2410/S3C2412 UART 0 for low-level debug"
 -              help
 -                Say Y here if you want the debug print routines to direct
 -                their output to UART 0. The port must have been initialised
 -                by the boot-loader before use.
 -
 -      config DEBUG_S3C2410_UART1
 -              depends on ARCH_S3C24XX
 -              select DEBUG_S3C2410_UART
 -              bool "Use S3C2410/S3C2412 UART 1 for low-level debug"
 -              help
 -                Say Y here if you want the debug print routines to direct
 -                their output to UART 1. The port must have been initialised
 -                by the boot-loader before use.
 -
 -      config DEBUG_S3C2410_UART2
 -              depends on ARCH_S3C24XX
 -              select DEBUG_S3C2410_UART
 -              bool "Use S3C2410/S3C2412 UART 2 for low-level debug"
 -              help
 -                Say Y here if you want the debug print routines to direct
 -                their output to UART 2. The port must have been initialised
 -                by the boot-loader before use.
 -
        config DEBUG_SA1100
                depends on ARCH_SA1100
                bool "Use SA1100 UARTs for low-level debug"
                depends on MACH_STM32MP157
                select DEBUG_STM32_UART
                help
-                 Say Y here if you want kernel low-level debugging support
-                 on STM32MP1 based platforms, wich default UART is wired on
+                 Say Y here if you want kernel low-level debugging support on
+                 STM32MP1-based platforms, where the default UART is wired to
                  UART4, but another UART instance can be selected by modifying
                  CONFIG_DEBUG_UART_PHYS and CONFIG_DEBUG_UART_VIRT.
  
@@@ -1409,6 -1479,13 +1409,6 @@@ config DEBUG_AT91_UAR
  config DEBUG_EXYNOS_UART
        bool
  
 -config DEBUG_S3C2410_UART
 -      bool
 -      select DEBUG_S3C24XX_UART
 -
 -config DEBUG_S3C24XX_UART
 -      bool
 -
  config DEBUG_S3C64XX_UART
        bool
  
@@@ -1416,7 -1493,8 +1416,7 @@@ config DEBUG_S5PV210_UAR
        bool
  
  config DEBUG_S3C_UART
 -      depends on DEBUG_S3C2410_UART || DEBUG_S3C24XX_UART || \
 -                 DEBUG_S3C64XX_UART ||  DEBUG_S5PV210_UART || \
 +      depends on DEBUG_S3C64XX_UART ||  DEBUG_S5PV210_UART || \
                   DEBUG_EXYNOS_UART
        int
        default "0" if DEBUG_S3C_UART0
@@@ -1517,7 -1595,7 +1517,7 @@@ config DEBUG_LL_INCLUD
        default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA0
        default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA1
        default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4
 -      default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART || DEBUG_S3C64XX_UART
 +      default "debug/s3c24xx.S" if DEBUG_S3C64XX_UART
        default "debug/s5pv210.S" if DEBUG_S5PV210_UART
        default "debug/sti.S" if DEBUG_STIH41X_ASC2
        default "debug/sti.S" if DEBUG_STIH41X_SBC_ASC1
@@@ -1540,10 -1618,11 +1540,10 @@@ config DEBUG_UART_PL01
  
  # Compatibility options for 8250
  config DEBUG_UART_8250
 -      def_bool ARCH_IOP32X || ARCH_IXP4XX || ARCH_RPC
 +      def_bool ARCH_IXP4XX || 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 0x4806e000 if DEBUG_OMAP2UART3 || DEBUG_OMAP4UART4
        default 0x49020000 if DEBUG_OMAP3UART3
        default 0x49042000 if DEBUG_OMAP3UART4
 -      default 0x50000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \
 -                              DEBUG_S3C2410_UART0)
 -      default 0x50004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \
 -                              DEBUG_S3C2410_UART1)
 -      default 0x50008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \
 -                              DEBUG_S3C2410_UART2)
 -      default 0x78000000 if DEBUG_CNS3XXX
        default 0x7c0003f8 if DEBUG_FOOTBRIDGE_COM1
        default 0x7f005000 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART0
        default 0x7f005400 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART1
        default 0xfcb00000 if DEBUG_HI3620_UART
        default 0xfd883000 if DEBUG_ALPINE_UART0
        default 0xfe531000 if DEBUG_STIH41X_SBC_ASC1
 -      default 0xfe800000 if ARCH_IOP32X
        default 0xfed32000 if DEBUG_STIH41X_ASC2
        default 0xff690000 if DEBUG_RK32_UART2
        default 0xffc02000 if DEBUG_SOCFPGA_UART0
        default 0xffe40000 if DEBUG_RCAR_GEN1_SCIF0
        default 0xffe42000 if DEBUG_RCAR_GEN1_SCIF2
        default 0xfff36000 if DEBUG_HIGHBANK_UART
 -      default 0xfffb0000 if DEBUG_OMAP1UART1 || DEBUG_OMAP7XXUART1
 -      default 0xfffb0800 if DEBUG_OMAP1UART2 || DEBUG_OMAP7XXUART2
 -      default 0xfffb9800 if DEBUG_OMAP1UART3 || DEBUG_OMAP7XXUART3
 +      default 0xfffb0000 if DEBUG_OMAP1UART1
 +      default 0xfffb0800 if DEBUG_OMAP1UART2
 +      default 0xfffb9800 if DEBUG_OMAP1UART3
        default 0xfffe8600 if DEBUG_BCM63XX_UART
        default 0xffffee00 if DEBUG_AT91_SAM9263_DBGU
        default 0xfffff200 if DEBUG_AT91_RM9200_DBGU
                DEBUG_RCAR_GEN2_SCIF2 || DEBUG_RCAR_GEN2_SCIF4 || \
                DEBUG_RCAR_GEN2_SCIFA2 || \
                DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \
 -              DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \
 +              DEBUG_RMOBILE_SCIFA4 || \
                DEBUG_S3C64XX_UART || \
                DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
                DEBUG_DIGICOLOR_UA0 || \
@@@ -1704,9 -1791,15 +1704,9 @@@ config DEBUG_UART_VIR
        default 0xf6200000 if DEBUG_PXA_UART1
        default 0xf7000000 if DEBUG_SUN9I_UART0
        default 0xf7000000 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART0
 -      default 0xf7000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \
 -                              DEBUG_S3C2410_UART0)
        default 0xf7000400 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART1
        default 0xf7000800 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART2
        default 0xf7000c00 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART3
 -      default 0xf7004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \
 -                              DEBUG_S3C2410_UART1)
 -      default 0xf7008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \
 -                              DEBUG_S3C2410_UART2)
        default 0xf7020000 if DEBUG_AT91_SAMA5D2_UART1
        default 0xf7fc9000 if DEBUG_BERLIN_UART
        default 0xf8007000 if DEBUG_HIP04_UART
                                DEBUG_OMAP4UART2 || DEBUG_OMAP5UART2
        default 0xfa06e000 if DEBUG_OMAP2UART3 || DEBUG_OMAP4UART4
        default 0xfa71e000 if DEBUG_QCOM_UARTDM
 -      default 0xfb002000 if DEBUG_CNS3XXX
        default 0xfb009000 if DEBUG_REALVIEW_STD_PORT
        default 0xfb00c000 if DEBUG_AT91_SAMA5D4_USART3
        default 0xfb020000 if DEBUG_OMAP3UART3
        default 0xfe018000 if DEBUG_MMP_UART3
        default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART
        default 0xfe300000 if DEBUG_BCM_KONA_UART
 -      default 0xfe800000 if ARCH_IOP32X
        default 0xfeb00000 if DEBUG_HI3620_UART || DEBUG_HIX5HD2_UART
        default 0xfeb24000 if DEBUG_RK3X_UART0
        default 0xfeb26000 if DEBUG_RK3X_UART1
        default 0xfec03000 if DEBUG_SOCFPGA_CYCLONE5_UART1
        default 0xfec12000 if DEBUG_MVEBU_UART0 || DEBUG_MVEBU_UART0_ALTERNATE
        default 0xfec12100 if DEBUG_MVEBU_UART1_ALTERNATE
 -      default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0
        default 0xfec90000 if DEBUG_RK32_UART2
        default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
        default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_SD5203_UART
        default 0xfec00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
        default 0xfec00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
        default 0xfef36000 if DEBUG_HIGHBANK_UART
 -      default 0xff0b0000 if DEBUG_OMAP1UART1 || DEBUG_OMAP7XXUART1
 -      default 0xff0b0800 if DEBUG_OMAP1UART2 || DEBUG_OMAP7XXUART2
 -      default 0xff0b9800 if DEBUG_OMAP1UART3 || DEBUG_OMAP7XXUART3
 +      default 0xff0b0000 if DEBUG_OMAP1UART1
 +      default 0xff0b0800 if DEBUG_OMAP1UART2
 +      default 0xff0b9800 if DEBUG_OMAP1UART3
        default 0xffd01000 if DEBUG_HIP01_UART
        default DEBUG_UART_PHYS if !MMU
        depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
                DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
 -              DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \
 +              DEBUG_QCOM_UARTDM || \
                DEBUG_S3C64XX_UART || \
                DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
                DEBUG_DIGICOLOR_UA0 || \
  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 DEBUG_FOOTBRIDGE_COM1 || ARCH_IOP32X || DEBUG_BCM_5301X || \
 -              DEBUG_BCM_HR2 || DEBUG_OMAP7XXUART1 || DEBUG_OMAP7XXUART2 || \
 -              DEBUG_OMAP7XXUART3
 +      default 0 if DEBUG_FOOTBRIDGE_COM1 || DEBUG_BCM_5301X || \
 +              DEBUG_BCM_HR2
        default 3 if DEBUG_MSTARV7_PMUART
        default 2
  
@@@ -1793,9 -1890,9 +1793,9 @@@ config DEBUG_UART_8250_WOR
        default y if DEBUG_SOCFPGA_UART0 || DEBUG_SOCFPGA_ARRIA10_UART1 || \
                DEBUG_SOCFPGA_CYCLONE5_UART1 || DEBUG_KEYSTONE_UART0 || \
                DEBUG_KEYSTONE_UART1 || DEBUG_ALPINE_UART0 || \
 -              DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \
 -              DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_BCM_IPROC_UART3 || \
 -              DEBUG_BCM_KONA_UART || DEBUG_RK32_UART2
 +              DEBUG_DAVINCI_DA8XX_UART1 || DEBUG_DAVINCI_DA8XX_UART2 || \
 +              DEBUG_BCM_IPROC_UART3 || DEBUG_BCM_KONA_UART || \
 +              DEBUG_RK32_UART2
  
  config DEBUG_UART_8250_PALMCHIP
        bool "8250 UART is Palmchip BK-310x"
diff --combined arch/arm/Makefile
@@@ -132,7 -132,7 +132,7 @@@ AFLAGS_NOWARN      :=$(call as-option,-Wa$(c
  
  ifeq ($(CONFIG_THUMB2_KERNEL),y)
  CFLAGS_ISA    :=-Wa,-mimplicit-it=always $(AFLAGS_NOWARN)
 -AFLAGS_ISA    :=$(CFLAGS_ISA) -Wa$(comma)-mthumb -D__thumb2__=2
 +AFLAGS_ISA    :=$(CFLAGS_ISA) -Wa$(comma)-mthumb
  CFLAGS_ISA    +=-mthumb
  else
  CFLAGS_ISA    :=$(call cc-option,-marm,) $(AFLAGS_NOWARN)
@@@ -152,6 -152,8 +152,6 @@@ CHECKFLAGS += -D__arm_
  # during boot, and this offset is critical to the functioning of
  # kexec-tools.
  textofs-y     := 0x00008000
 -# We don't want the htc bootloader to corrupt kernel during resume
 -textofs-$(CONFIG_PM_H1940)      := 0x00108000
  # RTD1195 has Boot ROM at start of address space
  textofs-$(CONFIG_ARCH_REALTEK)  := 0x00108000
  # SA1111 DMA bug: we don't want the kernel to live in precious DMA-able memory
@@@ -176,6 -178,7 +176,6 @@@ machine-$(CONFIG_ARCH_AXXIA)               += axxi
  machine-$(CONFIG_ARCH_BCM)            += bcm
  machine-$(CONFIG_ARCH_BERLIN)         += berlin
  machine-$(CONFIG_ARCH_CLPS711X)               += clps711x
 -machine-$(CONFIG_ARCH_CNS3XXX)                += cns3xxx
  machine-$(CONFIG_ARCH_DAVINCI)                += davinci
  machine-$(CONFIG_ARCH_DIGICOLOR)      += digicolor
  machine-$(CONFIG_ARCH_DOVE)           += dove
@@@ -186,6 -189,7 +186,6 @@@ machine-$(CONFIG_ARCH_GEMINI)              += gemin
  machine-$(CONFIG_ARCH_HIGHBANK)               += highbank
  machine-$(CONFIG_ARCH_HISI)           += hisi
  machine-$(CONFIG_ARCH_HPE)            += hpe
 -machine-$(CONFIG_ARCH_IOP32X)         += iop32x
  machine-$(CONFIG_ARCH_IXP4XX)         += ixp4xx
  machine-$(CONFIG_ARCH_KEYSTONE)               += keystone
  machine-$(CONFIG_ARCH_LPC18XX)                += lpc18xx
@@@ -209,7 -213,6 +209,6 @@@ machine-$(CONFIG_ARCH_OMAP2PLUS)   += oma
  machine-$(CONFIG_ARCH_ORION5X)                += orion5x
  machine-$(CONFIG_ARCH_PXA)            += pxa
  machine-$(CONFIG_ARCH_QCOM)           += qcom
- machine-$(CONFIG_ARCH_RDA)            += rda
  machine-$(CONFIG_ARCH_REALTEK)                += realtek
  machine-$(CONFIG_ARCH_ROCKCHIP)               += rockchip
  machine-$(CONFIG_ARCH_RPC)            += rpc
@@@ -315,10 -318,6 +314,10 @@@ endi
  # My testing targets (bypasses dependencies)
  bp:;  $(Q)$(MAKE) $(build)=$(boot) $(boot)/bootpImage
  
 +include $(srctree)/scripts/Makefile.defconf
 +PHONY += multi_v7_lpae_defconfig
 +multi_v7_lpae_defconfig:
 +      $(call merge_into_defconfig,multi_v7_defconfig,lpae)
  
  define archhelp
    echo  '* zImage        - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
    echo  '                  (distribution) /sbin/$(INSTALLKERNEL) or'
    echo  '                  install to $$(INSTALL_PATH) and run lilo'
    echo  '  vdso_install  - Install unstripped vdso.so to $$(INSTALL_MOD_PATH)/vdso'
 +  echo
 +  echo  '  multi_v7_lpae_defconfig     - multi_v7_defconfig with CONFIG_ARM_LPAE enabled'
  endef