forked from len0rd/rockbox
IMX31: Try to catch the interrupt that was the reason irq_handler was called since it never should be. The bootloader occasionally shows one but it's not saying what.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17271 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
88451d59c4
commit
39ed7087b3
1 changed files with 8 additions and 4 deletions
|
|
@ -46,7 +46,7 @@ static const char * avic_int_names[64] =
|
|||
void UIE_VECTOR(void)
|
||||
{
|
||||
int mode;
|
||||
long offset;
|
||||
int offset;
|
||||
|
||||
asm volatile (
|
||||
"mrs %0, cpsr \n" /* Mask core IRQ/FIQ */
|
||||
|
|
@ -56,9 +56,10 @@ void UIE_VECTOR(void)
|
|||
: "=&r"(mode)
|
||||
);
|
||||
|
||||
offset = mode == 0x11 ? (long)FIVECSR : ((long)NIVECSR >> 16);
|
||||
offset = mode == 0x11 ?
|
||||
(int32_t)FIVECSR : ((int32_t)NIVECSR >> 16);
|
||||
|
||||
panicf("Unhandled %s %ld: %s",
|
||||
panicf("Unhandled %s %d: %s",
|
||||
mode == 0x11 ? "FIQ" : "IRQ", offset,
|
||||
offset >= 0 ? avic_int_names[offset] : "<Unknown>");
|
||||
}
|
||||
|
|
@ -66,7 +67,10 @@ void UIE_VECTOR(void)
|
|||
/* We use the AVIC */
|
||||
void __attribute__((naked)) irq_handler(void)
|
||||
{
|
||||
panicf("Unhandled IRQ in irq_handler");
|
||||
const int offset = (int32_t)NIVECSR >> 16;
|
||||
disable_interrupt(IRQ_FIQ_STATUS);
|
||||
panicf("Unhandled IRQ %d in irq_handler: %s", offset,
|
||||
offset >= 0 ? avic_int_names[offset] : "<Unknown>");
|
||||
}
|
||||
|
||||
/* Accoring to section 9.3.5 of the UM, the AVIC doesn't accelerate
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue