Hi, It seems i forgot to include the relevant TLB entries in U-Boot and the Device Tree in the e-mail, so here they are:
The TLB entries in U-Boot: /* * TLB 3: 256M Non-cacheable, guarded * 0xc0000000 256M Rapid IO MEM First half */ SET_TLB_ENTRY(1, CONFIG_SYS_RIO_MEM_VIRT, CONFIG_SYS_RIO_MEM_PHYS, MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, 0, 3, BOOKE_PAGESZ_256M, 1), /* * TLB 4: 256M Non-cacheable, guarded * 0xd0000000 256M Rapid IO MEM Second half */ SET_TLB_ENTRY(1, CONFIG_SYS_RIO_MEM_VIRT + 0x10000000, CONFIG_SYS_RIO_MEM_PHYS + 0x10000000, MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, 0, 4, BOOKE_PAGESZ_256M, 1), And the device tree entry: rapidio0:rapi...@c0000 { #address-cells = <1>; #size-cells = <1>; compatible = "fsl,rapidio-delta"; reg = <0xc0000 0x20000>; ranges = <0x0 0xc0000000 0x20000000>; interrupt-parent = <&mpic>; /* err_irq bell_outb_irq bell_inb_irq msg1_tx_irq msg1_rx_irq msg2_tx_irq msg2_rx_irq */ interrupts = <0x30 0x2 0x31 0x2 0x32 0x2 0x35 0x2 0x36 0x2 0x37 0x2 0x38 0x2>; }; Regards, Bastiaan Nijkamp 2010/10/2 Bastiaan Nijkamp <bastiaan.nijk...@gmail.com> > 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