[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: External interrupt
0x90000000 is the uncached physical addres of chip select 0. You
should use the virtual address instead. The virtual address is
stored in the global variable port_csp0_addr. The code could
look something like this:
#define BLOCK_IRQ_EXT(mask,nr) \
"move.d " #mask ",r0\n\t" \
"move.d [_port_csp0_addr], r1
"add.d 24, r1"
"move.d r0,[r1]\n\t" /*register for disable external INT*/
Behalf Of Petr Jerabek
Sent: Tuesday, January 29, 2002 5:54 PM
Subject: External interrupt
We have some problems with external interrupts.
We added an external interrupts handlers.
Routines of vectors are similar to routines of internal interrupts.
Only macros BLOCK_IRQ (BLOCK_IRQ_EXT) and UNBLOCK... are changed
(see attached files .../arch/cris/kernel/irq.c and
External interrupt is generated every 20 ms.
Sometimes at the first execution of the routine, sometimes later,
kernel crashes with OOPS message. (OOPS file attached)
Could anybody help us?