View Single Post
  #5   (View Single Post)  
Old 18th May 2011
BSDfan666 BSDfan666 is offline
Real Name: N/A, this is the interweb.
Banned
 
Join Date: Apr 2008
Location: Ontario, Canada
Posts: 2,223
Default

Why are you quoting me? SATA is a physical connection.. it can be exposed to the operating systems in a variety of ways.

ISA IDE controllers on i386 were originally mapped to several known addresses in I/O space, with the advent of PCI a standardization was drafted and a mostly generic driver could be written so that PCI IDE controllers from different vendors could use the same driver, but obviously support code exists to handle additional features and other quirks.

The SATA specifications define the electrical conventions, but not how it should be exposed to the OS, for compatibility reasons.. chipset designers would emulate a PCI IDE controller so that for "basic" support was available, however almost all chipsets have a native mode of operation, i.e: need a dedicated driver.

Intel published a software-side standard called AHCI, which can be implemented by vendors in a standard way and exposed "native" SATA features like command queuing (NCQ) and hotplugging, not every SATA controller supports this, and not ever BIOS allows "toggling" between modes (..so the kernel needs to, but how it's done is chipset specific).

OpenBSD has many drivers, wdc(4) for controllers in legacy ISA mode.. pciide(4) in compatibility or native mode which doesn't mean what you may think, it refers to a SATA/IDE controller being mapped at the fixed ISA address OR in memory space as a "native" PCI device (MMIO).. ahci(4) only for SATA devices that comply with Intel's specification, and other SATA/IDE native "RAID" controllers.

The point I'm trying to make shep is that you can't say blanket statements like "OpenBSD doesn't support SATA" without realizing that "SATA" is a physical interface and if the chipset isn't exposing a PCIIDE/AHCI face.. someone needs datasheets and some free time to write a driver.
Reply With Quote