Merge tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 22 Apr 2015 16:23:58 +0000 (09:23 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 22 Apr 2015 16:23:58 +0000 (09:23 -0700)
Pull ARM SoC 64-bit changes from Olof Johansson:
 "Mostly DT updates for arm64, but also a couple of Kconfig additions.

  Main contents:

   - Qualcomm MSM8916/APQ8016

   - Spreadtrum SC9836

   - Xilinx ZynqMP

   - pincontrol entries for MediaTek MT8173"

* tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  arm64: dts: add interrupt-affinity property to pmu node for juno
  arm64: dts: Add Qualcomm APQ8016 SBC evaluation board dts
  arm64: dts: Add Qualcomm MSM8916 SoC and evaluation board dts
  arm64: dts: sprd: adding coresight entries to Spreadtrum SC9836
  arm64: Add support for Spreadtrum's Sharkl64 Platform in Kconfig and defconfig
  arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile
  ARM64: Add new Xilinx ZynqMP SoC
  arm64: qcom: Add support for Qualcomm MSM8916 SoC
  arm64: dts: mt8173: Add pinctrl/GPIO/EINT node for mt8173.
  arm64: mediatek: Select PINCTRL for Mediatek platform

1  2 
arch/arm64/Kconfig
arch/arm64/configs/defconfig

diff --combined arch/arm64/Kconfig
@@@ -1,7 -1,7 +1,7 @@@
  config ARM64
        def_bool y
 -      select ARCH_BINFMT_ELF_RANDOMIZE_PIE
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
 +      select ARCH_HAS_ELF_RANDOMIZE
        select ARCH_HAS_GCOV_PROFILE_ALL
        select ARCH_HAS_SG_CHAIN
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
@@@ -143,13 -143,6 +143,13 @@@ config KERNEL_MODE_NEO
  config FIX_EARLYCON_MEM
        def_bool y
  
 +config PGTABLE_LEVELS
 +      int
 +      default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42
 +      default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48
 +      default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39
 +      default 4 if ARM64_4K_PAGES && ARM64_VA_BITS_48
 +
  source "init/Kconfig"
  
  source "kernel/Kconfig.freezer"
@@@ -181,9 -174,16 +181,16 @@@ config ARCH_FSL_LS2085
  config ARCH_MEDIATEK
        bool "Mediatek MT65xx & MT81xx ARMv8 SoC"
        select ARM_GIC
+       select PINCTRL
        help
          Support for Mediatek MT65xx & MT81xx ARMv8 SoCs
  
+ config ARCH_QCOM
+       bool "Qualcomm Platforms"
+       select PINCTRL
+       help
+         This enables support for the ARMv8 based Qualcomm chipsets.
  config ARCH_SEATTLE
        bool "AMD Seattle SoC Family"
        help
@@@ -215,6 -215,11 +222,11 @@@ config ARCH_TEGRA_132_SO
          but contains an NVIDIA Denver CPU complex in place of
          Tegra124's "4+1" Cortex-A15 CPU complex.
  
+ config ARCH_SPRD
+       bool "Spreadtrum SoC platform"
+       help
+         Support for Spreadtrum ARM based SoCs
  config ARCH_THUNDER
        bool "Cavium Inc. Thunder SoC Family"
        help
@@@ -235,6 -240,11 +247,11 @@@ config ARCH_XGEN
        help
          This enables support for AppliedMicro X-Gene SOC Family
  
+ config ARCH_ZYNQMP
+       bool "Xilinx ZynqMP Family"
+       help
+         This enables support for Xilinx ZynqMP Family
  endmenu
  
  menu "Bus support"
@@@ -368,27 -378,6 +385,27 @@@ config ARM64_ERRATUM_83207
  
          If unsure, say Y.
  
 +config ARM64_ERRATUM_845719
 +      bool "Cortex-A53: 845719: a load might read incorrect data"
 +      depends on COMPAT
 +      default y
 +      help
 +        This option adds an alternative code sequence to work around ARM
 +        erratum 845719 on Cortex-A53 parts up to r0p4.
 +
 +        When running a compat (AArch32) userspace on an affected Cortex-A53
 +        part, a load at EL0 from a virtual address that matches the bottom 32
 +        bits of the virtual address used by a recent load at (AArch64) EL1
 +        might return incorrect data.
 +
 +        The workaround is to write the contextidr_el1 register on exception
 +        return to a 32-bit task.
 +        Please note that this does not necessarily enable the workaround,
 +        as it depends on the alternative framework, which will only patch
 +        the kernel if an affected CPU is detected.
 +
 +        If unsure, say Y.
 +
  endmenu
  
  
@@@ -441,6 -430,13 +458,6 @@@ config ARM64_VA_BIT
        default 42 if ARM64_VA_BITS_42
        default 48 if ARM64_VA_BITS_48
  
 -config ARM64_PGTABLE_LEVELS
 -      int
 -      default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42
 -      default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48
 -      default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39
 -      default 4 if ARM64_4K_PAGES && ARM64_VA_BITS_48
 -
  config CPU_BIG_ENDIAN
         bool "Build big-endian kernel"
         help
@@@ -476,8 -472,8 +493,8 @@@ config SCHED_SM
          places. If unsure say N here.
  
  config NR_CPUS
 -      int "Maximum number of CPUs (2-64)"
 -      range 2 64
 +      int "Maximum number of CPUs (2-4096)"
 +      range 2 4096
        depends on SMP
        # These have to remain sorted largest to smallest
        default "64"
@@@ -491,10 -487,6 +508,10 @@@ config HOTPLUG_CP
  
  source kernel/Kconfig.preempt
  
 +config UP_LATE_INIT
 +       def_bool y
 +       depends on !SMP
 +
  config HZ
        int
        default 100
@@@ -695,7 -687,7 +712,7 @@@ source "fs/Kconfig.binfmt
  
  config COMPAT
        bool "Kernel support for 32-bit EL0"
 -      depends on !ARM64_64K_PAGES
 +      depends on !ARM64_64K_PAGES || EXPERT
        select COMPAT_BINFMT_ELF
        select HAVE_UID16
        select OLD_SIGSUSPEND3
          the user helper functions, VFP support and the ptrace interface are
          handled appropriately by the kernel.
  
 +        If you also enabled CONFIG_ARM64_64K_PAGES, please be aware that you
 +        will only be able to execute AArch32 binaries that were compiled with
 +        64k aligned segments.
 +
          If you want to execute 32-bit userspace applications, say Y.
  
  config SYSVIPC_COMPAT
@@@ -31,15 -31,14 +31,18 @@@ CONFIG_MODULES=
  CONFIG_MODULE_UNLOAD=y
  # CONFIG_BLK_DEV_BSG is not set
  # CONFIG_IOSCHED_DEADLINE is not set
 +CONFIG_ARCH_EXYNOS7=y
  CONFIG_ARCH_FSL_LS2085A=y
  CONFIG_ARCH_MEDIATEK=y
 +CONFIG_ARCH_SEATTLE=y
 +CONFIG_ARCH_TEGRA=y
 +CONFIG_ARCH_TEGRA_132_SOC=y
+ CONFIG_ARCH_QCOM=y
+ CONFIG_ARCH_SPRD=y
  CONFIG_ARCH_THUNDER=y
  CONFIG_ARCH_VEXPRESS=y
  CONFIG_ARCH_XGENE=y
+ CONFIG_ARCH_ZYNQMP=y
  CONFIG_PCI=y
  CONFIG_PCI_MSI=y
  CONFIG_PCI_XGENE=y
@@@ -52,7 -51,7 +55,7 @@@ CONFIG_CMDLINE="console=ttyAMA0
  # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
  CONFIG_COMPAT=y
  CONFIG_CPU_IDLE=y
 -CONFIG_ARM64_CPUIDLE=y
 +CONFIG_ARM_CPUIDLE=y
  CONFIG_NET=y
  CONFIG_PACKET=y
  CONFIG_UNIX=y
@@@ -66,7 -65,6 +69,7 @@@ CONFIG_BPF_JIT=
  # CONFIG_WIRELESS is not set
  CONFIG_NET_9P=y
  CONFIG_NET_9P_VIRTIO=y
 +# CONFIG_TEGRA_AHB is not set
  CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
  CONFIG_DEVTMPFS=y
  CONFIG_DEVTMPFS_MOUNT=y
@@@ -86,7 -84,6 +89,7 @@@ CONFIG_NETDEVICES=
  CONFIG_TUN=y
  CONFIG_VIRTIO_NET=y
  CONFIG_NET_XGENE=y
 +CONFIG_SKY2=y
  CONFIG_SMC91X=y
  CONFIG_SMSC911X=y
  # CONFIG_WLAN is not set
@@@ -99,15 -96,18 +102,20 @@@ CONFIG_SERIAL_8250_CONSOLE=
  CONFIG_SERIAL_8250_MT6577=y
  CONFIG_SERIAL_AMBA_PL011=y
  CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+ CONFIG_SERIAL_MSM=y
+ CONFIG_SERIAL_MSM_CONSOLE=y
  CONFIG_SERIAL_OF_PLATFORM=y
+ CONFIG_SERIAL_XILINX_PS_UART=y
+ CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
  CONFIG_VIRTIO_CONSOLE=y
  # CONFIG_HW_RANDOM is not set
  CONFIG_SPI=y
  CONFIG_SPI_PL022=y
+ CONFIG_PINCTRL_MSM8916=y
  CONFIG_GPIO_PL061=y
  CONFIG_GPIO_XGENE=y
 +CONFIG_POWER_RESET_XGENE=y
 +CONFIG_POWER_RESET_SYSCON=y
  # CONFIG_HWMON is not set
  CONFIG_REGULATOR=y
  CONFIG_REGULATOR_FIXED_VOLTAGE=y
@@@ -120,10 -120,10 +128,10 @@@ CONFIG_LOGO=
  CONFIG_USB=y
  CONFIG_USB_EHCI_HCD=y
  CONFIG_USB_EHCI_HCD_PLATFORM=y
 -CONFIG_USB_ISP1760_HCD=y
  CONFIG_USB_OHCI_HCD=y
  CONFIG_USB_OHCI_HCD_PLATFORM=y
  CONFIG_USB_STORAGE=y
 +CONFIG_USB_ISP1760=y
  CONFIG_USB_ULPI=y
  CONFIG_MMC=y
  CONFIG_MMC_ARMMMCI=y
@@@ -133,9 -133,10 +141,11 @@@ CONFIG_MMC_SPI=
  CONFIG_RTC_CLASS=y
  CONFIG_RTC_DRV_EFI=y
  CONFIG_RTC_DRV_XGENE=y
 +CONFIG_VIRTIO_PCI=y
  CONFIG_VIRTIO_BALLOON=y
  CONFIG_VIRTIO_MMIO=y
+ CONFIG_COMMON_CLK_QCOM=y
+ CONFIG_MSM_GCC_8916=y
  # CONFIG_IOMMU_SUPPORT is not set
  CONFIG_PHY_XGENE=y
  CONFIG_EXT2_FS=y
@@@ -152,10 -153,8 +162,10 @@@ CONFIG_CUSE=
  CONFIG_VFAT_FS=y
  CONFIG_TMPFS=y
  CONFIG_HUGETLBFS=y
 +CONFIG_EFIVAR_FS=y
  # CONFIG_MISC_FILESYSTEMS is not set
  CONFIG_NFS_FS=y
 +CONFIG_NFS_V4=y
  CONFIG_ROOT_NFS=y
  CONFIG_9P_FS=y
  CONFIG_NLS_CODEPAGE_437=y
@@@ -170,6 -169,7 +180,6 @@@ CONFIG_LOCKUP_DETECTOR=
  # CONFIG_SCHED_DEBUG is not set
  # CONFIG_DEBUG_PREEMPT is not set
  # CONFIG_FTRACE is not set
 -CONFIG_KEYS=y
  CONFIG_SECURITY=y
  CONFIG_CRYPTO_ANSI_CPRNG=y
  CONFIG_ARM64_CRYPTO=y