Date: Tue, 25 Jun 2013 10:50:17 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r252204 - head/sys/cam/scsi Message-ID: <201306251050.r5PAoHrG070150@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mav Date: Tue Jun 25 10:50:17 2013 New Revision: 252204 URL: http://svnweb.freebsd.org/changeset/base/252204 Log: Add bunch of names for Seagate and HGST vennor-specififc ASC/ASCQ codes. Modified: head/sys/cam/scsi/scsi_all.c Modified: head/sys/cam/scsi/scsi_all.c ============================================================================== --- head/sys/cam/scsi/scsi_all.c Tue Jun 25 09:15:49 2013 (r252203) +++ head/sys/cam/scsi/scsi_all.c Tue Jun 25 10:50:17 2013 (r252204) @@ -737,6 +737,172 @@ static struct asc_table_entry sony_mo_en "Logical unit not ready, cause not reportable") } }; +static struct asc_table_entry hgst_entries[] = { + { SST(0x04, 0xF0, SS_RDEF, + "Vendor Unique - Logical Unit Not Ready") }, + { SST(0x0A, 0x01, SS_RDEF, + "Unrecovered Super Certification Log Write Error") }, + { SST(0x0A, 0x02, SS_RDEF, + "Unrecovered Super Certification Log Read Error") }, + { SST(0x15, 0x03, SS_RDEF, + "Unrecovered Sector Error") }, + { SST(0x3E, 0x04, SS_RDEF, + "Unrecovered Self-Test Hard-Cache Test Fail") }, + { SST(0x3E, 0x05, SS_RDEF, + "Unrecovered Self-Test OTF-Cache Fail") }, + { SST(0x40, 0x00, SS_RDEF, + "Unrecovered SAT No Buffer Overflow Error") }, + { SST(0x40, 0x01, SS_RDEF, + "Unrecovered SAT Buffer Overflow Error") }, + { SST(0x40, 0x02, SS_RDEF, + "Unrecovered SAT No Buffer Overflow With ECS Fault") }, + { SST(0x40, 0x03, SS_RDEF, + "Unrecovered SAT Buffer Overflow With ECS Fault") }, + { SST(0x40, 0x81, SS_RDEF, + "DRAM Failure") }, + { SST(0x44, 0x0B, SS_RDEF, + "Vendor Unique - Internal Target Failure") }, + { SST(0x44, 0xF2, SS_RDEF, + "Vendor Unique - Internal Target Failure") }, + { SST(0x44, 0xF6, SS_RDEF, + "Vendor Unique - Internal Target Failure") }, + { SST(0x44, 0xF9, SS_RDEF, + "Vendor Unique - Internal Target Failure") }, + { SST(0x44, 0xFA, SS_RDEF, + "Vendor Unique - Internal Target Failure") }, + { SST(0x5D, 0x22, SS_RDEF, + "Extreme Over-Temperature Warning") }, + { SST(0x5D, 0x50, SS_RDEF, + "Load/Unload cycle Count Warning") }, + { SST(0x81, 0x00, SS_RDEF, + "Vendor Unique - Internal Logic Error") }, + { SST(0x85, 0x00, SS_RDEF, + "Vendor Unique - Internal Key Seed Error") }, +}; + +static struct asc_table_entry seagate_entries[] = { + { SST(0x04, 0xF0, SS_RDEF, + "Logical Unit Not Ready, super certify in Progress") }, + { SST(0x08, 0x86, SS_RDEF, + "Write Fault Data Corruption") }, + { SST(0x09, 0x0D, SS_RDEF, + "Tracking Failure") }, + { SST(0x09, 0x0E, SS_RDEF, + "ETF Failure") }, + { SST(0x0B, 0x5D, SS_RDEF, + "Pre-SMART Warning") }, + { SST(0x0B, 0x85, SS_RDEF, + "5V Voltage Warning") }, + { SST(0x0B, 0x8C, SS_RDEF, + "12V Voltage Warning") }, + { SST(0x0C, 0xFF, SS_RDEF, + "Write Error – Too many error recovery revs") }, + { SST(0x11, 0xFF, SS_RDEF, + "Unrecovered Read Error – Too many error recovery revs") }, + { SST(0x19, 0x0E, SS_RDEF, + "Fewer than 1/2 defect list copies") }, + { SST(0x20, 0xF3, SS_RDEF, + "Illegal CDB linked to skip mask cmd") }, + { SST(0x24, 0xF0, SS_RDEF, + "Illegal byte in CDB, LBA not matching") }, + { SST(0x24, 0xF1, SS_RDEF, + "Illegal byte in CDB, LEN not matching") }, + { SST(0x24, 0xF2, SS_RDEF, + "Mask not matching transfer length") }, + { SST(0x24, 0xF3, SS_RDEF, + "Drive formatted without plist") }, + { SST(0x26, 0x95, SS_RDEF, + "Invalid Field Parameter – CAP File") }, + { SST(0x26, 0x96, SS_RDEF, + "Invalid Field Parameter – RAP File") }, + { SST(0x26, 0x97, SS_RDEF, + "Invalid Field Parameter – TMS Firmware Tag") }, + { SST(0x26, 0x98, SS_RDEF, + "Invalid Field Parameter – Check Sum") }, + { SST(0x26, 0x99, SS_RDEF, + "Invalid Field Parameter – Firmware Tag") }, + { SST(0x29, 0x08, SS_RDEF, + "Write Log Dump data") }, + { SST(0x29, 0x09, SS_RDEF, + "Write Log Dump data") }, + { SST(0x29, 0x0A, SS_RDEF, + "Reserved disk space") }, + { SST(0x29, 0x0B, SS_RDEF, + "SDBP") }, + { SST(0x29, 0x0C, SS_RDEF, + "SDBP") }, + { SST(0x31, 0x91, SS_RDEF, + "Format Corrupted World Wide Name (WWN) is Invalid") }, + { SST(0x32, 0x03, SS_RDEF, + "Defect List – Length exceeds Command Allocated Length") }, + { SST(0x33, 0x00, SS_RDEF, + "Flash not ready for access") }, + { SST(0x3F, 0x70, SS_RDEF, + "Invalid RAP block") }, + { SST(0x3F, 0x71, SS_RDEF, + "RAP/ETF mismatch") }, + { SST(0x3F, 0x90, SS_RDEF, + "Invalid CAP block") }, + { SST(0x3F, 0x91, SS_RDEF, + "World Wide Name (WWN) Mismatch") }, + { SST(0x40, 0x01, SS_RDEF, + "DRAM Parity Error") }, + { SST(0x40, 0x02, SS_RDEF, + "DRAM Parity Error") }, + { SST(0x42, 0x0A, SS_RDEF, + "Loopback Test") }, + { SST(0x42, 0x0B, SS_RDEF, + "Loopback Test") }, + { SST(0x44, 0xF2, SS_RDEF, + "Compare error during data integrity check") }, + { SST(0x44, 0xF6, SS_RDEF, + "Unrecoverable error during data integrity check") }, + { SST(0x47, 0x80, SS_RDEF, + "Fibre Channel Sequence Error") }, + { SST(0x4E, 0x01, SS_RDEF, + "Information Unit Too Short") }, + { SST(0x80, 0x00, SS_RDEF, + "General Firmware Error / Command Timeout") }, + { SST(0x80, 0x01, SS_RDEF, + "Command Timeout") }, + { SST(0x80, 0x02, SS_RDEF, + "Command Timeout") }, + { SST(0x80, 0x80, SS_RDEF, + "FC FIFO Error During Read Transfer") }, + { SST(0x80, 0x81, SS_RDEF, + "FC FIFO Error During Write Transfer") }, + { SST(0x80, 0x82, SS_RDEF, + "DISC FIFO Error During Read Transfer") }, + { SST(0x80, 0x83, SS_RDEF, + "DISC FIFO Error During Write Transfer") }, + { SST(0x80, 0x84, SS_RDEF, + "LBA Seeded LRC Error on Read") }, + { SST(0x80, 0x85, SS_RDEF, + "LBA Seeded LRC Error on Write") }, + { SST(0x80, 0x86, SS_RDEF, + "IOEDC Error on Read") }, + { SST(0x80, 0x87, SS_RDEF, + "IOEDC Error on Write") }, + { SST(0x80, 0x88, SS_RDEF, + "Host Parity Check Failed") }, + { SST(0x80, 0x89, SS_RDEF, + "IOEDC error on read detected by formatter") }, + { SST(0x80, 0x8A, SS_RDEF, + "Host Parity Errors / Host FIFO Initialization Failed") }, + { SST(0x80, 0x8B, SS_RDEF, + "Host Parity Errors") }, + { SST(0x80, 0x8C, SS_RDEF, + "Host Parity Errors") }, + { SST(0x80, 0x8D, SS_RDEF, + "Host Parity Errors") }, + { SST(0x81, 0x00, SS_RDEF, + "LA Check Failed") }, + { SST(0x82, 0x00, SS_RDEF, + "Internal client detected insufficient buffer") }, + { SST(0x84, 0x00, SS_RDEF, + "Scheduled Diagnostic And Repair") }, +}; + static struct scsi_sense_quirk_entry sense_quirk_table[] = { { /* @@ -759,6 +925,26 @@ static struct scsi_sense_quirk_entry sen sizeof(sony_mo_entries)/sizeof(struct asc_table_entry), /*sense key entries*/NULL, sony_mo_entries + }, + { + /* + * HGST vendor-specific error codes + */ + {T_DIRECT, SIP_MEDIA_FIXED, "HGST", "*", "*"}, + /*num_sense_keys*/0, + sizeof(hgst_entries)/sizeof(struct asc_table_entry), + /*sense key entries*/NULL, + hgst_entries + }, + { + /* + * SEAGATE vendor-specific error codes + */ + {T_DIRECT, SIP_MEDIA_FIXED, "SEAGATE", "*", "*"}, + /*num_sense_keys*/0, + sizeof(seagate_entries)/sizeof(struct asc_table_entry), + /*sense key entries*/NULL, + seagate_entries } };
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306251050.r5PAoHrG070150>