Lines Matching refs:pccb
27 extern int ufs_send_scsi_cmd(struct ufs_hba *hba, struct scsi_cmd *pccb);
82 static void scsi_secproc_in(struct scsi_cmd *pccb, uint32_t lba, uint32_t size) in scsi_secproc_in() argument
84 pccb->cmd[0] = UFS_OP_SECURITY_PROTOCOL_IN; /* 0: opcode */ in scsi_secproc_in()
85 pccb->cmd[1] = 0xEC; /* 1: security protocal */ in scsi_secproc_in()
86 pccb->cmd[2] = 0; /* 2: specific */ in scsi_secproc_in()
87 pccb->cmd[3] = 0x1; /* 3: specific */ in scsi_secproc_in()
88 pccb->cmd[4] = 0; /* 4: reserved */ in scsi_secproc_in()
89 pccb->cmd[5] = 0; /* 5: reserved */ in scsi_secproc_in()
90 pccb->cmd[6] = (uint8_t)((size >> 24) & 0xff); /* 6: MSB, shift 24 */ in scsi_secproc_in()
91 pccb->cmd[7] = (uint8_t)((size >> 16) & 0xff); /* 7: MSB, shift 16 */ in scsi_secproc_in()
92 pccb->cmd[8] = (uint8_t)((size >> 8) & 0xff); /* 8: LSB, shift 8 */ in scsi_secproc_in()
93 pccb->cmd[9] = (uint8_t)(size & 0xff); /* 9: LSB */ in scsi_secproc_in()
94 pccb->cmd[10] = 0; /* 10: reserved */ in scsi_secproc_in()
95 pccb->cmd[11] = 0; /* 11: control */ in scsi_secproc_in()
97 pccb->cmdlen = 12; in scsi_secproc_in()
100 static void scsi_secproc_out(struct scsi_cmd *pccb, uint32_t lba, uint32_t size) in scsi_secproc_out() argument
102 pccb->cmd[0] = UFS_OP_SECURITY_PROTOCOL_OUT; /* 0: opcode */ in scsi_secproc_out()
103 pccb->cmd[1] = 0xEC; /* 1: security protocal */ in scsi_secproc_out()
104 pccb->cmd[2] = 0; /* 2: specific */ in scsi_secproc_out()
105 pccb->cmd[3] = 0x1; /* 3: specific */ in scsi_secproc_out()
106 pccb->cmd[4] = 0; /* 4: reserved */ in scsi_secproc_out()
107 pccb->cmd[5] = 0; /* 5: reserved */ in scsi_secproc_out()
108 pccb->cmd[6] = (uint8_t)((size >> 24) & 0xff); /* 6: MSB, shift 24 */ in scsi_secproc_out()
109 pccb->cmd[7] = (uint8_t)((size >> 16) & 0xff); /* 7: MSB, shift 16 */ in scsi_secproc_out()
110 pccb->cmd[8] = (uint8_t)((size >> 8) & 0xff); /* 8: LSB, shift 8 */ in scsi_secproc_out()
111 pccb->cmd[9] = (uint8_t)(size & 0xff); /* 9: LSB */ in scsi_secproc_out()
112 pccb->cmd[10] = 0; /* 10: reserved */ in scsi_secproc_out()
113 pccb->cmd[11] = 0; /* 11: control */ in scsi_secproc_out()
115 pccb->cmdlen = 12; in scsi_secproc_out()
118 static void scsi_test_unit_ready(struct scsi_cmd *pccb) in scsi_test_unit_ready() argument
120 pccb->cmd[0] = UFS_OP_TST_U_RDY; in scsi_test_unit_ready()
121 pccb->cmd[1] = pccb->lun << 5; in scsi_test_unit_ready()
122 pccb->cmd[2] = 0; in scsi_test_unit_ready()
123 pccb->cmd[3] = 0; in scsi_test_unit_ready()
124 pccb->cmd[4] = 0; in scsi_test_unit_ready()
125 pccb->cmd[5] = 0; in scsi_test_unit_ready()
126 pccb->cmdlen = 6; in scsi_test_unit_ready()
132 struct scsi_cmd *pccb = (struct scsi_cmd *)&tempccb; in rpmb_send_scsi_cmd() local
134 pccb->lun = lun; in rpmb_send_scsi_cmd()
135 pccb->pdata = buf_addr; in rpmb_send_scsi_cmd()
136 pccb->dma_dir = dma_dir; in rpmb_send_scsi_cmd()
137 pccb->datalen = blkcnt * sizeof(struct rpmb_data_frame); in rpmb_send_scsi_cmd()
140 scsi_secproc_out(pccb, start, pccb->datalen); in rpmb_send_scsi_cmd()
141 pccb->cmdlen = 12; in rpmb_send_scsi_cmd()
143 scsi_secproc_in(pccb, start, pccb->datalen); in rpmb_send_scsi_cmd()
144 pccb->cmdlen = 12; in rpmb_send_scsi_cmd()
146 scsi_test_unit_ready(pccb); in rpmb_send_scsi_cmd()
151 return ufs_send_scsi_cmd(hba, pccb); in rpmb_send_scsi_cmd()