Hi, We are currently evaluating Serial RapidIO on two WindRiver SBC8548 boards that use a Freescale Powerquicc III processor (MPC8548E rev. 2). We are running U-Boot version 2010.09 as bootloader and are using kernel version 2.6.35.6 stable.
We have consulted multiple resources to collect al the requirements for a successful RapidIO connection (LAW, TLB, Registers) and we seem to have configured everything correctly. However, as soon as the board that is configured as the host starts the enumeration process, the system locks up. It locks in such a manner that we cannot use a JTAG interface to read any of the registers. We have also added a breakpoint just before the command that causes the lock up, to make sure the registers are correctly set at that point, and it seems they are. We have tripple checked everything that we could possibly think of and everything seems to be configured as required but the system keeps locking-up so there must be something that we are missing. I really hope that someone could point us in the right direction. The lock-up occurs when __fsl_read_rio_config is called by fsl_rio_config_read in fsl-rio.c. The LAW and TLB entries we have added to U-Boot are as follows: #define CONFIG_RIO 1 #define CONFIG_SYS_RIO_MEM_VIRT 0xc0000000 /* base address */ #define CONFIG_SYS_RIO_MEM_BUS 0xc0000000 /* base address */ #define CONFIG_SYS_RIO_MEM_PHYS 0xc0000000 #define CONFIG_SYS_RIO_MEM_SIZE 0x20000000 /* 512M */ SET_LAW(CONFIG_SYS_RIO_MEM_PHYS, LAW_SIZE_512M, LAW_TRGT_IF_RIO), ------------- Here is the kernel log: Using SBC8548 machine description Memory CAM mapping: 256 Mb, residual: 0Mb Linux version 2.6.35.6 (dl...@lxws006) (gcc version 4.1.2 (Wind River Linux Sourcery G++ 4.1-91)) #7 We d Sep 29 13:27:18 CEST 2010 bootconsole [udbg0] enabled setup_arch: bootmem sbc8548_setup_arch() arch: exit Zone PFN ranges: DMA 0x00000000 -> 0x00010000 Normal empty Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0x00000000 -> 0x00010000 MMU: Allocated 1088 bytes of context maps for 255 contexts Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024 Kernel command line: root=/dev/nfs rw nfsroot=192.168.100.21:/thales/target/rfs/sbc8548_wrlinux4 ip=192 .168.100.151:192.168.100.21:192.168.100.21:255.255.255.0:sbc8548_1:eth0:off console=ttyS0,115200 riohdid=1 PID hash table entries: 1024 (order: 0, 4096 bytes) Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) Memory: 256884k/262144k available (2712k kernel code, 5260k reserved, 112k data, 77k bss, 144k init) Kernel virtual memory layout: * 0xfffdf000..0xfffff000 : fixmap * 0xfc7f9000..0xfe000000 : early ioremap * 0xd1000000..0xfc7f9000 : vmalloc & ioremap Hierarchical RCU implementation. RCU-based detection of stalled CPUs is disabled. Verbose stalled-CPUs detection is disabled. NR_IRQS:512 nr_irqs:512 mpic: Setting up MPIC " OpenPIC " version 1.2 at e0040000, max 1 CPUs mpic: ISU size: 80, shift: 7, mask: 7f mpic: Initializing for 80 sources clocksource: timebase mult[50cede6] shift[22] registered pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 NET: Registered protocol family 16 PCI: Probing PCI hardware bio: create slab <bio-0> at 0 vgaarb: loaded Switching to clocksource timebase NET: Registered protocol family 2 IP route cache hash table entries: 2048 (order: 1, 8192 bytes) TCP established hash table entries: 8192 (order: 4, 65536 bytes) TCP bind hash table entries: 8192 (order: 3, 32768 bytes) TCP: Hash tables configured (established 8192 bind 8192) TCP reno registered UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. Setting up RapidIO peer-to-peer network /soc8...@e0000000/rapi...@c0000 fsl-of-rio e00c0000.rapidio: Of-device full name /soc8...@e0000000 /rapi...@c0000 fsl-of-rio e00c0000.rapidio: Regs: [mem 0xe00c0000-0xe00dffff] fsl-of-rio e00c0000.rapidio: LAW start 0x00000000c0000000, size 0x0000000020000000. fsl-of-rio e00c0000.rapidio: pwirq: 48, bellirq: 50, txirq: 53, rxirq 54 fsl-of-rio e00c0000.rapidio: DeviceID is 0x1 fsl-of-rio e00c0000.rapidio: Configured as HOST fsl-of-rio e00c0000.rapidio: RapidIO PHY type: serial fsl-of-rio e00c0000.rapidio: Hardware port width: 4 fsl-of-rio e00c0000.rapidio: Training connection status: Four-lane fsl-of-rio e00c0000.rapidio: RapidIO Common Transport System size: 256 RIO: enumerate master port 0, RIO0 mport fsl_rio_config_read: index 0 destid 255 hopcount 0 offset 00000068 len 4 fsl_rio_config_read: Passed IS_ALIGNED. fsl_rio_config_read: Passed 'out_be32_1' fsl_rio_config_read: Passed 'out_be32_2' fsl_rio_config_read: len is 4 fsl_rio_config_read: about to trigger '__fsl_read_rio_config' Regards, Bastiaan Nijkamp
_______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev