Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26202873 authored by Hans-Christian Noren Egtvedt's avatar Hans-Christian Noren Egtvedt
Browse files

avr32: remove support for AVR32 architecture



This patch drops support for AVR32 architecture from the Linux kernel.

The AVR32 architecture is not keeping up with the development of the
kernel, and since it shares so much of the drivers with Atmel ARM SoC,
it is starting to hinder these drivers to develop swiftly.

Also, all AVR32 AP7 SoC processors are end of lifed from Atmel (now
Microchip).

Finally, the GCC toolchain is stuck at version 4.2.x, and has not
received any patches since the last release from Atmel;
4.2.4-atmel.1.1.3.avr32linux.1. When building kernel v4.10, this
toolchain is no longer able to properly link the network stack.

Haavard and I have came to the conclusion that we feel keeping AVR32 on
life support offers more obstacles for Atmel ARMs, than it gives joy to
AVR32 users. I also suspect there are very few AVR32 users left today,
if anybody at all.

Signed-off-by: default avatarHans-Christian Noren Egtvedt <egtvedt@samfundet.no>
Signed-off-by: default avatarHåvard Skinnemoen <hskinnemoen@gmail.com>
Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@microchip.com>
Acked-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
parent a351e9b9
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1034,6 +1034,10 @@ S: 2037 Walnut #6
S: Boulder, Colorado 80302
S: USA

N: Hans-Christian Noren Egtvedt
E: egtvedt@samfundet.no
D: AVR32 architecture maintainer.

N: Heiko Eißfeldt
E: heiko@colossus.escape.de heiko@unifix.de
D: verify_area stuff, generic SCSI fixes
@@ -3398,6 +3402,10 @@ S: Suite 101
S: Markham, Ontario L3R 2Z6
S: Canada

N: Haavard Skinnemoen
M: Haavard Skinnemoen <hskinnemoen@gmail.com>
D: AVR32 architecture port to Linux and maintainer.

N: Rick Sladkey
E: jrs@world.std.com
D: utility hacker: Emacs, NFS server, mount, kmem-ps, UPS debugger, strace, GDB
+0 −15
Original line number Diff line number Diff line
@@ -2327,21 +2327,6 @@ S: Maintained
F:	drivers/auxdisplay/
F:	include/linux/cfag12864b.h

AVR32 ARCHITECTURE
M:	Haavard Skinnemoen <hskinnemoen@gmail.com>
M:	Hans-Christian Egtvedt <egtvedt@samfundet.no>
W:	http://www.atmel.com/products/AVR32/
W:	http://mirror.egtvedt.no/avr32linux.org/
W:	http://avrfreaks.net/
S:	Maintained
F:	arch/avr32/

AVR32/AT32AP MACHINE SUPPORT
M:	Haavard Skinnemoen <hskinnemoen@gmail.com>
M:	Hans-Christian Egtvedt <egtvedt@samfundet.no>
S:	Maintained
F:	arch/avr32/mach-at32ap/

AX.25 NETWORK LAYER
M:	Ralf Baechle <ralf@linux-mips.org>
L:	linux-hams@vger.kernel.org

arch/avr32/Kconfig

deleted100644 → 0
+0 −288
Original line number Diff line number Diff line
config AVR32
	def_bool y
	# With EXPERT=n, we get lots of stuff automatically selected
	# that we usually don't need on AVR32.
	select EXPERT
	select HAVE_CLK
	select HAVE_EXIT_THREAD
	select HAVE_OPROFILE
	select HAVE_KPROBES
	select VIRT_TO_BUS
	select GENERIC_IRQ_PROBE
	select GENERIC_ATOMIC64
	select HARDIRQS_SW_RESEND
	select GENERIC_IRQ_SHOW
	select ARCH_HAVE_CUSTOM_GPIO_H
	select ARCH_WANT_IPC_PARSE_VERSION
	select ARCH_HAVE_NMI_SAFE_CMPXCHG
	select GENERIC_CLOCKEVENTS
	select HAVE_MOD_ARCH_SPECIFIC
	select MODULES_USE_ELF_RELA
	select HAVE_NMI
	help
	  AVR32 is a high-performance 32-bit RISC microprocessor core,
	  designed for cost-sensitive embedded applications, with particular
	  emphasis on low power consumption and high code density.

	  There is an AVR32 Linux project with a web page at
	  http://avr32linux.org/.

config STACKTRACE_SUPPORT
	def_bool y

config LOCKDEP_SUPPORT
	def_bool y

config TRACE_IRQFLAGS_SUPPORT
	def_bool y

config RWSEM_GENERIC_SPINLOCK
	def_bool y

config RWSEM_XCHGADD_ALGORITHM
	def_bool n

config ARCH_HAS_ILOG2_U32
	def_bool n

config ARCH_HAS_ILOG2_U64
	def_bool n

config GENERIC_HWEIGHT
	def_bool y

config GENERIC_CALIBRATE_DELAY
	def_bool y

config GENERIC_BUG
	def_bool y
	depends on BUG

source "init/Kconfig"

