Re: Problem accessing Sandisk CompactFlash Cards (Connected to the IDE bus)

From: Neil Horman
Date: Mon Aug 30 2004 - 12:12:12 EST


Marc Strämke wrote:
<snip>
One thing i did notice when tracing these functions, is that the new card returns 0x44a in drive->id->config, while the old one returns 0x848a, according to the manual from SanDisk(http://www.sandisk.com/pdf/industrial/ProdManualIndustrialGradeATAv2.6.pdf) Should only be returned in memory mapped(cardbus/pc-card) mode, and not in True IDE mode, which the card is appearently running, otherwise the bios couldnt not boot from it, nor would the electrical interface be compatible (if i get the manual right). That is imo why hdparm -I doesnt detect the card as beein removable and Compactflash too, i looked as the sourcode of hdparm, and it seems to read the ATA configuration registers trough a proc file, and interpret it directly (without intervention of the kernel).
So the data the does return indeed marks it as an ATA harddisk, and not as a compactflash card, the real question then is why doesnt it work as a harddisk, which according to the specifications it should? Iam not really experienced in the ide stuff, so iam not sure what the CompactFlash detection in linux changes in behaviour.
I can get the kernel to report it as a "CFA DISK Drive" in dmesg by forcing the flags i mentioned before, but the error is exactly the same.

Sorry, I've been mixed up here. I've been focused on the removable flag aspect of this problem. To level set here:

1) older SanDisk cards are detected as CFA devices and are working, but not bootable.

2) newer SanDisk cards are detected as ATA disks, and are bootable as such, but do not seem to be operating correctly (the aforementioned ide errors).


Is this correct?

The first question to answer is, which mode do you want to operate in? (I assume True IDE is what you're after, but just to be sure). According to the Manual you provided the link to, CFA cards select which mode the operate in (CFA or ATA) from poweron based on a sampling of pin 0x0E. on the physical interface (from section 3.7 on page 43). So it seems you have two supposedly identical pieces of hardware that are configuring themselves from poweron in opposing ways based on the electrical characteristics of the same bus pin. If this is correct, then I would be forced to conclude:

a) the state of that bus pin is fluctuating.
b) the CompactFlash cards that you have treat that pin differently

Either way, it seems that you have two cards which should be, but are not getting detected/configured in the same way. That would somewhat suggest to me electrical issues on your bus, which may account for the ide errors you are seeing.

Neil
Thx for your help,
Marc

-
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/


--
/***************************************************
*Neil Horman
*Software Engineer
*Red Hat, Inc.
*nhorman@xxxxxxxxxx
*gpg keyid: 1024D / 0x92A74FA1
*http://pgp.mit.edu
***************************************************/
-
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/