Lines Matching refs:device
208 unsigned char atapi_issue(int device, unsigned char *ccb, int ccblen, in atapi_issue() argument
218 ide_outb(device, ATA_DEV_HD, ATA_LBA | ATA_DEVICE(device)); in atapi_issue()
219 c = atapi_wait_mask(device, ATAPI_TIME_OUT, mask, res); in atapi_issue()
221 printf("ATAPI_ISSUE: device %d not ready status %X\n", device, in atapi_issue()
227 ide_outb(device, ATA_ERROR_REG, 0); /* no DMA, no overlaped */ in atapi_issue()
228 ide_outb(device, ATA_SECT_CNT, 0); in atapi_issue()
229 ide_outb(device, ATA_SECT_NUM, 0); in atapi_issue()
230 ide_outb(device, ATA_CYL_LOW, (unsigned char) (buflen & 0xFF)); in atapi_issue()
231 ide_outb(device, ATA_CYL_HIGH, in atapi_issue()
233 ide_outb(device, ATA_DEV_HD, ATA_LBA | ATA_DEVICE(device)); in atapi_issue()
235 ide_outb(device, ATA_COMMAND, ATAPI_CMD_PACKET); in atapi_issue()
240 c = atapi_wait_mask(device, ATAPI_TIME_OUT, mask, res); in atapi_issue()
244 device, c); in atapi_issue()
250 ide_output_data_shorts(device, (unsigned short *)ccb, ccblen / 2); in atapi_issue()
263 c = atapi_wait_mask(device, ATAPI_TIME_OUT, mask, res); in atapi_issue()
266 err = (ide_inb(device, ATA_ERROR_REG)) >> 4; in atapi_issue()
276 n = ide_inb(device, ATA_CYL_HIGH); in atapi_issue()
278 n += ide_inb(device, ATA_CYL_LOW); in atapi_issue()
299 if ((ide_inb(device, ATA_SECT_CNT) & 0x02) == 0) { in atapi_issue()
301 ide_output_data_shorts(device, (unsigned short *)buffer, in atapi_issue()
305 ide_input_data_shorts(device, (unsigned short *)buffer, in atapi_issue()
312 c = atapi_wait_mask(device, ATAPI_TIME_OUT, mask, res); in atapi_issue()
314 err = (ide_inb(device, ATA_ERROR_REG) >> 4); in atapi_issue()
332 unsigned char atapi_issue_autoreq(int device, in atapi_issue_autoreq() argument
345 res = atapi_issue(device, ccb, ccblen, buffer, buflen); in atapi_issue_autoreq()
359 res = atapi_issue(device, sense_ccb, 12, sense_data, 18); in atapi_issue_autoreq()
413 int device = block_dev->devnum; in atapi_read() local
419 " buffer at %lX\n", device, blknr, blkcnt, (ulong) buffer); in atapi_read()
440 if (atapi_issue_autoreq(device, ccb, 12, in atapi_read()
459 int device; in atapi_inquiry() local
461 device = dev_desc->devnum; in atapi_inquiry()
472 c = atapi_issue_autoreq(device, ccb, 12, (unsigned char *)iobuf, 40); in atapi_inquiry()
499 c = atapi_issue_autoreq(device, ccb, 12, (unsigned char *)iobuf, 0); in atapi_inquiry()
507 c = atapi_issue_autoreq(device, ccb, 12, (unsigned char *)iobuf, 0); in atapi_inquiry()
516 c = atapi_issue_autoreq(device, ccb, 12, (unsigned char *)iobuf, 8); in atapi_inquiry()
549 int device; in ide_ident() local
551 device = dev_desc->devnum; in ide_ident()
552 printf(" Device %d: ", device); in ide_ident()
556 ide_outb(device, ATA_DEV_HD, ATA_LBA | ATA_DEVICE(device)); in ide_ident()
565 if ((ide_inb(device, ATA_SECT_CNT) == 0x01) && in ide_ident()
566 (ide_inb(device, ATA_SECT_NUM) == 0x01) && in ide_ident()
567 (ide_inb(device, ATA_CYL_LOW) == 0x14) && in ide_ident()
568 (ide_inb(device, ATA_CYL_HIGH) == 0xEB)) { in ide_ident()
574 ide_outb(device, ATA_COMMAND, ATAPI_CMD_IDENT); in ide_ident()
579 c = ide_wait(device, ATAPI_TIME_OUT); in ide_ident()
586 ide_outb(device, ATA_COMMAND, ATA_CMD_IDENT); in ide_ident()
591 c = ide_wait(device, IDE_TIME_OUT); in ide_ident()
603 ide_outb(device, ATA_DEV_HD, in ide_ident()
604 ATA_LBA | ATA_DEVICE(device)); in ide_ident()
606 ide_outb(device, ATA_COMMAND, 0x08); in ide_ident()
612 ide_outb(device, ATA_DEV_HD, in ide_ident()
613 ATA_LBA | ATA_DEVICE(device)); in ide_ident()
628 ide_input_swap_data(device, (ulong *)&iop, ATA_SECTORWORDS); in ide_ident()
695 ide_outb(device, ATA_DEV_HD, ATA_LBA | ATA_DEVICE(device)); in ide_ident()
696 c = ide_wait(device, IDE_TIME_OUT); in ide_ident()
697 ide_outb(device, ATA_SECT_CNT, 1); in ide_ident()
698 ide_outb(device, ATA_LBA_LOW, 0); in ide_ident()
699 ide_outb(device, ATA_LBA_MID, 0); in ide_ident()
700 ide_outb(device, ATA_LBA_HIGH, 0); in ide_ident()
701 ide_outb(device, ATA_DEV_HD, ATA_LBA | ATA_DEVICE(device)); in ide_ident()
702 ide_outb(device, ATA_COMMAND, 0xe3); in ide_ident()
704 c = ide_wait(device, IDE_TIME_OUT); /* can't take over 500 ms */ in ide_ident()
942 int device = block_dev->devnum; in ide_read() local
956 device, blknr, blkcnt, (ulong) buffer); in ide_read()
960 ide_outb(device, ATA_DEV_HD, ATA_LBA | ATA_DEVICE(device)); in ide_read()
961 c = ide_wait(device, IDE_TIME_OUT); in ide_read()
964 printf("IDE read: device %d not ready\n", device); in ide_read()
970 ide_outb(device, ATA_COMMAND, ATA_CMD_CHK_PWR); in ide_read()
973 c = ide_wait(device, IDE_TIME_OUT); /* can't take over 500 ms */ in ide_read()
976 printf("IDE read: device %d not ready\n", device); in ide_read()
982 c = ide_inb(device, ATA_SECT_CNT); in ide_read()
990 c = ide_wait(device, IDE_TIME_OUT); in ide_read()
993 printf("IDE read: device %d not ready\n", device); in ide_read()
999 ide_outb(device, ATA_SECT_CNT, 0); in ide_read()
1000 ide_outb(device, ATA_LBA_LOW, (blknr >> 24) & 0xFF); in ide_read()
1002 ide_outb(device, ATA_LBA_MID, (blknr >> 32) & 0xFF); in ide_read()
1003 ide_outb(device, ATA_LBA_HIGH, (blknr >> 40) & 0xFF); in ide_read()
1005 ide_outb(device, ATA_LBA_MID, 0); in ide_read()
1006 ide_outb(device, ATA_LBA_HIGH, 0); in ide_read()
1010 ide_outb(device, ATA_SECT_CNT, 1); in ide_read()
1011 ide_outb(device, ATA_LBA_LOW, (blknr >> 0) & 0xFF); in ide_read()
1012 ide_outb(device, ATA_LBA_MID, (blknr >> 8) & 0xFF); in ide_read()
1013 ide_outb(device, ATA_LBA_HIGH, (blknr >> 16) & 0xFF); in ide_read()
1017 ide_outb(device, ATA_DEV_HD, in ide_read()
1018 ATA_LBA | ATA_DEVICE(device)); in ide_read()
1019 ide_outb(device, ATA_COMMAND, ATA_CMD_READ_EXT); in ide_read()
1024 ide_outb(device, ATA_DEV_HD, ATA_LBA | in ide_read()
1025 ATA_DEVICE(device) | ((blknr >> 24) & 0xF)); in ide_read()
1026 ide_outb(device, ATA_COMMAND, ATA_CMD_READ); in ide_read()
1033 c = ide_wait(device, IDE_SPIN_UP_TIME_OUT); in ide_read()
1037 c = ide_wait(device, IDE_TIME_OUT); in ide_read()
1043 ": status %#02x\n", device, blknr, c); in ide_read()
1047 ide_input_data(device, buffer, ATA_SECTORWORDS); in ide_read()
1048 (void) ide_inb(device, ATA_STATUS); /* clear IRQ */ in ide_read()
1069 int device = block_dev->devnum; in ide_write() local
1084 ide_outb(device, ATA_DEV_HD, ATA_LBA | ATA_DEVICE(device)); in ide_write()
1087 c = ide_wait(device, IDE_TIME_OUT); in ide_write()
1090 printf("IDE read: device %d not ready\n", device); in ide_write()
1096 ide_outb(device, ATA_SECT_CNT, 0); in ide_write()
1097 ide_outb(device, ATA_LBA_LOW, (blknr >> 24) & 0xFF); in ide_write()
1099 ide_outb(device, ATA_LBA_MID, (blknr >> 32) & 0xFF); in ide_write()
1100 ide_outb(device, ATA_LBA_HIGH, (blknr >> 40) & 0xFF); in ide_write()
1102 ide_outb(device, ATA_LBA_MID, 0); in ide_write()
1103 ide_outb(device, ATA_LBA_HIGH, 0); in ide_write()
1107 ide_outb(device, ATA_SECT_CNT, 1); in ide_write()
1108 ide_outb(device, ATA_LBA_LOW, (blknr >> 0) & 0xFF); in ide_write()
1109 ide_outb(device, ATA_LBA_MID, (blknr >> 8) & 0xFF); in ide_write()
1110 ide_outb(device, ATA_LBA_HIGH, (blknr >> 16) & 0xFF); in ide_write()
1114 ide_outb(device, ATA_DEV_HD, in ide_write()
1115 ATA_LBA | ATA_DEVICE(device)); in ide_write()
1116 ide_outb(device, ATA_COMMAND, ATA_CMD_WRITE_EXT); in ide_write()
1121 ide_outb(device, ATA_DEV_HD, ATA_LBA | in ide_write()
1122 ATA_DEVICE(device) | ((blknr >> 24) & 0xF)); in ide_write()
1123 ide_outb(device, ATA_COMMAND, ATA_CMD_WRITE); in ide_write()
1129 c = ide_wait(device, IDE_TIME_OUT); in ide_write()
1134 ": status %#02x\n", device, blknr, c); in ide_write()
1138 ide_output_data(device, buffer, ATA_SECTORWORDS); in ide_write()
1139 c = ide_inb(device, ATA_STATUS); /* clear IRQ */ in ide_write()