diff --git a/tools/cycle.py b/tools/cycle.py index c97591a..d7bcb0c 100755 --- a/tools/cycle.py +++ b/tools/cycle.py @@ -467,6 +467,9 @@ def parse(argv=None): help='SNAP_EL0_CACHE_MAINT: SCTLR_EL1.UCI as SPTM installs it, so EL0 DC CVAU/CVAC/CIVAC and IC IVAU ' '(sys_icache_invalidate) no longer trap to EL1, where handle_msr_trap raises SIGILL; give it to ' 'every mode of the attempt') + p.add_argument('--resident-mib', type=int, default=None, metavar='MIB', + help='guest boot-arg adreno_resident_mib=MIB: AdrenoX2 resident-map budget (0 = off, max 4096; ' + 'agents/resident-evict recommends 1536); give it to every mode of the attempt') p.add_argument('--present-maint', action='store_true', help='guest boot-arg adreno_present_maint=1: AdrenoDisplay keeps its layer-0 clean+invalidate pass ' 'even while the beam is LOCKED (tear-free fix2 skips it then); for b12v8\'s stale bands; ' diff --git a/tools/cycle_lib/installed_fresh.py b/tools/cycle_lib/installed_fresh.py index 392e1a5..f6f3bd7 100644 --- a/tools/cycle_lib/installed_fresh.py +++ b/tools/cycle_lib/installed_fresh.py @@ -1099,6 +1099,10 @@ def boot_addition(args): extra = [] if getattr(args, 'present_maint', False): extra.append('adreno_present_maint=1') + resident_mib = getattr(args, 'resident_mib', None) + if resident_mib is not None: + need(0 <= resident_mib <= 4096, '--resident-mib must be 0..4096') + extra.append(f'adreno_resident_mib={resident_mib}') # --present-latch's guest boot-args (AdrenoDisplay start_hardware, SnapI2CHIDBus::start); none without the flag. latch_us, hold = getattr(args, 'present_latch_us', None), getattr(args, 'present_hold', None) margin_us, active_us = getattr(args, 'present_hold_margin_us', None), getattr(args, 'input_active_us', None)