Opened 2 years ago
Last modified 10 months ago
#1767 new enhancement
Add support for Transcend ESD310 (Silicon Motion SM2320, 0x2174:0x2100)
| Reported by: | wiki798 | Owned by: | |
|---|---|---|---|
| Priority: | minor | Milestone: | undecided |
| Component: | drivedb | Version: | 7.4 |
| Keywords: | usb nand | Cc: |
Description
Just bought a new portable SSD / USB flash drive Transcend ESD310C TS512GESD310C. smartctl -x /dev/sdb didn't output SMART data, so I tried smartctl -x -d sat /dev/sdb. This in turn gave me some sensible Attributes, some Unknown_Attribute and Unknown_SSD_Attribute and a lot of [...] failed: scsi error unsupported scsi opcode errors. Additionally, the interface is reported as SATA, but this is not a SATA device nor does it have a SATA or NVMe bridge, it has a USB-native UFD controller SM2320.
I tried running self-tests (all of these once: short, long, offline, conveyance) with smartctl -t long -d sat /dev/sdb, but none worked, instead I got [...] failed: scsi error unsupported scsi opcode each time.
I run badblocks -wsvt random -b 512 -p 1 /dev/sdb and redone smartctl -x -d sat /dev/sdb, hopefully this helps decipher some of the Unknown_Attribute.
List of errors:
Warning! SMART Attribute Data Structure error: invalid SMART checksum. Warning! SMART Attribute Thresholds Structure error: invalid SMART checksum. Read SMART Log Directory failed: scsi error unsupported scsi opcode ATA_READ_LOG_EXT (addr=0x00:0x00, page=0, n=1) failed: scsi error unsupported scsi opcode Read GP Log Directory failed Read SMART Error Log failed: scsi error unsupported scsi opcode Read SMART Self-test Log failed: scsi error unsupported scsi opcode ATA_READ_LOG_EXT (addr=0x11:0x00, page=0, n=1) failed: scsi error unsupported scsi opcode Read SATA Phy Event Counters failed
Summary:
- Is this a faulty device, completely or only partially and therefore should be returned?
- What is the low(er) level cause of all the reported problems? So that I and anybody that finds this can understand what's happening here in detail.
- Add support for self-tests, self-test log and error log if possible. Deal with the SMART invalid checksums.
- Add device to smartctl.h and make
smartctl -x /dev/sdbwork just likesmartctl -x -d sat /dev/sdbdoes.
Example CrystalDiskInfo output: https://images.anandtech.com/reviews/das/2021-/pssd/Transcend-ESD310C-Portable-SSD-1TB/CDI.png
Device info:
https://www.anandtech.com/show/18920/transcend-esd310c-dualinterface-ufd-review-silicon-motion-powers-portable-ssd-in-a-thumb-drive
https://transcend-info.com/product/portable-ssd/esd310
More info about the Silicon Motion SM2320 controller:
https://www.siliconmotion.com/products/Portable/detail
https://www.siliconmotion.com/download/3fu/a/SM2320_PB_EN.pdf
https://www.anandtech.com/show/16942/usb-32-gen-2x2-portable-ssds-go-native-the-silicon-motion-sm2320-ufd-controller-preview
Other devices using this controller: Crucial X9 Pro CT4000X9SSD9, Crucial X10 Pro CT1000X10PROSSD9, Kingston DataTraveler Max DTMAX/1TB, Kingston DataTraveler Max Type-A DTMAXA/1TB, Kingston XS2000 SXS20002000G, Kingston XS1000 SXS1000/2000G, ADATA Elite UE800 AELIUE800512GCSG
Attachments (3)
Change History (6)
by , 2 years ago
| Attachment: | smartctl -x _dev_sdb.txt added |
|---|
by , 2 years ago
| Attachment: | smartctl -x -d sat _dev_sdb - brand new disk.txt added |
|---|
smartctl -x -d sat /dev/sdb - on a brand new disk
by , 2 years ago
| Attachment: | smartctl -x -d sat _dev_sdb - post 1 badblocks pass.txt added |
|---|
smartctl -x -d sat /dev/sdb - after 1 badblocks pass was done
comment:1 by , 2 years ago
| Component: | all → drivedb |
|---|---|
| Keywords: | usb nand added |
| Milestone: | → undecided |
| Summary: | Transcend ESD310: Invalid SMART Attribute Data and Thresholds checksums. scsi error unsupported scsi opcodes. Wrong interface. Not in database. → Add support for Transcend ESD310 (Silicon Motion SM2320, 0x2174:0x2100) |
| Type: | defect → enhancement |
The SM2320 is an USB->NAND controller without an internal detour via ATA or NVMe protocol. There is not need for such a device to support ATA- or NVMe-like diagnostic information. USB mass storage devices are accessed via SCSI protocol, so there may be SCSI-like diagnostic available but this is usually not the case for such devices (try smartctl -d scsi ...).
The output suggests that the firmware has SAT support to access ATA SMART Attributes but no further ATA SMART features (unsupported scsi opcode). The invalid SMART checksum is a harmless firmware bug.
All we could do is to add the attribute set (if known) and USB-Id to the drive database.
comment:2 by , 20 months ago
comment:3 by , 10 months ago
FWIW, here's what I get with smartctl -d scsi for a Kingston XS2000 SSD
$ smartctl -d scsi /dev/sdf
smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.0-18-amd64] (local build) Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org SCSI device successfully opened Use 'smartctl -a' (or '-x') to print SMART (and more) information root@alexandria:/media/hypomonen_xenen# smartctl -d scsi /dev/sdf -a smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.0-18-amd64] (local build) Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Vendor: Kingston Product: XS2000 Compliance: SPC-4 User Capacity: 4,096,805,658,624 bytes [4.09 TB] Logical block size: 512 bytes LU is resource provisioned, LBPRZ=1 scsiModePageOffset: response length too short, resp_len=4 offset=4 bd_len=0 Logical Unit id: 0x5000000000000001 Serial number: 50026B72836E8763 Device type: disk scsiModePageOffset: response length too short, resp_len=4 offset=4 bd_len=0 Local Time is: Mon Jan 6 18:33:17 2025 NZDT SMART support is: Available - device has SMART capability. SMART support is: Disabled Temperature Warning: Disabled or Not Supported === START OF READ SMART DATA SECTION === SMART Health Status: OK Current Drive Temperature: 38 C Drive Trip Temperature: 0 C Error Counter logging not supported scsiModePageOffset: response length too short, resp_len=4 offset=4 bd_len=0 Device does not support Self Test logging

smartctl -x /dev/sdb