Re: CF flash PATA on libata failure to attach

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

 



Andrew Hall wrote:
> Hi Mark,
>
> The device is a Nexcom NSA1083 appliance:
>
> http://www.nexcom.com/product/productshow.jsp?iid=13&pid=878
>
> It's an OEM appliance that uses the Intel 965 chipset. We use it as one of
> three platforms for our access control and compliance products as it has 8
> built in Ethernet ports and a dual core processor - with built in compact
> flash. The older appliance that this new (1083) one is superseding also had
> built in CF although this one apparently had separate PATA and SATA
> controllers, whereas the 1083 has only one 4 channel ICH8 Intel SATA
> controller which interfaces to one CF connector and one IDE connector via a
> SATA to PATA bridge ( I don't know exactly what this bridge is or how it
> interfaces to the SATA bus - but I can probably find this out from the
> manufacturer). The CF is a standard 512MB Sandisk/Kingston chip that we boot
> from and write configuration data to.
..

I'm betting that the SATA/PATA converter is getting confused with
the ata_piix driver's attempt to use MDMA2 on it.

PIO appears to be working fine -- the BIOS uses it to boot,
and libata uses it to do the IDENTIFY operation.

So, try this hack, which should force ata_piix to use only PIO
for the ICH8 chipset. So long as you don't have any real SATA
drives, this might do the trick.

Cheers

--- linux/drivers/ata/ata_piix.c.orig 2007-06-27 11:20:51.000000000 -0400
+++ linux/drivers/ata/ata_piix.c 2007-06-28 13:32:27.000000000 -0400
@@ -526,8 +526,8 @@
.flags = PIIX_SATA_FLAGS | PIIX_FLAG_SCR |
PIIX_FLAG_AHCI,
.pio_mask = 0x1f, /* pio0-4 */
- .mwdma_mask = 0x07, /* mwdma0-2 */
- .udma_mask = 0x7f, /* udma0-6 */
+ .mwdma_mask = 0x00, /* mwdma0-2 */
+ .udma_mask = 0x00, /* udma0-6 */
.port_ops = &piix_sata_ops,
},

@@ -537,8 +537,8 @@
.flags = PIIX_SATA_FLAGS | PIIX_FLAG_SCR |
PIIX_FLAG_AHCI,
.pio_mask = 0x1f, /* pio0-4 */
- .mwdma_mask = 0x07, /* mwdma0-2 */
- .udma_mask = 0x7f, /* udma0-6 */
+ .mwdma_mask = 0x00, /* mwdma0-2 */
+ .udma_mask = 0x00, /* udma0-6 */
.port_ops = &piix_sata_ops,
},

-
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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux