aboutsummaryrefslogtreecommitdiffstats
path: root/fw/ta_ida.py
diff options
context:
space:
mode:
authoruser <user@clank>2026-10-01 18:41:57 +0200
committeruser <user@clank>2026-10-01 18:41:57 +0200
commitf370384a949cfb40947bf0bed8f74b58dfd409b8 (patch)
tree7ff4b397a077098932f45f9956df923a52521b5f /fw/ta_ida.py
parenthalf the remaining name contradictions are not contradictions: SVC thunks car... (diff)
downloadamd-psp-re-f370384a949cfb40947bf0bed8f74b58dfd409b8.tar.gz
amd-psp-re-f370384a949cfb40947bf0bed8f74b58dfd409b8.tar.xz
amd-psp-re-f370384a949cfb40947bf0bed8f74b58dfd409b8.zip
rename 54 entry_trampoline instances to ta_main_loop, which is what the body does
The last unadjudicated name contradiction. Eight modules called this function entry_trampoline while DTM, RAS, HDCP and ASD called the byte-identical function ta_main_loop, and the body settles it rather than the head count: while (1) { SVC 0xF0; v6 = *a1; switch (v6) { ... } v7(); } It is __noreturn, yields to the OS, dispatches on the request code at *a1, calls the handler and loops forever. That is a main loop. A trampoline does not loop, so entry_trampoline is the wrong word and the 54 instances under it were the outliers despite being the larger group. Fixed across xgmi, wspe, gcp, merit, opm, csu, powerplay and auc; no entry_trampoline remains in any artifact. Counts are unchanged at 19,352 named, 112 placeholders and 67.5% field share, which is correct for a rename of already-named functions -- it changes what the artifacts say, not what they cover. Cross-module name contradictions are now 32 -> 10, of which six are the SVC thunks that are correctly non-identical, two are legitimate synonym pairs (bzero_core against lib_zero_fill_words), and two are ASD's own semantic-versus-transport naming. Nothing is left that reading a body can decide.
Diffstat (limited to 'fw/ta_ida.py')
-rw-r--r--fw/ta_ida.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/fw/ta_ida.py b/fw/ta_ida.py
index d9aad8d..1d2335d 100644
--- a/fw/ta_ida.py
+++ b/fw/ta_ida.py
@@ -318,6 +318,13 @@ LIB_RENAME = {
# formatters and I can see they handle width/precision but not which is which;
# lib_d732abea_240 and lib_2cd87843_108 are arithmetic/format bodies whose role I would be
# guessing at. 111 instances left placeholder rather than mislabelled.
+ # entry_trampoline -> ta_main_loop. The body is __noreturn and reads
+ # while (1) { SVC 0xF0; v6 = *a1; switch (v6) { ... } v7(); }
+ # -- it yields to the OS, dispatches on the request code at *a1, calls the handler and
+ # loops forever. That is a main loop. A trampoline does not loop, so entry_trampoline is
+ # simply the wrong word for it; DTM, RAS, HDCP and ASD already call the byte-identical
+ # function ta_main_loop, and the 54 instances under the other name are the odd ones out.
+ "entry_trampoline": "ta_main_loop",
}
# PENDING, not applied. CAUSE STILL UNKNOWN -- two explanations have been offered and both were