I've incorporated a good portion of the combined feedback and pushed the gen_mhs_devtree patches back to Grant. The few things I haven't done are relatively cosmetic (like getting rid of linux,phandle references, decimal vs. hex, and the 'embedded \0') , The one significant problem that I'm not sure how to deal with pertains to multiple memory nodes, which often happens. Should they all be exported at the toplevel (which dtc seems to require), or only the main memory which is used by Linux?
Some specific responses below: >> >> Steve >> >> / { >> #address-cells = <1>; >> #size-cells = <1>; >> compatible = "ibm,plb4"; >Not quite; the bus itself needs to be one level deeper. Compatible >here is refering to the platform itself, not the bus and so should be >the actual board name or something similar. Maybe something like: >"xlnx,ml403","xlnx,generic-virtex4"; perhaps the toplevel compatible node should contain a SHA1 hash of system.mhs? >> Ethernet_MAC { >> compatible = >> "xilinx,opb-ethernet-1.04.a\0xilinx,opb-ethernet"; > >Yes; this is the idea; but I don't like "xilinx,opb-ethernet". I >think we should always specify specific versions and not try to guess >what the 'generic' device compatible interface is. I've left this in, until we can come up with canonical compatible versions. (perhaps just truncating the minor version?) I've attached one more generated test tree, in the hopes that gen-mhs-devtree can be put to bed and used to validate Michel's BSP oriented version. Again, the goal is not to make it perfect, but to make it good enough that it can be a temporary bridge between the EDK-integrated generator and those writing device drivers. Steve / { #address-cells = <1>; #size-cells = <1>; model = "system.mhs"; chosen { bootargs = "root=/dev/xsysace/disc0/part2"; interrupt-controller = <101>; } ; cpus { #address-cells = <1>; #cpus = <1>; #size-cells = <0>; microblaze,[EMAIL PROTECTED] { 32-bit; clock-frequency = <5f5e1000>; d-cache-line-size = <10>; d-cache-size = <4000>; device_type = "cpu"; i-cache-line-size = <10>; i-cache-size = <4000>; linux,boot-cpu; reg = <0>; timebase-frequency = <1fca055>; xlnx,cache-byte-size = <4000>; xlnx,dcache-baseaddr = <50000000>; xlnx,dcache-byte-size = <4000>; xlnx,dcache-highaddr = <5fffffff>; xlnx,debug-enabled = <1>; xlnx,div-zero-exception = <1>; xlnx,dopb-bus-exception = <1>; xlnx,fpu-exception = <1>; xlnx,icache-baseaddr = <50000000>; xlnx,icache-highaddr = <5fffffff>; xlnx,ill-opcode-exception = <1>; xlnx,iopb-bus-exception = <1>; xlnx,number-of-pc-brk = <2>; xlnx,pvr = <2>; xlnx,unaligned-exceptions = <1>; xlnx,use-barrel = <1>; xlnx,use-dcache = <1>; xlnx,use-div = <1>; xlnx,use-fpu = <1>; xlnx,use-icache = <1>; xlnx,use-msr-instr = <1>; xlnx,use-pcmp-instr = <1>; } ; } ; memory { device_type = "memory"; reg = < 50000000 10000000 >; } ; opb_v20 { compatible = "xlnx,opb-v20-1.10.c\0xlnx,opb-v20\0ibm,opb"; [EMAIL PROTECTED] { compatible = "xlnx,opb-ethernet-1.04.a\0xlnx,opb-ethernet"; device_type = "network"; interrupt-parent = <101>; interrupts = < 1 0 >; reg = < 40c00000 10000 >; xlnx,cam-exist = <0>; xlnx,dev-blk-id = <0>; xlnx,dev-mir-enable = <0>; xlnx,dma-present = <1>; xlnx,edk-name = "Ethernet_MAC"; xlnx,include-dev-pencoder = <0>; xlnx,ipif-rdfifo-depth = <4000>; xlnx,ipif-wrfifo-depth = <4000>; xlnx,jumbo-exist = <0>; xlnx,mac-fifo-depth = <10>; xlnx,mii-exist = <1>; xlnx,opb-clk-period-ps = <2710>; xlnx,reset-present = <1>; xlnx,rx-dre-type = <0>; xlnx,rx-include-csum = <0>; xlnx,tx-dre-type = <0>; xlnx,tx-include-csum = <0>; } ; [EMAIL PROTECTED] { #interrupt-cells = <2>; compatible = "xlnx,opb-intc-1.00.c\0xlnx,opb-intc"; interrupt-controller; linux,phandle = <101>; reg = < 41200000 10000 >; xlnx,edk-name = "opb_intc_0"; } ; [EMAIL PROTECTED] { compatible = "xlnx,mch-opb-ddr2-1.02.a\0xlnx,mch-opb-ddr2"; device_type = "memory"; reg = < 50000000 10000000 >; xlnx,ddr-async-support = <1>; xlnx,ddr-awidth = <d>; xlnx,ddr-bank-awidth = <2>; xlnx,ddr-cas-lat = <3>; xlnx,ddr-col-awidth = <a>; xlnx,ddr-dwidth = <20>; xlnx,ddr-tfaw = <c350>; xlnx,ddr-tmrd = <61a8>; xlnx,ddr-tras = <15f90>; xlnx,ddr-trc = <fde8>; xlnx,ddr-trcd = <61a8>; xlnx,ddr-trefi = <7704c0>; xlnx,ddr-trfc = <1c138>; xlnx,ddr-trp = <4e20>; xlnx,ddr-trrd = <3a98>; xlnx,ddr-twr = <3a98>; xlnx,ddr-twtr = <1>; xlnx,edk-name = "DDR2_SDRAM_32Mx32"; xlnx,extra-tsu = <0>; xlnx,idelayctrl-loc = "IDELAYCTRL_X0Y5-IDELAYCTRL_X0Y4-IDELAYCTRL_X0Y1-IDELAYCTRL_X0Y0"; xlnx,include-opb-burst-support = <1>; xlnx,include-opb-ipif = <1>; xlnx,mch0-accessbuf-depth = <4>; xlnx,mch1-accessbuf-depth = <8>; xlnx,num-banks-mem = <1>; xlnx,num-channels = <2>; xlnx,num-clk-pairs = <2>; xlnx,num-idelayctrl = <4>; xlnx,reg-dimm = <0>; xlnx,xcl0-writexfer = <0>; } ; [EMAIL PROTECTED] { compatible = "xlnx,opb-hwicap-1.10.a\0xlnx,opb-hwicap"; reg = < 41300000 10000 >; xlnx,edk-name = "opb_hwicap_0"; } ; [EMAIL PROTECTED] { compatible = "xlnx,opb-iic-1.02.a\0xlnx,opb-iic"; interrupt-parent = <101>; interrupts = < 2 0 >; reg = < 40800000 10000 >; xlnx,clk-freq = <5f5e100>; xlnx,edk-name = "IIC_EEPROM"; xlnx,iic-freq = <186a0>; xlnx,ten-bit-adr = <0>; } ; [EMAIL PROTECTED] { compatible = "xlnx,opb-mdm-2.00.a\0xlnx,opb-mdm"; reg = < 41400000 10000 >; xlnx,edk-name = "debug_module"; xlnx,mb-dbg-ports = <1>; xlnx,uart-width = <8>; xlnx,use-uart = <1>; } ; [EMAIL PROTECTED] { compatible = "xlnx,opb-timer-1.00.b\0xlnx,opb-timer"; interrupt-parent = <101>; interrupts = < 0 0 >; reg = < 41c00000 10000 >; xlnx,count-width = <20>; xlnx,edk-name = "opb_timer_1"; xlnx,one-timer-only = <1>; } ; [EMAIL PROTECTED] { compatible = "xlnx,opb-uartlite-1.00.b\0xlnx,opb-uartlite"; device_type = "serial"; interrupt-parent = <101>; interrupts = < 3 0 >; reg = < 40600000 10000 >; xlnx,baudrate = <2580>; xlnx,clk-freq = <5f5e100>; xlnx,data-bits = <8>; xlnx,edk-name = "RS232_Uart_1"; xlnx,odd-parity = <0>; xlnx,use-parity = <0>; } ; } ; } ; > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Stephen Neuendorffer > Sent: Friday, October 19, 2007 4:43 PM > To: Stephen Neuendorffer; Grant Likely > Cc: Leonid; Arnd Bergmann; [EMAIL PROTECTED]; > linuxppc-dev@ozlabs.org; Wolfgang Reissnegger > Subject: [microblaze-uclinux] RE: [PATCH v3] Device tree > bindings for Xilinx devices > > > Here's a full .dts generated using an updated version of > gen_mhs_devtree.py, following the proposal. > It happens to be a microblaze system, but you get the idea. > > Grant: Is this pretty what you intend? > > Steve > > / { > #address-cells = <1>; > #size-cells = <1>; > compatible = "ibm,plb4"; > model = "system.mhs"; > Ethernet_MAC { > compatible = > "xilinx,opb-ethernet-1.04.a\0xilinx,opb-ethernet"; > device_type = "opb_ethernet"; > interrupt-parent = <101>; > interrupts = < 1 0 >; > reg = < 40c00000 10000 >; > xilinx,cam-exist = <0>; > xilinx,dev-blk-id = <0>; > xilinx,dev-mir-enable = <0>; > xilinx,dma-present = <1>; > xilinx,include-dev-pencoder = <0>; > xilinx,ipif-rdfifo-depth = <4000>; > xilinx,ipif-wrfifo-depth = <4000>; > xilinx,jumbo-exist = <0>; > xilinx,mac-fifo-depth = <10>; > xilinx,mii-exist = <1>; > xilinx,opb-clk-period-ps = <2710>; > xilinx,reset-present = <1>; > xilinx,rx-dre-type = <0>; > xilinx,rx-include-csum = <0>; > xilinx,tx-dre-type = <0>; > xilinx,tx-include-csum = <0>; > } ; > IIC_EEPROM { > compatible = "xilinx,opb-iic-1.02.a\0xilinx,opb-iic"; > device_type = "opb_iic"; > interrupt-parent = <101>; > interrupts = < 2 0 >; > reg = < 40800000 10000 >; > xilinx,clk-freq = <5f5e100>; > xilinx,iic-freq = <186a0>; > xilinx,ten-bit-adr = <0>; > } ; > RS232_Uart_1 { > compatible = > "xilinx,opb-uartlite-1.00.b\0xilinx,opb-uartlite"; > device_type = "opb_uartlite"; > interrupt-parent = <101>; > interrupts = < 3 0 >; > reg = < 40600000 10000 >; > xilinx,baudrate = <2580>; > xilinx,clk-freq = <5f5e100>; > xilinx,data-bits = <8>; > xilinx,odd-parity = <0>; > xilinx,use-parity = <0>; > } ; > chosen { > bootargs = "root=/dev/xsysace/disc0/part2"; > interrupt-controller = <101>; > linux,platform = <600>; > } ; > cpus { > #address-cells = <1>; > #cpus = <1>; > #size-cells = <0>; > microblaze_0,6.00. { > 32-bit; > clock-frequency = <5f5e1000>; > d-cache-line-size = <10>; > d-cache-size = <4000>; > device_type = "cpu"; > i-cache-line-size = <10>; > i-cache-size = <4000>; > linux,boot-cpu; > reg = <0>; > timebase-frequency = <1fca055>; > xilinx,cache-byte-size = <4000>; > xilinx,dcache-baseaddr = <50000000>; > xilinx,dcache-byte-size = <4000>; > xilinx,dcache-highaddr = <5fffffff>; > xilinx,debug-enabled = <1>; > xilinx,div-zero-exception = <1>; > xilinx,dopb-bus-exception = <1>; > xilinx,fpu-exception = <1>; > xilinx,icache-baseaddr = <50000000>; > xilinx,icache-highaddr = <5fffffff>; > xilinx,ill-opcode-exception = <1>; > xilinx,iopb-bus-exception = <1>; > xilinx,number-of-pc-brk = <2>; > xilinx,pvr = <2>; > xilinx,unaligned-exceptions = <1>; > xilinx,use-barrel = <1>; > xilinx,use-dcache = <1>; > xilinx,use-div = <1>; > xilinx,use-fpu = <1>; > xilinx,use-icache = <1>; > xilinx,use-msr-instr = <1>; > xilinx,use-pcmp-instr = <1>; > } ; > } ; > debug_module { > compatible = "xilinx,opb-mdm-2.00.a\0xilinx,opb-mdm"; > device_type = "opb_mdm"; > reg = < 41400000 10000 >; > xilinx,mb-dbg-ports = <1>; > xilinx,uart-width = <8>; > xilinx,use-uart = <1>; > } ; > [EMAIL PROTECTED] { > device_type = "memory"; > edk_name = "DDR2_SDRAM_32Mx32"; > memreg:reg = < 50000000 10000000 >; > } ; > opb_hwicap_0 { > compatible = > "xilinx,opb-hwicap-1.10.a\0xilinx,opb-hwicap"; > device_type = "opb_hwicap"; > reg = < 41300000 10000 >; > } ; > opb_intc_0 { > #interrupt-cells = <2>; > compatible = "xilinx,opb-intc-1.00.c\0xilinx,opb-intc"; > device_type = "opb_intc"; > interrupt-controller; > linux,phandle = <101>; > reg = < 41200000 10000 >; > } ; > opb_timer_1 { > compatible = > "xilinx,opb-timer-1.00.b\0xilinx,opb-timer"; > device_type = "opb_timer"; > interrupt-parent = <101>; > interrupts = < 0 0 >; > reg = < 41c00000 10000 >; > xilinx,count-width = <20>; > xilinx,one-timer-only = <1>; > } ; > } ; > > > > ___________________________ > microblaze-uclinux mailing list > [EMAIL PROTECTED] > Project Home Page : > http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux > Mailing List Archive : > http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/ > > > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev