DF-3702 / trigger_notes.c
/* * DF-3702 trigger documentation — crafted-VBIOS shape (NOT runnable on virtio-only guest). * * Zero one or more of these u16 fields in the ATOM_Vega10_POWERPLAYTABLE header of the * dGPU VBIOS powerplay table (offsets per atomfirmware.h): * usPowerTuneTableOffset -> table_info->tdp_table stays NULL * usVddcLookupTableOffset -> vddc_lookup_table stays NULL * usVddciLookupTableOffset / usVddmemLookupTableOffset -> likewise * usMMDependencyTableOffset -> mm_dep_table stays NULL * usSocclkDependencyTableOffset / usGfxclkDependencyTableOffset / * usDcefclkDependencyTableOffset / usPixClkDependencyTableOffset / * usDispClkDependencyTableOffset / usPhyClkDependencyTableOffset * * vega10_pp_tables_initialize returns 0 (success) with those pointers NULL * (vega10_processpptables.c:905-922: NULL-init, then `if (offset)` guarded parses). * * First kernel derefs after attach (amdgpu probe): * vega10_hwmgr_backend_init :862 -> vega10_set_features_platform_caps :269 * if (table_info->tdp_table->usClockStretchAmount && ...) <-- NULL deref, panic * vega10_hwmgr_backend_init :876 -> vega10_complete_dependency_tables :734 -> * vega10_patch_voltage_dependency_tables_with_lookup_table :658 `vdt->count`, * :661 vddc_lookup_table->entries[], :665 mm_table->count, * :677/:680 vddci/vddmem lookup entries[] <-- NULL derefs * * All run BEFORE the only existing NULL asserts at :754-762 (set_private_data, :879). */ int df3702_trigger_documentation; |