linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Problem dtb file booting Kernel 2.6.32
@ 2010-01-14 20:40 Andres F Marquez
  2010-01-14 21:44 ` Scott Wood
  0 siblings, 1 reply; 5+ messages in thread
From: Andres F Marquez @ 2010-01-14 20:40 UTC (permalink / raw)
  To: linuxppc-dev

Hello,

I am working on a MPC8265 board which I have successfully ported Linux
Kernel 2.6.25 to. I am trying to upgrade the Kernel but have not got
good results (I am able to compile the Kernel for my powerpc, but not to
boot it). The problem appears to be something related to the interaction
between the dtb and the Kernel. I am not sure if the syntax for the dts
file may have changed from Kernel 2.6.25 to newer versions (I have tried
2.6.27.43 - 2.6.32.2 and 2.6.31.11 getting very similar results).

When I build the dtb file from the /arch/powerpc/boot/dts/MPC8272ADS.dts
file that comes with the new Kernel, the booting process gets stuck
after trying to load the device tree:

	## Booting image at ff810000 ...
   		Image Name:   Linux-2.6.27.43
   		Image Type:   PowerPC Linux Kernel Image (gzip  
			compressed)
		Data Size:    1365263 Bytes =  1.3 MB
   		Load Address: 00000000
   		Entry Point:  00000000
   		Verifying Checksum ... OK
   		Uncompressing Kernel Image ... OK
   		Booting using the fdt at 0xff802000
   		Loading Device Tree to 007fc000, end 007fefff ... OK


   However, when I boot the new Kernel with the old compiled dtb file
(the one that works with the Kernel 2.6.25) the process moves forward
but stops at a time when displaying information about IRQ 40 line
(related to the Programmable Interrup Controller (PIC)):

	## Booting image at ff810000 ...
   	Image Name:   Linux-2.6.32.2
   	Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   	Data Size:    1431026 Bytes =  1.4 MB
   	Load Address: 00000000
   	Entry Point:  00000000
   	Verifying Checksum ... OK
   	Uncompressing Kernel Image ... OK
   	Booting using the fdt at 0xff802000
   	Loading Device Tree to 007fc000, end 007fefff ... OK
	id mach(): done
	MMU:enter
	MMU:hw init
	MMU:mapin
	MMU:setio
	MMU:exit
	Using Freescale PQ2FADS machine description
	Linux version 2.6.32.2 (nirmala@localhost.localdomain) (gcc 
	version 
	4.2.1 (Sourcery G++ Lite 4.2-82)) #11 Wed Jan 13 15:54:33 EST 
	2010
	bootconsole [udbg0] enabled
	setup_arch: bootmem
	pq2fads_setup_arch()
	No fsl,pq2fads-bcsr in device tree
	arch: exit
	Top of RAM: 0x2000000, Total RAM: 0x2000000
	Memory hole size: 0MB
	Zone PFN ranges:
  	DMA      0x00000000 -> 0x00002000
  	Normal   0x00002000 -> 0x00002000
	Movable zone start PFN for each node
	early_node_map[1] active PFN ranges
    	0: 0x00000000 -> 0x00002000
	On node 0 totalpages: 8192
	free_area_init_node: node 0, pgdat c02dfa18, node_mem_map 
	c0304000
  	DMA zone: 64 pages used for memmap
  	DMA zone: 0 pages reserved
  	DMA zone: 8128 pages, LIFO batch:0
	Built 1 zonelists in Zone order, mobility grouping on.  Total 
	pages: 8128
	Kernel command line: console=ttyCPM0,9600 panic=10 root=1f03 rw 
	rootfstype=jffs2 mtdparts=physmap-flash.0:8K(reserved),56K(
	fdt),1408K(uimab
	PID hash table entries: 128 (order: -3, 512 bytes)
	Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
	Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
	Memory: 29380k/32768k available (2824k kernel code, 3388k 
	reserved, 160k 
	data, 101k bss, 172k init)
	Kernel virtual memory layout:
	* 0xffffe000..0xfffff000  : fixmap
  	* 0xfe000000..0xfe000000  : early ioremap
  	* 0xc3000000..0xfe000000  : vmalloc & ioremap
	SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, 
	Nodes=1
	Hierarchical RCU implementation.
	NR_IRQS:512
	No pci pic node in device tree.
	time_init: decrementer frequency = 16.500000 MHz
	time_init: processor frequency   = 231.000000 MHz
	clocksource: timebase mult[f26c9b2] shift[22] registered
	clockevent: decrementer mult[4395810] shift[32] cpu[0]
	Console: colour dummy device 80x25
	irq: irq 40 on host /soc@f0000000/interrupt-controller@10c00 
	mapped to 
	virtual irq 40


I am attching below the MPC8272ADS.dts file that works for me for Kernel
2.6.25 (the dts file that I am trying to make work for newer Kernel):

/*
 * Device Tree for the PQ2FADS-ZU board with an MPC8280 chip.
 *
 * Copyright 2007 Freescale Semiconductor Inc.
 *
 * This program is free software; you can redistribute  it and/or modify
*it 
* under  the terms of  the GNU General  Public License as published by
*the * Free Software Foundation;  either version 2 of the  License, or *
(at your * option) any later version.
 */

/ {
	model = "pq2fads";
	compatible = "fsl,pq2fads";
	#address-cells = <1>;
	#size-cells = <1>;

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			device_type = "cpu";
			reg = <0>;
			d-cache-line-size = <d#32>;
			i-cache-line-size = <d#32>;
			d-cache-size = <d#16384>;
			i-cache-size = <d#16384>;
			timebase-frequency = <0>;
			clock-frequency = <0>;
		};
	};

	memory {
		device_type = "memory";
		reg = <0 0>;
	};

	soc@f0000000 {
		#address-cells = <1>;
		#size-cells = <1>;
		device_type = "soc";
		compatible = "fsl,mpc8280", "fsl,pq2-soc";
		ranges = <00000000 f0000000 00053000>;

		// Temporary -- will go away once kernel uses ranges 
		// for get_immrbase().
		reg = <f0000000 00053000>;

		cpm@119c0 {
			#address-cells = <1>;
			#size-cells = <1>;
			#interrupt-cells = <2>;
			compatible = "fsl,mpc8280-cpm", "fsl,cpm2";
			reg = <119c0 30>;
			ranges;

			muram@0 {
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0 0 10000>;

				data@0 {
				compatible = "fsl,cpm-muram-data";
				reg = <0 2000 9800 800>;
				};
			};

			brg@119f0 {
				compatible = "fsl,mpc8280-brg",
				             "fsl,cpm2-brg",
				             "fsl,cpm-brg";
				reg = <119f0 10 115f0 10>;
			};

			serial@11a00 {
				device_type = "serial";
				compatible = "fsl,mpc8280-scc-uart",
				             "fsl,cpm2-scc-uart";
				reg = <11a00 20 8000 100>;
				interrupts = <28 8>;
				interrupt-parent = <&PIC>;
				fsl,cpm-brg = <1>;
				fsl,cpm-command = <00800000>;
			};

			serial@11a20 {
				device_type = "serial";
				compatible = "fsl,mpc8280-scc-uart",
				             "fsl,cpm2-scc-uart";
				reg = <11a20 20 8100 100>;
				interrupts = <29 8>;
				interrupt-parent = <&PIC>;
				fsl,cpm-brg = <2>;
				fsl,cpm-command = <04a00000>;
			};

			ethernet@11320 {
				device_type = "network";
				compatible = "fsl,mpc8280-fcc-enet",
				             "fsl,cpm2-fcc-enet";
				reg = <11320 20 8500 100 113b0 1>;
				interrupts = <21 8>;
				interrupt-parent = <&PIC>;
				phy-handle = <&PHY0>;
				linux,network-index = <0>;
				fsl,cpm-command = <16200300>;
				local-mac-address = [00 e0 0a 03 79 01];
			};

			ethernet@11340 {
				device_type = "network";
				compatible = "fsl,mpc8280-fcc-enet",
				             "fsl,cpm2-fcc-enet";
				reg = <11340 20 8600 100 113d0 1>;
				interrupts = <22 8>;
				interrupt-parent = <&PIC>;
				phy-handle = <&PHY1>;
				linux,network-index = <1>;
				fsl,cpm-command = <1a400300>;
				local-mac-address = [00 e0 0c 00 79 01];
			};

			mdio@10d40 {
				device_type = "mdio";
				compatible = "fsl,pq2fads-mdio-bitbang",
				             "fsl,mpc8280-mdio-bitbang",
				             "fsl,cpm2-mdio-bitbang";
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <10d40 14>;
				fsl,mdio-pin = <9>;
				fsl,mdc-pin = <a>;

				PHY0: ethernet-phy@0 {
					interrupt-parent = <&PIC>;
					interrupts = <19 2>;
					reg = <0>;
					device_type = "ethernet-phy";
				};

				PHY1: ethernet-phy@1 {
					interrupt-parent = <&PIC>;
					interrupts = <19 2>;
					reg = <3>;
					device_type = "ethernet-phy";
				};
			};

		};

		PIC: interrupt-controller@10c00 {
			#interrupt-cells = <2>;
			interrupt-controller;
			reg = <10c00 80>;
			compatible = "fsl,mpc8280-pic", "fsl,cpm2-pic";
		};

	};

	chosen {
		linux,stdout-path = "/soc/cpm/serial@11a00";
	};
};


Any help would be greatly appreciated.

-- 
Andres F Marquez
EdgeAccess
Development
amarquez@edgeaccess.net

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Problem dtb file booting Kernel 2.6.32
  2010-01-14 20:40 Problem dtb file booting Kernel 2.6.32 Andres F Marquez
@ 2010-01-14 21:44 ` Scott Wood
  2010-01-15 14:30   ` Andres F Marquez
  0 siblings, 1 reply; 5+ messages in thread
From: Scott Wood @ 2010-01-14 21:44 UTC (permalink / raw)
  To: Andres Marquez; +Cc: linuxppc-dev

Andres F Marquez wrote:
> Hello,
> 
> I am working on a MPC8265 board which I have successfully ported Linux
> Kernel 2.6.25 to. I am trying to upgrade the Kernel but have not got
> good results (I am able to compile the Kernel for my powerpc, but not to
> boot it). The problem appears to be something related to the interaction
> between the dtb and the Kernel. I am not sure if the syntax for the dts
> file may have changed from Kernel 2.6.25 to newer versions (I have tried
> 2.6.27.43 - 2.6.32.2 and 2.6.31.11 getting very similar results).

Can you bisect between 2.6.25 and 2.6.27 to see which commit may have 
broken it?

What sort of changes did you make to get 2.6.25 to work?

> When I build the dtb file from the /arch/powerpc/boot/dts/MPC8272ADS.dts
> file that comes with the new Kernel, the booting process gets stuck
> after trying to load the device tree:
> 
> 	## Booting image at ff810000 ...
>    		Image Name:   Linux-2.6.27.43
>    		Image Type:   PowerPC Linux Kernel Image (gzip  
> 			compressed)
> 		Data Size:    1365263 Bytes =  1.3 MB
>    		Load Address: 00000000
>    		Entry Point:  00000000
>    		Verifying Checksum ... OK
>    		Uncompressing Kernel Image ... OK
>    		Booting using the fdt at 0xff802000
>    		Loading Device Tree to 007fc000, end 007fefff ... OK
> 
> 
>    However, when I boot the new Kernel with the old compiled dtb file
> (the one that works with the Kernel 2.6.25) the process moves forward
> but stops at a time when displaying information about IRQ 40 line
> (related to the Programmable Interrup Controller (PIC)):

Decompile that device tree blob using dtc -I dtb -O dts, and look for 
differences.

-Scott

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Problem dtb file booting Kernel 2.6.32
  2010-01-14 21:44 ` Scott Wood
@ 2010-01-15 14:30   ` Andres F Marquez
  2010-01-16  3:59     ` Hunter Cobbs
  0 siblings, 1 reply; 5+ messages in thread
From: Andres F Marquez @ 2010-01-15 14:30 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 2764 bytes --]

Hello,

I was able to boot Kernel 2.6.26.8 (using our old dts file from 
Kernel 2.6.25). However, I need to upgrade to a newer Kernel because
I am having serious problems with the ethernet interface under heavy
load. I am not sure if it could be a scheduling problem or the network
driver. CPU usage is low but load average is high (more than 4).

The main difference that I could find is that for newer Kernels the 
/arch/ppc was removed. I also read online that dts version changed 
from 0 to 1 somewhere around Kernel 2.6.27 or so.

Following your instruction, I executed in the LTIB command shell:

LTIB> dtc -I dtb -O dts ../mpc8272ads.dtb

I executed that command passing as argument the old working dtb file.
I got a dts file which I placed in the new Kernel and compiled.
Unfortunately, I am still getting the same error.

Attached you can find both dts files.

Thank you.


-- 
Andres F Marquez
EdgeAccess
Development
amarquez@edgeaccess.net



On Thu, 2010-01-14 at 15:44 -0600, Scott Wood wrote:
> Andres F Marquez wrote:
> > Hello,
> > 
> > I am working on a MPC8265 board which I have successfully ported Linux
> > Kernel 2.6.25 to. I am trying to upgrade the Kernel but have not got
> > good results (I am able to compile the Kernel for my powerpc, but not to
> > boot it). The problem appears to be something related to the interaction
> > between the dtb and the Kernel. I am not sure if the syntax for the dts
> > file may have changed from Kernel 2.6.25 to newer versions (I have tried
> > 2.6.27.43 - 2.6.32.2 and 2.6.31.11 getting very similar results).
> 
> Can you bisect between 2.6.25 and 2.6.27 to see which commit may have 
> broken it?
> 
> What sort of changes did you make to get 2.6.25 to work?
> 
> > When I build the dtb file from the /arch/powerpc/boot/dts/MPC8272ADS.dts
> > file that comes with the new Kernel, the booting process gets stuck
> > after trying to load the device tree:
> > 
> > 	## Booting image at ff810000 ...
> >    		Image Name:   Linux-2.6.27.43
> >    		Image Type:   PowerPC Linux Kernel Image (gzip  
> > 			compressed)
> > 		Data Size:    1365263 Bytes =  1.3 MB
> >    		Load Address: 00000000
> >    		Entry Point:  00000000
> >    		Verifying Checksum ... OK
> >    		Uncompressing Kernel Image ... OK
> >    		Booting using the fdt at 0xff802000
> >    		Loading Device Tree to 007fc000, end 007fefff ... OK
> > 
> > 
> >    However, when I boot the new Kernel with the old compiled dtb file
> > (the one that works with the Kernel 2.6.25) the process moves forward
> > but stops at a time when displaying information about IRQ 40 line
> > (related to the Programmable Interrup Controller (PIC)):
> 
> Decompile that device tree blob using dtc -I dtb -O dts, and look for 
> differences.
> 
> -Scott


