MHonArc test archive

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

Q: Insmod -> "self test FAILED"

Hi folks,

I'm having real problems installing my PCA-200E/PC card under RedHat
5.0, though it runs just fine under NT4.0.  After much finagling, I
have a clean kernel compile and also a clean compile of the ATM tools
by Werner Almesberger.  The pca200e.o kernel module compiles without
errors, but "insmod ./pca200e.o" fails with the message:

     ./pca200e.o: init_module: Device or resource busy

In /var/log/messages I find the following two lines:

   Mar 13 08:04:50 lbudney-pc kernel: PCA-200E: found Fore PCA-200E at 0xe2000000, IRQ 9
   Mar 13 08:04:50 lbudney-pc kernel: PCA-200E: self test FAILED.

Here is my current setup:

     Computer:	   Compaq Deskpro 4000
     Distribution: RedHat 5.0
     Kernel:	   2.0.33
     ATM:	   release 0.31
     pca200e:	   version 0.2
     headers:	   glibc-devel-2.0.5c-10 replaced with libc-devel-5.4.44-1rh42
     firmware:	   pca200e.bin, version 4.1

I did notice that RedHat 5.0 seems to give people problems, but with
everything compiling cleanly, it feels like I'm past that particular

To resolve the problem, I first ran the Compaq BIOS diagnostics.  The
PCA card originally used IRQ 7, which it shared with Compaqs PCI
ethernet card (a netflex III).  In the BIOS tool, I disabled the
netflex and moved the ATM card to IRQ 9.  

When changing the IRQ had no effect, I tried other firmare images,
including the one I downloaded from
<>.  None of this changed the

Next I joined this mailing list, requested the archive, and searched
it.  Indu Mahadevan had a similar-sounding problem, which was not the
same.  In a response to his problem, Uwe Dannowski provided some code
which first sets the card's address before the driver reads the
address; I added that code to my driver using the address 0xe2000000.
Previously, the address was something like "0x42c00000".

After examining the source code, I see that the problem is happening
in the function pca200e_reset().  The bstat register is set to
cold_start, the board control register bit 0 is set and cleared, but
the bstat register never transitions to "self_test_ok".  Instead I am seeing
a value of 0x58192002 pretty consistently.  This suggests that the card
is failing to initialize at all; yet it works fine under NT4.0.

Any suggestions for getting this working would make my week!
Thanks a lot,

Leonard R Budney    |   This application has performed an illegal
Fore Systems        |	operation, and must be punished.     |		                       
(412) 742 - 7895    |		  [OK]      [Cancel]

Home | Main Index | Thread Index