Properly retry system bus access if busy error was detected.

This commit is contained in:
Darius Rad 2018-05-01 11:44:39 -04:00
parent cb282e81bc
commit 31494f68a4
1 changed files with 2 additions and 0 deletions

View File

@ -1913,6 +1913,7 @@ static int read_memory_bus_v1(struct target *target, target_addr_t address,
dmi_write(target, DMI_SBCS, DMI_SBCS_SBBUSYERROR);
next_address = sb_read_address(target);
info->bus_master_read_delay += info->bus_master_read_delay / 10 + 1;
continue;
}
unsigned error = get_field(sbcs, DMI_SBCS_SBERROR);
@ -2351,6 +2352,7 @@ static int write_memory_bus_v1(struct target *target, target_addr_t address,
dmi_write(target, DMI_SBCS, DMI_SBCS_SBBUSYERROR);
next_address = sb_read_address(target);
info->bus_master_write_delay += info->bus_master_write_delay / 10 + 1;
continue;
}
unsigned error = get_field(sbcs, DMI_SBCS_SBERROR);