Re: Got trap No.23 when booting mips32 ?

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

 



wilbur.chan wrote:
2009/10/22 Kevin D. Kissell <kevink@xxxxxxxxxxxxx>:
wilbur.chan wrote:
Kernal didn't resgister IRQ 23 when booting. Hmm....the only '23'
number I can find in kernel is in traps.c.

Why a 23 IRQ was triggered?


The usual reason would be a failure to correctly initialize an interrupt
controller, or the Status.IM mask field.  The kernel complains precisely
*because* IRQ 23 wasn't registered, but an interrupt was nevertheless
delivered that was decoded as being that IRQ.

        Regards,

        Kevin K.



Thanks for your suggestion.

And I found that , as a matter of  fact , kernel has registered No.23 as a trap.

In trap_init :

/*
1419          * Only some CPUs have the watch exceptions.
1420          */
1421         if (cpu_has_watch)
1422                 set_except_vector(23, handle_watch);


So, if a No.23 "signal" happened , kernel should  invoke handle_watch instead.


But why here kernel complained ? and why kernel entered the IRQ branch
(do_IRQ) rather than trap branch?


You still don't understand. You are not getting the watch exception. The '23' you see is not at all related to the exception code in the C0_cause register.

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