8000 JMS581DL USB bridge Support (0x152d:0x0581) · Issue #325 · smartmontools/smartmontools · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

JMS581DL USB bridge Support (0x152d:0x0581) #325

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
bezirg opened this issue Feb 24, 2025 · 4 comments
Open

JMS581DL USB bridge Support (0x152d:0x0581) #325

bezirg opened this issue Feb 24, 2025 · 4 comments
Labels
drivedb Entries to the drivedb.h undecided

Comments

@bezirg
Copy link
bezirg commented Feb 24, 2025

I have a JMS581DL USB 3.2 Gen2x1 to PCIe NVMe Gen3 x2 / SATA 6Gbps bridge.

VERY IMPORTANT: this is a dual protocol Nvme+Sata bridge.

The jms581dl chip is not in the smartmontools' database, so I have to manually specify the type with -d option.

If m2 nvme is placed in the bridge, -d sntjmicron works.
If m2 sata is placed in the bridge, -d sat works.

I cannot find a type that works for both nvme and sata.
I don't know how to figure out programmatically if an nvme or a sata is placed in the bridge.
The only physical difference is that an LED is turning blue when nvme is connected, and red when sata is connected.

Here is an lsusb of the usb bridge:

Bus 002 Device 004: ID 152d:0581 JMicron Technology Corp. / JMicron USA Technology Corp. External
Negotiated speed: SuperSpeed (5Gbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x152d JMicron Technology Corp. / JMicron USA Technology Corp.
  idProduct          0x0581 External
  bcdDevice           42.04
  iManufacturer           1 JMicron
  iProduct                2 External
  iSerial                 3 DD0000000000001D
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0079
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              896mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           4
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     98 
      iInterface             10 MSC USB Attached SCSI
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
        Command pipe (0x01)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
        MaxStreams             32
        Status pipe (0x02)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             32
        Data-in pipe (0x03)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             32
        Data-out pipe (0x04)
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x002a
  bNumDeviceCaps          3
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000f0e
      BESL Link Power Management (LPM) Supported
    BESL value     3840 us 
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat          32 micro seconds
  SuperSpeedPlus USB Device Capability:
    bLength                20
    bDescriptorType        16
    bDevCapabilityType     10
    bmAttributes         0x00000001
      Sublink Speed Attribute count 2
      Sublink Speed ID count 1
    wFunctionalitySupport   0x1100
      Min functional Speed Attribute ID: 0
      Min functional RX lanes: 1
      Min functional TX lanes: 1
    bmSublinkSpeedAttr[0]   0x000a4030
      Speed Attribute ID: 0 10Gb/s Symmetric RX SuperSpeedPlus
    bmSublinkSpeedAttr[1]   0x000a40b0
      Speed Attribute ID: 0 10Gb/s Symmetric TX SuperSpeedPlus
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x000c
  (Bus Powered)
  U1 Enabled
  U2 Enabled
@bezirg bezirg changed the title JMS581DL Support JMS581DL USB bridge Support Feb 24, 2025
@chrfranke chrfranke added drivedb Entries to the drivedb.h undecided labels Feb 24, 2025
@chrfranke
Copy link

VERY IMPORTANT: this is a dual protocol Nvme+Sata bridge.

This is not yet supported, Currently we could only add one -d option. This should only be done if the bridge behaves sane if the wrong device type is connected.

If m2 nvme is placed in the bridge, -d sntjmicron works.
If m2 sata is placed in the bridge, -d sat works.

Please test the opposite behavior.

@chrfranke chrfranke changed the title JMS581DL USB bridge Support JMS581DL USB bridge Support (0x152d:0x0581) Mar 5, 2025
@chrfranke
Copy link

Possibly related: #331.

@chrfranke chrfranke marked this as a duplicate of #331 Mar 18, 2025
@chrfranke
Copy link

Important: -d usbjmicron could only be added if this behaves sane if a SATA device is connected.

-d sat could not be added as this USB Id reportedly (#331) is also used for NVMe-only docking stations.

@chrfranke
Copy link

If possible, please try a r5677 (6306b06) or later build with new -d usbjmicron/sat option. Should work with both NVMe and SATA devices.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
drivedb Entries to the drivedb.h undecided
Projects
None yet
Development

No branches or pull requests

2 participants
0