From Arnd Bergmann <> Date Mon, 2 Apr 2018 09:17:30 +0200 Subject [GIT PULL] arch: remove obsolete architecture ports Hi Linus,



The series is rather long and conflicts in trivial ways with lots

of subsystem trees. You probably want to pull it either really

early in the merge window or really late.



Arnd



----

The following changes since commit 661e50bc853209e41a5c14a290ca4decc43cbfd1:



Linux 4.16-rc4 (2018-03-04 14:54:11 -0800)



are available in the git repository at:



git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git

tags/arch-removal



for you to fetch changes up to dd3b8c329aa270027fba61a02a12600972dc3983:



MAINTAINERS: UNICORE32: Change email account (2018-03-26 15:57:29 +0200)



----------------------------------------------------------------

arch: remove obsolete architecture ports



This removes the entire architecture code for blackfin, cris, frv, m32r,

metag, mn10300, score, and tile, including the associated device drivers.



I have been working with the (former) maintainers for each one to ensure

that my interpretation was right and the code is definitely unused in

mainline kernels. Many had fond memories of working on the respective

ports to start with and getting them included in upstream, but also saw

no point in keeping the port alive without any users.



In the end, it seems that while the eight architectures are extremely

different, they all suffered the same fate: There was one company

in charge of an SoC line, a CPU microarchitecture and a software

ecosystem, which was more costly than licensing newer off-the-shelf

CPU cores from a third party (typically ARM, MIPS, or RISC-V). It seems

that all the SoC product lines are still around, but have not used the

custom CPU architectures for several years at this point. In contrast,

CPU instruction sets that remain popular and have actively maintained

kernel ports tend to all be used across multiple licensees.



The removal came out of a discussion that is now documented at

https://lwn.net/Articles/748074/. Unlike the original plans, I'm not

marking any ports as deprecated but remove them all at once after I made

sure that they are all unused. Some architectures (notably tile, mn10300,

and blackfin) are still being shipped in products with old kernels,

but those products will never be updated to newer kernel releases.



After this series, we still have a few architectures without mainline

gcc support:



- unicore32 and hexagon both have very outdated gcc releases, but the

maintainers promised to work on providing something newer. At least

in case of hexagon, this will only be llvm, not gcc.



- openrisc, risc-v and nds32 are still in the process of finishing their

support or getting it added to mainline gcc in the first place.

They all have patched gcc-7.3 ports that work to some degree, but

complete upstream support won't happen before gcc-8.1. Csky posted

their first kernel patch set last week, their situation will be similar.



----------------------------------------------------------------



(dirstat only for brevity)



0.0% Documentation/admin-guide/

0.0% Documentation/blackfin/

0.0% Documentation/cris/

0.0% Documentation/dev-tools/

0.0% Documentation/devicetree/bindings/cris/

0.0% Documentation/devicetree/bindings/gpio/

0.0% Documentation/devicetree/bindings/interrupt-controller/

0.0% Documentation/devicetree/bindings/metag/

0.0% Documentation/devicetree/bindings/serial/

0.0% Documentation/driver-api/usb/

0.0% Documentation/features/core/BPF-JIT/

0.0% Documentation/features/core/generic-idle-thread/

0.0% Documentation/features/core/jump-labels/

0.0% Documentation/features/core/tracehook/

0.0% Documentation/features/debug/KASAN/

0.0% Documentation/features/debug/gcov-profile-all/

0.0% Documentation/features/debug/kgdb/

0.0% Documentation/features/debug/kprobes-on-ftrace/

0.0% Documentation/features/debug/kprobes/

0.0% Documentation/features/debug/kretprobes/

0.0% Documentation/features/debug/optprobes/

0.0% Documentation/features/debug/stackprotector/

0.0% Documentation/features/debug/uprobes/

0.0% Documentation/features/debug/user-ret-profiler/

0.0% Documentation/features/io/dma-api-debug/

0.0% Documentation/features/io/dma-contiguous/

0.0% Documentation/features/io/sg-chain/

0.0% Documentation/features/lib/strncasecmp/

0.0% Documentation/features/locking/cmpxchg-local/

0.0% Documentation/features/locking/lockdep/

0.0% Documentation/features/locking/queued-rwlocks/

0.0% Documentation/features/locking/queued-spinlocks/

0.0% Documentation/features/locking/rwsem-optimized/

0.0% Documentation/features/perf/kprobes-event/

0.0% Documentation/features/perf/perf-regs/

0.0% Documentation/features/perf/perf-stackdump/

0.0% Documentation/features/sched/membarrier-sync-core/

0.0% Documentation/features/sched/numa-balancing/

0.0% Documentation/features/seccomp/seccomp-filter/

0.0% Documentation/features/time/arch-tick-broadcast/

0.0% Documentation/features/time/clockevents/

0.0% Documentation/features/time/context-tracking/

0.0% Documentation/features/time/irq-time-acct/

0.0% Documentation/features/time/modern-timekeeping/

0.0% Documentation/features/time/virt-cpuacct/

0.0% Documentation/features/vm/ELF-ASLR/

0.0% Documentation/features/vm/PG_uncached/

0.0% Documentation/features/vm/THP/

0.0% Documentation/features/vm/TLB/

0.0% Documentation/features/vm/huge-vmap/

0.0% Documentation/features/vm/ioremap_prot/

0.0% Documentation/features/vm/numa-memblock/

0.0% Documentation/features/vm/pte_special/

0.4% Documentation/frv/

0.0% Documentation/ioctl/

0.0% Documentation/metag/

0.0% Documentation/mn10300/

0.0% Documentation/watchdog/

0.0% Documentation/

0.0% arch/blackfin/boot/

0.5% arch/blackfin/configs/

2.3% arch/blackfin/include/asm/

0.0% arch/blackfin/include/mach-common/

0.1% arch/blackfin/include/uapi/asm/

0.0% arch/blackfin/kernel/cplb-mpu/

0.0% arch/blackfin/kernel/cplb-nompu/

2.2% arch/blackfin/kernel/

0.2% arch/blackfin/lib/

0.2% arch/blackfin/mach-bf518/boards/

1.5% arch/blackfin/mach-bf518/include/mach/

0.0% arch/blackfin/mach-bf518/

0.7% arch/blackfin/mach-bf527/boards/

2.0% arch/blackfin/mach-bf527/include/mach/

0.0% arch/blackfin/mach-bf527/

0.4% arch/blackfin/mach-bf533/boards/

0.8% arch/blackfin/mach-bf533/include/mach/

0.0% arch/blackfin/mach-bf533/

1.0% arch/blackfin/mach-bf537/boards/

2.1% arch/blackfin/mach-bf537/include/mach/

0.0% arch/blackfin/mach-bf537/

0.1% arch/blackfin/mach-bf538/boards/

1.9% arch/blackfin/mach-bf538/include/mach/

0.0% arch/blackfin/mach-bf538/

0.5% arch/blackfin/mach-bf548/boards/

5.4% arch/blackfin/mach-bf548/include/mach/

0.1% arch/blackfin/mach-bf548/

0.2% arch/blackfin/mach-bf561/boards/

1.6% arch/blackfin/mach-bf561/include/mach/

0.2% arch/blackfin/mach-bf561/

0.3% arch/blackfin/mach-bf609/boards/

3.8% arch/blackfin/mach-bf609/include/mach/

0.4% arch/blackfin/mach-bf609/

0.8% arch/blackfin/mach-common/

0.2% arch/blackfin/mm/

0.0% arch/blackfin/oprofile/

0.3% arch/blackfin/

0.8% arch/cris/arch-v10/drivers/

1.3% arch/cris/arch-v10/kernel/

0.2% arch/cris/arch-v10/lib/

0.1% arch/cris/arch-v10/mm/

0.1% arch/cris/arch-v10/

0.0% arch/cris/arch-v32/drivers/mach-a3/

0.0% arch/cris/arch-v32/drivers/mach-fs/

0.0% arch/cris/arch-v32/drivers/pci/

1.2% arch/cris/arch-v32/drivers/

1.2% arch/cris/arch-v32/kernel/

0.2% arch/cris/arch-v32/lib/

0.2% arch/cris/arch-v32/mach-a3/

0.2% arch/cris/arch-v32/mach-fs/

0.1% arch/cris/arch-v32/mm/

0.0% arch/cris/arch-v32/

0.1% arch/cris/boot/compressed/

0.0% arch/cris/boot/dts/

0.1% arch/cris/boot/rescue/

0.0% arch/cris/boot/tools/

0.0% arch/cris/boot/

0.0% arch/cris/configs/

0.3% arch/cris/include/arch-v10/arch/

1.4% arch/cris/include/arch-v32/arch/hwregs/asm/

2.9% arch/cris/include/arch-v32/arch/hwregs/iop/asm/

1.8% arch/cris/include/arch-v32/arch/hwregs/iop/

0.9% arch/cris/include/arch-v32/arch/hwregs/

0.3% arch/cris/include/arch-v32/arch/

0.7% arch/cris/include/arch-v32/mach-a3/mach/hwregs/asm/

1.2% arch/cris/include/arch-v32/mach-a3/mach/hwregs/iop/asm/

0.6% arch/cris/include/arch-v32/mach-a3/mach/hwregs/iop/

0.8% arch/cris/include/arch-v32/mach-a3/mach/hwregs/

0.0% arch/cris/include/arch-v32/mach-a3/mach/

0.4% arch/cris/include/arch-v32/mach-fs/mach/hwregs/asm/

0.6% arch/cris/include/arch-v32/mach-fs/mach/hwregs/

0.0% arch/cris/include/arch-v32/mach-fs/mach/

0.3% arch/cris/include/asm/

2.0% arch/cris/include/uapi/arch-v10/arch/

0.0% arch/cris/include/uapi/arch-v32/arch/

0.3% arch/cris/include/uapi/asm/

0.2% arch/cris/kernel/

0.1% arch/cris/mm/

0.1% arch/cris/

0.0% arch/frv/boot/

1.3% arch/frv/include/asm/

0.2% arch/frv/include/uapi/asm/

2.3% arch/frv/kernel/

0.2% arch/frv/lib/

0.1% arch/frv/mb93090-mb00/

0.3% arch/frv/mm/

0.0% arch/frv/

0.0% arch/m32r/boot/compressed/

0.0% arch/m32r/boot/

0.1% arch/m32r/configs/

0.0% arch/m32r/include/asm/m32104ut/

0.1% arch/m32r/include/asm/m32700ut/

0.0% arch/m32r/include/asm/mappi2/

0.0% arch/m32r/include/asm/mappi3/

0.0% arch/m32r/include/asm/opsput/

1.2% arch/m32r/include/asm/

0.2% arch/m32r/include/uapi/asm/

0.9% arch/m32r/kernel/

0.2% arch/m32r/lib/

0.2% arch/m32r/mm/

0.0% arch/m32r/oprofile/

0.0% arch/m32r/platforms/m32104ut/

0.2% arch/m32r/platforms/m32700ut/

0.2% arch/m32r/platforms/mappi/

0.1% arch/m32r/platforms/mappi2/

0.1% arch/m32r/platforms/mappi3/

0.0% arch/m32r/platforms/oaks32r/

0.1% arch/m32r/platforms/opsput/

0.0% arch/m32r/platforms/usrv/

0.0% arch/m32r/platforms/

0.0% arch/m32r/

0.0% arch/metag/boot/dts/

0.0% arch/metag/boot/

0.0% arch/metag/configs/

0.0% arch/metag/include/asm/mach/

1.9% arch/metag/include/asm/

0.0% arch/metag/include/uapi/asm/

0.1% arch/metag/kernel/perf/

1.0% arch/metag/kernel/

0.4% arch/metag/lib/

0.4% arch/metag/mm/

0.0% arch/metag/oprofile/

0.4% arch/metag/tbx/

0.0% arch/metag/

0.0% arch/mn10300/boot/compressed/

0.0% arch/mn10300/boot/tools/

0.0% arch/mn10300/boot/

0.0% arch/mn10300/configs/

1.5% arch/mn10300/include/asm/

0.2% arch/mn10300/include/uapi/asm/

2.0% arch/mn10300/kernel/

0.1% arch/mn10300/lib/

0.9% arch/mn10300/mm/

0.0% arch/mn10300/oprofile/

0.0% arch/mn10300/proc-mn103e010/include/proc/

0.0% arch/mn10300/proc-mn103e010/

0.1% arch/mn10300/proc-mn2ws0050/include/proc/

0.0% arch/mn10300/proc-mn2ws0050/

0.0% arch/mn10300/unit-asb2303/include/unit/

0.0% arch/mn10300/unit-asb2303/

