Skip to contentSkip to conversation

MPC8343 - "unable to handle paging request @ 0"

DISCUSSION André Schwarz 4 participants 16 messages Apr 5, 2008 – Dec 5, 2009 1 message not in the archive

lore
Share & tools
lore
#0 lore raw

Kim,

sorry for the general questions - but I'm running out of ideas. We never ever had that many problems getting a PowerPC running during=20 the past 10 years.

I've cross-checked the hardware and design with Freescale FAE.=20 Everything looks fine and is approved.

We're running latest u-boot v1.3.2 and kernel 2.6.25-rc8 from Denx.

A MPC5200B System is up and running fine with this scenario, so=20 hopefully there are no basic problems.

The MPC8343B (rev.3.1) is working pretty fine with u-boot including=20 mtest. Only problem is a the TSECs not working with our RGMII phy - but=20 this can wait.

I've set up a dts based on the MPC834x_mds and removed the 2nd PCI bus=20 and local bus stuff.
Kernel has been build with a new platform "MVBLM7" which is the name of=20 our board - nothing special so far.
u-boot fills out all parameters (clocks, mem, initrd @ chosen, ...)=20 correctly and the kernel is started exactly the same way as the MPC5200B=20 system using "bootm kernel_add initrd_addr dtb_addr".

Kernel starts and crashes with "unable to handle kernel paging request @=20 00000000".

After turning debug on in some files I can see that the initrd memory=20 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=20 trace always points to "of_"-functions and "strcmp".
So I removed nearly everything from the kernel and dts including PCI,=20 net, USB and peripherals leaving only a minimum (cpu, mem, soc-node with=20 ipic and serial).

Unfortunately the error is still the same !

I wonder if there are some basic issues regarding MPC8343 or=20 specialities from the Freescale boards not being present on our board.

Major difference is the CPU (MPC8343B), 512MB RAM (using 2 BATs of=20 course) and nothing else on the local bus besides the Nor-Flash. Of course the MPC8343 has only a single PCI-32 and only one USB.

Do you have any hints on this ?
Do you suggest to wait for the 2.6.25 release ?
Do you know of any MPC8343 based boards already up and running ?

regards,
Andr=E9 Schwarz

MATRIX VISION GmbH, Talstra=DFe 16, DE-71570 Oppenweiler - Registergeric=
ht: Amtsgericht Stuttgart, HRB 271090
Gesch=E4ftsf=FChrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner

#1 lore raw
Quoted 9 lines · André Schwarz

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

#2 lore raw
Quoted 7 lines · Scott Wood
Quoted 5 lines · André Schwarz

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.

Quoted 7 lines
Quoted 2 lines

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

Scott,

thanks for your reply.

please find below the output after the bootm command in u-boot.

My System.map :

...
c00126b8 T strcpy
c00126d4 T strncpy
c0012714 T strcat
c0012740 T strcmp
c0012764 T strlen
c001277c T memcmp
...
c0140bc4 T of_find_property
c0140c74 T of_get_property
c0140ca8 T of_device_is_compatible
c0140d48 T of_match_node
c0140e68 T of_find_matching_node
c0140f20 T of_n_size_cells
c0140f9c T of_n_addr_cells

Log:

# Booting kernel from Legacy Image at ff810000 ...

  Image Name:   2.6.25 mvBL-M7 MPC8343 #1
  Image Type:   PowerPC Linux Kernel Image (uncompressed)
  Data Size:    2084636 Bytes =  2 MB

Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
## Flattened Device Tree blob at 00000000
Booting using the fdt blob at 0x600000
## Loading init Ramdisk from Legacy Image at 01000000 ...

  Image Name:   mvBC-1G uInitrd #1.1.03
  Image Type:   PowerPC Linux RAMDisk Image (uncompressed)
  Data Size:    2654208 Bytes =  2.5 MB

Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Ramdisk to 1fcb7000, end 1ff3f000 ... OK
-> early_init_devtree(c0600000)
search "chosen", depth: 0, uname:
search "chosen", depth: 1, uname: chosen
Looking for initrd properties... <3>initrd_start=0xdfcb7000 initrd_end=0xdff3f000
Command line is: root=/dev/ram ro rootfstype=squashfs
dt_root_size_cells = 1
dt_root_addr_cells = 1
memory scan node memory, reg size 8, data: 0 20000000 2 1,
- 0 , 20000000
reserving: 1fcb7000 -> 288001
Phys. mem: 20000000
-> move_device_tree
<- move_device_tree
Scanning CPUs ...
boot cpu: logical 0 physical 0
<- early_init_devtree()
Using mvBlueLYNX-M7 machine description
Linux version 2.6.25-rc8-01197-g1de15bb-dirty (root@nova) (gcc version 4.0.0 (DENX ELDK 4.1 4.0.0)) #1 PREEMPT Tue Apr 8 10:40:51 CEST 2008 -> unflatten_device_tree()
size is 1840, allocating...
unflattening dfffe7bc...
fixed up name for ->
fixed up name for chosen -> chosen
fixed up name for aliases -> aliases
fixed up name for cpus -> cpus
fixed up name for PowerPC,8343@0 -> PowerPC,8343
fixed up name for memory -> memory
fixed up name for soc8343@e0000000 -> soc8343
fixed up name for wdt@200 -> wdt
fixed up name for i2c@3000 -> i2c
fixed up name for rtc@68 -> rtc
fixed up name for i2c@3100 -> i2c
fixed up name for spi@7000 -> spi
fixed up name for usb@22000 -> usb
fixed up name for mdio@24520 -> mdio
fixed up name for ethernet-phy@0 -> ethernet-phy
fixed up name for ethernet-phy@1 -> ethernet-phy
fixed up name for ethernet@24000 -> ethernet
fixed up name for ethernet@25000 -> ethernet
fixed up name for serial@4500 -> serial
fixed up name for serial@4600 -> serial
fixed up name for pic@700 -> pic
fixed up name for localbus@e0005000 -> localbus
fixed up name for flash@0,0 -> flash
<- unflatten_device_tree()
Found initrd at 0xdfcb7000:0xdff3f000
console [udbg0] enabled
setup_arch: bootmem
mvblm7_setup_arch()

Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xc0012748
Oops: Kernel access of bad area, sig: 11 [#1]
PREEMPT mvBlueLYNX-M7
Modules linked in:
NIP: c0012748 LR: c0140c10 CTR: 00000000
REGS: c01f9e40 TRAP: 0300   Not tainted  (2.6.25-rc8-01197-g1de15bb-dirty)
MSR: 00001032 <ME,IR,DR>  CR: 22008048  XER: 20000000
DAR: 00000000, DSISR: 20000000

TASK = c01e4510[0] 'swapper' THREAD: c01f8000
GPR00: c0140c84 c01f9ef0 c01e4510 00000000 c0197a7f ffffffff c01f9edc 00000000
GPR08: c01f15e4 00000003 c0600b84 0000004d 22002048 ffffffdf 1fffd000 00000000
GPR16: ffffffdf ffff7fdf 00000000 00000000 1fff8974 1ff426f8 00000004 00288000
GPR24: 00000002 00000000 5f0fffff c01993e4 c01f9f28 c0197a80 c01f8000 dffff9e4

Call Trace:

[c01f9ef0] [c001c190] (unreliable)
[c01f9f10] [c0140c84]
[c01f9f20] [c0140ccc]
[c01f9f40] [c014145c]
[c01f9f60] [c0014014]
[c01f9fa0] [c01d1a40]
[c01f9fb0] [c01ce64c]
[c01f9fc0] [c01c55ac]
[c01f9ff0] [00003438]
Instruction dump:
3884ffff 8c050001 2c000000 4082fff8 38a5ffff 8c040001 2c000000 9c050001 4082fff4 4e800020 38a3ffff 3884ffff <8c650001> 2c830000 8c040001 7c601851

---[ end trace 8640abe69a316dee ]---
Kernel panic - not syncing: Attempted to kill the idle task!

Rebooting in 180 seconds..

Please let me know if you need more information.

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

#3 lore raw
Quoted 10 lines · Andre Schwarz
Call Trace:

[c01f9ef0] [c001c190] (unreliable)
[c01f9f10] [c0140c84]
[c01f9f20] [c0140ccc]
[c01f9f40] [c014145c]
[c01f9f60] [c0014014]
[c01f9fa0] [c01d1a40]
[c01f9fb0] [c01ce64c]
[c01f9fc0] [c01c55ac]
[c01f9ff0] [00003438]

Please turn kallsyms on, which will produce an annotated call trace. Not all these addresses were in the System.map fragment.

-Scott

#4 lore raw
In reply to Scott Wood
Quoted 10 lines · Scott Wood
Quoted 7 lines · André Schwarz

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".

Quoted 8 lines

Could you provide this call trace?

-Scott
_______________________________________________
Linuxppc-dev mailing list
[email protected]
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

#5 lore raw
Quoted 2 lines · Andre Schwarz

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

Does your device tree have a /chosen node after u-boot is done with it? find_legacy_serial_ports() can crash otherwise (we really should fix that).

Quoted 2 lines

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

It's OK if you have /chosen/linux,stdout-path.

Quoted 6 lines

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 :

Quoted 8 lines

-> 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 ?

Only if you enable debug messages in legacy_serial.c.

Quoted 1 line

Have I misconfigured anything ?

One thing that sticks out from the above is that you ask for ttyS0, but the stdout you list from the other system corresponds to ttyS1. Is this just a difference between the two systems?

-Scott

#6 lore raw
Quoted 8 lines · Scott Wood
Quoted 2 lines · Andre Schwarz

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

Does your device tree have a /chosen node after u-boot is done with it? find_legacy_serial_ports() can crash otherwise (we really should fix that).

latest u-boot does add the chosen node.
As far as I know it's for initrd setup ... don't know if it's complete.

Quoted 6 lines
Quoted 2 lines

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

It's OK if you have /chosen/linux,stdout-path.

that sounds promising ! Haven't seen this and will have a closer look.

Quoted 12 lines
Quoted 12 lines

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()

Quoted 6 lines
Quoted 2 lines

Should I see this message also ?

Only if you enable debug messages in legacy_serial.c.

ok.

Quoted 8 lines
Quoted 2 lines

Have I misconfigured anything ?

One thing that sticks out from the above is that you ask for ttyS0, but the stdout you list from the other system corresponds to ttyS1. Is this just a difference between the two systems?

Yes - the log from the MPC8568 is a copy&paste from another posting. It's not my system. I want ttyS0.

Quoted 2 lines

-Scott

I appreciate your help !

Thanks,
André

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

#7 lore raw
In reply to Scott Wood
Quoted 32 lines · Scott Wood
Quoted 2 lines · Andre Schwarz

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

Does your device tree have a /chosen node after u-boot is done with it? find_legacy_serial_ports() can crash otherwise (we really should fix that).

Quoted 2 lines

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

It's OK if you have /chosen/linux,stdout-path.

Quoted 5 lines

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 :

Quoted 9 lines

-> 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 ?

Only if you enable debug messages in legacy_serial.c.

Quoted 9 lines
Quoted 2 lines

Have I misconfigured anything ?

One thing that sticks out from the above is that you ask for ttyS0, but the stdout you list from the other system corresponds to ttyS1. Is this just a difference between the two systems?

-Scott

Scott,

I've added kallsyms and the #debug in legacy_serial.
Obviously there's missing something
-> see error "can't find stdout package /soc8343@e0000000/serial@4500 !" below.

Can you help here ?

Thanks,
Andre

## Booting kernel from Legacy Image at ff810000 ...

  Image Name:   2.6.25 mvBL-M7 MPC8343 #12
  Image Type:   PowerPC Linux Kernel Image (uncompressed)
  Data Size:    2494236 Bytes =  2.4 MB

Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
## Flattened Device Tree blob at 00000000
Booting using the fdt blob at 0x600000
## Loading init Ramdisk from Legacy Image at 01000000 ...

  Image Name:   mvBC-1G uInitrd #1.1.03
  Image Type:   PowerPC Linux RAMDisk Image (uncompressed)
  Data Size:    2654208 Bytes =  2.5 MB

Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Ramdisk to 1fcb7000, end 1ff3f000 ... OK
-> early_init_devtree(c0600000)
search "chosen", depth: 0, uname:
search "chosen", depth: 1, uname: chosen
Looking for initrd properties... <3>initrd_start=0xdfcb7000 initrd_end=0xdff3f000
Command line is: root=/dev/ram ro rootfstype=squashfs
dt_root_size_cells = 1
dt_root_addr_cells = 1
memory scan node memory, reg size 8, data: 0 20000000 2 1,
- 0 , 20000000
reserving: 1fcb7000 -> 288001
Phys. mem: 20000000
-> move_device_tree
<- move_device_tree
Scanning CPUs ...
boot cpu: logical 0 physical 0
<- early_init_devtree()
Using mvBlueLYNX-M7 machine description
Linux version 2.6.25-rc8-01197-g1de15bb-dirty (root@nova) (gcc version 4.0.0 (DENX ELDK 4.1 4.0.0)) #12 PREEMPT Wed Apr 9 14:40:48 CEST 2008 -> unflatten_device_tree()
size is 192c, allocating...
unflattening dfffe6d0...
fixed up name for ->
fixed up name for chosen -> chosen
fixed up name for wdt@200 -> wdt
fixed up name for ethernet-phy@0 -> ethernet-phy
fixed up name for ethernet-phy@1 -> ethernet-phy
fixed up name for ethernet@24000 -> ethernet
fixed up name for ethernet@25000 -> ethernet
fixed up name for serial@4500 -> serial
fixed up name for serial@4600 -> serial
fixed up name for pic@700 -> pic
fixed up name for ppcboot_env@0 -> ppcboot_env
fixed up name for ppcboot_env_red@0x2000 -> ppcboot_env_red
fixed up name for u-boot_autoscript@0x4000 -> u-boot_autoscript
fixed up name for u-boot_autoscript_red@0x4000 -> u-boot_autoscript_red
fixed up name for dtb@0x8000 -> dtb
fixed up name for dtb_red@0xa000 -> dtb_red
fixed up name for kernel@0x10000 -> kernel
fixed up name for rfs@0x400000 -> rfs
fixed up name for u-boot@0x700000 -> u-boot
fixed up name for fpga@0x780000 -> fpga
<- unflatten_device_tree()
Found initrd at 0xdfcb7000:0xdff3f000
-> find_legacy_serial_port()
stdout is /soc8343@e0000000/serial@4500
legacy_serial_console = 0
default console speed = 115740
<- find_legacy_serial_port()
console [udbg0] enabled
setup_arch: bootmem
mvblm7_setup_arch()
arch: exit
Zone PFN ranges:
DMA 0 -> 131072
Normal 131072 -> 131072
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0 -> 131072
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048
Kernel command line: root=/dev/ram ro rootfstype=squashfs
PID hash table entries: 2048 (order: 11, 8192 bytes)
clocksource: timebase mult[3c00001] shift[22] registered

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -> check_legacy_serial_console()
can't find stdout package /soc8343@e0000000/serial@4500 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 514048k/524288k available (2328k kernel code, 9676k reserved, 88k data, 126k bss, 140k init)
SLUB: Genslabs=12, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
Mount-cache hash table entries: 512

------------[ cut here ]------------
Badness at lib/kref.c:43
NIP: c00f5494 LR: c000d6b0 CTR: 00000000
REGS: c025de60 TRAP: 0700   Not tainted  (2.6.25-rc8-01197-g1de15bb-dirty)
MSR: 00029032 <EE,ME,IR,DR>  CR: 84000048  XER: 00000000

TASK = c0248510[0] 'swapper' THREAD: c025c000
GPR00: 00000001 c025df10 c0248510 dffff170 dffff050 00000009 df80fc6a 00000000
GPR08: 0007ffff 00000000 df80b990 c06011cf 24000042 5fffffff 1fffd000 00000000
GPR16: 1fffffff 9fffffff 00000000 00000000 1fff8910 1ff426f8 00000004 00288000
GPR24: 00000000 00000000 c02630a0 c0260000 dfffefa0 c025c000 dffff050 dffff13c NIP [c00f5494] kref_get+0xc/0x24
LR [c000d6b0] of_node_get+0x20/0x38

Call Trace:

[c025df10] [c06011cf] 0xc06011cf (unreliable)
[c025df20] [c01571a4] of_get_next_child+0x40/0x9c
[c025df40] [c00bab5c] proc_device_tree_add_node+0x4c/0x144 [c025df60] [c00bab50] proc_device_tree_add_node+0x40/0x144 [c025df80] [c00bab50] proc_device_tree_add_node+0x40/0x144 [c025dfa0] [c00bacc8] proc_device_tree_init+0x74/0xa0 [c025dfb0] [c0235c70] proc_root_init+0xd4/0x10c
[c025dfc0] [c022374c] start_kernel+0x244/0x2cc
[c025dff0] [00003438] 0x3438
Instruction dump:
4bf289e1 7fa3eb78 3ba00000 4bfff3ad 4bffffd8 90830000 4e800020 38800001 4bfffff4 80030000 21200000 7c090114 <0f000000> 7d201828 31290001 7d20192d
WARNING: Bad of_node_put() on

Call Trace:
[c025ded0] [c00088fc] show_stack+0x50/0x190 (unreliable)
[c025df00] [c000de70] of_node_release+0xb0/0xcc
[c025df20] [c00f5500] kref_put+0x54/0x6c
[c025df30] [c000d6ec] of_node_put+0x24/0x34
[c025df40] [c00babc8] proc_device_tree_add_node+0xb8/0x144
[c025df60] [c00bab50] proc_device_tree_add_node+0x40/0x144
[c025df80] [c00bab50] proc_device_tree_add_node+0x40/0x144
[c025dfa0] [c00bacc8] proc_device_tree_init+0x74/0xa0
[c025dfb0] [c0235c70] proc_root_init+0xd4/0x10c
[c025dfc0] [c022374c] start_kernel+0x244/0x2cc
[c025dff0] [00003438] 0x3438
Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xc0014454
Oops: Kernel access of bad area, sig: 11 [#1]
PREEMPT mvBlueLYNX-M7
Modules linked in:
NIP: c0014454 LR: c00ba9e0 CTR: 00000000
REGS: c025de70 TRAP: 0300   Not tainted  (2.6.25-rc8-01197-g1de15bb-dirty)
MSR: 00009032 <EE,ME,IR,DR>  CR: 44000048  XER: 00000000
DAR: 00000000, DSISR: 20000000

TASK = c0248510[0] 'swapper' THREAD: c025c000
GPR00: c00bac0c c025df20 c0248510 00000023 ffffffff df80fd60 df80fd6e 00000000
GPR08: 001fffff 00000002 df80b990 c06010f5 24000022 5fffffff 1fffd000 00000000
GPR16: 1fffffff 9fffffff 00000000 00000000 1fff8910 1ff426f8 00000004 00288000
GPR24: 00000000 00000000 c02630a0 c0260000 dfffefa0 00000000 c025c000 df80fd00 NIP [c0014454] strcmp+0x10/0x24
LR [c00ba9e0] duplicate_name+0x3c/0x94

Call Trace:
[c025df20] [c00ba870] __proc_device_tree_add_prop+0x54/0xd4 (unreliable)
[c025df40] [c00bac0c] proc_device_tree_add_node+0xfc/0x144
[c025df60] [c00bab50] proc_device_tree_add_node+0x40/0x144
[c025df80] [c00bab50] proc_device_tree_add_node+0x40/0x144
[c025dfa0] [c00bacc8] proc_device_tree_init+0x74/0xa0
[c025dfb0] [c0235c70] proc_root_init+0xd4/0x10c
[c025dfc0] [c022374c] start_kernel+0x244/0x2cc

[c025dff0] [00003438] 0x3438
Instruction dump:
2c000000 4082fff8 38a5ffff 8c040001 2c000000 9c050001 4082fff4 4e800020 38a3ffff 3884ffff 8c650001 2c830000 <8c040001> 7c601851 4d860020 4182ffec

---[ end trace 8640abe69a316dee ]---
Kernel panic - not syncing: Attempted to kill the idle task!

Rebooting in 180 seconds..

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

#8 lore raw
Quoted 2 lines · Andre Schwarz

-> find_legacy_serial_port()
stdout is /soc8343@e0000000/serial@4500

It looks like you have some memory corruption between here...

Quoted 6 lines

clocksource: timebase mult[3c00001] shift[22] registered

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-> check_legacy_serial_console()
can't find stdout package /soc8343@e0000000/serial@4500 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

...and here.

-Scott

#9 lore raw
Quoted 8 lines · Scott Wood
Quoted 2 lines · Andre Schwarz

-> find_legacy_serial_port()
stdout is /soc8343@e0000000/serial@4500

It looks like you have some memory corruption between here...

Quoted 2 lines

clocksource: timebase mult[3c00001] shift[22] registered

Quoted 8 lines
Quoted 4 lines

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-> check_legacy_serial_console()
can't find stdout package /soc8343@e0000000/serial@4500 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

...and here.

-Scott

Scott,

are you talking about a possible hardware problem or misbehaving code ?

Does it look like something gets overwritten during initrd extraction/movement ?

The system has 512MB RAM which means that we need 2 BAT regs to map the memory. I've found comments in Freescale u-boot header files that currently a max of 256MB is supported. I never understood why ? Could this problem be related to this ?

Do I need to supply reserved memory regions ? I thought u-boot is doing so for initrd and the kernel don't need it ...

I'll rebuild u-boot with 256MB memory size and do an extra run with memory test - just to make sure.

Any hints where to look else ?

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

#10 lore raw
Quoted 14 lines · Andre Schwarz
Quoted 13 lines · Scott Wood
Quoted 2 lines · Andre Schwarz

-> find_legacy_serial_port()
stdout is /soc8343@e0000000/serial@4500

It looks like you have some memory corruption between here...

Quoted 6 lines

clocksource: timebase mult[3c00001] shift[22] registered

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-> check_legacy_serial_console()
can't find stdout package /soc8343@e0000000/serial@4500 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Quoted 7 lines
Quoted 3 lines

...and here.

-Scott

Scott,

are you talking about a possible hardware problem or misbehaving code ?

Either. The same OF call is done in both places with the same argument, but is getting different results.

Quoted 1 line

Does it look like something gets overwritten during initrd extraction/movement ?

Don't know.

Quoted 1 line

The system has 512MB RAM which means that we need 2 BAT regs to map the memory. I've found comments in Freescale u-boot header files that currently a max of 256MB is supported. I never understood why ? Could this problem be related to this ?

Kim's probably be the best one to answer u-boot questions.

-Scott

#11 lore raw
Quoted 27 lines · Scott Wood
Quoted 14 lines · Andre Schwarz
Quoted 13 lines · Scott Wood
Quoted 2 lines · Andre Schwarz

-> find_legacy_serial_port()
stdout is /soc8343@e0000000/serial@4500

It looks like you have some memory corruption between here...

Quoted 6 lines

clocksource: timebase mult[3c00001] shift[22] registered

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-> check_legacy_serial_console()
can't find stdout package /soc8343@e0000000/serial@4500 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Quoted 7 lines
Quoted 3 lines

...and here.

-Scott

Scott,

are you talking about a possible hardware problem or misbehaving code ?

Either. The same OF call is done in both places with the same argument, but is getting different results.

Quoted 1 line

Does it look like something gets overwritten during initrd extraction/movement ?

Quoted 8 lines

Don't know.

Quoted 1 line

The system has 512MB RAM which means that we need 2 BAT regs to map the memory. I've found comments in Freescale u-boot header files that currently a max of 256MB is supported. I never understood why ? Could this problem be related to this ?

Kim's probably be the best one to answer u-boot questions.

-Scott

Scott + Kim,

as mentioned before I have re-built u-boot with the following modifications :

- Reduce Memsize from 512 to 256MB
- Skipped 2nd BAT setup

dtb looks the same but memory size set to 256MB.

System boots fine - this is weird !

I'm not really familiar with the powerpc tree of the kernel and far out of sync with the current development.

Could you have a look at this ?

Any ideas right now ?

Thanks,
Andre

## Booting kernel from Legacy Image at ff810000 ...

  Image Name:   2.6.25 mvBL-M7 MPC8343 #12
  Image Type:   PowerPC Linux Kernel Image (uncompressed)
  Data Size:    2494236 Bytes =  2.4 MB

Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
## Flattened Device Tree blob at 00000000
Booting using the fdt blob at 0x600000
## Loading init Ramdisk from Legacy Image at 01000000 ...

  Image Name:   mvBC-1G uInitrd #1.1.03
  Image Type:   PowerPC Linux RAMDisk Image (uncompressed)
  Data Size:    2654208 Bytes =  2.5 MB

Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Ramdisk to 0fcb7000, end 0ff3f000 ... OK
-> early_init_devtree(c0600000)
search "chosen", depth: 0, uname:
search "chosen", depth: 1, uname: chosen
Looking for initrd properties... <3>initrd_start=0xcfcb7000 initrd_end=0xcff3f000
Command line is: root=/dev/ram ro rootfstype=squashfs
dt_root_size_cells = 1
dt_root_addr_cells = 1
memory scan node memory, reg size 8, data: 0 10000000 2 1,
- 0 , 10000000
reserving: fcb7000 -> 288001
Phys. mem: 10000000
-> move_device_tree
<- move_device_tree
Scanning CPUs ...
boot cpu: logical 0 physical 0
<- early_init_devtree()
Using mvBlueLYNX-M7 machine description
Linux version 2.6.25-rc8-01197-g1de15bb-dirty (root@nova) (gcc version 4.0.0 (DENX ELDK 4.1 4.0.0)) #12 PREEMPT Wed Apr 9 14:40:48 CEST 2008 -> unflatten_device_tree()
size is 192c, allocating...
unflattening cfffe6d0...
fixed up name for ->
fixed up name for chosen -> chosen
fixed up name for wdt@200 -> wdt
fixed up name for ethernet-phy@0 -> ethernet-phy
fixed up name for ethernet-phy@1 -> ethernet-phy
fixed up name for ethernet@24000 -> ethernet
fixed up name for ethernet@25000 -> ethernet
fixed up name for serial@4500 -> serial
fixed up name for serial@4600 -> serial
fixed up name for pic@700 -> pic
fixed up name for ppcboot_env@0 -> ppcboot_env
fixed up name for ppcboot_env_red@0x2000 -> ppcboot_env_red
fixed up name for u-boot_autoscript@0x4000 -> u-boot_autoscript
fixed up name for u-boot_autoscript_red@0x4000 -> u-boot_autoscript_red
fixed up name for dtb@0x8000 -> dtb
fixed up name for dtb_red@0xa000 -> dtb_red
fixed up name for kernel@0x10000 -> kernel
fixed up name for rfs@0x400000 -> rfs
fixed up name for u-boot@0x700000 -> u-boot
fixed up name for fpga@0x780000 -> fpga
<- unflatten_device_tree()
Found initrd at 0xcfcb7000:0xcff3f000
-> find_legacy_serial_port()
stdout is /soc8343@e0000000/serial@4500
legacy_serial_console = 0
default console speed = 115740
<- find_legacy_serial_port()
console [udbg0] enabled
setup_arch: bootmem
mvblm7_setup_arch()
Adding PCI host bridge /pci@e0008500
Found MPC83xx PCI host bridge at 0x00000000e0008500. Firmware bus number: 0->0
->Hose at 0xc0281000, cfg_addr=0xfdffd300,cfg_data=0xfdffd304
PCI host bridge /pci@e0008500 (primary) ranges:
MEM 0x0000000090000000..0x000000009fffffff -> 0x0000000090000000
MEM 0x0000000080000000..0x000000008fffffff -> 0x0000000080000000 Prefetch
IO 0x00000000e2000000..0x00000000e20fffff -> 0x0000000000000000
arch: exit
Zone PFN ranges:
DMA 0 -> 65536
Normal 65536 -> 65536
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0 -> 65536
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
Kernel command line: root=/dev/ram ro rootfstype=squashfs
IPIC (128 IRQ sources) at fdefc700
PID hash table entries: 1024 (order: 10, 4096 bytes)
clocksource: timebase mult[3c00001] shift[22] registered
-> check_legacy_serial_console()
stdout is /soc8343@e0000000/serial@4500
Found serial console at ttyS0
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 254396k/262144k available (2328k kernel code, 7428k reserved, 88k data, 126k bss, 140k init)
SLUB: Genslabs=12, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
Mount-cache hash table entries: 512
net_namespace: 152 bytes
NET: Registered protocol family 16

PCI: Probing PCI hardware
Try to map irq for 0000:00:00.0...
pci_busdev_to_OF_node(0,0x0)
parent is /pci@e0008500
result is <NULL>
Try to map irq for 0000:00:0b.0...
pci_busdev_to_OF_node(0,0x58)
parent is /pci@e0008500
result is <NULL>
-> got one, spec 2 cells (0x00000030 0x00000008...) on /soc8343@e0000000/pic@700
-> mapped to linux irq 48
PCI->OF bus map:
0 -> 0
PCI: PHB (bus 0) bridge rsrc 0: 0000000000000000-00000000000fffff [0x100], parent c024a074 (PCI IO)
PCI: PHB (bus 0) bridge rsrc 1: 0000000090000000-000000009fffffff [0x200], parent c024a058 (PCI mem)
PCI: PHB (bus 0) bridge rsrc 2: 0000000080000000-000000008fffffff [0x1200], parent c024a058 (PCI mem)
PCI: Allocating 0000:00:0b.0: Resource 0: 0000000090000000..0000000090007fff [200]
PCI: Assigning unassigned resouces...
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd Freeing initrd memory: 2592k freed
Fixing serial ports interrupts and IO ports ...
fixup_port_irq(0)
fixup_port_mmio(0)
fixup_port_irq(1)
fixup_port_mmio(1)
Registering platform serial ports
squashfs: version 3.3 (2007/10/31) Phillip Lougher
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 18) is a 16550A
console
handover: boot [udbg0] -> real [ttyS0]
serial8250.0: ttyS1 at MMIO 0xe0004600 (irq = 19) is a 16550A
brd: module loaded
loop: module loaded
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 39, io base 0xe0022000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usbcore: registered new interface driver libusual
i2c /dev entries driver
24c01a EEPROM driver initialized
WDT driver for MPC83xx initialized. mode:reset timeout=65535 (16 seconds)
RAMDISK: squashfs filesystem found at block 0
RAMDISK: Loading 2591KiB [1 disk] into ram disk... done.
VFS: Mounted root (squashfs filesystem) readonly.
Freeing unused kernel memory: 140k init

Mounting /proc
Mounting /tmp
MATRIX VISION mvBlueCOUGAR-1G gcc 4.0.0 Version: 15.05.2007

*************************************************
MATRIX VISION mvBlueCOUGAR-1G
*************************************************

executing /mnt/user/autostart ...
login[242]: root login on 'console'

BusyBox v1.4.2 (2007-05-15 09:04:24 CEST) Built-in shell (ash) Enter 'help' for a list of built-in commands.

-sh: can't access tty; job control turned off
mvBC-1G:~ $
mvBC-1G:~ $

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

#12 lore raw

MPC8343EA Linux DTS file

In reply to André Schwarz

Hi

We have an MPC8343EA based custom board.

I am not able to get Linux up and running in this. No serial output to debug further.
U-boot shows correct 'bdinfo' & 'clocks' output.

I doubt the DTS file in Linux. anyone has DTS file for MPC8343??

My current DTS file
/dts-v1/;

/ {
        model = "Silvus-SC3000";
        compatible = "MPC8349EMDS", "MPC834xMDS", "MPC83xxMDS";
        linux,phandle = <0x100>;
        #size-cells = <0x1>;
        #address-cells = <0x1>;

        aliases {
                ethernet0 = &enet0;
                ethernet1 = &enet1;
                serial0 = &serial0;
                serial1 = &serial1;
                pci0 = &pci0;
                pci1 = &pci1;
        };
         cpus {
                linux,phandle = <0x200>;
                #cpus = <0x1>;
                #address-cells = <1>;
                #size-cells = <0>;
 PowerPC,8343EA@0 {
                        device_type = "cpu";
                        reg = <0x0>;
                        d-cache-line-size = <20>;
                        i-cache-line-size = <20>;
                        d-cache-size = <8000>;
                        i-cache-size = <8000>;
                        timebase-frequency = <0>;       // from bootloader
                        bus-frequency = <0>;            // from bootloader
                        clock-frequency = <0>;          // from bootloader
                        32-bit;
                };
        };


        memory {
                device_type = "memory";
                reg = <0x00000000 0x10000000>;  // 256MB at 0
        };

        bcsr@e2400000 {
                device_type = "board-control";
                reg = <0xe2400000 0x8000>;
        };
        soc8343@e0000000 {
                bus-frequency = <0x1>;
                reg = <0xe0000000 0x200>;
                ranges = <0x0 0xe0000000 0x100000>;
                device_type = "soc";
                #interrupt-cells = <0x2>;
                #size-cells = <0x1>;
                #address-cells = <0x1>;

                wdt@200 {
                        device_type = "watchdog";
                        compatible = "mpc83xx_wdt";
                        reg = <0x200 0x100>;
                };
i2c@3000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <0x3000 0x100>;
                        interrupts = <14 0x8>;
                        interrupt-parent = <&ipic>;
                        dfsrr;

                        rtc@68 {
                                compatible = "dallas,ds1374";
                                reg = <0x68>;
                        };
                };

                i2c@3100 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        cell-index = <1>;
                        compatible = "fsl-i2c";
                        reg = <0x3100 0x100>;
                        interrupts = <15 0x8>;
                        interrupt-parent = <&ipic>;
                        dfsrr;
                };

                spi@7000 {
                        cell-index = <0>;
                        compatible = "fsl,spi";
                        reg = <0x7000 0x1000>;
                        interrupts = <16 0x8>;
                        interrupt-parent = <&ipic>;
                        mode = "cpu";
                };
dma@82a8 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
                        reg = <0x82a8 4>;
                        ranges = <0 0x8100 0x1a8>;
                        interrupt-parent = <&ipic>;
                        interrupts = <71 8>;
                        cell-index = <0>;
                        dma-channel@0 {
                                compatible = "fsl,mpc8349-dma-channel",
"fsl,elo-dma-channel";
                                reg = <0 0x80>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                        dma-channel@80 {
                                compatible = "fsl,mpc8349-dma-channel",
"fsl,elo-dma-channel";
                                reg = <0x80 0x80>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                        dma-channel@100 {
                                compatible = "fsl,mpc8349-dma-channel",
"fsl,elo-dma-channel";
                                reg = <0x100 0x80>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                        dma-channel@180 {
                                compatible = "fsl,mpc8349-dma-channel",
"fsl,elo-dma-channel";
                                reg = <0x180 0x28>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                };
/* phy type (ULPI or SERIAL) are only types supported for MPH */
                /* port = 0 or 1 */
                usb@22000 {
                        compatible = "fsl-usb2-mph";
                        reg = <0x22000 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        interrupt-parent = <&ipic>;
                        interrupts = <39 0x8>;
                        phy_type = "ulpi";
                        port1;
                };
                /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */
                usb@23000 {
                        compatible = "fsl-usb2-dr";
                        reg = <0x23000 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        interrupt-parent = <&ipic>;
                        interrupts = <38 0x8>;
                        dr_mode = "otg";
                        phy_type = "ulpi";
                };

                mdio@24520 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        compatible = "fsl,gianfar-mdio";
                        reg = <0x24520 0x20>;

                        phy0: ethernet-phy@0 {
                                interrupt-parent = <&ipic>;
                                interrupts = <17 0x8>;
                                reg = <0x0>;
                                device_type = "ethernet-phy";
                        };
                        phy1: ethernet-phy@1 {
                                interrupt-parent = <&ipic>;
                                interrupts = <18 0x8>;
                                reg = <0x1>;
                                device_type = "ethernet-phy";
                        };
enet0: ethernet@24000 {
                        cell-index = <0>;
                        device_type = "network";
                        model = "TSEC";
                        compatible = "gianfar";
                        reg = <0x24000 0x1000>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        interrupts = <32 0x8 33 0x8 34 0x8>;
                        interrupt-parent = <&ipic>;
                        phy-handle = <&phy0>;
                        linux,network-index = <0>;
                };

                enet1: ethernet@25000 {
                        cell-index = <1>;
                        device_type = "network";
                        model = "TSEC";
                        compatible = "gianfar";
                        reg = <0x25000 0x1000>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        interrupts = <35 0x8 36 0x8 37 0x8>;
                        interrupt-parent = <&ipic>;
                        phy-handle = <&phy1>;
                        linux,network-index = <1>;
                };
serial0: serial@4500 {
                        cell-index = <0>;
                        device_type = "serial";
                        compatible = "ns16550";
                        reg = <0x4500 0x100>;
                        clock-frequency = <0>;
                        interrupts = <9 0x8>;
                        interrupt-parent = <&ipic>;
                };

                serial1: serial@4600 {
                        cell-index = <1>;
                        device_type = "serial";
                        compatible = "ns16550";
                        reg = <0x4600 0x100>;
                        clock-frequency = <0>;
                        interrupts = <10 0x8>;
                        interrupt-parent = <&ipic>;
                };

                crypto@30000 {
                        compatible = "fsl,sec2.0";
                        reg = <0x30000 0x10000>;
                        interrupts = <11 0x8>;
                        interrupt-parent = <&ipic>;
                        fsl,num-channels = <4>;
                        fsl,channel-fifo-len = <24>;
                        fsl,exec-units-mask = <0x7e>;
                        fsl,descriptor-types-mask = <0x01010ebf>;
                };

Thanks,
agnel

Signature · 2 lines
View this message in context: http://old.nabble.com/MPC8343---%22unable-to-handle-paging-request-%40-0%22-tp16510741p26645256.html
Sent from the linuxppc-dev mailing list archive at Nabble.com.
#13 lore raw

MPC8343EA Linux DTS file

In reply to André Schwarz

Hi

We have an MPC8343EA based custom board.

I am not able to get Linux up and running in this. No serial output to debug further.
U-boot shows correct 'bdinfo' & 'clocks' output.

I doubt the DTS file in Linux. anyone has DTS file for MPC8343??

My current DTS file
/dts-v1/;

/ {
        model = "MPC8343";
        compatible = "MPC8349EMDS", "MPC834xMDS", "MPC83xxMDS";
        linux,phandle = <0x100>;
        #size-cells = <0x1>;
        #address-cells = <0x1>;

        aliases {
                ethernet0 = &enet0;
                ethernet1 = &enet1;
                serial0 = &serial0;
                serial1 = &serial1;
                pci0 = &pci0;
                pci1 = &pci1;
        };
         cpus {
                linux,phandle = <0x200>;
                #cpus = <0x1>;
                #address-cells = <1>;
                #size-cells = <0>;
 PowerPC,8343EA@0 {
                        device_type = "cpu";
                        reg = <0x0>;
                        d-cache-line-size = <20>;
                        i-cache-line-size = <20>;
                        d-cache-size = <8000>;
                        i-cache-size = <8000>;
                        timebase-frequency = <0>;       // from bootloader
                        bus-frequency = <0>;            // from bootloader
                        clock-frequency = <0>;          // from bootloader
                        32-bit;
                };
        };


        memory {
                device_type = "memory";
                reg = <0x00000000 0x10000000>;  // 256MB at 0
        };

        bcsr@e2400000 {
                device_type = "board-control";
                reg = <0xe2400000 0x8000>;
        };
        soc8343@e0000000 {
                bus-frequency = <0x1>;
                reg = <0xe0000000 0x200>;
                ranges = <0x0 0xe0000000 0x100000>;
                device_type = "soc";
                #interrupt-cells = <0x2>;
                #size-cells = <0x1>;
                #address-cells = <0x1>;

                wdt@200 {
                        device_type = "watchdog";
                        compatible = "mpc83xx_wdt";
                        reg = <0x200 0x100>;
                };
i2c@3000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <0x3000 0x100>;
                        interrupts = <14 0x8>;
                        interrupt-parent = <&ipic>;
                        dfsrr;

                        rtc@68 {
                                compatible = "dallas,ds1374";
                                reg = <0x68>;
                        };
                };

                i2c@3100 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        cell-index = <1>;
                        compatible = "fsl-i2c";
                        reg = <0x3100 0x100>;
                        interrupts = <15 0x8>;
                        interrupt-parent = <&ipic>;
                        dfsrr;
                };

                spi@7000 {
                        cell-index = <0>;
                        compatible = "fsl,spi";
                        reg = <0x7000 0x1000>;
                        interrupts = <16 0x8>;
                        interrupt-parent = <&ipic>;
                        mode = "cpu";
                };
dma@82a8 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
                        reg = <0x82a8 4>;
                        ranges = <0 0x8100 0x1a8>;
                        interrupt-parent = <&ipic>;
                        interrupts = <71 8>;
                        cell-index = <0>;
                        dma-channel@0 {
                                compatible = "fsl,mpc8349-dma-channel",
"fsl,elo-dma-channel";
                                reg = <0 0x80>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                        dma-channel@80 {
                                compatible = "fsl,mpc8349-dma-channel",
"fsl,elo-dma-channel";
                                reg = <0x80 0x80>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                        dma-channel@100 {
                                compatible = "fsl,mpc8349-dma-channel",
"fsl,elo-dma-channel";
                                reg = <0x100 0x80>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                        dma-channel@180 {
                                compatible = "fsl,mpc8349-dma-channel",
"fsl,elo-dma-channel";
                                reg = <0x180 0x28>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                };
/* phy type (ULPI or SERIAL) are only types supported for MPH */
                /* port = 0 or 1 */
                usb@22000 {
                        compatible = "fsl-usb2-mph";
                        reg = <0x22000 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        interrupt-parent = <&ipic>;
                        interrupts = <39 0x8>;
                        phy_type = "ulpi";
                        port1;
                };
                /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */
                usb@23000 {
                        compatible = "fsl-usb2-dr";
                        reg = <0x23000 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        interrupt-parent = <&ipic>;
                        interrupts = <38 0x8>;
                        dr_mode = "otg";
                        phy_type = "ulpi";
                };

                mdio@24520 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        compatible = "fsl,gianfar-mdio";
                        reg = <0x24520 0x20>;

                        phy0: ethernet-phy@0 {
                                interrupt-parent = <&ipic>;
                                interrupts = <17 0x8>;
                                reg = <0x0>;
                                device_type = "ethernet-phy";
                        };
                        phy1: ethernet-phy@1 {
                                interrupt-parent = <&ipic>;
                                interrupts = <18 0x8>;
                                reg = <0x1>;
                                device_type = "ethernet-phy";
                        };
enet0: ethernet@24000 {
                        cell-index = <0>;
                        device_type = "network";
                        model = "TSEC";
                        compatible = "gianfar";
                        reg = <0x24000 0x1000>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        interrupts = <32 0x8 33 0x8 34 0x8>;
                        interrupt-parent = <&ipic>;
                        phy-handle = <&phy0>;
                        linux,network-index = <0>;
                };

                enet1: ethernet@25000 {
                        cell-index = <1>;
                        device_type = "network";
                        model = "TSEC";
                        compatible = "gianfar";
                        reg = <0x25000 0x1000>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        interrupts = <35 0x8 36 0x8 37 0x8>;
                        interrupt-parent = <&ipic>;
                        phy-handle = <&phy1>;
                        linux,network-index = <1>;
                };
serial0: serial@4500 {
                        cell-index = <0>;
                        device_type = "serial";
                        compatible = "ns16550";
                        reg = <0x4500 0x100>;
                        clock-frequency = <0>;
                        interrupts = <9 0x8>;
                        interrupt-parent = <&ipic>;
                };

                serial1: serial@4600 {
                        cell-index = <1>;
                        device_type = "serial";
                        compatible = "ns16550";
                        reg = <0x4600 0x100>;
                        clock-frequency = <0>;
                        interrupts = <10 0x8>;
                        interrupt-parent = <&ipic>;
                };

                crypto@30000 {
                        compatible = "fsl,sec2.0";
                        reg = <0x30000 0x10000>;
                        interrupts = <11 0x8>;
                        interrupt-parent = <&ipic>;
                        fsl,num-channels = <4>;
                        fsl,channel-fifo-len = <24>;
                        fsl,exec-units-mask = <0x7e>;
                        fsl,descriptor-types-mask = <0x01010ebf>;
                };

Thanks,
agnel

Signature · 2 lines
View this message in context: http://old.nabble.com/MPC8343---%22unable-to-handle-paging-request-%40-0%22-tp16510741p26645258.html
Sent from the linuxppc-dev mailing list archive at Nabble.com.
#14 lore raw

Re: MPC8343EA Linux DTS file

Quoted 9 lines · On Fri, 4 Dec 2009 14:56:25 -0800 agnel <[email protected]> wrote:

We have an MPC8343EA based custom board.

I am not able to get Linux up and running in this. No serial output to debug further.
U-boot shows correct 'bdinfo' & 'clocks' output.

I doubt the DTS file in Linux. anyone has DTS file for MPC8343??

My current DTS file

well, for one, the dts you provide doesn't include a node for the ipic interrupt controller.

Kim

A message that is not in the archive (sent off-list or not yet received): [email protected]

#16 lore raw

Re: MPC8343EA Linux DTS file

On Fri, 4 Dec 2009 15:43:18 -0800
Junita Ajith <[email protected]> wrote:

please keep the list on the cc:, and don't top-post.

Quoted 6 lines

This is the entire DTS file:
/dts-v1/;

/ {
        model = "SC3000";
        compatible = "MPC8349EMDS", "MPC834xMDS", "MPC83xxMDS";

you don't mention the u-boot and kernel version numbers: does your linux kernel check for these compatibles? If yes, then use a debugger to find out exactly where else the kernel could be dying.

Kim