On Tue, 2010-12-14 at 10:32 -0800, Kevin D. Kissell wrote: > Between your mailer and mine (Thunderbird 3.1 on Ubuntu), the quoting > has become something of a dogs breakfast, so let me just lay things out > here as best I can. I am sorry for that. With evolution it will be better I hope. > > I can't comment on your tweak to 2.6.24.7 without seeing it as a patch > diff. http://patchwork.linux-mips.org/patch/804/ I was speaking about this patch. Since my timer is connected through a cascaded CIC , It is required to check TI bit of cause register in order to ensure a timer interrupt. With above mentioned patch I was able to boot a 2.6.24-stable SMTC kernel. ( Not tested fully though ) > The recommended procedure was, and remains, to isolate clock > propagation problems by using command line options "maxtcs=" > and "maxvpes=". > > First, boot your SMTC kernel with maxtcs=1 and maxvpes=1, > a virtual uniprocessor. If that doesn't run, you've got some fundamental > problem with support for your platform, or someone has really fundamentally > broken the SMTC build somewhere. Next, try booting with maxtcs=2 > and maxvpes=1, then with no constraint on maxtcs and maxvpes=1. > If those fail, your problem is probably in the interrupt mask > management algorithms I described Even with command line maxtcs=1 and maxvpes=1 I am seeing same hung. The register dump is copied below. > Your dump below looks as if it comes from 2 TCs running on > 2 VPEs, and that the interrupt mask issues I alluded to earlier > are neither relevant nor manifest. It looks instead as if the > initialization of "CPU 1" (VPE1/TC1) may not have been done > properly. Under normal operation, it would be pretty rare to > catch TC 1 in the exception vector dispatch code, so the first > hypothesis that comes to mind is that something isn't right in > the vector/handler setup, and TC 1 is stuck in an infinite exception > loop, unable to handshake with TC 0 and thus locking up the > system. But that's just my best guess based on limited data. > > Regards, > > Kevin K. > I have tested few stable tags in git and isolated the code brake. 2.6.24-stable + patch[1] = SMTC boot success 2.6.29-stable + patch[1] = SMTC boot success 2.6.31-stable + patch[1] = SMTC boot success 2.6.32-stable + patch[1] = SMTC boot success 2.6.33-stable = SMTC boot failed 2.6.35-stable = SMTC boot failed So it looks like SMTC support got broke between 2.6.32 and 2.6.33 . Thanks and Regards, Anoop patch[1] : http://patchwork.linux-mips.org/patch/804/ #############################Log########################### 0.000000] Calibrating delay loop... === MIPS MT State Dump === [ 0.000000] -- Global State -- [ 0.000000] MVPControl Passed: 00000000 [ 0.000000] MVPControl Read: 00000000 [ 0.000000] MVPConf0 : a8008406 [ 0.000000] -- per-VPE State -- [ 0.000000] VPE 0 [ 0.000000] VPEControl : 00000000 [ 0.000000] VPEConf0 : 800f0003 [ 0.000000] VPE0.Status : 11004001 [ 0.000000] VPE0.EPC : 80100000 _stext+0x0/0x10 [ 0.000000] VPE0.Cause : 50804000 [ 0.000000] VPE0.Config7 : 00010000 [ 0.000000] VPE 1 [ 0.000000] VPEControl : 00060000 [ 0.000000] VPEConf0 : 800f0000 [ 0.000000] VPE1.Status : 00408305 [ 0.000000] VPE1.EPC : 80100380 name_to_dev_t+0x50/0x430 [ 0.000000] VPE1.Cause : 50000200 [ 0.000000] VPE1.Config7 : 00010000 [ 0.000000] -- per-TC State -- [ 0.000000] TC 0 (current TC with VPE EPC above) [ 0.000000] TCStatus : 00000000 [ 0.000000] TCBind : 00000000 [ 0.000000] TCRestart : 8010d860 mips_mt_regdump+0x2f0/0x3c4 [ 0.000000] TCHalt : 00000000 [ 0.000000] TCContext : 00000000 [ 0.000000] TC 1 [ 0.000000] TCStatus : 00000000 [ 0.000000] TCBind : 00200001 [ 0.000000] TCRestart : 8f800020 0x8f800020 [ 0.000000] TCHalt : 00000001 [ 0.000000] TCContext : 00140000 [ 0.000000] TC 2 [ 0.000000] TCStatus : 00000000 [ 0.000000] TCBind : 00400001 [ 0.000000] TCRestart : 8f800020 0x8f800020 [ 0.000000] TCHalt : 00000001 [ 0.000000] TCContext : 00280000 [ 0.000000] TC 3 [ 0.000000] TCStatus : 00000000 [ 0.000000] TCBind : 00600001 [ 0.000000] TCRestart : 8f800020 0x8f800020 [ 0.000000] TCHalt : 00000001 [ 0.000000] TCContext : 003c0000 [ 0.000000] TC 4 [ 0.000000] TCStatus : 00000000 [ 0.000000] TCBind : 00800001 [ 0.000000] TCRestart : 80100380 name_to_dev_t+0x50/0x430 [ 0.000000] TCHalt : 00000001 [ 0.000000] TCContext : 00500000 [ 0.000000] TC 5 [ 0.000000] TCStatus : 00000000 [ 0.000000] TCBind : 00a00001 [ 0.000000] TCRestart : 80100380 name_to_dev_t+0x50/0x430 [ 0.000000] TCHalt : 00000001 [ 0.000000] TCContext : 00640000 [ 0.000000] TC 6 [ 0.000000] TCStatus : 00000000 [ 0.000000] TCBind : 00c00001 [ 0.000000] TCRestart : 80268e00 aes_encrypt+0x10e4/0x164c [ 0.000000] TCHalt : 00000001 [ 0.000000] TCContext : 00780000 [ 0.000000] Counter Interrupts taken per CPU (TC) [ 0.000000] 0: 0 [ 0.000000] 1: 0 [ 0.000000] 2: 0 [ 0.000000] 3: 0 [ 0.000000] 4: 0 [ 0.000000] 5: 0 [ 0.000000] 6: 0 [ 0.000000] 7: 0 [ 0.000000] Self-IPI invocations: [ 0.000000] 0: 0 [ 0.000000] 1: 0 [ 0.000000] 2: 0 [ 0.000000] 3: 0 [ 0.000000] 4: 0 [ 0.000000] 5: 0 [ 0.000000] 6: 0 [ 0.000000] 7: 0 [ 0.000000] IPIQ[0]: head = 0x0, tail = 0x0, depth = 0 [ 0.000000] IPIQ[1]: head = 0x0, tail = 0x0, depth = 0 [ 0.000000] IPIQ[2]: head = 0x0, tail = 0x0, depth = 0 [ 0.000000] IPIQ[3]: head = 0x0, tail = 0x0, depth = 0 [ 0.000000] IPIQ[4]: head = 0x0, tail = 0x0, depth = 0 [ 0.000000] IPIQ[5]: head = 0x0, tail = 0x0, depth = 0 [ 0.000000] IPIQ[6]: head = 0x0, tail = 0x0, depth = 0 [ 0.000000] IPIQ[7]: head = 0x0, tail = 0x0, depth = 0 [ 0.000000] 0 Recoveries of "stolen" FPU [ 0.000000] =========================== [ 0.000000] In platform cic dispatch cic_mask=0x22000 stat=0x2402000f pend=0x20000 [ 0.010000] === MIPS MT State Dump === [ 0.010000] -- Global State -- [ 0.010000] MVPControl Passed: 00000000 [ 0.010000] MVPControl Read: 00000000 [ 0.010000] MVPConf0 : a8008406 [ 0.010000] -- per-VPE State -- [ 0.010000] VPE 0 [ 0.010000] VPEControl : 00000000 [ 0.010000] VPEConf0 : 800f0003 [ 0.010000] VPE0.Status : 18004000 [ 0.010000] VPE0.EPC : 8010d900 mips_mt_regdump+0x390/0x3c4 [ 0.010000] VPE0.Cause : 40804000 [ 0.010000] VPE0.Config7 : 00010000 [ 0.010000] VPE 1 [ 0.010000] VPEControl : 00060000 [ 0.010000] VPEConf0 : 800f0000 [ 0.010000] VPE1.Status : 00408305 [ 0.010000] VPE1.EPC : 80100380 name_to_dev_t+0x50/0x430 [ 0.010000] VPE1.Cause : 50000200 [ 0.010000] VPE1.Config7 : 00010000 [ 0.010000] -- per-TC State -- [ 0.010000] TC 0 (current TC with VPE EPC above) [ 0.010000] TCStatus : 00000000 [ 0.010000] TCBind : 00000000 [ 0.010000] TCRestart : 803f791c printk+0xc/0x30 [ 0.010000] TCHalt : 00000000 [ 0.010000] TCContext : 00000000 [ 0.010000] TC 1 [ 0.010000] TCStatus : 00000000 [ 0.010000] TCBind : 00200001 [ 0.010000] TCRestart : 8f800020 0x8f800020 [ 0.010000] TCHalt : 00000001 [ 0.010000] TCContext : 00140000 [ 0.010000] TC 2 [ 0.010000] TCStatus : 00000000 [ 0.010000] TCBind : 00400001 [ 0.010000] TCRestart : 8f800020 0x8f800020 [ 0.010000] TCHalt : 00000001 [ 0.010000] TCContext : 00280000 [ 0.010000] TC 3 [ 0.010000] TCStatus : 00000000 [ 0.010000] TCBind : 00600001 [ 0.010000] TCRestart : 8f800020 0x8f800020 [ 0.010000] TCHalt : 00000001 [ 0.010000] TCContext : 003c0000 [ 0.010000] TC 4 [ 0.010000] TCStatus : 00000000 [ 0.010000] TCBind : 00800001 [ 0.010000] TCRestart : 80100380 name_to_dev_t+0x50/0x430 [ 0.010000] TCHalt : 00000001 [ 0.010000] TCContext : 00500000 [ 0.010000] TC 5 [ 0.010000] TCStatus : 00000000 [ 0.010000] TCBind : 00a00001 [ 0.010000] TCRestart : 80100380 name_to_dev_t+0x50/0x430 [ 0.010000] TCHalt : 00000001 [ 0.010000] TCContext : 00640000 [ 0.010000] TC 6 [ 0.010000] TCStatus : 00000000 [ 0.010000] TCBind : 00c00001 [ 0.010000] TCRestart : 80268e00 aes_encrypt+0x10e4/0x164c [ 0.010000] TCHalt : 00000001 [ 0.010000] TCContext : 00780000 [ 0.010000] Counter Interrupts taken per CPU (TC) [ 0.010000] 0: 0 [ 0.010000] 1: 0 [ 0.010000] 2: 0 [ 0.010000] 3: 0 [ 0.010000] 4: 0 [ 0.010000] 5: 0 [ 0.010000] 6: 0 [ 0.010000] 7: 0 [ 0.010000] Self-IPI invocations: [ 0.010000] 0: 0 [ 0.010000] 1: 0 [ 0.010000] 2: 0 [ 0.010000] 3: 0 [ 0.010000] 4: 0 [ 0.010000] 5: 0 [ 0.010000] 6: 0 [ 0.010000] 7: 0 [ 0.010000] IPIQ[0]: head = 0x0, tail = 0x0, depth = 0 [ 0.010000] IPIQ[1]: head = 0x0, tail = 0x0, depth = 0 [ 0.010000] IPIQ[2]: head = 0x0, tail = 0x0, depth = 0 [ 0.010000] IPIQ[3]: head = 0x0, tail = 0x0, depth = 0 [ 0.010000] IPIQ[4]: head = 0x0, tail = 0x0, depth = 0 [ 0.010000] IPIQ[5]: head = 0x0, tail = 0x0, depth = 0 [ 0.010000] IPIQ[6]: head = 0x0, tail = 0x0, depth = 0 [ 0.010000] IPIQ[7]: head = 0x0, tail = 0x0, depth = 0 [ 0.010000] 0 Recoveries of "stolen" FPU [ 0.010000] ===========================