Alan Cox wrote: > Ar Mer, 2006-08-09 am 02:41 -0400, ysgrifennodd Jeff Garzik: > >>ata_generic, ISA, VLB, and embedded controllers that use libata are not >>PCI. libata-bmdma can drive older non-PCI controllers. >> >>Its a bit confusing because "PCI IDE" is often used to refer to the >>legacy IDE shadow register interface. I started to use "bmdma" to >>describe the interface, but it drives Alan crazy :) > > > Properly we have > > ST506 (register layout for PIO) > BMDMA (register layout for dma area/sg tables) [SFF] > SFF (full SFF - BAR4, PCI BMDMA) > ADMA (also in SFF) > AHCI > > + various weird vendor stuff > > The first time libata-"bmdma".c was seen, it looked strange to me, too. I remember the WD1003/ST-506 adapter on my old i386 PC, which was later replaced by an "AT-Bus" IDE controller. The IDE controller is register level compatible to the WD1003 ST-506 adapter, with the same legacy PIO address and irq 14. (IDE had to be register-level compatible with the old WD1003 interface, because the Int 13h code for the WD1003 is in the main PC/AT BIOS, not on the adapter.) At about the 486 VL-bus days, an additional "secondary" port was added, with irq 15. In those old 286/386/486 days, the IDE adapters were PIO only. The BM-DMA came at about the time of the Intel Pentium/PCI-bus, with the new BM-DMA registers. When libata-bmdma.c is seperated out from libata-core.c, I was wondering why the BM-DMA PRD table management codes such as ata_sg_setup() are left in libata-core.c, while the old WD1003/ST-506 like logic ata_tf_load(), ata_exec_command() and ata_check_status() are moved to the libata-bmdma.c. Jeff explained the traditional WD1003 ST-506 registers can be viewed as subset of BM-DMA, but I still feel strange to call the old WD1003-like IDE controllers on my 386/486 as "BM-DMA"... -- albert - : send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html