compat: regenerate the recover table against the org q1n1

compat/adreno-recover-table.h recorded the sha256 of sme-batch12's q1n1
a16gpu_stage3.py and adreno_x2.py, so installed_fresh's
recover_table_check refused a --gpu-recover reset prepare against the
Snapintosh q1n1 repository (branch migrate-private, 7872398), whose
files differ (adreno_x2.py moved its GPL-2.0-only tables, among them
X285_NONCTXT that hw_init writes, into adreno_x2_protect.py).

tools/gen-adreno-recover-table.py now also records
adreno_x2_protect.py when the q1n1 checkout has it, since hw_init's
non-context writes come from there. Regenerated from that q1n1, only
ADRENO_RECOVER_TABLE_INPUTS changes: every replayed operation, the
CP_ME_INIT words and the SECVID ops are the same. The macro is read
only by the prepare check, so no monitor binary changes.

tools/test-gen-adreno-recover-table.py passes against that q1n1 (it
failed before). compat/adreno-ib-tables.h already records
adreno_x2_protect.py, and its generator reports it fresh against the
same q1n1 and the pinned Mesa.
This commit is contained in:
Acelogic committed 2026-10-23 21:03:00 -04:00
1 parent 5ff9d30407
commit 3a07fba3cb
2 files changed
+6 -2

No files matched your search

+1 -1
View File
@@ -14,7 +14,7 @@
*/
#pragma once
#include <stdint.h>
#define ADRENO_RECOVER_TABLE_INPUTS "a16gpu_stage3.py:47df054f6fd6d59b3c14be384f8ec79433bc83d3a26ecb0abaee39ca50bf2e50 adreno_x2.py:4f3cb92f67a81f693d17e298c70b3e55690c9ba48c3b9a379d8127a44f39094f"
#define ADRENO_RECOVER_TABLE_INPUTS "a16gpu_stage3.py:0afd4df74509735e46003e5ac251fc2e42d41df57b5192d7abb2ff4258cd0041 adreno_x2.py:b3ee82f1f1dfcda4f2efafc4cd3facfd4c56b0e0275295142a93a5d8976d0caf adreno_x2_protect.py:d35d3cdf24340fd18fc7c6f1806664cd13726ec6795626f27b15ce93aa9d3cfb"
#define ADRENO_RECOVER_TABLE_CP_FENCE_OPTIONS ""
#define ADRENO_RECOVER_TABLE_PROTECT_GLOBAL 52u
#define ADRENO_RT_WRITE 0u
+5 -1
View File
@@ -137,7 +137,11 @@ def generate(tools, x290):
S3.pipe_write(s, R.PIPE_BR, 'RB_GC_GMEM_PROTECT', gmem_protect)
S3.aperture_clear(s)
secvid = list(s.ops)
sources = [tools / 'a16gpu_stage3.py', tools / 'adreno_x2.py'] + ([tools / 'a16gpu_x290.py'] if x290 else [])
# adreno_x2.py loads X285_NONCTXT (hw_init's non-context writes, among them RB_GC_GMEM_PROTECT) from
# adreno_x2_protect.py since q1n1 split its GPL-2.0-only tables out; a q1n1 from before the split has none.
protect = [tools / 'adreno_x2_protect.py'] if (tools / 'adreno_x2_protect.py').exists() else []
sources = [tools / 'a16gpu_stage3.py', tools / 'adreno_x2.py', *protect]
sources += [tools / 'a16gpu_x290.py'] if x290 else []
inputs = ' '.join(f'{p.name}:{hashlib.sha256(p.read_bytes()).hexdigest()}' for p in sources)
return hw, sqe, me_init, secvid, s.skipped, inputs