Subject: AT91RM9200 / CF problem solved
To: None <port-arm@netbsd.org>
From: Sami Kantoluoto <sami.kantoluoto@embedtronics.fi>
List: port-arm
Date: 04/26/2007 19:45:54
FYI,

On Fri, Mar 02, 2007 at 04:30:42PM +0200, Sami Kantoluoto wrote:

> I'm porting NetBSD to run our embedded hardware and it has Atmel's AT91RM9200
> CPU. So far I've following running:

[snip]

> But I do have problems with Compact Flash "driver" or it looks like so.
> I'm currently using AT91RM9200's pin change interrupt to capture the
> interrupt (I have to see if the interrupt line is connected to real
> IRQ pin) so I get quite a many of them when accessing the CF (I call
> the pcmcia interrupt [callback] only when pin is in appropriate state
> after the pin change).
> 
> Anyway, under heavy CF I/O NetBSD may just hang or if I try to terminate
> e.g. 'dd if=/dev/w0c bs=64k', the shell just hangs or so. So I'm wondering
> if there's a good way to verify the SPL levels are working correctly etc.
> Or any other ideas to check?

Had finally time to check this out and it turned out that I had established
the GPIO interrupt using the wrong priority level. Now it's run at IPL_BIO
and pin-specific interrupts are run at the level requested by the other
driver.


    -sk