[-- Attachment #2: mpc8272ads-Kernel-2.6.25.dts --]
[-- Type: text/plain, Size: 5757 bytes --]

/*
 * Device Tree for the PQ2FADS-ZU board with an MPC8280 chip.
 *
 * Copyright 2007 Freescale Semiconductor Inc.
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 */

/ {
	model = "pq2fads";
	compatible = "fsl,pq2fads";
	#address-cells = <1>;
	#size-cells = <1>;

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			device_type = "cpu";
			reg = <0>;
			d-cache-line-size = <d#32>;
			i-cache-line-size = <d#32>;
			d-cache-size = <d#16384>;
			i-cache-size = <d#16384>;
			timebase-frequency = <0>;
			clock-frequency = <0>;
		};
	};

	memory {
		device_type = "memory";
		reg = <00000000 02000000>;
	};

	localbus@f0010100 {
		compatible = "fsl,mpc8280-localbus",
		             "fsl,pq2-localbus";
		#address-cells = <2>;
		#size-cells = <1>;
		reg = <f0010100 60>;

		ranges = <0 0 fe000000 00800000
		          1 0 f4500000 00008000
		          8 0 f8200000 00008000>;

		flash@0,0 {
			compatible = "jedec-flash";
			reg = <0 0 800000>;
			bank-width = <4>;
			device-width = <1>;
		};

		bcsr@1,0 {
			reg = <1 0 20>;
			compatible = "fsl,pq2fads-bcsr";
		};

		PCI_PIC: pic@8,0 {
			#interrupt-cells = <1>;
			interrupt-controller;
			reg = <8 0 8>;
			compatible = "fsl,pq2ads-pci-pic";
			interrupt-parent = <&PIC>;
			interrupts = <18 8>;
		};
	};

	pci@f0010800 {
		device_type = "pci";
		reg = <f0010800 10c f00101ac 8 f00101c4 8>;
		compatible = "fsl,mpc8280-pci", "fsl,pq2-pci";
		#interrupt-cells = <1>;
		#size-cells = <2>;
		#address-cells = <3>;
		clock-frequency = <d#66000000>;
		interrupt-map-mask = <f800 0 0 7>;
		interrupt-map = <
		                /* IDSEL 0x16 */
		                 b000 0 0 1 &PCI_PIC 0
		                 b000 0 0 2 &PCI_PIC 1
		                 b000 0 0 3 &PCI_PIC 2
		                 b000 0 0 4 &PCI_PIC 3

		                /* IDSEL 0x17 */
		                 b800 0 0 1 &PCI_PIC 4
		                 b800 0 0 2 &PCI_PIC 5
		                 b800 0 0 3 &PCI_PIC 6
		                 b800 0 0 4 &PCI_PIC 7

		                /* IDSEL 0x18 */
		                 c000 0 0 1 &PCI_PIC 8
		                 c000 0 0 2 &PCI_PIC 9
		                 c000 0 0 3 &PCI_PIC a
		                 c000 0 0 4 &PCI_PIC b>;

		interrupt-parent = <&PIC>;
		interrupts = <12 8>;
		ranges = <42000000 0 80000000 80000000 0 20000000
		          02000000 0 a0000000 a0000000 0 20000000
		          01000000 0 00000000 f6000000 0 02000000>;
	};

	soc@f0000000 {
		#address-cells = <1>;
		#size-cells = <1>;
		device_type = "soc";
		compatible = "fsl,mpc8280", "fsl,pq2-soc";
		ranges = <00000000 f0000000 00053000>;

		// Temporary -- will go away once kernel uses ranges for get_immrbase().
		reg = <f0000000 00053000>;

		cpm@119c0 {
			#address-cells = <1>;
			#size-cells = <1>;
			#interrupt-cells = <2>;
			compatible = "fsl,mpc8280-cpm", "fsl,cpm2";
			reg = <119c0 30>;
			ranges;

			muram@0 {
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0 0 10000>;

				data@0 {
					compatible = "fsl,cpm-muram-data";
					reg = <0 2000 9800 800>;
				};
			};

			brg@119f0 {
				compatible = "fsl,mpc8280-brg",
				             "fsl,cpm2-brg",
				             "fsl,cpm-brg";
				reg = <119f0 10 115f0 10>;
			};

			serial@11a00 {
				device_type = "serial";
				compatible = "fsl,mpc8280-scc-uart",
				             "fsl,cpm2-scc-uart";
				reg = <11a00 20 8000 100>;
				interrupts = <28 8>;
				interrupt-parent = <&PIC>;
				fsl,cpm-brg = <1>;
				fsl,cpm-command = <00800000>;
			};

			serial@11a20 {
				device_type = "serial";
				compatible = "fsl,mpc8280-scc-uart",
				             "fsl,cpm2-scc-uart";
				reg = <11a20 20 8100 100>;
				interrupts = <29 8>;
				interrupt-parent = <&PIC>;
				fsl,cpm-brg = <2>;
				fsl,cpm-command = <04a00000>;
			};

			ethernet@11320 {
				device_type = "network";
				compatible = "fsl,mpc8280-fcc-enet",
				             "fsl,cpm2-fcc-enet";
				reg = <11320 20 8500 100 113b0 1>;
				interrupts = <21 8>;
				interrupt-parent = <&PIC>;
				phy-handle = <&PHY0>;
				linux,network-index = <0>;
				fsl,cpm-command = <16200300>;
				local-mac-address = [00 e0 0a 0b 79 01];
			};

			ethernet@11340 {
				device_type = "network";
				compatible = "fsl,mpc8280-fcc-enet",
				             "fsl,cpm2-fcc-enet";
				reg = <11340 20 8600 100 113d0 1>;
				interrupts = <22 8>;
				interrupt-parent = <&PIC>;
				phy-handle = <&PHY1>;
				linux,network-index = <1>;
				fsl,cpm-command = <1a400300>;
				local-mac-address = [00 e0 0c 00 79 01];
			};

			mdio@10d40 {
				device_type = "mdio";
				compatible = "fsl,pq2fads-mdio-bitbang",
				             "fsl,mpc8280-mdio-bitbang",
				             "fsl,cpm2-mdio-bitbang";
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <10d40 14>;
				fsl,mdio-pin = <9>;
				fsl,mdc-pin = <a>;

				PHY0: ethernet-phy@0 {
					interrupt-parent = <&PIC>;
					interrupts = <19 2>;
					reg = <0>;
					device_type = "ethernet-phy";
				};

				PHY1: ethernet-phy@1 {
					interrupt-parent = <&PIC>;
					interrupts = <19 2>;
					reg = <3>;
					device_type = "ethernet-phy";
				};
			};

			usb@11b60 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,mpc8280-usb",
				             "fsl,cpm2-usb";
				reg = <11b60 18 8b00 100>;
				interrupt-parent = <&PIC>;
				interrupts = <b 8>;
				fsl,cpm-command = <2e600000>;
			};
		};

		PIC: interrupt-controller@10c00 {
			#interrupt-cells = <2>;
			interrupt-controller;
			reg = <10c00 80>;
			compatible = "fsl,mpc8280-pic", "fsl,cpm2-pic";
		};

	};

	chosen {
		linux,stdout-path = "/soc/cpm/serial@11a00";
	};
};

[-- Attachment #3: mpc8272ads-Kernel-2.6.32.2.dts --]
[-- Type: text/plain, Size: 3724 bytes --]

/*
 * Device Tree for the PQ2FADS-ZU board with an MPC8280 chip.
 *
 * Copyright 2007 Freescale Semiconductor Inc.
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 */

/ {
	model = "pq2fads";
	compatible = "fsl,pq2fads";
	#address-cells = <1>;
	#size-cells = <1>;

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			device_type = "cpu";
			reg = <0>;
			d-cache-line-size = <32>;
			i-cache-line-size = <32>;
			d-cache-size = <16384>;
			i-cache-size = <16384>;
			timebase-frequency = <0>;
			clock-frequency = <0>;
		};
	};

	memory {
		device_type = "memory";
		reg = <00000000 02000000>;
	};

	soc@f0000000 {
		#address-cells = <1>;
		#size-cells = <1>;
		device_type = "soc";
		compatible = "fsl,mpc8280", "fsl,pq2-soc";
		ranges = <00000000 f0000000 00053000>;

		// Temporary -- will go away once kernel uses ranges for get_immrbase().
		reg = <f0000000 00053000>;

		cpm@119c0 {
			#address-cells = <1>;
			#size-cells = <1>;
			#interrupt-cells = <2>;
			compatible = "fsl,mpc8280-cpm", "fsl,cpm2";
			reg = <119c0 30>;
			ranges;

			muram@0 {
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0 0 10000>;

				data@0 {
					compatible = "fsl,cpm-muram-data";
					reg = <0 2000 9800 800>;
				};
			};

			brg@119f0 {
				compatible = "fsl,mpc8280-brg",
				             "fsl,cpm2-brg",
				             "fsl,cpm-brg";
				reg = <119f0 10 115f0 10>;
			};

			serial@11a00 {
				device_type = "serial";
				compatible = "fsl,mpc8280-scc-uart",
				             "fsl,cpm2-scc-uart";
				reg = <11a00 20 8000 100>;
				interrupts = <40 8>;
				interrupt-parent = <&PIC>;
				fsl,cpm-brg = <1>;
				fsl,cpm-command = <00800000>;
			};

			serial@11a20 {
				device_type = "serial";
				compatible = "fsl,mpc8280-scc-uart",
				             "fsl,cpm2-scc-uart";
				reg = <11a20 20 8100 100>;
				interrupts = <41 8>;
				interrupt-parent = <&PIC>;
				fsl,cpm-brg = <2>;
				fsl,cpm-command = <04a00000>;
			};

			ethernet@11320 {
				device_type = "network";
				compatible = "fsl,mpc8280-fcc-enet",
				             "fsl,cpm2-fcc-enet";
				reg = <11320 20 8500 100 113b0 1>;
				interrupts = <33 8>;
				interrupt-parent = <&PIC>;
				phy-handle = <&PHY0>;
				linux,network-index = <0>;
				fsl,cpm-command = <16200300>;
				local-mac-address = [00 e0 0a 0b 79 01];
			};

			ethernet@11340 {
				device_type = "network";
				compatible = "fsl,mpc8280-fcc-enet",
				             "fsl,cpm2-fcc-enet";
				reg = <11340 20 8600 100 113d0 1>;
				interrupts = <34 8>;
				interrupt-parent = <&PIC>;
				phy-handle = <&PHY1>;
				linux,network-index = <1>;
				fsl,cpm-command = <1a400300>;
				local-mac-address = [00 e0 0c 00 79 01];
			};

			mdio@10d40 {
				device_type = "mdio";
				compatible = "fsl,pq2fads-mdio-bitbang",
				             "fsl,mpc8280-mdio-bitbang",
				             "fsl,cpm2-mdio-bitbang";
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <10d40 14>;
				fsl,mdio-pin = <9>;
				fsl,mdc-pin = <a>;

				PHY0: ethernet-phy@0 {
					interrupt-parent = <&PIC>;
					interrupts = <25 2>;
					reg = <0>;
					device_type = "ethernet-phy";
				};

				PHY1: ethernet-phy@1 {
					interrupt-parent = <&PIC>;
					interrupts = <25 2>;
					reg = <3>;
					device_type = "ethernet-phy";
				};
			};
	
		};

		PIC: interrupt-controller@10c00 {
			#interrupt-cells = <2>;
			interrupt-controller;
			reg = <10c00 80>;
			compatible = "fsl,mpc8280-pic", "fsl,cpm2-pic";
		};

	};

	chosen {
		linux,stdout-path = "/soc/cpm/serial@11a00";
	};
};

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Problem dtb file booting Kernel 2.6.32
  2010-01-15 14:30   ` Andres F Marquez
@ 2010-01-16  3:59     ` Hunter Cobbs
  2010-01-18 20:56       ` Andres F Marquez
  0 siblings, 1 reply; 5+ messages in thread
From: Hunter Cobbs @ 2010-01-16  3:59 UTC (permalink / raw)
  To: Andres Marquez; +Cc: Scott Wood, linuxppc-dev

Hi,

If you're going to attempt to use v1 dts, you might want to try to add


 * option) any later version.
 */

/dts-v1/;

/ {

to your DTS file.  Also, you'll want to prefix all of your hex addresses
with "0x"  so, 200000 = 0x200000

Hope that helps,
Hunter


On Fri, 2010-01-15 at 09:30 -0500, Andres F Marquez wrote:
> Hello,
> 
> I was able to boot Kernel 2.6.26.8 (using our old dts file from 
> Kernel 2.6.25). However, I need to upgrade to a newer Kernel because
> I am having serious problems with the ethernet interface under heavy
> load. I am not sure if it could be a scheduling problem or the network
> driver. CPU usage is low but load average is high (more than 4).
> 
> The main difference that I could find is that for newer Kernels the 
> /arch/ppc was removed. I also read online that dts version changed 
> from 0 to 1 somewhere around Kernel 2.6.27 or so.
> 
> Following your instruction, I executed in the LTIB command shell:
> 
> LTIB> dtc -I dtb -O dts ../mpc8272ads.dtb
> 
> I executed that command passing as argument the old working dtb file.
> I got a dts file which I placed in the new Kernel and compiled.
> Unfortunately, I am still getting the same error.
> 
> Attached you can find both dts files.
> 
> Thank you.
> 
> 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Problem dtb file booting Kernel 2.6.32
  2010-01-16  3:59     ` Hunter Cobbs
@ 2010-01-18 20:56       ` Andres F Marquez
  0 siblings, 0 replies; 5+ messages in thread
From: Andres F Marquez @ 2010-01-18 20:56 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Scott Wood, Hunter Cobbs

Hello,

   I finally got the dtb working for the Kernel 2.6.32.2. I went to an
old folder backup that I had in which I found some files used by LTIB
for the Kernel configuration and restore them (including .config file).
Then, I removed the /localbus and /pci references from my dtb file
because I am not using them at this point. I did it using the fdt
utility under uboot.

Thank you everyone for your help.


-- 
Andres F Marquez
EdgeAccess
Development
amarquez@edgeaccess.net



On Fri, 2010-01-15 at 21:59 -0600, Hunter Cobbs wrote:
> Hi,
> 
> If you're going to attempt to use v1 dts, you might want to try to add
> 
> 
>  * option) any later version.
>  */
> 
> /dts-v1/;
> 
> / {
> 
> to your DTS file.  Also, you'll want to prefix all of your hex addresses
> with "0x"  so, 200000 = 0x200000
> 
> Hope that helps,
> Hunter
> 
> 
> On Fri, 2010-01-15 at 09:30 -0500, Andres F Marquez wrote:
> > Hello,
> > 
> > I was able to boot Kernel 2.6.26.8 (using our old dts file from 
> > Kernel 2.6.25). However, I need to upgrade to a newer Kernel because
> > I am having serious problems with the ethernet interface under heavy
> > load. I am not sure if it could be a scheduling problem or the network
> > driver. CPU usage is low but load average is high (more than 4).
> > 
> > The main difference that I could find is that for newer Kernels the 
> > /arch/ppc was removed. I also read online that dts version changed 
> > from 0 to 1 somewhere around Kernel 2.6.27 or so.
> > 
> > Following your instruction, I executed in the LTIB command shell:
> > 
> > LTIB> dtc -I dtb -O dts ../mpc8272ads.dtb
> > 
> > I executed that command passing as argument the old working dtb file.
> > I got a dts file which I placed in the new Kernel and compiled.
> > Unfortunately, I am still getting the same error.
> > 
> > Attached you can find both dts files.
> > 
> > Thank you.
> > 
> > 
> > _______________________________________________
> > Linuxppc-dev mailing list
> > Linuxppc-dev@lists.ozlabs.org
> > https://lists.ozlabs.org/listinfo/linuxppc-dev
> 
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-01-18 21:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-14 20:40 Problem dtb file booting Kernel 2.6.32 Andres F Marquez
2010-01-14 21:44 ` Scott Wood
2010-01-15 14:30   ` Andres F Marquez
2010-01-16  3:59     ` Hunter Cobbs
2010-01-18 20:56       ` Andres F Marquez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).