• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/dev/pms/RefTisa/sat/src/

Lines Matching defs:LBA

1989     /* saves only CBD; not scsi command for LBA and number of blocks */
2836 pInquiry[40] = 0x01; /* LBA Low */
2837 pInquiry[41] = 0x00; /* LBA Mid */
2838 pInquiry[42] = 0x00; /* LBA High */
2840 pInquiry[44] = 0x00; /* LBA Low Exp */
2841 pInquiry[45] = 0x00; /* LBA Mid Exp */
2842 pInquiry[46] = 0x00; /* LBA High Exp */
2849 pInquiry[40] = 0x01; /* LBA Low */
2850 pInquiry[41] = 0x00; /* LBA Mid */
2851 pInquiry[42] = 0x00; /* LBA High */
2853 pInquiry[44] = 0x00; /* LBA Low Exp */
2854 pInquiry[45] = 0x00; /* LBA Mid Exp */
2855 pInquiry[46] = 0x00; /* LBA High Exp */
3342 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
3343 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
3344 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
3345 fis->d.device = 0; /* FIS LBA mode */
4065 fis->d.lbaMid = 0xFF; /* FIS LBA (15:8 ) */
4066 fis->d.lbaHigh = 0xFF; /* FIS LBA (23:16) */
4070 fis->d.lbaMid = (bit8)scsiCmnd->expDataLength; /* FIS LBA (15:8 ) */
4071 fis->d.lbaHigh = (bit8)(scsiCmnd->expDataLength>>8); /* FIS LBA (23:16) */
4074 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
4075 fis->d.device = 0; /* FIS LBA (27:24) and FIS LBA mode */
4263 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
4264 fis->d.lbaMid = (bit8)scsiCmnd->expDataLength; /* FIS LBA (15:8 ) */
4265 fis->d.lbaHigh = (bit8)(scsiCmnd->expDataLength>>8); /* FIS LBA (23:16) */
4266 fis->d.device = 0; /* FIS LBA (27:24) and FIS LBA mode */
4517 /* cbd6; computing LBA and transfer length */
4529 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
4553 SM_DBG1(("smsatRead6: return LBA out of range!!!\n"));
4572 fis->d.lbaLow = scsiCmnd->cdb[3]; /* FIS LBA (7 :0 ) */
4573 fis->d.lbaMid = scsiCmnd->cdb[2]; /* FIS LBA (15:8 ) */
4574 fis->d.lbaHigh = (bit8)((scsiCmnd->cdb[1]) & 0x1f); /* FIS LBA (23:16) */
4575 fis->d.device = 0x40; /* FIS LBA mode */
4606 fis->d.lbaLow = scsiCmnd->cdb[3]; /* FIS LBA (7 :0 ) */
4607 fis->d.lbaMid = scsiCmnd->cdb[2]; /* FIS LBA (15:8 ) */
4608 fis->d.lbaHigh = (bit8)((scsiCmnd->cdb[1]) & 0x1f); /* FIS LBA (23:16) */
4609 fis->d.device = 0x40; /* FIS LBA mode */
4645 fis->d.lbaLow = scsiCmnd->cdb[3]; /* FIS LBA (7 :0 ) */
4646 fis->d.lbaMid = scsiCmnd->cdb[2]; /* FIS LBA (15:8 ) */
4647 fis->d.lbaHigh = (bit8)((scsiCmnd->cdb[1]) & 0x1f); /* FIS LBA (23:16) */
4648 fis->d.device = 0x40; /* FIS LBA mode set */
4649 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
4650 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
4651 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
4680 fis->d.lbaLow = scsiCmnd->cdb[3]; /* FIS LBA (7 :0 ) */
4681 fis->d.lbaMid = scsiCmnd->cdb[2]; /* FIS LBA (15:8 ) */
4682 fis->d.lbaHigh = (bit8)((scsiCmnd->cdb[1]) & 0x1f); /* FIS LBA (23:16) */
4683 fis->d.device = 0x40; /* FIS LBA mode set */
4684 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
4685 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
4686 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
4738 fis->d.lbaLow = scsiCmnd->cdb[3]; /* FIS LBA (7 :0 ) */
4739 fis->d.lbaMid = scsiCmnd->cdb[2]; /* FIS LBA (15:8 ) */
4740 fis->d.lbaHigh = (bit8)((scsiCmnd->cdb[1]) & 0x1f); /* FIS LBA (23:16) */
4742 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
4743 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
4744 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
4802 bit8 LBA[8];
4856 sm_memset(LBA, 0, sizeof(LBA));
4859 /* do not use memcpy due to indexing in LBA and TL */
4860 LBA[0] = 0; /* MSB */
4861 LBA[1] = 0;
4862 LBA[2] = 0;
4863 LBA[3] = 0;
4864 LBA[4] = scsiCmnd->cdb[2];
4865 LBA[5] = scsiCmnd->cdb[3];
4866 LBA[6] = scsiCmnd->cdb[4];
4867 LBA[7] = scsiCmnd->cdb[5]; /* LSB */
4879 /* cbd10; computing LBA and transfer length */
4896 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
4904 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
4907 SM_DBG1(("smsatRead10: return LBA out of range, not EXT!!!\n"));
4928 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
4931 SM_DBG1(("smsatRead10: return LBA out of range, EXT!!!\n"));
4982 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
4983 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
4984 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
4992 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
4993 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
4994 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
5017 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
5018 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
5019 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
5020 fis->d.device = 0x40; /* FIS LBA mode set */
5021 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
5022 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
5023 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
5069 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
5070 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
5071 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
5072 fis->d.device = 0x40; /* FIS LBA mode set */
5073 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
5074 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
5075 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
5101 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
5102 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
5103 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
5105 (bit8)((0x4 << 4) | (scsiCmnd->cdb[2] & 0xF)); /* FIS LBA (27:24) and FIS LBA mode */
5132 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
5133 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
5134 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
5136 (bit8)((0x4 << 4) | (scsiCmnd->cdb[2] & 0xF)); /* FIS LBA (27:24) and FIS LBA mode */
5154 /* saves the current LBA and orginal TL */
5268 bit8 LBA[8];
5325 sm_memset(LBA, 0, sizeof(LBA));
5328 /* do not use memcpy due to indexing in LBA and TL */
5329 LBA[0] = 0; /* MSB */
5330 LBA[1] = 0;
5331 LBA[2] = 0;
5332 LBA[3] = 0;
5333 LBA[4] = scsiCmnd->cdb[2];
5334 LBA[5] = scsiCmnd->cdb[3];
5335 LBA[6] = scsiCmnd->cdb[4];
5336 LBA[7] = scsiCmnd->cdb[5]; /* LSB */
5358 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
5366 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
5369 SM_DBG1(("smsatRead12: return LBA out of range, not EXT!!!\n"));
5390 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
5393 SM_DBG1(("smsatRead12: return LBA out of range, EXT!!!\n"));
5427 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
5428 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
5429 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
5431 (bit8)((0x4 << 4) | (scsiCmnd->cdb[2] & 0xF)); /* FIS LBA (27:24) and FIS LBA mode */
5458 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
5459 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
5460 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
5462 (bit8)((0x4 << 4) | (scsiCmnd->cdb[2] & 0xF)); /* FIS LBA (27:24) and FIS LBA mode */
5491 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
5492 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
5493 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
5494 fis->d.device = 0x40; /* FIS LBA mode set */
5495 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
5496 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
5497 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
5543 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
5544 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
5545 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
5546 fis->d.device = 0x40; /* FIS LBA mode set */
5547 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
5548 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
5549 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
5594 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
5595 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
5596 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
5604 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
5605 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
5606 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
5618 /* saves the current LBA and orginal TL */
5707 bit8 LBA[8];
5766 sm_memset(LBA, 0, sizeof(LBA));
5770 /* do not use memcpy due to indexing in LBA and TL */
5771 LBA[0] = scsiCmnd->cdb[2]; /* MSB */
5772 LBA[1] = scsiCmnd->cdb[3];
5773 LBA[2] = scsiCmnd->cdb[4];
5774 LBA[3] = scsiCmnd->cdb[5];
5775 LBA[4] = scsiCmnd->cdb[6];
5776 LBA[5] = scsiCmnd->cdb[7];
5777 LBA[6] = scsiCmnd->cdb[8];
5778 LBA[7] = scsiCmnd->cdb[9]; /* LSB */
5803 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
5810 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
5813 SM_DBG1(("smsatRead16: return LBA out of range, not EXT!!!\n"));
5838 // rangeChk = smsatAddNComparebit64(LBA, TL);
5840 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
5845 SM_DBG1(("smsatRead16: return LBA out of range, EXT!!!\n"));
5879 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
5880 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
5881 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
5883 (bit8)((0x4 << 4) | (scsiCmnd->cdb[6] & 0xF)); /* FIS LBA (27:24) and FIS LBA mode */
5910 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
5911 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
5912 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
5914 (bit8)((0x4 << 4) | (scsiCmnd->cdb[6] & 0xF)); /* FIS LBA (27:24) and FIS LBA mode */
5943 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
5944 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
5945 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
5946 fis->d.device = 0x40; /* FIS LBA mode set */
5947 fis->d.lbaLowExp = scsiCmnd->cdb[6]; /* FIS LBA (31:24) */
5948 fis->d.lbaMidExp = scsiCmnd->cdb[5]; /* FIS LBA (39:32) */
5949 fis->d.lbaHighExp = scsiCmnd->cdb[4]; /* FIS LBA (47:40) */
5994 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
5995 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
5996 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
5997 fis->d.device = 0x40; /* FIS LBA mode set */
5998 fis->d.lbaLowExp = scsiCmnd->cdb[6]; /* FIS LBA (31:24) */
5999 fis->d.lbaMidExp = scsiCmnd->cdb[5]; /* FIS LBA (39:32) */
6000 fis->d.lbaHighExp = scsiCmnd->cdb[4]; /* FIS LBA (47:40) */
6046 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
6047 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
6048 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
6056 fis->d.lbaLowExp = scsiCmnd->cdb[6]; /* FIS LBA (31:24) */
6057 fis->d.lbaMidExp = scsiCmnd->cdb[5]; /* FIS LBA (39:32) */
6058 fis->d.lbaHighExp = scsiCmnd->cdb[4]; /* FIS LBA (47:40) */
6070 /* saves the current LBA and orginal TL */
6191 /* cbd6; computing LBA and transfer length */
6204 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
6228 SM_DBG1(("smsatWrite6: return LBA out of range!!!\n"));
6247 fis->d.lbaLow = scsiCmnd->cdb[3]; /* FIS LBA (7 :0 ) */
6248 fis->d.lbaMid = scsiCmnd->cdb[2]; /* FIS LBA (15:8 ) */
6249 fis->d.lbaHigh = (bit8)((scsiCmnd->cdb[1]) & 0x1f); /* FIS LBA (23:16) */
6250 fis->d.device = 0x40; /* FIS LBA mode */
6281 fis->d.lbaLow = scsiCmnd->cdb[3]; /* FIS LBA (7 :0 ) */
6282 fis->d.lbaMid = scsiCmnd->cdb[2]; /* FIS LBA (15:8 ) */
6283 fis->d.lbaHigh = (bit8)((scsiCmnd->cdb[1]) & 0x1f); /* FIS LBA (23:16) */
6284 fis->d.device = 0x40; /* FIS LBA mode */
6320 fis->d.lbaLow = scsiCmnd->cdb[3]; /* FIS LBA (7 :0 ) */
6321 fis->d.lbaMid = scsiCmnd->cdb[2]; /* FIS LBA (15:8 ) */
6322 fis->d.lbaHigh = (bit8)((scsiCmnd->cdb[1]) & 0x1f); /* FIS LBA (23:16) */
6323 fis->d.device = 0x40; /* FIS LBA mode set */
6324 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
6325 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
6326 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
6355 fis->d.lbaLow = scsiCmnd->cdb[3]; /* FIS LBA (7 :0 ) */
6356 fis->d.lbaMid = scsiCmnd->cdb[2]; /* FIS LBA (15:8 ) */
6357 fis->d.lbaHigh = (bit8)((scsiCmnd->cdb[1]) & 0x1f); /* FIS LBA (23:16) */
6358 fis->d.device = 0x40; /* FIS LBA mode set */
6359 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
6360 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
6361 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
6413 fis->d.lbaLow = scsiCmnd->cdb[3]; /* FIS LBA (7 :0 ) */
6414 fis->d.lbaMid = scsiCmnd->cdb[2]; /* FIS LBA (15:8 ) */
6415 fis->d.lbaHigh = (bit8)((scsiCmnd->cdb[1]) & 0x1f); /* FIS LBA (23:16) */
6417 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
6418 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
6419 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
6476 bit8 LBA[8];
6527 sm_memset(LBA, 0, sizeof(LBA));
6530 /* do not use memcpy due to indexing in LBA and TL */
6531 LBA[0] = 0; /* MSB */
6532 LBA[1] = 0;
6533 LBA[2] = 0;
6534 LBA[3] = 0;
6535 LBA[4] = scsiCmnd->cdb[2];
6536 LBA[5] = scsiCmnd->cdb[3];
6537 LBA[6] = scsiCmnd->cdb[4];
6538 LBA[7] = scsiCmnd->cdb[5]; /* LSB */
6551 /* cbd10; computing LBA and transfer length */
6566 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
6573 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
6576 SM_DBG1(("smsatWrite10: return LBA out of range, not EXT!!!\n"));
6600 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
6603 SM_DBG1(("smsatWrite10: return LBA out of range, EXT!!!\n"));
6655 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
6656 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
6657 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
6665 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
6666 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
6667 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
6694 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
6695 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
6696 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
6697 fis->d.device = 0x40; /* FIS LBA mode set */
6698 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
6699 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
6700 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
6721 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
6722 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
6723 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
6724 fis->d.device = 0x40; /* FIS LBA mode set */
6725 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
6726 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
6727 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
6751 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
6752 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
6753 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
6755 /* FIS LBA mode set LBA (27:24) */
6782 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
6783 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
6784 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
6786 /* FIS LBA mode set LBA (27:24) */
6919 bit8 LBA[8];
6978 sm_memset(LBA, 0, sizeof(LBA));
6981 /* do not use memcpy due to indexing in LBA and TL */
6982 LBA[0] = 0; /* MSB */
6983 LBA[1] = 0;
6984 LBA[2] = 0;
6985 LBA[3] = 0;
6986 LBA[4] = scsiCmnd->cdb[2];
6987 LBA[5] = scsiCmnd->cdb[3];
6988 LBA[6] = scsiCmnd->cdb[4];
6989 LBA[7] = scsiCmnd->cdb[5]; /* LSB */
7012 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
7019 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
7027 SM_DBG1(("smsatWrite12: return LBA out of range, not EXT!!!\n"));
7048 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
7051 SM_DBG1(("smsatWrite12: return LBA out of range, EXT!!!\n"));
7076 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
7077 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
7078 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
7080 /* FIS LBA mode set LBA (27:24) */
7107 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
7108 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
7109 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
7111 /* FIS LBA mode set LBA (27:24) */
7143 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
7144 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
7145 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
7146 fis->d.device = 0x40; /* FIS LBA mode set */
7147 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
7148 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
7149 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
7171 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
7172 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
7173 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
7174 fis->d.device = 0x40; /* FIS LBA mode set */
7175 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
7176 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
7177 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
7221 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
7222 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
7223 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
7231 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
7232 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
7233 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
7341 bit8 LBA[8];
7399 sm_memset(LBA, 0, sizeof(LBA));
7403 /* do not use memcpy due to indexing in LBA and TL */
7404 LBA[0] = scsiCmnd->cdb[2]; /* MSB */
7405 LBA[1] = scsiCmnd->cdb[3];
7406 LBA[2] = scsiCmnd->cdb[4];
7407 LBA[3] = scsiCmnd->cdb[5];
7408 LBA[4] = scsiCmnd->cdb[6];
7409 LBA[5] = scsiCmnd->cdb[7];
7410 LBA[6] = scsiCmnd->cdb[8];
7411 LBA[7] = scsiCmnd->cdb[9]; /* LSB */
7436 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
7443 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
7446 SM_DBG1(("smsatWrite16: return LBA out of range, not EXT!!!\n"));
7467 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
7470 SM_DBG1(("smsatWrite16: return LBA out of range, EXT!!!\n"));
7501 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
7502 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
7503 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
7505 /* FIS LBA mode set LBA (27:24) */
7532 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
7533 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
7534 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
7536 /* FIS LBA mode set LBA (27:24) */
7568 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
7569 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
7570 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
7571 fis->d.device = 0x40; /* FIS LBA mode set */
7572 fis->d.lbaLowExp = scsiCmnd->cdb[6]; /* FIS LBA (31:24) */
7573 fis->d.lbaMidExp = scsiCmnd->cdb[5]; /* FIS LBA (39:32) */
7574 fis->d.lbaHighExp = scsiCmnd->cdb[4]; /* FIS LBA (47:40) */
7596 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
7597 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
7598 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
7599 fis->d.device = 0x40; /* FIS LBA mode set */
7600 fis->d.lbaLowExp = scsiCmnd->cdb[6]; /* FIS LBA (31:24) */
7601 fis->d.lbaMidExp = scsiCmnd->cdb[5]; /* FIS LBA (39:32) */
7602 fis->d.lbaHighExp = scsiCmnd->cdb[4]; /* FIS LBA (47:40) */
7646 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
7647 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
7648 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
7656 fis->d.lbaLowExp = scsiCmnd->cdb[6]; /* FIS LBA (31:24) */
7657 fis->d.lbaMidExp = scsiCmnd->cdb[5]; /* FIS LBA (39:32) */
7658 fis->d.lbaHighExp = scsiCmnd->cdb[4]; /* FIS LBA (47:40) */
7771 bit8 LBA[8];
7828 sm_memset(LBA, 0, sizeof(LBA));
7831 /* do not use memcpy due to indexing in LBA and TL */
7832 LBA[0] = 0; /* MSB */
7833 LBA[1] = 0;
7834 LBA[2] = 0;
7835 LBA[3] = 0;
7836 LBA[4] = scsiCmnd->cdb[2];
7837 LBA[5] = scsiCmnd->cdb[3];
7838 LBA[6] = scsiCmnd->cdb[4];
7839 LBA[7] = scsiCmnd->cdb[5]; /* LSB */
7851 /* cbd10; computing LBA and transfer length */
7860 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
7863 SM_DBG1(("smsatVerify10: return LBA out of range, not EXT!!!\n"));
7887 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
7890 SM_DBG1(("smsatVerify10: return LBA out of range, EXT!!!\n"));
7918 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
7919 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
7920 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
7921 fis->d.device = 0x40; /* FIS LBA mode set 01000000 */
7922 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
7923 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
7924 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
7943 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
7944 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
7945 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
7946 /* FIS LBA mode set LBA (27:24) */
8054 bit8 LBA[8];
8112 sm_memset(LBA, 0, sizeof(LBA));
8115 /* do not use memcpy due to indexing in LBA and TL */
8116 LBA[0] = 0; /* MSB */
8117 LBA[1] = 0;
8118 LBA[2] = 0;
8119 LBA[3] = 0;
8120 LBA[4] = scsiCmnd->cdb[2];
8121 LBA[5] = scsiCmnd->cdb[3];
8122 LBA[6] = scsiCmnd->cdb[4];
8123 LBA[7] = scsiCmnd->cdb[5]; /* LSB */
8142 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
8145 SM_DBG1(("smsatVerify12: return LBA out of range, not EXT!!!\n"));
8169 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
8172 SM_DBG1(("smsatVerify12: return LBA out of range, EXT!!!\n"));
8200 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
8201 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
8202 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
8203 fis->d.device = 0x40; /* FIS LBA mode set 01000000 */
8204 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
8205 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
8206 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
8225 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
8226 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
8227 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
8228 /* FIS LBA mode set LBA (27:24) */
8336 bit8 LBA[8];
8386 sm_memset(LBA, 0, sizeof(LBA));
8389 /* do not use memcpy due to indexing in LBA and TL */
8390 LBA[0] = scsiCmnd->cdb[2]; /* MSB */
8391 LBA[1] = scsiCmnd->cdb[3];
8392 LBA[2] = scsiCmnd->cdb[4];
8393 LBA[3] = scsiCmnd->cdb[5];
8394 LBA[4] = scsiCmnd->cdb[6];
8395 LBA[5] = scsiCmnd->cdb[7];
8396 LBA[6] = scsiCmnd->cdb[8];
8397 LBA[7] = scsiCmnd->cdb[9]; /* LSB */
8414 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
8417 SM_DBG1(("smsatVerify16: return LBA out of range, not EXT!!!\n"));
8435 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
8438 SM_DBG1(("smsatVerify16: return LBA out of range, EXT!!!\n"));
8462 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
8463 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
8464 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
8465 fis->d.device = 0x40; /* FIS LBA mode set 01000000 */
8466 fis->d.lbaLowExp = scsiCmnd->cdb[6]; /* FIS LBA (31:24) */
8467 fis->d.lbaMidExp = scsiCmnd->cdb[5]; /* FIS LBA (39:32) */
8468 fis->d.lbaHighExp = scsiCmnd->cdb[4]; /* FIS LBA (47:40) */
8487 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
8488 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
8489 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
8490 /* FIS LBA mode set LBA (27:24) */
8705 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
8706 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
8707 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
9033 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
9034 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
9035 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
9036 fis->d.device = 0; /* FIS LBA mode */
9171 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
9172 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
9173 fis->d.lbaMid = 0x4F; /* FIS LBA (15:8 ) */
9174 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
9175 fis->d.lbaHigh = 0xC2; /* FIS LBA (23:16) */
9176 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
9946 bit8 LLBAA; /* Long LBA Accepted */
10903 lastLba = lastLba - 1; /* LBA starts from zero */
10917 SM_DBG3(("smsatReadCapacity10: LBA 0 is 0x%x %d\n", dataBuffer[0], dataBuffer[0]));
10918 SM_DBG3(("smsatReadCapacity10: LBA 1 is 0x%x %d\n", dataBuffer[1], dataBuffer[1]));
10919 SM_DBG3(("smsatReadCapacity10: LBA 2 is 0x%x %d\n", dataBuffer[2], dataBuffer[2]));
10920 SM_DBG3(("smsatReadCapacity10: LBA 3 is 0x%x %d\n", dataBuffer[3], dataBuffer[3]));
10934 lastLba = lastLba - 1; /* LBA starts from zero */
10971 /* fill in MAX LBA, which is used in satSendDiagnostic_1() */
11154 lastLbaLo = lastLbaLo - 1; /* LBA starts from zero */
11176 lastLbaLo = lastLbaLo - 1; /* LBA starts from zero */
11194 /* fill in MAX LBA, which is used in satSendDiagnostic_1() */
11728 sector count 1, LBA 0
11729 sector count 1, LBA MAX
11730 sector count 1, LBA random
11739 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
11740 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
11741 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
11742 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
11743 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
11744 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
11762 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
11763 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
11764 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
11809 fis->d.lbaLow = 0x81; /* FIS LBA (7 :0 ) */
11810 fis->d.lbaMid = 0x4F; /* FIS LBA (15:8 ) */
11811 fis->d.lbaHigh = 0xC2; /* FIS LBA (23:16) */
11873 fis->d.lbaLow = 0x01; /* FIS LBA (7 :0 ) */
11874 fis->d.lbaMid = 0x4F; /* FIS LBA (15:8 ) */
11875 fis->d.lbaHigh = 0xC2; /* FIS LBA (23:16) */
11924 fis->d.lbaLow = 0x02; /* FIS LBA (7 :0 ) */
11925 fis->d.lbaMid = 0x4F; /* FIS LBA (15:8 ) */
11926 fis->d.lbaHigh = 0xC2; /* FIS LBA (23:16) */
11988 fis->d.lbaLow = 0x7F; /* FIS LBA (7 :0 ) */
11989 fis->d.lbaMid = 0x4F; /* FIS LBA (15:8 ) */
11990 fis->d.lbaHigh = 0xC2; /* FIS LBA (23:16) */
12054 fis->d.lbaLow = 0x81; /* FIS LBA (7 :0 ) */
12055 fis->d.lbaMid = 0x4F; /* FIS LBA (15:8 ) */
12056 fis->d.lbaHigh = 0xC2; /* FIS LBA (23:16) */
12094 fis->d.lbaLow = 0x82; /* FIS LBA (7 :0 ) */
12095 fis->d.lbaMid = 0x4F; /* FIS LBA (15:8 ) */
12096 fis->d.lbaHigh = 0xC2; /* FIS LBA (23:16) */
12241 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
12242 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
12243 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
12244 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
12245 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
12246 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
12262 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
12263 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
12264 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
12318 sector count 1, any LBA between zero to Maximum
12328 fis->d.lbaLow = 0x01; /* FIS LBA (7 :0 ) */
12329 fis->d.lbaMid = 0x00; /* FIS LBA (15:8 ) */
12330 fis->d.lbaHigh = 0x00; /* FIS LBA (23:16) */
12331 fis->d.lbaLowExp = 0x00; /* FIS LBA (31:24) */
12332 fis->d.lbaMidExp = 0x00; /* FIS LBA (39:32) */
12333 fis->d.lbaHighExp = 0x00; /* FIS LBA (47:40) */
12351 fis->d.lbaLow = 0x01; /* FIS LBA (7 :0 ) */
12352 fis->d.lbaMid = 0x00; /* FIS LBA (15:8 ) */
12353 fis->d.lbaHigh = 0x00; /* FIS LBA (23:16) */
12417 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
12418 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
12419 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
12584 /* cdb10; computing LBA and transfer length */
12597 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
12621 SM_DBG1(("smsatWriteSame10: return LBA out of range!!!\n"));
12691 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
12692 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
12693 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
12694 fis->d.device = 0x40; /* FIS LBA mode set */
12695 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
12696 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
12697 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
12746 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
12747 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
12748 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
12749 fis->d.device = 0x40; /* FIS LBA mode set */
12750 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
12751 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
12752 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
12855 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
12856 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
12857 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
12862 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
12863 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
12864 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
13349 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
13350 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
13351 fis->d.lbaMid = 0x4F; /* FIS LBA (15:8 ) */
13352 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
13353 fis->d.lbaHigh = 0xC2; /* FIS LBA (23:16) */
13354 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
14778 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
14779 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
14780 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
14781 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
14782 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
14783 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
14799 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
14800 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
14801 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
14910 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
14911 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
14912 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
14913 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
14914 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
14915 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
14931 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
14932 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
14933 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
14990 bit8 LBA[8];
15047 sm_memset(LBA, 0, sizeof(LBA));
15050 /* do not use memcpy due to indexing in LBA and TL */
15051 LBA[0] = 0; /* MSB */
15052 LBA[1] = 0;
15053 LBA[2] = 0;
15054 LBA[3] = 0;
15055 LBA[4] = scsiCmnd->cdb[2];
15056 LBA[5] = scsiCmnd->cdb[3];
15057 LBA[6] = scsiCmnd->cdb[4];
15058 LBA[7] = scsiCmnd->cdb[5]; /* LSB */
15070 /* cbd10; computing LBA and transfer length */
15083 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
15090 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
15093 SM_DBG1(("smsatWriteAndVerify10: return LBA out of range!!!\n"));
15114 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
15117 SM_DBG1(("smsatWriteAndVerify10: return LBA out of range, EXT!!!\n"));
15149 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
15150 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
15151 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
15153 /* FIS LBA mode set LBA (27:24) */
15180 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
15181 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
15182 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
15184 /* FIS LBA mode set LBA (27:24) */
15217 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
15218 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
15219 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
15220 fis->d.device = 0x40; /* FIS LBA mode set */
15221 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
15222 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
15223 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
15245 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
15246 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
15247 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
15248 fis->d.device = 0x40; /* FIS LBA mode set */
15249 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
15250 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
15251 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
15294 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
15295 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
15296 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
15304 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
15305 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
15306 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
15419 bit8 LBA[8];
15475 sm_memset(LBA, 0, sizeof(LBA));
15478 /* do not use memcpy due to indexing in LBA and TL */
15479 LBA[0] = 0; /* MSB */
15480 LBA[1] = 0;
15481 LBA[2] = 0;
15482 LBA[3] = 0;
15483 LBA[4] = scsiCmnd->cdb[2];
15484 LBA[5] = scsiCmnd->cdb[3];
15485 LBA[6] = scsiCmnd->cdb[4];
15486 LBA[7] = scsiCmnd->cdb[5]; /* LSB */
15509 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
15516 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
15523 SM_DBG1(("smsatWriteAndVerify12: return LBA out of range, not EXT!!!\n"));
15545 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
15548 SM_DBG1(("smsatWriteAndVerify12: return LBA out of range, EXT!!!\n"));
15573 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
15574 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
15575 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
15577 /* FIS LBA mode set LBA (27:24) */
15604 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
15605 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
15606 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
15608 /* FIS LBA mode set LBA (27:24) */
15640 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
15641 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
15642 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
15643 fis->d.device = 0x40; /* FIS LBA mode set */
15644 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
15645 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
15646 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
15668 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
15669 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
15670 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
15671 fis->d.device = 0x40; /* FIS LBA mode set */
15672 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
15673 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
15674 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
15718 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
15719 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
15720 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
15728 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
15729 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
15730 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
15833 since write16 has 8 bytes LBA -> problem ATA LBA(upto 6 bytes), no support
15844 bit8 LBA[8];
15901 sm_memset(LBA, 0, sizeof(LBA));
15905 /* do not use memcpy due to indexing in LBA and TL */
15906 LBA[0] = scsiCmnd->cdb[2]; /* MSB */
15907 LBA[1] = scsiCmnd->cdb[3];
15908 LBA[2] = scsiCmnd->cdb[4];
15909 LBA[3] = scsiCmnd->cdb[5];
15910 LBA[4] = scsiCmnd->cdb[6];
15911 LBA[5] = scsiCmnd->cdb[7];
15912 LBA[6] = scsiCmnd->cdb[8];
15913 LBA[7] = scsiCmnd->cdb[9]; /* LSB */
15937 When no 48-bit addressing support or NCQ, if LBA is beyond (2^28 - 1),
15944 AllChk = smsatCheckLimit(LBA, TL, agFALSE, pSatDevData);
15947 SM_DBG1(("smsatWriteAndVerify16: return LBA out of range, not EXT!!!\n"));
15968 AllChk = smsatCheckLimit(LBA, TL, agTRUE, pSatDevData);
15971 SM_DBG1(("smsatWriteAndVerify16: return LBA out of range, EXT!!!\n"));
16003 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
16004 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
16005 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
16007 /* FIS LBA mode set LBA (27:24) */
16034 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
16035 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
16036 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
16038 /* FIS LBA mode set LBA (27:24) */
16070 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
16071 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
16072 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
16073 fis->d.device = 0x40; /* FIS LBA mode set */
16074 fis->d.lbaLowExp = scsiCmnd->cdb[6]; /* FIS LBA (31:24) */
16075 fis->d.lbaMidExp = scsiCmnd->cdb[5]; /* FIS LBA (39:32) */
16076 fis->d.lbaHighExp = scsiCmnd->cdb[4]; /* FIS LBA (47:40) */
16098 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
16099 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
16100 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
16101 fis->d.device = 0x40; /* FIS LBA mode set */
16102 fis->d.lbaLowExp = scsiCmnd->cdb[6]; /* FIS LBA (31:24) */
16103 fis->d.lbaMidExp = scsiCmnd->cdb[5]; /* FIS LBA (39:32) */
16104 fis->d.lbaHighExp = scsiCmnd->cdb[4]; /* FIS LBA (47:40) */
16148 fis->d.lbaLow = scsiCmnd->cdb[9]; /* FIS LBA (7 :0 ) */
16149 fis->d.lbaMid = scsiCmnd->cdb[8]; /* FIS LBA (15:8 ) */
16150 fis->d.lbaHigh = scsiCmnd->cdb[7]; /* FIS LBA (23:16) */
16158 fis->d.lbaLowExp = scsiCmnd->cdb[6]; /* FIS LBA (31:24) */
16159 fis->d.lbaMidExp = scsiCmnd->cdb[5]; /* FIS LBA (39:32) */
16160 fis->d.lbaHighExp = scsiCmnd->cdb[4]; /* FIS LBA (47:40) */
16384 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
16385 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
16386 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
16387 fis->d.device = 0x40; /* FIS LBA mode set */
16388 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
16389 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
16390 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
16407 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
16408 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
16409 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
16410 fis->d.device = 0x40; /* FIS LBA (27:24) and FIS LBA mode */
16515 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
16516 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
16517 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
16518 fis->d.device = 0x40; /* FIS LBA (27:24) and FIS LBA mode */
16781 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
16782 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
16783 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
16784 fis->d.device = 0x40; /* FIS LBA (27:24) and FIS LBA mode */
16917 assumes all LBA fits in ATA command; no boundary condition is checked here yet
16929 bit8 LBA[8];
16963 sm_memset(satIOContext->LBA, 0, 8);
16969 sm_memset(LBA, 0, sizeof(LBA));
16987 LBA[4] = pParmList[startingIndex]; /* MSB */
16988 LBA[5] = pParmList[startingIndex+1];
16989 LBA[6] = pParmList[startingIndex+2];
16990 LBA[7] = pParmList[startingIndex+3]; /* LSB */
16995 LBA[0] = pParmList[startingIndex]; /* MSB */
16996 LBA[1] = pParmList[startingIndex+1];
16997 LBA[2] = pParmList[startingIndex+2];
16998 LBA[3] = pParmList[startingIndex+3];
16999 LBA[4] = pParmList[startingIndex+4];
17000 LBA[5] = pParmList[startingIndex+5];
17001 LBA[6] = pParmList[startingIndex+6];
17002 LBA[7] = pParmList[startingIndex+7]; /* LSB */
17015 fis->d.lbaLow = LBA[7]; /* FIS LBA (7 :0 ) */
17016 fis->d.lbaMid = LBA[6]; /* FIS LBA (15:8 ) */
17017 fis->d.lbaHigh = LBA[5]; /* FIS LBA (23:16) */
17018 fis->d.lbaLowExp = LBA[4]; /* FIS LBA (31:24) */
17019 fis->d.lbaMidExp = LBA[3]; /* FIS LBA (39:32) */
17020 fis->d.lbaHighExp = LBA[2]; /* FIS LBA (47:40) */
17036 fis->d.lbaLow = LBA[7]; /* FIS LBA (7 :0 ) */
17037 fis->d.lbaMid = LBA[6]; /* FIS LBA (15:8 ) */
17038 fis->d.lbaHigh = LBA[5]; /* FIS LBA (23:16) */
17046 fis->d.device = (bit8)((0x4 << 4) | (LBA[4] & 0xF));
17047 /* DEV and LBA 27:24 */
17052 sm_memcpy(satIOContext->LBA, LBA, 8);
17096 bit8 LBA[4]; /* 0 MSB, 3 LSB */
17104 sm_memset(LBA,0, sizeof(LBA));
17133 LBA[0] = (bit8)((lba & 0xFF000000) >> (8 * 3));
17134 LBA[1] = (bit8)((lba & 0xFF0000) >> (8 * 2));
17135 LBA[2] = (bit8)((lba & 0xFF00) >> 8);
17136 LBA[3] = (bit8)(lba & 0xFF);
17145 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
17146 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
17147 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
17149 (bit8)((0x4 << 4) | (LBA[0] & 0xF)); /* FIS LBA (27:24) and FIS LBA mode */
17178 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
17179 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
17180 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
17182 (bit8)((0x4 << 4) | (LBA[0] & 0xF)); /* FIS LBA (27:24) and FIS LBA mode */
17209 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
17210 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
17211 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
17212 fis->d.device = 0x40; /* FIS LBA mode set */
17213 fis->d.lbaLowExp = LBA[0]; /* FIS LBA (31:24) */
17214 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
17215 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
17241 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
17242 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
17243 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
17244 fis->d.device = 0x40; /* FIS LBA mode set */
17245 fis->d.lbaLowExp = LBA[0]; /* FIS LBA (31:24) */
17246 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
17247 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
17270 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
17271 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
17272 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
17280 fis->d.lbaLowExp = LBA[0]; /* FIS LBA (31:24) */
17281 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
17282 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
17372 bit8 LBA[4]; /* 0 MSB, 3 LSB */
17380 sm_memset(LBA,0, sizeof(LBA));
17413 LBA[0] = (bit8)((lba & 0xFF000000) >> (8 * 3));
17414 LBA[1] = (bit8)((lba & 0xFF0000) >> (8 * 2));
17415 LBA[2] = (bit8)((lba & 0xFF00) >> 8);
17416 LBA[3] = (bit8)(lba & 0xFF);
17425 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
17426 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
17427 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
17429 /* FIS LBA mode set LBA (27:24) */
17430 fis->d.device = (bit8)((0x4 << 4) | (LBA[0] & 0xF));
17458 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
17459 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
17460 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
17462 /* FIS LBA mode set LBA (27:24) */
17463 fis->d.device = (bit8)((0x4 << 4) | (LBA[0] & 0xF));
17491 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
17492 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
17493 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
17494 fis->d.device = 0x40; /* FIS LBA mode set */
17495 fis->d.lbaLowExp = LBA[0]; /* FIS LBA (31:24) */
17496 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
17497 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
17523 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
17524 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
17525 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
17526 fis->d.device = 0x40; /* FIS LBA mode set */
17527 fis->d.lbaLowExp = LBA[0]; /* FIS LBA (31:24) */
17528 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
17529 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
17553 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
17554 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
17555 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
17563 fis->d.lbaLowExp = LBA[0];; /* FIS LBA (31:24) */
17564 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
17565 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
17734 fis->d.lbaLow = scsiCmnd->cdb[5]; /* Reading LBA FIS LBA (7 :0 ) */
17855 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
17856 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
17857 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
17858 fis->d.device = 0x40; /* FIS LBA mode set 01000000 */
17859 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
17860 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
17861 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
17893 /* can't fit in SAT_READ_VERIFY_SECTORS becasue of Sector Count and LBA */
17910 no LBA check; no range check;
17920 bit8 LBA[4];
17928 sm_memset(LBA, 0, sizeof(LBA));
17930 /* do not use memcpy due to indexing in LBA and TL */
17931 LBA[0] = scsiCmnd->cdb[2]; /* MSB */
17932 LBA[1] = scsiCmnd->cdb[3];
17933 LBA[2] = scsiCmnd->cdb[4];
17934 LBA[3] = scsiCmnd->cdb[5]; /* LSB */
17949 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
17950 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
17951 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
17952 fis->d.device = 0x40; /* FIS LBA mode set 01000000 */
17953 fis->d.lbaLowExp = scsiCmnd->cdb[2]; /* FIS LBA (31:24) */
17954 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
17955 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
17974 fis->d.lbaLow = scsiCmnd->cdb[5]; /* FIS LBA (7 :0 ) */
17975 fis->d.lbaMid = scsiCmnd->cdb[4]; /* FIS LBA (15:8 ) */
17976 fis->d.lbaHigh = scsiCmnd->cdb[3]; /* FIS LBA (23:16) */
17977 /* FIS LBA mode set LBA (27:24) */
18086 bit8 LBA[4]; /* 0 MSB, 3 LSB */
18095 sm_memset(LBA,0, sizeof(LBA));
18127 LBA[0] = (bit8)((lba & 0xF000) >> (8 * 3)); /* MSB */
18128 LBA[1] = (bit8)((lba & 0xF00) >> (8 * 2));
18129 LBA[2] = (bit8)((lba & 0xF0) >> 8);
18130 LBA[3] = (bit8)(lba & 0xF); /* LSB */
18139 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
18140 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
18141 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
18143 /* FIS LBA mode set LBA (27:24) */
18144 fis->d.device = (bit8)((0x4 << 4) | (LBA[0] & 0xF));
18172 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
18173 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
18174 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
18176 /* FIS LBA mode set LBA (27:24) */
18177 fis->d.device = (bit8)((0x4 << 4) | (LBA[0] & 0xF));
18205 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
18206 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
18207 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
18208 fis->d.device = 0x40; /* FIS LBA mode set */
18209 fis->d.lbaLowExp = LBA[0]; /* FIS LBA (31:24) */
18210 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
18211 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
18237 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
18238 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
18239 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
18240 fis->d.device = 0x40; /* FIS LBA mode set */
18241 fis->d.lbaLowExp = LBA[0]; /* FIS LBA (31:24) */
18242 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
18243 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
18267 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
18268 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
18269 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
18277 fis->d.lbaLowExp = LBA[0];; /* FIS LBA (31:24) */
18278 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
18279 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
18343 bit8 LBA[4]; /* 0 MSB, 3 LSB */
18348 sm_memset(LBA,0, sizeof(LBA));
18367 LBA[0] = (bit8)((lba & 0xF000) >> (8 * 3)); /* MSB */
18368 LBA[1] = (bit8)((lba & 0xF00) >> (8 * 2));
18369 LBA[2] = (bit8)((lba & 0xF0) >> 8);
18370 LBA[3] = (bit8)(lba & 0xF); /* LSB */
18379 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
18380 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
18381 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
18383 /* FIS LBA mode set LBA (27:24) */
18384 fis->d.device = (bit8)((0x4 << 4) | (LBA[0] & 0xF));
18412 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
18413 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
18414 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
18415 fis->d.device = 0x40; /* FIS LBA mode set */
18416 fis->d.lbaLowExp = LBA[0]; /* FIS LBA (31:24) */
18417 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
18418 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
18482 bit8 LBA[4]; /* 0 MSB, 3 LSB */
18487 sm_memset(LBA,0, sizeof(LBA));
18506 LBA[0] = (bit8)((lba & 0xF000) >> (8 * 3)); /* MSB */
18507 LBA[1] = (bit8)((lba & 0xF00) >> (8 * 2));
18508 LBA[2] = (bit8)((lba & 0xF0) >> 8);
18509 LBA[3] = (bit8)(lba & 0xF); /* LSB */
18518 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
18519 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
18520 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
18522 /* FIS LBA mode set LBA (27:24) */
18523 fis->d.device = (bit8)((0x4 << 4) | (LBA[0] & 0xF));
18551 fis->d.lbaLow = LBA[3]; /* FIS LBA (7 :0 ) */
18552 fis->d.lbaMid = LBA[2]; /* FIS LBA (15:8 ) */
18553 fis->d.lbaHigh = LBA[1]; /* FIS LBA (23:16) */
18554 fis->d.device = 0x40; /* FIS LBA mode set */
18555 fis->d.lbaLowExp = LBA[0]; /* FIS LBA (31:24) */
18556 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
18557 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
18637 fis->d.lbaLow = lba4; /* FIS LBA (7 :0 ) */
18638 fis->d.lbaMid = lba3; /* FIS LBA (15:8 ) */
18639 fis->d.lbaHigh = lba2; /* FIS LBA (23:16) */
18640 fis->d.device = 0x40; /* FIS LBA mode set */
18641 fis->d.lbaLowExp = lba1; /* FIS LBA (31:24) */
18642 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
18643 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
18701 fis->d.lbaLow = lba4; /* FIS LBA (7 :0 ) */
18702 fis->d.lbaMid = lba3; /* FIS LBA (15:8 ) */
18703 fis->d.lbaHigh = lba2; /* FIS LBA (23:16) */
18704 fis->d.device = 0x40; /* FIS LBA mode set */
18705 fis->d.lbaLowExp = lba1; /* FIS LBA (31:24) */
18706 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
18707 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
18771 fis->d.lbaLow = lba4; /* FIS LBA (7 :0 ) */
18772 fis->d.lbaMid = lba3; /* FIS LBA (15:8 ) */
18773 fis->d.lbaHigh = lba2; /* FIS LBA (23:16) */
18776 fis->d.lbaLowExp = lba1; /* FIS LBA (31:24) */
18777 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
18778 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
18827 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
18828 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
18829 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
18884 sector count 1, LBA MAX
18893 fis->d.lbaLow = pSatDevData->satMaxLBA[7]; /* FIS LBA (7 :0 ) */
18894 fis->d.lbaMid = pSatDevData->satMaxLBA[6]; /* FIS LBA (15:8 ) */
18895 fis->d.lbaHigh = pSatDevData->satMaxLBA[5]; /* FIS LBA (23:16) */
18896 fis->d.lbaLowExp = pSatDevData->satMaxLBA[4]; /* FIS LBA (31:24) */
18897 fis->d.lbaMidExp = pSatDevData->satMaxLBA[3]; /* FIS LBA (39:32) */
18898 fis->d.lbaHighExp = pSatDevData->satMaxLBA[2]; /* FIS LBA (47:40) */
18915 fis->d.lbaLow = pSatDevData->satMaxLBA[7]; /* FIS LBA (7 :0 ) */
18916 fis->d.lbaMid = pSatDevData->satMaxLBA[6]; /* FIS LBA (15:8 ) */
18917 fis->d.lbaHigh = pSatDevData->satMaxLBA[5]; /* FIS LBA (23:16) */
18926 /* DEV and LBA 27:24 */
18976 sector count 1, LBA Random
18985 fis->d.lbaLow = 0x7F; /* FIS LBA (7 :0 ) */
18986 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
18987 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
18988 fis->d.lbaLowExp = 0; /* FIS LBA (31:24) */
18989 fis->d.lbaMidExp = 0; /* FIS LBA (39:32) */
18990 fis->d.lbaHighExp = 0; /* FIS LBA (47:40) */
19007 fis->d.lbaLow = 0x7F; /* FIS LBA (7 :0 ) */
19008 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
19009 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
19017 fis->d.device = 0x40; /* FIS LBA mode set 01000000 */
19274 bit8 *LBA
19278 assumes all LBA fits in ATA command; no boundary condition is checked here yet
19302 fis->d.lbaLow = LBA[7]; /* FIS LBA (7 :0 ) */
19303 fis->d.lbaMid = LBA[6]; /* FIS LBA (15:8 ) */
19304 fis->d.lbaHigh = LBA[5]; /* FIS LBA (23:16) */
19306 /* FIS LBA mode set LBA (27:24) */
19307 fis->d.device = (bit8)((0x4 << 4) | (LBA[4] & 0xF));
19333 fis->d.lbaLow = LBA[7]; /* FIS LBA (7 :0 ) */
19334 fis->d.lbaMid = LBA[6]; /* FIS LBA (15:8 ) */
19335 fis->d.lbaHigh = LBA[7]; /* FIS LBA (23:16) */
19337 /* FIS LBA mode set LBA (27:24) */
19338 fis->d.device = (bit8)((0x4 << 4) | (LBA[4] & 0xF));
19370 fis->d.lbaLow = LBA[7]; /* FIS LBA (7 :0 ) */
19371 fis->d.lbaMid = LBA[6]; /* FIS LBA (15:8 ) */
19372 fis->d.lbaHigh = LBA[5]; /* FIS LBA (23:16) */
19373 fis->d.device = 0x40; /* FIS LBA mode set */
19374 fis->d.lbaLowExp = LBA[4]; /* FIS LBA (31:24) */
19375 fis->d.lbaMidExp = LBA[3]; /* FIS LBA (39:32) */
19376 fis->d.lbaHighExp = LBA[2]; /* FIS LBA (47:40) */
19397 fis->d.lbaLow = LBA[7]; /* FIS LBA (7 :0 ) */
19398 fis->d.lbaMid = LBA[6]; /* FIS LBA (15:8 ) */
19399 fis->d.lbaHigh = LBA[5]; /* FIS LBA (23:16) */
19400 fis->d.device = 0x40; /* FIS LBA mode set */
19401 fis->d.lbaLowExp = LBA[4]; /* FIS LBA (31:24) */
19402 fis->d.lbaMidExp = LBA[3]; /* FIS LBA (39:32) */
19403 fis->d.lbaHighExp = LBA[2]; /* FIS LBA (47:40) */
19446 fis->d.lbaLow = LBA[7]; /* FIS LBA (7 :0 ) */
19447 fis->d.lbaMid = LBA[6]; /* FIS LBA (15:8 ) */
19448 fis->d.lbaHigh = LBA[5]; /* FIS LBA (23:16) */
19453 fis->d.lbaLowExp = LBA[4]; /* FIS LBA (31:24) */
19454 fis->d.lbaMidExp = LBA[3]; /* FIS LBA (39:32) */
19455 fis->d.lbaHighExp = LBA[2]; /* FIS LBA (47:40) */
19494 assumes all LBA fits in ATA command; no boundary condition is checked here yet
19503 bit8 LBA[8];
19512 sm_memset(LBA, 0, sizeof(LBA));
19516 LBA[4] = pParmList[startingIndex];
19517 LBA[5] = pParmList[startingIndex+1];
19518 LBA[6] = pParmList[startingIndex+2];
19519 LBA[7] = pParmList[startingIndex+3];
19524 LBA[0] = pParmList[startingIndex];
19525 LBA[1] = pParmList[startingIndex+1];
19526 LBA[2] = pParmList[startingIndex+2];
19527 LBA[3] = pParmList[startingIndex+3];
19528 LBA[4] = pParmList[startingIndex+4];
19529 LBA[5] = pParmList[startingIndex+5];
19530 LBA[6] = pParmList[startingIndex+6];
19531 LBA[7] = pParmList[startingIndex+7];
19542 fis->d.lbaLow = LBA[7]; /* FIS LBA (7 :0 ) */
19543 fis->d.lbaMid = LBA[6]; /* FIS LBA (15:8 ) */
19544 fis->d.lbaHigh = LBA[5]; /* FIS LBA (23:16) */
19545 fis->d.lbaLowExp = LBA[4]; /* FIS LBA (31:24) */
19546 fis->d.lbaMidExp = LBA[3]; /* FIS LBA (39:32) */
19547 fis->d.lbaHighExp = LBA[2]; /* FIS LBA (47:40) */
19563 fis->d.lbaLow = LBA[7]; /* FIS LBA (7 :0 ) */
19564 fis->d.lbaMid = LBA[6]; /* FIS LBA (15:8 ) */
19565 fis->d.lbaHigh = LBA[5]; /* FIS LBA (23:16) */
19573 fis->d.device = (bit8)((0x4 << 4) | (LBA[4] & 0xF));
19574 /* DEV and LBA 27:24 */
19579 sm_memcpy(satOrgIOContext->LBA, LBA, 8);
19748 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
19749 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
19750 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
19751 fis->d.device = 0; /* FIS LBA mode */
19819 fis->d.lbaLow = 0; /* FIS LBA (7 :0 ) */
19820 fis->d.lbaMid = 0; /* FIS LBA (15:8 ) */
19821 fis->d.lbaHigh = 0; /* FIS LBA (23:16) */
19822 fis->d.device = 0; /* FIS LBA mode */
20280 CBD16 has bit64 LBA
20282 Therefore, use last four bytes to compute LBA is OK
20352 LBA itself, LBA+TL < SAT_TR_LBA_LIMIT or SAT_EXT_TR_LBA_LIMIT
20353 and LBA+TL < Read Capacity Limit
20376 check LBA
20407 SM_DBG1(("smsatCheckLimit: LBA check True at %d\n", i));
20413 SM_DBG5(("smsatCheckLimit: LBA check False at %d\n", i));
20425 SM_DBG1(("smsatCheckLimit: return LBA check True\n"));
20430 check LBA+TL < SAT_TR_LBA_LIMIT or SAT_EXT_TR_LBA_LIMIT
20532 LBA+TL < Read Capacity Limit