[PATCH v2 2/2] powerpc: Remove Xilinx PPC405/PPC440 support

Nick Desaulniers ndesaulniers at google.com
Wed Apr 1 06:36:59 AEDT 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", &reg_base, sizeof(reg_base));
> -       if (n != sizeof(reg_base)) {
> -               if (!dt_xlate_reg(devp, 0, &reg_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 **)&reg_base, 1) < 1)
> -               return -1;
> -
> -       n = getprop(devp, "reg-offset", &reg_offset, sizeof(reg_offset));
> -       if (n == sizeof(reg_offset))
> -               reg_base += reg_offset;
> -
> -       n = getprop(devp, "reg-shift", &reg_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 Linuxppc-dev mailing list