diff --git a/SOURCES/drivedb.h b/SOURCES/drivedb.h index ebb8cbf..492dc96 100644 --- a/SOURCES/drivedb.h +++ b/SOURCES/drivedb.h @@ -4,7 +4,7 @@ * Home page of code is: https://www.smartmontools.org * * Copyright (C) 2003-11 Philip Williams, Bruce Allen - * Copyright (C) 2008-20 Christian Franke + * Copyright (C) 2008-23 Christian Franke * * SPDX-License-Identifier: GPL-2.0-or-later */ @@ -68,9 +68,9 @@ /* const drive_settings builtin_knowndrives[] = { */ - { "$Id: drivedb.h 5049 2020-04-05 16:31:29Z chrfranke $", + { "VERSION: 7.3 $Id$", "-", "-", - "This is a dummy entry to hold the SVN-Id of drivedb.h", + "Version information", "" }, { "DEFAULT", @@ -136,7 +136,7 @@ const drive_settings builtin_knowndrives[] = { "-v 228,raw48,Power-off_Retract_Count " // 229 Unknown_Attribute "-v 230,raw48,Head_Amplitude,HDD " - "-v 231,raw48,Temperature_Celsius " + "-v 231,raw48,Temperature_Celsius,HDD " "-v 232,raw48,Available_Reservd_Space " "-v 233,raw48,Media_Wearout_Indicator,SSD " // 234-239 Unknown_Attribute @@ -242,6 +242,26 @@ const drive_settings builtin_knowndrives[] = { "-v 231,raw48,Lifetime_Left " //"-v 241,raw48,Total_LBAs_Written " }, + { "Apacer SSDs", + "([1248]|1[056]|20|3[02]|40|60|64|80|12[08]|160|240|256|320|480|512|640|960|1024|1280|1920|2048|3840|4096)(GB|TB) SATA Flash Drive|" + "S[GHTV]250-(M2[48][02]|25) ([1248]|1[056]|20|3[02]|40|60|64|80|12[08]|160|240|256|320|480|512|640|960|1024|1280|1920|2048|3840|4096)(GB|TB) SSD", // tested with 120GB SATA Flash Drive/SFMB6130, SH250-M242 128GB SSD/SFMB8120, ST250-M280 256GB SSD/SFMD6110 + "SFM[BCDEGHJ][0-9A-Z][0-9A-Z][1-9A-Z][0-9A-Z]", + "", + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " + "-v 163,raw48,Maximum_Erase_Count " + "-v 164,raw48,Average_Erase_Count " + "-v 166,raw48,Total_Later_Bad_Blk_Ct " + "-v 167,raw48,SSD_Protect_Mode " + "-v 168,raw48,SATA_PHY_Error_Count " + "-v 171,raw48,Program_Fail_Count " + "-v 172,raw48,Erase_Fail_Count " + "-v 175,raw48,Bad_Cluster_Table_Ct " + "-v 192,raw48,Unexpect_Power_Loss_Ct " + //"-v 194,tempminmax,Temperature_Celsius " + "-v 231,raw48,Lifetime_Left " + //"-v 241,raw48,Total_LBAs_Written " + }, { "Apple MacBook Air SSD", // probably Toshiba "APPLE SSD TS(064|128)E", // tested with APPLE SSD TS064E/TQAABBF0 "", "", @@ -251,7 +271,7 @@ const drive_settings builtin_knowndrives[] = { }, { "Apple SD/SM/TS...E/F/G SSDs", // SanDisk/Samsung/Toshiba? "APPLE SSD (S[DM]|TS)0?(128|256|512|768|1024)[EFG]", // tested with APPLE SSD SD256E/1021AP, SD0128F/A223321 - // APPLE SSD SM768E/CXM90A1Q, SM0512F/UXM2JA1Q, TS0256F/109L0704, SM0512G/BXW1SA0Q, SM1024G/BXW1SA0Q + // APPLE SSD SM768E/CXM90A1Q, SM0512F/UXM2JA1Q, TS0256F/109L0704, SM0512G/BXW1SA0Q, SM1024G/BXW1SA0Q "", "", //"-v 1,raw48,Raw_Read_Error_Rate " //"-v 5,raw16(raw16),Reallocated_Sector_Ct " @@ -267,6 +287,40 @@ const drive_settings builtin_knowndrives[] = { //"-v 199,raw48,UDMA_CRC_Error_Count " //"-v 240,raw48,Unknown_SSD_Attribute " }, + { "ATP SATA III aMLC M.2 2242 Embedded SSD", + "ATP I-Temp M\\.2 2242", // tested with ATP I-Temp M.2 2242/R0822A + "","", + "-v 1,raw48,Raw_Read_Error_Count " + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " + "-v 14,raw48,Device_Raw_Capacity " + "-v 15,raw48,Device_User_Capacity " + "-v 16,raw48,Initial_Spare_Blocks " + "-v 17,raw48,Remaining_Spare_Blocks " + "-v 100,raw48,Total_Erease_Count " + "-v 160,raw48,Uncorrectable_Sectors " + "-v 172,raw48,Block_Erase_Failure " + "-v 173,raw48,Max_Erase_Count " + "-v 174,raw48,Unexpected_Power_Cycle " + "-v 175,raw48,Average_Erase_Count " + "-v 181,raw48,Program_Fail_Blocks " + "-v 187,raw48,Reported_UE_Counts " + "-v 194,raw48,Device_Temperature " + //"-v 195,raw48,Hardware_ECC_Recovered " + //"-v 197,raw48,Current_Pending_Sector " + //"-v 198,raw48,Offline_Uncorrectable " + "-v 199,raw48,SATA_CRC_Error_Count " + "-v 202,raw48,Percent_Lifetime_Used " + "-v 205,raw48,Thermal_Asperity_Rate " + "-v 231,raw48,Controller_Temperature " + "-v 234,raw48,Nand_Sectors_Read " + "-v 235,raw48,Device_Sectors_Written " + "-v 241,raw48,Nand_Sectors_Written " + "-v 242,raw48,Device_Bytes_Read " + "-v 248,raw48,PCT_Life_Remaining " + "-v 249,raw48,Spare_Block_Remaining " + }, { "Crucial/Micron RealSSD C300/P300", // Marvell 88SS9174 "C300-CTFDDA[AC](064|128|256)MAG|" // tested with C300-CTFDDAC128MAG/0002, // C300-CTFDDAC064MAG/0006 @@ -298,11 +352,11 @@ const drive_settings builtin_knowndrives[] = { }, { "Crucial/Micron RealSSD m4/C400/P400", // Marvell 9176, fixed firmware "C400-MTFDDA[ACK](064|128|256|512)MAM|" - // M4-CT032M4SSD3/04MH + // M4-CT032M4SSD3/04MH "M4-CT(032|064|128|256|512)M4SSD[123]|" // tested with M4-CT512M4SSD2/0309 "MTFDDA[AK](064|128|256|512|050|100|200|400)MA[MNR]-1[JKS]1.*", // tested with - // MTFDDAK256MAR-1K1AA/MA52, MTFDDAK256MAM-1K12/08TH, - // MTFDDAA064MAR-1J1AB 49Y5835 49Y5838IBM/MA49 (P400e) + // MTFDDAK256MAR-1K1AA/MA52, MTFDDAK256MAM-1K12/08TH, + // MTFDDAA064MAR-1J1AB 49Y5835 49Y5838IBM/MA49 (P400e) "030[9-Z]|03[1-Z].|0[4-Z]..|[1-Z]....*", // >= "0309" "", //"-v 1,raw48,Raw_Read_Error_Rate " @@ -352,36 +406,9 @@ const drive_settings builtin_knowndrives[] = { "-v 202,raw48,Perc_Rated_Life_Used " "-v 206,raw48,Write_Error_Rate" }, - { "Crucial/Micron MX500 SSDs", - "CT(250|500|1000|2000)MX500SSD[14]", // tested with CT500MX500SSD1/M3CR020, - // .../M3CR022, .../M3CR023, CT1000MX500SSD1/M3CR010 - "M3CR0([01][0-9]|2[0-3])", // Assume FW <= M3CR023 have bogus attribute 197 (see ticket #1227, #1311) - "This firmware returns bogus raw values in attribute 197", - //"-v 1,raw48,Raw_Read_Error_Rate " - "-v 5,raw48,Reallocate_NAND_Blk_Cnt " - //"-v 9,raw24(raw8),Power_On_Hours " - //"-v 12,raw48,Power_Cycle_Count " - "-v 171,raw48,Program_Fail_Count " - "-v 172,raw48,Erase_Fail_Count " - "-v 173,raw48,Ave_Block-Erase_Count " - "-v 174,raw48,Unexpect_Power_Loss_Ct " - "-v 180,raw48,Unused_Reserve_NAND_Blk " - "-v 183,raw48,SATA_Interfac_Downshift " - "-v 184,raw48,Error_Correction_Count " - //"-v 187,raw48,Reported_Uncorrect " - //"-v 194,tempminmax,Temperature_Celsius " - //"-v 196,raw16(raw16),Reallocated_Event_Count " - "-v 197,raw48,Bogus_Current_Pend_Sect " // Randomly flips 0 <> 1 - //"-v 198,raw48,Offline_Uncorrectable " - //"-v 199,raw48,UDMA_CRC_Error_Count " - "-v 202,raw48,Percent_Lifetime_Remain " - "-v 206,raw48,Write_Error_Rate " - "-v 210,raw48,Success_RAIN_Recov_Cnt " - "-v 246,raw48,Total_LBAs_Written " - "-v 247,raw48,Host_Program_Page_Count " - "-v 248,raw48,FTL_Program_Page_Count" - }, - { "Crucial/Micron BX/MX1/2/3/500, M5/600, 1100 SSDs", + { "Crucial/Micron Client SSDs", // MX100, MX200, BX300, MX300, BX500, MX500, M500, M600, 1100, 1300 + // See also tnfd22_client_ssd_smart_attributes.pdf Rev. E from 2018-09-28 + // (covers M500 FW>=MU03, M510, M550, MX100, M600, MX200, 1100, MX300, 1300) "Crucial_CT(128|256|512)MX100SSD1|"// Marvell 88SS9189, tested with Crucial_CT256MX100SSD1/MU01 "Crucial_CT(200|250|256|500|512|1000|1024)MX200SSD[1346]|" // Marvell 88SS9189, tested with // Crucial_CT500MX200SSD1/MU01, Crucial_CT1024MX200SSD1/MU01, Crucial_CT250MX200SSD3/MU01, @@ -396,11 +423,12 @@ const drive_settings builtin_knowndrives[] = { // Crucial_CT1024M550SSD1/MU01, Crucial_CT128M550SSD4/MU02 "CT(120|240|480)BX300SSD1|" // Silicon Motion SM2258, same attributes as Marvell-based Crucial SSDs, // tested with CT240BX300SSD1/M2CR010 - "CT(120|240|480|960|1000)BX500SSD1|" // Silicon Motion SM2258XT, tested with CT120BX500SSD1/M6CR013, - // CT1000BX500SSD1/M6CR030 - "CT(250|500|1000|2000)MX500SSD[14]|" // Silicon Motion SM2258, tested with CT250MX500SSD1/M3CR010 + "CT(120|240|480|960|[12]000)BX500SSD1|" // Silicon Motion SM2258XT, tested with CT120BX500SSD1/M6CR013, + // CT1000BX500SSD1/M6CR030, CT2000BX500SSD1/M6CR030 + "CT(250|500|[124]000)MX500SSD[14]|" // Silicon Motion SM2258, tested with CT250MX500SSD1/M3CR010 // CT500MX500SSD1/M3CR010, CT1000MX500SSD1/M3CR010, CT2000MX500SSD1/M3CR010, - // CT250MX500SSD4/M3CR022 (now handled by above entry) + // CT500MX500SSD1/M3CR020, CT250MX500SSD4/M3CR022, CT500MX500SSD1/M3CR022, + // CT500MX500SSD1/M3CR023, CT1000MX500SSD1/M3CR032, CT4000MX500SSD1/M3CR044 "Micron_M500_MTFDDA[KTV](120|240|480|960)MAV|"// tested with Micron_M500_MTFDDAK960MAV/MU05 "Micron_M500DC_(EE|MT)FDDA[AK](120|240|480|800)MBB|" // tested with Micron_M500DC_EEFDDAA120MBB/129, // Micron_M500DC_MTFDDAK800MBB/0129 @@ -410,9 +438,11 @@ const drive_settings builtin_knowndrives[] = { "(Micron_)?M550[_-]MTFDDA[KTV](064|128|256|512|1T0)MAY|" // tested with M550-MTFDDAK256MAY/MU01 "(Micron_M600_)?(EE|MT)FDDA[KTV](128|256|512|1T0)MBF[25Z]?(-.*)?|" // tested with Micron_M600_MTFDDAK1T0MBF/MU01, // MTFDDAK256MBF-1AN1ZABHA/M603 - "(Micron_1100_)?MTFDDA[KV](256|512|1T0|2T0)TBN|" // Marvell 88SS1074, tested with - // Micron_1100_MTFDDAK256TBN/M0MU020, MTFDDAK256TBN/M0MA020 (OEM) - "Micron 1100 SATA (256G|512G|1T|2T)B", // tested with Micron 1100 SATA 256GB/M0DL022 + "(Micron_1100_)?MTFDDA[KV](256|512|1T0|2T0)TBN(-.*)?|" // Marvell 88SS1074, tested with + // Micron_1100_MTFDDAK256TBN/M0MU020, MTFDDAK256TBN/M0MA020 (OEM), MTFDDAV256TBN-1AR15ABHA/HPC0T14 + "Micron 1100 SATA (256G|512G|1T|2T)B|" // tested with Micron 1100 SATA 256GB/M0DL022 + "(Micron_1300_)?(EE|MT)FDDA[KV](256|512|1T0|2T0)TDL(-.*)?", // tested with Micron_1300_MTFDDAK256TDL/M5MU000, + // Micron_1300_MTFDDAK1T0TDL/M5MU000, MTFDDAK2T0TDL/M5MU030, MTFDDAK256TDL-1AW1ZABFA/M5MA030 "", "", //"-v 1,raw48,Raw_Read_Error_Rate " "-v 5,raw48,Reallocate_NAND_Blk_Cnt " @@ -430,10 +460,10 @@ const drive_settings builtin_knowndrives[] = { //"-v 194,tempminmax,Temperature_Celsius " "-v 195,raw48,Cumulativ_Corrected_ECC " //"-v 196,raw16(raw16),Reallocated_Event_Count " - //"-v 197,raw48,Current_Pending_Sector " + "-v 197,raw48,Current_Pending_ECC_Cnt " // MX500: May flip 0 <> 1 (ticket #1227) //"-v 198,raw48,Offline_Uncorrectable " //"-v 199,raw48,UDMA_CRC_Error_Count " - "-v 202,raw48,Percent_Lifetime_Remain " + "-v 202,raw48,Percent_Lifetime_Remain " // norm = max(100-raw,0); raw = percent_lifetime_used "-v 206,raw48,Write_Error_Rate " "-v 210,raw48,Success_RAIN_Recov_Cnt " "-v 223,raw48,Unkn_CrucialMicron_Attr " // M6CR030 @@ -447,16 +477,49 @@ const drive_settings builtin_knowndrives[] = { "-v 253,raw48,Unkn_CrucialMicron_Attr " // M6CR030 "-v 254,raw48,Unkn_CrucialMicron_Attr" // M6CR030 }, + { "Lexar 128GB SSD", // for other Lexar drives see ticket #1529 + "Lexar 128GB SSD", // Lexar 128GB SSD/H190117D + "", "", + "-v 5,raw48,New_Bad_Blk_Cnt " + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " + "-v 167,raw48,SSD_Protect_mode " + "-v 168,raw48,SATA_PHY_Error_Cnt " + "-v 169,raw48,Bad_Block_Cnt " + "-v 171,raw48,Program_Fail_Cnt " + "-v 172,raw48,Erase_Fail_Cnt " + "-v 173,raw48,Erase_Cnt " + "-v 175,raw48,Bad_Cluster_Cnt " + "-v 177,raw48,Read_Retry_Cnt " + "-v 180,raw48,Spare_Blk_Cnt_Left " + //"-v 187,raw48,Reported_Uncorrect " + //"-v 192,raw48,Power-Off_Retract_Count " + //"-v 194,tempminmax,Temperature_Celsius " + //"-v 199,raw48,UDMA_CRC_Error_Count " + "-v 206,raw48,Min_Erase_Cnt " + "-v 207,raw48,Max_Erase_Cnt " + "-v 208,raw48,Avg_Erase_Cnt " + "-v 209,raw48,SLC_Min_Erase_Cnt " + "-v 210,raw48,SLC_Max_Erase_Cnt " + "-v 211,raw48,SLC_Avg_Erase_Cnt " + "-v 231,raw48,SSD_Life_Left " + //"-v 241,raw48,Total_LBAs_Written " + //"-v 242,raw48,Total_LBAs_Read " + "-v 245,raw48,Bit_Error_Cnt " + }, // Reference: https://www.micron.com/resource-details/feec878a-265e-49a7-8086-15137c5f9011 // TN-FD-34: 5100 SSD SMART Implementation - { - "Micron 5100 Pro / 5200 SSDs", + { "Micron 5100 / 52x0 / 5300 / 5400 SSDs", "(Micron_5100_)?(EE|MT)FDDA[KV](240|480|960|1T9|3T8|7T6)T(BY|CB|CC)|" // Matches both stock and Dell OEM // tested with Micron_5100_MTFDDAK3T8TCB/D0MU410, MTFDDAK3T8TCB/D0MU410 - "(Micron_5200_)?MTFDDAK(480|960|1T9|3T8|7T6)TD(C|D|N)", // tested with Micron_5200_MTFDDAK3T8TDD/D1MU505 + "(Micron_5200_)?MTFDDAK(480|960|1T9|3T8|7T6)TD(C|D|N)|" // tested with Micron_5200_MTFDDAK3T8TDD/D1MU505 + "Micron_5210_MTFDDAK(480|960|1T9|3T8|7T6)QDE|" // tested with Micron_5210_MTFDDAK7T6QDE/D2MU804 + "Micron_5300(HC)?_MTFDDA[KV](240|480|960|1T9|3T8|7T6)TD[STU]|" // tested with Micron_5300_MTFDDAK1T9TDS/D3MU001 + // Micron_5300HC_MTFDDAK960TDS/D3MN010 + "(Micron_5400_)?(EE|MT)FDDA[KV](240|480|960|1T9|3T8|7T6)TG[ABC]", // tested with Micron_5400_MTFDDAK1T9TGB/D4MU001, "", "", //"-v 1,raw48,Raw_Read_Error_Rate " - //"-v 5,raw48,Reallocated_Block_Count " + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " //"-v 9,raw24(raw8),Power_On_Hours " // raw24(raw8)?? //"-v 12,raw48,Power_Cycle_Count " "-v 170,raw48,Reserved_Block_Pct " // Percentage of remaining reserved blocks available @@ -464,14 +527,14 @@ const drive_settings builtin_knowndrives[] = { "-v 172,raw48,Erase_Fail_Count " "-v 173,raw48,Avg_Block-Erase_Count " "-v 174,raw48,Unexpect_Power_Loss_Ct " - //"-v 180,raw48,Reserved_Block_Count " // absolute count of remaining reserved blocks available + //"-v 180,raw48,Unused_Rsvd_Blk_Cnt_Tot " // absolute count of remaining reserved blocks available "-v 183,raw48,SATA_Int_Downshift_Ct " // SATA speed downshift count - //"-v 184,raw48,Error_Correction_Count " + //"-v 184,raw48,End-to-End_Error " //"-v 187,raw48,Reported_Uncorrect " // Number of UECC correction failures - //"-v 188,raw48,Command_Timeouts " + //"-v 188,raw48,Command_Timeout " //"-v 194,tempminmax,Temperature_Celsius " // 100 - degrees C, wraps: 101 reported as 255 - //"-v 195,raw48,Cumulativ_Corrected_ECC " - //"-v 196,raw48,Reallocation_Event_Ct " + //"-v 195,raw48,Hardware_ECC_Recovered " + //"-v 196,raw16(raw16),Reallocated_Event_Count " //"-v 197,raw48,Current_Pending_Sector " // Use the raw value //"-v 198,raw48,Offline_Uncorrectable " // Use the raw value //"-v 199,raw48,UDMA_CRC_Error_Count " // Use the raw value @@ -481,6 +544,7 @@ const drive_settings builtin_knowndrives[] = { "-v 211,raw48,Integ_Scan_Complete_Cnt " // Number of periodic data integrity scans completed "-v 212,raw48,Integ_Scan_Folding_Cnt " // Number of blocks reallocated by integrity scans "-v 213,raw48,Integ_Scan_Progress " // Current is percentage, raw is absolute number of superblocks scanned by the current integrity scan + "-v 246,raw48,Total_LBAs_Written " "-v 247,raw48,Host_Program_Page_Count " "-v 248,raw48,Bckgnd_Program_Page_Cnt" }, @@ -660,8 +724,7 @@ const drive_settings builtin_knowndrives[] = { "-v 241,raw48,Lifetime_Writes_GiB " "-v 242,raw48,Lifetime_Reads_GiB" }, - { - "StorFly CFast SATA 6Gbps SSDs", + { "StorFly CFast SATA 6Gbps SSDs", // http://datasheet.octopart.com/VSFCS2CC060G-100-Virtium-datasheet-82287733.pdf // tested with StorFly VSFCS2CC060G-100/0409-000 "StorFly VSFCS2C[CI](016|030|060|120|240)G-...", @@ -670,7 +733,7 @@ const drive_settings builtin_knowndrives[] = { "-v 192,raw48,Unsafe_Shutdown_Count " "-v 160,raw48,Uncorrectable_Error_Cnt " // 0729 - remaining in block life. In 0828 remaining is normalized to 100% then decreases - "-v 161,raw48,Spares_Remaining " + "-v 161,raw48,Spares_Remaining " "-v 241,raw48,Host_Writes_32MiB " "-v 242,raw48,Host_Reads_32MiB " "-v 169,raw48,Lifetime_Remaining% " @@ -679,47 +742,61 @@ const drive_settings builtin_knowndrives[] = { }, { "Phison Driven SSDs", // see MKP_521_Phison_SMART_attribute.pdf "BP4 mSATA SSD|" // MyDigital BP4, tested with BP4 mSATA SSD/S8FM06.9 + "Corsair Force LE200 SSD|" // tested with Corsair Force LE200 SSD/SBFM10, .../SBFM60.9 + "GIGABYTE GP-GSTFS31((120|240|256|480)G|100T)NTD|" // tested with GIGABYTE GP-GSTFS31120GNTD/SBFM61.3 "GOODRAM IRIDIUM PRO|" // tested with GOODRAM IRIDIUM PRO/SAFM01.5 - "IR-SSDPR-S25A-(120|240|480|960)|" // Goodram IRIDM, tested with IR-SSDPR-S25A-120/SBFM91.3, - // IR-SSDPR-S25A-240/SBFM91.2 + "IRP?-SSDPR-S25[AC]-(120|240|256|480|512|960|0[12]T)|" // Goodram IRIDM (PRO), tested with + // IR-SSDPR-S25A-120/SBFM91.3, IR-SSDPR-S25A-240/SBFM91.2, IRP-SSDPR-S25C-512/SCFM13.3, + // IRP-SSDPR-S25C-02T/SCFM13.2 + "KINGSTON O(C|M[48S])P0S3(64|128|256|512)B-[0A]0|" // tested with KINGSTON OCP0S364B-A0/SBFK62A3, + // KINGSTON OM4P0S3256B-A0/SBFK62A3, KINGSTON OM8P0S364B-A0/SBFK62A3, + // KINGSTON OMSP0S3128B-00/SBFK62A3 + "KINGSTON RBUSNS(4|8)180S3(32|64|128|256|512)GJ|" // RBU-SNSx180S3, tested with + // KINGSTON RBUSNS4180S3256GJ/SBFK61D1, KINGSTON RBUSNS8180S3512GJ/SBFK61D1 "KINGSTON SEDC400S37(400|480|800|960|1600|1800)G|" // DC400, tested with // KINGSTON SEDC400S37480G/SAFM02.[GH], KINGSTON SEDC400S37960G/SAFM32.I - "KINGSTON SEDC(450R|500[MR])(480|960|1920|3840)G|" // DC450R, DC500M/R, tested with + "KINGSTON SEDC(450R|500[MR])(480|960|1920|3840|7680)G|" // DC450R, DC500M/R, tested with // KINGSTON SEDC450R480G/SCEKH3. KINGSTON SEDC500M1920G/SCEKJ2.3, - // KINGSTON SEDC500R480G/SCEKJ2.3 + // KINGSTON SEDC500R480G/SCEKJ2.3, KINGSTON SEDC450R7680G/SCEKH3.4 + "KINGSTON SM2280S3G2(120)G|" // KINGSTON SM2280S3G2120G/SAFM01.R "KINGSTON SUV300S37A(120|240|480)G|" // UV300 SSD, tested with KINGSTON SUV300S37A120G/SAFM11.K "KINGSTON SKC310S3B?7A960G|" // SSDNow KC310, KINGSTON SKC310S37A960G/SAFM00.r "KINGSTON SKC400S37(128G|256G|512G|1T)|" // SSDNow KC400, KINGSTON SKC400S37128G "KINGSTON SV310S3(7A|D7|N7A|B7A)960G|" // SSDNow V310 "KINGSTON SHSS3B?7A(120|240|480|960)G|" // HyperX Savage - "KINGSTON ?SA400S37(120|240|480|960)G|" // Kingston A400 SSD, Phison S11 or + "KINGSTON SS200S330G|" // SSDNow S200, tested with KINGSTON SS200S330G/S8FM06.A + "KINGSTON ?SA400(M8|S37)(120|240|480|960)G|" // Kingston A400 SSD, Phison S11 or // Silicon Motion controller (see ticket #801), tested with // KINGSTON SA400S37240G/SBFK10D7, KINGSTON SA400S37120G/SBFK71E0, */SBFKB1D1 - // KINGSTON SA400S37480G/SBFK10D7 (two spaces) - "Patriot (Flare|Blast|Blaze|Burst)|" // tested with Patriot Flare/SBFM91.2, - // Patriot Blast/SAFM11.3, Patriot Blaze/S9FM02, Patriot Burst/SBFM11.2 - "PNY CS(13|22)11 (120|240|480|960)GB SSD|" // tested with PNY CS1311 120GB SSD/CS131122, - // PNY CS2211 240GB SSD/CS221016 - "SSD Smartbuy (60|120|240)GB|" // SSD Smartbuy 240GB/SBFM91.1 + // KINGSTON SA400S37480G/SBFK10D7 (two spaces), KINGSTON SA400M8240G/SBFK61E1 + "Patriot (Blast|Blaze|Flare)|" // tested with Patriot Blast/SAFM11.3, Patriot Blaze/S9FM02, + // Patriot Flare/SBFM91.2 + "Patriot Burst( (120|240|480|960)GB)?|" // tested with Patriot Burst/SBFM11.2, + // Patriot Burst 480GB/SBFMLA.5 + "PNY CS(900|1311|2211) (120|240|480|960)GB SSD|" // tested with PNY CS900 120GB SSD/CS900612, + // PNY CS900 240GB SSD/CS900613, PNY CS1311 120GB SSD/CS131122, PNY CS2211 240GB SSD/CS221016 + "PNY ELITE PSSD|" // tested with PNY ELITE PSSD/CS105P13 (240G) + "SSD Smartbuy (60|64|120|128|240|256|480|512|960|1024|2000)GB|" // PS3111-S11, tested with + // SSD Smartbuy 240GB/SBFM91.1, SSD Smartbuy 64GB/SBFM21.1 "SSD PHISON 256GB PS3110-S10C|" // tested with SSD PHISON 256GB PS3110-S10C/SAFM12.2 "SSDPR-CX400-(128|256|512|1024)|" // Goodram CX400, tested with SSDPR-CX400-512/SBFM61.3 - "SSM28(128|256|512)GPTCB3B-S11[24]61[123]", // tested with SSM28256GPTCB3B-S112612/SBFM61.2 + "TEAM L3 EVO SSD (120|240|480|960)GB|" // TEAM L3 EVO SSD 120GB/SBFM11.0 + "SSM28(128|256|512)GPTCB3B-S11[24]61[123]|" // tested with SSM28256GPTCB3B-S112612/SBFM61.2 + "SVM2S46(128|256|512)GNPI51UF", // tested with SVM2S46128GNPI51UF/SBFMH1.2 "", "", //"-v 1,raw48,Raw_Read_Error_Rate " "-v 2,raw48,Not_In_Use " "-v 3,raw48,Not_In_Use " - "-v 5,raw48,Not_In_Use " + "-v 5,raw48,Retired_Block_Count " "-v 7,raw48,Not_In_Use " "-v 8,raw48,Not_In_Use " - //"-v 9,raw24(raw8),Power_On_Hours " - "-v 5,raw48,Retired_Block_Count " //"-v 9,raw24(raw8),Power_On_Hours " "-v 10,raw48,Not_In_Use " //"-v 12,raw48,Power_Cycle_Count " "-v 167,raw48,Write_Protect_Mode " // DC500 "-v 168,raw48,SATA_Phy_Error_Count " "-v 169,raw48,Bad_Block_Rate " // DC500 - "-v 170,raw24/raw24:z54z10,Bad_Blk_Ct_Erl/Lat " // Early bad block/Later bad block + "-v 170,raw24/raw24:z54z10,Bad_Blk_Ct_Lat/Erl " // Later bad block/Early bad block (see #1642) "-v 172,raw48,Erase_Fail_Count " // DC500 "-v 173,raw16(avg16),MaxAvgErase_Ct " "-v 175,raw48,Not_In_Use " @@ -755,22 +832,21 @@ const drive_settings builtin_knowndrives[] = { "INTENSO SATA III SSD|" // tested with INTENSO SATA III SSD/SBFM11.2, .../SBFM81.3 "SATA SSD|" // tested with Supermicro SSD-DM032-PHI (SATA SSD/S9FM02.1), // PC Engines msata16d (SATA SSD/S9FM02.3), FoxLine flssd240x4s(SATA SSD/SBFM10.5) - "SPCC Solid State Disk", // Silicon Power A55, tested with SPCC Solid State Disk/SBFM61.2 - "S[89AB]FM[0-9][0-9]\\.[0-9]", + "SPCC Solid State Disk", // Silicon Power, tested with SPCC Solid State Disk/SBFD00.3, + // SPCC Solid State Disk/SBFM61.2, SPCC Solid State Disk/SBFMT1.3 + "S[89AB]F[DM][0-9T][0-9]\\.[0-9]", "", //"-v 1,raw48,Raw_Read_Error_Rate " "-v 2,raw48,Not_In_Use " "-v 3,raw48,Not_In_Use " - "-v 5,raw48,Not_In_Use " + "-v 5,raw48,Retired_Block_Count " "-v 7,raw48,Not_In_Use " "-v 8,raw48,Not_In_Use " - //"-v 9,raw24(raw8),Power_On_Hours " - "-v 5,raw48,Retired_Block_Count " //"-v 9,raw24(raw8),Power_On_Hours " "-v 10,raw48,Not_In_Use " //"-v 12,raw48,Power_Cycle_Count " "-v 168,raw48,SATA_Phy_Error_Count " - "-v 170,raw24/raw24:z54z10,Bad_Blk_Ct_Erl/Lat " // Early bad block/Later bad block + "-v 170,raw24/raw24:z54z10,Bad_Blk_Ct_Lat/Erl " // Later bad block/Early bad block (see #1642) "-v 173,raw16(avg16),MaxAvgErase_Ct " "-v 175,raw48,Not_In_Use " "-v 183,raw48,Unknown_Attribute " @@ -831,6 +907,7 @@ const drive_settings builtin_knowndrives[] = { { "Indilinx Barefoot_2/Everest/Martini based SSDs", "OCZ VERTEX[ -]PLUS|" // tested with OCZ VERTEX-PLUS/3.55, OCZ VERTEX PLUS/3.55 "OCZ-VERTEX PLUS R2|" // Barefoot 2, tested with OCZ-VERTEX PLUS R2/1.2 + "OCZ-OCTANE|" // Everest 1, tested with OCZ-OCTANE/1.13 "OCZ-PETROL|" // Everest 1, tested with OCZ-PETROL/3.12 "OCZ-AGILITY4|" // Everest 2, tested with OCZ-AGILITY4/1.5.2 "OCZ-VERTEX4", // Everest 2, tested with OCZ-VERTEX4/1.5 @@ -915,8 +992,7 @@ const drive_settings builtin_knowndrives[] = { "-v 249,raw48,Total_NAND_Prog_Ct_GiB " "-v 251,raw48,Total_NAND_Read_Ct_GiB" }, - { - "OCZ/Toshiba Trion SSDs", + { "OCZ/Toshiba Trion SSDs", "OCZ-TRION1[05]0|" // tested with OCZ-TRION100/SAFM11.2A, TRION150/SAFZ72.2 "TOSHIBA-TR150|" // tested with TOSHIBA-TR150/SAFZ12.3 "TOSHIBA Q300( Pro\\.)?", // tested with TOSHIBA Q300 Pro./JYRA0101 @@ -941,7 +1017,7 @@ const drive_settings builtin_knowndrives[] = { //"-v 5,raw16(raw16),Reallocated_Sector_Ct " //"-v 7,raw48,Seek_Error_Rate " // from InnoDisk iSMART Linux tool, useless for SSD //"-v 8,raw48,Seek_Time_Performance " - //"-v 9,raw48,Power_On_Hours " + //"-v 9,raw24(raw8),Power_On_Hours " //"-v 10,raw48,Spin_Retry_Count " //"-v 12,raw48,Power_Cycle_Count " "-v 168,raw48,SATA_PHY_Error_Count " @@ -963,7 +1039,7 @@ const drive_settings builtin_knowndrives[] = { //"-v 1,raw48,Raw_Read_Error_Rate " //"-v 2,raw48,Throughput_Performance " //"-v 3,raw16(avg16),Spin_Up_Time " - //"-v 5,raw48,Reallocated_Sector_Count " + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " "-v 7,raw48,Seek_Error_Rate " // ? "-v 8,raw48,Seek_Time_Performance " // ? //"-v 9,raw24(raw8),Power_On_Hours " @@ -1032,18 +1108,19 @@ const drive_settings builtin_knowndrives[] = { "-v 248,raw48,Remaining_Life " "-v 249,raw48,Spare_Blocks_Remaining" }, - { "Innodisk 3IE3/3ME3/3ME4 SSDs", // tested with 2.5" SATA SSD 3ME3/S15A19, CFast 3ME3/S15A19 + { "Innodisk 1IE3/3IE3/3ME3/3IE4/3ME4 SSDs", // tested with 2.5" SATA SSD 3ME3/S15A19, // InnoDisk Corp. - mSATA 3ME3/S15A19, mSATA mini 3ME3/S15A19, M.2 (S42) 3ME3, // SATA Slim 3ME3/S15A19, SATADOM-MH 3ME3/S15A19, SATADOM-ML 3ME3/S15A19, // SATADOM-MV 3ME3/S15A19, SATADOM-SL 3ME3/S15A19, SATADOM-SV 3ME3/S15A19, // SATADOM-SL 3IE3/S151019N, 2.5" SATA SSD 3IE3/S15C14i, CFast 3IE3/S15C14i, - // InnoDisk Corp. - mSATA 3IE3/S15C14i, Mini PCIeDOM 1IE3/S15C14i, + // InnoDisk Corp. - mSATA 3IE3/S15C14i, Mini PCIeDOM 1IE3/S15C14i, CFast 3ME3/S15A19 // mSATA mini 3IE3/S15C14i, M.2 (S42) 3IE3/S15C14i, SATA Slim 3IE3/S15C14i, // SATADOM-SH 3IE3 V2/S15C14i, SATADOM-SL 3IE3 V2/S15A19i, SATADOM-SV 3IE3 V2/S15C14i // mSATA 3ME4/L16711, M.2 (S42) 3ME4/L16711, SATADOM-MH 3ME4/L16B01, - // SATADOM-SH 3ME4/L16B01, SATADOM-SH Type C 3ME4/L16B01, SATADOM-SH Type D 3ME4/L16B01 - "(2.5\" SATA SSD|CFast|InnoDisk Corp\\. - mSATA|Mini PCIeDOM|mSATA( mini)?|" - "M\\.2 \\(S42\\)|SATA Slim|SATADOM-[MS][HLV]( Type [CD])?) 3([IM]E3|ME4)( V2)?", + // SATADOM-SH 3ME4/L16B01, SATADOM-SH Type C 3ME4/L16B01, SATADOM-SH Type D 3ME4/L16B01, + // mSATA 3IE4/L16B01Hi + "(2.5\" SATA SSD|CFast|Mini PCIeDOM|(InnoDisk Corp\\. - )?mSATA( mini)?) (1IE3|3[IM]E[34])( V2)?|" + "(M\\.2 \\(S42\\)|SATA Slim|SATADOM-[MS][HLV]( Type [CD])?) (1IE3|3[IM]E[34])( V2)?", "", "", //"-v 1,raw48,Raw_Read_Error_Rate " //"-v 2,raw48,Throughput_Performance " @@ -1076,9 +1153,9 @@ const drive_settings builtin_knowndrives[] = { "-v 241,raw48,Host_Writes_32MiB " "-v 242,raw48,Host_Reads_32MiB" }, - { "InnoDisk iCF 9000 CompactFlash Cards", // tested with InnoDisk Corp. - iCF9000 1GB/140808, - // ..., InnoDisk Corp. - iCF9000 64GB/140808 - "InnoDisk Corp\\. - iCF9000 (1|2|4|8|16|32|64)GB", + { "InnoDisk iCF 9000 / 1SE2 Cards", // tested with InnoDisk Corp. - iCF9000 1GB/140808, + // InnoDisk Corp. - iCF9000 64GB/140808, InnoDisk Corp. - EDC 1SE2 H 64GB/131216 + "InnoDisk Corp\\. - (iCF9000|EDC 1SE2 H) (1|2|4|8|16|32|64)GB", "", "", //"-v 1,raw48,Raw_Read_Error_Rate " //"-v 5,raw16(raw16),Reallocated_Sector_Ct " @@ -1101,8 +1178,9 @@ const drive_settings builtin_knowndrives[] = { "-v 241,raw48,Host_Writes_32MiB " "-v 242,raw48,Host_Reads_32MiB" }, - { "Intel X25-E SSDs", - "SSDSA2SH(032|064)G1.* INTEL", // G1 = first generation + { "Intel X25-E SSDs", // tested with + // INTELSSDSA2SH064G1IB 43W7659 44E9163IBM/447C8860 + "(INTEL)?SSDSA2SH(032|064)G1.* (.*IBM|INTEL)", // G1 = first generation "", "", //"-v 3,raw16(avg16),Spin_Up_Time " //"-v 4,raw48,Start_Stop_Count " @@ -1193,9 +1271,10 @@ const drive_settings builtin_knowndrives[] = { }, { "Intel 320 Series SSDs", // tested with INTEL SSDSA2CT040G3/4PC10362, // INTEL SSDSA2CW160G3/4PC10362, SSDSA2BT040G3/4PC10362, SSDSA2BW120G3A/4PC10362, - // INTEL SSDSA2BW300G3D/4PC10362, SSDSA2BW160G3L/4PC1LE04, SSDSA1NW160G3/4PC10362 - "INTEL SSDSA[12][BCN][WT](040|080|120|160|300|600)G3[ADL]?", - // 2B = 2.5" 7mm, 2C = 2.5" 9.5mm, 1N = 1.8" microSATA + // INTEL SSDSA2BW300G3D/4PC10362, SSDSA2BW160G3L/4PC1LE04, SSDSA1NW160G3/4PC10362, + // INTEL SSDSA2BW160G3H/4PC10365 + "INTEL SSDSA[12][BCN][WT](040|080|120|160|300|600)G3[ADHL]?", + // 2B = 2.5" 7mm, 2C = 2.5" 9.5mm, 1N = 1.8" microSATA, *H = HP OEM "", "", "-F nologdir " //"-v 3,raw16(avg16),Spin_Up_Time " @@ -1360,7 +1439,7 @@ const drive_settings builtin_knowndrives[] = { // https://www.intel.com/content/www/us/en/solid-state-drives/ssd-540s-series-spec.html // https://www.intel.com/content/www/us/en/solid-state-drives/ssd-540s-series-m2-spec.html { "Intel 540 Series SSDs", // INTEL SSDSC2KW120H6/LSF036C, INTEL SSDSC2KW480H6/LSF036C - "INTEL SSDSC[K2]KW(120H|180H|240H|360H|480H|010X)6", + "INTEL SSDSC[K2]KW(120H|180H|240H|360H|480H|010X)6", "", "", "-v 9,msec24hour32,Power_On_Hours_and_Msec " "-v 170,raw48,Available_Reservd_Space " @@ -1377,7 +1456,8 @@ const drive_settings builtin_knowndrives[] = { }, { "Intel 545s Series SSDs", // tested with INTEL SSDSCKKW512G8, INTEL SSDSC2KW512G8/LHF002C // SSDSCKKW128G8X1, SSDSCKKW256G8X1, SSDSCKKW512G8X1, SSDSCKKW010T8X1 - "INTEL SSDSC[2K]KW(128G|256G|512G|010T)8.*", + // INTEL SSDSCKKF512G8 SATA 512GB/LHFD05N + "INTEL SSDSC[2K]K[WF](128G|256G|512G|010T)8.*", "", "", //"-v 5,raw16(raw16),Reallocated_Sector_Ct " //"-v 9,raw24(raw8),Power_On_Hours " @@ -1407,8 +1487,9 @@ const drive_settings builtin_knowndrives[] = { }, { "Intel 730 and DC S35x0/3610/3700 Series SSDs", // tested with INTEL SSDSC2BP480G4, SSDSC2BB120G4/D2010355, // INTEL SSDSC2BB800G4T, SSDSC2BA200G3/5DV10250, SSDSC2BB080G6/G2010130, SSDSC2BX200G4/G2010110, - // INTEL SSDSC2BB016T6/G2010140, SSDSC2BX016T4/G2010140, SSDSC2BB150G7/N2010101 - "INTEL SSDSC(1N|2B)[ABPX]((080|100|120|150|160|200|240|300|400|480|600|800)G[3467][RT]?|(012|016)T[46])", + // INTEL SSDSC2BB016T6/G2010140, SSDSC2BX016T4/G2010140, SSDSC2BB150G7/N2010101, + // INTEL SSDSC2BB480H4/D2010380, INTEL SSDSC2BB240G4C/D201FJ14, INTEL SSDSC2BA800G3E/5DV10250 + "INTEL SSDSC(1N|2B)[ABPX]((080|100|120|150|160|200|240|300|400|480|600|800)[GH][3467][CERT]?|(012|016)T[46])", // A = S3700, B*4 = S3500, B*6 = S3510, P = 730, X = S3610 // Dell ships drives with model of the form SSDSC2BB120G4R "", "", @@ -1462,31 +1543,31 @@ const drive_settings builtin_knowndrives[] = { { "Intel DC S3110 Series SSDs", // Tested with INTEL SSDSCKKI256G8 "INTEL SSDSCKKI(128|256|512)G8", "", "", - //"-v 5,raw16(raw16),Reallocated_Sector_Ct " - //"-v 9,raw24(raw8),Power_On_Hours " - //"-v 12,raw48,Power_Cycle_Count " + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " "-v 170,raw48,Available_Reservd_Space " "-v 171,raw48,Program_Fail_Count " "-v 172,raw48,Erase_Fail_Count " - //"-v 173 is missing in official Intel doc" + //"-v 173 is missing in official Intel doc" "-v 174,raw48,Unexpect_Power_Loss_Ct " "-v 183,raw48,SATA_Downshift_Count " - //"-v 184,raw48,End-to-End_Error_Count " + //"-v 184,raw48,End-to-End_Error " "-v 187,raw48,Uncorrectable_Error_Cnt " - //"-v 190,tempminmax,Airflow_Temperature_Cel " - //"-v 192,raw48,Power-Off_Retract_Count " - //"-v 199,raw48,UDMA_CRC_Error_Count " + //"-v 190,tempminmax,Airflow_Temperature_Cel " + //"-v 192,raw48,Power-Off_Retract_Count " + //"-v 199,raw48,UDMA_CRC_Error_Count " "-v 225,raw48,Host_Writes_32MiB " "-v 226,raw48,Workld_Media_Wear_Indic " "-v 227,raw48,Workld_Host_Reads_Perc " "-v 228,raw48,Workload_Minutes " - //"-v 232,raw48,Available_Reservd_Space " - //"-v 233,raw48,Media_Wearout_Indicator " - //"-v 236 is missing in official Intel doc" + //"-v 232,raw48,Available_Reservd_Space " + //"-v 233,raw48,Media_Wearout_Indicator " + //"-v 236 is missing in official Intel doc" "-v 241,raw48,Host_Writes_32MiB " "-v 242,raw48,Host_Reads_32MiB " "-v 249,raw48,NAND_Writes_1GiB " - //"-v 252 is missing in official Intel doc" + //"-v 252 is missing in official Intel doc" }, { "Intel 3710 Series SSDs", // INTEL SSDSC2BA200G4R/G201DL2B (dell) "INTEL SSDSC2BA(200G|400G|800G|012T)4.?", @@ -1555,7 +1636,8 @@ const drive_settings builtin_knowndrives[] = { { "Intel S4510/S4610/S4500/S4600 Series SSDs", // INTEL SSDSC2KB480G7/SCV10100, // INTEL SSDSC2KB960G7/SCV10100, INTEL SSDSC2KB038T7/SCV10100, // INTEL SSDSC2KB038T7/SCV10121, INTEL SSDSC2KG240G7/SCV10100 - "INTEL SSDSC(2K|KK)(B|G)(240G|480G|960G|019T|038T)(7|8).?", + // INTEL SSDSC2KB480GZ/7CV10100 + "INTEL SSDSC(2K|KK)(B|G)(240G|480G|960G|019T|038T)(7|8|Z).?", "", "", //"-v 5,raw16(raw16),Reallocated_Sector_Ct " //"-v 9,raw24(raw8),Power_On_Hours " @@ -1630,34 +1712,35 @@ const drive_settings builtin_knowndrives[] = { "KINGSTON SUV400S37A?(120|240|480|960)G|" // tested with KINGSTON SUV400S37120G/0C3J96R9, // KINGSTON SUV400S37240G/0C3J96R9, KINGSTON SUV400S37240G/0C3K87RA, // KINGSTON SUV400S37120G/0C3K87RA - "KINGSTON SUV500(MS)?(120|240|480|960)G", // tested with KINGSTON SUV500120G/003056R6, + "KINGSTON SUV500(M[8S])?(120|240|480|960)G", // tested with KINGSTON SUV500120G/003056R6, // KINGSTON SUV500240G/003056R6, KINGSTON SUV500480G/003056RI, - // KINGSTON SUV500MS120G/003056RA, KINGSTON SUV500MS120G/003056RI + // KINGSTON SUV500MS120G/003056RA, KINGSTON SUV500MS120G/003056RI, + // KINGSTON SUV500M8120G/003056RI "", "", - // "-v 1,raw48,Raw_Read_Error_Rate " - // "-v 5,raw16(raw16),Reallocated_Sector_Ct " - // "-v 9,raw24(raw8),Power_On_Hours " - // "-v 12,raw48,Power_Cycle_Count " + //"-v 1,raw48,Raw_Read_Error_Rate " + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " "-v 100,raw48,Unknown_Kingston_Attr " "-v 101,raw48,Unknown_Kingston_Attr " "-v 170,raw48,Reserved_Block_Count " "-v 171,raw48,Program_Fail_Count " "-v 172,raw48,Erase_Fail_Count " "-v 174,raw48,Unexpect_Power_Loss_Ct " - // "-v 175,raw48,Program_Fail_Count_Chip,SSD " - // "-v 176,raw48,Erase_Fail_Count_Chip,SSD " - // "-v 177,raw48,Wear_Leveling_Count,SSD " - // "-v 178,raw48,Used_Rsvd_Blk_Cnt_Chip,SSD " - // "-v 180,raw48,Unused_Rsvd_Blk_Cnt_Tot,SSD " - // "-v 183,raw48,Runtime_Bad_Block " - // "-v 187,raw48,Reported_Uncorrect " - // "-v 194,tempminmax,Temperature_Celsius " - // "-v 195,raw48,Hardware_ECC_Recovered " - // "-v 196,raw16(raw16),Reallocated_Event_Count " - // "-v 197,raw48,Current_Pending_Sector " - // "-v 199,raw48,UDMA_CRC_Error_Count " + //"-v 175,raw48,Program_Fail_Count_Chip " + //"-v 176,raw48,Erase_Fail_Count_Chip " + //"-v 177,raw48,Wear_Leveling_Count " + //"-v 178,raw48,Used_Rsvd_Blk_Cnt_Chip " + //"-v 180,raw48,Unused_Rsvd_Blk_Cnt_Tot " + //"-v 183,raw48,Runtime_Bad_Block " + //"-v 187,raw48,Reported_Uncorrect " + //"-v 194,tempminmax,Temperature_Celsius " + //"-v 195,raw48,Hardware_ECC_Recovered " + //"-v 196,raw16(raw16),Reallocated_Event_Count " + //"-v 197,raw48,Current_Pending_Sector " + //"-v 199,raw48,UDMA_CRC_Error_Count " "-v 201,raw48,Unc_Read_Error_Rate " - // "-v 204,raw48,Soft_ECC_Correction " + //"-v 204,raw48,Soft_ECC_Correction " "-v 231,raw48,SSD_Life_Left " "-v 241,raw48,Host_Writes_GiB " "-v 242,raw48,Host_Reads_GiB " @@ -1678,12 +1761,13 @@ const drive_settings builtin_knowndrives[] = { "-v 234,raw24/raw24:w01234,Avg/Max_Erase_Count " "-v 235,raw24/raw24:w01z23,Good/Sys_Block_Count" }, - { "JMicron based SSDs", // JMicron JMF61x, JMF66x, JMF670 + { "JMicron/Maxiotek based SSDs", // JMicron JMF61x, JMF66x, JMF670 "ADATA S596 Turbo|" // tested with ADATA S596 Turbo 256GB SATA SSD (JMicron JMF616) - "ADATA SP600|" // tested with ADATA SP600/2.4 (JMicron JMF661) "ADATA SP310|" // Premier Pro SP310 mSATA, JMF667, tested with ADATA SP310/3.04 + "ADATA SP600(NS34)?|" // tested with ADATA SP600/2.4 (JMicron JMF661) "ADATA SX930|" // tested with ADATA SX930/6.8SE "APPLE SSD TS(064|128|256|512)C|" // Toshiba?, tested with APPLE SSD TS064C/CJAA0201 + "IM2S3138E-(128|256)GM-B|" // ADATA OEM, tested with IM2S3138E-128GM-B/DA002 "KingSpec KDM-SA\\.51-008GMJ|" // tested with KingSpec KDM-SA.51-008GMJ/1.092.37 (JMF605?) "KINGSTON SNV425S2(64|128)GB|" // SSDNow V Series (2. Generation, JMF618), // tested with KINGSTON SNV425S264GB/C091126a @@ -1693,6 +1777,7 @@ const drive_settings builtin_knowndrives[] = { "KINGSTON SVP?100S2B?(64|96|128|256|512)G|" // SSDNow V100/V+100 Series, // tested with KINGSTON SVP100S296G/CJR10202, KINGSTON SV100S2256G/D110225a "KINGSTON SV200S3(64|128|256)G|" // SSDNow V200 Series, tested with KINGSTON SV200S3128G/E120506a + "NT-(64|128|256|512|[12]T)|" // KingSpec NT, MAS0902A-B2C or CS1802A-B2C, tested with NT-512/T191212 "TOSHIBA THNS128GG4BBAA|" // Toshiba / Super Talent UltraDrive DX, // tested with Toshiba 128GB 2.5" SSD (built in MacBooks) "TOSHIBA THNSNC128GMLJ|" // tested with THNSNC128GMLJ/CJTA0202 (built in Toshiba Protege/Dynabook) @@ -1729,12 +1814,13 @@ const drive_settings builtin_knowndrives[] = { //"-v 241,raw48,Total_LBAs_Written " // FW SVN423b //"-v 242,raw48,Total_LBAs_Read " // FW SVN423b }, - { "Plextor M3/M5/M6 Series SSDs", // Marvell 88SS9174 (M3, M5S), 88SS9187 (M5P, M5Pro), 88SS9188 (M6M/S), + { "Plextor M3/M5/M6/M7 Series SSDs", // Marvell 88SS9174 (M3, M5S), 88SS9187 (M5P, M5Pro), 88SS9188 (M6M/S), // tested with PLEXTOR PX-128M3/1.01, PX-128M3P/1.04, PX-256M3/1.05, PX-128M5S/1.02, PX-256M5S/1.03, // PX-128M5M/1.05, PX-128M5S/1.05, PX-128M5Pro/1.05, PX-512M5Pro/1.06, PX-256M5P/1.01, PX-128M6S/1.03 // (1.04/5 Firmware self-test log lifetime unit is bogus, possibly 1/256 hours) - // PLEXTOR PX-256M6S+/1.00 - "PLEXTOR PX-(64|128|256|512|768)M(3P?|5[MPS]|5Pro|6[MS])\\+?", + // PLEXTOR PX-256M6S+/1.00, PLEXTOR PX-128M3/1.00, PLEXTOR PX-128M3/1.07, PLEXTOR PX-128M6V/1.04, + // PLEXTOR PX-128M6G-2242/1.01, PLEXTOR PX-512M7VC/1.05, PLEXTOR PX-512M8VC +/1.00 + "PLEXTOR ?PX-(64|128|256|512|768)M(3P?|5[MPS]|5Pro|6[GMSV]|[78]VC)(\\+|-.*| )?", "", "", //"-v 1,raw48,Raw_Read_Error_Rate " //"-v 5,raw16(raw16),Reallocated_Sector_Ct " @@ -1783,27 +1869,34 @@ const drive_settings builtin_knowndrives[] = { "MZ7PC(512|256|128|064)HA(GH|FU|DR)-000.*|" // probably PM830, tested with SAMSUNG MZ7PC128HAFU-000L1/CXM04L1Q "Samsung SSD 840 (PRO )?Series|" // tested with Samsung SSD 840 PRO Series 128GB/DXM04B0Q, // Samsung SSD 840 Series/DXT06B0Q - "Samsung SSD 8[456]0 EVO (mSATA |M\\.2 )?((120|250|500|750)G|[12]T)B|" // tested with + "Samsung SSD 8[4-7]0 EVO (mSATA |M\\.2 )?((120|250|500|750)G|[124]T)B|" // tested with // Samsung SSD 840 EVO (120|250|500|750)GB/EXT0AB0Q, // Samsung SSD 840 EVO (120|250)GB/EXT0BB6Q, 1TB/EXT0BB0Q, 120GB mSATA/EXT41B6Q, // Samsung SSD 850 EVO 250GB/EMT01B6Q, Samsung SSD 850 EVO M.2 250GB/EMT21B6Q, // Samsung SSD 850 EVO mSATA 120GB/EMT41B6Q, Samsung SSD 850 EVO 2TB/EMT02B6Q, // Samsung SSD 860 EVO 250GB/RVT01B6Q, Samsung SSD 860 EVO mSATA 250GB/RVT41B6Q, // Samsung SSD 860 EVO 500GB/RVT01B6Q, Samsung SSD 860 EVO mSATA 500GB/RVT41B6Q, - // Samsung SSD 860 EVO mSATA 1TB/RVT41B6Q, Samsung SSD 860 EVO 2TB/RVT01B6Q - "Samsung SSD 8[56]0 PRO ((128|256|512)G|1T)B|" // tested with Samsung SSD 850 PRO 128GB/EXM01B6Q, - // Samsung SSD 850 PRO 1TB/EXM01B6Q, Samsung SSD 860 PRO 256GB/RVM01B6Q, - // Samsung SSD 860 PRO 512GB/RVM01B6Q, Samsung SSD 860 PRO 1TB/RVM01B6Q - "SAMSUNG MZ7PA256HMDR-.*|" // PM810 (470 Series), tested with SAMSUNG MZ7PA256HMDR-010H1/AXM07H1Q + // Samsung SSD 860 EVO mSATA 1TB/RVT41B6Q, Samsung SSD 860 EVO 2TB/RVT01B6Q, + // Samsung SSD 860 EVO 4TB/RVT04B6Q, Samsung SSD 870 EVO 1TB/SVT01B6Q + "Samsung SSD 8[56]0 PRO ((128|256|512)G|[124]T)B|" // tested with Samsung SSD 850 PRO 128GB/EXM01B6Q, + // Samsung SSD 850 PRO 1TB/EXM01B6Q, Samsung SSD 850 PRO 2TB/EXM02B6Q, + // Samsung SSD 860 PRO 256GB/RVM01B6Q, Samsung SSD 860 PRO 512GB/RVM01B6Q, + // Samsung SSD 860 PRO 1TB/RVM01B6Q + "Samsung SSD 8[67]0 QVO [1248]TB|" // tested with Samsung SSD 860 QVO 1TB/RVQ02B6Q, + // Samsung SSD 860 QVO 2TB/RVQ01B6Q, Samsung SSD 870 QVO 4TB/SVQ01B6Q + "Samsung SSD 883 DCT ((240|480|960)G|(1\\.92|3\\.84)T)B|" // tested with + // Samsung SSD 883 DCT 480GB/HXT7404Q, Samsung SSD 883 DCT 3.84TB/HXT7404Q "Samsung SSD 845DC EVO .*|" // Samsung SSD 845DC EVO 960GB/EXT03X3Q + "SAMSUNG MZ7PA256HMDR-.*|" // PM810 (470 Series), tested with SAMSUNG MZ7PA256HMDR-010H1/AXM07H1Q "SAMSUNG MZ[7M]PC(032|064|128|256|512)HBCD-.*|" // PM830, tested with SAMSUNG MZMPC032HBCD-000L1/CXM12L1Q "SAMSUNG MZ7TD(128|256)HAFV-.*|" // 840 Series, tested with SAMSUNG MZ7TD256HAFV-000L7/DXT06L6Q - "SAMSUNG MZMTD(128|256|512)HAGL-.*|" // PM841, tested with SAMSUNG MZMTD512HAGL-00000/DXT4200Q - "SAMSUNG MZ7TD512HAGM-.*|" // Another PM841, SAMSUNG MZ7TD512HAGM-000L1/DXT06L0Q - "SAMSUNG MZ7WD((120|240)H[AC]FV|480HAGM|960HAGP)-00003|" // SM843T Series, tested with - // SAMSUNG MZ7WD120HAFV-00003/DXM85W3Q, SAMSUNG MZ7WD120HCFV-00003/DXM9203Q - "SAMSUNG MZ[7N]TE(128|256|512)HMHP-.*|" // PM851, tested with SAMSUNG MZ7TE256HMHP-000L7/EXT09L6Q, - // SAMSUNG MZNTE256HMHP-000H1/EXT22H0Q + "SAMSUNG MZ[7M]TD(128|256|512)HA[GF][LMV]-.*|" // PM841, tested with SAMSUNG MZMTD512HAGL-00000/DXT4200Q, + // SAMSUNG MZ7TD512HAGM-000L1/DXT06L0Q, SAMSUNG MZMTD128HAFV-000L1/DXT43L0Q + "SAMSUNG MZ7WD((120|240)H[AC]FV|480H[AC]GM|960H[AC]GP)-.*|" // SM843T(N?) Series, tested with + // SAMSUNG MZ7WD120HAFV-00003/DXM85W3Q, SAMSUNG MZ7WD120HCFV-00003/DXM9203Q, + // SAMSUNG MZ7WD960HCGP-000PU/DXM9BW4Q (SM843TN?) + "SAMSUNG MZ[7N]TE(128|256|512)HM(HP|JH)-.*|" // PM851, tested with SAMSUNG MZ7TE256HMHP-000L7/EXT09L6Q, + // SAMSUNG MZNTE256HMHP-000H1/EXT22H0Q, SAMSUNG MZNTE512HMJH-000L2/EXT26L0Q "SAMSUNG MZMPF(032|064)HCFV-.*|" // CM851 mSATA, tested with SAMSUNG MZMPF032HCFV-000H1/FXM42H2Q "SAMSUNG MZ7GE(240HMGR|(480|960)HMHP)-00003|" // SM853T Series, tested with // SAMSUNG MZ7GE240HMGR-00003/EXT0303Q @@ -1814,13 +1907,18 @@ const drive_settings builtin_knowndrives[] = { "(SAMSUNG )?MZ7KM(120|240|480|960|1T9)H[AM](FD|GR|H[PQ]|J[MP])(-.*|0D3)|" // SM863(a), tested with // SAMSUNG MZ7KM480HAHP-0E005/GXM1003Q, SAMSUNG MZ7KM480HMHQ-00005/GXM5104Q, // SAMSUNG MZ7KM960HMJP-00005/GXM5304Q, MZ7KM960HMJP0D3/GD53 (Dell) + "SAMSUNG MZ[7N]LH(128|256|512|1T0)H[AB](JD|HQ|L[BU])-.*|" // PM881, tested with + // SAMSUNG MZ7LH512HALU-00000/RVT0200Q "SAMSUNG MZ7LH(240|480|960|1T9|3T8|7T6)H[AM](HQ|JR|LT|LA)-.*|" //PM883, tested with SAMSUNG MZ7LH960HAJR-00005 + "SAMSUNG MZ7L3(240|480|960|1T9|3T8|7T6)H(B[LN][AT]|CHQ|CJR)-.*|" // PM893/897, tested with + // SAMSUNG MZ7L3240HCHQ-00A07/JXTC104Q, SAMSUNG MZ7L3480HCHQ-00A07/JXTC104Q, + // SAMSUNG MZ7L3480HBLT-00A07/JXTE004Q, SAMSUNG MZ7L33T8HBLT-00A07/JXTC104Q "SAMSUNG MZ7KH(240|480|960|1T9|3T8)HA(HQ|JR|LS)-.*|" //SM883 - "SAMSUNG MZN(LF|TY)(128|256)H[CD]HP-.*|" // CM871/871a, tested with SAMSUNG MZNLF128HCHP-000H1/FXT21H1Q, - // SAMSUNG MZNTY256HDHP-000/MAT21K0Q - "SAMSUNG MZ[7N]LN(128|256|512|1T0)H[ACM](GR|HP|HQ|J[HPQ]|LR)-.*|" // PM871/871a/b, tested with + "SAMSUNG MZ[7N](LF|TY)(128|192|256)H[CD](GS|HP)-.*|" // CM871/871a, tested with SAMSUNG MZNLF128HCHP-000H1/FXT21H1Q, + // SAMSUNG MZNTY256HDHP-000/MAT21K0Q, SAMSUNG MZ7LF192HCGS-000L1/FXT03L1Q + "SAMSUNG MZ[7NY]LN(128|256|512|1T0)H[ACM](GR|HP|HQ|J[HPQ]|LR)-.*|" // PM871/871a/b, tested with // SAMSUNG MZ7LN128HCHP-00000/EMT0100Q, SAMSUNG MZ7LN256HAHQ-000H1/MVT03H6Q, - // SAMSUNG MZNLN256HMHQ-000H1/MAV21H3Q + // SAMSUNG MZNLN256HMHQ-000H1/MAV21H3Q, SAMSUNG MZYLN256HCHP-000L2/EMT63L0Q "SAMSUNG SSD PM871 .*|" // SAMSUNG SSD PM871 2.5 7mm 256GB/EMT02D0Q // SAMSUNG MZ7LN256HMJP-00000/MAV0100Q, SAMSUNG MZ7LN512HMJP-00000/MAV0100Q "SAMSUNG MZHPV(128|256|512)HDG(L|M)-.*|" // SM951, tested with SAMSUNG MZHPV512HDGL-00000/BXW2500Q, @@ -1851,26 +1949,27 @@ const drive_settings builtin_knowndrives[] = { //"-v 194,tempminmax,Temperature_Celsius " "-v 195,raw48,ECC_Error_Rate " //"-v 196,raw16(raw16),Reallocated_Event_Count " + //"-v 197,raw48,Current_Pending_Sector " // PM893 //"-v 198,raw48,Offline_Uncorrectable " "-v 199,raw48,CRC_Error_Count " "-v 201,raw48,Supercap_Status " - "-v 202,raw48,Exception_Mode_Status " - //"-v 233,raw48,Media_Wearout_Indicator // PM851, 840 + "-v 202,raw48,Exception_Mode_Status " // PM893 + //"-v 233,raw48,Media_Wearout_Indicator " // PM851, 840 "-v 234,raw48,Unknown_Samsung_Attr " // PM851, 840 - "-v 235,raw48,POR_Recovery_Count " // PM851, 830/840/850 + "-v 235,raw48,POR_Recovery_Count " // PM851, 830/840/850, PM893 "-v 236,raw48,Unknown_Samsung_Attr " // PM851, 840 "-v 237,raw48,Unknown_Samsung_Attr " // PM851, 840 "-v 238,raw48,Unknown_Samsung_Attr " // PM851, 840 //"-v 241,raw48,Total_LBAs_Written " //"-v 242,raw48,Total_LBAs_Read " // PM851, SM841N - "-v 243,raw48,SATA_Downshift_Ct " // PM863 - "-v 244,raw48,Thermal_Throttle_St " // PM863 - "-v 245,raw48,Timed_Workld_Media_Wear " // PM863 - "-v 246,raw48,Timed_Workld_RdWr_Ratio " // PM863 - "-v 247,raw48,Timed_Workld_Timer " // PM863 - "-v 249,raw48,Unknown_Samsung_Attr " // CM871a + "-v 243,raw48,SATA_Downshift_Ct " // PM863, PM893 + "-v 244,raw48,Thermal_Throttle_St " // PM863, PM893 + "-v 245,raw48,Timed_Workld_Media_Wear " // PM863, PM893 + "-v 246,raw48,Timed_Workld_RdWr_Ratio " // PM863, PM893 + "-v 247,raw48,Timed_Workld_Timer " // PM863, PM893 + "-v 249,raw48,NAND_Writes_1GiB " // CM871a, PM871 "-v 250,raw48,SATA_Iface_Downshift " // from the spec - "-v 251,raw48,NAND_Writes" // PM863 + "-v 251,raw48,NAND_Writes" // PM863, PM893 }, { "Marvell based SanDisk SSDs", "SanDisk SD5SG2[0-9]*G1052E|" // X100 (88SS9174), tested with SanDisk SD5SG2256G1052E/10.04.01 @@ -1879,17 +1978,22 @@ const drive_settings builtin_knowndrives[] = { "SanDisk SD7S[BN]6S-?(128|256|512)G(1122|-1006)|" // X300 (88SS9189?), tested with // SanDisk SD7SB6S128G1122/X3310000, SanDisk SD7SN6S-512G-1006/X3511006 "SanDisk SD8S[BN]8U-?((128|256|512)G|1T00)(1122|-1006)|" // X400 (88SS1074), tested with SanDisk SD8SB8U128G1122/X4120000 - "SanDisk SD9S[BN]8W-?((128|256|512)G|[12]T00)1122|" // X600, tested with SanDisk SD9SB8W128G1122/X6107000 + "SanDisk SD9S[BN]8W-?((128|256|512)G|[12]T00)(1122|-1006)|" // X600, tested with SanDisk SD9SB8W128G1122/X6107000, SD9SB8W-512G-1006/X6103006 + // SanDisk SD9SB8W1T001122/X6107000, SD9SB8W256G1122/X6107000 + "SanDisk SDSSDA-((120|240|480)G|[12]T00)|" // Plus, tested with SanDisk SDSSDA-2T00/411040RL "SanDisk SDSSDHP[0-9]*G|" // Ultra Plus (88SS9175), tested with SanDisk SDSSDHP128G/X23[01]6RL "SanDisk (SDSSDHII|Ultra II )[0-9]*GB?|" // Ultra II (88SS9190/88SS9189), tested with // SanDisk SDSSDHII120G/X31200RL, SanDisk Ultra II 960GB/X41100RL "SanDisk SDSSDH2(128|256)G|" // SanDisk SDSSDH2128G/X211200 - "SanDisk SDSSDH3(250|500|1000|1024|2000)G|" // Ultra 3D, tested with SanDisk SDSSDH3250G/X61170RL, - // SanDisk SDSSDH3500G/X61110RL, SanDisk SDSSDH31024G/X6107000 + "SanDisk SDSSDH3((250|500|1000|1024|2000)G| [124]T00)|" // Ultra 3D, tested with SanDisk SDSSDH3250G/X61170RL, + // SanDisk SDSSDH3500G/X61110RL, SanDisk SDSSDH31024G/X6107000, SanDisk SDSSDH3 2T00/411040RL, + // SanDisk SDSSDH3 4T00/411040RL, SanDisk SDSSDH3 1T00/415020RL "SanDisk SDSSDXPS?[0-9]*G|" // Extreme II/Pro (88SS9187), tested with SanDisk SDSSDXP480G/R1311, // SanDisk SDSSDXPS480G/X21200RL - "SanDisk SSD PLUS (120|240|480|1000) ?GB|" // Plus (88SS1074), tested with SanDisk SSD PLUS 120 GB/UE3000RL, + "SanDisk SSD G5 BICS4|" // WD Blue SSD WDS100T2B0A (#1378), tested with SanDisk SSD G5 BICS4/415000WD + "SanDisk SSD PLUS (120|240|480|[12]000) ?GB|" // Plus (88SS1074), tested with SanDisk SSD PLUS 120 GB/UE3000RL, // SanDisk SSD PLUS 120 GB/UE4500RL, SanDisk SSD PLUS 1000GB/UH4400RL + // SanDisk SSD PLUS 2000GB/UP4504RL "SSD SATAIII 16GB", // SSD SATAIII 16GB/i221100 (see #923) "", "", //"-v 5,raw16(raw16),Reallocated_Sector_Ct " @@ -1900,6 +2004,7 @@ const drive_settings builtin_knowndrives[] = { "-v 167,raw48,Min_Bad_Block/Die " "-v 168,raw48,Maximum_Erase_Cycle " "-v 169,raw48,Total_Bad_Block " + "-v 170,raw48,Unknown_Marvell_Attr " // SDSSDH3 4T00 "-v 171,raw48,Program_Fail_Count " "-v 172,raw48,Erase_Fail_Count " "-v 173,raw48,Avg_Write/Erase_Count " @@ -1917,7 +2022,7 @@ const drive_settings builtin_knowndrives[] = { "-v 234,raw48,Perc_Write/Erase_Ct_BC " "-v 241,raw48,Total_Writes_GiB " "-v 242,raw48,Total_Reads_GiB " - //"-v 243,raw48,Unknown_Attribute " + "-v 243,raw48,Unknown_Marvell_Attr " "-v 244,raw48,Thermal_Throttle " "-v 249,raw48,TLC_NAND_GB_Writes" }, @@ -1929,7 +2034,7 @@ const drive_settings builtin_knowndrives[] = { "SanDisk SSD i100 [0-9]*GB|" // tested with SanDisk SSD i100 8GB/11.56.04, 24GB/11.56.04 "SanDisk SSD U100 ([0-9]*GB|SMG2)|" // tested with SanDisk SSD U100 8GB/10.56.00, 256GB/10.01.02, SMG2/10.56.04 "SanDisk SSD U110 (8|16|24|32|64|128)GB|" // tested with SanDisk SSD U110 32GB/U221000 - "SanDisk SDSA6MM-.*|" // tested with SanDisk SDSA6MM-016G-1006/U221006 + "SanDisk SDSA6[GM]M-[0-9]*G-.*|" // tested with SanDisk SDSA6GM-016G-1006/U221006, SanDisk SDSA6MM-016G-1006/U221006 "SanDisk SD7[SU]B[23]Q(064|128|256|512)G.*", // tested with SD7SB3Q064G1122/SD7UB3Q256G1122/SD7SB3Q128G/SD7UB2Q512G1122 "", "", //"-v 5,raw16(raw16),Reallocated_Sector_Ct " @@ -1949,63 +2054,66 @@ const drive_settings builtin_knowndrives[] = { //"-v 242,raw48,Total_LBAs_Read " "-v 244,raw48,Thermal_Throttle " }, - // SDLF1DAR-480G-1HAW/ZR07RE41 + // SDLF1DAR-480G-1HAW/ZR07RE41 // SDLF1DAR-480G-1JA1/RP41ZH06 { "Sandisk SATA Cloudspeed Max and GEN2 ESS SSDs", - "SD[A-Z0-9]{2}[1-3][A-Z]{3}-?[0-9]{3}[GT]-?1[A-Z0-9]{3}", - "","", - "-v 13,raw48,Lifetime_UECC_Ct " - "-v 32,raw48,Lifetime_Write_AmpFctr " - "-v 33,raw48,Write_AmpFctr " - "-v 170,raw48,Reserve_Erase_BlkCt " - "-v 171,raw48,Program_Fail_Ct " - "-v 172,raw48,Erase_Fail_Ct " - "-v 173,raw48,Percent_Life_Used " - "-v 174,raw48,Unexpect_Power_Loss " - "-v 175,raw48,Lifetime_Die_Failure_Ct " - "-v 177,raw48,Lifetime_Remaining% " - "-v 178,raw48,SSD_LifeLeft(0.01%) " - "-v 180,raw48,Undetected_Data_Err_Ct " - "-v 183,raw48,LT_Link_Rate_DwnGrd_Ct " - "-v 191,raw48,Clean_Shutdown_Ct " - "-v 192,raw48,Unclean_Shutdown_Ct " - "-v 196,raw48,Lifetime_Retried_Blk_Ct " - "-v 204,raw48,Average_Block-Erase_Ct " - "-v 205,raw48,Read_Retry_Enable_Ct " - "-v 206,raw48,Successful_RaidRecov_Ct " - "-v 207,raw48,Trimmed_Sector_Ct " - "-v 211,raw48,Read_Disturb_ReallocEvt " - "-v 233,raw48,Lifetime_Nand_Writes " - "-v 235,raw48,Capacitor_Health " - "-v 244,raw48,Therm_Throt_Activation " - "-v 245,raw48,Drive_Life_Remaining% " - "-v 253,raw48,SPI_Test_Remaining " - }, - { "Sandisk SATA CS1K GEN1 ESS SSDs", - "SD[A-Z0-9]{2}[NO][A-Z0-9]{3}-?[0-9]{3}[GT]-?1[A-Z0-9]{3}", - "","", - "-v 1,raw48,UECC_Ct " - "-v 2,raw48,Internal_File_Check " - "-v 5,raw16(raw16),Retried_Blk_Ct " - "-v 32,raw48,Write_Ampflication " - "-v 170,raw48,Reserve_Blk_Remaining " - "-v 171,raw48,Program_Fail_Ct " - "-v 172,raw48,Erase_Fail_Ct " - "-v 173,raw48,Drive_Life_Used% " - "-v 174,raw48,Unexpect_PwrLoss_Ct " - "-v 175,raw48,PwrLoss_ProtectionFail " - "-v 177,raw48,DriveLife_Remaining% " - "-v 178,raw48,SSD_Life_Left " - "-v 180,raw48,End_to_End_Err_Detect " - "-v 190,raw48,Drive_Temp_Warning " - "-v 195,raw48,Uncorrectable_Err_Ct " - "-v 202,raw48,Exception_Mode_Status " - "-v 233,raw48,Number_Of_Write_Ct " - "-v 245,raw48,DriveLife_Used% " - }, + "SD[A-Z0-9]{2}[1-3][A-Z]{3}-?[0-9]{3}[GT]-?1[A-Z0-9]{3}", + "","", + "-v 13,raw48,Lifetime_UECC_Ct " + "-v 32,raw48,Lifetime_Write_AmpFctr " + "-v 33,raw48,Write_AmpFctr " + "-v 170,raw48,Reserve_Erase_BlkCt " + "-v 171,raw48,Program_Fail_Ct " + "-v 172,raw48,Erase_Fail_Ct " + "-v 173,raw48,Percent_Life_Used " + "-v 174,raw48,Unexpect_Power_Loss " + "-v 175,raw48,Lifetime_Die_Failure_Ct " + "-v 177,raw48,Lifetime_Remaining% " + "-v 178,raw48,SSD_LifeLeft(0.01%) " + "-v 180,raw48,Undetected_Data_Err_Ct " + "-v 183,raw48,LT_Link_Rate_DwnGrd_Ct " + "-v 191,raw48,Clean_Shutdown_Ct " + "-v 192,raw48,Unclean_Shutdown_Ct " + "-v 196,raw48,Lifetime_Retried_Blk_Ct " + "-v 204,raw48,Average_Block-Erase_Ct " + "-v 205,raw48,Read_Retry_Enable_Ct " + "-v 206,raw48,Successful_RaidRecov_Ct " + "-v 207,raw48,Trimmed_Sector_Ct " + "-v 211,raw48,Read_Disturb_ReallocEvt " + "-v 233,raw48,Lifetime_Nand_Writes " + "-v 235,raw48,Capacitor_Health " + "-v 244,raw48,Therm_Throt_Activation " + "-v 245,raw48,Drive_Life_Remaining% " + "-v 253,raw48,SPI_Test_Remaining " + }, + { "Sandisk SATA CS1K GEN1 ESS SSDs", + "SD[A-Z0-9]{2}[NO][A-Z0-9]{3}-?[0-9]{3}[GT]-?1[A-Z0-9]{3}", + "","", + "-v 1,raw48,UECC_Ct " + "-v 2,raw48,Internal_File_Check " + "-v 5,raw16(raw16),Retried_Blk_Ct " + "-v 32,raw48,Write_Ampflication " + "-v 170,raw48,Reserve_Blk_Remaining " + "-v 171,raw48,Program_Fail_Ct " + "-v 172,raw48,Erase_Fail_Ct " + "-v 173,raw48,Drive_Life_Used% " + "-v 174,raw48,Unexpect_PwrLoss_Ct " + "-v 175,raw48,PwrLoss_ProtectionFail " + "-v 177,raw48,DriveLife_Remaining% " + "-v 178,raw48,SSD_Life_Left " + "-v 180,raw48,End_to_End_Err_Detect " + "-v 190,raw48,Drive_Temp_Warning " + "-v 195,raw48,Uncorrectable_Err_Ct " + "-v 202,raw48,Exception_Mode_Status " + "-v 233,raw48,Number_Of_Write_Ct " + "-v 245,raw48,DriveLife_Used% " + }, { "Silicon Motion based SSDs", - "ADATA (SP550|SU[89]00)|" // tested with ADATA SP550/O0803B5a, ADATA SU800/Q0913A, ADATA SU800/R0427A, - // ADATA SU800/R0918B, ADATA SU900/Q0125A, ADATA SU900/Q0710B + "ADATA_IMSS332-((008|016|032|064|128|256|512)G|001T)[AEMT]P?|" // tested with ADATA_IMSS332-128GTP/Q0810B + "ADATA (SP550|SU(650(NS38)?|655|[89]00))|" // tested with ADATA SP550/O0803B5a, ADATA SU650/S0212B0, + // ADATA SU650/V8X01c45, ADATA SU650/V8X21c64, ADATA SU650NS38/P191202a, ADATA SU655/V8X01c55, + // ADATA SU800/Q0913A, ADATA SU800/R0427A, ADATA SU800/R0918B, ADATA SU900/Q0125A, ADATA SU900/Q0710B + "CORSAIR FORCE LX SSD|" // tested with CORSAIR FORCE LX SSD/N0307A "CHN mSATAM3 (128|256|512)|" // Zheino M3, tested with CHN mSATAM3 128/Q1124A0 "CIS 2S M305 (16|32|64|128|256)GB|" // Ceroz M305, tested with CIS 2S M305 64GB/P0316B "CT(120|250|500|1000)BX100SSD1|" // Crucial BX100, tested with CT250BX100SSD1/MU02, @@ -2013,43 +2121,56 @@ const drive_settings builtin_knowndrives[] = { "CT(240|480|960)BX200SSD1|" // Crucial BX200 Solid State Drive, tested with CT480BX200SSD1/MU02.6 "DREVO X1 SSD|" // tested with DREVO X1 SSD/Q0111A "Drevo X1 pro (64|128|256)G|" // tested with Drevo X1 pro 64G/Q0303B - "JAJS500M(120|240|480|960)C-1|" // J&A LEVEN JS500, tested with JAJS500M120C-1/P0614D + "JAJS[56]00M((12[08]|240|256|480|512|960)C|1TB)(-1)?|" // J&A LEVEN JS500/600 (Intenso TOP), tested with + // JAJS500M120C-1/P0614D, JAJS600M1TB/T0529A0, JAJS600M256C/U0803A0 "KingDian S100 (32|64)GB|" // SM2244LT, tested with KingDian S100 32GB/0311A "KingDian S(200|280|400) ((60|120|240|480)GB|1TB)|" // SM2256EN, tested with KingDian S200 60GB/R0724A0 // KingDian S280 120GB/Q0526A, KingDian S280 1TB/S0509A0, KingDian S400 120GB/Q0607A "KingSpec KSD-[PS]A25\\.[1-9]-(016|032|064|128)(MS|SJ)|" // tested with KingSpec KSD-PA25.6-064MS/20140803 - "KINGSTON SKC600(256|512|1024|2048)G|" // SM2259, tested with KINGSTON SKC600256G/S4500105 + "KINGSTON SKC600(MS)?(256|512|1024|2048)G|" // KC600 MS=mSATA, tested with KINGSTON SKC600256G/S4500105, + // KINGSTON SKC600MS256G/S4500107 "LITEON LMH-(128|256|512)V2M-.*|" // tested with LITEON LMH-256V2M-11 MSATA 256GB/FM8110C "LITEON LCH-(128|256V|512)2S-.*|" // tested with LITEON LCH-256V2S-HP/2C02 "MKNSSDRE(1TB|2TB|512GB|500GB|256GB|250GB)|" // tested with MKNSSDRE256GB/N1007C - "MKNSSDTR(240|500|250|120|480|240)GB(-LT)?|" // tested with MKNSSDTR500GB/O1126A + "MKNSSD(S2|TR)(12[08]|2[45]0|480|500)GB(-(3DL|LT))?|" // Mushkin, tested with MKNSSDS2500GB/T0818A0, + // MKNSSDTR500GB/O1126A, MKNSSDTR128GB-3DL/Q0616B0 + "NFN025SA31T-.*|"// Neo Forza (?), from HP Laptop, tested with NFN025SA31T-6000000/S0628A0 "OWC Envoy Pro|" // tested with OWC Envoy Pro/R0522A0 (0x1e91:0xa2a5) "Patriot P200 ((128|256|512)GB|[12]TB)|" // tested with Patriot P200 256GB/S1022A0 "R3SL(120|240|480|960)G|" // AMD Radeon SSDs, tested with R3SL240G/P0422C "Ramsta SSD S800 (120|240|480)GB|" // SM2258G, tested with Ramsta SSD S800 480GB/RS81V0 + "SED2QII-LP SATA SSD ((64|128|256|512)GB|[12]TB)|" // ACPI SED2QII-LP, tested with + // SED2QII-LP SATA SSD 64GB/S0410A "T60|" // KingSpec T60, tested with T60/20151120 "TCSUNBOW [MX]3 (60|120|240)GB|" // TC-Sunbow M3/X3, tested with TCSUNBOW M3 240GB/R0327B0, - // TCSUNBOW X3 120GB/R1211A0 - "TEAM( T253T|L5Lite3)D(120G|240G|480G|1T)|" // Team Group L5Lite 3D, tested with - // TEAML5Lite3D240G/R0302A0, TEAM T253TD480G/Q0410A - "TS((16|32|64|128|256|512)G|1T)(SSD|MSA)(370S?|420[IK]?)|" // Transcend SSD370/420 SATA/mSATA, TS6500, - // tested with TS32GMSA370/20140402, TS16GMSA370/20140516, TS64GSSD370/20140516, - // TS256GSSD370/N0815B, TS256GSSD370S/N1114H, TS512GSSD370S/N1114H, TS32GSSD420I/N1114H, - // TS32GSSD420K/P1225CE + // TCSUNBOW X3 120GB/R1211A0 + "TEAM( T253(TD|X6)|L5Lite3D)((120|240|256|480|512)G|[12]T)|" // TEAMGROUP, tested with + // TEAML5Lite3D240G/R0302A0 (L5Lite 3D), TEAM T253TD480G/Q0410A, TEAM T253X6256G/U1014A0 (CX2) + "TS((16|32|64|128|256|512)G|1T)(SSD|MS[AM])(230S?|3[67]0[SI]?|420[IK]?)|" // Transcend SSD230/360/370/420 + // SATA/mSATA, TS6500, tested with TS128GMSA230S/02J0S86A, TS32GMSA370/20140402, + // mSATA MSM360 mini SSD, tested with TS32GMSM360/Q0407A + // TS128GMSA370I/P1225CH1 + // TS16GMSA370/20140516, TS64GSSD370/20140516, TS256GSSD370/N0815B, TS256GSSD370S/N1114H, + // TS512GSSD370S/N1114H, TS32GSSD420I/N1114H, TS32GSSD420K/P1225CE "TS(16|32|64|128|512|256)GMTS4[03]0S?|" // TS256GMTS400, TS256GMTS430S/S0423A "TS(120|240)GMTS420S?|" // Transcend MTS420, tested with TS120GMTS420S/R0510A0 "TS(128G|256G|512G|1T)SSD230S|" // TS128GSSD230S/P1025F8 "TS(120|240|480|960)GSSD220S|" // TS480GSSD220S/P0520AA + "TS((64|128|256|512)G|[12]T)SSD452K|"// Transcend 452K, tested with TS128GSSD452K/02J0S86A "TS(16G|32G|64G|128G|256G|512G|1T)MTS800S?|" // MTS800, tested with TS1TMTS800/O1225H1 "TS(16|32|64)GMSA630|" // MSA630 mSATA SSD, tested with TS32GMSA630/N0113E1 "TS(32|64|128)GPSD330|" // Transcend PSD SSD, tested with TS64GPSD330/20140121 "TS(16|32|64|96|128|256)GSSD(630|360S)|" // Transcend 630/360S, tested with TS16GSSD630/N0113E1, // TS256GSSD360S/R0123A0 - "TS(128G|256G|512G|1T)ESD400K", // Transcend ESD400 Portable, tested with + "TS(128G|256G|512G|1T)ESD400K|" // Transcend ESD400 Portable, tested with // TS256GESD400K/R0605AS (0x2174:0x2000) + "TS(128G|256G|512G|1T)MTS830S|" // Transcend 830S, tested with TS256GMTS830S/02J0T3HB + "TSG(16|32|64|128|256|512)MTS400ISI|" // Transcend MTS400I, tested with TSG64MTS400ISI/S0903D + "UMAX 2242 (128|256|512)GB", // tested with UMAX 2242 256GB/U0330A0 "", "", //"-v 1,raw48,Raw_Read_Error_Rate " //"-v 2,raw48,Throughput_Performance " + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " //"-v 9,raw24(raw8),Power_On_Hours " //"-v 12,raw48,Power_Cycle_Count " "-v 148,raw48,Total_SLC_Erase_Ct " @@ -2059,6 +2180,7 @@ const drive_settings builtin_knowndrives[] = { "-v 159,raw48,DRAM_1_Bit_Error_Count " // KINGSTON SKC600256G/S4500105 "-v 160,raw48,Uncorrectable_Error_Cnt " "-v 161,raw48,Valid_Spare_Block_Cnt " + "-v 162,raw48,Cache_Block_Count " // Transcend MSM360 "-v 163,raw48,Initial_Bad_Block_Count " "-v 164,raw48,Total_Erase_Count " "-v 165,raw48,Max_Erase_Count " @@ -2085,20 +2207,55 @@ const drive_settings builtin_knowndrives[] = { //"-v 232,raw48,Available_Reservd_Space " "-v 241,raw48,Host_Writes_32MiB " "-v 242,raw48,Host_Reads_32MiB " - "-v 245,raw48,TLC_Writes_32MiB " // FW N0815B, N1114H + "-v 245,raw48,TLC_Writes_32MiB " // FW N0815B, N1114H // TS128GMSA370I: Flash Write Sector Count "-v 246,raw48,SLC_Writes_32MiB " "-v 247,raw48,Raid_Recoverty_Ct " "-v 248,raw48,Unkn_SiliconMotion_Attr " // ADATA SU900/Q0125A + "-v 249,raw48,Unkn_SiliconMotion_Attr " // ADATA SU650/V8X01c45 //"-v 250,raw48,Read_Error_Retry_Rate " // ADATA SU800/Q0913A "-v 251,raw48,Unkn_SiliconMotion_Attr" // ADATA SU800/Q0913A }, + // Supermicro SSD-DM032-SMCMVN1, tested with SuperMicro SSD/SOB20R, see (#1380) + { "Supermicro SATA DOM (SuperDOM)", + "SuperMicro SSD", + "", "", + "-v 1,raw48,Raw_Read_Error_Rate " + "-v 15,raw48,User_Cpcty_Sector_Cnt " + "-v 160,raw48,Not_In_Use " + "-v 161,raw48,Not_In_Use " + "-v 163,raw48,Not_In_Use " + "-v 164,raw48,Not_In_Use " + "-v 165,raw48,Not_In_Use " + "-v 166,raw48,Minimum_PE_Cycles_TLC " + "-v 167,raw48,Not_In_Use " + "-v 168,raw48,Maximum_PE_Cycles_TLC " + "-v 231,raw48,SSD_Life_Left " + "-v 233,raw48,NAND_Writes_1GiB " + "-v 241,raw48,Lifetime_Writes_GiB " + "-v 242,raw48,Lifetime_Reads_GiB " + }, { "Silicon Motion based OEM SSDs", // Like 'Silicon Motion based SSDs' but with FW detection + "240GB|" // from Lenovo T430 Thinkpad, tested with 240GB/P0510E + "Dogfish SSD (128|256|512)GB|" // tested with Dogfish SSD 128GB/S1211A0 + "GIM(16|32|64|128|256|512)|"// GUDGA GIM, tested with GIM128/U0401A0 + "INTENSO|" // tested with INTENSO/S1211A0 (Portable SSD 256GB premium edition) "Intenso SSD|" // tested with Intenso SSD/Q1107A0 - "Intenso SSD Sata III|" // Sata III High, tested with Intenso SSD Sata III/P0510E - "KingFast|" // KingFast F6M, tested with KingFast/P0725A + "Intenso ?SSD Sata III|" // Sata III High, tested with Intenso SSD Sata III/P0510E, + // Intenso SSD Sata III/R0817B0 + "KingFast|" // tested with KingFast/P0725A (F6M), KingFast/S0424A0 (120GB), KingFast/S1128B0 (512GB) + "KSM512|" // KingSpec, tested with KSM512/S0509A0 + "LDLC|" // tested with LDLC/KFS03005 + "ORTIAL SSD|" // tested with ORTIAL SSD/U0202A0 (128GB) + "RX7 (240|256|512)G|" // tested with RX7 240G/T0910A0 + "SATA3 ((12[08]|240|256|480)G|[12]T)B SSD|" // TCSUNBOW X3, tested with SATA3 240GB SSD/S0618A0, + // SATA3 1TB SSD/S1230A0, + // KingDian S370, tested with SATA3 128GB SSD/T0311A0, SATA3 256GB SSD/S1127B0 + // KingDian S280, tested with SATA3 240GB SSD/T0519A0 "SPCC M\\.2 SSD|" // Silicon Power 2280 M55, tested with SPCC M.2 SSD/Q0627A0 - "SuperMicro SSD", // Supermicro SSD-DM032-SMCMVN1, tested with SuperMicro SSD/SOB20R - "P0510E|P0725A|Q0627A0|Q1107A0|SOB20R", + "T-FORCE (128|256|512)GB|" // tested with T-FORCE 512GB/T0910A0 + "Verbatim Vi550 S3", // may also exist with different controller (tickets #1626 <> #1629), + // tested with Verbatim Vi550 S3/U1124A0 (256GB) + "KFS03005|P0510E|P0725A|Q(0627|1107)A0|R0817B0|S(0424|0509|0618|1211|1230)A0|S112[78]B0|T0(311|519|910)A0|U(0202|0401|1124)A0", "", "-v 148,raw48,Total_SLC_Erase_Ct " "-v 149,raw48,Max_SLC_Erase_Ct " @@ -2211,6 +2368,48 @@ const drive_settings builtin_knowndrives[] = { "-v 130,raw48:54321,Minimum_Spares_All_Zs" //"-v 194,tempminmax,Temperature_Celsius" }, + { "SSSTC ERX GD/CD Series SSDs", // Marvel DEAN 2.1 + "(SSSTC|SATA) ER[2-9]-[CG]D(240|480|960|1920)A?|" // tested with SSSTC ER2-GD480/E4N23021, + // SSSTC ER2-CD1920A/E5MN401, SSSTC ER3-GD240/F2MRD0F, SSSTC ER3-CD960A/F3MRD0Y + "AF[2-9]MA31DT[ED]LT(240|480|960|1920)A?", // tested with AF2MA31DTDLT240A/F2M96T0 + "","", + //"-v 1,raw48,Raw_Read_Error_Rate " + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " + "-v 100,raw48,Max_Min_EC_Count " + "-v 170,raw48,Available_Reservd_Space " + "-v 171,raw48,Program_Fail_Count " + "-v 172,raw48,Erase_Fail_Count " + "-v 173,raw48,Average_PE_Count " + "-v 174,raw48,Unexpect_Power_Loss_Ct " + "-v 175,raw48,PwrLoss_ProtectionFail " + //"-v 176,raw48,Erase_Fail_Count_Chip " + //"-v 177,raw48,Wear_Leveling_Count " + //"-v 178,raw48,Used_Rsvd_Blk_Cnt_Chip " + //"-v 179,raw48,Used_Rsvd_Blk_Cnt_Tot " + "-v 180,raw48,Over-Provisioning_Rate " + //"-v 181,raw48,Program_Fail_Cnt_Total " + //"-v 182,raw48,Erase_Fail_Count_Total " + "-v 183,raw48,SATA_Iface_Downshift " + //"-v 184,raw48,End-to-End_Error " + //"-v 187,raw48,Reported_Uncorrect " + //"-v 188,raw48,Command_Timeout " + //"-v 194,tempminmax,Temperature_Celsius " + //"-v 195,raw48,Hardware_ECC_Recovered " + //"-v 198,raw48,Offline_Uncorrectable " + //"-v 199,raw48,UDMA_CRC_Error_Count " + "-v 202,raw48,Percent_Lifetime_Remain " + "-v 210,raw48,Raid_Success_Recover_Ct " + "-v 229,raw48,PLP_Failure " + "-v 231,raw48,Remaining_Lifetime_Perc " + //"-v 232,raw48,Available_Reservd_Space " + //"-v 233,raw48,Media_Wearout_Indicator " + "-v 234,raw48,Thermal_Throttle_Status " + //"-v 241,raw48,Total_LBAs_Written " + //"-v 242,raw48,Total_LBAs_Read " + "-v 243,raw48,NAND_Writes_GiB " + }, { "STEC Mach2 CompactFlash Cards", // tested with STEC M2P CF 1.0.0/K1385MS "STEC M2P CF 1.0.0", "", "", @@ -2231,6 +2430,22 @@ const drive_settings builtin_knowndrives[] = { "-v 7,raw48,Unknown_Attribute " "-v 8,raw48,Unknown_Attribute" }, + { "Xmore Industrial SATA SSDs", // tested with M2CA032GXAIMS-003Z/XP01.1GB + "(CFAST|M2[AC]A|MSATA|SSD)[0-9]{3}[GT]XA[CEI][MT][MST]-[0-9]{3}[TZ]", + "", "", + //"-v 1,raw48,Raw_Read_Error_Rate " + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " + "-v 168,raw48,SATA_Phy_Error_Count " + "-v 169,raw48,Bad_Block_Rate " + "-v 170,raw24/raw24:z54z10,Bad_Blk_Ct_Lat/Erl " // Later bad block/Early bad block + "-v 173,raw16(avg16),MaxAvgErase_Ct " + "-v 192,raw48,Unexpect_Power_Loss_Ct " + //"-v 194,tempminmax,Temperature_Celsius " // optional + "-v 218,raw48,SATA_CRC_Error_Count " + "-v 231,raw48,Percent_Lifetime_Remain " + "-v 241,raw48,Host_Writes_GiB" + }, { "Marvell SSD SD88SA024BA0 (SUN branded)", "MARVELL SD88SA024BA0 SUN24G 0902M0054V", "", "", "" @@ -2309,14 +2524,14 @@ const drive_settings builtin_knowndrives[] = { "FUJITSU MHL2300AT", "", "This drive's firmware has a harmless Drive Identity Structure\n" - "checksum error bug.", + "checksum error bug.", "-v 9,seconds" }, { "", // MHM2200AT, MHM2150AT, MHM2100AT, MHM2060AT "FUJITSU MHM2(20|15|10|06)0AT", "", "This drive's firmware has a harmless Drive Identity Structure\n" - "checksum error bug.", + "checksum error bug.", "-v 9,seconds" }, { "Fujitsu MHN", @@ -2522,7 +2737,7 @@ const drive_settings builtin_knowndrives[] = { "" }, { "Seagate Samsung SpinPoint F4 EG (AF)", // later sold as Barracuda Green, - // tested with ST2000DL004 HD204UI/1AQ10001 + // tested with ST2000DL004 HD204UI/1AQ10001 "ST2000DL004 HD204UI", "", "", "" }, @@ -2655,20 +2870,24 @@ const drive_settings builtin_knowndrives[] = { }, // Flash accelerated, no SMART info in the specs // ST1000LX015-1U7172/SDM1 - { "Seagate FireCuda 2.5", // + { "Seagate FireCuda 2.5", "ST(500|1000|2000)LX0(01|15|25)-.*", "", "", "-v 240,msec24hour32 " }, - // ST1000DX002/CC41 { "Seagate FireCuda 3.5", // ST2000DX002-2DV164/CC41 "ST[12]000DX002-.*", "", "", "-v 240,msec24hour32 " }, { "Seagate Samsung SpinPoint M9TU (USB)", // tested with ST1500LM008 HN-M151AAD/2BC10001 - // (0x04e8:0x61b5), ST2000LM005 HN-M201AAD2BC10001 (0x04e8:0x61b4) + // (0x04e8:0x61b5), ST2000LM005 HN-M201AAD2BC10001 (0x04e8:0x61b4) "ST(1500|2000)LM00[58] HN-M[0-9]*AAD", "", "", "" }, + { "Seagate FreePlay", // tested with ST1500LM003-9YH148/CC94 + // from FreeAgent GoFlex Enclosure. + "ST(1500LM003|1000LM010|1000LM002)-.*", + "", "", "" + }, { "SAMSUNG SpinPoint MP5", // tested with HM250HJ/2AK10001 "SAMSUNG HM(250H|320H|500J|640J)J", "", "", "" @@ -2687,21 +2906,31 @@ const drive_settings builtin_knowndrives[] = { "", "-v 9,halfminutes" }, - { "SAMSUNG SpinPoint N3U-3 (USB, 4KiB LLS)", // tested with HS25YJZ/3AU10-01 + { "SAMSUNG SpinPoint N3U-3 (USB)", // tested with + // SAMSUNG HS25YJZ/3AU10-01 (0x18a5:0x0227, reports 4KiB LPS/LLS. ticket #159), + // SAMSUNG HS20YJZ/3AU10-01 (0x04e8:0x2f06, reports 512B sectors, Debian Bug 964032) "SAMSUNG HS(122H|2[05]YJ)Z", "", "", "" }, { "SK hynix SATA SSDs", - "SK ?hynix SC(210|300|308|311|313).*|" // tested with + "SK ?hynix (SC(210|300|308|311|313|401)|SH920) .*|" // tested with // SK hynix SC210 mSATA 256GB/20002L00, // SKhynix SC300 HFS256G32MND-3210A/20131P00, // SK hynix SC308 SATA 128GB/30001P10, // SK hynix SC311 SATA 512GB/70000P10, - // SK hynix SC313 HFS256G32TNF-N3A0A/70000P10 - "HFS(128|256|512)G3[29]MND-(2200|3[23]10)A|" // HFS128G32MND-2200A/20200L00, - // HFS512G32MND-3210A/20100P00, HFS512G39MND-3310A/20002P00 + // SK hynix SC313 HFS256G32TNF-N3A0A/70000P10, + // SK hynix SC401 SATA 512GB/90000121, + // SK hynix SH920 mSATA 256GB/1010BL00 + "HFS(128|256|512)G3[29A]MN[BD]-(2200|3[23]10)A|" // SC210, tested with + // HFS128G32MND-2200A/20200L00, HFS512G32MND-3210A/20100P00, + // HFS512G39MND-3310A/20002P00, HFS256G3AMNB-2200A/1010BL00 + "HFS(128|256|512)G3[29]MND-3(312|510)A|" // SC300, tested with HFS256G32MND-3312A/20001P00, + // HFS512G39MND-3510A/20400P00 + "HFS(128|256|512)G39TND-N210A|" // SC308, tested with HFS128G39TND-N210A/30001P10 "HFS(120|250|500)G32TND-N1A2A|" // SL308, tested with HFS500G32TND-N1A2A/30000P10 - "HFS(128|256|512)G39TND-N210A", // SC308, tested with HFS128G39TND-N210A/30001P10 + "HFS(128|256|512)G39TND-N210A|" // SC308, tested with HFS128G39TND-N210A/30001P10 + "HFS(128|256|512)G32TNF-N3A0A|" // SC313, tested with HFS256G32TNF-N3A0A/70000P10 + "SHGS31-(250|500|1000)GS-2", // S31, tested with SHGS31-1000GS-2/90000Q00 "", "", //"-v 1,raw48,Raw_Read_Error_Rate " "-v 5,raw48,Retired_Block_Count " @@ -2710,6 +2939,7 @@ const drive_settings builtin_knowndrives[] = { "-v 100,raw48,Total_Erase_Count " "-v 168,raw48,Min_Erase_Count " "-v 169,raw48,Max_Erase_Count " + "-v 170,raw48,Unknown_SK_hynix_Attrib " "-v 171,raw48,Program_Fail_Count " "-v 172,raw48,Erase_Fail_Count " "-v 173,raw48,Wear_Leveling_Count " @@ -2725,6 +2955,7 @@ const drive_settings builtin_knowndrives[] = { //"-v 184,raw48,End-to-End_Error " //"-v 187,raw48,Reported_Uncorrect " //"-v 188,raw48,Command_Timeout " + "-v 191,raw48,Unknown_SK_hynix_Attrib " // SC210 //"-v 194,tempminmax,Temperature_Celsius " //"-v 195,raw48,Hardware_ECC_Recovered " //"-v 196,raw16(raw16),Reallocated_Event_Count " @@ -2735,9 +2966,12 @@ const drive_settings builtin_knowndrives[] = { "-v 212,raw48,Phy_Error_Count " "-v 231,raw48,SSD_Life_Left " "-v 234,raw48,Unknown_SK_hynix_Attrib " - "-v 241,raw48,Total_Writes_GiB " - "-v 242,raw48,Total_Reads_GiB " + "-v 236,raw48,Unknown_SK_hynix_Attrib " // SC313 + "-v 238,raw48,Unknown_SK_hynix_Attrib " // SC401 + "-v 241,raw48,Total_Writes_GB " // SC31: ~GB, not GiB (#1517) + "-v 242,raw48,Total_Reads_GB " "-v 243,raw48,Total_Media_Writes " + "-v 249,raw48,Unknown_SK_hynix_Attrib " // SC313 "-v 250,raw48,Read_Retry_Count " }, { "SK hynix SATA SSDs", @@ -3160,8 +3394,9 @@ const drive_settings builtin_knowndrives[] = { "(Hitachi|HGST) HT[ES]5432(16|25|32)A7A38[145]", "", "", "" }, - { "Hitachi Travelstar 5K500.B", // tested with Hitachi HTS545050B9SA00/PB4OC60X - "(Hitachi )?HT[ES]5450(12|16|25|32|40|50)B9(A30[01]|SA00)", + { "Hitachi Travelstar 5K500.B", // tested with Hitachi HTS545050B9SA00/PB4OC60X, + // Hitachi HTS545025B9SA02/PB2AC60W + "(Hitachi )?HT[ES]5450(12|16|25|32|40|50)B9(A30[01]|SA0[02])", "", "", "" }, { "Hitachi/HGST Travelstar Z5K500", // tested with HGST HTS545050A7E380/GG2OAC90, @@ -3171,7 +3406,7 @@ const drive_settings builtin_knowndrives[] = { "", "", "" }, { "Hitachi/HGST Travelstar 5K750", // tested with Hitachi HTS547575A9E384/JE4OA60A, - // APPLE HDD HTS547550A9E384/JE3AD70F + // APPLE HDD HTS547550A9E384/JE3AD70F "(Hitachi|APPLE HDD) HT[ES]5475(50|64|75)A9E38[14]", "", "", "" }, @@ -3180,8 +3415,9 @@ const drive_settings builtin_knowndrives[] = { "HGST HT[ES]5410(64|75|10)A9E68[01]", "", "", "" }, - { "HGST Travelstar Z5K1000", // tested with HGST HTS541010A7E630/SE0OA4A0 - "HGST HTS5410(75|10)A7E63[015]", + { "HGST Travelstar Z5K1000", // tested with HGST HTS541010A7E630/SE0OA4A0, + // HGST HTS541010B7E610/01.01A01 + "HGST HTS5410(75|10)[AB]7E6(10|3[015])", "", "", "" }, { "HGST Travelstar 5K1500", // tested with HGST HTS541515A9E630/KA0OA500 @@ -3208,9 +3444,9 @@ const drive_settings builtin_knowndrives[] = { "(Hitachi |HITACHI )?HTS7220(80|10|12|16|20)K9(A3|SA)00", "", "", "" }, - { "Hitachi Travelstar 7K320", // tested with + { "Hitachi Travelstar 7K320", // tested with HITACHI HTS723216L9SA60/FC2ZC50B, // HTS723225L9A360/FCDOC30F, HTS723216L9A362/FC2OC39F - "(Hitachi )?HT[ES]7232(80|12|16|25|32)L9(A300|A36[02]|SA61)", + "(Hitachi |HITACHI )?HT[ES]7232(80|12|16|25|32)L9(A300|A36[02]|SA6[01])", "", "", "" }, { "Hitachi Travelstar Z7K320", // tested with HITACHI HTS723232A7A364/EC2ZB70B @@ -3266,12 +3502,13 @@ const drive_settings builtin_knowndrives[] = { "", "", "" }, { "Hitachi Deskstar 5K3000", // tested with HDS5C3030ALA630/MEAOA5C0, - // Hitachi HDS5C3020BLE630/MZ4OAAB0 (OEM, Toshiba Canvio Desktop) + // Hitachi HDS5C3020BLE630/MZ4OAAB0 (OEM, Toshiba Canvio Desktop) "(Hitachi )?HDS5C30(15|20|30)(ALA|BLE)63[02].*", "", "", "" }, - { "Hitachi Deskstar 5K4000", // tested with HDS5C4040ALE630/MPAOA250 - "(Hitachi )?HDS5C40(30|40)ALE63[01].*", + { "Hitachi/HGST Deskstar 5K4000", // tested with HDS5C4040ALE630/MPAOA250 + // HGST HDS5C4040ALE630/MPAOA580 + "(Hitachi |HGST )?HDS5C40(30|40)ALE63[01].*", "", "", "" }, { "Hitachi Deskstar 7K80", @@ -3346,9 +3583,15 @@ const drive_settings builtin_knowndrives[] = { "", "", "" }, { "HGST Deskstar NAS", // tested with HGST HDN724040ALE640/MJAOA5E0, - // HGST HDN726050ALE610/APGNT517, HGST HDN726060ALE610/APGNT517 - // HGST HDN726040ALE614/APGNW7JH, HGST HDN726060ALE614/K1HE594D - "HGST HDN72(4030|4040|6040|6050|6060)ALE6(10|14|40|04)", + // HGST HDN726050ALE610/APGNT517, HGST HDN726060ALE610/APGNT517 + // HGST HDN726040ALE614/APGNW7JH, HGST HDN726060ALE614/K1HE594D + // HGST HDN728080ALE604/A4GNW91X + "HGST HDN72(40[34]|60[456]|808)0ALE6(04|1[04]|40)", + "", "", + "-v 22,raw48,Helium_Level" // HDN728080ALE604 + }, + { "Hitachi/HGST Ultrastar 5K3000", // tested with Hitachi HUA5C3030ALA640/MEAOA800 + "(Hitachi |HGST )?HUA5C30(20|30)ALA64[01]", "", "", "" }, { "Hitachi Ultrastar A7K1000", // tested with @@ -3364,16 +3607,17 @@ const drive_settings builtin_knowndrives[] = { "", "", "" }, { "Hitachi Ultrastar 7K3000", // tested with Hitachi HUA723030ALA640/MKAOA580, - // Hitachi HUA723020ALA641/MK7OA840 - "Hitachi HUA7230(20|30)ALA64[01]", + // Hitachi HUA723020ALA641/MK7OA840, HUA723020ALA640/MK7OAAA0 + "(Hitachi )?HUA7230(20|30)ALA64[01]", "", "", "" }, { "Hitachi/HGST Ultrastar 7K4000", // tested with Hitachi HUS724040ALE640/MJAOA3B0, - // HGST HUS724040ALE640/MJAOA580, HGST HUS724020ALA640/MF6OAA70 - "(Hitachi|HGST) HUS7240(20|30|40)AL[AE]64[01]", + // HGST HUS724040ALE640/MJAOA580, HGST HUS724020ALA640/MF6OAA70, + // HUS724030ALA640/MF8OAAZ0 + "(Hitachi |HGST )?HUS7240(20|30|40)AL[AE]64[01]", "", "", "" }, - { "Hitachi/HGST Ultrastar 7K2", // + { "Hitachi/HGST Ultrastar 7K2", "(Hitachi|HGST) HUS722T[12]TALA604", "", "", "-v 16,raw48,Gas_Gauge" @@ -3382,6 +3626,11 @@ const drive_settings builtin_knowndrives[] = { "HGST HUS7260[2456]0AL[AEN]61[014]", "", "", "" }, + { "HGST Ultrastar HC310/320", // tested with HGST HUS726T6TALE6L4/VKGNW40H, + // HGST HUS728T8TALE6L4/V8GNW460 + "HGST HUS72(6T[46]|8T8)TALE6L4", + "", "", "" + }, { "HGST Ultrastar He6", // tested with HGST HUS726060ALA640/AHGNT1E2 "HGST HUS726060ALA64[01]", "", "", @@ -3397,24 +3646,63 @@ const drive_settings builtin_knowndrives[] = { "", "", "-v 22,raw48,Helium_Level" }, - { "Western Digital Ultrastar He10/12", // WD white label, tested with + { "Western Digital Ultrastar (He10/12)", // WD white label, tested with // WDC WD80EMAZ-00WJTA0/83.H0A83 (Easystore 0x1058:0x25fb), // WDC WD80EZAZ-11TDBA0/83.H0A83, WDC WD100EMAZ-00WJTA0/83.H0A83, // WDC WD100EZAZ-11TDBA0/83.H0A83, WDC WD120EMAZ-11BLFA0/81.00A81 - "WDC WD(80|100|120)E[MZ]AZ-.*", + // WDC WD140EDFZ-11A0VA0/81.00A81 (Easystore 0x1058:0x25fb) + // WDC WD140EDGZ-11B2DA2/85.00A85, WDC WD140EDGZ-11B1PA0/85.00A85 + // WDC WD120EDAZ-11F3RA0/81.00A81, WDC WD80EDAZ-11TA3A0/81.00A81 + "WDC WD(80|100|120|140)E([MZ]A|DA|DF|DG)Z-.*", "", "", - "-v 22,raw48,Helium_Level" + "-v 22,raw48,Helium_Level" // not: WD80EDAZ }, { "HGST Ultrastar DC HC520 (He12)", // tested with HGST HUH721212ALE600/LEGNT3D0 "HGST HUH721212AL[EN]60[014]", "", "", "-v 22,raw48,Helium_Level" }, - { "Western Digital Ultrastar DC HC530", // tested with WDC WUH721414ALE6L4/LDGNW07G - "WDC ?WUH721414ALE6L4", + { "Western Digital Ultrastar DC HC530", // tested with + // WDC WUH721414ALE604/LDAZW110, WDC WUH721414ALE6L4/LDGNW07G + "WDC ?WUH721414ALE6[0L]4", + "", "", + "-v 22,raw48,Helium_Level" + }, + { "Western Digital Ultrastar DC HC550", // tested with WDC WUH721818ALE6L4/PCGNW110, + // WUH721818ALE6L4/PCGAW232, WDC WUH721818ALN6L4/PCGNW088 + "(WDC ?)?WUH72181[68]AL[EN]6[0L][0146]", "", "", "-v 22,raw48,Helium_Level" }, + { "Western Digital Ultrastar DC HC560", // tested with WDC WUH722020ALN604/PQGNW108 + // WDC WUH722020BLE6L4 + "(WDC ?)?WUH722020[AB]L[EN]6[0L][014]", + "", "", + "-v 22,raw48,Helium_Level " + "-v 82,raw16,Head_Health_Score " + "-v 90,hex48,NAND_Master" + }, + { "Western Digital Ultrastar DC HC570", // tested with WUH722222ALE604 + "(WDC ?)?WUH722222[AB]L[EN]6[0L]4", + "", "", + "-v 22,raw48,Helium_Level " + "-v 71,raw16,Milli_Micro_Actuator " + "-v 82,raw16,Head_Health_Score " + "-v 90,hex48,NAND_Master" + }, + { "Western Digital Ultrastar DC HC650", // tested with WDC WSH722020ALE6L0/PCGMT421 + "(WDC ?)?WSH7220(20|VC)AL[EN]6[0L][0146]", + "", "", + "-v 22,raw48,Helium_Level" + }, + { "Western Digital Ultrastar DC HC670", // WSH722626ALE604 + "(WDC ?)?WSH722222[AB]L[EN]6[0L]4", + "", "", + "-v 22,raw48,Helium_Level " + "-v 71,raw16,Milli_Micro_Actuator " + "-v 82,raw16,Head_Health_Score " + "-v 90,hex48,NAND_Master" + }, { "HGST MegaScale 4000", // tested with HGST HMS5C4040ALE640/MPAOA580 "HGST HMS5C4040[AB]LE64[01]", // B = DC 4000.B "", "", "" @@ -3447,7 +3735,6 @@ const drive_settings builtin_knowndrives[] = { "TOSHIBA MK(80|12|10)34GSX", "", "", "" }, - // { "Toshiba 2.5\" HDD MK..32GSX", // tested with TOSHIBA MK1032GSX/AS021G "TOSHIBA MK(10|80|60|40)32GSX", "", "", "" @@ -3458,7 +3745,7 @@ const drive_settings builtin_knowndrives[] = { "", "-v 9,minutes" }, - { "Toshiba 2.5\" HDD MK..52GSX", + { "Toshiba 2.5\" HDD MK..52GSX", // tested with TOSHIBA MK3252GSX/LV010A "TOSHIBA MK(80|12|16|25|32)52GSX", "", "", "" }, @@ -3500,6 +3787,11 @@ const drive_settings builtin_knowndrives[] = { "TOSHIBA MK(32|50|64|75)75GSX", "", "", "" }, + { "Toshiba 2.5\" HDD MK..76GSX/GS001A", // tested with TOSHIBA MK2576GSX/GS001A + "TOSHIBA MK(16|25|32|50|64)76GSX", + "GS001A", + "", "" + }, { "Toshiba 2.5\" HDD MK..76GSX", // tested with TOSHIBA MK3276GSX/GS002D "TOSHIBA MK(16|25|32|50|64)76GSX", "", @@ -3515,7 +3807,7 @@ const drive_settings builtin_knowndrives[] = { "", "", "" }, { "Toshiba 2.5\" HDD MQ01ABD...", // tested with TOSHIBA MQ01ABD100/AX001U, - // TOSHIBA MQ01ABD100V/AX001Q + // TOSHIBA MQ01ABD100/AX1R4C, TOSHIBA MQ01ABD100V/AX001Q "TOSHIBA MQ01ABD(025|032|050|064|075|100)V?", "", "", "" }, @@ -3558,12 +3850,13 @@ const drive_settings builtin_knowndrives[] = { "TOSHIBA MG03ACA[1234]00Y?", "", "", "" }, - { "Toshiba 3.5\" MD04ACA... Enterprise HDD", // tested with TOSHIBA MD04ACA500/FP1A - "TOSHIBA MD04ACA[2345]00", + { "Toshiba MG04ACA... Enterprise HDD", // tested with TOSHIBA MD04ACA500/FP1A, + // TOSHIBA MG04ACA600A/FS2B, TOSHIBA MG04ACA400NY/FK5D (Dell) + "TOSHIBA MG04ACA[23456]00([AEN].?)?", "", "", "" }, - { "Toshiba 3.5\" MG04ACA... Enterprise HDD", // tested with TOSHIBA MG04ACA600A/FS2B - "TOSHIBA MG04ACA[23456]00[AE].?", + { "Toshiba MG05ACA... Enterprise Capacity HDD", // tested with TOSHIBA MG05ACA800E/GX2A + "TOSHIBA MG05ACA800[AE]", "", "", "" }, { "Toshiba MG06ACA... Enterprise Capacity HDD", // tested with TOSHIBA MG06ACA800E/4303, @@ -3577,6 +3870,27 @@ const drive_settings builtin_knowndrives[] = { "-v 23,raw48,Helium_Condition_Lower " "-v 24,raw48,Helium_Condition_Upper" }, + { "Toshiba MG08ACA... Enterprise Capacity HDD", // tested with TOSHIBA MG08ACA14TE/0102, + // TOSHIBA MG08ACA16TE/0102 + "TOSHIBA MG08ACA1[46]T[AE]Y?", + "", "", + "-v 23,raw48,Helium_Condition_Lower " + "-v 24,raw48,Helium_Condition_Upper" + }, + { "Toshiba MG09ACA... Enterprise Capacity HDD", // tested with TOSHIBA MG09ACA18TE/0102 + "TOSHIBA MG09ACA1[68]T[AE]Y?", + "", "", + "-v 23,raw48,Helium_Condition_Lower " + "-v 24,raw48,Helium_Condition_Upper " + "-v 27,raw48,MAMR_Health_Monitor" + }, + { "Toshiba MG10ACA... Enterprise Capacity HDD", // tested with TOSHIBA MG10ACA20TE/0102 + "TOSHIBA MG10ACA20T[AE]Y?", + "", "", + "-v 23,raw48,Helium_Condition_Lower " + "-v 24,raw48,Helium_Condition_Upper " + "-v 27,raw48,MAMR_Health_Monitor" + }, { "Toshiba 3.5\" DT01ABA... Desktop HDD", // tested with TOSHIBA DT01ABA300/MZ6OABB0 "TOSHIBA DT01ABA(100|150|200|300)", "", "", "" @@ -3586,12 +3900,36 @@ const drive_settings builtin_knowndrives[] = { "TOSHIBA DT01ACA(025|032|050|075|100|150|200|300)", "", "", "" }, - { "Toshiba X300", // tested with TOSHIBA HDWE160/FS2A - "TOSHIBA HDWE1[456]0", + { "Toshiba N300/MN NAS HDD", // tested with TOSHIBA HDWQ140/FJ1M, TOSHIBA HDWN160/FS1M, + // TOSHIBA HDWN180/GX2M, TOSHIBA HDWG480/0601 (8TB), TOSHIBA HDWG11A/0603 (10TB), + // TOSHIBA HDWG21C/0601 (12TB), TOSHIBA HDWG21E/0601 (14TB), + // TOSHIBA MN07ACA12T/0601, TOSHIBA MN08ACA14T/0601 + "TOSHIBA HDW([GNQ]1[468]0|G(480|11A|21[CE]|31G))|" // 31G: 16TB + "TOSHIBA MN0(4ACA400|6ACA([68]00|10T)|7ACA1[24]T|8ACA1[46]T)", + "", "", + "-v 23,raw48,Helium_Condition_Lower " // ] >= 12TB + "-v 24,raw48,Helium_Condition_Upper" // ] + }, + { "Toshiba P300 (CMR)", // tested with TOSHIBA HDWD120/MX4OACF0 + "TOSHIBA HDWD1(05|10|20|30)", + "", "", "" + }, + { "Toshiba P300 (SMR)", // tested with TOSHIBA HDWD240/KQ000A + "TOSHIBA HDWD2[246]0", + "", "", "" + }, + { "Toshiba X300", // tested with TOSHIBA HDWE160/FS2A, TOSHIBA HDWF180/GX0B + "TOSHIBA HDW(E1[456]0|[FR]180|R(11A|21[CE]|31G))", // 11A:10TB, 21C:12TB, 21E:14TB, 31G: 16TB + "", "", + "-v 23,raw48,Helium_Condition_Lower " // ] >= 12TB + "-v 24,raw48,Helium_Condition_Upper" // ] + }, + { "Toshiba L200 (CMR)", + "TOSHIBA HDW[JK]1(05|10)", "", "", "" }, - { "Toshiba P300", // tested with TOSHIBA HDWD120/MX4OACF0 - "TOSHIBA HDWD1(30|20|10|05)", + { "Toshiba L200 (SMR)", // tested with TOSHIBA HDWL110/JU000A. TOSHIBA HDWL120/JT000A + "TOSHIBA HDWL1[12]0", "", "", "" }, { "Toshiba 1.8\" HDD", @@ -3608,7 +3946,7 @@ const drive_settings builtin_knowndrives[] = { }, { "Toshiba HK4R Series SSD", // TOSHIBA THNSN8960PCSE/8EET6101 "TOSHIBA THNSN8(120P|240P|480P|960P|1Q92)CSE", - "", "", + "", "", "-v 167,raw48,SSD_Protect_Mode " "-v 168,raw48,SATA_PHY_Error_Count " "-v 169,raw48,Bad_Block_Count " @@ -3619,7 +3957,7 @@ const drive_settings builtin_knowndrives[] = { // TOSHIBA THNSFJ256GCSU/JULA1102 // TOSHIBA THNSFJ256GDNU A/JYLA1102 "TOSHIBA THNS[NF]J(060|128|256|512)G[BCAM8VD][SCN][TU].*", - "", "", + "", "", "-v 167,raw48,SSD_Protect_Mode " "-v 168,raw48,SATA_PHY_Error_Count " "-v 169,raw48,Bad_Block_Count " @@ -3931,11 +4269,21 @@ const drive_settings builtin_knowndrives[] = { "", "", "-v 188,raw16 -v 240,msec24hour32" }, - { "Seagate BarraCuda 3.5", // tested with ST1000DM010-2EP102/Z9ACZM97, - // ST2000DM008-2FR102/0001, ST3000DM008-2DM166/CC26, ST4000DM005-2DP166/0001, - // ST4000DM006-2G5107/DN02, ST8000DM004-2CX188/0001, ST10000DM0004-1ZC101/DN01 - "ST(500DM009|1000DM010|2000DM00[5-9]|3000DM00[789]|4000DM00[456]|6000DM00[34]|8000DM00[45]|10000DM0004)-.*", + { "Seagate BarraCuda 3.5 (CMR)", // tested with ST1000DM010-2EP102/CC43, + // ST3000DM008-2DM166/CC26, ST4000DM006-2G5107/DN02, ST10000DM0004-1ZC101/DN01, + // ST12000DM0007-2GR116/DN01 + "ST(500DM009|1000DM010|2000DM00[67]|3000DM00[89]|4000DM006|6000DM004|" + "8000DM005|10000DM0004|12000DM0007)-.*", + "", "", + "-v 200,raw48,Pressure_Limit " + "-v 188,raw16 -v 240,msec24hour32" + }, + { "Seagate BarraCuda 3.5 (SMR)", // tested with ST2000DM008-2FR102/0001, + // ST4000DM004-2CV104/0001 (TRIM: no), ST4000DM005-2DP166/0001, ST8000DM004-2CX188/0001 + "ST(2000DM00[589]|3000DM007|4000DM00[45]|6000DM003|8000DM004)-.*", "", "", + "-v 9,msec24hour32 " // ST4000DM004-2CV104/0001 + "-v 200,raw48,Pressure_Limit " "-v 188,raw16 -v 240,msec24hour32" }, { "Seagate Desktop HDD.15", // tested with ST4000DM000-1CD168/CC43, ST5000DM000-1FK178/CC44, @@ -4062,9 +4410,10 @@ const drive_settings builtin_knowndrives[] = { // ST4000NM0035-1V4107/TNC3 // ST1000NM0055-1V410C/TN02 // ST8000NM0055-1RM112/SN04 - // ST10000NM0156-2AA111/SS05 - "ST([1234568]|10)000NM0[01][0-68][456]-.*", // *[069]4 = 4Kn - "", "", + // ST10000NM0156-2AA111/SS05, ST4000NM0245-1Z2107/SS05 + "ST([1234568]|10)000NM0[012][0-68][456]-.*", // *[069]4 = 4Kn + "", "", + "-v 200,raw48,Pressure_Limit " "-v 188,raw16 -v 240,msec24hour32" }, { "Seagate Enterprise Capacity 3.5 HDD", // V5.1, ms in attribute 9 @@ -4077,23 +4426,37 @@ const drive_settings builtin_knowndrives[] = { "", "", "-v 9,msec24hour32 -v 240,msec24hour32" }, + // ST1000NM000A, ST1000NM002A, ST2000NM000A, ST2000NM001A, ST2000NM002A, + // ST3000NM000A, ST3000NM004A, ST4000NM000A, ST4000NM001A, ST4000NM002A, + // ST4000NM006A, ST4000NM010A, ST4000NM012A, ST4000NM013A, ST6000NM002A, + // ST6000NM021A, ST6000NM022A, ST6000NM025A, ST6000NM026A, ST8000NM000A, + // ST8000NM002A, ST8000NM004A, ST8000NM008A, ST8000NM009A, ST8000NM016A + { "Seagate Exos 7E8", // tested with ST6000NM021A-2R7101/SN02, ST8000NM000A-2KE101/SN02 + "ST[123468]000NM0(0[01234689]|1[0236]|2[1256])A-.*", + "", "", + "-v 18,raw48,Head_Health " + "-v 240,msec24hour32" + }, { "Seagate Exos X12", // tested with ST12000NM0007-2A1101/SN02 "ST12000NM00[01]7-.*", // *17 = SED "", "", + "-v 200,raw48,Pressure_Limit " "-v 240,msec24hour32" }, { "Seagate Exos X14", // tested with ST12000NM0008-2H3101/SN02, // ST12000NM0538-2K2101/CMA2 (OEM?) "ST(14000NM04[24]8|14000NM0(01|25)8|12000NM0(00|24|53)8|10000NM0(47|56)8)-.*", "", "", - "-v 18,raw48,Unknown_Seagate_Attrib " + "-v 18,raw48,Head_Health " + "-v 200,raw48,Pressure_Limit " "-v 240,msec24hour32" }, - { "Seagate Exos X16", // tested with X16 ST14000NM001G-2KJ103/SN02, - // ST16000NM001G-2KK103/SN02 - "ST1[46]000NM00[13]G-.*", + { "Seagate Exos X16", // tested with ST10000NM001G-2MW103/SN02 + // ST14000NM001G-2KJ103/SN02, ST16000NM001G-2KK103/SN02, ST16000NM001G-2KK103/SN03 + "ST1[0246]000NM00[13]G-.*", "", "", - "-v 18,raw48,Unknown_Seagate_Attrib " + "-v 18,raw48,Head_Health " + "-v 200,raw48,Pressure_Limit " "-v 240,msec24hour32" }, // new models: ST8000VN0002, ST6000VN0021, ST4000VN000 @@ -4111,17 +4474,25 @@ const drive_settings builtin_knowndrives[] = { "ST(8000NE|[65432]000VN)00[01]1-.*", "", "", "" }, - { "Seagate IronWolf", // tested with ST6000VN0033-2EE110/SC60, - // ST6000VN0041-2EL11C/SC61, ST12000VN0007-2GS116/SC60, ST12000VN0008-2JH101/SC60 - "ST(1|2|3|4|6|8|10|12)000VN00(0?[2478]|22|33|41)-.*", - "", "", "" + { "Seagate IronWolf", // tested with ST3000VN007-2E4166/SC60, ST4000VN008-2DR166/SC60, + // ST6000VN001-2BB186/SC60, ST6000VN0033-2EE110/SC60, ST6000VN0041-2EL11C/SC61, + // ST8000VN0022-2EL112/SC61, ST10000VN0004-1ZD101/SC60, + // ST12000VN0007-2GS116/SC60, ST12000VN0008-2JH101/SC60 + "ST(1|2|3|4|6|8|10|12)000VN00(0?[2478]|1|22|33|41)-.*", + "", "", + "-v 18,raw48,Head_Health " + "-v 200,raw48,Pressure_Limit " + "-v 240,msec24hour32" }, { "Seagate IronWolf Pro", // tested with ST4000NE0025-2EW107/EN02, - // ST8000NE0004-1ZF11G/EN01, ST8000NE0021-2EN112/EN02 - "ST([24]000NE0025|4000NE001|6000NE0023|8000NE00(04|08|21)|(10|12|14)000NE000[478])-.*", - "", "", "" + // ST8000NE0004-1ZF11G/EN01, ST8000NE0021-2EN112/EN02, ST16000NE000-2RW103/EN02 + "ST([24]000NE0025|4000NE001|6000NE0023|8000NE00(04|08|21)|(10|12|14)000NE000[478]|16000NE000)-.*", + "", "", + "-v 18,raw48,Head_Health " // ST16000NE000 + "-v 200,raw48,Pressure_Limit " + "-v 240,msec24hour32" }, - { "Seagate Archive HDD", // tested with ST8000AS0002-1NA17Z/AR13 + { "Seagate Archive HDD (SMR)", // tested with ST8000AS0002-1NA17Z/AR13 "ST[568]000AS00[01][12]-.*", "", "", "" }, @@ -4197,7 +4568,7 @@ const drive_settings builtin_knowndrives[] = { }, { "Seagate Nytro XF1230 SATA SSD", // tested with XF1230-1A0480/ST200354 "XF1230-1A(0240|0480|0960|1920)", - "", "", + "", "", "-v 174,raw48,Unexpect_Power_Loss_Ct " "-v 180,raw48,End_to_End_Err_Detect " "-v 183,raw48,SATA_Downshift_Count " @@ -4213,10 +4584,10 @@ const drive_settings builtin_knowndrives[] = { { "Seagate IronWolf 110 SATA SSD", //Written to Seagate documentation "ZA(240|480|960|1920|3840)NM10001", "", "", - //"-v 1,raw48,Raw_Read_Error_Rate " - //"-v 5,raw48,Reallocated_Sector_Ct " - //"-v 9,raw48,Power_On_Hours " - //"-v 12,raw48,Drive_Power_Cycle_Ct " + //"-v 1,raw48,Raw_Read_Error_Rate " + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " "-v 100,raw48,Flash_GB_Erased " "-v 102,raw48,Lifetime_PS4_Entry_Ct " "-v 103,raw48,Lifetime_PS3_Exit_Ct " @@ -4228,26 +4599,56 @@ const drive_settings builtin_knowndrives[] = { "-v 177,raw16,Wear_Range_Delta " "-v 183,hex56,SATA_Downshift_Count " "-v 187,raw48,Uncorrectable_ECC_Ct " - //"-v 194,tempminmax,Primary_Temperature " + //"-v 194,tempminmax,Temperature_Celsius " "-v 195,raw16(raw16),RAISE_ECC_Cor_Ct " "-v 198,raw48,Uncor_Read_Error_Ct " - //"-v 199,raw48,SATA_R-Err_(CRC)_Err_Ct " + //"-v 199,raw48,UDMA_CRC_Error_Count " "-v 230,raw56,Drv_Life_Protect_Status " "-v 231,hex56,SSD_Life_Left " - //"-v 232,raw48,Available_Rsrvd_Space " + //"-v 232,raw48,Available_Reservd_Space " "-v 233,raw48,Lifetime_Wts_To_Flsh_GB " "-v 241,raw48,Lifetime_Wts_Frm_Hst_GB " "-v 242,raw48,Lifetime_Rds_Frm_Hst_GB " "-v 243,hex56,Free_Space " }, + { "Seagate IronWolf (Pro) 125 SSDs", // IronWolf_Pro_125_SSD_Product_Manual_100866982_A.pdf + // IronWolf_125_SSD_Product_Manual_100866980_C.pdf + "Seagate IronWolf ZA(250|500|1000|2000|4000)NM10002-.*|" // tested with + // Seagate IronWolf ZA500NM10002-2ZG101/SU3SC013 + "Seagate IronWolfPro ZA(240|480|960|1920|3840)NX10001-.*", // tested with + // Seagate IronWolfPro ZA3840NX10001-2ZH104/SU4SC01B + "", "", + //"-v 1,raw48,Raw_Read_Error_Rate " + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " + "-v 16,raw48,Spare_Blocks_Available " + "-v 17,raw48,Spare_Blocks_Remaining " + "-v 168,raw48,SATA_PHY_Error_Count " + "-v 170,raw16,Early/Later_Bad_Blck_Ct " + "-v 173,raw16,Max/Avg/Min_Erase_Ct " + "-v 174,raw48,Unexpect_Power_Loss_Ct " + "-v 177,raw16,Wear_Range_Delta " + //"-v 192,raw48,Power-Off_Retract_Count " + //"-v 194,tempminmax,Temperature_Celsius " + "-v 218,raw48,SATA_CRC_Error_Count " + "-v 231,raw48,SSD_Life_Left " + "-v 232,hex48,Read_Failure_Blk_Ct " + "-v 233,raw48,Flash_Writes_GiB " + "-v 234,raw48,NAND_Reads_Sectors " + "-v 235,raw48,Flash_Writes_Sectors " + "-v 241,raw48,Host_Writes_GiB " + "-v 242,raw48,Host_Reads_GiB " + "-v 246,hex64,Write_Protect_Detail " // prevents interpretation of bogus threshold 255 (ticket #1396) + "-v 247,raw48,Health_Check_Timer " + }, { "Seagate Nytro SATA SSD", //Written to Seagate documentation // tested with XA960LE10063, XA960LE10063 "XA(240|480|960|1920|3840)[LM]E10(00|02|04|06|08|10)3", "", "", - //"-v 1,raw48,Raw_Read_Error_Rate " - //"-v 5,raw48,Reallocated_Sector_Ct " - //"-v 9,raw48,Power_On_Hours " - //"-v 12,raw48,Drive_Power_Cycle_Ct " + //"-v 1,raw48,Raw_Read_Error_Rate " + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " "-v 100,raw48,Flash_GB_Erased " "-v 102,raw48,Lifetime_PS4_Entry_Ct " "-v 103,raw48,Lifetime_PS3_Exit_Ct " @@ -4259,28 +4660,32 @@ const drive_settings builtin_knowndrives[] = { "-v 177,raw16,Wear_Range_Delta " "-v 183,hex56,SATA_Downshift_Count " "-v 187,raw48,Uncorrectable_ECC_Ct " - //"-v 194,tempminmax,Primary_Temperature " + //"-v 194,tempminmax,Temperature_Celsius " "-v 195,raw16(raw16),RAISE_ECC_Cor_Ct " "-v 198,raw48,Uncor_Read_Error_Ct " - //"-v 199,raw48,SATA_R-Err_(CRC)_Err_Ct " + //"-v 199,raw48,UDMA_CRC_Error_Count " "-v 230,raw56,Drv_Life_Protect_Status " "-v 231,hex56,SSD_Life_Left " - //"-v 232,raw48,Available_Rsrvd_Space " + //"-v 232,raw48,Available_Reservd_Space " "-v 233,raw48,Lifetime_Wts_To_Flsh_GB " "-v 241,raw48,Lifetime_Wts_Frm_Hst_GB " "-v 242,raw48,Lifetime_Rds_Frm_Hst_GB " "-v 243,hex56,Free_Space " }, - { "WD Blue and Green SSDs", // tested with WDC WDS250G1B0A-00H9H0/X41000WD, + { "WD Blue / Red / Green SSDs", // tested with WDC WDS250G1B0A-00H9H0/X41000WD, // WDC WDS250G1B0A-00H9H0/X41100WD, WDC WDS100T1B0A-00H9H0, // WDC WDS120G2G0A-00JH30/UE360000, WDC WDS240G2G0A-00JH30/UF300000, // WDC WDS500G2B0A-00SM50/X61130WD, WDC WDS200T2B0A-00SM50/X61130WD, // WDC WDS200T2B0A/X61190WD, WDC WDS120G1G0A-00SS50/Z3311000 - // WDC WDS500G2B0A-00SM50/401000WD - "WDC ?WDS((120|240|250|480|500)G|[12]00T)(1B|2B|1G|2G)0[AB](-.*)?", // *B* = Blue, *G* = Green, *2B* = Blue 3D NAND + // WDC WDS500G2B0A-00SM50/401000WD, + // WDC WDBNCE2500PNC/X61130WD, WDC WDBNCE0010PNC-WRSN/X41110WD, + // WDC WDS200T1R0A-68A4W0/411000WR, WDC WDS400T1R0A-68A4W0/411000WR + "WDC WDBNCE(250|500|00[124])0PNC(-.*)?|" // Blue 3D + "WDC ?WDS((120|240|250|480|500)G|[124]00T)(1B|2B|1G|2G|1R)0[AB](-.*)?", + // *B* = Blue, *G* = Green, *2B* = Blue 3D NAND, *1R* = Red SA500 "", "", - //"-v 5,raw48,Reallocated_Sector_Ct " // Reassigned Block Count - //"-v 9,raw48,Power_On_Hours " + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " // Reassigned Block Count + //"-v 9,raw24(raw8),Power_On_Hours " //"-v 12,raw48,Power_Cycle_Count " "-v 165,raw48,Block_Erase_Count " "-v 166,raw48,Minimum_PE_Cycles_TLC " @@ -4292,13 +4697,13 @@ const drive_settings builtin_knowndrives[] = { "-v 172,raw48,Erase_Fail_Count " "-v 173,raw48,Average_PE_Cycles_TLC " "-v 174,raw48,Unexpected_Power_Loss " - //"-v 184,raw48,End-to-end_Error " // Detection/Correction Count + //"-v 184,raw48,End-to-End_Error " // Detection/Correction Count //"-v 187,raw48,Reported_Uncorrect " // Uncorrectable Errors - //"-v 188,raw48,Command_Timeout - //"-v 194,tempminmax,Temperature_Celsius " - //"-v 199,raw48,UDMA_CRC_Error_Count // SATA CRC Errors + //"-v 188,raw48,Command_Timeout " + //"-v 194,tempminmax,Temperature_Celsius " + //"-v 199,raw48,UDMA_CRC_Error_Count " // SATA CRC Errors "-v 230,hex48,Media_Wearout_Indicator " // Maybe hex16 - //"-v 232,raw48,Available_Reserve_Space" + //"-v 232,raw48,Available_Reservd_Space" "-v 233,raw48,NAND_GB_Written_TLC " "-v 234,raw48,NAND_GB_Written_SLC " "-v 241,raw48,Host_Writes_GiB " @@ -4377,6 +4782,10 @@ const drive_settings builtin_knowndrives[] = { "WDC WD(12|16|25|32)00SB-.*", "", "", "" }, + { "Western Digital PiDrive Foundation Edition", // WDC WD3750LMCW-11D9GS3 + "WDC WD(3750|2500)LMCW-.*", + "", "", "" + }, { "Western Digital Caviar Serial ATA", "WDC WD(4|8|20|32)00BD-.*", "", "", "" @@ -4404,8 +4813,13 @@ const drive_settings builtin_knowndrives[] = { "", "", "" }, { "Western Digital Blue", // tested with WDC WD5000AZLX-00K4KA0/80.00A80, - // WDC WD10EZEX-00RKKA0/80.00A80, WDC WD10EZEX-75M2NA0/01.01A01, WDC WD40EZRZ-00WN9B0/80.00A80 - "WDC WD((25|32|50)00AAKX|5000AZ(LX|RZ)|7500A(AL|ZE)X|10E(AL|ZE)X|[1-6]0EZRZ)-.*", + // WDC WD10EZEX-00RKKA0/80.00A80, WDC WD10EZEX-75M2NA0/01.01A01, WDC WD40EZRZ-00WN9B0/80.00A80, + // APPLE HDD WDC WD10EALX-408EA0/07.01D03 + "(APPLE HDD )?WDC WD((25|32|50)00AAKX|5000AZ(LX|RZ)|7500A(AL|ZE)X|10E(AL|ZE)X|[1-6]0EZRZ)-.*", + "", "", "" + }, + { "Western Digital Blue (SMR)", // tested with WDC WD40EZAZ-00SF3B0/80.00A80 (TRIM: zeroed) + "WDC WD(20|40|60)EZAZ-.*", "", "", "" }, { "Western Digital RE Serial ATA", @@ -4421,7 +4835,7 @@ const drive_settings builtin_knowndrives[] = { "", "", "" }, { "Western Digital RE3 Serial ATA", // tested with WDC WD7502ABYS-02A6B0/03.00C06, - // WD1002FBYS-12/03.M0300 + // WD1002FBYS-12/03.M0300 "(WDC )?WD((25|32|50|75)02A|(75|10)02F)BYS-.*", "", "", "" }, @@ -4452,7 +4866,7 @@ const drive_settings builtin_knowndrives[] = { "", "", "" }, { "Western Digital Caviar Green", // tested with WDC WD7500AADS-00M2B0/01.00A01, - // WDC WD10EADX/77.04D77 + // WDC WD10EADX/77.04D77 "WDC WD((50|64|75)00AA[CV]S|(50|64|75)00AADS|10EA[CV]S|(10|15|20)EAD[SX])-.*", "", "", @@ -4473,20 +4887,24 @@ const drive_settings builtin_knowndrives[] = { "WDC WD((500|640)1AAL|7501AA[EL]|1001FA[EL]|2001FAS)S-.*|" "WDC WD(2002|7502|1502|5003|1002|5002)(FAE|AAE|AZE|AAL)X-.*", // could be // WD2002FAEX, WD7502AAEX, WD1502FAEX, WD5003AZEX, WD1002FAEX, WD5002AALX - "", "", "" + "", "", "-F xerrorlba" // WDC WD6401AALS-00L3B2/01.03B01 (ticket #1558) }, { "Western Digital Black", // tested with // WDC WD1003FZEX-00MK2A0/01.01A01, WDC WD3001FAEX-00MJRA0/01.01L01, // WDC WD3003FZEX-00Z4SA0/01.01A01, WDC WD4001FAEX-00MJRA0/01.01L01 // WDC WD4003FZEX-00Z4SA0/01.01A01, WDC WD5003AZEX-00RKKA0/80.00A80, - // WDC WD4004FZWX-00GBGB0/81.H0A81 - "WDC WD(6001|2003|5001|1003|4003|4004|5003|3003|3001)(FZW|FZE|AZE)X-.*|" // could be + // WDC WD4004FZWX-00GBGB0/81.H0A81, WDC WD4005FZBX-00K5WB0/01.01A01 + "WDC WD(6001|2003|5001|1003|4003|4004|4005|5003|3003|3001)(FZW|FZE|FZB|AZE)X-.*|" // could be // new series WD6001FZWX WD2003FZEX WD5001FZWX WD1003FZEX // WD4003FZEX WD5003AZEX WD3003FZEX WD4004FZWX "WDC WD(4001|3001|2002|1002|5003|7500|5000|3200|2500|1600)(FAE|AZE)X-.*", // old series: WD4001FAEX WD3001FAEX WD2002FAEX WD1002FAEX WD5003AZEX "", "", "" }, + { "Western Digital Black (SMR)", // ticket #1313 + "WDC WD10SPSX-.*", + "", "", "" + }, { "Western Digital AV ATA", // tested with WDC WD3200AVJB-63J5A0/01.03E01 "WDC WD(8|16|25|32|50)00AV[BJ]B-.*", "", "", "" @@ -4536,8 +4954,8 @@ const drive_settings builtin_knowndrives[] = { "WDC WD(4|6|8|10|12|16|25)00BEAS-.*", "", "", "" }, - { "Western Digital Scorpio Blue Serial ATA", - "WDC WD((4|6|8|10|12|16|25)00BEVS|(8|12|16|25|32|40|50|64)00BEVT|7500KEVT|10TEVT)-.*", + { "Western Digital Scorpio Blue Serial ATA", // tested with WDC WD3200BEVS-08VAT2/14.01A14 + "WDC WD((4|6|8|10|12|16|25|32)00BEVS|(8|12|16|25|32|40|50|64)00BEVT|7500KEVT|10TEVT)-.*", "", "", "" }, { "Western Digital Scorpio Blue Serial ATA (AF)", // tested with @@ -4558,40 +4976,56 @@ const drive_settings builtin_knowndrives[] = { // WDC WD40EFRX-68WT0N0/80.00A80, WDC WD60EFRX-68MYMN1/82.00A82, // WDC WD80EFAX-68LHPN0/83.H0A83, WDC WD80EFZX-68UW8N0/83.H0A83, // WDC WD80EZZX-11CSGA0/83.H0A03 (My Book 0x1058:0x25ee), - // WDC WD60EFAX-68SHWN0/82.00A82, WDC WD100EFAX-68LHPN0/83.H0A83, + // WDC WD100EFAX-68LHPN0/83.H0A83, // WDC WD120EMFZ-11A6JA0/81.00A81 (Easystore 0x1058:0x25fb) - "WDC WD(7500BFCX|10JFCX|[1-6]0EFRX|[68]0E[FZ][AZ]X|100EFAX|120EMFZ)-.*", + // WDC WD160EMFZ-11AFXA0/81.00A81 + // WDC WD40EFZX-68AWUN0/81.00B81, WDC WD20EFZX-68AWUN0/81.00B81 + // WDC WD140EFFX-68VBXN0/81.00A81 + "WDC WD(7500BFCX|10JFCX|[1-6]0EFRX|[2468]0E[FZ]ZX|(8|10)0EFAX|1[26]0EMFZ|140E(FF|FG)X)-.*", "", "", - "-v 22,raw48,Helium_Level" // WD80EFZX, WD100EFAX, WD120EMFZ + "-v 22,raw48,Helium_Level" // WD80EFAX, WD80EFZX, WD100EFAX, WD120EMFZ, WD160EMFZ + }, + { "Western Digital Red (SMR)", // ticket #1313, tested with WDC WD60EFAX-68SHWN0/82.00A82 + "WDC WD[2346]0EFAX-.*", + "", "", "" }, { "Western Digital Red Pro", // tested with WDC WD2001FFSX-68JNUN0/81.00A81, - // WDC WD6002FFWX-68TZ4N0/83.H0A83, WDC WD101KFBX-68R56N0/83.H0A03 - "WDC WD([2-68]00[123]FF[BSW]|101KFB)X-.*", + // WDC WD6002FFWX-68TZ4N0/83.H0A83, WDC WD101KFBX-68R56N0/83.H0A03, + // WDC WD102KFBX-68M95N0/83.00A83 + "WDC WD([2-68]00[123]FF[BSW]|10[12]KFB)X-.*", "", "", - "-v 22,raw48,Helium_Level" // WD101KFBX + "-v 22,raw48,Helium_Level" // WD101KFBX (but not WD102KFBX) }, - { "Western Digital Purple", // tested with WDC WD40PURX-64GVNY0/80.00A80, + { "Western Digital Purple (Pro)", // tested with WDC WD40PURX-64GVNY0/80.00A80, // WDC WD40PURZ-85TTDY0/80.00A80 // WDC WD80PUZX-64NEAY0/80.H0A80 - "WDC WD[1234568]0PU[RZ][XZ]-.*", - "", "", "" + // WDC WD121PURP-85B5SY0/82.00A82 + "WDC WD[1234568](0|[0248]1)PU[RZ][PXZ]-.*", + "", "", + "-v 22,raw48,Helium_Level" // WD121PURP-85B5SY0, WD80PUZX-64NEAY0 }, { "Western Digital Gold", // tested with WDC WD1005FBYZ-01YCBB2/RR07, + // WDC WD1005VBYZ-02RRWB2/RR07, WDC WD2005VBYZ-02RRWB2/RR07 // WDC WD2005FBYZ-01YCBB2/RR07, WDC WD4002FYYZ-01B7CB0/01.01M02, // WDC WD4003FRYZ-01F0DB0/01.01H01, WDC WD6003FRYZ-01F0DB0/01.01H01, // WDC WD8003FRYZ-01JPDB1/01.01H02, WDC WD8004FRYZ-01VAEB0/01.01H01, - // WDC WD121KRYZ-01W0RB0/01.01H01, - "WDC WD([12]005FB|4002FY|4003FR|600[23]FR|800[234]FR|1[02]1KR)YZ-.*", + // WDC WD102KRYZ-01A5AB0/01.01H01, WDC WD121KRYZ-01W0RB0/01.01H01, + // WDC WD141KRYZ-01C66B0/01.01H01, WDC WD161KRYZ-01AGBB0/01.01H01 + "WDC WD([12]005[FV]B|4002FY|4003FR|600[23]FR|800[234]FR|([12][02468]1|102)KR)YZ-.*", "", "", - "-v 22,raw48,Helium_Level" // WD121KRYZ + "-v 22,raw48,Helium_Level" // WD121KRYZ, WD141KRYZ }, { "Western Digital Blue Mobile", // tested with WDC WD5000LPVX-08V0TT2/03.01A03, - // WDC WD10JPVX-75JC3T0/0301A03, WDC WD10JPVX-22JC3T0/01.01A01, - // WDC WD10SPZX-22Z10T0/01.01A01, WDC WD10SPZX-21Z10T0/02.01A02, - // WDC WD20NPVZ-00WFZT0/01.01A01, WDC WD20SPZX-22CRAT0/01.01A01, - // WDC WD20SPZX-22UA7T0/01.01A01 - "WDC WD(3200LPCX|5000[BL]P[CV]X|7500BPVX|10[JS]P[VZ]X|15NPVZ|20NPVZ|20SPZX)-.*", - "", "", "" + // WDC WD10JPVX-75JC3T0/0301A03, WDC WD10JPVX-22JC3T0/01.01A01, + // WDC WD20NPVZ-00WFZT0/01.01A01 + "WDC WD(3200LPCX|5000[BL]P[CV]X|7500BPVX|10JP[VZ]X|(15|20)NPVZ)-.*", + "", "", "" + }, + { "Western Digital Blue Mobile (SMR)", // ticket #1313, tested with + // WDC WD10SPZX-22Z10T0/01.01A01, WDC WD10SPZX-21Z10T0/02.01A02, + // WDC WD20SPZX-22CRAT0/01.01A01, WDC WD20SPZX-22UA7T0/01.01A01 + "WDC WD[12]0SPZX-.*", + "", "", "" }, { "Western Digital Green Mobile", // tested with WDC WD20NPVX-00EA4T0/01.01A01 "WDC WD(15|20)NPV[TX]-.*", @@ -4624,8 +5058,11 @@ const drive_settings builtin_knowndrives[] = { // WDC WD20NMVW-59AV3S3/01.01A01 (0x1058:0x107d), // WDC WD30NMVW-11C3NS4/01.01A01, // WDC WD40NMZW-11GX6S1/01.01A01 (0x1058:0x2599/25e2/25fa) + // WDC WD50NDZW-11A8JS1/01.01A01 (0x1058:0x2627) // WDC WD50NDZW-11MR8S1/02.01A02 - "WDC WD((5000[LK]|7500[BK]|10[JST]|[234]0N)M|50ND)[VZ][VW]-.*", // *W-* = USB 3.0 + // WDC WD40NDZM-59A8KS1/01.01A01 + "WDC WD((5000[LK]|7500[BK]|10[JST]|[234]0N)M|50ND|40ND)[VZ][VWM]-.*", // *W-* = USB 3.0 + // Model numbers with "M" suffix denote the use of USB-C receptacles instead of Micro-B. "", "", "" }, { "Quantum Bigfoot", // tested with TS10.0A/A21.0G00, TS12.7A/A21.0F00 @@ -4702,6 +5139,12 @@ const drive_settings builtin_knowndrives[] = { "-d sat,12" // ATA output registers missing }, // Hewlett-Packard + { "USB: HP Personal Media Drive; ", + "0x03f0:0x070c", + "", + "", + "-d usbsunplus" + }, { "USB: HP Desktop HD BD07; ", // 2TB "0x03f0:0xbd07", "", @@ -4742,7 +5185,7 @@ const drive_settings builtin_knowndrives[] = { "-d sat" }, { "USB: Buffalo; ", - "0x0411:0x0(1[df]9|1e7|240|251|27e)", // 0x01d9: HD-PCTU2 (0x0108), 0x01e7: HD-PNTU3, + "0x0411:0x0(157|1[df]9|1e7|240|251|27e)", // 0x0157: HD-PEU2, 0x01d9: HD-PCTU2 (0x0108), 0x01e7: HD-PNTU3, // 0x01f9: HD-PZU3 (0x0100), 0x0240: HD-PCFU3, 0x0251: HD-PNFU3, 0x027e: HD-LC3 "", "", @@ -4755,7 +5198,7 @@ const drive_settings builtin_knowndrives[] = { "", "-d usbjmicron" }, - // Hitachi (?) + // Hitachi / Renesas { "USB: ; Renesas uPD720231A", // USB2/3->SATA // 0x0229: Pi-102 Raspberry Pi USB to mSATA Converter Board // 0x022a: DeLock 62652 converter SATA 6GB/s > USB 3.0 @@ -4824,12 +5267,18 @@ const drive_settings builtin_knowndrives[] = { "", "-d usbjmicron" // 0x1f0a: works also with "-d sat" }, - { "USB: Samsung S1 Portable; JMicron", - "0x04e8:0x2f03", + { "USB: Samsung S1; JMicron", + "0x04e8:0x2f0[36]", // 0x2f03: S1 Portable, 0x2f06: S1 Mini (SAMSUNG HS20YJZ/3AU10-01) "", "", "-d usbjmicron" }, + { "USB: Samsung Portable SSD T7; ASMedia ASM2362", + "0x04e8:0x4001", + "", + "", + "-d sntasmedia" + }, { "USB: Samsung Story Station; ", "0x04e8:0x5f0[56]", "", @@ -4896,6 +5345,12 @@ const drive_settings builtin_knowndrives[] = { "", "-d sat" }, + { "USB: Sony HD-E1; ", + "0x054c:0x05bf", // Sony HD-E1B - 1TB USB3.0 + "", // 0x6610 + "", + "-d sat" + }, // Sunplus { "USB: ; SunPlus", "0x04fc:0x0c05", @@ -4915,6 +5370,13 @@ const drive_settings builtin_knowndrives[] = { "", "-d usbsunplus" }, + // Intrinsix + { "USB: ; Intrinsix", + "0x0578:0x0578", + "", // 0x0202 + "", + "-d sat" // ATA output registers missing + }, // Iomega { "USB: Iomega Prestige Desktop USB 3.0; ", "0x059b:0x0070", @@ -5069,8 +5531,8 @@ const drive_settings builtin_knowndrives[] = { "-d sat" }, { "USB: LaCie; ", // 0x1070: ASMedia 1053 ? - "0x059f:0x10(6f|7[05])", - "", // 6f/70=0x0001, 75=0x0000 + "0x059f:0x10(6f|7[05]|b8)", // 0x0x10b8: d2 PROFESSIONAL + "", // 6f/70/b8=0x0001, 75=0x0000 "", "-d sat" }, @@ -5095,22 +5557,10 @@ const drive_settings builtin_knowndrives[] = { "", "" // unsupported }, - { "USB: ; Genesys Logic", // TODO: requires '-T permissive' - "0x05e3:0x0718", - "", // 0x0041 - "", - "-d sat" - }, - { "USB: ; Genesys Logic GL3310", - "0x05e3:0x0731", // Chieftec USB 3.0 2.5" case - "", - "", - "-d sat" - }, { "USB: ; Genesys Logic", - "0x05e3:0x0735", - "", // 0x1003 - "", + "0x05e3:0x(0718|073[15]|2013)", // 0x0718(0x0041): Requires '-T permissive', + "", // 0x0731: Genesys Logic GL3310, Chieftec USB 3.0 2.5" case, 0x0735(0x1003): ?, + "", // 0x2013(0x0100): Sharkoon QuickPort Duo Clone USB 3.1 Type-C "-d sat" }, // Micron @@ -5146,6 +5596,20 @@ const drive_settings builtin_knowndrives[] = { "", "-d sat" }, + // Jess-Link + { "USB: Packard Bell Carbon; ", + "0x0766:0x0017", + "", // 0x0108 + "", + "" // unsupported + }, + // Logitec + { "USB: Logitec LGB-4BNHUC; ", + "0x0789:0x0296", + "", + "", + "-d sat" + }, // SanDisk { "USB: SanDisk SDCZ80 Flash Drive; Fujitsu", // ATA ID: SanDisk pSSD "0x0781:0x558[08]", @@ -5196,13 +5660,13 @@ const drive_settings builtin_knowndrives[] = { "", "" // unsupported }, - { "USB: Freecom HD; JMicron", // 500GB - "0x07ab:0xfcd[6a]", + { "USB: Freecom; JMicron", // 0xfc85: Freecom FHD-2 Pro / JMicron JM20316 + "0x07ab:0xfc(85|d[6a])", "", "", "-d usbjmicron" }, - // Fast Point Technologies (?) + // Fast Point Technologies { "USB: ; ", "0x0850:0x00(03|31)", "", // 0x0100 @@ -5260,6 +5724,12 @@ const drive_settings builtin_knowndrives[] = { "", "-d sat" }, + { "USB: Toshiba; Sunplus", + "0x0930:0xa002", + "", // 0x0103 + "", + "-d usbsunplus" + }, // Lumberg, Inc. { "USB: Toshiba Stor.E; Sunplus", "0x0939:0x0b1[56]", @@ -5274,10 +5744,10 @@ const drive_settings builtin_knowndrives[] = { "-d sat,12" }, // Apricorn - { "USB: Apricorn SATA Wire; ", - "0x0984:0x0(040|301)", // 0x0040: Apricorn SATA Wire + { "USB: Apricorn; ", + "0x0984:0x0(040|301|320)", // 0x0040: Apricorn SATA Wire "", // 0x0301 (0x0201): Corsair SSD & HDD Cloning Kit - "", + "", // 0x0320 (0x0133): Apricorn EZ-UP3 (Initio INIC-3607) "-d sat" }, // Neodio Technologies @@ -5306,6 +5776,25 @@ const drive_settings builtin_knowndrives[] = { "", "-d sat" }, + // Realtek + { "USB: ; Realtek RTL9210", // USB->PCIe (NVMe) + "0x0bda:0x9210", + "", // 0x2100 + "", + "-d sntrealtek" + }, + { "USB: ; Realtek RTL9211", // USB->PCIe (NVMe) or SATA + "0x(0bda|2eb9):0x9211", // 0x0bda: guessed, 0x2eb9: Sabrent EC-WPTF + ".*", // fall through to next entry and report ambiguous result + "", + "-d sntrealtek" // NVMe or ... + }, + { "USB: ; Realtek RTL9211", + "0x(0bda|2eb9):0x9211", + "", + "", + "" // ... SATA (unsupported) + }, // Addonics { "USB: Addonics HDMU3; ", // (ticket #609) "0x0bf6:0x1001", @@ -5432,9 +5921,10 @@ const drive_settings builtin_knowndrives[] = { }, // ADATA { "USB: ADATA; ", - "0x125f:0xa(11|13|15|31|35|37|75)a", // 0xa11a: Classic CH11 1TB, 0xa13a: NH13 1TB, - "", // 0xa15a: HD710 1TB, 0xa31a: HV620 2TB (0x0100), 0xa35a: HD650 2TB (0x6503), - "", // 0xa37a: Silverstone MS10 M.2 (0x3103), 0xa75a: HD710P 4TB + "0x125f:0xa(1[135]|21|31|3[57]|68|7[56]|83)a", // 0xa11a: Classic CH11 1TB, 0xa13a: NH13 1TB, + "", // 0xa15a: HD710 1TB, 0xa21a: HV610 (0x4504), 0xa31a: HV620 2TB (0x0100), + "", // 0xa35a: HD650 2TB (0x6503), 0xa37a: Silverstone MS10 M.2 (0x3103), 0xa75a: HD710P 4TB, + // 0xa68a: SD600, 0xa76a: ED600 (0x0204), 0xa83a: HD330 (0x0100) "-d sat" }, { "USB: ADATA; Cypress", @@ -5515,7 +6005,7 @@ const drive_settings builtin_knowndrives[] = { }, { "USB: ; JMicron JMS578", // USB->SATA "0x152d:0x0578", - "", // 0x0100 + "", // 0x0100, 0x0204 "", "-d sat" }, @@ -5550,7 +6040,7 @@ const drive_settings builtin_knowndrives[] = { "-d sat" }, { "USB: ; JMicron JMS576", // USB3.1->SATA - "0x152d:0x1576", + "0x152d:0x[01]576", "", // 0x0204, ICY BOX IB-223U3a-B "", "-d sat" @@ -5599,10 +6089,16 @@ const drive_settings builtin_knowndrives[] = { }, { "USB: ; JMicron", // USB->SATA "0x152d:0x2509", - "", // 0x0100 + "0x0100", // old firmware "", "-d usbjmicron,x" }, + { "USB: ; JMicron", // USB->SATA + "0x152d:0x2509", + "0x0107", // newer firmware supports SAT + "", + "-d sat" + }, { "USB: ; JMicron JMS566", // USB3->SATA "0x152d:0x2566", // e.g. Chieftec CEB-7035S "", // 0x0114 @@ -5647,12 +6143,18 @@ const drive_settings builtin_knowndrives[] = { }, // PNY { "USB: ; PNY", - "0x154b:0x5678", - "", // 0x5408 + "0x154b:0x(5678|8001|f009)", + "", // 0x5678: 0x5408 "", "-d sat" }, // ASMedia + { "USB: ; ASMedia ASM2362", // USB->PCIe (NVMe) + "0x174c:0x2362", + "", + "", + "-d sntasmedia" + }, { "USB: ; ASMedia", "0x174c:0x....", "", @@ -5691,7 +6193,7 @@ const drive_settings builtin_knowndrives[] = { "", "-d usbsunplus" }, - { "USB: Verbatim Pocket Hard Drive; JMicron", // SAMSUNG SpinPoint N3U-3 (USB, 4KiB LLS) + { "USB: Verbatim Pocket Hard Drive; JMicron", // SAMSUNG HS25YJZ/3AU10-01 "0x18a5:0x0227", "", "", @@ -5742,6 +6244,13 @@ const drive_settings builtin_knowndrives[] = { "", "-d usbsunplus" }, + // Kanguru Solutions + { "USB: ; ", // ICY BOX IB-256WP + "0x1e1d:0x20a0", + "", // 0x3203 + "", + "-d sat" // ATA output registers missing + }, // TrekStor { "USB: TrekStor DataStation; ", // DataStation maxi light (USB 3.0) "0x1e68:0x0050", @@ -5749,13 +6258,19 @@ const drive_settings builtin_knowndrives[] = { "", "-d sat" }, - // 0x1e91 (?) + // Other World Computing { "USB: OWC Envoy Pro; ", "0x1e91:0xa2a5", "", // 0x0100 "", "-d sat" }, + { "USB: OWC Mercury Elite Pro Quad; ", + "0x1e91:0xa4a7", + "", // 0x0100 + "", + "-d sat" + }, // Innostor { "USB: ; Innostor IS611", // USB3->SATA+PATA "0x1f75:0x0611", // SMART access via PATA does not work @@ -5776,6 +6291,12 @@ const drive_settings builtin_knowndrives[] = { "-d sat" }, // VIA Labs + { "USB: ; VIA VL700", // USB2/3->SATA + "0x2109:0x0700", // Diginote 2.5" USB-3.0 HDD enclosure 80000894 + "", // 0x0005 + "", + "-d sat,12" // ATA output registers missing + }, { "USB: ; VIA VL701", // USB2/3->SATA "0x2109:0x0701", // Intenso 2,5" 1TB USB3 "", // 0x0107 @@ -5788,8 +6309,8 @@ const drive_settings builtin_knowndrives[] = { "", // 0x0507, Intenso 2,5" Memory Case 2TB USB3 "-d sat" }, - { "USB: ; VIA VL715/6", // USB2/3->SATA, USB-C->SATA - "0x2109:0x071[56]", + { "USB: ; VIA VL715/6/7", // USB2/3->SATA, USB-C->SATA + "0x2109:0x071[567]", "", // 0x0336/0x0000 "", "-d sat" @@ -5801,13 +6322,21 @@ const drive_settings builtin_knowndrives[] = { "", "-d sat" }, - // 0x2537 (?) + // Norelsys { "USB: ; ", // USB 3.0 "0x2537:0x106[68]", // 0x1066: Orico 2599US3, 0x1068: Fantec ER-35U3 "", // 0x0100 "", "-d sat" }, + // InX8 / AKiTiO + { "USB: AkiTio NT2 U3.1C; ", + "0x2ce5:0x0014", + "", // 0x0100 + "", + "-d sat" + }, + // 0x2eb9 (?): See Realtek (0x0bda) above // Power Quotient International { "USB: PQI H560; ", "0x3538:0x0902", @@ -5824,10 +6353,10 @@ const drive_settings builtin_knowndrives[] = { }, // Sharkoon { "USB: Sharkoon QuickPort XT USB 3.0; ", - "0x357d:0x7788", - "", - "", - "-d sat" + "0x357d:0x7788", + "", + "", + "-d sat" }, // Hitachi/SimpleTech { "USB: Hitachi Touro Desk; JMicron", // 3TB @@ -5888,7 +6417,7 @@ const drive_settings builtin_knowndrives[] = { "", "-d sat" }, - // 0xabcd (?) + // Logilink { "USB: ; ", "0xabcd:0x610[34]", // 0x6103: LogiLink AU0028A V1.0 USB 3.0 to IDE & SATA Adapter // 0x6104: LogiLink PCCloneEX Lite diff --git a/SOURCES/smartmontools-7.2-logsuppagefix1.patch b/SOURCES/smartmontools-7.2-logsuppagefix1.patch new file mode 100644 index 0000000..769ddce --- /dev/null +++ b/SOURCES/smartmontools-7.2-logsuppagefix1.patch @@ -0,0 +1,85 @@ +From da45fc39390208c30b3ba656ccfb478e217b7401 Mon Sep 17 00:00:00 2001 +From: "Milan P. Gandhi" +Date: Mon, 17 Oct 2022 14:23:54 +0530 +Subject: [PATCH 1/3] scsiprint.cpp: Attempted fix to tickets 1272, 1331 and + 1346: Log sub-page handling + +--- + smartmontools-7.1/scsiprint.cpp | 27 +++++++++++++++++---------- + 1 file changed, 17 insertions(+), 10 deletions(-) + +diff --git a/smartmontools-7.1/scsiprint.cpp b/smartmontools-7.1/scsiprint.cpp +index 4c52268..1edb7c2 100644 +--- a/smartmontools-7.1/scsiprint.cpp ++++ b/smartmontools-7.1/scsiprint.cpp +@@ -118,8 +118,10 @@ static void + scsiGetSupportedLogPages(scsi_device * device) + { + bool got_subpages = false; +- int k, bump, err, payload_len, num_unreported, num_unreported_spg; +- int payload_len_pg0_0 = 0; ++ int k, bump, err, resp_len, num_unreported, num_unreported_spg; ++ int resp_len_pg0_0 = 0; ++ int resp_len_pg0_ff = 0; /* in SPC-4, response length of supported ++ * log pages _and_ log subpages */ + const uint8_t * up; + uint8_t sup_lpgs[LOG_RESP_LEN]; + +@@ -143,7 +145,7 @@ scsiGetSupportedLogPages(scsi_device * device) + (scsi_version <= SCSI_VERSION_HIGHEST)) { + /* unclear what code T10 will choose for SPC-6 */ + memcpy(sup_lpgs, gBuf, LOG_RESP_LEN); +- payload_len_pg0_0 = sup_lpgs[3]; ++ resp_len_pg0_0 = sup_lpgs[3]; + if ((err = scsiLogSense(device, SUPPORTED_LPAGES, SUPP_SPAGE_L_SPAGE, + gBuf, LOG_RESP_LONG_LEN, + -1 /* just single not double fetch */))) { +@@ -160,33 +162,38 @@ scsiGetSupportedLogPages(scsi_device * device) + if (scsi_debugmode > 0) + pout("%s supported subpages is bad SPF=%u SUBPG=%u\n", + logSenRspStr, !! (0x40 & gBuf[0]), gBuf[2]); +- } else ++ } else { ++ resp_len_pg0_ff = sg_get_unaligned_be16(gBuf + 2); + got_subpages = true; ++ } + } +- } else ++ } else { + memcpy(sup_lpgs, gBuf, LOG_RESP_LEN); ++ resp_len_pg0_0 = sup_lpgs[3]; ++ } + + if (got_subpages) { +- payload_len = sg_get_unaligned_be16(gBuf + 2); +- if (payload_len <= payload_len_pg0_0) { ++ resp_len = sg_get_unaligned_be16(gBuf + 2); ++ if (resp_len_pg0_ff <= resp_len_pg0_0) { + /* something is rotten ....., ignore SUPP_SPAGE_L_SPAGE */ +- payload_len = payload_len_pg0_0; ++ resp_len = resp_len_pg0_0; + bump = 1; + up = sup_lpgs + LOGPAGEHDRSIZE; + got_subpages = false; + (void)got_subpages; // not yet used below, suppress warning + } else { ++ resp_len = resp_len_pg0_ff; + bump = 2; + up = gBuf + LOGPAGEHDRSIZE; + } + } else { +- payload_len = payload_len_pg0_0; ++ resp_len = resp_len_pg0_0; + bump = 1; + up = sup_lpgs + LOGPAGEHDRSIZE; + } + + num_unreported_spg = 0; +- for (num_unreported = 0, k = 0; k < payload_len; k += bump, up += bump) { ++ for (num_unreported = 0, k = 0; k < resp_len; k += bump, up += bump) { + uint8_t pg_num = 0x3f & up[0]; + uint8_t sub_pg_num = (0x40 & up[0]) ? up[1] : 0; + +-- +2.35.1 + diff --git a/SOURCES/smartmontools-7.2-logsuppagefix2.patch b/SOURCES/smartmontools-7.2-logsuppagefix2.patch new file mode 100644 index 0000000..409bb69 --- /dev/null +++ b/SOURCES/smartmontools-7.2-logsuppagefix2.patch @@ -0,0 +1,185 @@ +From b6064d5ba30ee355e71e7543fdb66ea99fcebae4 Mon Sep 17 00:00:00 2001 +From: "Milan P. Gandhi" +Date: Mon, 17 Oct 2022 14:24:42 +0530 +Subject: [PATCH 2/3] scsiprint.cpp: Add 'Accumulated power on time' field to + 'smartctl -a' + +--- + smartmontools-7.1/scsiprint.cpp | 82 ++++++++++++++++++++++----------- + 1 file changed, 56 insertions(+), 26 deletions(-) + +diff --git a/smartmontools-7.1/scsiprint.cpp b/smartmontools-7.1/scsiprint.cpp +index 1edb7c2..81bed88 100644 +--- a/smartmontools-7.1/scsiprint.cpp ++++ b/smartmontools-7.1/scsiprint.cpp +@@ -120,7 +120,7 @@ scsiGetSupportedLogPages(scsi_device * device) + bool got_subpages = false; + int k, bump, err, resp_len, num_unreported, num_unreported_spg; + int resp_len_pg0_0 = 0; +- int resp_len_pg0_ff = 0; /* in SPC-4, response length of supported ++ int resp_len_pg0_ff = 0; /* in SPC-4, response length of supported + * log pages _and_ log subpages */ + const uint8_t * up; + uint8_t sup_lpgs[LOG_RESP_LEN]; +@@ -163,13 +163,13 @@ scsiGetSupportedLogPages(scsi_device * device) + pout("%s supported subpages is bad SPF=%u SUBPG=%u\n", + logSenRspStr, !! (0x40 & gBuf[0]), gBuf[2]); + } else { +- resp_len_pg0_ff = sg_get_unaligned_be16(gBuf + 2); ++ resp_len_pg0_ff = sg_get_unaligned_be16(gBuf + 2); + got_subpages = true; +- } ++ } + } + } else { + memcpy(sup_lpgs, gBuf, LOG_RESP_LEN); +- resp_len_pg0_0 = sup_lpgs[3]; ++ resp_len_pg0_0 = sup_lpgs[3]; + } + + if (got_subpages) { +@@ -182,7 +182,7 @@ scsiGetSupportedLogPages(scsi_device * device) + got_subpages = false; + (void)got_subpages; // not yet used below, suppress warning + } else { +- resp_len = resp_len_pg0_ff; ++ resp_len = resp_len_pg0_ff; + bump = 2; + up = gBuf + LOGPAGEHDRSIZE; + } +@@ -1162,12 +1162,14 @@ static const char * reassign_status[] = { + // Returns 0 if ok else FAIL* bitmask. Note can have a status entry + // and up to 2048 events (although would hope to have less). May set + // FAILLOG if serious errors detected (in the future). ++// When only_pow_time is true only print "Accumulated power on time" ++// data, if available. + static int +-scsiPrintBackgroundResults(scsi_device * device) ++scsiPrintBackgroundResults(scsi_device * device, bool only_pow_time) + { ++ bool noheader = true; ++ bool firstresult = true; + int num, j, m, err, truncated; +- int noheader = 1; +- int firstresult = 1; + int retval = 0; + uint8_t * ucp; + static const char * hname = "Background scan results"; +@@ -1188,9 +1190,12 @@ scsiPrintBackgroundResults(scsi_device * device) + // compute page length + num = sg_get_unaligned_be16(gBuf + 2) + 4; + if (num < 20) { +- print_on(); +- pout("%s %s length is %d, no scan status\n", hname, logSenStr, num); +- print_off(); ++ if (! only_pow_time) { ++ print_on(); ++ pout("%s %s length is %d, no scan status\n", hname, logSenStr, ++ num); ++ print_off(); ++ } + return FAILSMART; + } + truncated = (num > LOG_RESP_LONG_LEN) ? num : 0; +@@ -1205,22 +1210,32 @@ scsiPrintBackgroundResults(scsi_device * device) + switch (pc) { + case 0: + if (noheader) { +- noheader = 0; +- pout("%s log\n", hname); ++ noheader = false; ++ if (! only_pow_time) ++ pout("%s log\n", hname); + } +- pout(" Status: "); ++ if (! only_pow_time) ++ pout(" Status: "); + if ((pl < 16) || (num < 16)) { +- pout("\n"); ++ if (! only_pow_time) ++ pout("\n"); + break; + } + j = ucp[9]; +- if (j < (int)(sizeof(bms_status) / sizeof(bms_status[0]))) +- pout("%s\n", bms_status[j]); +- else +- pout("unknown [0x%x] background scan status value\n", j); ++ if (! only_pow_time) { ++ if (j < (int)(sizeof(bms_status) / sizeof(bms_status[0]))) ++ pout("%s\n", bms_status[j]); ++ else ++ pout("unknown [0x%x] background scan status value\n", j); ++ } + j = sg_get_unaligned_be32(ucp + 4); +- pout(" Accumulated power on time, hours:minutes %d:%02d " +- "[%d minutes]\n", (j / 60), (j % 60), j); ++ pout("%sAccumulated power on time, hours:minutes %d:%02d", ++ (only_pow_time ? "" : " "), (j / 60), (j % 60)); ++ if (only_pow_time) { ++ pout("\n"); ++ break; ++ } else ++ pout(" [%d minutes]\n", j); + jglb["power_on_time"]["hours"] = j / 60; + jglb["power_on_time"]["minutes"] = j % 60; + pout(" Number of background scans performed: %d, ", +@@ -1232,9 +1247,12 @@ scsiPrintBackgroundResults(scsi_device * device) + break; + default: + if (noheader) { +- noheader = 0; +- pout("\n%s log\n", hname); ++ noheader = false; ++ if (! only_pow_time) ++ pout("\n%s log\n", hname); + } ++ if (only_pow_time) ++ break; + if (firstresult) { + firstresult = 0; + pout("\n # when lba(hex) [sk,asc,ascq] " +@@ -1262,10 +1280,11 @@ scsiPrintBackgroundResults(scsi_device * device) + num -= pl; + ucp += pl; + } +- if (truncated) ++ if (truncated && (! only_pow_time)) + pout(" >>>> log truncated, fetched %d of %d available " + "bytes\n", LOG_RESP_LONG_LEN, truncated); +- pout("\n"); ++ if (! only_pow_time) ++ pout("\n"); + return retval; + } + +@@ -2447,6 +2466,17 @@ scsiPrintMain(scsi_device * device, const scsi_print_options & options) + scsiGetSupportedLogPages(device); + if (gTempLPage) + scsiPrintTemp(device); ++ } ++ // in the 'smartctl -a" case only want: "Accumulated power on time" ++ if ((! options.smart_background_log) && is_disk) { ++ if (! checkedSupportedLogPages) ++ scsiGetSupportedLogPages(device); ++ res = 0; ++ if (gBackgroundResultsLPage) ++ res = scsiPrintBackgroundResults(device, true); ++ any_output = true; ++ } ++ if (options.smart_vendor_attrib) { + if (gStartStopLPage) + scsiGetStartStopData(device); + if (is_disk) { +@@ -2488,7 +2518,7 @@ scsiPrintMain(scsi_device * device, const scsi_print_options & options) + scsiGetSupportedLogPages(device); + res = 0; + if (gBackgroundResultsLPage) +- res = scsiPrintBackgroundResults(device); ++ res = scsiPrintBackgroundResults(device, false); + else { + pout("Device does not support Background scan results logging\n"); + failuretest(OPTIONAL_CMD, returnval|=FAILSMART); +-- +2.35.1 + diff --git a/SOURCES/smartmontools-7.2-logsuppagefix3.patch b/SOURCES/smartmontools-7.2-logsuppagefix3.patch new file mode 100644 index 0000000..5dc4728 --- /dev/null +++ b/SOURCES/smartmontools-7.2-logsuppagefix3.patch @@ -0,0 +1,231 @@ +From 7c207dd5d06efccdee7258f832d4216fe5d1d998 Mon Sep 17 00:00:00 2001 +From: "Milan P. Gandhi" +Date: Mon, 17 Oct 2022 14:25:34 +0530 +Subject: [PATCH 3/3] scsiprint.cpp: applied patch proposed by Yannick Hemery + to merge both 'supported' log pages + +--- + smartmontools-7.1/scsicmds.h | 5 ++ + smartmontools-7.1/scsiprint.cpp | 103 +++++++++++++++++--------------- + 2 files changed, 59 insertions(+), 49 deletions(-) + +diff --git a/smartmontools-7.1/scsicmds.h b/smartmontools-7.1/scsicmds.h +index 516f773..9bd8b21 100644 +--- a/smartmontools-7.1/scsicmds.h ++++ b/smartmontools-7.1/scsicmds.h +@@ -167,6 +167,11 @@ struct scsi_readcap_resp { + uint16_t l_a_lba; /* Lowest Aligned Logical Block Address */ + }; + ++struct scsi_supp_log_pages { ++ uint8_t page_code; ++ uint8_t subpage_code; ++}; ++ + /* SCSI Peripheral types (of interest) */ + #define SCSI_PT_DIRECT_ACCESS 0x0 + #define SCSI_PT_SEQUENTIAL_ACCESS 0x1 +diff --git a/smartmontools-7.1/scsiprint.cpp b/smartmontools-7.1/scsiprint.cpp +index 81bed88..21a4929 100644 +--- a/smartmontools-7.1/scsiprint.cpp ++++ b/smartmontools-7.1/scsiprint.cpp +@@ -39,6 +39,9 @@ uint8_t gBuf[GBUF_SIZE]; + #define LOG_RESP_LONG_LEN ((62 * 256) + 252) + #define LOG_RESP_TAPE_ALERT_LEN 0x144 + ++/* Supported log pages + Supported log pages and subpages maximum count */ ++#define SCSI_SUPP_LOG_PAGES_MAX_COUNT (252 + (62 * 128) + 126) ++ + /* Log pages supported */ + static bool gSmartLPage = false; /* Informational Exceptions log page */ + static bool gTempLPage = false; +@@ -118,14 +121,17 @@ static void + scsiGetSupportedLogPages(scsi_device * device) + { + bool got_subpages = false; +- int k, bump, err, resp_len, num_unreported, num_unreported_spg; +- int resp_len_pg0_0 = 0; +- int resp_len_pg0_ff = 0; /* in SPC-4, response length of supported +- * log pages _and_ log subpages */ ++ int k, err, resp_len, num_unreported, num_unreported_spg; ++ int supp_lpg_and_spg_count = 0; ++ + const uint8_t * up; + uint8_t sup_lpgs[LOG_RESP_LEN]; ++ struct scsi_supp_log_pages supp_lpg_and_spg[SCSI_SUPP_LOG_PAGES_MAX_COUNT]; + + memset(gBuf, 0, LOG_RESP_LEN); ++ memset(supp_lpg_and_spg, 0, sizeof(supp_lpg_and_spg)); ++ ++ /* Get supported log pages */ + if ((err = scsiLogSense(device, SUPPORTED_LPAGES, 0, gBuf, + LOG_RESP_LEN, 0 /* do double fetch */))) { + if (scsi_debugmode > 0) +@@ -140,12 +146,23 @@ scsiGetSupportedLogPages(scsi_device * device) + logSenStr, scsiErrString(err)); + if (err) + return; +- memcpy(sup_lpgs, gBuf, LOG_RESP_LEN); +- } else if ((scsi_version >= SCSI_VERSION_SPC_4) && +- (scsi_version <= SCSI_VERSION_HIGHEST)) { ++ } ++ ++ memcpy(sup_lpgs, gBuf, LOG_RESP_LEN); ++ resp_len = gBuf[3]; ++ up = gBuf + LOGPAGEHDRSIZE; ++ ++ for (k = 0; k < resp_len; k += 1) { ++ uint8_t page_code = 0x3f & up[k]; ++ supp_lpg_and_spg[supp_lpg_and_spg_count++] = {page_code, 0}; ++ } ++ ++ /* Get supported log pages and subpages. Most drives seems to include the ++ supported log pages here as well, but some drives such as the Samsung ++ PM1643a will only report the additional log pages with subpages here */ ++ if ((scsi_version >= SCSI_VERSION_SPC_4) && ++ (scsi_version <= SCSI_VERSION_HIGHEST)) { + /* unclear what code T10 will choose for SPC-6 */ +- memcpy(sup_lpgs, gBuf, LOG_RESP_LEN); +- resp_len_pg0_0 = sup_lpgs[3]; + if ((err = scsiLogSense(device, SUPPORTED_LPAGES, SUPP_SPAGE_L_SPAGE, + gBuf, LOG_RESP_LONG_LEN, + -1 /* just single not double fetch */))) { +@@ -153,6 +170,7 @@ scsiGetSupportedLogPages(scsi_device * device) + pout("%s for supported pages and subpages failed [%s]\n", + logSenStr, scsiErrString(err)); + } else { ++ /* Ensure we didn't get the same answer than without the subpages */ + if (0 == memcmp(gBuf, sup_lpgs, LOG_RESP_LEN)) { + if (scsi_debugmode > 0) + pout("%s: %s ignored subpage field, bad\n", +@@ -163,48 +181,34 @@ scsiGetSupportedLogPages(scsi_device * device) + pout("%s supported subpages is bad SPF=%u SUBPG=%u\n", + logSenRspStr, !! (0x40 & gBuf[0]), gBuf[2]); + } else { +- resp_len_pg0_ff = sg_get_unaligned_be16(gBuf + 2); + got_subpages = true; + } + } +- } else { +- memcpy(sup_lpgs, gBuf, LOG_RESP_LEN); +- resp_len_pg0_0 = sup_lpgs[3]; + } + + if (got_subpages) { + resp_len = sg_get_unaligned_be16(gBuf + 2); +- if (resp_len_pg0_ff <= resp_len_pg0_0) { +- /* something is rotten ....., ignore SUPP_SPAGE_L_SPAGE */ +- resp_len = resp_len_pg0_0; +- bump = 1; +- up = sup_lpgs + LOGPAGEHDRSIZE; +- got_subpages = false; +- (void)got_subpages; // not yet used below, suppress warning +- } else { +- resp_len = resp_len_pg0_ff; +- bump = 2; +- up = gBuf + LOGPAGEHDRSIZE; ++ up = gBuf + LOGPAGEHDRSIZE; ++ for (k = 0; k < resp_len; k += 2) { ++ uint8_t page_code = 0x3f & up[k]; ++ uint8_t subpage_code = up[k+1]; ++ supp_lpg_and_spg[supp_lpg_and_spg_count++] = {page_code, subpage_code}; + } +- } else { +- resp_len = resp_len_pg0_0; +- bump = 1; +- up = sup_lpgs + LOGPAGEHDRSIZE; + } + ++ num_unreported = 0; + num_unreported_spg = 0; +- for (num_unreported = 0, k = 0; k < resp_len; k += bump, up += bump) { +- uint8_t pg_num = 0x3f & up[0]; +- uint8_t sub_pg_num = (0x40 & up[0]) ? up[1] : 0; ++ for (k = 0; k < supp_lpg_and_spg_count; k += 1) { ++ struct scsi_supp_log_pages supp_lpg = supp_lpg_and_spg[k]; + +- switch (pg_num) ++ switch (supp_lpg.page_code) + { + case SUPPORTED_LPAGES: +- if (! ((NO_SUBPAGE_L_SPAGE == sub_pg_num) || +- (SUPP_SPAGE_L_SPAGE == sub_pg_num))) { ++ if (! ((NO_SUBPAGE_L_SPAGE == supp_lpg.subpage_code) || ++ (SUPP_SPAGE_L_SPAGE == supp_lpg.subpage_code))) { + if (scsi_debugmode > 1) + pout("%s: Strange Log page number: 0x0,0x%x\n", +- __func__, sub_pg_num); ++ __func__, supp_lpg.subpage_code); + } + break; + case READ_ERROR_COUNTER_LPAGE: +@@ -223,13 +227,13 @@ scsiGetSupportedLogPages(scsi_device * device) + gNonMediumELPage = true; + break; + case TEMPERATURE_LPAGE: +- if (NO_SUBPAGE_L_SPAGE == sub_pg_num) ++ if (NO_SUBPAGE_L_SPAGE == supp_lpg.subpage_code) + gTempLPage = true; +- else if (ENVIRO_REP_L_SPAGE == sub_pg_num) ++ else if (ENVIRO_REP_L_SPAGE == supp_lpg.subpage_code) + gEnviroReportingLPage = true; +- else if (ENVIRO_LIMITS_L_SPAGE == sub_pg_num) ++ else if (ENVIRO_LIMITS_L_SPAGE == supp_lpg.subpage_code) + gEnviroLimitsLPage = true; +- else if (SUPP_SPAGE_L_SPAGE != sub_pg_num) { ++ else if (SUPP_SPAGE_L_SPAGE != supp_lpg.subpage_code) { + ++num_unreported; + ++num_unreported_spg; + } +@@ -238,11 +242,11 @@ scsiGetSupportedLogPages(scsi_device * device) + reporting of ,0xff so it is not an error. */ + break; + case STARTSTOP_CYCLE_COUNTER_LPAGE: +- if (NO_SUBPAGE_L_SPAGE == sub_pg_num) ++ if (NO_SUBPAGE_L_SPAGE == supp_lpg.subpage_code) + gStartStopLPage = true; +- else if (UTILIZATION_L_SPAGE == sub_pg_num) ++ else if (UTILIZATION_L_SPAGE == supp_lpg.subpage_code) + gUtilizationLPage = true; +- else if (SUPP_SPAGE_L_SPAGE != sub_pg_num) { ++ else if (SUPP_SPAGE_L_SPAGE != supp_lpg.subpage_code) { + ++num_unreported; + ++num_unreported_spg; + } +@@ -254,15 +258,15 @@ scsiGetSupportedLogPages(scsi_device * device) + gSmartLPage = true; + break; + case BACKGROUND_RESULTS_LPAGE: +- if (NO_SUBPAGE_L_SPAGE == sub_pg_num) ++ if (NO_SUBPAGE_L_SPAGE == supp_lpg.subpage_code) + gBackgroundResultsLPage = true; +- else if (PEND_DEFECTS_L_SPAGE == sub_pg_num) ++ else if (PEND_DEFECTS_L_SPAGE == supp_lpg.subpage_code) + gPendDefectsLPage = true; +- else if (BACKGROUND_OP_L_SPAGE == sub_pg_num) ++ else if (BACKGROUND_OP_L_SPAGE == supp_lpg.subpage_code) + gBackgroundOpLPage = true; +- else if (LPS_MISALIGN_L_SPAGE == sub_pg_num) ++ else if (LPS_MISALIGN_L_SPAGE == supp_lpg.subpage_code) + gLPSMisalignLPage = true; +- else if (SUPP_SPAGE_L_SPAGE != sub_pg_num) { ++ else if (SUPP_SPAGE_L_SPAGE != supp_lpg.subpage_code) { + ++num_unreported; + ++num_unreported_spg; + } +@@ -296,9 +300,10 @@ scsiGetSupportedLogPages(scsi_device * device) + gSeagateFactoryLPage = true; + break; + default: +- if (pg_num < 0x30) { /* don't count VS pages */ ++ if (supp_lpg.page_code < 0x30) { /* don't count VS pages */ + ++num_unreported; +- if ((sub_pg_num > 0) && (SUPP_SPAGE_L_SPAGE != sub_pg_num)) ++ if ((supp_lpg.subpage_code > 0) && ++ (SUPP_SPAGE_L_SPAGE != supp_lpg.subpage_code)) + ++num_unreported_spg; + } + break; +-- +2.35.1 + diff --git a/SOURCES/smartmontools-7.2-logsuppagefix4.patch b/SOURCES/smartmontools-7.2-logsuppagefix4.patch new file mode 100644 index 0000000..e363f2b --- /dev/null +++ b/SOURCES/smartmontools-7.2-logsuppagefix4.patch @@ -0,0 +1,31 @@ +Index: trunk/smartmontools/scsiprint.cpp +=================================================================== +--- smartmontools/scsiprint.cpp (revision 5076) ++++ smartmontools/scsiprint.cpp (revision 5090) +@@ -2340,6 +2340,6 @@ + !wce ? "Disabled" : "Enabled"); + } +- } else + any_output = true; ++ } + + if (options.drive_info) +@@ -2463,12 +2463,10 @@ + if (gTempLPage) + scsiPrintTemp(device); +- } +- // in the 'smartctl -a" case only want: "Accumulated power on time" +- if ((! options.smart_background_log) && is_disk) { +- if (! checkedSupportedLogPages) +- scsiGetSupportedLogPages(device); +- res = 0; +- if (gBackgroundResultsLPage) +- res = scsiPrintBackgroundResults(device, true); ++ // in the 'smartctl -A' case only want: "Accumulated power on time" ++ if ((! options.smart_background_log) && is_disk) { ++ res = 0; ++ if (gBackgroundResultsLPage) ++ res = scsiPrintBackgroundResults(device, true); ++ } + any_output = true; + } diff --git a/SPECS/smartmontools.spec b/SPECS/smartmontools.spec index 8a65643..baa6a59 100644 --- a/SPECS/smartmontools.spec +++ b/SPECS/smartmontools.spec @@ -1,7 +1,7 @@ Summary: Tools for monitoring SMART capable hard disks Name: smartmontools Version: 7.1 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 1 Group: System Environment/Base License: GPLv2+ @@ -15,6 +15,10 @@ Source5: drivedb.h #fedora/rhel specific Patch1: smartmontools-5.38-defaultconf.patch +Patch2: smartmontools-7.2-logsuppagefix1.patch +Patch3: smartmontools-7.2-logsuppagefix2.patch +Patch4: smartmontools-7.2-logsuppagefix3.patch +Patch5: smartmontools-7.2-logsuppagefix4.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) #new rpm does not handle this (yet?) @@ -37,6 +41,10 @@ failure. %prep %setup -q %patch1 -p1 -b .defaultconf +%patch2 -p2 -b .logsuppagefix1 +%patch3 -p2 -b .logsuppagefix2 +%patch4 -p2 -b .logsuppagefix3 +%patch5 -p1 -b .logsuppagefix4 # update SOURCE5 on maintainer's machine prior commiting, there's no internet connection on builders curl %{UrlSource5} -o %{SOURCE5} ||: @@ -108,9 +116,12 @@ fi %{_sharedstatedir}/%{name} %changelog -* Wed Jul 26 2023 MSVSphere Packaging Team - 1:7.1-1 +* Wed Jul 26 2023 MSVSphere Packaging Team - 1:7.1-2 - Rebuilt for MSVSphere 8.8 +* Mon May 29 2023 Michal Hlavinka - 1:7.1-2 +- support reporting of Error Counter logging details (#2136439) + * Wed Apr 22 2020 Michal Hlavinka - 1:7.1-1 - smartmontools updated to 7.1 (#1671154)