> Surprisingly, I have another version of this patch
> which should convince your former colleague :-)
> 
> http://www.9legacy.org/9legacy/patch/pc-sdata-dma.diff

@@ -455,6 +455,8 @@
 and
 .I slot
 to use as a root device for bootstrapping.
+.SS \fL*nodma=\fP
+Disable DMA on (S)ATA controllers.

it's a pretty consistent mistake in plan 9 (and elsewhere) 
that ide is confused with ata or sata.  these the are all
on different levels.  "Disable DMA on IDE controllers."

ide     device register set (analogue FIS)
sata    on-the-wire protocol (analogue pata)
ata     abstract command set.

ahci is not in this list because it's a programming
interface that is not directly tied to the hardware.
there are other programming interfaces for the
same hardware.  (e.g. marvell & lsi interfaces.)

"sdata" is a misleading name, since it implies that it
actually handles the read/write ↔ ata command
translation.  what it does is translate between
read/write and ata+ide in one fell swoop.

this sounds economical, until one realizes that things
like PUIS (power-up in standby) and SCT are fancy
protocols that happen at the ATA layer, and if not
abstracted, need to be repeated for every driver.

in essence, this is the rationale for the fis library:
it's tiresome rewriting the PUIS protocol.

- erik

Reply via email to