Re: HP C2502 SCSI card (NCR 53C400A based) not working

From: Ondrej Zary
Date: Sun Oct 31 2004 - 12:14:19 EST


Alan Cox wrote:
On Sul, 2004-10-31 at 12:22, Ondrej Zary wrote:

Hello,
I have an old ISA SCSI card that came with HP ScanJet IIP scanner. It's
HP C2502 card based on NCR 53C400A chip. I was unable to get it working
with g_NCR5380 driver so I tried loading the official MINI400I.SYS
driver in DOSemu. I was surprised that the values sent to the ports are not the same as in the g_NCR5380 driver.


It should work in 2.4 providing you use the loading options for
ncr53c400a and set a port and no IRQ (read mine did). What options are
you trying ?

I forgot to say that I'm trying this in 2.6.9. I've tried options like this:
ncr_53c400a=1 ncr_addr=0x350 ncr_irq=255
also tried ncr_53c400=1 (without the 'a'), various addresses and IRQs.
It never worked. I always get "scsi0: bus busy, attempting abort", etc.
and even Oops sometimes.

According to this, I think that my card has the 53C400A chip registers mapped to different addresses (offsets) but I'm unable to determine what the mapping is. I was also unable to find the 53C400A datasheet which might help a bit.


The 53c400a can be programming to an address by software - either by
magic sequences or I believe according to pin strapping by ISAPnP.

My card has no jumpers - only solder points for two 3-pin jumpers and it
doesn't look like it can do ISAPnP.
I've made a simple test program in pascal to test the magic sequences in
DOS. The card ignores the magic sequences that the g_NCR5380 driver
uses. When I use the sequences obtained from MINI400I.SYS using DOSemu,
it "works" - I can read/write the card's registers at the configured
base address. The IRQ (2,3,4,5 and 7) can be configured by the magic
sequence too (by setting the high-order bits in the last number in the sequence).
So I know how to configure my card, maybe I should try to add it to the
driver (e.g. by adding ncr_53c400a_hp=1 parameter). If I only could get
the register mapping correctly (I think that this is the problem now).

The g_NCR5380 driver moves the base address by +8 bytes for 53C400 chips (but not for 53C400A) and defines the 53C400 specifis register offsets negative. This looks weird to me - either the 53C400A does not have these additional registers or the driver is broken and is trying to access these registers outside the I/O range on 53C400A.

Its been a long time since I touched such junk however and if you want
to do anything useful with your computer while scanning (like waving the
mouse point around) get something else!

I know it's old, cheap and bad - I just want to make it work. I remember
that it worked in DOS/Windows 3.1. I was not successful in Windows 98 -
although there is an official driver from HP.

P.S. I've removed the Ingmar Baumgart's e-mail address from CC as it
does not work.

--
Ondrej Zary



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/