[PATCH v2 2/2] powerpc: Remove Xilinx PPC405/PPC440 support
Nick Desaulniers
ndesaulniers at google.com
Tue Mar 31 19:36:59 UTC 2020
On Mon, Mar 30, 2020 at 6:32 AM Michal Simek <michal.simek at xilinx.com> wrote:
>
> The latest Xilinx design tools called ISE and EDK has been released in
> October 2013. New tool doesn't support any PPC405/PPC440 new designs.
> These platforms are no longer supported and tested.
>
> PowerPC 405/440 port is orphan from 2013 by
> commit cdeb89943bfc ("MAINTAINERS: Fix incorrect status tag") and
> commit 19624236cce1 ("MAINTAINERS: Update Grant's email address and maintainership")
> that's why it is time to remove the support fot these platforms.
>
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> Acked-by: Arnd Bergmann <arnd at arndb.de>
Is this per chance related to:
https://lore.kernel.org/linux-next/1e0a9c45-e525-a3ac-b352-e236d8427e0b@xilinx.com/
We just hit that error today without our CI on ppc32 builds:
https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/builds/157031633
> ---
>
> Changes in v2:
> - Based on my chat with Arnd I removed arch/powerpc/xmon/ changes done in
> v1 to keep them the same as before. (kbuild reported some issues with it
> too)
>
> Documentation/devicetree/bindings/xilinx.txt | 143 ------
> Documentation/powerpc/bootwrapper.rst | 28 +-
> MAINTAINERS | 6 -
> arch/powerpc/Kconfig.debug | 2 +-
> arch/powerpc/boot/Makefile | 7 +-
> arch/powerpc/boot/dts/Makefile | 1 -
> arch/powerpc/boot/dts/virtex440-ml507.dts | 406 ----------------
> arch/powerpc/boot/dts/virtex440-ml510.dts | 466 -------------------
> arch/powerpc/boot/ops.h | 1 -
> arch/powerpc/boot/serial.c | 5 -
> arch/powerpc/boot/uartlite.c | 79 ----
> arch/powerpc/boot/virtex.c | 97 ----
> arch/powerpc/boot/virtex405-head.S | 31 --
> arch/powerpc/boot/wrapper | 8 -
> arch/powerpc/configs/40x/virtex_defconfig | 75 ---
> arch/powerpc/configs/44x/virtex5_defconfig | 74 ---
> arch/powerpc/configs/ppc40x_defconfig | 8 -
> arch/powerpc/configs/ppc44x_defconfig | 8 -
> arch/powerpc/include/asm/xilinx_intc.h | 16 -
> arch/powerpc/include/asm/xilinx_pci.h | 21 -
> arch/powerpc/kernel/cputable.c | 39 --
> arch/powerpc/platforms/40x/Kconfig | 31 --
> arch/powerpc/platforms/40x/Makefile | 1 -
> arch/powerpc/platforms/40x/virtex.c | 54 ---
> arch/powerpc/platforms/44x/Kconfig | 37 --
> arch/powerpc/platforms/44x/Makefile | 2 -
> arch/powerpc/platforms/44x/virtex.c | 60 ---
> arch/powerpc/platforms/44x/virtex_ml510.c | 30 --
> arch/powerpc/platforms/Kconfig | 4 -
> arch/powerpc/sysdev/Makefile | 2 -
> arch/powerpc/sysdev/xilinx_intc.c | 88 ----
> arch/powerpc/sysdev/xilinx_pci.c | 132 ------
> drivers/char/Kconfig | 2 +-
> drivers/video/fbdev/Kconfig | 2 +-
> 34 files changed, 7 insertions(+), 1959 deletions(-)
> delete mode 100644 arch/powerpc/boot/dts/virtex440-ml507.dts
> delete mode 100644 arch/powerpc/boot/dts/virtex440-ml510.dts
> delete mode 100644 arch/powerpc/boot/uartlite.c
> delete mode 100644 arch/powerpc/boot/virtex.c
> delete mode 100644 arch/powerpc/boot/virtex405-head.S
> delete mode 100644 arch/powerpc/configs/40x/virtex_defconfig
> delete mode 100644 arch/powerpc/configs/44x/virtex5_defconfig
> delete mode 100644 arch/powerpc/include/asm/xilinx_intc.h
> delete mode 100644 arch/powerpc/include/asm/xilinx_pci.h
> delete mode 100644 arch/powerpc/platforms/40x/virtex.c
> delete mode 100644 arch/powerpc/platforms/44x/virtex.c
> delete mode 100644 arch/powerpc/platforms/44x/virtex_ml510.c
> delete mode 100644 arch/powerpc/sysdev/xilinx_intc.c
> delete mode 100644 arch/powerpc/sysdev/xilinx_pci.c
>
> diff --git a/Documentation/devicetree/bindings/xilinx.txt b/Documentation/devicetree/bindings/xilinx.txt
> index d058ace29345..28199b31fe5e 100644
> --- a/Documentation/devicetree/bindings/xilinx.txt
> +++ b/Documentation/devicetree/bindings/xilinx.txt
> @@ -86,149 +86,6 @@
> xlnx,use-parity = <0>;
> };
>
> - Some IP cores actually implement 2 or more logical devices. In
> - this case, the device should still describe the whole IP core with
> - a single node and add a child node for each logical device. The
> - ranges property can be used to translate from parent IP-core to the
> - registers of each device. In addition, the parent node should be
> - compatible with the bus type 'xlnx,compound', and should contain
> - #address-cells and #size-cells, as with any other bus. (Note: this
> - makes the assumption that both logical devices have the same bus
> - binding. If this is not true, then separate nodes should be used
> - for each logical device). The 'cell-index' property can be used to
> - enumerate logical devices within an IP core. For example, the
> - following is the system.mhs entry for the dual ps2 controller found
> - on the ml403 reference design.
> -
> - BEGIN opb_ps2_dual_ref
> - PARAMETER INSTANCE = opb_ps2_dual_ref_0
> - PARAMETER HW_VER = 1.00.a
> - PARAMETER C_BASEADDR = 0xA9000000
> - PARAMETER C_HIGHADDR = 0xA9001FFF
> - BUS_INTERFACE SOPB = opb_v20_0
> - PORT Sys_Intr1 = ps2_1_intr
> - PORT Sys_Intr2 = ps2_2_intr
> - PORT Clkin1 = ps2_clk_rx_1
> - PORT Clkin2 = ps2_clk_rx_2
> - PORT Clkpd1 = ps2_clk_tx_1
> - PORT Clkpd2 = ps2_clk_tx_2
> - PORT Rx1 = ps2_d_rx_1
> - PORT Rx2 = ps2_d_rx_2
> - PORT Txpd1 = ps2_d_tx_1
> - PORT Txpd2 = ps2_d_tx_2
> - END
> -
> - It would result in the following device tree nodes:
> -
> - opb_ps2_dual_ref_0: opb-ps2-dual-ref at a9000000 {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - compatible = "xlnx,compound";
> - ranges = <0 a9000000 2000>;
> - // If this device had extra parameters, then they would
> - // go here.
> - ps2 at 0 {
> - compatible = "xlnx,opb-ps2-dual-ref-1.00.a";
> - reg = <0 40>;
> - interrupt-parent = <&opb_intc_0>;
> - interrupts = <3 0>;
> - cell-index = <0>;
> - };
> - ps2 at 1000 {
> - compatible = "xlnx,opb-ps2-dual-ref-1.00.a";
> - reg = <1000 40>;
> - interrupt-parent = <&opb_intc_0>;
> - interrupts = <3 0>;
> - cell-index = <0>;
> - };
> - };
> -
> - Also, the system.mhs file defines bus attachments from the processor
> - to the devices. The device tree structure should reflect the bus
> - attachments. Again an example; this system.mhs fragment:
> -
> - BEGIN ppc405_virtex4
> - PARAMETER INSTANCE = ppc405_0
> - PARAMETER HW_VER = 1.01.a
> - BUS_INTERFACE DPLB = plb_v34_0
> - BUS_INTERFACE IPLB = plb_v34_0
> - END
> -
> - BEGIN opb_intc
> - PARAMETER INSTANCE = opb_intc_0
> - PARAMETER HW_VER = 1.00.c
> - PARAMETER C_BASEADDR = 0xD1000FC0
> - PARAMETER C_HIGHADDR = 0xD1000FDF
> - BUS_INTERFACE SOPB = opb_v20_0
> - END
> -
> - BEGIN opb_uart16550
> - PARAMETER INSTANCE = opb_uart16550_0
> - PARAMETER HW_VER = 1.00.d
> - PARAMETER C_BASEADDR = 0xa0000000
> - PARAMETER C_HIGHADDR = 0xa0001FFF
> - BUS_INTERFACE SOPB = opb_v20_0
> - END
> -
> - BEGIN plb_v34
> - PARAMETER INSTANCE = plb_v34_0
> - PARAMETER HW_VER = 1.02.a
> - END
> -
> - BEGIN plb_bram_if_cntlr
> - PARAMETER INSTANCE = plb_bram_if_cntlr_0
> - PARAMETER HW_VER = 1.00.b
> - PARAMETER C_BASEADDR = 0xFFFF0000
> - PARAMETER C_HIGHADDR = 0xFFFFFFFF
> - BUS_INTERFACE SPLB = plb_v34_0
> - END
> -
> - BEGIN plb2opb_bridge
> - PARAMETER INSTANCE = plb2opb_bridge_0
> - PARAMETER HW_VER = 1.01.a
> - PARAMETER C_RNG0_BASEADDR = 0x20000000
> - PARAMETER C_RNG0_HIGHADDR = 0x3FFFFFFF
> - PARAMETER C_RNG1_BASEADDR = 0x60000000
> - PARAMETER C_RNG1_HIGHADDR = 0x7FFFFFFF
> - PARAMETER C_RNG2_BASEADDR = 0x80000000
> - PARAMETER C_RNG2_HIGHADDR = 0xBFFFFFFF
> - PARAMETER C_RNG3_BASEADDR = 0xC0000000
> - PARAMETER C_RNG3_HIGHADDR = 0xDFFFFFFF
> - BUS_INTERFACE SPLB = plb_v34_0
> - BUS_INTERFACE MOPB = opb_v20_0
> - END
> -
> - Gives this device tree (some properties removed for clarity):
> -
> - plb at 0 {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - compatible = "xlnx,plb-v34-1.02.a";
> - device_type = "ibm,plb";
> - ranges; // 1:1 translation
> -
> - plb_bram_if_cntrl_0: bram at ffff0000 {
> - reg = <ffff0000 10000>;
> - }
> -
> - opb at 20000000 {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - ranges = <20000000 20000000 20000000
> - 60000000 60000000 20000000
> - 80000000 80000000 40000000
> - c0000000 c0000000 20000000>;
> -
> - opb_uart16550_0: serial at a0000000 {
> - reg = <a00000000 2000>;
> - };
> -
> - opb_intc_0: interrupt-controller at d1000fc0 {
> - reg = <d1000fc0 20>;
> - };
> - };
> - };
> -
> That covers the general approach to binding xilinx IP cores into the
> device tree. The following are bindings for specific devices:
>
> diff --git a/Documentation/powerpc/bootwrapper.rst b/Documentation/powerpc/bootwrapper.rst
> index a6292afba573..cdfa2bc8425f 100644
> --- a/Documentation/powerpc/bootwrapper.rst
> +++ b/Documentation/powerpc/bootwrapper.rst
> @@ -70,28 +70,6 @@ Currently, the following image format targets exist:
> kernel with this image type and it depends entirely on
> the embedded device tree for all information.
>
> - The simpleImage is useful for booting systems with
> - an unknown firmware interface or for booting from
> - a debugger when no firmware is present (such as on
> - the Xilinx Virtex platform). The only assumption that
> - simpleImage makes is that RAM is correctly initialized
> - and that the MMU is either off or has RAM mapped to
> - base address 0.
> -
> - simpleImage also supports inserting special platform
> - specific initialization code to the start of the bootup
> - sequence. The virtex405 platform uses this feature to
> - ensure that the cache is invalidated before caching
> - is enabled. Platform specific initialization code is
> - added as part of the wrapper script and is keyed on
> - the image target name. For example, all
> - simpleImage.virtex405-* targets will add the
> - virtex405-head.S initialization code (This also means
> - that the dts file for virtex405 targets should be
> - named (virtex405-<board>.dts). Search the wrapper
> - script for 'virtex405' and see the file
> - arch/powerpc/boot/virtex405-head.S for details.
> -
> treeImage.%; Image format for used with OpenBIOS firmware found
> on some ppc4xx hardware. This image embeds a device
> tree blob inside the image.
> @@ -116,10 +94,8 @@ Image types which embed a device tree blob (simpleImage, dtbImage, treeImage,
> and cuImage) all generate the device tree blob from a file in the
> arch/powerpc/boot/dts/ directory. The Makefile selects the correct device
> tree source based on the name of the target. Therefore, if the kernel is
> -built with 'make treeImage.walnut simpleImage.virtex405-ml403', then the
> -build system will use arch/powerpc/boot/dts/walnut.dts to build
> -treeImage.walnut and arch/powerpc/boot/dts/virtex405-ml403.dts to build
> -the simpleImage.virtex405-ml403.
> +built with 'make treeImage.walnut', then the build system will use
> +arch/powerpc/boot/dts/walnut.dts to build treeImage.walnut.
>
> Two special targets called 'zImage' and 'zImage.initrd' also exist. These
> targets build all the default images as selected by the kernel configuration.
> diff --git a/MAINTAINERS b/MAINTAINERS
> index a0d86490c2c6..842a9bbc2013 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -9668,12 +9668,6 @@ L: linuxppc-dev at lists.ozlabs.org
> S: Maintained
> F: arch/powerpc/platforms/8xx/
>
> -LINUX FOR POWERPC EMBEDDED XILINX VIRTEX
> -L: linuxppc-dev at lists.ozlabs.org
> -S: Orphan
> -F: arch/powerpc/*/*virtex*
> -F: arch/powerpc/*/*/*virtex*
> -
> LINUX FOR POWERPC PA SEMI PWRFICIENT
> L: linuxppc-dev at lists.ozlabs.org
> S: Orphan
> diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug
> index 0b063830eea8..b88900f4832f 100644
> --- a/arch/powerpc/Kconfig.debug
> +++ b/arch/powerpc/Kconfig.debug
> @@ -230,7 +230,7 @@ config PPC_EARLY_DEBUG_40x
> help
> Select this to enable early debugging for IBM 40x chips via the
> inbuilt serial port. This works on chips with a 16550 compatible
> - UART. Xilinx chips with uartlite cannot use this option.
> + UART.
>
> config PPC_EARLY_DEBUG_CPM
> bool "Early serial debugging for Freescale CPM-based serial ports"
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index c53a1b8bba8b..d8077b7071dd 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -79,7 +79,6 @@ $(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405
> $(obj)/treeboot-iss4xx.o: BOOTCFLAGS += -mcpu=405
> $(obj)/treeboot-currituck.o: BOOTCFLAGS += -mcpu=405
> $(obj)/treeboot-akebono.o: BOOTCFLAGS += -mcpu=405
> -$(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405
>
> # The pre-boot decompressors pull in a lot of kernel headers and other source
> # files. This creates a bit of a dependency headache since we need to copy
> @@ -129,14 +128,12 @@ src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c
> src-wlib-$(CONFIG_PPC_8xx) += mpc8xx.c planetcore.c fsl-soc.c
> src-wlib-$(CONFIG_PPC_82xx) += pq2.c fsl-soc.c planetcore.c
> src-wlib-$(CONFIG_EMBEDDED6xx) += ugecon.c fsl-soc.c
> -src-wlib-$(CONFIG_XILINX_VIRTEX) += uartlite.c
> src-wlib-$(CONFIG_CPM) += cpm-serial.c
>
> src-plat-y := of.c epapr.c
> src-plat-$(CONFIG_40x) += fixed-head.S ep405.c cuboot-hotfoot.c \
> treeboot-walnut.c cuboot-acadia.c \
> - cuboot-kilauea.c simpleboot.c \
> - virtex405-head.S virtex.c
> + cuboot-kilauea.c simpleboot.c
> src-plat-$(CONFIG_44x) += treeboot-ebony.c cuboot-ebony.c treeboot-bamboo.c \
> cuboot-bamboo.c cuboot-sam440ep.c \
> cuboot-sequoia.c cuboot-rainier.c \
> @@ -144,7 +141,7 @@ src-plat-$(CONFIG_44x) += treeboot-ebony.c cuboot-ebony.c treeboot-bamboo.c \
> cuboot-warp.c cuboot-yosemite.c \
> treeboot-iss4xx.c treeboot-currituck.c \
> treeboot-akebono.c \
> - simpleboot.c fixed-head.S virtex.c
> + simpleboot.c fixed-head.S
> src-plat-$(CONFIG_PPC_8xx) += cuboot-8xx.c fixed-head.S ep88xc.c redboot-8xx.c
> src-plat-$(CONFIG_PPC_MPC52xx) += cuboot-52xx.c
> src-plat-$(CONFIG_PPC_82xx) += cuboot-pq2.c fixed-head.S ep8248e.c cuboot-824x.c
> diff --git a/arch/powerpc/boot/dts/Makefile b/arch/powerpc/boot/dts/Makefile
> index 1cbc0e4ce857..fb335d05aae8 100644
> --- a/arch/powerpc/boot/dts/Makefile
> +++ b/arch/powerpc/boot/dts/Makefile
> @@ -4,4 +4,3 @@ subdir-y += fsl
>
> dtstree := $(srctree)/$(src)
> dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
> -dtb-$(CONFIG_XILINX_VIRTEX440_GENERIC_BOARD) += virtex440-ml507.dtb virtex440-ml510.dtb
> diff --git a/arch/powerpc/boot/dts/virtex440-ml507.dts b/arch/powerpc/boot/dts/virtex440-ml507.dts
> deleted file mode 100644
> index 66f1c6312de6..000000000000
> --- a/arch/powerpc/boot/dts/virtex440-ml507.dts
> +++ /dev/null
> @@ -1,406 +0,0 @@
> -/*
> - * This file supports the Xilinx ML507 board with the 440 processor.
> - * A reference design for the FPGA is provided at http://git.xilinx.com.
> - *
> - * (C) Copyright 2008 Xilinx, Inc.
> - *
> - * This file is licensed under the terms of the GNU General Public License
> - * version 2. This program is licensed "as is" without any warranty of any
> - * kind, whether express or implied.
> - *
> - * ---
> - *
> - * Device Tree Generator version: 1.1
> - *
> - * CAUTION: This file is automatically generated by libgen.
> - * Version: Xilinx EDK 10.1.03 EDK_K_SP3.6
> - *
> - * XPS project directory: ml507_ppc440_emb_ref
> - */
> -
> -/dts-v1/;
> -
> -/ {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - compatible = "xlnx,virtex440";
> - dcr-parent = <&ppc440_0>;
> - model = "testing";
> - DDR2_SDRAM: memory at 0 {
> - device_type = "memory";
> - reg = < 0 0x10000000 >;
> - } ;
> - chosen {
> - bootargs = "console=ttyS0 root=/dev/ram";
> - stdout-path = &RS232_Uart_1;
> - } ;
> - cpus {
> - #address-cells = <1>;
> - #cpus = <1>;
> - #size-cells = <0>;
> - ppc440_0: cpu at 0 {
> - clock-frequency = <400000000>;
> - compatible = "PowerPC,440", "ibm,ppc440";
> - d-cache-line-size = <0x20>;
> - d-cache-size = <0x8000>;
> - dcr-access-method = "native";
> - dcr-controller ;
> - device_type = "cpu";
> - i-cache-line-size = <0x20>;
> - i-cache-size = <0x8000>;
> - model = "PowerPC,440";
> - reg = <0>;
> - timebase-frequency = <400000000>;
> - xlnx,apu-control = <1>;
> - xlnx,apu-udi-0 = <0>;
> - xlnx,apu-udi-1 = <0>;
> - xlnx,apu-udi-10 = <0>;
> - xlnx,apu-udi-11 = <0>;
> - xlnx,apu-udi-12 = <0>;
> - xlnx,apu-udi-13 = <0>;
> - xlnx,apu-udi-14 = <0>;
> - xlnx,apu-udi-15 = <0>;
> - xlnx,apu-udi-2 = <0>;
> - xlnx,apu-udi-3 = <0>;
> - xlnx,apu-udi-4 = <0>;
> - xlnx,apu-udi-5 = <0>;
> - xlnx,apu-udi-6 = <0>;
> - xlnx,apu-udi-7 = <0>;
> - xlnx,apu-udi-8 = <0>;
> - xlnx,apu-udi-9 = <0>;
> - xlnx,dcr-autolock-enable = <1>;
> - xlnx,dcu-rd-ld-cache-plb-prio = <0>;
> - xlnx,dcu-rd-noncache-plb-prio = <0>;
> - xlnx,dcu-rd-touch-plb-prio = <0>;
> - xlnx,dcu-rd-urgent-plb-prio = <0>;
> - xlnx,dcu-wr-flush-plb-prio = <0>;
> - xlnx,dcu-wr-store-plb-prio = <0>;
> - xlnx,dcu-wr-urgent-plb-prio = <0>;
> - xlnx,dma0-control = <0>;
> - xlnx,dma0-plb-prio = <0>;
> - xlnx,dma0-rxchannelctrl = <0x1010000>;
> - xlnx,dma0-rxirqtimer = <0x3ff>;
> - xlnx,dma0-txchannelctrl = <0x1010000>;
> - xlnx,dma0-txirqtimer = <0x3ff>;
> - xlnx,dma1-control = <0>;
> - xlnx,dma1-plb-prio = <0>;
> - xlnx,dma1-rxchannelctrl = <0x1010000>;
> - xlnx,dma1-rxirqtimer = <0x3ff>;
> - xlnx,dma1-txchannelctrl = <0x1010000>;
> - xlnx,dma1-txirqtimer = <0x3ff>;
> - xlnx,dma2-control = <0>;
> - xlnx,dma2-plb-prio = <0>;
> - xlnx,dma2-rxchannelctrl = <0x1010000>;
> - xlnx,dma2-rxirqtimer = <0x3ff>;
> - xlnx,dma2-txchannelctrl = <0x1010000>;
> - xlnx,dma2-txirqtimer = <0x3ff>;
> - xlnx,dma3-control = <0>;
> - xlnx,dma3-plb-prio = <0>;
> - xlnx,dma3-rxchannelctrl = <0x1010000>;
> - xlnx,dma3-rxirqtimer = <0x3ff>;
> - xlnx,dma3-txchannelctrl = <0x1010000>;
> - xlnx,dma3-txirqtimer = <0x3ff>;
> - xlnx,endian-reset = <0>;
> - xlnx,generate-plb-timespecs = <1>;
> - xlnx,icu-rd-fetch-plb-prio = <0>;
> - xlnx,icu-rd-spec-plb-prio = <0>;
> - xlnx,icu-rd-touch-plb-prio = <0>;
> - xlnx,interconnect-imask = <0xffffffff>;
> - xlnx,mplb-allow-lock-xfer = <1>;
> - xlnx,mplb-arb-mode = <0>;
> - xlnx,mplb-awidth = <0x20>;
> - xlnx,mplb-counter = <0x500>;
> - xlnx,mplb-dwidth = <0x80>;
> - xlnx,mplb-max-burst = <8>;
> - xlnx,mplb-native-dwidth = <0x80>;
> - xlnx,mplb-p2p = <0>;
> - xlnx,mplb-prio-dcur = <2>;
> - xlnx,mplb-prio-dcuw = <3>;
> - xlnx,mplb-prio-icu = <4>;
> - xlnx,mplb-prio-splb0 = <1>;
> - xlnx,mplb-prio-splb1 = <0>;
> - xlnx,mplb-read-pipe-enable = <1>;
> - xlnx,mplb-sync-tattribute = <0>;
> - xlnx,mplb-wdog-enable = <1>;
> - xlnx,mplb-write-pipe-enable = <1>;
> - xlnx,mplb-write-post-enable = <1>;
> - xlnx,num-dma = <1>;
> - xlnx,pir = <0xf>;
> - xlnx,ppc440mc-addr-base = <0>;
> - xlnx,ppc440mc-addr-high = <0xfffffff>;
> - xlnx,ppc440mc-arb-mode = <0>;
> - xlnx,ppc440mc-bank-conflict-mask = <0xc00000>;
> - xlnx,ppc440mc-control = <0xf810008f>;
> - xlnx,ppc440mc-max-burst = <8>;
> - xlnx,ppc440mc-prio-dcur = <2>;
> - xlnx,ppc440mc-prio-dcuw = <3>;
> - xlnx,ppc440mc-prio-icu = <4>;
> - xlnx,ppc440mc-prio-splb0 = <1>;
> - xlnx,ppc440mc-prio-splb1 = <0>;
> - xlnx,ppc440mc-row-conflict-mask = <0x3ffe00>;
> - xlnx,ppcdm-asyncmode = <0>;
> - xlnx,ppcds-asyncmode = <0>;
> - xlnx,user-reset = <0>;
> - DMA0: sdma at 80 {
> - compatible = "xlnx,ll-dma-1.00.a";
> - dcr-reg = < 0x80 0x11 >;
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 10 2 11 2 >;
> - } ;
> - } ;
> - } ;
> - plb_v46_0: plb at 0 {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - compatible = "xlnx,plb-v46-1.03.a", "simple-bus";
> - ranges ;
> - DIP_Switches_8Bit: gpio at 81460000 {
> - compatible = "xlnx,xps-gpio-1.00.a";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 7 2 >;
> - reg = < 0x81460000 0x10000 >;
> - xlnx,all-inputs = <1>;
> - xlnx,all-inputs-2 = <0>;
> - xlnx,dout-default = <0>;
> - xlnx,dout-default-2 = <0>;
> - xlnx,family = "virtex5";
> - xlnx,gpio-width = <8>;
> - xlnx,interrupt-present = <1>;
> - xlnx,is-bidir = <1>;
> - xlnx,is-bidir-2 = <1>;
> - xlnx,is-dual = <0>;
> - xlnx,tri-default = <0xffffffff>;
> - xlnx,tri-default-2 = <0xffffffff>;
> - } ;
> - FLASH: flash at fc000000 {
> - bank-width = <2>;
> - compatible = "xlnx,xps-mch-emc-2.00.a", "cfi-flash";
> - reg = < 0xfc000000 0x2000000 >;
> - xlnx,family = "virtex5";
> - xlnx,include-datawidth-matching-0 = <0x1>;
> - xlnx,include-datawidth-matching-1 = <0x0>;
> - xlnx,include-datawidth-matching-2 = <0x0>;
> - xlnx,include-datawidth-matching-3 = <0x0>;
> - xlnx,include-negedge-ioregs = <0x0>;
> - xlnx,include-plb-ipif = <0x1>;
> - xlnx,include-wrbuf = <0x1>;
> - xlnx,max-mem-width = <0x10>;
> - xlnx,mch-native-dwidth = <0x20>;
> - xlnx,mch-plb-clk-period-ps = <0x2710>;
> - xlnx,mch-splb-awidth = <0x20>;
> - xlnx,mch0-accessbuf-depth = <0x10>;
> - xlnx,mch0-protocol = <0x0>;
> - xlnx,mch0-rddatabuf-depth = <0x10>;
> - xlnx,mch1-accessbuf-depth = <0x10>;
> - xlnx,mch1-protocol = <0x0>;
> - xlnx,mch1-rddatabuf-depth = <0x10>;
> - xlnx,mch2-accessbuf-depth = <0x10>;
> - xlnx,mch2-protocol = <0x0>;
> - xlnx,mch2-rddatabuf-depth = <0x10>;
> - xlnx,mch3-accessbuf-depth = <0x10>;
> - xlnx,mch3-protocol = <0x0>;
> - xlnx,mch3-rddatabuf-depth = <0x10>;
> - xlnx,mem0-width = <0x10>;
> - xlnx,mem1-width = <0x20>;
> - xlnx,mem2-width = <0x20>;
> - xlnx,mem3-width = <0x20>;
> - xlnx,num-banks-mem = <0x1>;
> - xlnx,num-channels = <0x2>;
> - xlnx,priority-mode = <0x0>;
> - xlnx,synch-mem-0 = <0x0>;
> - xlnx,synch-mem-1 = <0x0>;
> - xlnx,synch-mem-2 = <0x0>;
> - xlnx,synch-mem-3 = <0x0>;
> - xlnx,synch-pipedelay-0 = <0x2>;
> - xlnx,synch-pipedelay-1 = <0x2>;
> - xlnx,synch-pipedelay-2 = <0x2>;
> - xlnx,synch-pipedelay-3 = <0x2>;
> - xlnx,tavdv-ps-mem-0 = <0x1adb0>;
> - xlnx,tavdv-ps-mem-1 = <0x3a98>;
> - xlnx,tavdv-ps-mem-2 = <0x3a98>;
> - xlnx,tavdv-ps-mem-3 = <0x3a98>;
> - xlnx,tcedv-ps-mem-0 = <0x1adb0>;
> - xlnx,tcedv-ps-mem-1 = <0x3a98>;
> - xlnx,tcedv-ps-mem-2 = <0x3a98>;
> - xlnx,tcedv-ps-mem-3 = <0x3a98>;
> - xlnx,thzce-ps-mem-0 = <0x88b8>;
> - xlnx,thzce-ps-mem-1 = <0x1b58>;
> - xlnx,thzce-ps-mem-2 = <0x1b58>;
> - xlnx,thzce-ps-mem-3 = <0x1b58>;
> - xlnx,thzoe-ps-mem-0 = <0x1b58>;
> - xlnx,thzoe-ps-mem-1 = <0x1b58>;
> - xlnx,thzoe-ps-mem-2 = <0x1b58>;
> - xlnx,thzoe-ps-mem-3 = <0x1b58>;
> - xlnx,tlzwe-ps-mem-0 = <0x88b8>;
> - xlnx,tlzwe-ps-mem-1 = <0x0>;
> - xlnx,tlzwe-ps-mem-2 = <0x0>;
> - xlnx,tlzwe-ps-mem-3 = <0x0>;
> - xlnx,twc-ps-mem-0 = <0x2af8>;
> - xlnx,twc-ps-mem-1 = <0x3a98>;
> - xlnx,twc-ps-mem-2 = <0x3a98>;
> - xlnx,twc-ps-mem-3 = <0x3a98>;
> - xlnx,twp-ps-mem-0 = <0x11170>;
> - xlnx,twp-ps-mem-1 = <0x2ee0>;
> - xlnx,twp-ps-mem-2 = <0x2ee0>;
> - xlnx,twp-ps-mem-3 = <0x2ee0>;
> - xlnx,xcl0-linesize = <0x4>;
> - xlnx,xcl0-writexfer = <0x1>;
> - xlnx,xcl1-linesize = <0x4>;
> - xlnx,xcl1-writexfer = <0x1>;
> - xlnx,xcl2-linesize = <0x4>;
> - xlnx,xcl2-writexfer = <0x1>;
> - xlnx,xcl3-linesize = <0x4>;
> - xlnx,xcl3-writexfer = <0x1>;
> - } ;
> - Hard_Ethernet_MAC: xps-ll-temac at 81c00000 {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - compatible = "xlnx,compound";
> - ethernet at 81c00000 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> - compatible = "xlnx,xps-ll-temac-1.01.b";
> - device_type = "network";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 5 2 >;
> - llink-connected = <&DMA0>;
> - local-mac-address = [ 02 00 00 00 00 00 ];
> - reg = < 0x81c00000 0x40 >;
> - xlnx,bus2core-clk-ratio = <1>;
> - xlnx,phy-type = <1>;
> - xlnx,phyaddr = <1>;
> - xlnx,rxcsum = <1>;
> - xlnx,rxfifo = <0x1000>;
> - xlnx,temac-type = <0>;
> - xlnx,txcsum = <1>;
> - xlnx,txfifo = <0x1000>;
> - phy-handle = <&phy7>;
> - clock-frequency = <100000000>;
> - phy7: phy at 7 {
> - compatible = "marvell,88e1111";
> - reg = <7>;
> - } ;
> - } ;
> - } ;
> - IIC_EEPROM: i2c at 81600000 {
> - compatible = "xlnx,xps-iic-2.00.a";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 6 2 >;
> - reg = < 0x81600000 0x10000 >;
> - xlnx,clk-freq = <0x5f5e100>;
> - xlnx,family = "virtex5";
> - xlnx,gpo-width = <0x1>;
> - xlnx,iic-freq = <0x186a0>;
> - xlnx,scl-inertial-delay = <0x0>;
> - xlnx,sda-inertial-delay = <0x0>;
> - xlnx,ten-bit-adr = <0x0>;
> - } ;
> - LEDs_8Bit: gpio at 81400000 {
> - compatible = "xlnx,xps-gpio-1.00.a";
> - reg = < 0x81400000 0x10000 >;
> - xlnx,all-inputs = <0>;
> - xlnx,all-inputs-2 = <0>;
> - xlnx,dout-default = <0>;
> - xlnx,dout-default-2 = <0>;
> - xlnx,family = "virtex5";
> - xlnx,gpio-width = <8>;
> - xlnx,interrupt-present = <0>;
> - xlnx,is-bidir = <1>;
> - xlnx,is-bidir-2 = <1>;
> - xlnx,is-dual = <0>;
> - xlnx,tri-default = <0xffffffff>;
> - xlnx,tri-default-2 = <0xffffffff>;
> - } ;
> - LEDs_Positions: gpio at 81420000 {
> - compatible = "xlnx,xps-gpio-1.00.a";
> - reg = < 0x81420000 0x10000 >;
> - xlnx,all-inputs = <0>;
> - xlnx,all-inputs-2 = <0>;
> - xlnx,dout-default = <0>;
> - xlnx,dout-default-2 = <0>;
> - xlnx,family = "virtex5";
> - xlnx,gpio-width = <5>;
> - xlnx,interrupt-present = <0>;
> - xlnx,is-bidir = <1>;
> - xlnx,is-bidir-2 = <1>;
> - xlnx,is-dual = <0>;
> - xlnx,tri-default = <0xffffffff>;
> - xlnx,tri-default-2 = <0xffffffff>;
> - } ;
> - Push_Buttons_5Bit: gpio at 81440000 {
> - compatible = "xlnx,xps-gpio-1.00.a";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 8 2 >;
> - reg = < 0x81440000 0x10000 >;
> - xlnx,all-inputs = <1>;
> - xlnx,all-inputs-2 = <0>;
> - xlnx,dout-default = <0>;
> - xlnx,dout-default-2 = <0>;
> - xlnx,family = "virtex5";
> - xlnx,gpio-width = <5>;
> - xlnx,interrupt-present = <1>;
> - xlnx,is-bidir = <1>;
> - xlnx,is-bidir-2 = <1>;
> - xlnx,is-dual = <0>;
> - xlnx,tri-default = <0xffffffff>;
> - xlnx,tri-default-2 = <0xffffffff>;
> - } ;
> - RS232_Uart_1: serial at 83e00000 {
> - clock-frequency = <100000000>;
> - compatible = "xlnx,xps-uart16550-2.00.b", "ns16550";
> - current-speed = <9600>;
> - device_type = "serial";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 9 2 >;
> - reg = < 0x83e00000 0x10000 >;
> - reg-offset = <0x1003>;
> - reg-shift = <2>;
> - xlnx,family = "virtex5";
> - xlnx,has-external-rclk = <0>;
> - xlnx,has-external-xin = <0>;
> - xlnx,is-a-16550 = <1>;
> - } ;
> - SysACE_CompactFlash: sysace at 83600000 {
> - compatible = "xlnx,xps-sysace-1.00.a";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 4 2 >;
> - reg = < 0x83600000 0x10000 >;
> - xlnx,family = "virtex5";
> - xlnx,mem-width = <0x10>;
> - } ;
> - xps_bram_if_cntlr_1: xps-bram-if-cntlr at ffff0000 {
> - compatible = "xlnx,xps-bram-if-cntlr-1.00.a";
> - reg = < 0xffff0000 0x10000 >;
> - xlnx,family = "virtex5";
> - } ;
> - xps_intc_0: interrupt-controller at 81800000 {
> - #interrupt-cells = <2>;
> - compatible = "xlnx,xps-intc-1.00.a";
> - interrupt-controller ;
> - reg = < 0x81800000 0x10000 >;
> - xlnx,num-intr-inputs = <0xc>;
> - } ;
> - xps_timebase_wdt_1: xps-timebase-wdt at 83a00000 {
> - compatible = "xlnx,xps-timebase-wdt-1.00.b";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 2 0 1 2 >;
> - reg = < 0x83a00000 0x10000 >;
> - xlnx,family = "virtex5";
> - xlnx,wdt-enable-once = <0>;
> - xlnx,wdt-interval = <0x1e>;
> - } ;
> - xps_timer_1: timer at 83c00000 {
> - compatible = "xlnx,xps-timer-1.00.a";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 3 2 >;
> - reg = < 0x83c00000 0x10000 >;
> - xlnx,count-width = <0x20>;
> - xlnx,family = "virtex5";
> - xlnx,gen0-assert = <1>;
> - xlnx,gen1-assert = <1>;
> - xlnx,one-timer-only = <1>;
> - xlnx,trig0-assert = <1>;
> - xlnx,trig1-assert = <1>;
> - } ;
> - } ;
> -} ;
> diff --git a/arch/powerpc/boot/dts/virtex440-ml510.dts b/arch/powerpc/boot/dts/virtex440-ml510.dts
> deleted file mode 100644
> index 3b736ca26ddc..000000000000
> --- a/arch/powerpc/boot/dts/virtex440-ml510.dts
> +++ /dev/null
> @@ -1,466 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0
> -/*
> - * Xilinx ML510 Reference Design support
> - *
> - * This DTS file was created for the ml510_bsb1_pcores_ppc440 reference design.
> - * The reference design contains a bug which prevent PCI DMA from working
> - * properly. A description of the bug is given in the plbv46_pci section. It
> - * needs to be fixed by the user until Xilinx updates their reference design.
> - *
> - * Copyright 2009, Roderick Colenbrander
> - */
> -
> -/dts-v1/;
> -/ {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - compatible = "xlnx,ml510-ref-design", "xlnx,virtex440";
> - dcr-parent = <&ppc440_0>;
> - DDR2_SDRAM_DIMM0: memory at 0 {
> - device_type = "memory";
> - reg = < 0x0 0x20000000 >;
> - } ;
> - alias {
> - ethernet0 = &Hard_Ethernet_MAC;
> - serial0 = &RS232_Uart_1;
> - } ;
> - chosen {
> - bootargs = "console=ttyS0 root=/dev/ram";
> - stdout-path = "/plb at 0/serial at 83e00000";
> - } ;
> - cpus {
> - #address-cells = <1>;
> - #cpus = <0x1>;
> - #size-cells = <0>;
> - ppc440_0: cpu at 0 {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - clock-frequency = <300000000>;
> - compatible = "PowerPC,440", "ibm,ppc440";
> - d-cache-line-size = <0x20>;
> - d-cache-size = <0x8000>;
> - dcr-access-method = "native";
> - dcr-controller ;
> - device_type = "cpu";
> - i-cache-line-size = <0x20>;
> - i-cache-size = <0x8000>;
> - model = "PowerPC,440";
> - reg = <0>;
> - timebase-frequency = <300000000>;
> - xlnx,apu-control = <0x2000>;
> - xlnx,apu-udi-0 = <0x0>;
> - xlnx,apu-udi-1 = <0x0>;
> - xlnx,apu-udi-10 = <0x0>;
> - xlnx,apu-udi-11 = <0x0>;
> - xlnx,apu-udi-12 = <0x0>;
> - xlnx,apu-udi-13 = <0x0>;
> - xlnx,apu-udi-14 = <0x0>;
> - xlnx,apu-udi-15 = <0x0>;
> - xlnx,apu-udi-2 = <0x0>;
> - xlnx,apu-udi-3 = <0x0>;
> - xlnx,apu-udi-4 = <0x0>;
> - xlnx,apu-udi-5 = <0x0>;
> - xlnx,apu-udi-6 = <0x0>;
> - xlnx,apu-udi-7 = <0x0>;
> - xlnx,apu-udi-8 = <0x0>;
> - xlnx,apu-udi-9 = <0x0>;
> - xlnx,dcr-autolock-enable = <0x1>;
> - xlnx,dcu-rd-ld-cache-plb-prio = <0x0>;
> - xlnx,dcu-rd-noncache-plb-prio = <0x0>;
> - xlnx,dcu-rd-touch-plb-prio = <0x0>;
> - xlnx,dcu-rd-urgent-plb-prio = <0x0>;
> - xlnx,dcu-wr-flush-plb-prio = <0x0>;
> - xlnx,dcu-wr-store-plb-prio = <0x0>;
> - xlnx,dcu-wr-urgent-plb-prio = <0x0>;
> - xlnx,dma0-control = <0x0>;
> - xlnx,dma0-plb-prio = <0x0>;
> - xlnx,dma0-rxchannelctrl = <0x1010000>;
> - xlnx,dma0-rxirqtimer = <0x3ff>;
> - xlnx,dma0-txchannelctrl = <0x1010000>;
> - xlnx,dma0-txirqtimer = <0x3ff>;
> - xlnx,dma1-control = <0x0>;
> - xlnx,dma1-plb-prio = <0x0>;
> - xlnx,dma1-rxchannelctrl = <0x1010000>;
> - xlnx,dma1-rxirqtimer = <0x3ff>;
> - xlnx,dma1-txchannelctrl = <0x1010000>;
> - xlnx,dma1-txirqtimer = <0x3ff>;
> - xlnx,dma2-control = <0x0>;
> - xlnx,dma2-plb-prio = <0x0>;
> - xlnx,dma2-rxchannelctrl = <0x1010000>;
> - xlnx,dma2-rxirqtimer = <0x3ff>;
> - xlnx,dma2-txchannelctrl = <0x1010000>;
> - xlnx,dma2-txirqtimer = <0x3ff>;
> - xlnx,dma3-control = <0x0>;
> - xlnx,dma3-plb-prio = <0x0>;
> - xlnx,dma3-rxchannelctrl = <0x1010000>;
> - xlnx,dma3-rxirqtimer = <0x3ff>;
> - xlnx,dma3-txchannelctrl = <0x1010000>;
> - xlnx,dma3-txirqtimer = <0x3ff>;
> - xlnx,endian-reset = <0x0>;
> - xlnx,generate-plb-timespecs = <0x1>;
> - xlnx,icu-rd-fetch-plb-prio = <0x0>;
> - xlnx,icu-rd-spec-plb-prio = <0x0>;
> - xlnx,icu-rd-touch-plb-prio = <0x0>;
> - xlnx,interconnect-imask = <0xffffffff>;
> - xlnx,mplb-allow-lock-xfer = <0x1>;
> - xlnx,mplb-arb-mode = <0x0>;
> - xlnx,mplb-awidth = <0x20>;
> - xlnx,mplb-counter = <0x500>;
> - xlnx,mplb-dwidth = <0x80>;
> - xlnx,mplb-max-burst = <0x8>;
> - xlnx,mplb-native-dwidth = <0x80>;
> - xlnx,mplb-p2p = <0x0>;
> - xlnx,mplb-prio-dcur = <0x2>;
> - xlnx,mplb-prio-dcuw = <0x3>;
> - xlnx,mplb-prio-icu = <0x4>;
> - xlnx,mplb-prio-splb0 = <0x1>;
> - xlnx,mplb-prio-splb1 = <0x0>;
> - xlnx,mplb-read-pipe-enable = <0x1>;
> - xlnx,mplb-sync-tattribute = <0x0>;
> - xlnx,mplb-wdog-enable = <0x1>;
> - xlnx,mplb-write-pipe-enable = <0x1>;
> - xlnx,mplb-write-post-enable = <0x1>;
> - xlnx,num-dma = <0x0>;
> - xlnx,pir = <0xf>;
> - xlnx,ppc440mc-addr-base = <0x0>;
> - xlnx,ppc440mc-addr-high = <0x1fffffff>;
> - xlnx,ppc440mc-arb-mode = <0x0>;
> - xlnx,ppc440mc-bank-conflict-mask = <0x1800000>;
> - xlnx,ppc440mc-control = <0xf810008f>;
> - xlnx,ppc440mc-max-burst = <0x8>;
> - xlnx,ppc440mc-prio-dcur = <0x2>;
> - xlnx,ppc440mc-prio-dcuw = <0x3>;
> - xlnx,ppc440mc-prio-icu = <0x4>;
> - xlnx,ppc440mc-prio-splb0 = <0x1>;
> - xlnx,ppc440mc-prio-splb1 = <0x0>;
> - xlnx,ppc440mc-row-conflict-mask = <0x7ffe00>;
> - xlnx,ppcdm-asyncmode = <0x0>;
> - xlnx,ppcds-asyncmode = <0x0>;
> - xlnx,user-reset = <0x0>;
> - } ;
> - } ;
> - plb_v46_0: plb at 0 {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - compatible = "xlnx,plb-v46-1.03.a", "simple-bus";
> - ranges ;
> - FLASH: flash at fc000000 {
> - bank-width = <2>;
> - compatible = "xlnx,xps-mch-emc-2.00.a", "cfi-flash";
> - reg = < 0xfc000000 0x2000000 >;
> - xlnx,family = "virtex5";
> - xlnx,include-datawidth-matching-0 = <0x1>;
> - xlnx,include-datawidth-matching-1 = <0x0>;
> - xlnx,include-datawidth-matching-2 = <0x0>;
> - xlnx,include-datawidth-matching-3 = <0x0>;
> - xlnx,include-negedge-ioregs = <0x0>;
> - xlnx,include-plb-ipif = <0x1>;
> - xlnx,include-wrbuf = <0x1>;
> - xlnx,max-mem-width = <0x10>;
> - xlnx,mch-native-dwidth = <0x20>;
> - xlnx,mch-plb-clk-period-ps = <0x2710>;
> - xlnx,mch-splb-awidth = <0x20>;
> - xlnx,mch0-accessbuf-depth = <0x10>;
> - xlnx,mch0-protocol = <0x0>;
> - xlnx,mch0-rddatabuf-depth = <0x10>;
> - xlnx,mch1-accessbuf-depth = <0x10>;
> - xlnx,mch1-protocol = <0x0>;
> - xlnx,mch1-rddatabuf-depth = <0x10>;
> - xlnx,mch2-accessbuf-depth = <0x10>;
> - xlnx,mch2-protocol = <0x0>;
> - xlnx,mch2-rddatabuf-depth = <0x10>;
> - xlnx,mch3-accessbuf-depth = <0x10>;
> - xlnx,mch3-protocol = <0x0>;
> - xlnx,mch3-rddatabuf-depth = <0x10>;
> - xlnx,mem0-width = <0x10>;
> - xlnx,mem1-width = <0x20>;
> - xlnx,mem2-width = <0x20>;
> - xlnx,mem3-width = <0x20>;
> - xlnx,num-banks-mem = <0x1>;
> - xlnx,num-channels = <0x2>;
> - xlnx,priority-mode = <0x0>;
> - xlnx,synch-mem-0 = <0x0>;
> - xlnx,synch-mem-1 = <0x0>;
> - xlnx,synch-mem-2 = <0x0>;
> - xlnx,synch-mem-3 = <0x0>;
> - xlnx,synch-pipedelay-0 = <0x2>;
> - xlnx,synch-pipedelay-1 = <0x2>;
> - xlnx,synch-pipedelay-2 = <0x2>;
> - xlnx,synch-pipedelay-3 = <0x2>;
> - xlnx,tavdv-ps-mem-0 = <0x1adb0>;
> - xlnx,tavdv-ps-mem-1 = <0x3a98>;
> - xlnx,tavdv-ps-mem-2 = <0x3a98>;
> - xlnx,tavdv-ps-mem-3 = <0x3a98>;
> - xlnx,tcedv-ps-mem-0 = <0x1adb0>;
> - xlnx,tcedv-ps-mem-1 = <0x3a98>;
> - xlnx,tcedv-ps-mem-2 = <0x3a98>;
> - xlnx,tcedv-ps-mem-3 = <0x3a98>;
> - xlnx,thzce-ps-mem-0 = <0x88b8>;
> - xlnx,thzce-ps-mem-1 = <0x1b58>;
> - xlnx,thzce-ps-mem-2 = <0x1b58>;
> - xlnx,thzce-ps-mem-3 = <0x1b58>;
> - xlnx,thzoe-ps-mem-0 = <0x1b58>;
> - xlnx,thzoe-ps-mem-1 = <0x1b58>;
> - xlnx,thzoe-ps-mem-2 = <0x1b58>;
> - xlnx,thzoe-ps-mem-3 = <0x1b58>;
> - xlnx,tlzwe-ps-mem-0 = <0x88b8>;
> - xlnx,tlzwe-ps-mem-1 = <0x0>;
> - xlnx,tlzwe-ps-mem-2 = <0x0>;
> - xlnx,tlzwe-ps-mem-3 = <0x0>;
> - xlnx,twc-ps-mem-0 = <0x1adb0>;
> - xlnx,twc-ps-mem-1 = <0x3a98>;
> - xlnx,twc-ps-mem-2 = <0x3a98>;
> - xlnx,twc-ps-mem-3 = <0x3a98>;
> - xlnx,twp-ps-mem-0 = <0x11170>;
> - xlnx,twp-ps-mem-1 = <0x2ee0>;
> - xlnx,twp-ps-mem-2 = <0x2ee0>;
> - xlnx,twp-ps-mem-3 = <0x2ee0>;
> - xlnx,xcl0-linesize = <0x4>;
> - xlnx,xcl0-writexfer = <0x1>;
> - xlnx,xcl1-linesize = <0x4>;
> - xlnx,xcl1-writexfer = <0x1>;
> - xlnx,xcl2-linesize = <0x4>;
> - xlnx,xcl2-writexfer = <0x1>;
> - xlnx,xcl3-linesize = <0x4>;
> - xlnx,xcl3-writexfer = <0x1>;
> - } ;
> - Hard_Ethernet_MAC: xps-ll-temac at 81c00000 {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - compatible = "xlnx,compound";
> - ethernet at 81c00000 {
> - compatible = "xlnx,xps-ll-temac-1.01.b";
> - device_type = "network";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 8 2 >;
> - llink-connected = <&Hard_Ethernet_MAC_fifo>;
> - local-mac-address = [ 02 00 00 00 00 00 ];
> - reg = < 0x81c00000 0x40 >;
> - xlnx,bus2core-clk-ratio = <0x1>;
> - xlnx,phy-type = <0x3>;
> - xlnx,phyaddr = <0x1>;
> - xlnx,rxcsum = <0x0>;
> - xlnx,rxfifo = <0x8000>;
> - xlnx,temac-type = <0x0>;
> - xlnx,txcsum = <0x0>;
> - xlnx,txfifo = <0x8000>;
> - } ;
> - } ;
> - Hard_Ethernet_MAC_fifo: xps-ll-fifo at 81a00000 {
> - compatible = "xlnx,xps-ll-fifo-1.01.a";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 6 2 >;
> - reg = < 0x81a00000 0x10000 >;
> - xlnx,family = "virtex5";
> - } ;
> - IIC_EEPROM: i2c at 81600000 {
> - compatible = "xlnx,xps-iic-2.00.a";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 9 2 >;
> - reg = < 0x81600000 0x10000 >;
> - xlnx,clk-freq = <0x5f5e100>;
> - xlnx,family = "virtex5";
> - xlnx,gpo-width = <0x1>;
> - xlnx,iic-freq = <0x186a0>;
> - xlnx,scl-inertial-delay = <0x5>;
> - xlnx,sda-inertial-delay = <0x5>;
> - xlnx,ten-bit-adr = <0x0>;
> - } ;
> - LCD_OPTIONAL: gpio at 81420000 {
> - compatible = "xlnx,xps-gpio-1.00.a";
> - reg = < 0x81420000 0x10000 >;
> - xlnx,all-inputs = <0x0>;
> - xlnx,all-inputs-2 = <0x0>;
> - xlnx,dout-default = <0x0>;
> - xlnx,dout-default-2 = <0x0>;
> - xlnx,family = "virtex5";
> - xlnx,gpio-width = <0xb>;
> - xlnx,interrupt-present = <0x0>;
> - xlnx,is-bidir = <0x1>;
> - xlnx,is-bidir-2 = <0x1>;
> - xlnx,is-dual = <0x0>;
> - xlnx,tri-default = <0xffffffff>;
> - xlnx,tri-default-2 = <0xffffffff>;
> - } ;
> - LEDs_4Bit: gpio at 81400000 {
> - compatible = "xlnx,xps-gpio-1.00.a";
> - reg = < 0x81400000 0x10000 >;
> - xlnx,all-inputs = <0x0>;
> - xlnx,all-inputs-2 = <0x0>;
> - xlnx,dout-default = <0x0>;
> - xlnx,dout-default-2 = <0x0>;
> - xlnx,family = "virtex5";
> - xlnx,gpio-width = <0x4>;
> - xlnx,interrupt-present = <0x0>;
> - xlnx,is-bidir = <0x1>;
> - xlnx,is-bidir-2 = <0x1>;
> - xlnx,is-dual = <0x0>;
> - xlnx,tri-default = <0xffffffff>;
> - xlnx,tri-default-2 = <0xffffffff>;
> - } ;
> - RS232_Uart_1: serial at 83e00000 {
> - clock-frequency = <100000000>;
> - compatible = "xlnx,xps-uart16550-2.00.b", "ns16550";
> - current-speed = <9600>;
> - device_type = "serial";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 11 2 >;
> - reg = < 0x83e00000 0x10000 >;
> - reg-offset = <0x1003>;
> - reg-shift = <2>;
> - xlnx,family = "virtex5";
> - xlnx,has-external-rclk = <0x0>;
> - xlnx,has-external-xin = <0x0>;
> - xlnx,is-a-16550 = <0x1>;
> - } ;
> - SPI_EEPROM: xps-spi at feff8000 {
> - compatible = "xlnx,xps-spi-2.00.b";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 10 2 >;
> - reg = < 0xfeff8000 0x80 >;
> - xlnx,family = "virtex5";
> - xlnx,fifo-exist = <0x1>;
> - xlnx,num-ss-bits = <0x1>;
> - xlnx,num-transfer-bits = <0x8>;
> - xlnx,sck-ratio = <0x80>;
> - } ;
> - SysACE_CompactFlash: sysace at 83600000 {
> - compatible = "xlnx,xps-sysace-1.00.a";
> - interrupt-parent = <&xps_intc_0>;
> - interrupts = < 7 2 >;
> - reg = < 0x83600000 0x10000 >;
> - xlnx,family = "virtex5";
> - xlnx,mem-width = <0x10>;
> - } ;
> - plbv46_pci_0: plbv46-pci at 85e00000 {
> - #size-cells = <2>;
> - #address-cells = <3>;
> - compatible = "xlnx,plbv46-pci-1.03.a";
> - device_type = "pci";
> - reg = < 0x85e00000 0x10000 >;
> -
> - /*
> - * The default ML510 BSB has C_IPIFBAR2PCIBAR_0 set to
> - * 0 which means that a read/write to the memory mapped
> - * i/o region (which starts at 0xa0000000) for pci
> - * bar 0 on the plb side translates to 0.
> - * It is important to set this value to 0xa0000000, so
> - * that inbound and outbound pci transactions work
> - * properly including DMA.
> - */
> - ranges = <0x02000000 0 0xa0000000 0xa0000000 0 0x20000000
> - 0x01000000 0 0x00000000 0xf0000000 0 0x00010000>;
> -
> - #interrupt-cells = <1>;
> - interrupt-parent = <&xps_intc_0>;
> - interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
> - interrupt-map = <
> - /* IRQ mapping for pci slots and ALI M1533
> - * periperhals. In total there are 5 interrupt
> - * lines connected to a xps_intc controller.
> - * Four of them are PCI IRQ A, B, C, D and
> - * which correspond to respectively xpx_intc
> - * 5, 4, 3 and 2. The fifth interrupt line is
> - * connected to the south bridge and this one
> - * uses irq 1 and is active high instead of
> - * active low.
> - *
> - * The M1533 contains various peripherals
> - * including AC97 audio, a modem, USB, IDE and
> - * some power management stuff. The modem
> - * isn't connected on the ML510 and the power
> - * management core also isn't used.
> - */
> -
> - /* IDSEL 0x16 / dev=6, bus=0 / PCI slot 3 */
> - 0x3000 0 0 1 &xps_intc_0 3 2
> - 0x3000 0 0 2 &xps_intc_0 2 2
> - 0x3000 0 0 3 &xps_intc_0 5 2
> - 0x3000 0 0 4 &xps_intc_0 4 2
> -
> - /* IDSEL 0x13 / dev=3, bus=1 / PCI slot 4 */
> - /*
> - 0x11800 0 0 1 &xps_intc_0 5 0 2
> - 0x11800 0 0 2 &xps_intc_0 4 0 2
> - 0x11800 0 0 3 &xps_intc_0 3 0 2
> - 0x11800 0 0 4 &xps_intc_0 2 0 2
> - */
> -
> - /* According to the datasheet + schematic
> - * ABCD [FPGA] of slot 5 is mapped to DABC.
> - * Testing showed that at least A maps to B,
> - * the mapping of the other pins is a guess
> - * and for that reason the lines have been
> - * commented out.
> - */
> - /* IDSEL 0x15 / dev=5, bus=0 / PCI slot 5 */
> - 0x2800 0 0 1 &xps_intc_0 4 2
> - /*
> - 0x2800 0 0 2 &xps_intc_0 3 2
> - 0x2800 0 0 3 &xps_intc_0 2 2
> - 0x2800 0 0 4 &xps_intc_0 5 2
> - */
> -
> - /* IDSEL 0x12 / dev=2, bus=1 / PCI slot 6 */
> - /*
> - 0x11000 0 0 1 &xps_intc_0 4 0 2
> - 0x11000 0 0 2 &xps_intc_0 3 0 2
> - 0x11000 0 0 3 &xps_intc_0 2 0 2
> - 0x11000 0 0 4 &xps_intc_0 5 0 2
> - */
> -
> - /* IDSEL 0x11 / dev=1, bus=0 / AC97 audio */
> - 0x0800 0 0 1 &i8259 7 2
> -
> - /* IDSEL 0x1b / dev=11, bus=0 / IDE */
> - 0x5800 0 0 1 &i8259 14 2
> -
> - /* IDSEL 0x1f / dev 15, bus=0 / 2x USB 1.1 */
> - 0x7800 0 0 1 &i8259 7 2
> - >;
> - ali_m1533 {
> - #size-cells = <1>;
> - #address-cells = <2>;
> - i8259: interrupt-controller at 20 {
> - reg = <1 0x20 2
> - 1 0xa0 2
> - 1 0x4d0 2>;
> - interrupt-controller;
> - device_type = "interrupt-controller";
> - #address-cells = <0>;
> - #interrupt-cells = <2>;
> - compatible = "chrp,iic";
> -
> - /* south bridge irq is active high */
> - interrupts = <1 3>;
> - interrupt-parent = <&xps_intc_0>;
> - };
> - };
> - } ;
> - xps_bram_if_cntlr_1: xps-bram-if-cntlr at ffff0000 {
> - compatible = "xlnx,xps-bram-if-cntlr-1.00.a";
> - reg = < 0xffff0000 0x10000 >;
> - xlnx,family = "virtex5";
> - } ;
> - xps_intc_0: interrupt-controller at 81800000 {
> - #interrupt-cells = <0x2>;
> - compatible = "xlnx,xps-intc-1.00.a";
> - interrupt-controller ;
> - reg = < 0x81800000 0x10000 >;
> - xlnx,num-intr-inputs = <0xc>;
> - } ;
> - xps_tft_0: tft at 86e00000 {
> - compatible = "xlnx,xps-tft-1.00.a";
> - reg = < 0x86e00000 0x10000 >;
> - xlnx,dcr-splb-slave-if = <0x1>;
> - xlnx,default-tft-base-addr = <0x0>;
> - xlnx,family = "virtex5";
> - xlnx,i2c-slave-addr = <0x76>;
> - xlnx,mplb-awidth = <0x20>;
> - xlnx,mplb-dwidth = <0x80>;
> - xlnx,mplb-native-dwidth = <0x40>;
> - xlnx,mplb-smallest-slave = <0x20>;
> - xlnx,tft-interface = <0x1>;
> - } ;
> - } ;
> -} ;
> diff --git a/arch/powerpc/boot/ops.h b/arch/powerpc/boot/ops.h
> index e0606766480f..6455fc9a244f 100644
> --- a/arch/powerpc/boot/ops.h
> +++ b/arch/powerpc/boot/ops.h
> @@ -88,7 +88,6 @@ int serial_console_init(void);
> int ns16550_console_init(void *devp, struct serial_console_data *scdp);
> int cpm_console_init(void *devp, struct serial_console_data *scdp);
> int mpc5200_psc_console_init(void *devp, struct serial_console_data *scdp);
> -int uartlite_console_init(void *devp, struct serial_console_data *scdp);
> int opal_console_init(void *devp, struct serial_console_data *scdp);
> void *simple_alloc_init(char *base, unsigned long heap_size,
> unsigned long granularity, unsigned long max_allocs);
> diff --git a/arch/powerpc/boot/serial.c b/arch/powerpc/boot/serial.c
> index 9457863147f9..0bfa7e87e546 100644
> --- a/arch/powerpc/boot/serial.c
> +++ b/arch/powerpc/boot/serial.c
> @@ -132,11 +132,6 @@ int serial_console_init(void)
> else if (dt_is_compatible(devp, "fsl,mpc5200-psc-uart"))
> rc = mpc5200_psc_console_init(devp, &serial_cd);
> #endif
> -#ifdef CONFIG_XILINX_VIRTEX
> - else if (dt_is_compatible(devp, "xlnx,opb-uartlite-1.00.b") ||
> - dt_is_compatible(devp, "xlnx,xps-uartlite-1.00.a"))
> - rc = uartlite_console_init(devp, &serial_cd);
> -#endif
> #ifdef CONFIG_PPC64_BOOT_WRAPPER
> else if (dt_is_compatible(devp, "ibm,opal-console-raw"))
> rc = opal_console_init(devp, &serial_cd);
> diff --git a/arch/powerpc/boot/uartlite.c b/arch/powerpc/boot/uartlite.c
> deleted file mode 100644
> index 46bed69b4169..000000000000
> --- a/arch/powerpc/boot/uartlite.c
> +++ /dev/null
> @@ -1,79 +0,0 @@
> -/*
> - * Xilinx UARTLITE bootloader driver
> - *
> - * Copyright (C) 2007 Secret Lab Technologies Ltd.
> - *
> - * This file is licensed under the terms of the GNU General Public License
> - * version 2. This program is licensed "as is" without any warranty of any
> - * kind, whether express or implied.
> - */
> -
> -#include <stdarg.h>
> -#include <stddef.h>
> -#include "types.h"
> -#include "string.h"
> -#include "stdio.h"
> -#include "io.h"
> -#include "ops.h"
> -
> -#define ULITE_RX 0x00
> -#define ULITE_TX 0x04
> -#define ULITE_STATUS 0x08
> -#define ULITE_CONTROL 0x0c
> -
> -#define ULITE_STATUS_RXVALID 0x01
> -#define ULITE_STATUS_TXFULL 0x08
> -
> -#define ULITE_CONTROL_RST_RX 0x02
> -
> -static void * reg_base;
> -
> -static int uartlite_open(void)
> -{
> - /* Clear the RX FIFO */
> - out_be32(reg_base + ULITE_CONTROL, ULITE_CONTROL_RST_RX);
> - return 0;
> -}
> -
> -static void uartlite_putc(unsigned char c)
> -{
> - u32 reg = ULITE_STATUS_TXFULL;
> - while (reg & ULITE_STATUS_TXFULL) /* spin on TXFULL bit */
> - reg = in_be32(reg_base + ULITE_STATUS);
> - out_be32(reg_base + ULITE_TX, c);
> -}
> -
> -static unsigned char uartlite_getc(void)
> -{
> - u32 reg = 0;
> - while (!(reg & ULITE_STATUS_RXVALID)) /* spin waiting for RXVALID bit */
> - reg = in_be32(reg_base + ULITE_STATUS);
> - return in_be32(reg_base + ULITE_RX);
> -}
> -
> -static u8 uartlite_tstc(void)
> -{
> - u32 reg = in_be32(reg_base + ULITE_STATUS);
> - return reg & ULITE_STATUS_RXVALID;
> -}
> -
> -int uartlite_console_init(void *devp, struct serial_console_data *scdp)
> -{
> - int n;
> - unsigned long reg_phys;
> -
> - n = getprop(devp, "virtual-reg", ®_base, sizeof(reg_base));
> - if (n != sizeof(reg_base)) {
> - if (!dt_xlate_reg(devp, 0, ®_phys, NULL))
> - return -1;
> -
> - reg_base = (void *)reg_phys;
> - }
> -
> - scdp->open = uartlite_open;
> - scdp->putc = uartlite_putc;
> - scdp->getc = uartlite_getc;
> - scdp->tstc = uartlite_tstc;
> - scdp->close = NULL;
> - return 0;
> -}
> diff --git a/arch/powerpc/boot/virtex.c b/arch/powerpc/boot/virtex.c
> deleted file mode 100644
> index f731cbb4bff0..000000000000
> --- a/arch/powerpc/boot/virtex.c
> +++ /dev/null
> @@ -1,97 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0-only
> -/*
> - * The platform specific code for virtex devices since a boot loader is not
> - * always used.
> - *
> - * (C) Copyright 2008 Xilinx, Inc.
> - */
> -
> -#include "ops.h"
> -#include "io.h"
> -#include "stdio.h"
> -
> -#define UART_DLL 0 /* Out: Divisor Latch Low */
> -#define UART_DLM 1 /* Out: Divisor Latch High */
> -#define UART_FCR 2 /* Out: FIFO Control Register */
> -#define UART_FCR_CLEAR_RCVR 0x02 /* Clear the RCVR FIFO */
> -#define UART_FCR_CLEAR_XMIT 0x04 /* Clear the XMIT FIFO */
> -#define UART_LCR 3 /* Out: Line Control Register */
> -#define UART_MCR 4 /* Out: Modem Control Register */
> -#define UART_MCR_RTS 0x02 /* RTS complement */
> -#define UART_MCR_DTR 0x01 /* DTR complement */
> -#define UART_LCR_DLAB 0x80 /* Divisor latch access bit */
> -#define UART_LCR_WLEN8 0x03 /* Wordlength: 8 bits */
> -
> -static int virtex_ns16550_console_init(void *devp)
> -{
> - unsigned char *reg_base;
> - u32 reg_shift, reg_offset, clk, spd;
> - u16 divisor;
> - int n;
> -
> - if (dt_get_virtual_reg(devp, (void **)®_base, 1) < 1)
> - return -1;
> -
> - n = getprop(devp, "reg-offset", ®_offset, sizeof(reg_offset));
> - if (n == sizeof(reg_offset))
> - reg_base += reg_offset;
> -
> - n = getprop(devp, "reg-shift", ®_shift, sizeof(reg_shift));
> - if (n != sizeof(reg_shift))
> - reg_shift = 0;
> -
> - n = getprop(devp, "current-speed", (void *)&spd, sizeof(spd));
> - if (n != sizeof(spd))
> - spd = 9600;
> -
> - /* should there be a default clock rate?*/
> - n = getprop(devp, "clock-frequency", (void *)&clk, sizeof(clk));
> - if (n != sizeof(clk))
> - return -1;
> -
> - divisor = clk / (16 * spd);
> -
> - /* Access baud rate */
> - out_8(reg_base + (UART_LCR << reg_shift), UART_LCR_DLAB);
> -
> - /* Baud rate based on input clock */
> - out_8(reg_base + (UART_DLL << reg_shift), divisor & 0xFF);
> - out_8(reg_base + (UART_DLM << reg_shift), divisor >> 8);
> -
> - /* 8 data, 1 stop, no parity */
> - out_8(reg_base + (UART_LCR << reg_shift), UART_LCR_WLEN8);
> -
> - /* RTS/DTR */
> - out_8(reg_base + (UART_MCR << reg_shift), UART_MCR_RTS | UART_MCR_DTR);
> -
> - /* Clear transmitter and receiver */
> - out_8(reg_base + (UART_FCR << reg_shift),
> - UART_FCR_CLEAR_XMIT | UART_FCR_CLEAR_RCVR);
> - return 0;
> -}
> -
> -/* For virtex, the kernel may be loaded without using a bootloader and if so
> - some UARTs need more setup than is provided in the normal console init
> -*/
> -int platform_specific_init(void)
> -{
> - void *devp;
> - char devtype[MAX_PROP_LEN];
> - char path[MAX_PATH_LEN];
> -
> - devp = finddevice("/chosen");
> - if (devp == NULL)
> - return -1;
> -
> - if (getprop(devp, "linux,stdout-path", path, MAX_PATH_LEN) > 0) {
> - devp = finddevice(path);
> - if (devp == NULL)
> - return -1;
> -
> - if ((getprop(devp, "device_type", devtype, sizeof(devtype)) > 0)
> - && !strcmp(devtype, "serial")
> - && (dt_is_compatible(devp, "ns16550")))
> - virtex_ns16550_console_init(devp);
> - }
> - return 0;
> -}
> diff --git a/arch/powerpc/boot/virtex405-head.S b/arch/powerpc/boot/virtex405-head.S
> deleted file mode 100644
> index 00bab7d7c48c..000000000000
> --- a/arch/powerpc/boot/virtex405-head.S
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0 */
> -#include "ppc_asm.h"
> -
> - .text
> - .global _zimage_start
> -_zimage_start:
> -
> - /* PPC errata 213: needed by Virtex-4 FX */
> - mfccr0 0
> - oris 0,0,0x50000000 at h
> - mtccr0 0
> -
> - /*
> - * Invalidate the data cache if the data cache is turned off.
> - * - The 405 core does not invalidate the data cache on power-up
> - * or reset but does turn off the data cache. We cannot assume
> - * that the cache contents are valid.
> - * - If the data cache is turned on this must have been done by
> - * a bootloader and we assume that the cache contents are
> - * valid.
> - */
> - mfdccr r9
> - cmplwi r9,0
> - bne 2f
> - lis r9,0
> - li r8,256
> - mtctr r8
> -1: dccci r0,r9
> - addi r9,r9,0x20
> - bdnz 1b
> -2: b _zimage_start_lib
> diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
> index ed6266367bc0..de5fd5a047e8 100755
> --- a/arch/powerpc/boot/wrapper
> +++ b/arch/powerpc/boot/wrapper
> @@ -323,14 +323,6 @@ adder875-redboot)
> platformo="$object/fixed-head.o $object/redboot-8xx.o"
> binary=y
> ;;
> -simpleboot-virtex405-*)
> - platformo="$object/virtex405-head.o $object/simpleboot.o $object/virtex.o"
> - binary=y
> - ;;
> -simpleboot-virtex440-*)
> - platformo="$object/fixed-head.o $object/simpleboot.o $object/virtex.o"
> - binary=y
> - ;;
> simpleboot-*)
> platformo="$object/fixed-head.o $object/simpleboot.o"
> binary=y
> diff --git a/arch/powerpc/configs/40x/virtex_defconfig b/arch/powerpc/configs/40x/virtex_defconfig
> deleted file mode 100644
> index 5e7c61d1d7d0..000000000000
> --- a/arch/powerpc/configs/40x/virtex_defconfig
> +++ /dev/null
> @@ -1,75 +0,0 @@
> -CONFIG_40x=y
> -# CONFIG_LOCALVERSION_AUTO is not set
> -CONFIG_SYSVIPC=y
> -CONFIG_POSIX_MQUEUE=y
> -CONFIG_IKCONFIG=y
> -CONFIG_IKCONFIG_PROC=y
> -CONFIG_LOG_BUF_SHIFT=14
> -CONFIG_BLK_DEV_INITRD=y
> -CONFIG_SLAB=y
> -CONFIG_MODULES=y
> -CONFIG_MODULE_UNLOAD=y
> -CONFIG_MODULE_FORCE_UNLOAD=y
> -CONFIG_MODVERSIONS=y
> -# CONFIG_BLK_DEV_BSG is not set
> -# CONFIG_WALNUT is not set
> -CONFIG_XILINX_VIRTEX_GENERIC_BOARD=y
> -CONFIG_PREEMPT=y
> -CONFIG_MATH_EMULATION=y
> -CONFIG_CMDLINE_BOOL=y
> -CONFIG_CMDLINE=""
> -CONFIG_PCI=y
> -CONFIG_NET=y
> -CONFIG_PACKET=y
> -CONFIG_UNIX=y
> -CONFIG_INET=y
> -CONFIG_IP_MULTICAST=y
> -CONFIG_IP_PNP=y
> -CONFIG_IP_PNP_DHCP=y
> -CONFIG_IP_PNP_BOOTP=y
> -CONFIG_NETFILTER=y
> -CONFIG_IP_NF_IPTABLES=m
> -CONFIG_IP_NF_FILTER=m
> -CONFIG_IP_NF_MANGLE=m
> -CONFIG_BLK_DEV_LOOP=y
> -CONFIG_BLK_DEV_RAM=y
> -CONFIG_BLK_DEV_RAM_SIZE=8192
> -CONFIG_XILINX_SYSACE=y
> -CONFIG_NETDEVICES=y
> -# CONFIG_SERIO_SERPORT is not set
> -CONFIG_SERIO_XILINX_XPS_PS2=y
> -CONFIG_SERIAL_8250=y
> -CONFIG_SERIAL_8250_CONSOLE=y
> -CONFIG_SERIAL_OF_PLATFORM=y
> -CONFIG_SERIAL_UARTLITE=y
> -CONFIG_SERIAL_UARTLITE_CONSOLE=y
> -CONFIG_XILINX_HWICAP=y
> -CONFIG_GPIOLIB=y
> -CONFIG_GPIO_SYSFS=y
> -CONFIG_GPIO_XILINX=y
> -# CONFIG_HWMON is not set
> -CONFIG_FB=y
> -CONFIG_FB_XILINX=y
> -CONFIG_FRAMEBUFFER_CONSOLE=y
> -CONFIG_LOGO=y
> -# CONFIG_USB_SUPPORT is not set
> -CONFIG_EXT2_FS=y
> -CONFIG_AUTOFS4_FS=y
> -CONFIG_MSDOS_FS=y
> -CONFIG_VFAT_FS=y
> -CONFIG_TMPFS=y
> -CONFIG_CRAMFS=y
> -CONFIG_ROMFS_FS=y
> -CONFIG_NFS_FS=y
> -CONFIG_ROOT_NFS=y
> -CONFIG_NLS_CODEPAGE_437=y
> -CONFIG_NLS_ASCII=m
> -CONFIG_NLS_ISO8859_1=m
> -CONFIG_NLS_UTF8=m
> -CONFIG_CRC_CCITT=y
> -CONFIG_FONTS=y
> -CONFIG_FONT_8x8=y
> -CONFIG_FONT_8x16=y
> -CONFIG_PRINTK_TIME=y
> -CONFIG_DEBUG_INFO=y
> -CONFIG_DEBUG_KERNEL=y
> diff --git a/arch/powerpc/configs/44x/virtex5_defconfig b/arch/powerpc/configs/44x/virtex5_defconfig
> deleted file mode 100644
> index 1f74079e1703..000000000000
> --- a/arch/powerpc/configs/44x/virtex5_defconfig
> +++ /dev/null
> @@ -1,74 +0,0 @@
> -CONFIG_44x=y
> -# CONFIG_LOCALVERSION_AUTO is not set
> -CONFIG_SYSVIPC=y
> -CONFIG_POSIX_MQUEUE=y
> -CONFIG_IKCONFIG=y
> -CONFIG_IKCONFIG_PROC=y
> -CONFIG_LOG_BUF_SHIFT=14
> -CONFIG_BLK_DEV_INITRD=y
> -CONFIG_SLAB=y
> -CONFIG_MODULES=y
> -CONFIG_MODULE_UNLOAD=y
> -CONFIG_MODULE_FORCE_UNLOAD=y
> -CONFIG_MODVERSIONS=y
> -# CONFIG_BLK_DEV_BSG is not set
> -# CONFIG_EBONY is not set
> -CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y
> -CONFIG_PREEMPT=y
> -CONFIG_MATH_EMULATION=y
> -CONFIG_CMDLINE_BOOL=y
> -CONFIG_CMDLINE=""
> -CONFIG_NET=y
> -CONFIG_PACKET=y
> -CONFIG_UNIX=y
> -CONFIG_INET=y
> -CONFIG_IP_MULTICAST=y
> -CONFIG_IP_PNP=y
> -CONFIG_IP_PNP_DHCP=y
> -CONFIG_IP_PNP_BOOTP=y
> -CONFIG_NETFILTER=y
> -CONFIG_IP_NF_IPTABLES=m
> -CONFIG_IP_NF_FILTER=m
> -CONFIG_IP_NF_MANGLE=m
> -CONFIG_BLK_DEV_LOOP=y
> -CONFIG_BLK_DEV_RAM=y
> -CONFIG_BLK_DEV_RAM_SIZE=8192
> -CONFIG_XILINX_SYSACE=y
> -CONFIG_NETDEVICES=y
> -# CONFIG_SERIO_SERPORT is not set
> -CONFIG_SERIO_XILINX_XPS_PS2=y
> -CONFIG_SERIAL_8250=y
> -CONFIG_SERIAL_8250_CONSOLE=y
> -CONFIG_SERIAL_OF_PLATFORM=y
> -CONFIG_SERIAL_UARTLITE=y
> -CONFIG_SERIAL_UARTLITE_CONSOLE=y
> -CONFIG_XILINX_HWICAP=y
> -CONFIG_GPIOLIB=y
> -CONFIG_GPIO_SYSFS=y
> -CONFIG_GPIO_XILINX=y
> -# CONFIG_HWMON is not set
> -CONFIG_FB=y
> -CONFIG_FB_XILINX=y
> -CONFIG_FRAMEBUFFER_CONSOLE=y
> -CONFIG_LOGO=y
> -# CONFIG_USB_SUPPORT is not set
> -CONFIG_EXT2_FS=y
> -CONFIG_AUTOFS4_FS=y
> -CONFIG_MSDOS_FS=y
> -CONFIG_VFAT_FS=y
> -CONFIG_TMPFS=y
> -CONFIG_CRAMFS=y
> -CONFIG_ROMFS_FS=y
> -CONFIG_NFS_FS=y
> -CONFIG_ROOT_NFS=y
> -CONFIG_NLS_CODEPAGE_437=y
> -CONFIG_NLS_ASCII=m
> -CONFIG_NLS_ISO8859_1=m
> -CONFIG_NLS_UTF8=m
> -CONFIG_CRC_CCITT=y
> -CONFIG_FONTS=y
> -CONFIG_FONT_8x8=y
> -CONFIG_FONT_8x16=y
> -CONFIG_PRINTK_TIME=y
> -CONFIG_DEBUG_INFO=y
> -CONFIG_DEBUG_KERNEL=y
> diff --git a/arch/powerpc/configs/ppc40x_defconfig b/arch/powerpc/configs/ppc40x_defconfig
> index a5f683aed328..88960a72b525 100644
> --- a/arch/powerpc/configs/ppc40x_defconfig
> +++ b/arch/powerpc/configs/ppc40x_defconfig
> @@ -14,7 +14,6 @@ CONFIG_EP405=y
> CONFIG_HOTFOOT=y
> CONFIG_KILAUEA=y
> CONFIG_MAKALU=y
> -CONFIG_XILINX_VIRTEX_GENERIC_BOARD=y
> CONFIG_NET=y
> CONFIG_PACKET=y
> CONFIG_UNIX=y
> @@ -37,33 +36,26 @@ CONFIG_MTD_UBI=m
> CONFIG_MTD_UBI_GLUEBI=m
> CONFIG_BLK_DEV_RAM=y
> CONFIG_BLK_DEV_RAM_SIZE=35000
> -CONFIG_XILINX_SYSACE=m
> CONFIG_NETDEVICES=y
> CONFIG_IBM_EMAC=y
> # CONFIG_INPUT is not set
> CONFIG_SERIO=m
> # CONFIG_SERIO_I8042 is not set
> # CONFIG_SERIO_SERPORT is not set
> -CONFIG_SERIO_XILINX_XPS_PS2=m
> # CONFIG_VT is not set
> CONFIG_SERIAL_8250=y
> CONFIG_SERIAL_8250_CONSOLE=y
> CONFIG_SERIAL_8250_EXTENDED=y
> CONFIG_SERIAL_8250_SHARE_IRQ=y
> CONFIG_SERIAL_OF_PLATFORM=y
> -CONFIG_SERIAL_UARTLITE=y
> -CONFIG_SERIAL_UARTLITE_CONSOLE=y
> # CONFIG_HW_RANDOM is not set
> -CONFIG_XILINX_HWICAP=m
> CONFIG_I2C=m
> CONFIG_I2C_CHARDEV=m
> CONFIG_I2C_GPIO=m
> CONFIG_I2C_IBM_IIC=m
> -CONFIG_GPIO_XILINX=y
> # CONFIG_HWMON is not set
> CONFIG_THERMAL=y
> CONFIG_FB=m
> -CONFIG_FB_XILINX=m
> CONFIG_EXT2_FS=y
> CONFIG_EXT4_FS=m
> CONFIG_VFAT_FS=m
> diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig
> index a41eedfe0a5f..8b595f67068c 100644
> --- a/arch/powerpc/configs/ppc44x_defconfig
> +++ b/arch/powerpc/configs/ppc44x_defconfig
> @@ -22,7 +22,6 @@ CONFIG_GLACIER=y
> CONFIG_REDWOOD=y
> CONFIG_EIGER=y
> CONFIG_YOSEMITE=y
> -CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y
> CONFIG_PPC4xx_GPIO=y
> CONFIG_MATH_EMULATION=y
> CONFIG_NET=y
> @@ -46,7 +45,6 @@ CONFIG_MTD_UBI=m
> CONFIG_MTD_UBI_GLUEBI=m
> CONFIG_BLK_DEV_RAM=y
> CONFIG_BLK_DEV_RAM_SIZE=35000
> -CONFIG_XILINX_SYSACE=m
> CONFIG_SCSI=m
> CONFIG_BLK_DEV_SD=m
> # CONFIG_SCSI_LOWLEVEL is not set
> @@ -57,7 +55,6 @@ CONFIG_IBM_EMAC=y
> CONFIG_SERIO=m
> # CONFIG_SERIO_I8042 is not set
> # CONFIG_SERIO_SERPORT is not set
> -CONFIG_SERIO_XILINX_XPS_PS2=m
> # CONFIG_VT is not set
> CONFIG_SERIAL_8250=y
> CONFIG_SERIAL_8250_CONSOLE=y
> @@ -65,18 +62,13 @@ CONFIG_SERIAL_8250_CONSOLE=y
> CONFIG_SERIAL_8250_EXTENDED=y
> CONFIG_SERIAL_8250_SHARE_IRQ=y
> CONFIG_SERIAL_OF_PLATFORM=y
> -CONFIG_SERIAL_UARTLITE=y
> -CONFIG_SERIAL_UARTLITE_CONSOLE=y
> # CONFIG_HW_RANDOM is not set
> -CONFIG_XILINX_HWICAP=m
> CONFIG_I2C=m
> CONFIG_I2C_CHARDEV=m
> CONFIG_I2C_GPIO=m
> CONFIG_I2C_IBM_IIC=m
> -CONFIG_GPIO_XILINX=y
> # CONFIG_HWMON is not set
> CONFIG_FB=m
> -CONFIG_FB_XILINX=m
> CONFIG_USB=m
> CONFIG_USB_EHCI_HCD=m
> CONFIG_USB_OHCI_HCD=m
> diff --git a/arch/powerpc/include/asm/xilinx_intc.h b/arch/powerpc/include/asm/xilinx_intc.h
> deleted file mode 100644
> index ca9aa162fb09..000000000000
> --- a/arch/powerpc/include/asm/xilinx_intc.h
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> -/*
> - * Xilinx intc external definitions
> - *
> - * Copyright 2007 Secret Lab Technologies Ltd.
> - */
> -#ifndef _ASM_POWERPC_XILINX_INTC_H
> -#define _ASM_POWERPC_XILINX_INTC_H
> -
> -#ifdef __KERNEL__
> -
> -extern void __init xilinx_intc_init_tree(void);
> -extern unsigned int xintc_get_irq(void);
> -
> -#endif /* __KERNEL__ */
> -#endif /* _ASM_POWERPC_XILINX_INTC_H */
> diff --git a/arch/powerpc/include/asm/xilinx_pci.h b/arch/powerpc/include/asm/xilinx_pci.h
> deleted file mode 100644
> index 7a8275caf6af..000000000000
> --- a/arch/powerpc/include/asm/xilinx_pci.h
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -/*
> - * Xilinx pci external definitions
> - *
> - * Copyright 2009 Roderick Colenbrander
> - * Copyright 2009 Secret Lab Technologies Ltd.
> - *
> - * This file is licensed under the terms of the GNU General Public License
> - * version 2. This program is licensed "as is" without any warranty of any
> - * kind, whether express or implied.
> - */
> -
> -#ifndef INCLUDE_XILINX_PCI
> -#define INCLUDE_XILINX_PCI
> -
> -#ifdef CONFIG_XILINX_PCI
> -extern void __init xilinx_pci_init(void);
> -#else
> -static inline void __init xilinx_pci_init(void) { return; }
> -#endif
> -
> -#endif /* INCLUDE_XILINX_PCI */
> diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
> index 245be4fafe13..2dff9041bcdc 100644
> --- a/arch/powerpc/kernel/cputable.c
> +++ b/arch/powerpc/kernel/cputable.c
> @@ -1385,32 +1385,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
> .machine_check = machine_check_4xx,
> .platform = "ppc405",
> },
> - { /* Xilinx Virtex-II Pro */
> - .pvr_mask = 0xfffff000,
> - .pvr_value = 0x20010000,
> - .cpu_name = "Virtex-II Pro",
> - .cpu_features = CPU_FTRS_40X,
> - .cpu_user_features = PPC_FEATURE_32 |
> - PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
> - .mmu_features = MMU_FTR_TYPE_40x,
> - .icache_bsize = 32,
> - .dcache_bsize = 32,
> - .machine_check = machine_check_4xx,
> - .platform = "ppc405",
> - },
> - { /* Xilinx Virtex-4 FX */
> - .pvr_mask = 0xfffff000,
> - .pvr_value = 0x20011000,
> - .cpu_name = "Virtex-4 FX",
> - .cpu_features = CPU_FTRS_40X,
> - .cpu_user_features = PPC_FEATURE_32 |
> - PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
> - .mmu_features = MMU_FTR_TYPE_40x,
> - .icache_bsize = 32,
> - .dcache_bsize = 32,
> - .machine_check = machine_check_4xx,
> - .platform = "ppc405",
> - },
> { /* 405EP */
> .pvr_mask = 0xffff0000,
> .pvr_value = 0x51210000,
> @@ -1800,19 +1774,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
> .machine_check = machine_check_440A,
> .platform = "ppc440",
> },
> - { /* 440 in Xilinx Virtex-5 FXT */
> - .pvr_mask = 0xfffffff0,
> - .pvr_value = 0x7ff21910,
> - .cpu_name = "440 in Virtex-5 FXT",
> - .cpu_features = CPU_FTRS_44X,
> - .cpu_user_features = COMMON_USER_BOOKE,
> - .mmu_features = MMU_FTR_TYPE_44x,
> - .icache_bsize = 32,
> - .dcache_bsize = 32,
> - .cpu_setup = __setup_cpu_440x5,
> - .machine_check = machine_check_440A,
> - .platform = "ppc440",
> - },
> { /* 460EX */
> .pvr_mask = 0xffff0006,
> .pvr_value = 0x13020002,
> diff --git a/arch/powerpc/platforms/40x/Kconfig b/arch/powerpc/platforms/40x/Kconfig
> index 6da813b65b42..d06ca51e8443 100644
> --- a/arch/powerpc/platforms/40x/Kconfig
> +++ b/arch/powerpc/platforms/40x/Kconfig
> @@ -55,23 +55,6 @@ config WALNUT
> help
> This option enables support for the IBM PPC405GP evaluation board.
>
> -config XILINX_VIRTEX_GENERIC_BOARD
> - bool "Generic Xilinx Virtex board"
> - depends on 40x
> - select XILINX_VIRTEX_II_PRO
> - select XILINX_VIRTEX_4_FX
> - select XILINX_INTC
> - help
> - This option enables generic support for Xilinx Virtex based boards.
> -
> - The generic virtex board support matches any device tree which
> - specifies 'xilinx,virtex' in its compatible field. This includes
> - the Xilinx ML3xx and ML4xx reference designs using the powerpc
> - core.
> -
> - Most Virtex designs should use this unless it needs to do some
> - special configuration at board probe time.
> -
> config OBS600
> bool "OpenBlockS 600"
> depends on 40x
> @@ -109,20 +92,6 @@ config 405EZ
> select IBM_EMAC_MAL_CLR_ICINTSTAT if IBM_EMAC
> select IBM_EMAC_MAL_COMMON_ERR if IBM_EMAC
>
> -config XILINX_VIRTEX
> - bool
> - select DEFAULT_UIMAGE
> -
> -config XILINX_VIRTEX_II_PRO
> - bool
> - select XILINX_VIRTEX
> - select IBM405_ERR77
> - select IBM405_ERR51
> -
> -config XILINX_VIRTEX_4_FX
> - bool
> - select XILINX_VIRTEX
> -
> config STB03xxx
> bool
> select IBM405_ERR77
> diff --git a/arch/powerpc/platforms/40x/Makefile b/arch/powerpc/platforms/40x/Makefile
> index 828d78340dd9..e9386deed505 100644
> --- a/arch/powerpc/platforms/40x/Makefile
> +++ b/arch/powerpc/platforms/40x/Makefile
> @@ -1,5 +1,4 @@
> # SPDX-License-Identifier: GPL-2.0-only
> obj-$(CONFIG_WALNUT) += walnut.o
> -obj-$(CONFIG_XILINX_VIRTEX_GENERIC_BOARD) += virtex.o
> obj-$(CONFIG_EP405) += ep405.o
> obj-$(CONFIG_PPC40x_SIMPLE) += ppc40x_simple.o
> diff --git a/arch/powerpc/platforms/40x/virtex.c b/arch/powerpc/platforms/40x/virtex.c
> deleted file mode 100644
> index e3d5e095846b..000000000000
> --- a/arch/powerpc/platforms/40x/virtex.c
> +++ /dev/null
> @@ -1,54 +0,0 @@
> -/*
> - * Xilinx Virtex (IIpro & 4FX) based board support
> - *
> - * Copyright 2007 Secret Lab Technologies Ltd.
> - *
> - * This file is licensed under the terms of the GNU General Public License
> - * version 2. This program is licensed "as is" without any warranty of any
> - * kind, whether express or implied.
> - */
> -
> -#include <linux/init.h>
> -#include <linux/of_platform.h>
> -#include <asm/machdep.h>
> -#include <asm/prom.h>
> -#include <asm/time.h>
> -#include <asm/xilinx_intc.h>
> -#include <asm/xilinx_pci.h>
> -#include <asm/ppc4xx.h>
> -
> -static const struct of_device_id xilinx_of_bus_ids[] __initconst = {
> - { .compatible = "xlnx,plb-v46-1.00.a", },
> - { .compatible = "xlnx,plb-v34-1.01.a", },
> - { .compatible = "xlnx,plb-v34-1.02.a", },
> - { .compatible = "xlnx,opb-v20-1.10.c", },
> - { .compatible = "xlnx,dcr-v29-1.00.a", },
> - { .compatible = "xlnx,compound", },
> - {}
> -};
> -
> -static int __init virtex_device_probe(void)
> -{
> - of_platform_bus_probe(NULL, xilinx_of_bus_ids, NULL);
> -
> - return 0;
> -}
> -machine_device_initcall(virtex, virtex_device_probe);
> -
> -static int __init virtex_probe(void)
> -{
> - if (!of_machine_is_compatible("xlnx,virtex"))
> - return 0;
> -
> - return 1;
> -}
> -
> -define_machine(virtex) {
> - .name = "Xilinx Virtex",
> - .probe = virtex_probe,
> - .setup_arch = xilinx_pci_init,
> - .init_IRQ = xilinx_intc_init_tree,
> - .get_irq = xintc_get_irq,
> - .restart = ppc4xx_reset_system,
> - .calibrate_decr = generic_calibrate_decr,
> -};
> diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig
> index 25ebe634a661..39e93d23fb38 100644
> --- a/arch/powerpc/platforms/44x/Kconfig
> +++ b/arch/powerpc/platforms/44x/Kconfig
> @@ -232,33 +232,6 @@ config ICON
> help
> This option enables support for the AMCC PPC440SPe evaluation board.
>
> -config XILINX_VIRTEX440_GENERIC_BOARD
> - bool "Generic Xilinx Virtex 5 FXT board support"
> - depends on 44x
> - select XILINX_VIRTEX_5_FXT
> - select XILINX_INTC
> - help
> - This option enables generic support for Xilinx Virtex based boards
> - that use a 440 based processor in the Virtex 5 FXT FPGA architecture.
> -
> - The generic virtex board support matches any device tree which
> - specifies 'xlnx,virtex440' in its compatible field. This includes
> - the Xilinx ML5xx reference designs using the powerpc core.
> -
> - Most Virtex 5 designs should use this unless it needs to do some
> - special configuration at board probe time.
> -
> -config XILINX_ML510
> - bool "Xilinx ML510 extra support"
> - depends on XILINX_VIRTEX440_GENERIC_BOARD
> - select HAVE_PCI
> - select XILINX_PCI if PCI
> - select PPC_INDIRECT_PCI if PCI
> - select PPC_I8259 if PCI
> - help
> - This option enables extra support for features on the Xilinx ML510
> - board. The ML510 has a PCI bus with ALI south bridge.
> -
> config PPC44x_SIMPLE
> bool "Simple PowerPC 44x board support"
> depends on 44x
> @@ -354,13 +327,3 @@ config 476FPE_ERR46
> config IBM440EP_ERR42
> bool
>
> -# Xilinx specific config options.
> -config XILINX_VIRTEX
> - bool
> - select DEFAULT_UIMAGE
> -
> -# Xilinx Virtex 5 FXT FPGA architecture, selected by a Xilinx board above
> -config XILINX_VIRTEX_5_FXT
> - bool
> - select XILINX_VIRTEX
> -
> diff --git a/arch/powerpc/platforms/44x/Makefile b/arch/powerpc/platforms/44x/Makefile
> index 1b78c6af821a..5ba031f57652 100644
> --- a/arch/powerpc/platforms/44x/Makefile
> +++ b/arch/powerpc/platforms/44x/Makefile
> @@ -7,8 +7,6 @@ obj-$(CONFIG_PPC44x_SIMPLE) += ppc44x_simple.o
> obj-$(CONFIG_EBONY) += ebony.o
> obj-$(CONFIG_SAM440EP) += sam440ep.o
> obj-$(CONFIG_WARP) += warp.o
> -obj-$(CONFIG_XILINX_VIRTEX_5_FXT) += virtex.o
> -obj-$(CONFIG_XILINX_ML510) += virtex_ml510.o
> obj-$(CONFIG_ISS4xx) += iss4xx.o
> obj-$(CONFIG_CANYONLANDS)+= canyonlands.o
> obj-$(CONFIG_CURRITUCK) += ppc476.o
> diff --git a/arch/powerpc/platforms/44x/virtex.c b/arch/powerpc/platforms/44x/virtex.c
> deleted file mode 100644
> index 3eb13ed926ee..000000000000
> --- a/arch/powerpc/platforms/44x/virtex.c
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -/*
> - * Xilinx Virtex 5FXT based board support, derived from
> - * the Xilinx Virtex (IIpro & 4FX) based board support
> - *
> - * Copyright 2007 Secret Lab Technologies Ltd.
> - * Copyright 2008 Xilinx, Inc.
> - *
> - * This file is licensed under the terms of the GNU General Public License
> - * version 2. This program is licensed "as is" without any warranty of any
> - * kind, whether express or implied.
> - */
> -
> -#include <linux/init.h>
> -#include <linux/of_platform.h>
> -#include <asm/machdep.h>
> -#include <asm/prom.h>
> -#include <asm/time.h>
> -#include <asm/xilinx_intc.h>
> -#include <asm/xilinx_pci.h>
> -#include <asm/reg.h>
> -#include <asm/ppc4xx.h>
> -#include "44x.h"
> -
> -static const struct of_device_id xilinx_of_bus_ids[] __initconst = {
> - { .compatible = "simple-bus", },
> - { .compatible = "xlnx,plb-v46-1.00.a", },
> - { .compatible = "xlnx,plb-v46-1.02.a", },
> - { .compatible = "xlnx,plb-v34-1.01.a", },
> - { .compatible = "xlnx,plb-v34-1.02.a", },
> - { .compatible = "xlnx,opb-v20-1.10.c", },
> - { .compatible = "xlnx,dcr-v29-1.00.a", },
> - { .compatible = "xlnx,compound", },
> - {}
> -};
> -
> -static int __init virtex_device_probe(void)
> -{
> - of_platform_bus_probe(NULL, xilinx_of_bus_ids, NULL);
> -
> - return 0;
> -}
> -machine_device_initcall(virtex, virtex_device_probe);
> -
> -static int __init virtex_probe(void)
> -{
> - if (!of_machine_is_compatible("xlnx,virtex440"))
> - return 0;
> -
> - return 1;
> -}
> -
> -define_machine(virtex) {
> - .name = "Xilinx Virtex440",
> - .probe = virtex_probe,
> - .setup_arch = xilinx_pci_init,
> - .init_IRQ = xilinx_intc_init_tree,
> - .get_irq = xintc_get_irq,
> - .calibrate_decr = generic_calibrate_decr,
> - .restart = ppc4xx_reset_system,
> -};
> diff --git a/arch/powerpc/platforms/44x/virtex_ml510.c b/arch/powerpc/platforms/44x/virtex_ml510.c
> deleted file mode 100644
> index 349f218b335c..000000000000
> --- a/arch/powerpc/platforms/44x/virtex_ml510.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0
> -#include <asm/i8259.h>
> -#include <linux/pci.h>
> -#include "44x.h"
> -
> -/**
> - * ml510_ail_quirk
> - */
> -static void ml510_ali_quirk(struct pci_dev *dev)
> -{
> - /* Enable the IDE controller */
> - pci_write_config_byte(dev, 0x58, 0x4c);
> - /* Assign irq 14 to the primary ide channel */
> - pci_write_config_byte(dev, 0x44, 0x0d);
> - /* Assign irq 15 to the secondary ide channel */
> - pci_write_config_byte(dev, 0x75, 0x0f);
> - /* Set the ide controller in native mode */
> - pci_write_config_byte(dev, 0x09, 0xff);
> -
> - /* INTB = disabled, INTA = disabled */
> - pci_write_config_byte(dev, 0x48, 0x00);
> - /* INTD = disabled, INTC = disabled */
> - pci_write_config_byte(dev, 0x4a, 0x00);
> - /* Audio = INT7, Modem = disabled. */
> - pci_write_config_byte(dev, 0x4b, 0x60);
> - /* USB = INT7 */
> - pci_write_config_byte(dev, 0x74, 0x06);
> -}
> -DECLARE_PCI_FIXUP_EARLY(0x10b9, 0x1533, ml510_ali_quirk);
> -
> diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
> index 1f8025383caa..5e6479d409a0 100644
> --- a/arch/powerpc/platforms/Kconfig
> +++ b/arch/powerpc/platforms/Kconfig
> @@ -317,8 +317,4 @@ config MCU_MPC8349EMITX
> also register MCU GPIOs with the generic GPIO API, so you'll able
> to use MCU pins as GPIOs.
>
> -config XILINX_PCI
> - bool "Xilinx PCI host bridge support"
> - depends on PCI && XILINX_VIRTEX
> -
> endmenu
> diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
> index cb5a5bd2cef5..026b3f01a991 100644
> --- a/arch/powerpc/sysdev/Makefile
> +++ b/arch/powerpc/sysdev/Makefile
> @@ -31,8 +31,6 @@ obj-$(CONFIG_RTC_DRV_CMOS) += rtc_cmos_setup.o
> obj-$(CONFIG_PPC_INDIRECT_PCI) += indirect_pci.o
> obj-$(CONFIG_PPC_I8259) += i8259.o
> obj-$(CONFIG_IPIC) += ipic.o
> -obj-$(CONFIG_XILINX_VIRTEX) += xilinx_intc.o
> -obj-$(CONFIG_XILINX_PCI) += xilinx_pci.o
> obj-$(CONFIG_OF_RTC) += of_rtc.o
>
> obj-$(CONFIG_CPM) += cpm_common.o
> diff --git a/arch/powerpc/sysdev/xilinx_intc.c b/arch/powerpc/sysdev/xilinx_intc.c
> deleted file mode 100644
> index 4a86dcff3fcd..000000000000
> --- a/arch/powerpc/sysdev/xilinx_intc.c
> +++ /dev/null
> @@ -1,88 +0,0 @@
> -/*
> - * Interrupt controller driver for Xilinx Virtex FPGAs
> - *
> - * Copyright (C) 2007 Secret Lab Technologies Ltd.
> - *
> - * This file is licensed under the terms of the GNU General Public License
> - * version 2. This program is licensed "as is" without any warranty of any
> - * kind, whether express or implied.
> - *
> - */
> -
> -/*
> - * This is a driver for the interrupt controller typically found in
> - * Xilinx Virtex FPGA designs.
> - *
> - * The interrupt sense levels are hard coded into the FPGA design with
> - * typically a 1:1 relationship between irq lines and devices (no shared
> - * irq lines). Therefore, this driver does not attempt to handle edge
> - * and level interrupts differently.
> - */
> -#undef DEBUG
> -
> -#include <linux/kernel.h>
> -#include <linux/irq.h>
> -#include <linux/of.h>
> -#include <linux/of_address.h>
> -#include <linux/of_irq.h>
> -#include <asm/io.h>
> -#include <asm/processor.h>
> -#include <asm/i8259.h>
> -#include <asm/irq.h>
> -#include <linux/irqchip.h>
> -
> -#if defined(CONFIG_PPC_I8259)
> -/*
> - * Support code for cascading to 8259 interrupt controllers
> - */
> -static void xilinx_i8259_cascade(struct irq_desc *desc)
> -{
> - struct irq_chip *chip = irq_desc_get_chip(desc);
> - unsigned int cascade_irq = i8259_irq();
> -
> - if (cascade_irq)
> - generic_handle_irq(cascade_irq);
> -
> - /* Let xilinx_intc end the interrupt */
> - chip->irq_unmask(&desc->irq_data);
> -}
> -
> -static void __init xilinx_i8259_setup_cascade(void)
> -{
> - struct device_node *cascade_node;
> - int cascade_irq;
> -
> - /* Initialize i8259 controller */
> - cascade_node = of_find_compatible_node(NULL, NULL, "chrp,iic");
> - if (!cascade_node)
> - return;
> -
> - cascade_irq = irq_of_parse_and_map(cascade_node, 0);
> - if (!cascade_irq) {
> - pr_err("virtex_ml510: Failed to map cascade interrupt\n");
> - goto out;
> - }
> -
> - i8259_init(cascade_node, 0);
> - irq_set_chained_handler(cascade_irq, xilinx_i8259_cascade);
> -
> - /* Program irq 7 (usb/audio), 14/15 (ide) to level sensitive */
> - /* This looks like a dirty hack to me --gcl */
> - outb(0xc0, 0x4d0);
> - outb(0xc0, 0x4d1);
> -
> - out:
> - of_node_put(cascade_node);
> -}
> -#else
> -static inline void xilinx_i8259_setup_cascade(void) { return; }
> -#endif /* defined(CONFIG_PPC_I8259) */
> -
> -/*
> - * Initialize master Xilinx interrupt controller
> - */
> -void __init xilinx_intc_init_tree(void)
> -{
> - irqchip_init();
> - xilinx_i8259_setup_cascade();
> -}
> diff --git a/arch/powerpc/sysdev/xilinx_pci.c b/arch/powerpc/sysdev/xilinx_pci.c
> deleted file mode 100644
> index fea5667699ed..000000000000
> --- a/arch/powerpc/sysdev/xilinx_pci.c
> +++ /dev/null
> @@ -1,132 +0,0 @@
> -/*
> - * PCI support for Xilinx plbv46_pci soft-core which can be used on
> - * Xilinx Virtex ML410 / ML510 boards.
> - *
> - * Copyright 2009 Roderick Colenbrander
> - * Copyright 2009 Secret Lab Technologies Ltd.
> - *
> - * The pci bridge fixup code was copied from ppc4xx_pci.c and was written
> - * by Benjamin Herrenschmidt.
> - * Copyright 2007 Ben. Herrenschmidt <benh at kernel.crashing.org>, IBM Corp.
> - *
> - * This file is licensed under the terms of the GNU General Public License
> - * version 2. This program is licensed "as is" without any warranty of any
> - * kind, whether express or implied.
> - */
> -
> -#include <linux/ioport.h>
> -#include <linux/of.h>
> -#include <linux/pci.h>
> -#include <mm/mmu_decl.h>
> -#include <asm/io.h>
> -#include <asm/xilinx_pci.h>
> -
> -#define XPLB_PCI_ADDR 0x10c
> -#define XPLB_PCI_DATA 0x110
> -#define XPLB_PCI_BUS 0x114
> -
> -#define PCI_HOST_ENABLE_CMD PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY
> -
> -static const struct of_device_id xilinx_pci_match[] = {
> - { .compatible = "xlnx,plbv46-pci-1.03.a", },
> - {}
> -};
> -
> -/**
> - * xilinx_pci_fixup_bridge - Block Xilinx PHB configuration.
> - */
> -static void xilinx_pci_fixup_bridge(struct pci_dev *dev)
> -{
> - struct pci_controller *hose;
> - int i;
> -
> - if (dev->devfn || dev->bus->self)
> - return;
> -
> - hose = pci_bus_to_host(dev->bus);
> - if (!hose)
> - return;
> -
> - if (!of_match_node(xilinx_pci_match, hose->dn))
> - return;
> -
> - /* Hide the PCI host BARs from the kernel as their content doesn't
> - * fit well in the resource management
> - */
> - for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
> - dev->resource[i].start = 0;
> - dev->resource[i].end = 0;
> - dev->resource[i].flags = 0;
> - }
> -
> - dev_info(&dev->dev, "Hiding Xilinx plb-pci host bridge resources %s\n",
> - pci_name(dev));
> -}
> -DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, xilinx_pci_fixup_bridge);
> -
> -/**
> - * xilinx_pci_exclude_device - Don't do config access for non-root bus
> - *
> - * This is a hack. Config access to any bus other than bus 0 does not
> - * currently work on the ML510 so we prevent it here.
> - */
> -static int
> -xilinx_pci_exclude_device(struct pci_controller *hose, u_char bus, u8 devfn)
> -{
> - return (bus != 0);
> -}
> -
> -/**
> - * xilinx_pci_init - Find and register a Xilinx PCI host bridge
> - */
> -void __init xilinx_pci_init(void)
> -{
> - struct pci_controller *hose;
> - struct resource r;
> - void __iomem *pci_reg;
> - struct device_node *pci_node;
> -
> - pci_node = of_find_matching_node(NULL, xilinx_pci_match);
> - if(!pci_node)
> - return;
> -
> - if (of_address_to_resource(pci_node, 0, &r)) {
> - pr_err("xilinx-pci: cannot resolve base address\n");
> - return;
> - }
> -
> - hose = pcibios_alloc_controller(pci_node);
> - if (!hose) {
> - pr_err("xilinx-pci: pcibios_alloc_controller() failed\n");
> - return;
> - }
> -
> - /* Setup config space */
> - setup_indirect_pci(hose, r.start + XPLB_PCI_ADDR,
> - r.start + XPLB_PCI_DATA,
> - PPC_INDIRECT_TYPE_SET_CFG_TYPE);
> -
> - /* According to the xilinx plbv46_pci documentation the soft-core starts
> - * a self-init when the bus master enable bit is set. Without this bit
> - * set the pci bus can't be scanned.
> - */
> - early_write_config_word(hose, 0, 0, PCI_COMMAND, PCI_HOST_ENABLE_CMD);
> -
> - /* Set the max latency timer to 255 */
> - early_write_config_byte(hose, 0, 0, PCI_LATENCY_TIMER, 0xff);
> -
> - /* Set the max bus number to 255 */
> - pci_reg = of_iomap(pci_node, 0);
> - out_8(pci_reg + XPLB_PCI_BUS, 0xff);
> - iounmap(pci_reg);
> -
> - /* Nothing past the root bridge is working right now. By default
> - * exclude config access to anything except bus 0 */
> - if (!ppc_md.pci_exclude_device)
> - ppc_md.pci_exclude_device = xilinx_pci_exclude_device;
> -
> - /* Register the host bridge with the linux kernel! */
> - pci_process_bridge_OF_ranges(hose, pci_node, 1);
> -
> - pr_info("xilinx-pci: Registered PCI host bridge\n");
> -}
> diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
> index 26956c006987..0ccbd6fd6de1 100644
> --- a/drivers/char/Kconfig
> +++ b/drivers/char/Kconfig
> @@ -316,7 +316,7 @@ config DTLK
>
> config XILINX_HWICAP
> tristate "Xilinx HWICAP Support"
> - depends on XILINX_VIRTEX || MICROBLAZE
> + depends on MICROBLAZE
> help
> This option enables support for Xilinx Internal Configuration
> Access Port (ICAP) driver. The ICAP is used on Xilinx Virtex
> diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
> index f65991a67af2..b174650e0f09 100644
> --- a/drivers/video/fbdev/Kconfig
> +++ b/drivers/video/fbdev/Kconfig
> @@ -2007,7 +2007,7 @@ config FB_PS3_DEFAULT_SIZE_M
>
> config FB_XILINX
> tristate "Xilinx frame buffer support"
> - depends on FB && (XILINX_VIRTEX || MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP)
> + depends on FB && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP)
> select FB_CFB_FILLRECT
> select FB_CFB_COPYAREA
> select FB_CFB_IMAGEBLIT
> --
> 2.26.0
>
--
Thanks,
~Nick Desaulniers
More information about the dri-devel
mailing list