Re: Linux 2.6.39 on Cavium CN38xx

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

 



On 06/13/2011 08:34 PM, Guenter Roeck wrote:
On Mon, Jun 13, 2011 at 05:51:11PM -0400, Guenter Roeck wrote:
[ ... ]

The actual interrupt causing trouble and spurious interrupts in my case is,
oddly enough, STATUSF_IP0. So far I have been unable to track down how that
is triggered; I don't see the bit being set set in C0_CAUSE anywhere.

Are there any means to trigger an IP0 interrupt other than by writing STATUSF_IP0
into the C0_CAUSE register ?


No.  Nothing that I know of ever uses IP0 and IP1, so they should always
be cleared.

Exactly what I figured, yet I still get those spurious interrupts if IP0 is enabled.
Something odd is definitely going on in my system.

Besides the above, my hopefully final problem is that timer interrupts are only
received by CPU 0. Any idea what to look for to fix this problem ?

Found the problem. Apparently the BIOS resets CvmCtl[IPTI] to 0.

That is clearly erroneous behavior. Although you can set any value, the HRM clearly states that 2..7 are the only legal values.

The Cavuim/Octeon u-boot just leave it at the default value of 7, and the kernel basically expects it to be 7, and never explicitly sets it.

We do set the IPPCI to 6 in the kernel, and for performance reasons, expect it to have a different value than IPTI. IP{2,3,4} are basically reserved for use by the system interrupt controller, so really these things must be on one of IP{5,6,7}.

David Daney



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux