[PATCH 1/5 v2] powerpc: DTS file for the C2K

David Gibson david at gibson.dropbear.id.au
Mon May 19 10:53:42 EST 2008


On Fri, May 16, 2008 at 12:28:48PM -0700, Remi Machet wrote:
> Support for the C2K cPCI Single Board Computer from GEFanuc
> (PowerPC MPC7448 with a Marvell MV64460 chipset)
> All features of the board are not supported yet, but the board
> boots, flash works, all Ethernet ports are working and PCI 
> devices are all found (USB and SATA on PCI1 do not work yet).
> 
> Part 1 of 5: DTS file describing the board peripherals. As far as I know
> all peripherals except the FPGA are listed in there (I did not included
> the FPGA because a lot of work is needed there).

Looking pretty good, but a hanful more comments below.

[snip]
> +		mdio {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			compatible = "marvell,mv64360-mdio";

Surely this needs a "reg" property, otherwise how to you access the
mdio bus?

> +			PHY0: ethernet-phy at 0 {
> +				device_type = "ethernet-phy";
> +				interrupts = <76>;	/* GPP 12 */
> +				interrupt-parent = <&PIC>;
> +				reg = <0>;
> +			};

[snip]
> +		CUNIT: cunit at f200 {
> +			reg = <0xf200 0x200>;
> +		};
> +
> +		MPSCROUTING: mpscrouting at b400 {
> +			reg = <0xb400 0xc>;
> +		};
> +
> +		MPSCINTR: mpscintr at b800 {
> +			reg = <0xb800 0x100>;
> +			virtual-reg = <0xd800b800>;
> +		};
> +
> +		MPSC0: mpsc at 8000 {
> +			device_type = "serial";
> +			compatible = "marvell,mv64360-mpsc";
> +			reg = <0x8000 0x38>;
> +			virtual-reg = <0xd8008000>;
> +			sdma = <&SDMA0>;
> +			brg = <&BRG0>;
> +			cunit = <&CUNIT>;
> +			mpscrouting = <&MPSCROUTING>;
> +			mpscintr = <&MPSCINTR>;
> +			cell-index = <0>;

Heh.  The more I look at this, the more I suspect it should be
structured like the ethernet-group stuff.  Oh well, not your fault.

[snip]
> +		/* Devices attached to the device controller */
> +		devicebus {
> +			compatible = "marvell,mv64306-devctrl";
> +			#address-cells = <1>;
> +			#size-cells = <1>;

This looks like it needs either a "reg" or a "ranges" property.  If
the address space of this "devicebus" is the same as the parent bus
you need an empty "ranges" property.  *No* ranges property means the
subordinate devices can't be directly accessed at all from the parent
bus.

> +			nor_flash {

This needs a unit address, "nor_flash at f8000000".

> +				compatible = "cfi-flash";
> +				reg = <0xf8000000 0x8000000>; /* 128MB */
> +				bank-width = <4>;
> +				device-width = <1>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				partition at 0 {
> +					label = "boot";
> +					reg = <0x00000000 0x00080000>;
> +				};
> +				partition at 40000 {
> +					label = "kernel";
> +					reg = <0x00080000 0x00400000>;
> +				};
> +				partition at 440000 {
> +					label = "initrd";
> +					reg = <0x00480000 0x00B80000>;
> +				};
> +				partition at 1000000 {
> +					label = "rootfs";
> +					reg = <0x01000000 0x06800000>;
> +				};
> +				partition at 7800000 {
> +					label = "recovery";
> +					reg = <0x07800000 0x00800000>;
> +					read-only;
> +				};
> +			};
> +		};
> +	};
> +	chosen {
> +		bootargs = "ip=off root=/dev/mtdblock3 rootfstype=jffs2";

You don't usually want to encode a default bootargs into the dts file;
kernel command line arguments should usually be left to the user.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson



More information about the Linuxppc-dev mailing list