Commit 41fc64a0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARM SoC updates from Arnd Bergmann:
 "The main changes this time are for the organization of the Kconfig
  files, introducing per-vendor top-level options on arm64 to match
  those on arm32, and making the platform selection on arm32 more
  uniform, in particular for the remaining StrongARM platforms that
  still have a couple of special cases compared to the more recent ones.

  I also did a cleanup of the old Footbridge platform, which was the
  last holdout for the phys_to_dma()/dma_to_phys() interface that is now
  completely gone from arm32, completing work started by Christoph
  Hellwig"

* tag 'arm-soc-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (21 commits)
  ARM: aspeed: Kconfig: Fix indentation
  ARM: Drop CMDLINE_* dependency on ATAGS
  ARM: Drop CMDLINE_FORCE dependency on !ARCH_MULTIPLATFORM
  ARM: s3c: remove orphan declarations from arch/arm/mach-s3c/devs.h
  pxa: Drop if with an always false condition
  ARM: orion: fix include path
  ARM: shmobile: Drop selecting SOC_BUS
  arm64: renesas: Drop selecting SOC_BUS
  ARM: disallow PCI with MMU=n again
  ARM: footbridge: remove custom DMA address handling
  MAINTAINERS: Add BCM4908 maintainer to BCMBCA entry
  ARM: footbridge: move isa-dma support into footbridge
  ARM: footbridge: remove leftover from personal-server
  ARM: footbridge: remove addin mode
  arm64: Kconfig.platforms: Group NXP platforms together
  arm64: Kconfig.platforms: Re-organized Broadcom menu
  ARM: make ARCH_MULTIPLATFORM user-visible
  ARM: fix XIP_KERNEL dependencies
  ARM: Kconfig: clean up platform selection
  ARM: simplify machdirs/platdirs handling
  ...
parents 7171a8da ef2fb84c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3971,6 +3971,7 @@ M: William Zhang <william.zhang@broadcom.com>
M:	Anand Gore <anand.gore@broadcom.com>
M:	Kursad Oney <kursad.oney@broadcom.com>
M:	Florian Fainelli <f.fainelli@gmail.com>
M:	Rafał Miłecki <rafal@milecki.pl>
R:	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S:	Maintained
+32 −103
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ config ARM
	select ARCH_HAS_GCOV_PROFILE_ALL
	select ARCH_KEEP_MEMBLOCK
	select ARCH_MIGHT_HAVE_PC_PARPORT
	select ARCH_NO_SG_CHAIN if !ARM_HAS_SG_CHAIN
	select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
	select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7
	select ARCH_SUPPORTS_ATOMIC_RMW
@@ -42,6 +41,7 @@ config ARM
	select ARCH_WANT_LD_ORPHAN_WARN
	select BINFMT_FLAT_ARGVP_ENVP_ON_STACK
	select BUILDTIME_TABLE_SORT if MMU
	select COMMON_CLK if !(ARCH_RPC || ARCH_FOOTBRIDGE)
	select CLONE_BACKWARDS
	select CPU_PM if SUSPEND || CPU_IDLE
	select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
@@ -110,6 +110,7 @@ config ARM
	select HAVE_MOD_ARCH_SPECIFIC
	select HAVE_NMI
	select HAVE_OPTPROBES if !THUMB2_KERNEL
	select HAVE_PCI if MMU
	select HAVE_PERF_EVENTS
	select HAVE_PERF_REGS
	select HAVE_PERF_USER_STACK_DUMP
@@ -126,13 +127,17 @@ config ARM
	select OF_EARLY_FLATTREE if OF
	select OLD_SIGACTION
	select OLD_SIGSUSPEND3
	select PCI_DOMAINS_GENERIC if PCI
	select PCI_SYSCALL if PCI
	select PERF_USE_VMALLOC
	select RTC_LIB
	select SPARSE_IRQ if !(ARCH_FOOTBRIDGE || ARCH_RPC)
	select SYS_SUPPORTS_APM_EMULATION
	select THREAD_INFO_IN_TASK
	select TIMER_OF if OF
	select HAVE_ARCH_VMAP_STACK if MMU && ARM_HAS_GROUP_RELOCS
	select TRACE_IRQFLAGS_SUPPORT if !CPU_V7M
	select USE_OF if !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
	# Above selects are sorted alphabetically; please add new ones
	# according to that.  Thanks.
	help
@@ -154,12 +159,8 @@ config ARM_HAS_GROUP_RELOCS
	  which is usually sufficient, but not for allyesconfig, so we disable
	  this feature when doing compile testing.

config ARM_HAS_SG_CHAIN
	bool

config ARM_DMA_USE_IOMMU
	bool
	select ARM_HAS_SG_CHAIN
	select NEED_SG_DMA_LENGTH

if ARM_DMA_USE_IOMMU
@@ -245,7 +246,7 @@ config ARCH_MTD_XIP
config ARM_PATCH_PHYS_VIRT
	bool "Patch physical to virtual translations at runtime" if EMBEDDED
	default y
	depends on !XIP_KERNEL && MMU
	depends on MMU
	help
	  Patch phys-to-virt and virt-to-phys translation functions at
	  boot and module load time according to the position of the
@@ -274,7 +275,7 @@ config NEED_MACH_MEMORY_H

config PHYS_OFFSET
	hex "Physical address of main memory" if MMU
	depends on !ARM_PATCH_PHYS_VIRT
	depends on !ARM_PATCH_PHYS_VIRT || !AUTO_ZRELADDR
	default DRAM_BASE if !MMU
	default 0x00000000 if ARCH_FOOTBRIDGE
	default 0x10000000 if ARCH_OMAP1 || ARCH_RPC
@@ -307,13 +308,8 @@ config MMU
config ARM_SINGLE_ARMV7M
	def_bool !MMU
	select ARM_NVIC
	select AUTO_ZRELADDR
	select TIMER_OF
	select COMMON_CLK
	select CPU_V7M
	select NO_IOPORT_MAP
	select SPARSE_IRQ
	select USE_OF

config ARCH_MMAP_RND_BITS_MIN
	default 8
@@ -323,94 +319,31 @@ config ARCH_MMAP_RND_BITS_MAX
	default 15 if PAGE_OFFSET=0x80000000
	default 16

#
# The "ARM system type" choice list is ordered alphabetically by option
# text.  Please add new entries in the option alphabetic order.
#
choice
	prompt "ARM system type"
	depends on MMU
	default ARCH_MULTIPLATFORM

config ARCH_MULTIPLATFORM
	bool "Allow multiple platforms to be selected"
	select ARCH_FLATMEM_ENABLE
	select ARCH_SPARSEMEM_ENABLE
	select ARCH_SELECT_MEMORY_MODEL
	select ARM_HAS_SG_CHAIN
	select ARM_PATCH_PHYS_VIRT
	select AUTO_ZRELADDR
	select TIMER_OF
	select COMMON_CLK
	select HAVE_PCI
	select PCI_DOMAINS_GENERIC if PCI
	select SPARSE_IRQ
	select USE_OF

config ARCH_FOOTBRIDGE
	bool "FootBridge"
	depends on CPU_LITTLE_ENDIAN
	depends on ATAGS
	select CPU_SA110
	select FOOTBRIDGE
	select NEED_MACH_MEMORY_H
	help
	  Support for systems based on the DC21285 companion chip
	  ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.

config ARCH_RPC
	bool "RiscPC"
	depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
	depends on CPU_LITTLE_ENDIAN
	depends on ATAGS
	select ARCH_ACORN
	select ARCH_MAY_HAVE_PC_FDC
	select ARCH_SPARSEMEM_ENABLE
	select ARM_HAS_SG_CHAIN
	select CPU_SA110
	select FIQ
	select HAVE_PATA_PLATFORM
	select ISA_DMA_API
	select LEGACY_TIMER_TICK
	select NEED_MACH_IO_H
	select NEED_MACH_MEMORY_H
	select NO_IOPORT_MAP
	bool "Require kernel to be portable to multiple machines" if EXPERT
	depends on MMU && !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
	default y
	help
	  On the Acorn Risc-PC, Linux can support the internal IDE disk and
	  CD-ROM interface, serial and parallel port, and the floppy drive.
	  In general, all Arm machines can be supported in a single
	  kernel image, covering either Armv4/v5 or Armv6/v7.

config ARCH_SA1100
	bool "SA1100-based"
	depends on CPU_LITTLE_ENDIAN
	depends on ATAGS
	select ARCH_MTD_XIP
	select ARCH_SPARSEMEM_ENABLE
	select CLKSRC_MMIO
	select CLKSRC_PXA
	select TIMER_OF if OF
	select COMMON_CLK
	select CPU_FREQ
	select CPU_SA1100
	select GPIOLIB
	select IRQ_DOMAIN
	select ISA
	select NEED_MACH_MEMORY_H
	select SPARSE_IRQ
	help
	  Support for StrongARM 11x0 based boards.
	  However, some configuration options require hardcoding machine
	  specific physical addresses or enable errata workarounds that may
	  break other machines.

endchoice
	  Selecting N here allows using those options, including
	  DEBUG_UNCOMPRESS, XIP_KERNEL and ZBOOT_ROM. If unsure, say Y.

menu "Multiple platform selection"
	depends on ARCH_MULTIPLATFORM
menu "Platform selection"
	depends on MMU

comment "CPU Core family selection"

config ARCH_MULTI_V4
	bool "ARMv4 based platforms (FA526)"
	bool "ARMv4 based platforms (FA526, StrongARM)"
	depends on !ARCH_MULTI_V6_V7
	select ARCH_MULTI_V4_V5
	select CPU_FA526
	select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)

config ARCH_MULTI_V4T
	bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
@@ -472,7 +405,6 @@ config ARCH_AIROHA
	select ARM_GIC_V3
	select ARM_PSCI
	select HAVE_ARM_ARCH_TIMER
	select COMMON_CLK
	help
	  Support for Airoha EN7523 SoCs

@@ -573,6 +505,8 @@ source "arch/arm/mach-rda/Kconfig"

source "arch/arm/mach-realtek/Kconfig"

source "arch/arm/mach-rpc/Kconfig"

source "arch/arm/mach-rockchip/Kconfig"

source "arch/arm/mach-s3c/Kconfig"
@@ -638,7 +572,6 @@ config ARCH_ACORN
config PLAT_ORION
	bool
	select CLKSRC_MMIO
	select COMMON_CLK
	select GENERIC_IRQ_CHIP
	select IRQ_DOMAIN

@@ -989,11 +922,6 @@ config ISA
	  (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
	  newer boards don't support it.  If you have ISA, say Y, otherwise N.

# Select ISA DMA controller support
config ISA_DMA
	bool
	select ISA_DMA_API

# Select ISA DMA interface
config ISA_DMA_API
	bool
@@ -1054,7 +982,7 @@ config SMP

config SMP_ON_UP
	bool "Allow booting SMP kernel on uniprocessor systems"
	depends on SMP && !XIP_KERNEL && MMU
	depends on SMP && MMU
	default y
	help
	  SMP kernels contain instructions which fail on non-SMP processors.
@@ -1303,7 +1231,7 @@ config THUMB2_KERNEL

config ARM_PATCH_IDIV
	bool "Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()"
	depends on CPU_32v7 && !XIP_KERNEL
	depends on CPU_32v7
	default y
	help
	  The ARM compiler inserts calls to __aeabi_idiv() and
@@ -1358,13 +1286,13 @@ config OABI_COMPAT
	  at all). If in doubt say N.

config ARCH_SELECT_MEMORY_MODEL
	bool
	def_bool y

config ARCH_FLATMEM_ENABLE
	bool
	def_bool !(ARCH_RPC || ARCH_SA1100)

config ARCH_SPARSEMEM_ENABLE
	bool
	def_bool !ARCH_FOOTBRIDGE
	select SPARSEMEM_STATIC if SPARSEMEM

config HIGHMEM
@@ -1671,7 +1599,6 @@ config CMDLINE
choice
	prompt "Kernel command line type" if CMDLINE != ""
	default CMDLINE_FROM_BOOTLOADER
	depends on ATAGS

config CMDLINE_FROM_BOOTLOADER
	bool "Use bootloader kernel arguments if available"
@@ -1698,6 +1625,7 @@ endchoice
config XIP_KERNEL
	bool "Kernel Execute-In-Place from ROM"
	depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
	depends on !ARM_PATCH_IDIV && !ARM_PATCH_PHYS_VIRT && !SMP_ON_UP
	help
	  Execute-In-Place allows the kernel to run from non-volatile storage
	  directly addressable by the CPU, such as NOR flash. This saves RAM
@@ -1772,7 +1700,8 @@ config CRASH_DUMP
	  For more details see Documentation/admin-guide/kdump/kdump.rst

config AUTO_ZRELADDR
	bool "Auto calculation of the decompressed kernel image address"
	bool "Auto calculation of the decompressed kernel image address" if !ARCH_MULTIPLATFORM
	default !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
	help
	  ZRELADDR is the physical address where the decompressed kernel
	  image will be placed. If AUTO_ZRELADDR is selected, the address
+4 −4
Original line number Diff line number Diff line
@@ -1904,7 +1904,8 @@ config DEBUG_UART_8250_PALMCHIP

config DEBUG_UNCOMPRESS
	bool "Enable decompressor debugging via DEBUG_LL output"
	depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
	depends on !ARCH_MULTIPLATFORM
	depends on !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
	depends on DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
		     (!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \
		     !DEBUG_BRCMSTB_UART && !DEBUG_SEMIHOSTING
@@ -1921,9 +1922,8 @@ config DEBUG_UNCOMPRESS

config UNCOMPRESS_INCLUDE
	string
	default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
					PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
	default "mach/uncompress.h"
	default "mach/uncompress.h" if ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100
	default "debug/uncompress.h"

config EARLY_PRINTK
	bool "Early printk"
+12 −28
Original line number Diff line number Diff line
@@ -227,40 +227,24 @@ machine-$(CONFIG_ARCH_ZYNQ) += zynq
machine-$(CONFIG_PLAT_VERSATILE)	+= versatile
machine-$(CONFIG_PLAT_SPEAR)		+= spear

# Platform directory name.  This list is sorted alphanumerically
# by CONFIG_* macro name.
plat-$(CONFIG_PLAT_ORION)	+= orion
# legacy platforms provide their own mach/*.h headers globally,
# these three are mutually exclusive
machdirs-$(CONFIG_ARCH_FOOTBRIDGE)	+= arch/arm/mach-footbridge
machdirs-$(CONFIG_ARCH_RPC)		+= arch/arm/mach-rpc
machdirs-$(CONFIG_ARCH_SA1100)		+= arch/arm/mach-sa1100
KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%/include,$(machdirs-y))

# The byte offset of the kernel image in RAM from the start of RAM.
TEXT_OFFSET := $(textofs-y)

# The first directory contains additional information for the boot setup code
ifneq ($(machine-y),)
MACHINE  := arch/arm/mach-$(word 1,$(machine-y))/
else
MACHINE  :=
endif
ifeq ($(CONFIG_ARCH_MULTIPLATFORM),y)
MACHINE  :=
endif

machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
platdirs := $(patsubst %,arch/arm/plat-%/,$(sort $(plat-y)))

ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y)
ifneq ($(CONFIG_ARM_SINGLE_ARMV7M),y)
KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs))
endif
endif

export	TEXT_OFFSET GZFLAGS MMUEXT

# If we have a machine-specific directory, then include it in the build.
core-y				+= $(machdirs) $(platdirs)

core-y				+= $(patsubst %,arch/arm/mach-%/,$(machine-y))
# For cleaning
core-				+= $(patsubst %,arch/arm/mach-%/,$(machine-))
core-				+= $(patsubst %,arch/arm/plat-%/, $(plat-))

core-$(CONFIG_PLAT_ORION)	+= arch/arm/plat-orion/

libs-y				:= arch/arm/lib/ $(libs-y)

@@ -313,7 +297,7 @@ bootpImage uImage: zImage
zImage: Image

$(BOOT_TARGETS): vmlinux
	$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
	@$(kecho) '  Kernel: $(boot)/$@ is ready'

$(INSTALL_TARGETS): KBUILD_IMAGE = $(boot)/$(patsubst %install,%Image,$@)
@@ -327,7 +311,7 @@ ifeq ($(CONFIG_VDSO),y)
endif

# My testing targets (bypasses dependencies)
bp:;	$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/bootpImage
bp:;	$(Q)$(MAKE) $(build)=$(boot) $(boot)/bootpImage


define archhelp
+7 −20
Original line number Diff line number Diff line
@@ -10,22 +10,16 @@
#
# Copyright (C) 1995-2002 Russell King
#

OBJCOPYFLAGS	:=-O binary -R .comment -S

ifneq ($(MACHINE),)
include $(MACHINE)/Makefile.boot
endif

# Note: the following conditions must always be true:
#   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
#   PARAMS_PHYS must be within 4MB of ZRELADDR
#   INITRD_PHYS must be in RAM
ZRELADDR    := $(zreladdr-y)
PARAMS_PHYS := $(params_phys-y)
INITRD_PHYS := $(initrd_phys-y)
ifdef CONFIG_PHYS_OFFSET
add_hex = $(shell printf 0x%x $$(( $(1) + $(2) )) )
ZRELADDR    := $(call add_hex, $(CONFIG_PHYS_OFFSET), $(TEXT_OFFSET))
endif

export ZRELADDR INITRD_PHYS PARAMS_PHYS
PHYS_OFFSET := $(CONFIG_PHYS_OFFSET)
export ZRELADDR PARAMS_PHYS PHYS_OFFSET

targets := Image zImage xipImage bootpImage uImage

@@ -90,17 +84,10 @@ $(obj)/uImage: $(obj)/zImage FORCE
	@$(check_for_multiple_loadaddr)
	$(call if_changed,uimage)

$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
$(obj)/bootp/bootp: $(obj)/zImage FORCE
	$(Q)$(MAKE) $(build)=$(obj)/bootp $@

$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
	$(call if_changed,objcopy)

PHONY += initrd
initrd:
	@test "$(INITRD_PHYS)" != "" || \
	(echo This machine does not support INITRD; exit -1)
	@test "$(INITRD)" != "" || \
	(echo You must specify INITRD; exit -1)

subdir-	    := bootp compressed dts
Loading