[BUG] ata: disk_ata_drive: SSD drive doesn't pass check for ata id validity

Peter Mamonov pmamonov at gmail.com
Thu Oct 29 06:04:09 PDT 2015


Hi!

Barebox refuses to deal with OCZ-VERTEX4 ssd sata drive, because:
	ata1: ata id invalid

This error is triggered by the following piece of code :

static int ata_id_is_valid(const uint16_t *id)
{
	if ((id[ATA_ID_FIELD_VALID] & 1) == 0) {
		pr_debug("Drive's ID seems invalid\n");
		return -EINVAL;
	}

	return 0;
}

The "id" is a sector-sized block of bytes, received after
issuing ATA_CMD_ID_ATA command.

If I remove this check, the drive works fine.

Can someone with better knowledge of ATA standard comment on this
issue?

Regards,
Peter



More information about the barebox mailing list