Hello. On 15-05-2012 8:57, Andre Hedrick (anhedric) wrote:
This is a missing part of the CFA 4.0 and above support.
6.2.1.6.1 Word 0: General Configuration This field indicates the general characteristics of the device. When Word 0 of the Identify drive information is 848Ah then the device is a CompactFlash Storage Card and complies with the CFA specification and CFA command set. It is recommended that PC Card modes of operation report only the 848Ah value as they are always intended as removable devices.
Bits 15-0: CF Standard Configuration Value Word 0 is 848Ah. This is the recommended value of Word 0. Some operating systems require Bit 6 of Word 0 to be set to 1 (Non-removable device) to use the card as the root storage device. The Card must be the root storage device when a host completely replaces conventional disk storage with a CompactFlash Card in True IDE mode. To support this requirement and provide capability for any future removable media Cards, alternate handling of Word 0 is permitted.
Bits 15-0: CF Preferred Alternate Configuration Values
044Ah: This is the alternate value of Word 0 turns on ATA device and turns off Removable Media and Removable Device while preserving all Retired bits in the word.
0040h: This is the alternate value of Word 0 turns on ATA device and turns off Removable Media and Removable Device while zeroing all Retired bits in the word
Cheers, Andre -------------------- The Linux X-ATA/SATA guy --- linux-2.6.32.orig/include/linux/ata.h Mon May 14 15:48:24 2012 +++ linux-2.6.32/include/linux/ata.h Mon May 14 15:51:42 2012 @@ -819,6 +819,10 @@ { if (id[ATA_ID_CONFIG] == 0x848A) /* Traditional CF */ return 1; + if (id[ATA_ID_CONFIG] == 0x044A) /* Alternative CF w/ removable turned off, preserving retired bits */ + return 1; + if (id[ATA_ID_CONFIG] == 0x0040) /* Alternative CF w/ removable turned off, zeroing retired bits*/ + return 1;
Have you read the code below this point? We rely on the CFA feature set bit in the word 83 if the word 0 is non-traditional. Or does this below check not detect your CF?
Your patch won't apply to the recent kernels anyway.
/* * CF specs don't require specific value in the word 0 anymore and yet * they forbid to report the ATA version in the word 80 and require the
Patch is also line wrapped. WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html