[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 = &eth0;
               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