Subject: Interrupts problem
To: None <port-powerpc@netbsd.org>
From: Jean-Francois Boudreault <jfboudre@gel.ulaval.ca>
List: port-powerpc
Date: 08/31/2006 16:08:04
Hi there,

I have a problem with custom hardware interruptions.

I'm currently designing custom network device. I'm using Jachym's port 
on virtex fpga with the console on the serial port. I have a driver 
which allocate dma memory on initialization. I use a callout function 
called every 30ms that simply write 32bits dma memory address to a 
register of the custom device to initiate a network transfert (which 
take <1ms). As soon transfert is completed, the custom device sends an 
interruption which call my driver's interruption routine that reset the 
callout to another 30ms.

On booting, I see packets going out of the custom device every 30ms as 
expected. But as soon the system is booted and my console started ('sh' 
called in single-user mode), it takes about 400ms to receive 
interruption from the custom device. Then if I give input to the console 
(simply press and hold ENTER key) I get back 30ms response from device.

Looks like interruptions problem but I can't fix it. I tried 
modifications to init binary to not call 'sh' but same problem. Also 
tried a sleep. Even tried to call ext_intr() every 10ms without success.

Any idea?

Thanks,

Jeff.