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/