diff --git a/sys/dev/ata/ata-all.h b/sys/dev/ata/ata-all.h index 12433c2ac94..32bf26d5262 100644 --- a/sys/dev/ata/ata-all.h +++ b/sys/dev/ata/ata-all.h @@ -204,6 +204,7 @@ #define ATA_PC98_BANKADDR_RID 9 #define ATA_IRQ_RID 0 #define ATA_DEV(device) ((device == ATA_MASTER) ? 0 : 1) +#define ATA_CFA_MAGIC 0x848A #define ATAPI_MAGIC_LSB 0x14 #define ATAPI_MAGIC_MSB 0xeb #define ATAPI_P_READ (ATA_S_DRQ | ATA_I_IN) diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c index 0679a37c3f9..11fe96af9cc 100644 --- a/sys/dev/ata/ata-disk.c +++ b/sys/dev/ata/ata-disk.c @@ -71,7 +71,8 @@ ad_probe(device_t dev) { struct ata_device *atadev = device_get_softc(dev); - if (!(atadev->param.config & ATA_PROTO_ATAPI)) + if (!(atadev->param.config & ATA_PROTO_ATAPI) || + (atadev->param.config == ATA_CFA_MAGIC)) return 0; else return ENXIO;