0.0% arch/mn10300/unit-asb2305/include/unit/

0.1% arch/mn10300/unit-asb2305/

0.1% arch/mn10300/unit-asb2364/include/unit/

0.0% arch/mn10300/unit-asb2364/

0.1% arch/mn10300/

0.0% arch/score/boot/

0.0% arch/score/configs/

0.4% arch/score/include/asm/

0.0% arch/score/include/uapi/asm/

0.4% arch/score/kernel/

0.1% arch/score/lib/

0.1% arch/score/mm/

0.0% arch/score/

0.1% arch/tile/configs/

0.4% arch/tile/gxio/

0.5% arch/tile/include/arch/

1.9% arch/tile/include/asm/

0.7% arch/tile/include/gxio/

2.0% arch/tile/include/hv/

1.1% arch/tile/include/uapi/arch/

0.1% arch/tile/include/uapi/asm/

0.0% arch/tile/kernel/vdso/

5.3% arch/tile/kernel/

0.0% arch/tile/kvm/

0.6% arch/tile/lib/

0.7% arch/tile/mm/

0.1% arch/tile/

0.0% block/

0.0% crypto/

0.3% drivers/ata/

0.1% drivers/char/

0.0% drivers/clocksource/

0.0% drivers/cpufreq/

0.0% drivers/edac/

0.0% drivers/gpio/

0.1% drivers/i2c/busses/

0.0% drivers/ide/

0.0% drivers/input/joystick/

0.0% drivers/input/keyboard/

0.0% drivers/input/misc/

0.2% drivers/irqchip/

0.0% drivers/isdn/hisax/

0.2% drivers/media/platform/blackfin/

0.1% drivers/media/platform/

0.0% drivers/media/rc/img-ir/

0.0% drivers/misc/echo/

0.1% drivers/mmc/host/

0.1% drivers/net/can/

0.3% drivers/net/cris/

0.0% drivers/net/ethernet/8390/

0.3% drivers/net/ethernet/adi/

0.0% drivers/net/ethernet/davicom/

0.0% drivers/net/ethernet/smsc/

0.8% drivers/net/ethernet/tile/

0.0% drivers/net/ethernet/

0.0% drivers/net/wireless/cisco/

0.0% drivers/net/

0.0% drivers/pci/

0.3% drivers/pcmcia/

0.4% drivers/pinctrl/

0.0% drivers/pwm/

0.1% drivers/rtc/

0.5% drivers/spi/

0.0% drivers/staging/iio/trigger/

0.0% drivers/staging/iio/

0.0% drivers/staging/speakup/

0.0% drivers/tty/hvc/

1.7% drivers/tty/serial/

0.1% drivers/tty/

0.0% drivers/usb/gadget/function/

0.0% drivers/usb/gadget/legacy/

0.0% drivers/usb/host/

0.1% drivers/usb/musb/

0.0% drivers/video/console/

0.7% drivers/video/fbdev/

1.2% drivers/video/logo/

0.0% drivers/watchdog/

0.0% fs/minix/

0.0% fs/proc/

0.0% fs/

0.0% include/asm-generic/

0.0% include/clocksource/

0.0% include/linux/irqchip/

0.0% include/linux/platform_data/

0.0% include/linux/raid/

0.0% include/linux/usb/

0.0% include/linux/

0.0% include/media/blackfin/

0.0% include/trace/events/

0.0% include/uapi/asm-generic/

0.0% include/uapi/linux/

0.0% init/

0.0% kernel/

0.0% lib/raid6/test/

0.0% lib/raid6/

0.0% lib/

0.0% mm/

0.0% samples/blackfin/

0.0% samples/kprobes/

0.0% samples/

0.0% scripts/mod/

0.0% scripts/

0.0% tools/arch/frv/include/uapi/asm/

0.0% tools/arch/m32r/include/uapi/asm/

0.0% tools/arch/mn10300/include/uapi/asm/

0.0% tools/arch/score/include/uapi/asm/

0.0% tools/arch/tile/include/asm/

0.0% tools/arch/tile/include/uapi/asm/

0.0% tools/include/asm-generic/

0.0% tools/perf/

0.0% tools/scripts/

0.0% tools/testing/ktest/examples/

0.0% tools/testing/ktest/

2498 files changed, 95 insertions(+), 467668 deletions(-)