source "kernel/Kconfig.freezer"

menu "System Type and features"

config SUBARCH_AVR32B
	bool
config MMU
	bool
config PERFORMANCE_COUNTERS
	bool

config PLATFORM_AT32AP
	bool
	select SUBARCH_AVR32B
	select MMU
	select PERFORMANCE_COUNTERS
	select GPIOLIB
	select GENERIC_ALLOCATOR
	select HAVE_FB_ATMEL

#
# CPU types
#

# AP7000 derivatives
config CPU_AT32AP700X
	bool
	select PLATFORM_AT32AP
config CPU_AT32AP7000
	bool
	select CPU_AT32AP700X
config CPU_AT32AP7001
	bool
	select CPU_AT32AP700X
config CPU_AT32AP7002
	bool
	select CPU_AT32AP700X

# AP700X boards
config BOARD_ATNGW100_COMMON
	bool
	select CPU_AT32AP7000

choice
	prompt "AVR32 board type"
	default BOARD_ATSTK1000

config BOARD_ATSTK1000
	bool "ATSTK1000 evaluation board"

config BOARD_ATNGW100_MKI
	bool "ATNGW100 Network Gateway"
	select BOARD_ATNGW100_COMMON

config BOARD_ATNGW100_MKII
	bool "ATNGW100 mkII Network Gateway"
	select BOARD_ATNGW100_COMMON

config BOARD_HAMMERHEAD
	bool "Hammerhead board"
	select CPU_AT32AP7000
	select USB_ARCH_HAS_HCD
	help
	  The Hammerhead platform is built around an AVR32 32-bit microcontroller from Atmel.
	  It offers versatile peripherals, such as ethernet, usb device, usb host etc.

	  The board also incorporates a power supply and is a Power over Ethernet (PoE) Powered
	  Device (PD).

	  Additionally, a Cyclone III FPGA from Altera is integrated on the board. The FPGA is
	  mapped into the 32-bit AVR memory bus. The FPGA offers two DDR2 SDRAM interfaces, which
	  will cover even the most exceptional need of memory bandwidth. Together with the onboard
	  video decoder the board is ready for video processing.

	  For more information see: http://www.miromico.ch/index.php/hammerhead.html 

config BOARD_FAVR_32
	bool "Favr-32 LCD-board"
	select CPU_AT32AP7000

config BOARD_MERISC
	bool "Merisc board"
	select CPU_AT32AP7000
	help
	  Merisc is the family name for a range of AVR32-based boards.

	  The boards are designed to be used in a man-machine
	  interfacing environment, utilizing a touch-based graphical
	  user interface. They host a vast range of I/O peripherals as
	  well as a large SDRAM & Flash memory bank.

	  For more information see: http://www.martinsson.se/merisc

config BOARD_MIMC200
	bool "MIMC200 CPU board"
	select CPU_AT32AP7000
endchoice

source "arch/avr32/boards/atstk1000/Kconfig"
source "arch/avr32/boards/atngw100/Kconfig"
source "arch/avr32/boards/hammerhead/Kconfig"
source "arch/avr32/boards/favr-32/Kconfig"
source "arch/avr32/boards/merisc/Kconfig"

choice
	prompt "Boot loader type"
	default LOADER_U_BOOT

config	LOADER_U_BOOT
	bool "U-Boot (or similar) bootloader"
endchoice

source "arch/avr32/mach-at32ap/Kconfig"

config LOAD_ADDRESS
	hex
	default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y

config ENTRY_ADDRESS
	hex
	default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y

config PHYS_OFFSET
	hex
	default 0x10000000 if CPU_AT32AP700X=y

source "kernel/Kconfig.preempt"

config QUICKLIST
	def_bool y

config ARCH_HAVE_MEMORY_PRESENT
	def_bool n

config NEED_NODE_MEMMAP_SIZE
	def_bool n

config ARCH_FLATMEM_ENABLE
	def_bool y

config ARCH_DISCONTIGMEM_ENABLE
	def_bool n

config ARCH_SPARSEMEM_ENABLE
	def_bool n

config NODES_SHIFT
	int
	default "2"
	depends on NEED_MULTIPLE_NODES

source "mm/Kconfig"

config OWNERSHIP_TRACE
	bool "Ownership trace support"
	default y
	help
	  Say Y to generate an Ownership Trace message on every context switch,
	  enabling Nexus-compliant debuggers to keep track of the PID of the
	  currently executing task.

config NMI_DEBUGGING
	bool "NMI Debugging"
	default n
	help
	  Say Y here and pass the nmi_debug command-line parameter to
	  the kernel to turn on NMI debugging. Depending on the value
	  of the nmi_debug option, various pieces of information will
	  be dumped to the console when a Non-Maskable Interrupt
	  happens.

# FPU emulation goes here

source "kernel/Kconfig.hz"

config CMDLINE
	string "Default kernel command line"
	default ""
	help
	  If you don't have a boot loader capable of passing a command line string
	  to the kernel, you may specify one here. As a minimum, you should specify
	  the memory size and the root device (e.g., mem=8M, root=/dev/nfs).

