Re: [RFC PATCH 00/11] Removing Calxeda platform support

From: Andre Przywara
Date: Tue Feb 18 2020 - 13:14:06 EST


On Tue, 18 Feb 2020 11:13:10 -0600
Rob Herring <robh@xxxxxxxxxx> wrote:

Hi,

> Calxeda has been defunct for 6 years now. Use of Calxeda servers carried
> on for some time afterwards primarily as distro builders for 32-bit ARM.
> AFAIK, those systems have been retired in favor of 32-bit VMs on 64-bit
> hosts.
>
> The other use of Calxeda Midway I'm aware of was testing 32-bit ARM KVM
> support as there are few or no other systems with enough RAM and LPAE. Now
> 32-bit KVM host support is getting removed[1].
>
> While it's not much maintenance to support, I don't care to convert the
> Calxeda DT bindings to schema nor fix any resulting errors in the dts files
> (which already don't exactly match what's shipping in firmware).

While every kernel maintainer seems always happy to take patches with a negative diffstat, I wonder if this is really justification enough to remove a perfectly working platform. I don't really know about any active users, but experience tells that some platforms really are used for quite a long time, even if they are somewhat obscure. N900 or Netwinder, anyone?

So to not give the impression that actually *everyone* (from that small subset of people actively reading the kernel list) is happy with that, I think that having support for at least Midway would be useful. On the one hand it's a decent LPAE platform (with memory actually exceeding 4GB), and on the other hand it's something with capable I/O (SATA) and networking, so one can actually stress test the system. Which is the reason I was using that for KVM testing, but even with that probably going away now there remain still some use cases, and be it for general ARM(32) testing.

I don't particularly care about the more optional parts like EDAC, cpuidle, or cpufreq, but I wonder if keeping in at least the rather small SATA and XGMAC drivers and basic platform support is feasible.
If YAML DT bindings are used as an excuse, I am more than happy to convert those over.

And if anyone has any particular gripes with some code, maybe there is a way to fix that instead of removing it? I was always wondering if we could get rid of the mach-highbank directory, for instance. I think most of it is Highbank (Cortex-A9) related.

Cheers,
Andre

>
> Rob
>
> [1] https://lore.kernel.org/linux-arm-kernel/20200210141324.21090-1-maz@xxxxxxxxxx/
>
> Rob Herring (11):
> vfio: Remove Calxeda XGMAC reset driver
> ata: Remove Calxeda AHCI driver
> cpuidle: Remove Calxeda driver
> cpufreq: Remove Calxeda driver
> EDAC: Remove Calxeda drivers
> iommu: arm-smmu: Remove Calxeda secure mode quirk
> net: Remove Calxeda XGMAC driver
> clk: Remove Calxeda driver
> ARM: Remove Calxeda platform support
> ARM: dts: Remove Calxeda platforms
> dt-bindings: Remove Calxeda platforms bindings
>
> .../devicetree/bindings/arm/calxeda.yaml | 22 -
> .../devicetree/bindings/arm/calxeda/l2ecc.txt | 15 -
> .../devicetree/bindings/ata/sata_highbank.txt | 44 -
> .../devicetree/bindings/clock/calxeda.txt | 17 -
> .../memory-controllers/calxeda-ddr-ctrlr.txt | 16 -
> .../devicetree/bindings/net/calxeda-xgmac.txt | 18 -
> .../bindings/phy/calxeda-combophy.txt | 17 -
> MAINTAINERS | 14 -
> arch/arm/Kconfig | 2 -
> arch/arm/Kconfig.debug | 12 +-
> arch/arm/Makefile | 1 -
> arch/arm/boot/dts/Makefile | 3 -
> arch/arm/boot/dts/ecx-2000.dts | 103 -
> arch/arm/boot/dts/ecx-common.dtsi | 230 --
> arch/arm/boot/dts/highbank.dts | 161 --
> arch/arm/configs/multi_v7_defconfig | 5 -
> arch/arm/mach-highbank/Kconfig | 19 -
> arch/arm/mach-highbank/Makefile | 4 -
> arch/arm/mach-highbank/core.h | 18 -
> arch/arm/mach-highbank/highbank.c | 175 --
> arch/arm/mach-highbank/pm.c | 49 -
> arch/arm/mach-highbank/smc.S | 25 -
> arch/arm/mach-highbank/sysregs.h | 75 -
> arch/arm/mach-highbank/system.c | 22 -
> drivers/ata/Kconfig | 9 -
> drivers/ata/Makefile | 1 -
> drivers/ata/sata_highbank.c | 635 ------
> drivers/clk/Makefile | 1 -
> drivers/clk/clk-highbank.c | 329 ---
> drivers/cpufreq/Kconfig.arm | 10 -
> drivers/cpufreq/Makefile | 3 +-
> drivers/cpufreq/cpufreq-dt-platdev.c | 3 -
> drivers/cpufreq/highbank-cpufreq.c | 106 -
> drivers/cpuidle/Kconfig.arm | 7 -
> drivers/cpuidle/Makefile | 1 -
> drivers/cpuidle/cpuidle-calxeda.c | 72 -
> drivers/edac/Kconfig | 14 -
> drivers/edac/Makefile | 3 -
> drivers/edac/highbank_l2_edac.c | 142 --
> drivers/edac/highbank_mc_edac.c | 272 ---
> drivers/iommu/arm-smmu-impl.c | 43 -
> drivers/net/ethernet/Kconfig | 1 -
> drivers/net/ethernet/Makefile | 1 -
> drivers/net/ethernet/calxeda/Kconfig | 9 -
> drivers/net/ethernet/calxeda/Makefile | 2 -
> drivers/net/ethernet/calxeda/xgmac.c | 1927 -----------------
> drivers/vfio/platform/reset/Kconfig | 8 -
> drivers/vfio/platform/reset/Makefile | 2 -
> .../reset/vfio_platform_calxedaxgmac.c | 74 -
> 49 files changed, 2 insertions(+), 4740 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/arm/calxeda.yaml
> delete mode 100644 Documentation/devicetree/bindings/arm/calxeda/l2ecc.txt
> delete mode 100644 Documentation/devicetree/bindings/ata/sata_highbank.txt
> delete mode 100644 Documentation/devicetree/bindings/clock/calxeda.txt
> delete mode 100644 Documentation/devicetree/bindings/memory-controllers/calxeda-ddr-ctrlr.txt
> delete mode 100644 Documentation/devicetree/bindings/net/calxeda-xgmac.txt
> delete mode 100644 Documentation/devicetree/bindings/phy/calxeda-combophy.txt
> delete mode 100644 arch/arm/boot/dts/ecx-2000.dts
> delete mode 100644 arch/arm/boot/dts/ecx-common.dtsi
> delete mode 100644 arch/arm/boot/dts/highbank.dts
> delete mode 100644 arch/arm/mach-highbank/Kconfig
> delete mode 100644 arch/arm/mach-highbank/Makefile
> delete mode 100644 arch/arm/mach-highbank/core.h
> delete mode 100644 arch/arm/mach-highbank/highbank.c
> delete mode 100644 arch/arm/mach-highbank/pm.c
> delete mode 100644 arch/arm/mach-highbank/smc.S
> delete mode 100644 arch/arm/mach-highbank/sysregs.h
> delete mode 100644 arch/arm/mach-highbank/system.c
> delete mode 100644 drivers/ata/sata_highbank.c
> delete mode 100644 drivers/clk/clk-highbank.c
> delete mode 100644 drivers/cpufreq/highbank-cpufreq.c
> delete mode 100644 drivers/cpuidle/cpuidle-calxeda.c
> delete mode 100644 drivers/edac/highbank_l2_edac.c
> delete mode 100644 drivers/edac/highbank_mc_edac.c
> delete mode 100644 drivers/net/ethernet/calxeda/Kconfig
> delete mode 100644 drivers/net/ethernet/calxeda/Makefile
> delete mode 100644 drivers/net/ethernet/calxeda/xgmac.c
> delete mode 100644 drivers/vfio/platform/reset/vfio_platform_calxedaxgmac.c
>
>
> base-commit: 11a48a5a18c63fd7621bb050228cebf13566e4d8
> --
> 2.20.1