[U-Boot-Users] Help! u-boot-1.3.2 booting linux-2.6.25 kernel, hanging after Booting using the fdt at 0x600000
张世乐
slzhang1980 at gmail.com
Sun Apr 20 11:01:49 CEST 2008
Hi, all,
I'm tying to porting the kernel (2.6.25) to the mpc8247
platform, use the u-boot (1.3.2)
after run the command:
>tftp 300000 uImage; tftp 600000 mpc8247.dtb; bootm 300000 - 600000
the output like this:
[snip]
Uncompressing Kernel Image ... OK
Booting using the fdt at 0x600000
then, hanging...
and this is my mpc8247.dts, reference to mgcoge.dts and ep8248e.dts
from www.denx.de.
--------------------------------------------------------------------------------------------------------
/ {
model = "MPC8247";
compatible = "fsl,mpc8247";
#address-cells = <1>;
#size-cells = <1>;
aliases {
ethernet0 = ð0;
serial0 = &scc1;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
PowerPC,8247 at 0 {
device_type = "cpu";
reg = <0>;
d-cache-line-size = <20>;
i-cache-line-size = <20>;
d-cache-size = <4000>;
i-cache-size = <4000>;
bus-frequency = <0>;
timebase-frequency = <0>;
clock-frequency = <0>;
};
};
memory {
device_type = "memory";
reg = <0 0>;
};
localbus at fb010100 {
compatible = "fsl,mpc8247-localbus",
"fsl,pq2-localbus";
#address-cells = <2>;
#size-cells = <1>;
reg = <fb010100 40>;
ranges = <0 0 fb000000 00800000>;
flash at 0,0 {
compatible = "cfi-flash";
reg = <0 0 800000>;
#address-cells = <1>;
#size-cells = <1>;
bank-width = <2>;
device-width = <2>;
};
};
soc at fb000000 {
#address-cells = <1>;
#size-cells = <1>;
device_type = "soc";
compatible = "fsl,mpc8247", "fsl,pq2-soc";
ranges = <00000000 fb000000 00053000>;
reg = <fb000000 00053000>;
cpm at 119c0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,mpc8247-cpm", "fsl,cpm2";
reg = <119c0 30>;
ranges;
muram at 0 {
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 10000>;
data at 0 {
compatible = "fsl,cpm-muram-data";
reg = <0 2000 9800 800>;
};
};
brg at 119f0 {
compatible = "fsl,mpc8272-brg",
"fsl,cpm2-brg",
"fsl,cpm-brg";
reg = <119f0 10 115f0 10>;
};
/* Monitor port/SCC1 */
scc1: serial at 11a00 {
device_type = "serial";
compatible = "fsl,mpc8247-smc-uart",
"fsl,cpm2-smc-uart";
reg = <11a00 20 8000 100>;
interrupts = <28 8>;
interrupt-parent = <&PIC>;
fsl,cpm-brg = <1>;
fsl,cpm-command = <8c00000>;
};
mdio at 10d60 {
device_type = "mdio";
compatible = "fsl,mpc8247-mdio-bitbang",
"fsl,mpc8272-mdio-bitbang",
"fsl,cpm2-mdio-bitbang";
reg = <10d60 14>;
#address-cells = <1>;
#size-cells = <0>;
fsl,mdio-pin = <1d>;
fsl,mdc-pin = <7>;
PHY0: ethernet-phy0 {
device_type = "ethernet-phy";
interrupt-parent = <&PIC>;
interrupts = <3b 8>;
reg = <0>;
};
PHY1: ethernet-phy1 {
device_type = "ethernet-phy";
interrupt-parent = <&PIC>;
interrupts = <3a 8>;
reg = <3>;
};
};
eth0: ethernet at 11300 {
device_type = "network";
compatible = "fsl,mpc8272-scc-enet",
"fsl,cpm2-scc-enet";
reg = <11300 20 8400 100 11390 1>;
mac-address = [ 00 00 00 00 00 00 ];
interrupts = <20 8>;
interrupt-parent = <&PIC>;
phy-handle = <&PHY0>;
rx-clock = <9>;
tx-clock = <a>;
linux,network-index = <0>;
fsl,cpm-command = <12000300>;
};
eth1: ethernet at 11320 {
device_type = "network";
compatible = "fsl,mpc8272-scc-enet",
"fsl,cpm2-scc-enet";
reg = <11320 20 8500 100 113b0 1>;
mac-address = [ 00 00 00 00 00 00 ];
interrupts = <21 8>;
interrupt-parent = <&PIC>;
phy-handle = <&PHY1>;
rx-clock = <d>;
tx-clock = <e>;
linux,network-index = <1>;
fsl,cpm-command = <16200300>;
};
usb at 11b60 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,mpc8247-usb",
"fsl,cpm2-usb";
reg = <11b60 18 8b00 100>;
interrupt-parent = <&PIC>;
interrupts = <b 8>;
fsl,cpm-command = <2e600000>;
};
};
PIC: interrupt-controller at 10c00 {
compatible = "fsl,mpc8247-pic", "fsl,pq2-pic";
#interrupt-cells = <2>;
interrupt-controller;
reg = <10c00 28>;
};
};
chosen {
linux,stdout-path = "/soc/cpm/serial at 11a00";
};
};
---------------------------------------------------------------------------------------------------------
I have use the method by lighting the led, and found out the kernel
hang at the call
at bl call_setup_cpu (in ../kernel/head_32.S). In fact, it hang at
the function
setup_common_caches (in ../kernel/cpu_setup_6xx.S), I think it show
that the kernel
can not enable the I-caches and D-caches.
Why?
Please help me, thanks!
More information about the U-Boot
mailing list