Retry tsec keygen on failure

This commit is contained in:
shchmue 2021-08-30 21:32:57 -06:00
parent 705bb7c066
commit e041330ed9

View file

@ -95,13 +95,17 @@ static int _run_ams_keygen(key_derivation_ctx_t *keys) {
tsec_ctxt.fw = tsec_keygen; tsec_ctxt.fw = tsec_keygen;
tsec_ctxt.size = sizeof(tsec_keygen); tsec_ctxt.size = sizeof(tsec_keygen);
tsec_ctxt.type = TSEC_FW_TYPE_NEW; tsec_ctxt.type = TSEC_FW_TYPE_NEW;
int res = tsec_query(keys->temp_key, &tsec_ctxt);
if (res) { u32 retries = 0;
EPRINTFARGS("ERROR %d running keygen.\n", res); while (tsec_query(keys->temp_key, &tsec_ctxt) < 0) {
retries++;
if (retries > 15) {
EPRINTF("Failed to run keygen.");
return -1;
}
} }
return res; return 0;
} }
static void _derive_master_keys_from_latest_key(key_derivation_ctx_t *keys, bool is_dev) { static void _derive_master_keys_from_latest_key(key_derivation_ctx_t *keys, bool is_dev) {
@ -799,7 +803,6 @@ static void _derive_keys() {
} else { } else {
int res = _run_ams_keygen(keys); int res = _run_ams_keygen(keys);
if (res) { if (res) {
EPRINTF("Unable to run keygen.");
return; return;
} }