My motherboard provides 4x USB 3.2 Gen1 ports for rear I/O and another 2x USB 3.2 Gen1 ports for front I/O (through the header), but my chipset only supports 2x USB 3.2 Gen1 ports. Where is the support for the other ports coming from?

Motherboard Wikipedia
Motherboard rear I/O: 2x USB 2.0 ports, 4x USB 3.2 Gen1 ports, 2x USB 3.2 Gen2 portsMotherboard headers: 4x USB 2.0 ports, 2x USB 3.2 Gen1 ports Wikipedia B450 chipset: 6x USB 2.0 ports, 2x USB 3.2 Gen1 ports, 2x USB 3.2 Gen2 ports

The motherboard is an ASRock B450M Steel Legend

  • glibg10bOP
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    7 months ago

    Ah, I think I’m starting to understand this a little better. Is that 4 lanes for SATA and 1 for the PCIe x1 slot?

    Where do you reckon the PCIe 2.0 x16 slot’s lanes come from?

    • SteveTech@programming.dev
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      7 months ago

      Nah SATA is built into the chipset. That second x16 is actually only electrically x4 in an x16 form factor, and there’s that x1 slot, adding up to 5 lanes in total. The first x16 and first nvme slot (x4) are connected to the CPU directly (which IIRC most have 20 lanes on AM4, but not always).

      • glibg10bOP
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        7 months ago

        Oh, that makes sense, thanks

        My CPU (1600 AF) only has 16 lanes, but I have a graphics card and an NVMe SSD and both seem to be getting all the lanes. I wonder what’s going on here

        07:00.0 VGA compatible controller: NVIDIA Corporation TU116 [GeForce GTX 1650 SUPER] (rev a1) (prog-if 00 [VGA controller])
               Subsystem: Micro-Star International Co., Ltd. [MSI] TU116 [GeForce GTX 1650 SUPER]
                       [...]
                       LnkCap: Port #0, Speed 8GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <4us
                               ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
                       LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
                               ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
                       LnkSta: Speed 8GT/s (ok), Width x16 (ok)
                               TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        
        01:00.0 Non-Volatile memory controller: Silicon Motion, Inc. SM2262/SM2262EN SSD Controller (rev 03) (prog-if 02 [NVM Express])
               Subsystem: Silicon Motion, Inc. SM2262/SM2262EN SSD Controller
                       [...]
                       LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L1 <8us
                               ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
                       LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
                               ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                       LnkSta: Speed 8GT/s (ok), Width x4 (ok)
        

        Full output

        Edit:

        $ sudo dmidecode --type 9 | grep -E 'Usage|Type|Designation'
        	Designation: PCIE1
        	Type: x1 PCI Express
        	Current Usage: In Use
        	Designation: PCIE2
        	Type: x16 PCI Express
        	Current Usage: In Use
        	Designation: PCIE3
        	Type: x1 PCI Express
        	Current Usage: In Use
        	Designation: PCIE4_M2_1
        	Type: x4 PCI Express
        	Current Usage: In Use
        
        • SteveTech@programming.dev
          link
          fedilink
          English
          arrow-up
          2
          ·
          7 months ago

          Huh that’s interesting, I believe that GPU should’ve been running at x8 with that CPU, but if it works then whatever I suppose.

          I believe there are PCIe bandwidth benchmarks, if you really want to confirm, but I wouldn’t worry.

          Also it isn’t uncommon for the device to just report the wrong speed, for example my Intel Arc reports running at x1, but benchmarks show otherwise.