SLVAFL1 October 2024 TPS25751 , TPS26750
static int32_t UpdateRegionOfEeprom_Step2(uint8_t region_number)
{
uint8_t outdata[MAX_BUF_BSIZE] = {0};
s_TPS_flad fladInData = {0};
uint32_t bytesUpdated = 0;
int32_t retVal = -1;
int32_t idx = -1;
/*
* Set the start address for the next write
*/
fladInData.flashaddr = region_addr_patchbundle[region_number];
retVal = ExecCmd(FLad, sizeof(fladInData), (uint8_t *)&fladInData,
TASK_RET_CODE_LEN, &outdata[0]);
RETURN_ON_ERROR(retVal);
if(0 != outdata[1]) {retVal = -1; goto error;}
for (idx = 0; idx < gSizeLowregionArray/PATCH_BUNDLE_SIZE; idx++)
{
/*
* Execute FLwd with PATCH_BUNDLE_SIZE bytes of patch-data
* in each iteration
*/
retVal = ExecCmd(FLwd, PATCH_BUNDLE_SIZE,\
(uint8_t *)&tps6598x_lowregion_array[idx * PATCH_BUNDLE_SIZE],
TASK_RET_CODE_LEN, &outdata[0]);
RETURN_ON_ERROR(retVal);
if(0 != outdata[1]) {retVal = -1; goto error;}
bytesUpdated += PATCH_BUNDLE_SIZE;
Board_IF_Delay(75); /* in uSecs */
}
/* Push more bytes if any */
if(gSizeLowregionArray > bytesUpdated)
{
retVal = ExecCmd(FLwd, gSizeLowregionArray - bytesUpdated,\
(uint8_t *)&tps6598x_lowregion_array[idx * PATCH_BUNDLE_SIZE],
TASK_RET_CODE_LEN, &outdata[0]);
RETURN_ON_ERROR(retVal);
if(0 != outdata[1]) {retVal = -1; goto error;}
}
error:
return retVal;
}