Lines Matching refs:device
676 Bit8u device; // Detected type of attached devices (hd/cd/none)
2484 Bit8u channel, device;
2495 for (device=0; device<BX_MAX_ATA_DEVICES; device++) {
2496 write_byte(ebda_seg,&EbdaData->ata.devices[device].type,ATA_TYPE_NONE);
2497 write_byte(ebda_seg,&EbdaData->ata.devices[device].device,ATA_DEVICE_NONE);
2498 write_byte(ebda_seg,&EbdaData->ata.devices[device].removable,0);
2499 write_byte(ebda_seg,&EbdaData->ata.devices[device].lock,0);
2500 write_byte(ebda_seg,&EbdaData->ata.devices[device].mode,ATA_MODE_NONE);
2501 write_word(ebda_seg,&EbdaData->ata.devices[device].blksize,0);
2502 write_byte(ebda_seg,&EbdaData->ata.devices[device].translation,ATA_TRANSLATION_NONE);
2503 write_word(ebda_seg,&EbdaData->ata.devices[device].lchs.heads,0);
2504 write_word(ebda_seg,&EbdaData->ata.devices[device].lchs.cylinders,0);
2505 write_word(ebda_seg,&EbdaData->ata.devices[device].lchs.spt,0);
2506 write_word(ebda_seg,&EbdaData->ata.devices[device].pchs.heads,0);
2507 write_word(ebda_seg,&EbdaData->ata.devices[device].pchs.cylinders,0);
2508 write_word(ebda_seg,&EbdaData->ata.devices[device].pchs.spt,0);
2510 write_dword(ebda_seg,&EbdaData->ata.devices[device].sectors_low,0L);
2511 write_dword(ebda_seg,&EbdaData->ata.devices[device].sectors_high,0L);
2515 for (device=0; device<BX_MAX_ATA_DEVICES; device++) {
2516 write_byte(ebda_seg,&EbdaData->ata.hdidmap[device],BX_MAX_ATA_DEVICES);
2517 write_byte(ebda_seg,&EbdaData->ata.cdidmap[device],BX_MAX_ATA_DEVICES);
2582 Bit8u hdcount, cdcount, device, type;
2616 for(device=0; device<BX_MAX_ATA_DEVICES; device++) {
2621 channel = device / 2;
2622 slave = device % 2;
2644 write_byte(ebda_seg,&EbdaData->ata.devices[device].type,ATA_TYPE_UNKNOWN);
2647 ata_reset(device);
2659 write_byte(ebda_seg,&EbdaData->ata.devices[device].type,ATA_TYPE_ATAPI);
2661 write_byte(ebda_seg,&EbdaData->ata.devices[device].type,ATA_TYPE_ATA);
2663 write_byte(ebda_seg,&EbdaData->ata.devices[device].type,ATA_TYPE_NONE);
2668 type=read_byte(ebda_seg,&EbdaData->ata.devices[device].type);
2680 write_byte(ebda_seg,&EbdaData->ata.devices[device].device,ATA_DEVICE_HD);
2681 write_byte(ebda_seg,&EbdaData->ata.devices[device].mode, ATA_MODE_PIO16);
2683 if (ata_cmd_data_in(device,ATA_CMD_IDENTIFY_DEVICE, 1, 0, 0, 0, 0L, 0L, get_SS(),buffer) !=0 )
2704 write_byte(ebda_seg,&EbdaData->ata.devices[device].device,ATA_DEVICE_HD);
2705 write_byte(ebda_seg,&EbdaData->ata.devices[device].removable, removable);
2706 write_byte(ebda_seg,&EbdaData->ata.devices[device].mode, mode);
2707 write_word(ebda_seg,&EbdaData->ata.devices[device].blksize, blksize);
2708 write_word(ebda_seg,&EbdaData->ata.devices[device].pchs.heads, heads);
2709 write_word(ebda_seg,&EbdaData->ata.devices[device].pchs.cylinders, cylinders);
2710 write_word(ebda_seg,&EbdaData->ata.devices[device].pchs.spt, spt);
2711 write_dword(ebda_seg,&EbdaData->ata.devices[device].sectors_low, sectors_low);
2712 write_dword(ebda_seg,&EbdaData->ata.devices[device].sectors_high, sectors_high);
2716 for (shift=device%4; shift>0; shift--) translation >>= 2;
2719 write_byte(ebda_seg,&EbdaData->ata.devices[device].translation, translation);
2771 write_word(ebda_seg,&EbdaData->ata.devices[device].lchs.heads, heads);
2772 write_word(ebda_seg,&EbdaData->ata.devices[device].lchs.cylinders, cylinders);
2773 write_word(ebda_seg,&EbdaData->ata.devices[device].lchs.spt, spt);
2776 write_byte(ebda_seg,&EbdaData->ata.hdidmap[hdcount], device);
2790 write_byte(ebda_seg,&EbdaData->ata.devices[device].device,ATA_DEVICE_CDROM);
2791 write_byte(ebda_seg,&EbdaData->ata.devices[device].mode, ATA_MODE_PIO16);
2793 …if (ata_cmd_data_in(device,ATA_CMD_IDENTIFY_DEVICE_PACKET, 1, 0, 0, 0, 0L, 0L, get_SS(),buffer) !=…
2803 write_byte(ebda_seg,&EbdaData->ata.devices[device].device, type);
2804 write_byte(ebda_seg,&EbdaData->ata.devices[device].removable, removable);
2805 write_byte(ebda_seg,&EbdaData->ata.devices[device].mode, mode);
2806 write_word(ebda_seg,&EbdaData->ata.devices[device].blksize, blksize);
2809 write_byte(ebda_seg,&EbdaData->ata.cdidmap[cdcount], device);
2820 sizeinmb = (read_dword(ebda_seg,&EbdaData->ata.devices[device].sectors_high) << 21)
2821 | (read_dword(ebda_seg,&EbdaData->ata.devices[device].sectors_low) >> 11);
2864 if(read_byte(ebda_seg,&EbdaData->ata.devices[device].device)==ATA_DEVICE_CDROM)
2895 void ata_reset(device)
2896 Bit16u device;
2904 channel = device / 2;
2905 slave = device % 2;
2921 type=read_byte(ebda_seg,&EbdaData->ata.devices[device].type);
2964 Bit16u ata_cmd_data_in(device, command, count, cylinder, head, sector, lba_low, lba_high, segment, …
2965 Bit16u device, command, count, cylinder, head, sector, segment, offset;
2973 channel = device / 2;
2974 slave = device % 2;
2978 mode = read_byte(ebda_seg, &EbdaData->ata.devices[device].mode);
3113 Bit16u ata_cmd_data_out(device, command, count, cylinder, head, sector, lba_low, lba_high, segment,…
3114 Bit16u device, command, count, cylinder, head, sector, segment, offset;
3122 channel = device / 2;
3123 slave = device % 2;
3127 mode = read_byte(ebda_seg, &EbdaData->ata.devices[device].mode);
3261 Bit16u ata_cmd_packet(device, cmdlen, cmdseg, cmdoff, header, length, inout, bufseg, bufoff)
3263 Bit16u device,cmdseg, cmdoff, bufseg, bufoff;
3274 channel = device / 2;
3275 slave = device % 2;
3291 mode = read_byte(ebda_seg, &EbdaData->ata.devices[device].mode);
3535 atapi_get_sense(device, seg, asc, ascq)
3536 Bit16u device;
3547 if (ata_cmd_packet(device, 12, get_SS(), atacmd, 0, 18L, ATA_DATA_IN, get_SS(), buffer) != 0)
3557 atapi_is_ready(device)
3558 Bit16u device;
3569 if (read_byte(ebda_seg,&EbdaData->ata.devices[device].type) != ATA_TYPE_ATAPI) {
3585 …if (ata_cmd_packet(device, sizeof(packet), get_SS(), packet, 0, 8L, ATA_DATA_IN, get_SS(), buf) ==…
3588 if (atapi_get_sense(device, get_SS(), &asc, &ascq) == 0) {
3619 write_dword(ebda_seg,&EbdaData->ata.devices[device].blksize, block_len);
3629 if (sectors != read_dword(ebda_seg,&EbdaData->ata.devices[device].sectors_low))
3631 write_dword(ebda_seg,&EbdaData->ata.devices[device].sectors_low, sectors);
3636 atapi_is_cdrom(device)
3637 Bit8u device;
3641 if (device >= BX_MAX_ATA_DEVICES)
3644 if (read_byte(ebda_seg,&EbdaData->ata.devices[device].type) != ATA_TYPE_ATAPI)
3647 if (read_byte(ebda_seg,&EbdaData->ata.devices[device].device) != ATA_DEVICE_CDROM)
3702 Bit8u device;
3705 for (device=0; device<BX_MAX_ATA_DEVICES;device++) {
3706 if (atapi_is_cdrom(device)) break;
3710 if(device >= BX_MAX_ATA_DEVICES) return 2;
3712 if(error = atapi_is_ready(device) != 0)
3724 …if((error = ata_cmd_packet(device, 12, get_SS(), atacmd, 0, 2048L, ATA_DATA_IN, get_SS(), buffer))…
3747 …if((error = ata_cmd_packet(device, 12, get_SS(), atacmd, 0, 2048L, ATA_DATA_IN, get_SS(), buffer))…
3777 write_byte(ebda_seg,&EbdaData->cdemu.controller_index,device/2);
3778 write_byte(ebda_seg,&EbdaData->cdemu.device_spec,device%2);
3801 …if((error = ata_cmd_packet(device, 12, get_SS(), atacmd, 0, nbsectors*512L, ATA_DATA_IN, boot_segm…
5434 Bit8u device, status;
5447 device=read_byte(ebda_seg,&EbdaData->ata.hdidmap[GET_ELDL()-0x80]);
5450 if (device >= BX_MAX_ATA_DEVICES) {
5458 ata_reset (device);
5489 nlc = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.cylinders);
5490 nlh = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.heads);
5491 nlspt = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.spt);
5502 nph = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.heads);
5503 npspt = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.spt);
5513 …status=ata_cmd_data_in(device, ATA_CMD_READ_SECTORS, count, cylinder, head, sector, lba_low, lba_h…
5515 …status=ata_cmd_data_out(device, ATA_CMD_WRITE_SECTORS, count, cylinder, head, sector, lba_low, lba…
5538 nlc = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.cylinders);
5539 nlh = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.heads);
5540 nlspt = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.spt);
5559 status = inb(read_word(ebda_seg, &EbdaData->ata.channels[device/2].iobase1) + ATA_CB_STAT);
5572 nlc = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.cylinders);
5573 nlh = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.heads);
5574 nlspt = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.spt);
5603 if (lba_high > read_dword(ebda_seg, &EbdaData->ata.devices[device].sectors_high) ) {
5610 if (lba_high == read_dword(ebda_seg, &EbdaData->ata.devices[device].sectors_high)
5611 && lba_low >= read_dword(ebda_seg, &EbdaData->ata.devices[device].sectors_low) ) {
5622 …status=ata_cmd_data_in(device, ATA_CMD_READ_SECTORS, count, 0, 0, 0, lba_low, lba_high, segment, o…
5624 …status=ata_cmd_data_out(device, ATA_CMD_WRITE_SECTORS, count, 0, 0, 0, lba_low, lba_high, segment,…
5659 npc = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.cylinders);
5660 nph = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.heads);
5661 npspt = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.spt);
5662 lba_low = read_dword(ebda_seg, &EbdaData->ata.devices[device].sectors_low);
5663 lba_high = read_dword(ebda_seg, &EbdaData->ata.devices[device].sectors_high);
5664 blksize = read_word(ebda_seg, &EbdaData->ata.devices[device].blksize);
5695 channel = device / 2;
5699 mode = read_byte(ebda_seg, &EbdaData->ata.devices[device].mode);
5700 translation = read_byte(ebda_seg, &EbdaData->ata.devices[device].translation);
5710 write_byte(ebda_seg, &EbdaData->ata.dpte.prefix, (0xe | (device % 2))<<4 );
5734 channel = device / 2;
5766 write_byte(DS, SI+(Bit16u)&Int13DPT->device_path[0], device%2);
5838 Bit8u device, status, locks;
5854 device=read_byte(ebda_seg,&EbdaData->ata.cdidmap[GET_ELDL()-0xE0]);
5857 if (device >= BX_MAX_ATA_DEVICES) {
5936 …status = ata_cmd_packet(device, 12, get_SS(), atacmd, 0, count*2048L, ATA_DATA_IN, segment,offset);
5953 locks = read_byte(ebda_seg, &EbdaData->ata.devices[device].lock);
5962 write_byte(ebda_seg, &EbdaData->ata.devices[device].lock, ++locks);
5971 write_byte(ebda_seg, &EbdaData->ata.devices[device].lock, --locks);
5982 locks = read_byte(ebda_seg, &EbdaData->ata.devices[device].lock);
6024 blksize = read_word(ebda_seg, &EbdaData->ata.devices[device].blksize);
6047 channel = device / 2;
6051 mode = read_byte(ebda_seg, &EbdaData->ata.devices[device].mode);
6061 write_byte(ebda_seg, &EbdaData->ata.dpte.prefix, (0xe | (device % 2))<<4 );
6082 channel = device / 2;
6114 write_byte(DS, SI+(Bit16u)&Int13DPT->device_path[0], device%2);
6262 Bit8u device, status;
6274 device = read_byte(ebda_seg,&EbdaData->cdemu.controller_index) * 2;
6275 device += read_byte(ebda_seg,&EbdaData->cdemu.device_spec);
6369 …if((status = ata_cmd_packet(device, 12, get_SS(), atacmd, before*512, nbsectors*512L, ATA_DATA_IN,…
8757 and dl,#0xE0 ;; mask to get device class, including cdroms
8759 jne int13_cdemu_inactive ;; inactive for device class
8854 int18_handler: ;; Boot Failure recovery: try the next device.
8863 ;; we will start from device 0.
8873 ;; Call the C code for the next boot device
9525 ;; say ok if a device is present
9556 pci_pro_f02: ;; find pci device
9716 ;; say ok if a device is present
9738 pci_real_f02: ;; find pci device
9931 dw 0x122e ;; compatible PCI interrupt router device ID
9938 db 0x08 ;; pci device number (bit 7-3)
9951 db 0x10 ;; pci device number (bit 7-3)
9964 db 0x18 ;; pci device number (bit 7-3)
9977 db 0x20 ;; pci device number (bit 7-3)
9990 db 0x28 ;; pci device number (bit 7-3)
10003 db 0x30 ;; pci device number (bit 7-3)
10619 ;; Found a device that thinks it can boot the system. Record its BEV and product name string.
10629 mov IPL_TABLE_OFFSET+0[bx], #IPL_TYPE_BEV ;; This entry is a BEV device