endmenu

menu "Power management options"

source "kernel/power/Kconfig"

config ARCH_SUSPEND_POSSIBLE
	def_bool y

menu "CPU Frequency scaling"
source "drivers/cpufreq/Kconfig"
endmenu

endmenu

menu "Bus options"

config PCI
	bool

source "drivers/pci/Kconfig"

source "drivers/pcmcia/Kconfig"

endmenu

menu "Executable file formats"
source "fs/Kconfig.binfmt"
endmenu

source "net/Kconfig"

source "drivers/Kconfig"

source "fs/Kconfig"

source "arch/avr32/Kconfig.debug"

source "security/Kconfig"

source "crypto/Kconfig"

source "lib/Kconfig"

arch/avr32/Kconfig.debug

deleted100644 → 0
+0 −9
Original line number Diff line number Diff line
menu "Kernel hacking"

config TRACE_IRQFLAGS_SUPPORT
	bool
	default y

source "lib/Kconfig.debug"

endmenu

arch/avr32/Makefile

deleted100644 → 0
+0 −84
Original line number Diff line number Diff line
#
# This file is subject to the terms and conditions of the GNU General Public
# License.  See the file "COPYING" in the main directory of this archive
# for more details.
#
# Copyright (C) 2004-2006 Atmel Corporation.

# Default target when executing plain make
.PHONY: all
all: uImage vmlinux.elf

KBUILD_DEFCONFIG	:= atstk1002_defconfig

KBUILD_CFLAGS	+= -pipe -fno-builtin -mno-pic -D__linux__
KBUILD_AFLAGS	+= -mrelax -mno-pic
KBUILD_CFLAGS_MODULE += -mno-relax
LDFLAGS_vmlinux	+= --relax

cpuflags-$(CONFIG_PLATFORM_AT32AP)	+= -march=ap

KBUILD_CFLAGS	+= $(cpuflags-y)
KBUILD_AFLAGS	+= $(cpuflags-y)

CHECKFLAGS	+= -D__avr32__ -D__BIG_ENDIAN

machine-$(CONFIG_PLATFORM_AT32AP) := at32ap
machdirs	:= $(patsubst %,arch/avr32/mach-%/, $(machine-y))

KBUILD_CPPFLAGS	+= $(patsubst %,-I$(srctree)/%include,$(machdirs))

head-$(CONFIG_LOADER_U_BOOT)		+= arch/avr32/boot/u-boot/head.o
head-y					+= arch/avr32/kernel/head.o
core-y					+= $(machdirs)
core-$(CONFIG_BOARD_ATSTK1000)		+= arch/avr32/boards/atstk1000/
core-$(CONFIG_BOARD_ATNGW100_COMMON)	+= arch/avr32/boards/atngw100/
core-$(CONFIG_BOARD_HAMMERHEAD)		+= arch/avr32/boards/hammerhead/
core-$(CONFIG_BOARD_FAVR_32)		+= arch/avr32/boards/favr-32/
core-$(CONFIG_BOARD_MERISC)		+= arch/avr32/boards/merisc/
core-$(CONFIG_BOARD_MIMC200)		+= arch/avr32/boards/mimc200/
core-$(CONFIG_LOADER_U_BOOT)		+= arch/avr32/boot/u-boot/
core-y					+= arch/avr32/kernel/
core-y					+= arch/avr32/mm/
drivers-$(CONFIG_OPROFILE)		+= arch/avr32/oprofile/
libs-y					+= arch/avr32/lib/

BOOT_TARGETS := vmlinux.elf vmlinux.bin uImage uImage.srec

.PHONY: $(BOOT_TARGETS) install

boot := arch/$(ARCH)/boot/images

             KBUILD_IMAGE := $(boot)/uImage
vmlinux.elf: KBUILD_IMAGE := $(boot)/vmlinux.elf
vmlinux.cso: KBUILD_IMAGE := $(boot)/vmlinux.cso
uImage.srec: KBUILD_IMAGE := $(boot)/uImage.srec
uImage:      KBUILD_IMAGE := $(boot)/uImage

quiet_cmd_listing = LST     $@
      cmd_listing = avr32-linux-objdump $(OBJDUMPFLAGS) -lS $< > $@
quiet_cmd_disasm  = DIS     $@
      cmd_disasm  = avr32-linux-objdump $(OBJDUMPFLAGS) -d $< > $@

vmlinux.elf vmlinux.bin uImage.srec uImage vmlinux.cso: vmlinux
	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@

install: vmlinux
	$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) $@

vmlinux.s: vmlinux
	$(call if_changed,disasm)

vmlinux.lst: vmlinux
	$(call if_changed,listing)

CLEAN_FILES += vmlinux.s vmlinux.lst

archclean:
	$(Q)$(MAKE) $(clean)=$(boot)

define archhelp
  @echo '* vmlinux.elf		- ELF image with load address 0'
  @echo '  vmlinux.cso		- PathFinder CSO image'
  @echo '* uImage		- Create a bootable image for U-Boot'
endef
Loading