Switch to full style
Data recovery and disk repair questions and discussions related to old-fashioned SATA, SAS, SCSI, IDE, MFM hard drives - any type of storage device that has moving parts
Post a reply

Does every PRD in PRDT need a disk DMA_READ command

April 3rd, 2014, 23:05

Hi, guys! I am diving into the DMA part of QEMU and I have been confused by the ATA Bus Master DMA specification. We all know that before starting the DMA transfer, we must specify a PRD table in memory. Then we send command to the IO port of the drive to setup the sector_num and number of sectors. Then we issue a DMA_READ command (0xC8) to the drive.
My question is that does each entry in the PRD table needs to separately be told the sector_num and the DMA_READ command? Or we just need to setup the sector_num, number of sectors and issue the DMA_READ command once to consume all the entries in the PRD table?
If I haven't make the question clear, I want to know if the sentence below is right.
For ATA, for each PRD entry in the PRDT, the driver must issue a Read/Write DMA command to the disk; specifying a StartLBA and a sector count.

Thanks very much! Any help is appreciated very much!
Post a reply