Hi all, I am trying to setup the PCI on a Flattened Device Tree (DTS file) for a Microsys MPX8349 board. I have the PCI outbound windows setup as follows: 0xA0000000 of size 0x20000000, none pre-fechable PCI memory window 0xD8000000 of size 0x01000000, PCI IO window These windows are setup on Uboot and I can see the configuration space of PCI and the PCI card installed from Uboot. When I try to boot my linux kernel (2.6.23 stable Denx kernel) it crashes with:
[ 0.000000] Found MPC83xx PCI host bridge at 0x00000000e0008500. Firmware bus number: 0->0 [ 0.000000] Observed: pci a0000000 phys ffffffff00000000 size 20000000 [ 0.000000] phb0: MEM 0xffffffff00000000 -> 0x11ffffffe [ 0.000000] Observed: pci d8000000 phys ffffffff00000000 size 1000000 arch: exit [ 0.000000] Zone PFN ranges: [ 0.000000] DMA 0 -> 65536 [ 0.000000] Normal 65536 -> 65536 [ 0.000000] Movable zone start PFN for each node [ 0.000000] early_node_map[1] active PFN ranges [ 0.000000] 0: 0 -> 65536 [ 0.000000] Built 1 zonelists in Zone order. Total pages: 65024 [ 0.000000] Kernel command line: root=/dev/nfs rw nfsroot=192.168.1.1:/home/OPTISCAN/janakas/nfs ip=192.168.1.15:192.168.1.1:192.168.1.1:255.255.255.0:xepm2:eth0:off console=ttyS0,9600 [ 0.000000] IPIC (128 IRQ sources) at fdffb700 [ 0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes) [ 0.001117] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.085122] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.194097] Memory: 255232k/262144k available (4096k kernel code, 6672k reserved, 168k data, 116k bss, 156k init) [ 0.337215] Mount-cache hash table entries: 512 [ 0.392115] NET: Registered protocol family 16 [ 0.459868] PCI: Probing PCI hardware [ 0.503247] Fixup res 0 (1208) of dev 0000:00:0d.0: a0000000 -> ffffffff [ 0.583128] Fixup res 1 (200) of dev 0000:00:0d.0: ffffffffa4000000 -> 3ffffff [ 0.669552] Fixup res 6 (7200) of dev 0000:00:0d.0: 0 -> 5fffffff [ 0.742403] Try to map irq for 0000:00:0d.0... [ 0.795365] pci_busdev_to_OF_node(0,0x68) [ 0.843233] parent is /[EMAIL PROTECTED]/[EMAIL PROTECTED] [ 0.899500] result is <NULL> [ 0.935174] debug 1112 [ 0.962902] PCI->OF bus map: [ 0.997267] 0 -> 0 [ 1.021159] debug 1124 [ 1.049295] PCI: bridge rsrc 0..ffffffff (100), parent c0404fe4 [ 1.120308] PCI:0000:00:0d.0: Resource 0: 00000000ffffffff-0000000003fffffe (f=1208) [ 1.213074] PCI: Cannot allocate resource region 0 of device 0000:00:0d.0 [ 1.294229] PCI: parent is c044d05c: 00000000ffffffff-000000001ffffffe (f=200) [ 1.381720] PCI:0000:00:0d.0: Resource 1: 0000000003ffffff-000000000403fffe (f=200) [ 1.473369] PCI: Cannot allocate resource region 1 of device 0000:00:0d.0 [ 1.554532] PCI:0000:00:0d.0: Resource 2: 00000000d8000000-00000000d800007f (f=101) [ 1.646210] debug 1128 [ 1.674012] debug 1134 [ 1.702129] [debug 48]Size 04000000, Algn 04000000, Min 10000000, Type 00001300 [ 1.789877] [debug 48]Size 04000000, Algn 04000000, Min 10000000, Type 00000300 [ 1.877345] PCI: Failed to allocate mem resource #0:[EMAIL PROTECTED] for 0000:00:0d.0 [ 1.963755] ------------[ cut here ]------------ [ 2.018513] kernel BUG at arch/powerpc/kernel/pci_32.c:590! [ 2.085155] Oops: Exception in kernel mode, sig: 5 [#1] [ 2.147621] PREEMPT MPX8349 [ 2.180940] Modules linked in: [ 2.217386] NIP: c03e3c48 LR: c03e3c48 CTR: c001065c [ 2.276737] REGS: cffc3e90 TRAP: 0700 Not tainted (2.6.23MPX8349_PowerPC) [ 2.361070] MSR: 00029032 <EE,ME,IR,DR> CR: 24004022 XER: 00000000 [ 2.437081] TASK = cffc1a20[1] 'swapper' THREAD: cffc2000 [ 2.499551] GPR00: c03e3c48 cffc3f40 cffc1a20 fffffff0 00000001 00000001 00000000 00000033 [ 2.599508] GPR08: 00000000 00000000 0000114e c0430000 42004022 08000180 0fffd000 00800000 [ 2.699464] GPR16: ffffffff 00000001 00000000 c0380000 c0400000 c0400000 00000000 c0380000 [ 2.799420] GPR24: c0430000 c04312a0 c04312a0 cffe9990 cffe9800 cffe9990 00000000 00000000 [ 2.901459] NIP [c03e3c48] pcibios_init+0x1f8/0x274 [ 2.959767] LR [c03e3c48] pcibios_init+0x1f8/0x274 [ 3.017033] Call Trace: [ 3.046189] [cffc3f40] [c03e3c48] pcibios_init+0x1f8/0x274 (unreliable) [ 3.125321] [cffc3f70] [c03d9898] kernel_init+0xa8/0x29c [ 3.188835] [cffc3ff0] [c0010498] kernel_thread+0x44/0x60 [ 3.253389] Instruction dump: [ 3.288791] 2f800000 419e0018 7c0803a6 4e800021 2f830000 409e0020 813d000c 552000c2 [ 3.381458] 7f83e378 7fe4fb78 901d000c 4bdca38d <0f030000> 2f9f0005 3bde001c 3bff0001 [ 3.476213] Kernel panic - not syncing: Attempted to kill init! [ 3.547013] Rebooting in 180 seconds.. My DTS file entries for PCI are as follows: [EMAIL PROTECTED] { interrupt-map-mask = < // Mask the child UnitIrqSpec //ff00 0 0 7 ffff ff ff f >; interrupt-map = < // Child UnitIrqSpec, Parent PIC handle, Parent UnitIrqSpec // PCI unit address (0000 0 0), Interrupt specifier IDSEL 0x0D (CRX board hard wired to IDSEL 13), // parent Phandle, IRQ7=0x17 (jumper based) level sensitive(8) //0d00 0 0 1 &ipic 17 8 00006800 0 0 1 &ipic 17 8 >; interrupt-parent = < &ipic >; interrupts = <42 8>; //PCI1 interrupt, level sensitive bus-range = <0 0>; //Bus number and largest bus under this /* struct ranges_pci { unsigned int pci_space; //Prefechable/relocatable .... IEEE1275 u64 pci_addr; phys_addr_t phys_addr; u64 size; }; */ ranges = < 02000000 0 A0000000 A0000000 0 20000000 01000000 0 D8000000 D8000000 0 01000000 >; clock-frequency = <1FCA055>; //33333333Hz #interrupt-cells = <1>; //PCI aparently uses 1 #size-cells = <2>; //Max of 2 ints #address-cells = <3>; //int size reg = <8500 100>; //?? compatible = "fsl,mpc8349-pci"; device_type = "pci"; }; What am I doing wrong ? Thanks in advance. Janaka
_______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev