
The LUN number is not part of the Command Descriptor Block (CDB) for scsi inquiry, request sense, test unit ready, read capacity and read10 commands. This patch removes the LUN number information from the CDB.
Signed-off-by: Thomas Abraham t-abraham@ti.com
--- u-boot-usb/common/usb_storage.c.orig 2008-10-28 17:08:45.000000000 +0530 +++ u-boot-usb/common/usb_storage.c 2008-10-28 17:09:12.000000000 +0530 @@ -827,7 +827,6 @@ static int usb_inquiry(ccb *srb,struct u do { memset(&srb->cmd[0],0,12); srb->cmd[0]=SCSI_INQUIRY; - srb->cmd[1]=srb->lun<<5; srb->cmd[4]=36; srb->datalen=36; srb->cmdlen=12; @@ -851,7 +850,6 @@ static int usb_request_sense(ccb *srb,st ptr=(char *)srb->pdata; memset(&srb->cmd[0],0,12); srb->cmd[0]=SCSI_REQ_SENSE; - srb->cmd[1]=srb->lun<<5; srb->cmd[4]=18; srb->datalen=18; srb->pdata = &srb->sense_buf[0]; @@ -869,7 +867,6 @@ static int usb_test_unit_ready(ccb *srb, do { memset(&srb->cmd[0],0,12); srb->cmd[0]=SCSI_TST_U_RDY; - srb->cmd[1]=srb->lun<<5; srb->datalen=0; srb->cmdlen=12; if(ss->transport(srb,ss)==USB_STOR_TRANSPORT_GOOD) { @@ -889,7 +886,6 @@ static int usb_read_capacity(ccb *srb,st do { memset(&srb->cmd[0],0,12); srb->cmd[0]=SCSI_RD_CAPAC; - srb->cmd[1]=srb->lun<<5; srb->datalen=8; srb->cmdlen=12; if(ss->transport(srb,ss)==USB_STOR_TRANSPORT_GOOD) { @@ -904,7 +900,6 @@ static int usb_read_10(ccb *srb,struct u { memset(&srb->cmd[0],0,12); srb->cmd[0]=SCSI_READ10; - srb->cmd[1]=srb->lun<<5; srb->cmd[2]=((unsigned char) (start>>24))&0xff; srb->cmd[3]=((unsigned char) (start>>16))&0xff; srb->cmd[4]=((unsigned char) (start>>8))&0xff;