Lines Matching full:ata
33 #include <sys/ata.h>
43 #include <dev/ata/ata-all.h>
44 #include <dev/ata/ata-pci.h>
62 * low level ATA functions
80 /* must be called with ATA channel locked and state_mtx held */
99 /* ATA PIO data transfer and control commands */ in ata_begin_transaction()
114 if (request->u.ata.command == ATA_DEVICE_RESET) { in ata_begin_transaction()
139 /* ATA DMA data transfer commands */ in ata_begin_transaction()
186 device_printf(request->parent, "error issuing ATA PACKET command\n"); in ata_begin_transaction()
212 device_printf(request->parent, "error issuing ATA PACKET command\n"); in ata_begin_transaction()
239 /* must be called with ATA channel locked and state_mtx held */
252 /* ATA PIO data transfer and control commands */ in ata_end_transaction()
277 if (request->u.ata.command != ATA_ATAPI_IDENTIFY) in ata_end_transaction()
321 /* ATA DMA data transfer commands */ in ata_end_transaction()
468 /* must be called with ATA channel locked and state_mtx held */
478 /* do we have any signs of ATA/ATAPI HW being present ? */ in ata_generic_reset()
604 /* must be called with ATA channel locked and state_mtx held */
746 ATA_IDX_OUTB(ch, ATA_COMMAND, request->u.ata.command); in ata_generic_command()
758 request->u.ata.count = (ATA_IDX_INB(ch, ATA_COUNT) << 8); in ata_tf_read()
759 request->u.ata.lba = in ata_tf_read()
765 request->u.ata.count |= ATA_IDX_INB(ch, ATA_COUNT); in ata_tf_read()
766 request->u.ata.lba |= in ata_tf_read()
772 request->u.ata.count = ATA_IDX_INB(ch, ATA_COUNT); in ata_tf_read()
773 request->u.ata.lba = ATA_IDX_INB(ch, ATA_SECTOR) | in ata_tf_read()
786 ATA_IDX_OUTB(ch, ATA_FEATURE, request->u.ata.feature >> 8); in ata_tf_write()
787 ATA_IDX_OUTB(ch, ATA_FEATURE, request->u.ata.feature); in ata_tf_write()
788 ATA_IDX_OUTB(ch, ATA_COUNT, request->u.ata.count >> 8); in ata_tf_write()
789 ATA_IDX_OUTB(ch, ATA_COUNT, request->u.ata.count); in ata_tf_write()
790 ATA_IDX_OUTB(ch, ATA_SECTOR, request->u.ata.lba >> 24); in ata_tf_write()
791 ATA_IDX_OUTB(ch, ATA_SECTOR, request->u.ata.lba); in ata_tf_write()
792 ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->u.ata.lba >> 32); in ata_tf_write()
793 ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->u.ata.lba >> 8); in ata_tf_write()
794 ATA_IDX_OUTB(ch, ATA_CYL_MSB, request->u.ata.lba >> 40); in ata_tf_write()
795 ATA_IDX_OUTB(ch, ATA_CYL_MSB, request->u.ata.lba >> 16); in ata_tf_write()
799 ATA_IDX_OUTB(ch, ATA_FEATURE, request->u.ata.feature); in ata_tf_write()
800 ATA_IDX_OUTB(ch, ATA_COUNT, request->u.ata.count); in ata_tf_write()
801 ATA_IDX_OUTB(ch, ATA_SECTOR, request->u.ata.lba); in ata_tf_write()
802 ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->u.ata.lba >> 8); in ata_tf_write()
803 ATA_IDX_OUTB(ch, ATA_CYL_MSB, request->u.ata.lba >> 16); in ata_tf_write()
806 ((request->u.ata.lba >> 24) & 0x0f)); in ata_tf_write()