1

I have a question regarding the support for SATA ssd drives in the Linux Kernel.

I read on the internet that one should enable PCI support for proper usage of the sata drives. Could someone please explain why? For me PCI and SATA are two different things.

Another collateral question is why (list pci) lspci lists both sata and usb devices?!

Thanks.

  • A very useful command besides lspci is lsusb – Rui F Ribeiro Mar 3 '16 at 9:35
1

Most SATA controllers on PC-style (i.e. amd64 or i386) hardware are PCI-e (or PCI for older machines) devices, so you need PCI support for the kernel to see the SATA controllers. This is no big deal because almost everything else on your motherboard (including built-in sound card and ethernet interfaces) will be PCI or PCI-e, so you're going to need PCI support compiled in anyway.

Similarly, most USB controllers are PCI or PCI-e devices. And it's not at all uncommon for devices like DVB (TV) interfaces to be USB devices connected to a PCI or PCI-e bridge card, so they'll also show up as PCI devices with lspci.

This is why lspci lists both your USB controllers and your SATA controllers.

e.g. on my Asus Sabertooth 990FX motherboard:

# lspci | grep -iE 'sata|usb'
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (rev 40)
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:16.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:16.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
03:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
04:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
  • Do not take PCI always for granted though; for instance, a newcomer will be surprised most of the common ARM devices do not support PCI. – Rui F Ribeiro Mar 3 '16 at 9:38
  • 1
    good point. edited to say "on PC-style [...] hardware". – cas Mar 3 '16 at 9:40
  • So the big picture looks like this (when thinking about the Connections between the physical ssd drive and mother board): Somewhere there has to be a convertor between sata and pcie since they are two different standards. No ?! SSD drive -> SATA Cable ->SATA-PCIe convertor?! -> PCIe connectivity present on the motherboard – user3523954 Mar 3 '16 at 9:41
  • 1
    sort of, but it's worth noting that most SATA interfaces are built in to the chipset and/or CPU these days, so the SATA to PCI-e interface is built in to the chipset or CPU. You'll only see a separate physical PCI-e SATA interface if/when you plug in a card to add extra SATA ports. – cas Mar 3 '16 at 9:45
  • In reality, PCI is not specific to the intel architecture. You can find PCI add-ons to some ARM SBCs, including the raspberry. Look at my MIPS at home home: lspci 01:00.0 Network controller: Qualcomm Atheros QCA986x/988x 802.11ac Wireless Network Adapter – Rui F Ribeiro Mar 3 '16 at 9:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.