Subject: Re: MPC8343 - "unable to handle paging request @ 0"

From: Andre Schwarz <[email-masked]>
Date: Tue, 08 Apr 2008 15:50:26 +0200

Scott Wood schrieb:
> On Sat, Apr 05, 2008 at 10:19:49AM +0200, André Schwarz wrote:
>   
>> Kernel starts and crashes with "unable to handle kernel paging request @  
>> 00000000".
>>
>> After turning debug on in some files I can see that the initrd memory  
>> gets reserved and the dtb is parsed correctly.
>> PCI memory/io spaces are set up fine.
>>
>> At first I thought this is a problem with the device tree since the call  
>> trace always points to "of_"-functions and "strcmp".
>>     
>
> Could you provide this call trace?
>
> -Scott
> _______________________________________________
> Linuxppc-dev mailing list
> [email-masked]
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>   
Scott,

after building a debug kernel and attaching the bdi2000 it looks like 
the crash occurs during "console_init()" ...

Since we're using a dtb I omit the "console=..." argument for the 
kernel. Is this correct ?

If "console=/dev/ttyS0,115200N8" argument is given the serial console 
stops working after console_init....

On other PowerPC system I could see something like this during boot :

-> find_legacy_serial_port()
stdout is /soc8568@e0000000/serial@4600
legacy_serial_console = 1
default console speed = 115340
<- find_legacy_serial_port()

Should I see this message also ?
Have I misconfigured anything ?

u-boot prints the following dtb :

...
        aliases {
                name = "aliases";
                ethernet0 = "/soc8343@e0000000/ethernet@24000";
                ethernet1 = "/soc8343@e0000000/ethernet@25000";
                serial0 = "/soc8343@e0000000/serial@4500";
                serial1 = "/soc8343@e0000000/serial@4600";
                pci0 = "/pci@e0008500";
        };
        cpus {
                name = "cpus";
                #address-cells = <0x00000001>;
                #size-cells = <0x00000000>;
                PowerPC,8343@0 {
                        name = "PowerPC,8343";
                        device_type = "cpu";
                        reg = <0x00000000>;
                        d-cache-line-size = <0x00000020>;
                        i-cache-line-size = <0x00000020>;
                        d-cache-size = <0x00008000>;
                        i-cache-size = <0x00008000>;
                        timebase-frequency = <0x03f940aa>;
                        bus-frequency = <0x0fe502a8>;
                        clock-frequency = <0x17d783fc>;
                };
        };
        memory {
                name = "memory";
                device_type = "memory";
                reg = <0x00000000 0x20000000>;
        };
        soc8343@e0000000 {
                name = "soc8343";
                #address-cells = <0x00000001>;
                #size-cells = <0x00000001>;
                device_type = "soc";
                compatible = "soc";
                ranges = [00 00 00 00 e0 00 00 00 00 10 00 00];
                reg = <0xe0000000 0x00000200>;
                bus-frequency = <0x0fe502a8>;
                wdt@200 {
                        device_type = "watchdog";
                        compatible = "mpc83xx_wdt";
                        reg = <0x00000200 0x00000100>;
                };
                i2c@3000 {
                        name = "i2c";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        cell-index = <0x00000000>;
                        compatible = "fsl-i2c";
                        reg = <0x00003000 0x00000100>;
                        interrupts = <0x0000000e 0x00000008>;
                        interrupt-parent = <0x00000001>;
                        dfsrr;
                };
                i2c@3100 {
                        name = "i2c";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        cell-index = <0x00000001>;
                        compatible = "fsl-i2c";
                        reg = <0x00003100 0x00000100>;
                        interrupts = <0x0000000f 0x00000008>;
                        interrupt-parent = <0x00000001>;
                        dfsrr;
                };
                spi@7000 {
                        name = "spi";
                        cell-index = <0x00000000>;
                        compatible = "fsl,spi";
                        reg = <0x00007000 0x00001000>;
                        interrupts = <0x00000010 0x00000008>;
                        interrupt-parent = <0x00000001>;
                        mode = "cpu";
                };
                usb@22000 {
                        name = "usb";
                        compatible = "fsl-usb2-mph";
                        reg = <0x00022000 0x00001000>;
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        interrupt-parent = <0x00000001>;
                        interrupts = <0x00000027 0x00000008>;
                        phy_type = "ulpi";
                        port0;
                };
                mdio@24520 {
                        name = "mdio";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        compatible = "fsl,gianfar-mdio";
                        reg = <0x00024520 0x00000020>;
                        ethernet-phy@0 {
                                cell-index = <0x00000000>;
                                interrupt-parent = <0x00000001>;
                                interrupts = <0x00000016 0x00000008>;
                                reg = <0x00000000>;
                                device_type = "ethernet-phy";
                                linux,phandle = <0x00000002>;
                        };
                        ethernet-phy@1 {
                                cell-index = <0x00000001>;
                                interrupt-parent = <0x00000001>;
                                interrupts = <0x00000017 0x00000008>;
                                reg = <0x00000001>;
                                device_type = "ethernet-phy";
                                linux,phandle = <0x00000003>;
                        };
                };
                ethernet@24000 {
                        cell-index = <0x00000000>;
                        device_type = "network";
                        model = "TSEC";
                        compatible = "gianfar";
                        reg = <0x00024000 0x00001000>;
                        local-mac-address = [b6 b4 45 eb fb c0];
                        interrupts = [00 00 00 20 00 00 00 08 00 00 00 
21 00 00 00 08 00 00 00 22 00 00 00 08];
                        interrupt-parent = <0x00000001>;
                        phy-handle = <0x00000002>;
                        linux,network-index = <0x00000000>;
                };
                ethernet@25000 {
                        cell-index = <0x00000001>;
                        device_type = "network";
                        model = "TSEC";
                        compatible = "gianfar";
                        reg = <0x00025000 0x00001000>;
                        local-mac-address = [b6 b4 45 eb fb c2];
                        interrupts = [00 00 00 23 00 00 00 08 00 00 00 
24 00 00 00 08 00 00 00 25 00 00 00 08];
                        interrupt-parent = <0x00000001>;
                        phy-handle = <0x00000003>;
                        linux,network-index = <0x00000001>;
                };
                serial@4500 {
                        cell-index = <0x00000000>;
                        device_type = "serial";
                        compatible = "ns16550";
                        reg = <0x00004500 0x00000100>;
                        clock-frequency = <0x0fe502a8>;
                        interrupts = <0x00000009 0x00000008>;
                        interrupt-parent = <0x00000001>;
                };
                serial@4600 {
                        cell-index = <0x00000001>;
                        device_type = "serial";
                        compatible = "ns16550";
                        reg = <0x00004600 0x00000100>;
                        clock-frequency = <0x0fe502a8>;
                        interrupts = <0x0000000a 0x00000008>;
                        interrupt-parent = <0x00000001>;
                };
                pic@700 {
                        interrupt-controller;
                        #address-cells = <0x00000000>;
                        #interrupt-cells = <0x00000002>;
                        reg = <0x00000700 0x00000100>;
                        device_type = "ipic";
                        linux,phandle = <0x00000001>;
                };
        };
....

regards,
Andre

MATRIX VISION GmbH, Talstraße 16, DE-71570 Oppenweiler  - Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschäftsführer: Gerhard Thullner, Werner Armingeon, Uwe Furtner