Everyone:
I use the RTFS system to read and write SATA on the OMAP-L138 board. And I use bios_5_41_13_42, rtfs_1_10_02_32, pspdrivers_01_30_01.
When I do the ATA_DrvInit() , I stucked in the ATA_SubmitIdentify() function:
pReq -> Retry = 10u; ATA_SubmitReq (pDevice, pReq); while (pReq -> Retry != 0) { //PAL_osWaitMsecs (1u); m_delay(1u); //pReq -> Retry--; }
I find other codes alike in the ata.c, as following:
static Int32 ATA_MaxLba (ATA_Drive_t *pDevice) { ATA_Dev_Req_t *pReq = NULL; ATA_Dev_Stat_t Status; Int32 retVal = ATA_ERR_GEN; if(NULL != pDevice) { retVal = ATA_NO_ERR; pReq = ATA_AllocReq (pDevice, False); if (pReq != NULL) { pReq -> MediaHandle = NULL; pReq -> IsInternal = True; pReq -> Command . Device = pDevice -> Dev; pReq -> Command . Cmd = ATA_READ_MAX_SECT; pReq -> Buffer = NULL; pReq -> Mode = TASKFILE; pReq -> Res . IsEvent = False; pReq -> Handler = &ATA_IdentHndlr; pReq -> ToHndlr = &ATA_IdentHndlr; pReq -> Timeout = ATA_ONESEC_TO; pReq -> Retry = 10u; ATA_SubmitReq (pDevice, pReq); while (pReq -> Retry != 0) { m_delay(1u); } Status = pReq->Status;
So how the value of pReq -> Retry changed?