Commit 41fc64a0 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'arm-soc-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

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
...@@ -3971,6 +3971,7 @@ M: William Zhang <william.zhang@broadcom.com> ...@@ -3971,6 +3971,7 @@ M: William Zhang <william.zhang@broadcom.com>
M: Anand Gore <anand.gore@broadcom.com> M: Anand Gore <anand.gore@broadcom.com>
M: Kursad Oney <kursad.oney@broadcom.com> M: Kursad Oney <kursad.oney@broadcom.com>
M: Florian Fainelli <f.fainelli@gmail.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> R: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Maintained S: Maintained
......
...@@ -28,7 +28,6 @@ config ARM ...@@ -28,7 +28,6 @@ config ARM
select ARCH_HAS_GCOV_PROFILE_ALL select ARCH_HAS_GCOV_PROFILE_ALL
select ARCH_KEEP_MEMBLOCK select ARCH_KEEP_MEMBLOCK
select ARCH_MIGHT_HAVE_PC_PARPORT 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 if ARCH_HAS_STRICT_KERNEL_RWX
select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7 select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7
select ARCH_SUPPORTS_ATOMIC_RMW select ARCH_SUPPORTS_ATOMIC_RMW
...@@ -42,6 +41,7 @@ config ARM ...@@ -42,6 +41,7 @@ config ARM
select ARCH_WANT_LD_ORPHAN_WARN select ARCH_WANT_LD_ORPHAN_WARN
select BINFMT_FLAT_ARGVP_ENVP_ON_STACK select BINFMT_FLAT_ARGVP_ENVP_ON_STACK
select BUILDTIME_TABLE_SORT if MMU select BUILDTIME_TABLE_SORT if MMU
select COMMON_CLK if !(ARCH_RPC || ARCH_FOOTBRIDGE)
select CLONE_BACKWARDS select CLONE_BACKWARDS
select CPU_PM if SUSPEND || CPU_IDLE select CPU_PM if SUSPEND || CPU_IDLE
select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
...@@ -110,6 +110,7 @@ config ARM ...@@ -110,6 +110,7 @@ config ARM
select HAVE_MOD_ARCH_SPECIFIC select HAVE_MOD_ARCH_SPECIFIC
select HAVE_NMI select HAVE_NMI
select HAVE_OPTPROBES if !THUMB2_KERNEL select HAVE_OPTPROBES if !THUMB2_KERNEL
select HAVE_PCI if MMU
select HAVE_PERF_EVENTS select HAVE_PERF_EVENTS
select HAVE_PERF_REGS select HAVE_PERF_REGS
select HAVE_PERF_USER_STACK_DUMP select HAVE_PERF_USER_STACK_DUMP
...@@ -126,13 +127,17 @@ config ARM ...@@ -126,13 +127,17 @@ config ARM
select OF_EARLY_FLATTREE if OF select OF_EARLY_FLATTREE if OF
select OLD_SIGACTION select OLD_SIGACTION
select OLD_SIGSUSPEND3 select OLD_SIGSUSPEND3
select PCI_DOMAINS_GENERIC if PCI
select PCI_SYSCALL if PCI select PCI_SYSCALL if PCI
select PERF_USE_VMALLOC select PERF_USE_VMALLOC
select RTC_LIB select RTC_LIB
select SPARSE_IRQ if !(ARCH_FOOTBRIDGE || ARCH_RPC)
select SYS_SUPPORTS_APM_EMULATION select SYS_SUPPORTS_APM_EMULATION
select THREAD_INFO_IN_TASK select THREAD_INFO_IN_TASK
select TIMER_OF if OF
select HAVE_ARCH_VMAP_STACK if MMU && ARM_HAS_GROUP_RELOCS select HAVE_ARCH_VMAP_STACK if MMU && ARM_HAS_GROUP_RELOCS
select TRACE_IRQFLAGS_SUPPORT if !CPU_V7M 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 # Above selects are sorted alphabetically; please add new ones
# according to that. Thanks. # according to that. Thanks.
help help
...@@ -154,12 +159,8 @@ config ARM_HAS_GROUP_RELOCS ...@@ -154,12 +159,8 @@ config ARM_HAS_GROUP_RELOCS
which is usually sufficient, but not for allyesconfig, so we disable which is usually sufficient, but not for allyesconfig, so we disable
this feature when doing compile testing. this feature when doing compile testing.
config ARM_HAS_SG_CHAIN
bool
config ARM_DMA_USE_IOMMU config ARM_DMA_USE_IOMMU
bool bool
select ARM_HAS_SG_CHAIN
select NEED_SG_DMA_LENGTH select NEED_SG_DMA_LENGTH
if ARM_DMA_USE_IOMMU if ARM_DMA_USE_IOMMU
...@@ -245,7 +246,7 @@ config ARCH_MTD_XIP ...@@ -245,7 +246,7 @@ config ARCH_MTD_XIP
config ARM_PATCH_PHYS_VIRT config ARM_PATCH_PHYS_VIRT
bool "Patch physical to virtual translations at runtime" if EMBEDDED bool "Patch physical to virtual translations at runtime" if EMBEDDED
default y default y
depends on !XIP_KERNEL && MMU depends on MMU
help help
Patch phys-to-virt and virt-to-phys translation functions at Patch phys-to-virt and virt-to-phys translation functions at
boot and module load time according to the position of the boot and module load time according to the position of the
...@@ -274,7 +275,7 @@ config NEED_MACH_MEMORY_H ...@@ -274,7 +275,7 @@ config NEED_MACH_MEMORY_H
config PHYS_OFFSET config PHYS_OFFSET
hex "Physical address of main memory" if MMU 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 DRAM_BASE if !MMU
default 0x00000000 if ARCH_FOOTBRIDGE default 0x00000000 if ARCH_FOOTBRIDGE
default 0x10000000 if ARCH_OMAP1 || ARCH_RPC default 0x10000000 if ARCH_OMAP1 || ARCH_RPC
...@@ -307,13 +308,8 @@ config MMU ...@@ -307,13 +308,8 @@ config MMU
config ARM_SINGLE_ARMV7M config ARM_SINGLE_ARMV7M
def_bool !MMU def_bool !MMU
select ARM_NVIC select ARM_NVIC
select AUTO_ZRELADDR
select TIMER_OF
select COMMON_CLK
select CPU_V7M select CPU_V7M
select NO_IOPORT_MAP select NO_IOPORT_MAP
select SPARSE_IRQ
select USE_OF
config ARCH_MMAP_RND_BITS_MIN config ARCH_MMAP_RND_BITS_MIN
default 8 default 8
...@@ -323,94 +319,31 @@ config ARCH_MMAP_RND_BITS_MAX ...@@ -323,94 +319,31 @@ config ARCH_MMAP_RND_BITS_MAX
default 15 if PAGE_OFFSET=0x80000000 default 15 if PAGE_OFFSET=0x80000000
default 16 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 config ARCH_MULTIPLATFORM
bool "Allow multiple platforms to be selected" bool "Require kernel to be portable to multiple machines" if EXPERT
select ARCH_FLATMEM_ENABLE depends on MMU && !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
select ARCH_SPARSEMEM_ENABLE default y
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
help help
On the Acorn Risc-PC, Linux can support the internal IDE disk and In general, all Arm machines can be supported in a single
CD-ROM interface, serial and parallel port, and the floppy drive. kernel image, covering either Armv4/v5 or Armv6/v7.
config ARCH_SA1100 However, some configuration options require hardcoding machine
bool "SA1100-based" specific physical addresses or enable errata workarounds that may
depends on CPU_LITTLE_ENDIAN break other machines.
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.
endchoice Selecting N here allows using those options, including
DEBUG_UNCOMPRESS, XIP_KERNEL and ZBOOT_ROM. If unsure, say Y.
menu "Multiple platform selection" menu "Platform selection"
depends on ARCH_MULTIPLATFORM depends on MMU
comment "CPU Core family selection" comment "CPU Core family selection"
config ARCH_MULTI_V4 config ARCH_MULTI_V4
bool "ARMv4 based platforms (FA526)" bool "ARMv4 based platforms (FA526, StrongARM)"
depends on !ARCH_MULTI_V6_V7 depends on !ARCH_MULTI_V6_V7
select ARCH_MULTI_V4_V5 select ARCH_MULTI_V4_V5
select CPU_FA526 select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)
config ARCH_MULTI_V4T config ARCH_MULTI_V4T
bool "ARMv4T based platforms (ARM720T, ARM920T, ...)" bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
...@@ -472,7 +405,6 @@ config ARCH_AIROHA ...@@ -472,7 +405,6 @@ config ARCH_AIROHA
select ARM_GIC_V3 select ARM_GIC_V3
select ARM_PSCI select ARM_PSCI
select HAVE_ARM_ARCH_TIMER select HAVE_ARM_ARCH_TIMER
select COMMON_CLK
help help
Support for Airoha EN7523 SoCs Support for Airoha EN7523 SoCs
...@@ -573,6 +505,8 @@ source "arch/arm/mach-rda/Kconfig" ...@@ -573,6 +505,8 @@ source "arch/arm/mach-rda/Kconfig"
source "arch/arm/mach-realtek/Kconfig" source "arch/arm/mach-realtek/Kconfig"
source "arch/arm/mach-rpc/Kconfig"
source "arch/arm/mach-rockchip/Kconfig" source "arch/arm/mach-rockchip/Kconfig"
source "arch/arm/mach-s3c/Kconfig" source "arch/arm/mach-s3c/Kconfig"
...@@ -638,7 +572,6 @@ config ARCH_ACORN ...@@ -638,7 +572,6 @@ config ARCH_ACORN
config PLAT_ORION config PLAT_ORION
bool bool
select CLKSRC_MMIO select CLKSRC_MMIO
select COMMON_CLK
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
select IRQ_DOMAIN select IRQ_DOMAIN
...@@ -989,11 +922,6 @@ config ISA ...@@ -989,11 +922,6 @@ config ISA
(MCA) or VESA. ISA is an older system, now being displaced by PCI; (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. 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 # Select ISA DMA interface
config ISA_DMA_API config ISA_DMA_API
bool bool
...@@ -1054,7 +982,7 @@ config SMP ...@@ -1054,7 +982,7 @@ config SMP
config SMP_ON_UP config SMP_ON_UP
bool "Allow booting SMP kernel on uniprocessor systems" bool "Allow booting SMP kernel on uniprocessor systems"
depends on SMP && !XIP_KERNEL && MMU depends on SMP && MMU
default y default y
help help
SMP kernels contain instructions which fail on non-SMP processors. SMP kernels contain instructions which fail on non-SMP processors.
...@@ -1303,7 +1231,7 @@ config THUMB2_KERNEL ...@@ -1303,7 +1231,7 @@ config THUMB2_KERNEL
config ARM_PATCH_IDIV config ARM_PATCH_IDIV
bool "Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()" bool "Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()"
depends on CPU_32v7 && !XIP_KERNEL depends on CPU_32v7
default y default y
help help
The ARM compiler inserts calls to __aeabi_idiv() and The ARM compiler inserts calls to __aeabi_idiv() and
...@@ -1358,13 +1286,13 @@ config OABI_COMPAT ...@@ -1358,13 +1286,13 @@ config OABI_COMPAT
at all). If in doubt say N. at all). If in doubt say N.
config ARCH_SELECT_MEMORY_MODEL config ARCH_SELECT_MEMORY_MODEL
bool def_bool y
config ARCH_FLATMEM_ENABLE config ARCH_FLATMEM_ENABLE
bool def_bool !(ARCH_RPC || ARCH_SA1100)
config ARCH_SPARSEMEM_ENABLE config ARCH_SPARSEMEM_ENABLE
bool def_bool !ARCH_FOOTBRIDGE
select SPARSEMEM_STATIC if SPARSEMEM select SPARSEMEM_STATIC if SPARSEMEM
config HIGHMEM config HIGHMEM
...@@ -1671,7 +1599,6 @@ config CMDLINE ...@@ -1671,7 +1599,6 @@ config CMDLINE
choice choice
prompt "Kernel command line type" if CMDLINE != "" prompt "Kernel command line type" if CMDLINE != ""
default CMDLINE_FROM_BOOTLOADER default CMDLINE_FROM_BOOTLOADER
depends on ATAGS
config CMDLINE_FROM_BOOTLOADER config CMDLINE_FROM_BOOTLOADER
bool "Use bootloader kernel arguments if available" bool "Use bootloader kernel arguments if available"
...@@ -1698,6 +1625,7 @@ endchoice ...@@ -1698,6 +1625,7 @@ endchoice
config XIP_KERNEL config XIP_KERNEL
bool "Kernel Execute-In-Place from ROM" bool "Kernel Execute-In-Place from ROM"
depends on !ARM_LPAE && !ARCH_MULTIPLATFORM depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
depends on !ARM_PATCH_IDIV && !ARM_PATCH_PHYS_VIRT && !SMP_ON_UP
help help
Execute-In-Place allows the kernel to run from non-volatile storage Execute-In-Place allows the kernel to run from non-volatile storage
directly addressable by the CPU, such as NOR flash. This saves RAM directly addressable by the CPU, such as NOR flash. This saves RAM
...@@ -1772,7 +1700,8 @@ config CRASH_DUMP ...@@ -1772,7 +1700,8 @@ config CRASH_DUMP
For more details see Documentation/admin-guide/kdump/kdump.rst For more details see Documentation/admin-guide/kdump/kdump.rst
config AUTO_ZRELADDR 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 help
ZRELADDR is the physical address where the decompressed kernel ZRELADDR is the physical address where the decompressed kernel
image will be placed. If AUTO_ZRELADDR is selected, the address image will be placed. If AUTO_ZRELADDR is selected, the address
......
...@@ -1904,7 +1904,8 @@ config DEBUG_UART_8250_PALMCHIP ...@@ -1904,7 +1904,8 @@ config DEBUG_UART_8250_PALMCHIP
config DEBUG_UNCOMPRESS config DEBUG_UNCOMPRESS
bool "Enable decompressor debugging via DEBUG_LL output" 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 && \ depends on DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
(!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \ (!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \
!DEBUG_BRCMSTB_UART && !DEBUG_SEMIHOSTING !DEBUG_BRCMSTB_UART && !DEBUG_SEMIHOSTING
...@@ -1921,9 +1922,8 @@ config DEBUG_UNCOMPRESS ...@@ -1921,9 +1922,8 @@ config DEBUG_UNCOMPRESS
config UNCOMPRESS_INCLUDE config UNCOMPRESS_INCLUDE
string string
default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \ default "mach/uncompress.h" if ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100
PLAT_SAMSUNG || ARM_SINGLE_ARMV7M default "debug/uncompress.h"
default "mach/uncompress.h"
config EARLY_PRINTK config EARLY_PRINTK
bool "Early printk" bool "Early printk"
......
...@@ -227,40 +227,24 @@ machine-$(CONFIG_ARCH_ZYNQ) += zynq ...@@ -227,40 +227,24 @@ machine-$(CONFIG_ARCH_ZYNQ) += zynq
machine-$(CONFIG_PLAT_VERSATILE) += versatile machine-$(CONFIG_PLAT_VERSATILE) += versatile
machine-$(CONFIG_PLAT_SPEAR) += spear machine-$(CONFIG_PLAT_SPEAR) += spear
# Platform directory name. This list is sorted alphanumerically # legacy platforms provide their own mach/*.h headers globally,
# by CONFIG_* macro name. # these three are mutually exclusive
plat-$(CONFIG_PLAT_ORION) += orion 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. # The byte offset of the kernel image in RAM from the start of RAM.
TEXT_OFFSET := $(textofs-y) 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 export TEXT_OFFSET GZFLAGS MMUEXT
# If we have a machine-specific directory, then include it in the build. # 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 # For cleaning
core- += $(patsubst %,arch/arm/mach-%/, $(machine-)) 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) libs-y := arch/arm/lib/ $(libs-y)
...@@ -313,7 +297,7 @@ bootpImage uImage: zImage ...@@ -313,7 +297,7 @@ bootpImage uImage: zImage
zImage: Image zImage: Image
$(BOOT_TARGETS): vmlinux $(BOOT_TARGETS): vmlinux
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@ $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
@$(kecho) ' Kernel: $(boot)/$@ is ready' @$(kecho) ' Kernel: $(boot)/$@ is ready'
$(INSTALL_TARGETS): KBUILD_IMAGE = $(boot)/$(patsubst %install,%Image,$@) $(INSTALL_TARGETS): KBUILD_IMAGE = $(boot)/$(patsubst %install,%Image,$@)
...@@ -327,7 +311,7 @@ ifeq ($(CONFIG_VDSO),y) ...@@ -327,7 +311,7 @@ ifeq ($(CONFIG_VDSO),y)
endif endif
# My testing targets (bypasses dependencies) # My testing targets (bypasses dependencies)
bp:; $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/bootpImage bp:; $(Q)$(MAKE) $(build)=$(boot) $(boot)/bootpImage
define archhelp define archhelp
......
...@@ -10,22 +10,16 @@ ...@@ -10,22 +10,16 @@
# #
# Copyright (C) 1995-2002 Russell King # Copyright (C) 1995-2002 Russell King
# #
OBJCOPYFLAGS :=-O binary -R .comment -S 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) # ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
# PARAMS_PHYS must be within 4MB of ZRELADDR ifdef CONFIG_PHYS_OFFSET
# INITRD_PHYS must be in RAM add_hex = $(shell printf 0x%x $$(( $(1) + $(2) )) )
ZRELADDR := $(zreladdr-y) ZRELADDR := $(call add_hex, $(CONFIG_PHYS_OFFSET), $(TEXT_OFFSET))
PARAMS_PHYS := $(params_phys-y) endif
INITRD_PHYS := $(initrd_phys-y)
export ZRELADDR INITRD_PHYS PARAMS_PHYS PHYS_OFFSET := $(CONFIG_PHYS_OFFSET)
export ZRELADDR PARAMS_PHYS PHYS_OFFSET
targets := Image zImage xipImage bootpImage uImage targets := Image zImage xipImage bootpImage uImage
...@@ -90,17 +84,10 @@ $(obj)/uImage: $(obj)/zImage FORCE ...@@ -90,17 +84,10 @@ $(obj)/uImage: $(obj)/zImage FORCE
@$(check_for_multiple_loadaddr) @$(check_for_multiple_loadaddr)
$(call if_changed,uimage) $(call if_changed,uimage)
$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE $(obj)/bootp/bootp: $(obj)/zImage FORCE
$(Q)$(MAKE) $(build)=$(obj)/bootp $@ $(Q)$(MAKE) $(build)=$(obj)/bootp $@
$(obj)/bootpImage: $(obj)/bootp/bootp FORCE $(obj)/bootpImage: $(obj)/bootp/bootp FORCE
$(call if_changed,objcopy) $(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 subdir- := bootp compressed dts
...@@ -5,9 +5,40 @@ ...@@ -5,9 +5,40 @@
# This file is included by the global makefile so that you can add your own # This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies. # architecture-specific flags and dependencies.
# #
GCOV_PROFILE := n GCOV_PROFILE := n
ifdef PHYS_OFFSET
add_hex = $(shell printf 0x%x $$(( $(1) + $(2) )) )
# If PHYS_OFFSET is set, INITRD_PHYS and PARAMS_PHYS can be derived,
# otherwise they must be passed on the command line.
#
# Note: the following conditions must always be true:
# PARAMS_PHYS must be within 4MB of ZRELADDR
# INITRD_PHYS must be in RAM
PARAMS_PHYS := $(call add_hex, $(PHYS_OFFSET), 0x100)
# guess an initrd location if possible
initrd_offset-$(CONFIG_ARCH_FOOTBRIDGE) += 0x00800000
initrd_offset-$(CONFIG_ARCH_SA1100) += 0x00800000
initrd_offset-$(CONFIG_ARCH_RPC) += 0x08000000
INITRD_OFFSET := $(initrd_offset-y)
ifdef INITRD_OFFSET
INITRD_PHYS := $(call add_hex, $(PHYS_OFFSET), $(INITRD_OFFSET))
endif
endif
PHONY += initrd
initrd:
@test "$(PARAMS_PHYS)" != "" || \
(echo bootpImage: You must specify PHYS_OFFSET of PARAMS_PHYS ; exit -1)
@test "$(INITRD_PHYS)" != "" || \
(echo bootpImage: You must specify INITRD_OFFSET or INITRD_PHYS ; exit -1)
@test "$(INITRD)" != "" || \
(echo bootpImage: You must specify INITRD; exit -1)
LDFLAGS_bootp := --no-undefined -X \ LDFLAGS_bootp := --no-undefined -X \
--defsym initrd_phys=$(INITRD_PHYS) \ --defsym initrd_phys=$(INITRD_PHYS) \
--defsym params_phys=$(PARAMS_PHYS) -T --defsym params_phys=$(PARAMS_PHYS) -T
...@@ -24,6 +55,6 @@ $(obj)/bootp: $(src)/bootp.lds $(addprefix $(obj)/,init.o kernel.o initrd.o) FOR ...@@ -24,6 +55,6 @@ $(obj)/bootp: $(src)/bootp.lds $(addprefix $(obj)/,init.o kernel.o initrd.o) FOR
$(obj)/kernel.o: arch/arm/boot/zImage FORCE $(obj)/kernel.o: arch/arm/boot/zImage FORCE
$(obj)/initrd.o: $(INITRD) FORCE $(obj)/initrd.o: initrd $(INITRD) FORCE
PHONY += $(INITRD) PHONY += $(INITRD)
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_ASSABET=y CONFIG_SA1100_ASSABET=y
CONFIG_CMDLINE="mem=32M console=ttySA0,38400n8 initrd=0xc0800000,3M root=/dev/ram" CONFIG_CMDLINE="mem=32M console=ttySA0,38400n8 initrd=0xc0800000,3M root=/dev/ram"
......
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_EXPERT=y CONFIG_EXPERT=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_BADGE4=y CONFIG_SA1100_BADGE4=y
CONFIG_UNUSED_BOARD_FILES=y CONFIG_UNUSED_BOARD_FILES=y
......
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_CERF=y CONFIG_SA1100_CERF=y
CONFIG_SA1100_CERF_FLASH_16MB=y CONFIG_SA1100_CERF_FLASH_16MB=y
......
...@@ -5,6 +5,8 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -5,6 +5,8 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y CONFIG_EXPERT=y
# CONFIG_BASE_FULL is not set # CONFIG_BASE_FULL is not set
# CONFIG_EPOLL is not set # CONFIG_EPOLL is not set
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_COLLIE=y CONFIG_SA1100_COLLIE=y
CONFIG_CMDLINE="noinitrd root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1" CONFIG_CMDLINE="noinitrd root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1"
......
...@@ -4,6 +4,8 @@ CONFIG_LOG_BUF_SHIFT=14 ...@@ -4,6 +4,8 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y CONFIG_EXPERT=y
# CONFIG_HOTPLUG is not set # CONFIG_HOTPLUG is not set
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_FOOTBRIDGE=y CONFIG_ARCH_FOOTBRIDGE=y
CONFIG_ARCH_EBSA285_HOST=y CONFIG_ARCH_EBSA285_HOST=y
CONFIG_ARCH_NETWINDER=y CONFIG_ARCH_NETWINDER=y
......
...@@ -4,6 +4,8 @@ CONFIG_HIGH_RES_TIMERS=y ...@@ -4,6 +4,8 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_PREEMPT=y CONFIG_PREEMPT=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_H3600=y CONFIG_SA1100_H3600=y
# CONFIG_CPU_FREQ_STAT is not set # CONFIG_CPU_FREQ_STAT is not set
......
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_HACKKIT=y CONFIG_SA1100_HACKKIT=y
CONFIG_UNUSED_BOARD_FILES=y CONFIG_UNUSED_BOARD_FILES=y
......
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_SYSFS_DEPRECATED_V2=y CONFIG_SYSFS_DEPRECATED_V2=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_JORNADA720=y CONFIG_SA1100_JORNADA720=y
CONFIG_SA1100_JORNADA720_SSP=y CONFIG_SA1100_JORNADA720_SSP=y
......
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_LART=y CONFIG_SA1100_LART=y
CONFIG_UNUSED_BOARD_FILES=y CONFIG_UNUSED_BOARD_FILES=y
......
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_ASSABET=y CONFIG_SA1100_ASSABET=y
CONFIG_ASSABET_NEPONSET=y CONFIG_ASSABET_NEPONSET=y
......
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_FOOTBRIDGE=y CONFIG_ARCH_FOOTBRIDGE=y
CONFIG_ARCH_NETWINDER=y CONFIG_ARCH_NETWINDER=y
CONFIG_DEPRECATED_PARAM_STRUCT=y CONFIG_DEPRECATED_PARAM_STRUCT=y
......
...@@ -4,6 +4,8 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -4,6 +4,8 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y CONFIG_EXPERT=y
# CONFIG_HOTPLUG is not set # CONFIG_HOTPLUG is not set
# CONFIG_SHMEM is not set # CONFIG_SHMEM is not set
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_PLEB=y CONFIG_SA1100_PLEB=y
CONFIG_UNUSED_BOARD_FILES=y CONFIG_UNUSED_BOARD_FILES=y
......
...@@ -4,6 +4,8 @@ CONFIG_LOG_BUF_SHIFT=14 ...@@ -4,6 +4,8 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_RPC=y CONFIG_ARCH_RPC=y
CONFIG_CPU_SA110=y CONFIG_CPU_SA110=y
CONFIG_FPE_NWFPE=y CONFIG_FPE_NWFPE=y
......
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_SHANNON=y CONFIG_SA1100_SHANNON=y
CONFIG_UNUSED_BOARD_FILES=y CONFIG_UNUSED_BOARD_FILES=y
......
...@@ -5,6 +5,8 @@ CONFIG_LOG_BUF_SHIFT=14 ...@@ -5,6 +5,8 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_EXPERT=y CONFIG_EXPERT=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_EXTRA_PASS=y CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y CONFIG_ARCH_SA1100=y
CONFIG_SA1100_SIMPAD=y CONFIG_SA1100_SIMPAD=y
CONFIG_UNUSED_BOARD_FILES=y CONFIG_UNUSED_BOARD_FILES=y
......
...@@ -106,7 +106,7 @@ extern void set_dma_sg(unsigned int chan, struct scatterlist *sg, int nr_sg); ...@@ -106,7 +106,7 @@ extern void set_dma_sg(unsigned int chan, struct scatterlist *sg, int nr_sg);
*/ */
extern void __set_dma_addr(unsigned int chan, void *addr); extern void __set_dma_addr(unsigned int chan, void *addr);
#define set_dma_addr(chan, addr) \ #define set_dma_addr(chan, addr) \
__set_dma_addr(chan, (void *)__bus_to_virt(addr)) __set_dma_addr(chan, (void *)isa_bus_to_virt(addr))
/* Set the DMA byte count for this channel /* Set the DMA byte count for this channel
* *
......
...@@ -22,6 +22,13 @@ ...@@ -22,6 +22,13 @@
#define DC21285_IO(x) (x) #define DC21285_IO(x) (x)
#endif #endif
/*
* The footbridge is programmed to expose the system RAM at 0xe0000000.
* The requirement is that the RAM isn't placed at bus address 0, which
* would clash with VGA cards.
*/
#define BUS_OFFSET 0xe0000000
#define CSR_PCICMD DC21285_IO(0x0004) #define CSR_PCICMD DC21285_IO(0x0004)
#define CSR_CLASSREV DC21285_IO(0x0008) #define CSR_CLASSREV DC21285_IO(0x0008)
#define CSR_PCICACHELINESIZE DC21285_IO(0x000c) #define CSR_PCICACHELINESIZE DC21285_IO(0x000c)
...@@ -81,19 +88,6 @@ ...@@ -81,19 +88,6 @@
#define SA110_CNTL_XCSDIR(x) ((x)<<28) #define SA110_CNTL_XCSDIR(x) ((x)<<28)
#define SA110_CNTL_PCICFN (1 << 31) #define SA110_CNTL_PCICFN (1 << 31)
/*
* footbridge_cfn_mode() is used when we want
* to check whether we are the central function
*/
#define __footbridge_cfn_mode() (*CSR_SA110_CNTL & SA110_CNTL_PCICFN)
#if defined(CONFIG_FOOTBRIDGE_HOST) && defined(CONFIG_FOOTBRIDGE_ADDIN)
#define footbridge_cfn_mode() __footbridge_cfn_mode()
#elif defined(CONFIG_FOOTBRIDGE_HOST)
#define footbridge_cfn_mode() (1)
#else
#define footbridge_cfn_mode() (0)
#endif
#define CSR_PCIADDR_EXTN DC21285_IO(0x0140) #define CSR_PCIADDR_EXTN DC21285_IO(0x0140)
#define CSR_PREFETCHMEMRANGE DC21285_IO(0x0144) #define CSR_PREFETCHMEMRANGE DC21285_IO(0x0144)
#define CSR_XBUS_CYCLE DC21285_IO(0x0148) #define CSR_XBUS_CYCLE DC21285_IO(0x0148)
......
...@@ -44,8 +44,3 @@ struct dma_struct { ...@@ -44,8 +44,3 @@ struct dma_struct {
* isa_dma_add - add an ISA-style DMA channel * isa_dma_add - add an ISA-style DMA channel
*/ */
extern int isa_dma_add(unsigned int, dma_t *dma); extern int isa_dma_add(unsigned int, dma_t *dma);
/*
* Add the ISA DMA controller. Always takes channels 0-7.
*/
extern void isa_init_dma(void);
...@@ -369,17 +369,6 @@ static inline unsigned long __virt_to_idmap(unsigned long x) ...@@ -369,17 +369,6 @@ static inline unsigned long __virt_to_idmap(unsigned long x)
#define virt_to_idmap(x) __virt_to_idmap((unsigned long)(x)) #define virt_to_idmap(x) __virt_to_idmap((unsigned long)(x))
/*
* Virtual <-> DMA view memory address translations
* Again, these are *only* valid on the kernel direct mapped RAM
* memory. Use of these is *deprecated* (and that doesn't mean
* use the __ prefixed forms instead.) See dma-mapping.h.
*/
#ifndef __virt_to_bus
#define __virt_to_bus __virt_to_phys
#define __bus_to_virt __phys_to_virt
#endif
/* /*
* Conversion between a struct page and a physical address. * Conversion between a struct page and a physical address.
* *
......
...@@ -45,7 +45,6 @@ obj-$(CONFIG_ISA_DMA_API) += dma.o ...@@ -45,7 +45,6 @@ obj-$(CONFIG_ISA_DMA_API) += dma.o
obj-$(CONFIG_FIQ) += fiq.o fiqasm.o obj-$(CONFIG_FIQ) += fiq.o fiqasm.o
obj-$(CONFIG_MODULES) += armksyms.o module.o obj-$(CONFIG_MODULES) += armksyms.o module.o
obj-$(CONFIG_ARM_MODULE_PLTS) += module-plts.o obj-$(CONFIG_ARM_MODULE_PLTS) += module-plts.o
obj-$(CONFIG_ISA_DMA) += dma-isa.o
obj-$(CONFIG_PCI) += bios32.o isa.o obj-$(CONFIG_PCI) += bios32.o isa.o
obj-$(CONFIG_ARM_CPU_SUSPEND) += sleep.o suspend.o obj-$(CONFIG_ARM_CPU_SUSPEND) += sleep.o suspend.o
obj-$(CONFIG_HIBERNATION) += hibernate.o obj-$(CONFIG_HIBERNATION) += hibernate.o
......
...@@ -194,14 +194,12 @@ const struct machine_desc * __init setup_machine_fdt(void *dt_virt) ...@@ -194,14 +194,12 @@ const struct machine_desc * __init setup_machine_fdt(void *dt_virt)
{ {
const struct machine_desc *mdesc, *mdesc_best = NULL; const struct machine_desc *mdesc, *mdesc_best = NULL;
#if defined(CONFIG_ARCH_MULTIPLATFORM) || defined(CONFIG_ARM_SINGLE_ARMV7M)
DT_MACHINE_START(GENERIC_DT, "Generic DT based system") DT_MACHINE_START(GENERIC_DT, "Generic DT based system")
.l2c_aux_val = 0x0, .l2c_aux_val = 0x0,
.l2c_aux_mask = ~0x0, .l2c_aux_mask = ~0x0,
MACHINE_END MACHINE_END
mdesc_best = &__mach_desc_GENERIC_DT; mdesc_best = &__mach_desc_GENERIC_DT;
#endif
if (!dt_virt || !early_init_dt_verify(dt_virt)) if (!dt_virt || !early_init_dt_verify(dt_virt))
return NULL; return NULL;
......
...@@ -19,9 +19,9 @@ config MACH_ASPEED_G4 ...@@ -19,9 +19,9 @@ config MACH_ASPEED_G4
select PINCTRL_ASPEED_G4 select PINCTRL_ASPEED_G4
select FTTMR010_TIMER select FTTMR010_TIMER
help help
Say yes if you intend to run on an Aspeed ast2400 or similar Say yes if you intend to run on an Aspeed ast2400 or similar
fourth generation BMCs, such as those used by OpenPower Power8 fourth generation BMCs, such as those used by OpenPower Power8
systems. systems.
config MACH_ASPEED_G5 config MACH_ASPEED_G5
bool "Aspeed SoC 5th Generation" bool "Aspeed SoC 5th Generation"
...@@ -29,8 +29,8 @@ config MACH_ASPEED_G5 ...@@ -29,8 +29,8 @@ config MACH_ASPEED_G5
select PINCTRL_ASPEED_G5 select PINCTRL_ASPEED_G5
select FTTMR010_TIMER select FTTMR010_TIMER
help help
Say yes if you intend to run on an Aspeed ast2500 or similar Say yes if you intend to run on an Aspeed ast2500 or similar
fifth generation Aspeed BMCs. fifth generation Aspeed BMCs.
config MACH_ASPEED_G6 config MACH_ASPEED_G6
bool "Aspeed SoC 6th Generation" bool "Aspeed SoC 6th Generation"
...@@ -40,7 +40,7 @@ config MACH_ASPEED_G6 ...@@ -40,7 +40,7 @@ config MACH_ASPEED_G6
select ARM_GIC select ARM_GIC
select HAVE_ARM_ARCH_TIMER select HAVE_ARM_ARCH_TIMER
help help
Say yes if you intend to run on an Aspeed ast2600 or similar Say yes if you intend to run on an Aspeed ast2600 or similar
sixth generation Aspeed BMCs. sixth generation Aspeed BMCs.
endif endif
# SPDX-License-Identifier: GPL-2.0-only
# Empty file waiting for deletion once Makefile.boot isn't needed any more.
# Patch waits for application at
# https://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
# SPDX-License-Identifier: GPL-2.0
zreladdr-$(CONFIG_ARCH_DAVINCI_DA8XX) += 0xc0008000
params_phys-$(CONFIG_ARCH_DAVINCI_DA8XX) := 0xc0000100
initrd_phys-$(CONFIG_ARCH_DAVINCI_DA8XX) := 0xc0800000
zreladdr-$(CONFIG_ARCH_DAVINCI_DMx) += 0x80008000
params_phys-$(CONFIG_ARCH_DAVINCI_DMx) := 0x80000100
initrd_phys-$(CONFIG_ARCH_DAVINCI_DMx) := 0x80800000
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-orion/include ccflags-y := -I$(srctree)/arch/arm/plat-orion/include
obj-y += common.o obj-y += common.o
obj-$(CONFIG_DOVE_LEGACY) += irq.o mpp.o obj-$(CONFIG_DOVE_LEGACY) += irq.o mpp.o
......
# SPDX-License-Identifier: GPL-2.0-only
zreladdr-y += 0x00008000
params_phys-y := 0x00000100
initrd_phys-y := 0x00800000
# SPDX-License-Identifier: GPL-2.0-only
# Empty file waiting for deletion once Makefile.boot isn't needed any more.
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
if ARCH_FOOTBRIDGE menuconfig ARCH_FOOTBRIDGE
bool "FootBridge Implementations"
depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5)
depends on !(ARCH_MOXART || ARCH_GEMINI || ARCH_SA1100)
depends on ATAGS
depends on CPU_LITTLE_ENDIAN
depends on MMU
select ARCH_NO_SG_CHAIN
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.
menu "Footbridge Implementations" if ARCH_FOOTBRIDGE
config ARCH_CATS config ARCH_CATS
bool "CATS" bool "CATS"
depends on UNUSED_BOARD_FILES depends on UNUSED_BOARD_FILES
select CLKEVT_I8253 select CLKEVT_I8253
select CLKSRC_I8253 select CLKSRC_I8253
select FOOTBRIDGE_HOST
select ISA select ISA
select ISA_DMA
select FORCE_PCI select FORCE_PCI
help help
Say Y here if you intend to run this kernel on the CATS. Say Y here if you intend to run this kernel on the CATS.
Saying N will reduce the size of the Footbridge kernel. Saying N will reduce the size of the Footbridge kernel.
config ARCH_EBSA285_ADDIN
bool "EBSA285 (addin mode)"
select ARCH_EBSA285
select FOOTBRIDGE_ADDIN
help
Say Y here if you intend to run this kernel on the EBSA285 card
in addin mode.
Saying N will reduce the size of the Footbridge kernel.
config ARCH_EBSA285_HOST config ARCH_EBSA285_HOST
bool "EBSA285 (host mode)" bool "EBSA285 (host mode)"
select ARCH_EBSA285 select ARCH_EBSA285
select FOOTBRIDGE_HOST
select ISA select ISA
select ISA_DMA
select ARCH_MAY_HAVE_PC_FDC select ARCH_MAY_HAVE_PC_FDC
select FORCE_PCI select FORCE_PCI
help help
...@@ -45,9 +44,7 @@ config ARCH_NETWINDER ...@@ -45,9 +44,7 @@ config ARCH_NETWINDER
bool "NetWinder" bool "NetWinder"
select CLKEVT_I8253 select CLKEVT_I8253
select CLKSRC_I8253 select CLKSRC_I8253
select FOOTBRIDGE_HOST
select ISA select ISA
select ISA_DMA
select FORCE_PCI select FORCE_PCI
help help
Say Y here if you intend to run this kernel on the Rebel.COM Say Y here if you intend to run this kernel on the Rebel.COM
...@@ -57,23 +54,12 @@ config ARCH_NETWINDER ...@@ -57,23 +54,12 @@ config ARCH_NETWINDER
Saying N will reduce the size of the Footbridge kernel. Saying N will reduce the size of the Footbridge kernel.
endmenu
# Footbridge support # Footbridge support
config FOOTBRIDGE config FOOTBRIDGE
select ARCH_HAS_PHYS_TO_DMA def_bool y
bool
# Footbridge in host mode
config FOOTBRIDGE_HOST
bool
select ARCH_MIGHT_HAVE_PC_SERIO select ARCH_MIGHT_HAVE_PC_SERIO
select ISA_DMA_API
# Footbridge in addin mode
config FOOTBRIDGE_ADDIN
bool
# EBSA285 board in either host or addin mode
config ARCH_EBSA285 config ARCH_EBSA285
bool bool
......
...@@ -5,11 +5,11 @@ ...@@ -5,11 +5,11 @@
# Object file lists. # Object file lists.
obj-y := common.o dma.o isa-irq.o obj-y := common.o isa-irq.o isa.o isa-rtc.o dma-isa.o
pci-y += dc21285.o pci-y += dc21285.o
pci-$(CONFIG_ARCH_CATS) += cats-pci.o pci-$(CONFIG_ARCH_CATS) += cats-pci.o
pci-$(CONFIG_ARCH_EBSA285_HOST) += ebsa285-pci.o pci-$(CONFIG_ARCH_EBSA285) += ebsa285-pci.o
pci-$(CONFIG_ARCH_NETWINDER) += netwinder-pci.o pci-$(CONFIG_ARCH_NETWINDER) += netwinder-pci.o
obj-$(CONFIG_ARCH_CATS) += cats-hw.o isa-timer.o obj-$(CONFIG_ARCH_CATS) += cats-hw.o isa-timer.o
...@@ -18,4 +18,3 @@ obj-$(CONFIG_ARCH_NETWINDER) += netwinder-hw.o isa-timer.o ...@@ -18,4 +18,3 @@ obj-$(CONFIG_ARCH_NETWINDER) += netwinder-hw.o isa-timer.o
obj-$(CONFIG_PCI) +=$(pci-y) obj-$(CONFIG_PCI) +=$(pci-y)
obj-$(CONFIG_ISA) += isa.o isa-rtc.o
# SPDX-License-Identifier: GPL-2.0-only
zreladdr-y += 0x00008000
params_phys-y := 0x00000100
initrd_phys-y := 0x00800000
...@@ -198,9 +198,6 @@ void __init footbridge_init_irq(void) ...@@ -198,9 +198,6 @@ void __init footbridge_init_irq(void)
__fb_init_irq(); __fb_init_irq();
if (!footbridge_cfn_mode())
return;
if (machine_is_ebsa285()) if (machine_is_ebsa285())
/* The following is dependent on which slot /* The following is dependent on which slot
* you plug the Southbridge card into. We * you plug the Southbridge card into. We
...@@ -221,21 +218,13 @@ void __init footbridge_init_irq(void) ...@@ -221,21 +218,13 @@ void __init footbridge_init_irq(void)
* commented out since there is a "No Fix" problem with it. Not mapping * commented out since there is a "No Fix" problem with it. Not mapping
* it means that we have extra bullet protection on our feet. * it means that we have extra bullet protection on our feet.
*/ */
static struct map_desc fb_common_io_desc[] __initdata = { static struct map_desc ebsa285_host_io_desc[] __initdata = {
{ {
.virtual = ARMCSR_BASE, .virtual = ARMCSR_BASE,
.pfn = __phys_to_pfn(DC21285_ARMCSR_BASE), .pfn = __phys_to_pfn(DC21285_ARMCSR_BASE),
.length = ARMCSR_SIZE, .length = ARMCSR_SIZE,
.type = MT_DEVICE, .type = MT_DEVICE,
} },
};
/*
* The mapping when the footbridge is in host mode. We don't map any of
* this when we are in add-in mode.
*/
static struct map_desc ebsa285_host_io_desc[] __initdata = {
#if defined(CONFIG_ARCH_FOOTBRIDGE) && defined(CONFIG_FOOTBRIDGE_HOST)
{ {
.virtual = PCIMEM_BASE, .virtual = PCIMEM_BASE,
.pfn = __phys_to_pfn(DC21285_PCI_MEM), .pfn = __phys_to_pfn(DC21285_PCI_MEM),
...@@ -257,26 +246,12 @@ static struct map_desc ebsa285_host_io_desc[] __initdata = { ...@@ -257,26 +246,12 @@ static struct map_desc ebsa285_host_io_desc[] __initdata = {
.length = PCIIACK_SIZE, .length = PCIIACK_SIZE,
.type = MT_DEVICE, .type = MT_DEVICE,
}, },
#endif
}; };
void __init footbridge_map_io(void) void __init footbridge_map_io(void)
{ {
/* iotable_init(ebsa285_host_io_desc, ARRAY_SIZE(ebsa285_host_io_desc));
* Set up the common mapping first; we need this to pci_map_io_early(__phys_to_pfn(DC21285_PCI_IO));
* determine whether we're in host mode or not.
*/
iotable_init(fb_common_io_desc, ARRAY_SIZE(fb_common_io_desc));
/*
* Now, work out what we've got to map in addition on this
* platform.
*/
if (footbridge_cfn_mode()) {
iotable_init(ebsa285_host_io_desc, ARRAY_SIZE(ebsa285_host_io_desc));
pci_map_io_early(__phys_to_pfn(DC21285_PCI_IO));
}
vga_base = PCIMEM_BASE; vga_base = PCIMEM_BASE;
} }
...@@ -306,49 +281,3 @@ void footbridge_restart(enum reboot_mode mode, const char *cmd) ...@@ -306,49 +281,3 @@ void footbridge_restart(enum reboot_mode mode, const char *cmd)
*CSR_SA110_CNTL |= (1 << 13); *CSR_SA110_CNTL |= (1 << 13);
} }
} }
#ifdef CONFIG_FOOTBRIDGE_ADDIN
static inline unsigned long fb_bus_sdram_offset(void)
{
return *CSR_PCISDRAMBASE & 0xfffffff0;
}
/*
* These two functions convert virtual addresses to PCI addresses and PCI
* addresses to virtual addresses. Note that it is only legal to use these
* on memory obtained via get_zeroed_page or kmalloc.
*/
unsigned long __virt_to_bus(unsigned long res)
{
WARN_ON(res < PAGE_OFFSET || res >= (unsigned long)high_memory);
return res + (fb_bus_sdram_offset() - PAGE_OFFSET);
}
EXPORT_SYMBOL(__virt_to_bus);
unsigned long __bus_to_virt(unsigned long res)
{
res = res - (fb_bus_sdram_offset() - PAGE_OFFSET);
WARN_ON(res < PAGE_OFFSET || res >= (unsigned long)high_memory);
return res;
}
EXPORT_SYMBOL(__bus_to_virt);
#else
static inline unsigned long fb_bus_sdram_offset(void)
{
return BUS_OFFSET;
}
#endif /* CONFIG_FOOTBRIDGE_ADDIN */
dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr)
{
return paddr + (fb_bus_sdram_offset() - PHYS_OFFSET);
}
phys_addr_t dma_to_phys(struct device *dev, dma_addr_t dev_addr)
{
return dev_addr - (fb_bus_sdram_offset() - PHYS_OFFSET);
}
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
* Copyright (C) 1998-2001 Russell King * Copyright (C) 1998-2001 Russell King
* Copyright (C) 1998-2000 Phil Blundell * Copyright (C) 1998-2000 Phil Blundell
*/ */
#include <linux/dma-map-ops.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
...@@ -241,13 +242,26 @@ static irqreturn_t dc21285_parity_irq(int irq, void *dev_id) ...@@ -241,13 +242,26 @@ static irqreturn_t dc21285_parity_irq(int irq, void *dev_id)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static int dc21285_pci_bus_notifier(struct notifier_block *nb,
unsigned long action,
void *data)
{
if (action != BUS_NOTIFY_ADD_DEVICE)
return NOTIFY_DONE;
dma_direct_set_offset(data, PHYS_OFFSET, BUS_OFFSET, SZ_256M);
return NOTIFY_OK;
}
static struct notifier_block dc21285_pci_bus_nb = {
.notifier_call = dc21285_pci_bus_notifier,
};
int __init dc21285_setup(int nr, struct pci_sys_data *sys) int __init dc21285_setup(int nr, struct pci_sys_data *sys)
{ {
struct resource *res; struct resource *res;
if (nr || !footbridge_cfn_mode())
return 0;
res = kcalloc(2, sizeof(struct resource), GFP_KERNEL); res = kcalloc(2, sizeof(struct resource), GFP_KERNEL);
if (!res) { if (!res) {
printk("out of memory for root bus resources"); printk("out of memory for root bus resources");
...@@ -269,6 +283,8 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys) ...@@ -269,6 +283,8 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys)
pci_add_resource_offset(&sys->resources, &res[0], sys->mem_offset); pci_add_resource_offset(&sys->resources, &res[0], sys->mem_offset);
pci_add_resource_offset(&sys->resources, &res[1], sys->mem_offset); pci_add_resource_offset(&sys->resources, &res[1], sys->mem_offset);
bus_register_notifier(&pci_bus_type, &dc21285_pci_bus_nb);
return 1; return 1;
} }
...@@ -278,7 +294,6 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys) ...@@ -278,7 +294,6 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys)
void __init dc21285_preinit(void) void __init dc21285_preinit(void)
{ {
unsigned int mem_size, mem_mask; unsigned int mem_size, mem_mask;
int cfn_mode;
pcibios_min_mem = 0x81000000; pcibios_min_mem = 0x81000000;
...@@ -298,21 +313,15 @@ void __init dc21285_preinit(void) ...@@ -298,21 +313,15 @@ void __init dc21285_preinit(void)
*CSR_CSRBASEOFFSET = 0; *CSR_CSRBASEOFFSET = 0;
*CSR_PCIADDR_EXTN = 0; *CSR_PCIADDR_EXTN = 0;
cfn_mode = __footbridge_cfn_mode();
printk(KERN_INFO "PCI: DC21285 footbridge, revision %02lX, in " printk(KERN_INFO "PCI: DC21285 footbridge, revision %02lX, in "
"%s mode\n", *CSR_CLASSREV & 0xff, cfn_mode ? "central function mode\n", *CSR_CLASSREV & 0xff);
"central function" : "addin");
/*
if (footbridge_cfn_mode()) { * Clear any existing errors - we aren't
/* * interested in historical data...
* Clear any existing errors - we aren't */
* interested in historical data... *CSR_SA110_CNTL = (*CSR_SA110_CNTL & 0xffffde07) | SA110_CNTL_RXSERR;
*/ *CSR_PCICMD = (*CSR_PCICMD & 0xffff) | PCICMD_ERROR_BITS;
*CSR_SA110_CNTL = (*CSR_SA110_CNTL & 0xffffde07) |
SA110_CNTL_RXSERR;
*CSR_PCICMD = (*CSR_PCICMD & 0xffff) | PCICMD_ERROR_BITS;
}
timer_setup(&serr_timer, dc21285_enable_error, 0); timer_setup(&serr_timer, dc21285_enable_error, 0);
timer_setup(&perr_timer, dc21285_enable_error, 0); timer_setup(&perr_timer, dc21285_enable_error, 0);
...@@ -331,29 +340,18 @@ void __init dc21285_preinit(void) ...@@ -331,29 +340,18 @@ void __init dc21285_preinit(void)
dc21285_request_irq(IRQ_PCI_DPERR, dc21285_dparity_irq, 0, dc21285_request_irq(IRQ_PCI_DPERR, dc21285_dparity_irq, 0,
"PCI data parity", NULL); "PCI data parity", NULL);
if (cfn_mode) { /*
/* * Map our SDRAM at a known address in PCI space, just in case
* Map our SDRAM at a known address in PCI space, just in case * the firmware had other ideas. Using a nonzero base is
* the firmware had other ideas. Using a nonzero base is * necessary, since some VGA cards forcefully use PCI addresses
* necessary, since some VGA cards forcefully use PCI addresses * in the range 0x000a0000 to 0x000c0000. (eg, S3 cards).
* in the range 0x000a0000 to 0x000c0000. (eg, S3 cards). */
*/ *CSR_PCICSRBASE = 0xf4000000;
*CSR_PCICSRBASE = 0xf4000000; *CSR_PCICSRIOBASE = 0;
*CSR_PCICSRIOBASE = 0; *CSR_PCISDRAMBASE = BUS_OFFSET;
*CSR_PCISDRAMBASE = __virt_to_bus(PAGE_OFFSET); *CSR_PCIROMBASE = 0;
*CSR_PCIROMBASE = 0; *CSR_PCICMD = PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER |
*CSR_PCICMD = PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | PCI_COMMAND_INVALIDATE | PCICMD_ERROR_BITS;
PCI_COMMAND_INVALIDATE | PCICMD_ERROR_BITS;
} else if (footbridge_cfn_mode() != 0) {
/*
* If we are not compiled to accept "add-in" mode, then
* we are using a constant virt_to_bus translation which
* can not hope to cater for the way the host BIOS has
* set up the machine.
*/
panic("PCI: this kernel is compiled for central "
"function mode only");
}
} }
void __init dc21285_postinit(void) void __init dc21285_postinit(void)
......
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* /*
* linux/arch/arm/kernel/dma-isa.c
*
* Copyright (C) 1999-2000 Russell King * Copyright (C) 1999-2000 Russell King
* *
* ISA DMA primitives * ISA DMA primitives
...@@ -13,6 +11,7 @@ ...@@ -13,6 +11,7 @@
* arch/arm/kernel/dma-ebsa285.c * arch/arm/kernel/dma-ebsa285.c
* Copyright (C) 1998 Phil Blundell * Copyright (C) 1998 Phil Blundell
*/ */
#include <linux/dma-map-ops.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
...@@ -20,6 +19,7 @@ ...@@ -20,6 +19,7 @@
#include <asm/dma.h> #include <asm/dma.h>
#include <asm/mach/dma.h> #include <asm/mach/dma.h>
#include <asm/hardware/dec21285.h>
#define ISA_DMA_MASK 0 #define ISA_DMA_MASK 0
#define ISA_DMA_MODE 1 #define ISA_DMA_MODE 1
...@@ -157,7 +157,7 @@ static dma_t isa_dma[8]; ...@@ -157,7 +157,7 @@ static dma_t isa_dma[8];
/* /*
* ISA DMA always starts at channel 0 * ISA DMA always starts at channel 0
*/ */
void __init isa_init_dma(void) static int __init isa_dma_init(void)
{ {
/* /*
* Try to autodetect presence of an ISA DMA controller. * Try to autodetect presence of an ISA DMA controller.
...@@ -222,4 +222,9 @@ void __init isa_init_dma(void) ...@@ -222,4 +222,9 @@ void __init isa_init_dma(void)
request_dma(DMA_ISA_CASCADE, "cascade"); request_dma(DMA_ISA_CASCADE, "cascade");
} }
dma_direct_set_offset(&isa_dma_dev, PHYS_OFFSET, BUS_OFFSET, SZ_256M);
return 0;
} }
core_initcall(isa_dma_init);
// SPDX-License-Identifier: GPL-2.0
/*
* linux/arch/arm/kernel/dma-ebsa285.c
*
* Copyright (C) 1998 Phil Blundell
*
* DMA functions specific to EBSA-285/CATS architectures
*
* Changelog:
* 09-Nov-1998 RMK Split out ISA DMA functions to dma-isa.c
* 17-Mar-1999 RMK Allow any EBSA285-like architecture to have
* ISA DMA controllers.
*/
#include <linux/init.h>
#include <linux/io.h>
#include <linux/spinlock.h>
#include <linux/scatterlist.h>
#include <asm/dma.h>
#include <asm/mach/dma.h>
#include <asm/hardware/dec21285.h>
#if 0
static int fb_dma_request(unsigned int chan, dma_t *dma)
{
return -EINVAL;
}
static void fb_dma_enable(unsigned int chan, dma_t *dma)
{
}
static void fb_dma_disable(unsigned int chan, dma_t *dma)
{
}
static struct dma_ops fb_dma_ops = {
.type = "fb",
.request = fb_dma_request,
.enable = fb_dma_enable,
.disable = fb_dma_disable,
};
#endif
static int __init fb_dma_init(void)
{
#if 0
dma[_DC21285_DMA(0)].d_ops = &fb_dma_ops;
dma[_DC21285_DMA(1)].d_ops = &fb_dma_ops;
#endif
#ifdef CONFIG_ISA_DMA
if (footbridge_cfn_mode())
isa_init_dma();
#endif
return 0;
}
core_initcall(fb_dma_init);
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef MACH_FOOTBRIDGE_DMA_DIRECT_H
#define MACH_FOOTBRIDGE_DMA_DIRECT_H 1
dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr);
phys_addr_t dma_to_phys(struct device *dev, dma_addr_t dev_addr);
#endif /* MACH_FOOTBRIDGE_DMA_DIRECT_H */
...@@ -10,17 +10,9 @@ ...@@ -10,17 +10,9 @@
#ifndef __ASM_ARCH_DMA_H #ifndef __ASM_ARCH_DMA_H
#define __ASM_ARCH_DMA_H #define __ASM_ARCH_DMA_H
/* #define MAX_DMA_CHANNELS 8
* The 21285 has two internal DMA channels; we call these 8 and 9.
* On CATS hardware we have an additional eight ISA dma channels
* numbered 0..7.
*/
#define _ISA_DMA(x) (0+(x))
#define _DC21285_DMA(x) (8+(x))
#define MAX_DMA_CHANNELS 10
#define DMA_FLOPPY _ISA_DMA(2) #define DMA_FLOPPY (2)
#define DMA_ISA_CASCADE _ISA_DMA(4) #define DMA_ISA_CASCADE (4)
#endif /* _ASM_ARCH_DMA_H */ #endif /* _ASM_ARCH_DMA_H */
...@@ -16,37 +16,6 @@ ...@@ -16,37 +16,6 @@
#ifndef __ASM_ARCH_MEMORY_H #ifndef __ASM_ARCH_MEMORY_H
#define __ASM_ARCH_MEMORY_H #define __ASM_ARCH_MEMORY_H
#if defined(CONFIG_FOOTBRIDGE_ADDIN)
/*
* If we may be using add-in footbridge mode, then we must
* use the out-of-line translation that makes use of the
* PCI BAR
*/
#ifndef __ASSEMBLY__
extern unsigned long __virt_to_bus(unsigned long);
extern unsigned long __bus_to_virt(unsigned long);
#endif
#define __virt_to_bus __virt_to_bus
#define __bus_to_virt __bus_to_virt
#elif defined(CONFIG_FOOTBRIDGE_HOST)
/*
* The footbridge is programmed to expose the system RAM at 0xe0000000.
* The requirement is that the RAM isn't placed at bus address 0, which
* would clash with VGA cards.
*/
#define BUS_OFFSET 0xe0000000
#define __virt_to_bus(x) ((x) + (BUS_OFFSET - PAGE_OFFSET))
#define __bus_to_virt(x) ((x) - (BUS_OFFSET - PAGE_OFFSET))
#else
#error "Undefined footbridge mode"
#endif
/* /*
* Cache flushing area. * Cache flushing area.
*/ */
......
...@@ -79,16 +79,12 @@ static int __init footbridge_isa_init(void) ...@@ -79,16 +79,12 @@ static int __init footbridge_isa_init(void)
{ {
int err = 0; int err = 0;
if (!footbridge_cfn_mode())
return 0;
/* Personal server doesn't have RTC */ /* Personal server doesn't have RTC */
if (!machine_is_personal_server()) { isa_rtc_init();
isa_rtc_init(); err = platform_device_register(&rtc_device);
err = platform_device_register(&rtc_device); if (err)
if (err) printk(KERN_ERR "Unable to register RTC device: %d\n", err);
printk(KERN_ERR "Unable to register RTC device: %d\n", err);
}
err = platform_device_register(&serial_device); err = platform_device_register(&serial_device);
if (err) if (err)
printk(KERN_ERR "Unable to register serial device: %d\n", err); printk(KERN_ERR "Unable to register serial device: %d\n", err);
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
menuconfig ARCH_MXC menuconfig ARCH_MXC
bool "Freescale i.MX family" bool "Freescale i.MX family"
depends on (ARCH_MULTI_V4_V5 && CPU_LITTLE_ENDIAN) || \ depends on ((ARCH_MULTI_V4T || ARCH_MULTI_V5) && CPU_LITTLE_ENDIAN) || \
ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M
select CLKSRC_IMX_GPT select CLKSRC_IMX_GPT
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
......
# SPDX-License-Identifier: GPL-2.0-only
zreladdr-y += 0xa0008000
params_phys-y := 0xa0000100
initrd_phys-y := 0xa0800000
# SPDX-License-Identifier: GPL-2.0-only
# Empty file waiting for deletion once Makefile.boot isn't needed any more.
# Patch waits for application at
# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
# SPDX-License-Identifier: GPL-2.0-only
zreladdr-y += 0x80008000
params_phys-y := 0x80000100
initrd_phys-y := 0x82000000
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-orion/include ccflags-y := -I$(srctree)/arch/arm/plat-orion/include
obj-y += common.o mpp.o irq.o pcie.o obj-y += common.o mpp.o irq.o pcie.o
obj-$(CONFIG_MACH_DB78X00_BP) += db78x00-bp-setup.o obj-$(CONFIG_MACH_DB78X00_BP) += db78x00-bp-setup.o
......
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-orion/include ccflags-y := -I$(srctree)/arch/arm/plat-orion/include
AFLAGS_coherency_ll.o := -Wa,-march=armv7-a AFLAGS_coherency_ll.o := -Wa,-march=armv7-a
CFLAGS_pmsu.o := -march=armv7-a CFLAGS_pmsu.o := -march=armv7-a
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config ARCH_NSPIRE config ARCH_NSPIRE
bool "TI-NSPIRE based" bool "TI-NSPIRE based"
depends on ARCH_MULTI_V4_V5 depends on ARCH_MULTI_V4T
depends on CPU_LITTLE_ENDIAN depends on CPU_LITTLE_ENDIAN
select CPU_ARM926T select CPU_ARM926T
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
......
# SPDX-License-Identifier: GPL-2.0-only
zreladdr-y += 0x10008000
params_phys-y := 0x10000100
initrd_phys-y := 0x10800000
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-orion/include ccflags-y := -I$(srctree)/arch/arm/plat-orion/include
obj-y += common.o pci.o irq.o mpp.o obj-y += common.o pci.o irq.o mpp.o
obj-$(CONFIG_MACH_DB88F5281) += db88f5281-setup.o obj-$(CONFIG_MACH_DB88F5281) += db88f5281-setup.o
......
config ARCH_RPC
bool "RiscPC"
depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5)
depends on !(ARCH_FOOTBRIDGE || ARCH_SA1100 || ARCH_MOXART || ARCH_GEMINI)
depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
depends on CPU_LITTLE_ENDIAN
depends on ATAGS
depends on MMU
select ARCH_ACORN
select ARCH_MAY_HAVE_PC_FDC
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
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.
# SPDX-License-Identifier: GPL-2.0-only
zreladdr-y += 0x10008000
params_phys-y := 0x10000100
initrd_phys-y := 0x18000000
# SPDX-License-Identifier: GPL-2.0
ifeq ($(CONFIG_PM_H1940),y)
zreladdr-y += 0x30108000
params_phys-y := 0x30100100
else
zreladdr-y += 0x30008000
params_phys-y := 0x30000100
endif
...@@ -33,8 +33,6 @@ extern struct platform_device s3c64xx_device_onenand1; ...@@ -33,8 +33,6 @@ extern struct platform_device s3c64xx_device_onenand1;
extern struct platform_device s3c64xx_device_pcm0; extern struct platform_device s3c64xx_device_pcm0;
extern struct platform_device s3c64xx_device_pcm1; extern struct platform_device s3c64xx_device_pcm1;
extern struct platform_device s3c64xx_device_spi0; extern struct platform_device s3c64xx_device_spi0;
extern struct platform_device s3c64xx_device_spi1;
extern struct platform_device s3c64xx_device_spi2;
extern struct platform_device s3c_device_adc; extern struct platform_device s3c_device_adc;
extern struct platform_device s3c_device_cfcon; extern struct platform_device s3c_device_cfcon;
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
if ARCH_SA1100 menuconfig ARCH_SA1100
bool "SA11x0 Implementations"
depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5)
depends on !(ARCH_MOXART || ARCH_GEMINI)
depends on ATAGS
depends on CPU_LITTLE_ENDIAN
depends on MMU
select ARCH_NO_SG_CHAIN
select ARCH_MTD_XIP
select CLKSRC_MMIO
select CLKSRC_PXA
select CPU_FREQ
select CPU_SA1100
select GPIOLIB
select IRQ_DOMAIN
select ISA
select NEED_MACH_MEMORY_H
help
Support for StrongARM 11x0 based boards.
menu "SA11x0 Implementations" if ARCH_SA1100
config SA1100_ASSABET config SA1100_ASSABET
bool "Assabet" bool "Assabet"
...@@ -179,7 +197,4 @@ config SA1100_SSP ...@@ -179,7 +197,4 @@ config SA1100_SSP
This isn't for audio support, but for attached sensors and This isn't for audio support, but for attached sensors and
other devices, eg for BadgePAD 4 sensor support. other devices, eg for BadgePAD 4 sensor support.
endmenu
endif endif
# SPDX-License-Identifier: GPL-2.0-only
ifeq ($(CONFIG_SA1111),y)
zreladdr-y += 0xc0208000
else
zreladdr-y += 0xc0008000
endif
params_phys-y := 0xc0000100
initrd_phys-y := 0xc0800000
...@@ -6,5 +6,4 @@ menuconfig ARCH_RENESAS ...@@ -6,5 +6,4 @@ menuconfig ARCH_RENESAS
select GPIOLIB select GPIOLIB
select NO_IOPORT_MAP select NO_IOPORT_MAP
select PINCTRL select PINCTRL
select SOC_BUS
select ZONE_DMA if ARM_LPAE select ZONE_DMA if ARM_LPAE
# SPDX-License-Identifier: GPL-2.0-only
# Empty file waiting for deletion once Makefile.boot isn't needed any more.
# Patch waits for application at
# https://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
# SPDX-License-Identifier: GPL-2.0-only
# Empty file waiting for deletion once Makefile.boot isn't needed any more.
# Patch waits for application at
# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
# SPDX-License-Identifier: GPL-2.0-only
zreladdr-y += 0x00008000
params_phys-y := 0x00000100
initrd_phys-y := 0x01000000
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# #
# Makefile for the linux kernel. # Makefile for the linux kernel.
# #
ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include ccflags-y := -I$(srctree)/$(src)/include
orion-gpio-$(CONFIG_GPIOLIB) += gpio.o orion-gpio-$(CONFIG_GPIOLIB) += gpio.o
obj-$(CONFIG_PLAT_ORION_LEGACY) += irq.o pcie.o time.o common.o mpp.o obj-$(CONFIG_PLAT_ORION_LEGACY) += irq.o pcie.o time.o common.o mpp.o
......
...@@ -33,6 +33,11 @@ config ARCH_APPLE ...@@ -33,6 +33,11 @@ config ARCH_APPLE
This enables support for Apple's in-house ARM SoC family, starting This enables support for Apple's in-house ARM SoC family, starting
with the Apple M1. with the Apple M1.
menuconfig ARCH_BCM
bool "Broadcom SoC Support"
if ARCH_BCM
config ARCH_BCM2835 config ARCH_BCM2835
bool "Broadcom BCM2835 family" bool "Broadcom BCM2835 family"
select TIMER_OF select TIMER_OF
...@@ -65,6 +70,16 @@ config ARCH_BCMBCA ...@@ -65,6 +70,16 @@ config ARCH_BCMBCA
This enables support for Broadcom BCA ARM-based broadband chipsets, This enables support for Broadcom BCA ARM-based broadband chipsets,
including the DSL, PON and Wireless family of chips. including the DSL, PON and Wireless family of chips.
config ARCH_BRCMSTB
bool "Broadcom Set-Top-Box SoCs"
select ARCH_HAS_RESET_CONTROLLER
select GENERIC_IRQ_CHIP
select PINCTRL
help
This enables support for Broadcom's ARMv8 Set Top Box SoCs
endif
config ARCH_BERLIN config ARCH_BERLIN
bool "Marvell Berlin SoC Family" bool "Marvell Berlin SoC Family"
select DW_APB_ICTL select DW_APB_ICTL
...@@ -79,14 +94,6 @@ config ARCH_BITMAIN ...@@ -79,14 +94,6 @@ config ARCH_BITMAIN
help help
This enables support for the Bitmain SoC Family. This enables support for the Bitmain SoC Family.
config ARCH_BRCMSTB
bool "Broadcom Set-Top-Box SoCs"
select ARCH_HAS_RESET_CONTROLLER
select GENERIC_IRQ_CHIP
select PINCTRL
help
This enables support for Broadcom's ARMv8 Set Top Box SoCs
config ARCH_EXYNOS config ARCH_EXYNOS
bool "ARMv8 based Samsung Exynos SoC family" bool "ARMv8 based Samsung Exynos SoC family"
select COMMON_CLK_SAMSUNG select COMMON_CLK_SAMSUNG
...@@ -128,12 +135,6 @@ config ARCH_K3 ...@@ -128,12 +135,6 @@ config ARCH_K3
This enables support for Texas Instruments' K3 multicore SoC This enables support for Texas Instruments' K3 multicore SoC
architecture. architecture.
config ARCH_LAYERSCAPE
bool "ARMv8 based Freescale Layerscape SoC family"
select EDAC_SUPPORT
help
This enables support for the Freescale Layerscape SoC family.
config ARCH_LG1K config ARCH_LG1K
bool "LG Electronics LG1K SoC Family" bool "LG Electronics LG1K SoC Family"
help help
...@@ -192,6 +193,17 @@ config ARCH_MVEBU ...@@ -192,6 +193,17 @@ config ARCH_MVEBU
- Armada 8K SoC Family - Armada 8K SoC Family
- 98DX2530 SoC Family - 98DX2530 SoC Family
menuconfig ARCH_NXP
bool "NXP SoC support"
if ARCH_NXP
config ARCH_LAYERSCAPE
bool "ARMv8 based Freescale Layerscape SoC family"
select EDAC_SUPPORT
help
This enables support for the Freescale Layerscape SoC family.
config ARCH_MXC config ARCH_MXC
bool "ARMv8 based NXP i.MX SoC family" bool "ARMv8 based NXP i.MX SoC family"
select ARM64_ERRATUM_843419 select ARM64_ERRATUM_843419
...@@ -206,6 +218,13 @@ config ARCH_MXC ...@@ -206,6 +218,13 @@ config ARCH_MXC
This enables support for the ARMv8 based SoCs in the This enables support for the ARMv8 based SoCs in the
NXP i.MX family. NXP i.MX family.
config ARCH_S32
bool "NXP S32 SoC Family"
help
This enables support for the NXP S32 family of processors.
endif
config ARCH_NPCM config ARCH_NPCM
bool "Nuvoton NPCM Architecture" bool "Nuvoton NPCM Architecture"
select PINCTRL select PINCTRL
...@@ -235,7 +254,6 @@ config ARCH_RENESAS ...@@ -235,7 +254,6 @@ config ARCH_RENESAS
bool "Renesas SoC Platforms" bool "Renesas SoC Platforms"
select GPIOLIB select GPIOLIB
select PINCTRL select PINCTRL
select SOC_BUS
help help
This enables support for the ARMv8 based Renesas SoCs. This enables support for the ARMv8 based Renesas SoCs.
...@@ -249,11 +267,6 @@ config ARCH_ROCKCHIP ...@@ -249,11 +267,6 @@ config ARCH_ROCKCHIP
This enables support for the ARMv8 based Rockchip chipsets, This enables support for the ARMv8 based Rockchip chipsets,
like the RK3368. like the RK3368.
config ARCH_S32
bool "NXP S32 SoC Family"
help
This enables support for the NXP S32 family of processors.
config ARCH_SEATTLE config ARCH_SEATTLE
bool "AMD Seattle SoC Family" bool "AMD Seattle SoC Family"
help help
......
...@@ -180,11 +180,7 @@ static int pxa_ssp_probe(struct platform_device *pdev) ...@@ -180,11 +180,7 @@ static int pxa_ssp_probe(struct platform_device *pdev)
static int pxa_ssp_remove(struct platform_device *pdev) static int pxa_ssp_remove(struct platform_device *pdev)
{ {
struct ssp_device *ssp; struct ssp_device *ssp = platform_get_drvdata(pdev);
ssp = platform_get_drvdata(pdev);
if (ssp == NULL)
return -ENODEV;
mutex_lock(&ssp_lock); mutex_lock(&ssp_lock);
list_del(&ssp->node); list_del(&ssp->node);
......
...@@ -461,9 +461,6 @@ static int __init serial21285_console_setup(struct console *co, char *options) ...@@ -461,9 +461,6 @@ static int __init serial21285_console_setup(struct console *co, char *options)
int parity = 'n'; int parity = 'n';
int flow = 'n'; int flow = 'n';
if (machine_is_personal_server())
baud = 57600;
/* /*
* Check whether an invalid uart number has been specified, and * Check whether an invalid uart number has been specified, and
* if so, search for the first available port that does have * if so, search for the first available port that does have
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment