I've just pushed support for generating device trees for the ppc440 in V5FXT up to git.xilinx.com.
The most obvious difference is that the PPC440 block contains not only the PPC440 core, but also an interconnect block, subsuming part of the 'multi-ported' functionality of the MPMC. In order to have a relatively straightforward mapping between blocks in the EDK design and nodes in the dts, I've represented this as shown below. Note that unlike the MPMC, the dma ports are controlled through DCR (which is part of the point of the recent dcr patches). I've done some preliminary testing using some hacked together platform support code and we'll update this based on the 405 code soon. Steve / { #address-cells = <1>; #size-cells = <1>; compatible = "xlnx,virtex"; dcr-parent = <&ppc440_virtex5_0>; model = "testing"; chosen { bootargs = "root=/dev/xsysace/disc0/part2"; } ; cpus { #address-cells = <1>; #cpus = <1>; #size-cells = <0>; ppc440_virtex5_0: [EMAIL PROTECTED] { #address-cells = <1>; #size-cells = <1>; clock-frequency = <17d78400>; compatible = "PowerPC,440", "ibm,ppc440"; d-cache-line-size = <20>; d-cache-line-size = <20>; d-cache-size = <8000>; dcr-access-method = "native"; dcr-controller ; device_type = "cpu"; i-cache-line-size = <20>; i-cache-size = <8000>; model = "PowerPC,440"; reg = <0>; timebase-frequency = <17d78400>; DMA0: [EMAIL PROTECTED] { compatible = "xlnx,ll-dma-1.00.a"; dcr-reg = < 1010000 11 >; interrupt-parent = <&opb_intc_0>; interrupts = < 5 2 6 2 >; } ; DMA1: [EMAIL PROTECTED] { compatible = "xlnx,ll-dma-1.00.a"; dcr-reg = < 1010000 11 >; } ; DMA2: [EMAIL PROTECTED] { compatible = "xlnx,ll-dma-1.00.a"; dcr-reg = < 1010000 11 >; } ; DMA3: [EMAIL PROTECTED] { compatible = "xlnx,ll-dma-1.00.a"; dcr-reg = < 1010000 11 >; } ; } ; } ; plb_v46_cfb_0: [EMAIL PROTECTED] { #address-cells = <1>; #size-cells = <1>; compatible = "xlnx,plb-v46-1.00.a"; ranges ; iic_bus: [EMAIL PROTECTED] { compatible = "xlnx,xps-iic-1.00.a"; interrupt-parent = <&opb_intc_0>; interrupts = < 7 2 >; reg = < d0020000 200 >; xlnx,clk-freq = <5f5e100>; xlnx,family = "virtex5"; xlnx,gpo-width = <1>; xlnx,iic-freq = <186a0>; xlnx,ten-bit-adr = <0>; } ; leds_8bit: [EMAIL PROTECTED] { compatible = "xlnx,xps-gpio-1.00.a"; interrupt-parent = <&opb_intc_0>; interrupts = < 1 2 >; reg = < d0010200 200 >; 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 = <1>; xlnx,is-bidir = <1>; xlnx,is-bidir-2 = <1>; xlnx,is-dual = <0>; xlnx,tri-default = <ffffffff>; xlnx,tri-default-2 = <ffffffff>; } ; ll_temac_0: [EMAIL PROTECTED] { #address-cells = <1>; #size-cells = <1>; compatible = "xlnx,compound"; [EMAIL PROTECTED] { compatible = "xlnx,xps-ll-temac-1.00.b"; device_type = "network"; interrupt-parent = <&opb_intc_0>; interrupts = < 4 2 >; llink-connected = <&DMA0>; local-mac-address = [ 00 00 00 00 00 00 ]; reg = < 91200000 40 >; xlnx,bus2core-clk-ratio = <1>; xlnx,phy-type = <1>; xlnx,phyaddr = <1>; xlnx,rxcsum = <0>; xlnx,rxfifo = <4000>; xlnx,temac-type = <0>; xlnx,txcsum = <0>; xlnx,txfifo = <4000>; } ; } ; opb_intc_0: [EMAIL PROTECTED] { #interrupt-cells = <2>; compatible = "xlnx,xps-intc-1.00.a"; interrupt-controller ; reg = < d0020200 20 >; xlnx,num-intr-inputs = <8>; } ; plb_bram_if_cntlr_0: [EMAIL PROTECTED] { compatible = "xlnx,xps-bram-if-cntlr-1.00.a"; reg = < ffff0000 10000 >; xlnx,family = "virtex5"; } ; plb_bram_if_cntlr_1: [EMAIL PROTECTED] { compatible = "xlnx,xps-bram-if-cntlr-1.00.a"; reg = < eee00000 2000 >; xlnx,family = "virtex5"; } ; rs232_uart_0: [EMAIL PROTECTED] { clock-frequency = ""; compatible = "xlnx,xps-uart16550-1.00.a"; current-speed = <2580>; device_type = "serial"; interrupt-parent = <&opb_intc_0>; interrupts = < 0 2 >; reg = < d0000000 2000 >; reg-offset = <3>; reg-shift = <2>; xlnx,family = "virtex5"; xlnx,has-external-rclk = <0>; xlnx,has-external-xin = <1>; xlnx,is-a-16550 = <1>; } ; sysace_compactflash: [EMAIL PROTECTED] { compatible = "xlnx,xps-sysace-1.00.a"; reg = < d0030100 80 >; xlnx,family = "virtex5"; xlnx,mem-width = <10>; } ; } ; ppc440mc_ddr2_0: [EMAIL PROTECTED] { device_type = "memory"; reg = < 0 20000000 >; } ; } ; > -----Original Message----- > From: John Linn > Sent: Wednesday, April 02, 2008 8:24 AM > To: Peter Korsgaard > Cc: linuxppc-embedded@ozlabs.org; git > Subject: RE: Virtex V5FX PPC 440 Support In Xilinx Git Tree > > Hi Peter, > > We added arch/ppc support because it was the easiest path for us. We realize it's going away soon in > the mainline. > > We are working on getting arch/powerpc more mature for both the 405 and the 440 as we do believe this > is the future for powerpc. > > Thanks, > John > > > > -----Original Message----- > From: Peter Korsgaard [mailto:[EMAIL PROTECTED] On Behalf Of Peter Korsgaard > Sent: Wednesday, April 02, 2008 3:51 AM > To: John Linn > Cc: linuxppc-embedded@ozlabs.org; git > Subject: Re: Virtex V5FX PPC 440 Support In Xilinx Git Tree > > >>>>> "John" == John Linn <[EMAIL PROTECTED]> writes: > > John> I pushed PowerPC 440 support to the Xilinx Git server with > John> support for ppc arch and with powerpc arch support coming in > John> the near future. > > Neat, but why have you added arch/ppc support? It's supposed to go > away pretty much by the time the hardware gets in the hand of > developers. > > -- > Bye, Peter Korsgaard _______________________________________________ Linuxppc-embedded mailing list Linuxppc-embedded@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded