Re: 2.6.18-rc1 fails to boot on E250

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>>>> "David" == David Miller <davem@xxxxxxxxxxxxx> writes:

David> Please reboot with of_debug=3 and send the logs here.  It's
David> almost certainly a bug in the psycho bus IRQ translater in
David> arch/sparc64/kernel/prom.c:psycho_irq_build()/psycho_irq_trans_init().
David> A good debugging log will give some clues.

Ok, back from wandering around a nice lake in Britanny... :)

Here's the log with of_debug=3:

[    0.000000] PROMLIB: Sun IEEE Boot Prom 'OBP 3.30.0 2003/11/11 10:37'
[    0.000000] PROMLIB: Root node compatible: sun4u
[    0.000000] Linux version 2.6.18-rc1 (maz@positive) (gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)) #5 SMP Fri Jul 14 11:43:38 CEST 2006
[    0.000000] ARCH: SUN4U
[    0.000000] Ethernet address: 08:00:20:d8:e4:6d
Remapping the kernel... done.
[    0.000000] PROM: Built device tree with 75588 bytes of memory.
Booting Linux...
[    0.000000] Built 1 zonelists.  Total pages: 260721
[    0.000000] Kernel command line: root=/dev/sda2 ro -p of_debug=3
[    0.000000] PID hash table entries: 4096 (order: 12, 32768 bytes)
[   17.140306] Console: colour dummy device 80x25
[    0.022800] Dentry cache hash table entries: 262144 (order: 8, 2097152 bytes)
[    0.116660] Inode-cache hash table entries: 131072 (order: 7, 1048576 bytes)
[    0.320438] Memory: 2066520k available (2544k kernel code, 832k data, 168k init) [fffff80000000000,000000007fecc000]
[    0.523177] Calibrating delay using timer specific routine.. 800.45 BogoMIPS (lpj=1600918)
[    0.620652] Security Framework v1.0.0 initialized
[    0.676646] SELinux:  Disabled at boot.
[    0.722518] Mount-cache hash table entries: 512
[    0.777520] CPU[0]: Caches D[sz(16384):line_sz(32)] I[sz(16384):line_sz(32)] E[sz(2097152):line_sz(64)]
[    0.889181] Using max_cache_size of 2MB
[    1.027179] Calibrating delay using timer specific routine.. 800.05 BogoMIPS (lpj=1600116)
[    1.027328] CPU[1]: Caches D[sz(16384):line_sz(32)] I[sz(16384):line_sz(32)] E[sz(2097152):line_sz(64)]
[    1.028063] CPU 1: synchronized TICK with master CPU (last diff -21 cycles,maxerr 712 cycles)
[    1.028082] Brought up 2 CPUs
[    1.028100] Total of 2 processors activated (1600.51 BogoMIPS).
[    3.137988] migration_cost=41911
[    3.175435] checking if image is initramfs... it is
[    5.999753] Freeing initrd memory: 5983k freed
[    6.053334] NET: Registered protocol family 16
[    6.107077] /memory reg[0] -> 0
[    6.143205] /memory reg[1] -> 20000000
[    6.187689] /memory reg[2] -> 40000000
[    6.232477] /memory reg[3] -> 60000000
[    6.278490] /pci@1f,4000 reg[0] -> 1fe00004000
[    6.330467] /pci@1f,4000 reg[1] -> 1fe01000000
[    6.383523] /pci@1f,4000 reg[2] -> 1fe00000000
[    6.436637] /pci@1f,4000: direct translate 7f1 --> 1
[    6.496013] /pci@1f,4000: direct translate 7ee --> 2
[    6.555384] /pci@1f,4000: direct translate 7ef --> 3
[    6.614750] /pci@1f,4000: direct translate 7e5 --> 4
[    6.674127] /pci@1f,4000: direct translate 7e8 --> 5
[    6.733495] /pci@1f,4000: direct translate 7f2 --> 6
[    6.793316] /pci@1f,4000/ebus@1/auxio@14,726000 reg[0] -> 1fff1726000
[    6.869959] /pci@1f,4000/ebus@1/auxio@14,726000 reg[1] -> 1fff1728000
[    6.947056] /pci@1f,4000/ebus@1/auxio@14,726000 reg[2] -> 1fff172a000
[    7.024136] /pci@1f,4000/ebus@1/auxio@14,726000 reg[3] -> 1fff172c000
[    7.101208] /pci@1f,4000/ebus@1/auxio@14,726000 reg[4] -> 1fff172f000
[    7.178466] /pci@1f,4000/ebus@1/power@14,724000 reg[0] -> 1fff1724000
[    7.255560] /pci@1f,4000/ebus@1/SUNW,pll@14,504000 reg[0] -> 1fff1504000
[    7.335766] /pci@1f,4000/ebus@1/sc@14,500000 reg[0] -> 1fff1500000
[    7.409692] /pci@1f,4000/ebus@1/se@14,400000 reg[0] -> 1fff1400000
[    7.483478] /pci@1f,4000/ebus@1/se@14,400000: Apply [/pci@1f,4000:2b] imap --> [NULL:2b]
[    7.580549] /pci@1f,4000/ebus@1/se@14,200000 reg[0] -> 1fff1200000
[    7.654269] /pci@1f,4000/ebus@1/se@14,200000: Apply [/pci@1f,4000:23] imap --> [NULL:23]
[    7.751383] /pci@1f,4000/ebus@1/su@14,3083f8 reg[0] -> 1fff13083f8
[    7.825091] /pci@1f,4000/ebus@1/su@14,3083f8: Apply [/pci@1f,4000:29] imap --> [NULL:29]
[    7.922208] /pci@1f,4000/ebus@1/su@14,3062f8 reg[0] -> 1fff13062f8
[    7.995915] /pci@1f,4000/ebus@1/su@14,3062f8: Apply [/pci@1f,4000:2a] imap --> [NULL:2a]
[    8.093035] /pci@1f,4000/ebus@1/ecpp@14,3043bc reg[0] -> 1fff13043bc
[    8.168823] /pci@1f,4000/ebus@1/ecpp@14,3043bc reg[1] -> 1fff1300398
[    8.244880] /pci@1f,4000/ebus@1/ecpp@14,3043bc reg[2] -> 1fff1700000
[    8.320911] /pci@1f,4000/ebus@1/ecpp@14,3043bc: Apply [/pci@1f,4000:22] imap --> [NULL:22]
[    8.420080] /pci@1f,4000/ebus@1/eeprom@14,0 reg[0] -> 1fff1000000
[    8.492948] /pci@1f,4000/ebus@1/flashprom@10,0 reg[0] -> 1fff0000000
[    8.568815] /pci@1f,4000/ebus@1/flashprom@10,0 reg[1] -> 1fff0000000
[    8.645035] /pci@1f,4000/ebus@1/SUNW,envctrltwo@14,600000 reg[0] -> 1fff1600000
[    8.732331] /pci@1f,4000/ebus@1/SUNW,envctrltwo@14,600000: Apply [/pci@1f,4000:28] imap --> [NULL:28]
[    8.842788] /pci@1f,4000/ebus@1/SUNW,envctrltwo@14,600000: Apply [/pci@1f,4000:25] imap --> [NULL:25]
[    8.953419] /pci@1f,4000/network@1,1 reg[0] -> 1ff84100000
[    9.018745] /pci@1f,4000/network@1,1: Apply [/pci@1f,4000:21] imap --> [NULL:21]
[    9.107524] /pci@1f,4000/scsi@3 reg[0] -> 1fe02012000
[    9.167691] /pci@1f,4000/scsi@3 reg[1] -> 1ff84108000
[    9.228118] /pci@1f,4000/scsi@3 reg[2] -> 1ff8410a000
[    9.288525] /pci@1f,4000/scsi@3: Apply [/pci@1f,4000:20] imap --> [NULL:20]
[    9.372460] /pci@1f,4000/scsi@3,1 reg[0] -> 1fe02012400
[    9.434337] /pci@1f,4000/scsi@3,1 reg[1] -> 1ff8410c000
[    9.496854] /pci@1f,4000/scsi@3,1 reg[2] -> 1ff8410e000
[    9.559343] /pci@1f,4000/scsi@3,1: Apply [/pci@1f,4000:26] imap --> [NULL:26]
[    9.645518] /pci@1f,4000/pci@5/SUNW,hme@0,1 reg[0] -> 0
[    9.707232] /pci@1f,4000/pci@5/SUNW,hme@0,1 reg[1] -> 0
[    9.769741] /pci@1f,4000/pci@5/SUNW,hme@0,1: PCI swizzle [/pci@1f,4000/pci@5] 2 --> 2
[    9.863531] /pci@1f,4000/pci@5/SUNW,hme@0,1: Apply [/pci@1f,4000:2] imap --> [/pci@1f,4000:1d]
[    9.966648] /pci@1f,4000/pci@5/SUNW,hme@0,1: Apply IRQ trans [/pci@1f,4000] 2 --> 7
[   10.058487] /pci@1f,4000/pci@5/SUNW,isptwo@4 reg[0] -> 0
[   10.121785] /pci@1f,4000/pci@5/SUNW,isptwo@4 reg[1] -> 0
[   10.185339] /pci@1f,4000/pci@5/SUNW,isptwo@4 reg[2] -> 0
[   10.248873] /pci@1f,4000/pci@5/SUNW,isptwo@4 reg[3] -> 0
[   10.312410] /pci@1f,4000/pci@5/SUNW,isptwo@4: PCI swizzle [/pci@1f,4000/pci@5] 1 --> 1
[   10.407242] /pci@1f,4000/pci@5/SUNW,isptwo@4: Apply [/pci@1f,4000:1] imap --> [/pci@1f,4000:1c]
[   10.511405] /pci@1f,4000/pci@5/SUNW,isptwo@4: Apply IRQ trans [/pci@1f,4000] 1 --> 8
[   10.604676] /pci@1f,2000 reg[0] -> 1fe00002000
[   10.657153] /pci@1f,2000 reg[1] -> 1fe01800000
[   10.710287] /pci@1f,2000 reg[2] -> 1fe00000000
[   10.763408] /pci@1f,2000: direct translate 7f0 --> 9
[   10.822778] /pci@1f,2000: direct translate 7ee --> 2
[   10.882153] /pci@1f,2000: direct translate 7ef --> 3
[   10.941524] /pci@1f,2000: direct translate 7e5 --> 4
[   11.000895] /pci@1f,2000: direct translate 7e8 --> 5
[   11.060266] /pci@1f,2000: direct translate 7f2 --> 6
[   11.119841] /counter-timer reg[0] -> 1fe00001c00
[   11.174825] /counter-timer reg[1] -> 1fe00001860
[   11.230048] /counter-timer reg[2] -> 1fe00001060
[   11.285251] /counter-timer: Apply [/:7ec] imap --> [NULL:7ec]
[   11.354009] /counter-timer: Apply [/:7ed] imap --> [NULL:7ed]
[   11.423129] /mc reg[0] -> 1c000000000
[   11.466653] /mc/bank@0,0 reg[0] -> 0
[   11.509360] /mc/bank@0,0/dimm@0,0 reg[0] -> 0
[   11.561437] /mc/bank@0,0/dimm@0,1 reg[0] -> 1
[   11.613534] /mc/bank@0,0/dimm@0,2 reg[0] -> 2
[   11.665604] /mc/bank@0,0/dimm@0,3 reg[0] -> 3
[   11.717696] /mc/bank@0,20000000 reg[0] -> 20000000
[   11.774975] /mc/bank@0,20000000/dimm@0,0 reg[0] -> 0
[   11.834350] /mc/bank@0,20000000/dimm@0,1 reg[0] -> 1
[   11.893710] /mc/bank@0,20000000/dimm@0,2 reg[0] -> 2
[   11.953093] /mc/bank@0,20000000/dimm@0,3 reg[0] -> 3
[   12.012472] /mc/bank@0,40000000 reg[0] -> 40000000
[   12.069755] /mc/bank@0,40000000/dimm@0,0 reg[0] -> 0
[   12.129108] /mc/bank@0,40000000/dimm@0,1 reg[0] -> 1
[   12.188500] /mc/bank@0,40000000/dimm@0,2 reg[0] -> 2
[   12.247845] /mc/bank@0,40000000/dimm@0,3 reg[0] -> 3
[   12.307247] /mc/bank@0,60000000 reg[0] -> 60000000
[   12.364534] /mc/bank@0,60000000/dimm@0,0 reg[0] -> 0
[   12.423882] /mc/bank@0,60000000/dimm@0,1 reg[0] -> 1
[   12.483257] /mc/bank@0,60000000/dimm@0,2 reg[0] -> 2
[   12.542629] /mc/bank@0,60000000/dimm@0,3 reg[0] -> 3
[   12.602005] /SUNW,UltraSPARC-II@0,0 reg[0] -> 1c000000000
[   12.666613] /SUNW,UltraSPARC-II@1,0 reg[0] -> 1c200000000
[   12.731815] PCI: Probing for controllers.

What I can tell so far, after trying to put quite a few printk here
and there, is that prom.c:psycho_irq_build() doesnt't get called for
devices directly hanging off the psycho controler.

That's because of_device.c:apply_interrupt_map() can't match the
requested interrupt into the interrupt map, and returns NULL. Now, the
logic inside apply_interrupt_map() is beyond my understanding of OF.

For reference (and debugging), I'm including both interrupt-map and
interrupt-map-mask, just in case it might be usefull.

root@positive:/proc/openprom/pci@1f,4000# cat interrupt-map
00000800.00000000.00000000.00000002.f006d1b0.00000021.00001000.00000000.00000000.00000001.f006d1b0.00000010.00001000.00000000.00000000.00000002.f006d1b0.00000011.00001000.00000000.00000000.00000003.f006d1b0.00000012.00001000.00000000.00000000.00000004.f006d1b0.00000013.00001800.00000000.00000000.00000001.f006d1b0.00000020.00001900.00000000.00000000.00000001.f006d1b0.00000026.00002000.00000000.00000000.00000001.f006d1b0.00000018.00002000.00000000.00000000.00000002.f006d1b0.00000019.00002000.00000000.00000000.00000003.f006d1b0.0000001a.00002000.00000000.00000000.00000004.f006d1b0.0000001b.00002800.00000000.00000000.00000001.f006d1b0.0000001c.00002800.00000000.00000000.00000002.f006d1b0.0000001d.00002800.00000000.00000000.00000003.f006d1b0.0000001e.00002800.00000000.00000000.00000004.f006d1b0.0000001f
root@positive:/proc/openprom/pci@1f,4000# cat interrupt-map-mask 
00fff800.00000000.00000000.00000007

As usual, I'll be happy to test any idea you may have to solve this
problem.

Cheers,

	M.
-- 
And if you don't know where you're going, any road will take you there...
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux