Skip to content

Commit e175230

Browse files
hoshinolinamarcan
authored andcommitted
m1n1.fw.agx.initdata: Fix a bunch of fields
Signed-off-by: Asahi Lina <[email protected]>
1 parent 2dab8e3 commit e175230

1 file changed

Lines changed: 61 additions & 66 deletions

File tree

proxyclient/m1n1/fw/agx/initdata.py

Lines changed: 61 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ class AGXHWDataA(ConstructClass):
304304
"pad_654" / Int32ul,
305305
"pwr_filter_a_neg" / Float32l,
306306
"pad_65c" / Int32ul,
307-
"pwr_filter_a_neg" / Float32l,
307+
"pwr_filter_a" / Float32l,
308308
"pad_664" / Int32ul,
309309
"pwr_integral_gain" / Float32l,
310310
"pad_66c" / Int32ul,
@@ -340,7 +340,7 @@ class AGXHWDataA(ConstructClass):
340340
"pad_6ec" / Int32ul,
341341
"ppm_ki_dt" / Float32l,
342342
"pad_6f4" / Int32ul,
343-
"pwr_integral_min_clamp" / Int32ul,
343+
"pwr_integral_min_clamp_2" / Int32ul,
344344
"unk_6fc" / Float32l,
345345
"ppm_kp" / Float32l,
346346
"pad_704" / Int32ul,
@@ -395,13 +395,13 @@ class AGXHWDataA(ConstructClass):
395395
"boost_state_unk_k" / Float32l,
396396

397397
"base_pstate_scaled_2" / Dec(Int32ul),
398-
"max_pstate_scaled_2" / Dec(Int32ul),
398+
"max_pstate_scaled_5" / Dec(Int32ul),
399399
"base_pstate_scaled_3" / Dec(Int32ul),
400400

401401
"pad_7b8" / Int32ul,
402402

403403
"perf_cur_utilization" / Float32l,
404-
"perf_tgt_utilization" / Int32ul,
404+
"perf_tgt_utilization_2" / Int32ul,
405405

406406
"pad_7c4" / HexDump(Bytes(0x18)),
407407

@@ -413,17 +413,17 @@ class AGXHWDataA(ConstructClass):
413413
"unk_7e8" / HexDump(Bytes(0x14)),
414414

415415
"unk_7fc" / Float32l,
416-
"pwr_min_duty_cycle" / Float32l,
417-
"max_pstate_scaled_3" / Float32l,
416+
"pwr_min_duty_cycle_2" / Float32l,
417+
"max_pstate_scaled_6" / Float32l,
418418
"max_freq_mhz" / Int32ul,
419419
"pad_80c" / Int32ul,
420420
"unk_810" / Int32ul,
421421
"pad_814" / Int32ul,
422-
"pwr_min_duty_cycle_2" / Int32ul,
422+
"pwr_min_duty_cycle_3" / Int32ul,
423423
"unk_81c" / Int32ul,
424424
"pad_820" / Int32ul,
425425
"min_pstate_scaled_4" / Float32l,
426-
"max_pstate_scaled_4" / Dec(Int32ul),
426+
"max_pstate_scaled_7" / Dec(Int32ul),
427427
"unk_82c" / Int32ul,
428428
"unk_alpha_neg" / Float32l,
429429
"unk_alpha" / Float32l,
@@ -449,17 +449,17 @@ class AGXHWDataA(ConstructClass):
449449
"fast_die0_kp" / Float32l,
450450
"pad_8b0" / Int32ul,
451451
"unk_8b4" / Int32ul,
452-
"unk_8b8" / Int32ul,
453-
"max_pstate_scaled_5" / Dec(Int32ul),
454-
"max_pstate_scaled_6" / Dec(Int32ul),
455-
"unk_8c4" / Int32ul,
452+
"pwr_min_duty_cycle_4" / Int32ul,
453+
"max_pstate_scaled_8" / Dec(Int32ul),
454+
"max_pstate_scaled_9" / Dec(Int32ul),
455+
"fast_die0_prop_tgt_delta" / Int32ul,
456456
"unk_8c8" / Int32ul,
457457
"unk_8cc" / Int32ul,
458458
"pad_8d0" / HexDump(Bytes(0x14)),
459459
Ver("13.0 beta4", "unk_8e4_0" / HexDump(Bytes(0x10))),
460460
"unk_8e4" / Int32ul,
461461
"unk_8e8" / Int32ul,
462-
"max_pstate_scaled_7" / Dec(Int32ul),
462+
"max_pstate_scaled_10" / Dec(Int32ul),
463463
"unk_8f0" / Int32ul,
464464
"unk_8f4" / Int32ul,
465465
"pad_8f8" / Int32ul,
@@ -468,7 +468,7 @@ class AGXHWDataA(ConstructClass):
468468
"unk_924" / Array(8, Array(8, Float32l)),
469469
"unk_a24" / Array(8, Array(8, Float32l)),
470470
"unk_b24" / HexDump(Bytes(0x70)),
471-
"max_pstate_scaled_8" / Dec(Int32ul),
471+
"max_pstate_scaled_11" / Dec(Int32ul),
472472
"freq_with_off" / Int32ul,
473473
"unk_b9c" / Int32ul,
474474
"unk_ba0" / Int64ul,
@@ -484,19 +484,19 @@ class AGXHWDataA(ConstructClass):
484484
"max_power_6" / Int32ul,
485485
"unk_c40" / Int32ul,
486486
"unk_c44" / Float32l,
487-
"avg_power_filter_a_neg" / Float32l,
488-
"avg_power_filter_a" / Float32l,
489-
"avg_power_filter_tc_x4" / Dec(Int32ul),
490-
"avg_power_filter_tc_xperiod" / Dec(Int32ul),
487+
"avg_power_target_filter_a_neg" / Float32l,
488+
"avg_power_target_filter_a" / Float32l,
489+
"avg_power_target_filter_tc_x4" / Dec(Int32ul),
490+
"avg_power_target_filter_tc_xperiod" / Dec(Int32ul),
491491
Ver("13.0 beta4", "base_clock_mhz" / Int32ul),
492492
Ver("13.0 beta4", "unk_c58_4" / Int32ul),
493493
"power_zones" / Array(5, PowerZone),
494-
"power_filter_tc_periods_x4" / Dec(Int32ul),
494+
"avg_power_filter_tc_periods_x4" / Dec(Int32ul),
495495
"unk_cfc" / Int32ul,
496496
"unk_d00" / Int32ul,
497-
"power_filter_a_neg" / Float32l,
497+
"avg_power_filter_a_neg" / Float32l,
498498
"unk_d08" / Int32ul,
499-
"power_filter_a" / Float32l,
499+
"avg_power_filter_a" / Float32l,
500500
"unk_d10" / Int32ul,
501501
"avg_power_ki_dt" / Float32l,
502502
"unk_d18" / Int32ul,
@@ -505,9 +505,9 @@ class AGXHWDataA(ConstructClass):
505505
"avg_power_kp" / Float32l,
506506
"unk_d28" / Int32ul,
507507
"unk_d2c" / Int32ul,
508-
"unk_d30" / Int32ul,
509-
"max_pstate_scaled_9" / Int32ul,
510-
"max_pstate_scaled_10" / Int32ul,
508+
"avg_power_min_duty_cycle" / Int32ul,
509+
"max_pstate_scaled_12" / Int32ul,
510+
"max_pstate_scaled_13" / Int32ul,
511511
"unk_d3c" / Int32ul,
512512
"max_power_7" / Float32l,
513513
"max_power_8" / Int32ul,
@@ -517,7 +517,7 @@ class AGXHWDataA(ConstructClass):
517517
Ver("13.0 beta4", "base_clock_mhz_2" / Int32ul),
518518
Ver("13.0 beta4", "unk_d54_4" / HexDump(Bytes(0xc))),
519519
"unk_d54" / HexDump(Bytes(0x10)),
520-
"max_pstate_scaled_11" / Int32ul,
520+
"max_pstate_scaled_14" / Int32ul,
521521
"unk_d68" / Bytes(0x24),
522522

523523
"t8103_data" / AGXHWDataT8103,
@@ -645,7 +645,7 @@ def __init__(self, sgx, chip_info):
645645
self.pad_6ec = 0
646646
self.ppm_ki_dt = sgx.gpu_ppm_ki * (period_ms / 1000)
647647
self.pad_6f4 = 0
648-
self.pwr_integral_min_clamp = sgx.gpu_pwr_integral_min_clamp
648+
self.pwr_integral_min_clamp_2 = sgx.gpu_pwr_integral_min_clamp
649649
if Ver.check("13.0 beta4") or chip_info.chip_id != 0x8103:
650650
self.unk_6fc = 65536.0
651651
else:
@@ -699,29 +699,29 @@ def __init__(self, sgx, chip_info):
699699
boost_states = max_state - base_state
700700
self.boost_state_unk_k = boost_states / 0.95
701701
self.base_pstate_scaled_2 = 100 * sgx.getprop("gpu-perf-base-pstate", 3)
702-
self.max_pstate_scaled_2 = self.max_pstate_scaled
702+
self.max_pstate_scaled_5 = self.max_pstate_scaled
703703
self.base_pstate_scaled_3 = 100 * sgx.getprop("gpu-perf-base-pstate", 3)
704704
self.pad_7b8 = 0x0
705705
self.perf_cur_utilization = 0.0
706-
self.perf_tgt_utilization = sgx.gpu_perf_tgt_utilization
706+
self.perf_tgt_utilization_2 = sgx.gpu_perf_tgt_utilization
707707
self.pad_7c4 = bytes(0x18)
708708
self.unk_7dc = 0x0
709709
self.unk_7e0_0 = bytes(0x10)
710710
self.base_pstate_scaled_4 = 100 * sgx.getprop("gpu-perf-base-pstate", 3)
711711
self.pad_7e4 = 0x0
712712
self.unk_7e8 = bytes(0x14)
713713
self.unk_7fc = 65536.0
714-
self.pwr_min_duty_cycle = sgx.gpu_pwr_min_duty_cycle
715-
self.max_pstate_scaled_3 = self.max_pstate_scaled
716-
self.max_freq_mhz = sgx.perf_states[sgx.gpu_num_perf_states].freq
714+
self.pwr_min_duty_cycle_2 = sgx.gpu_pwr_min_duty_cycle
715+
self.max_pstate_scaled_6 = self.max_pstate_scaled
716+
self.max_freq_mhz = sgx.perf_states[sgx.gpu_num_perf_states].freq // 1000000
717717
self.pad_80c = 0x0
718718
self.unk_810 = 0x0
719719
self.pad_814 = 0x0
720-
self.pwr_min_duty_cycle_2 = sgx.gpu_pwr_min_duty_cycle
720+
self.pwr_min_duty_cycle_3 = sgx.gpu_pwr_min_duty_cycle
721721
self.unk_81c = 0x0
722722
self.pad_820 = 0x0
723723
self.min_pstate_scaled_4 = 100.0
724-
self.max_pstate_scaled_4 = self.max_pstate_scaled
724+
self.max_pstate_scaled_7 = self.max_pstate_scaled
725725
self.unk_82c = 0x0
726726
self.unk_alpha_neg = 0.8
727727
self.unk_alpha = 1 - self.unk_alpha_neg
@@ -749,17 +749,17 @@ def __init__(self, sgx, chip_info):
749749
self.fast_die0_kp = sgx.gpu_fast_die0_proportional_gain
750750
self.pad_8b0 = 0x0
751751
self.unk_8b4 = 0x0
752-
self.unk_8b8 = sgx.gpu_pwr_min_duty_cycle
753-
self.max_pstate_scaled_5 = self.max_pstate_scaled
754-
self.max_pstate_scaled_6 = self.max_pstate_scaled
755-
self.unk_8c4 = 100 * sgx.getprop("gpu-fast-die0-prop-tgt-delta", 0)
752+
self.pwr_min_duty_cycle_4 = sgx.gpu_pwr_min_duty_cycle
753+
self.max_pstate_scaled_8 = self.max_pstate_scaled
754+
self.max_pstate_scaled_9 = self.max_pstate_scaled
755+
self.fast_die0_prop_tgt_delta = 100 * sgx.getprop("gpu-fast-die0-prop-tgt-delta", 0)
756756
self.unk_8c8 = 0
757757
self.unk_8cc = chip_info.unk_8cc
758758
self.pad_8d0 = bytes(0x14)
759759
self.unk_8e4_0 = bytes(0x10)
760760
self.unk_8e4 = 0
761761
self.unk_8e8 = 0
762-
self.max_pstate_scaled_7 = self.max_pstate_scaled
762+
self.max_pstate_scaled_10 = self.max_pstate_scaled
763763
self.unk_8f0 = 0
764764
self.unk_8f4 = 0
765765
self.pad_8f8 = 0
@@ -768,7 +768,7 @@ def __init__(self, sgx, chip_info):
768768
self.unk_924 = chip_info.unk_924
769769
self.unk_a24 = chip_info.unk_924
770770
self.unk_b24 = bytes(0x70)
771-
self.max_pstate_scaled_8 = self.max_pstate_scaled
771+
self.max_pstate_scaled_11 = self.max_pstate_scaled
772772
self.freq_with_off = 0x0
773773
self.unk_b9c = 0
774774
self.unk_ba0 = 0
@@ -797,21 +797,21 @@ def __init__(self, sgx, chip_info):
797797
self.max_power_6 = chip_info.max_power
798798
self.unk_c40 = 0
799799
self.unk_c44 = 0.0
800-
self.avg_power_filter_a_neg = 1 - 1 / sgx.gpu_avg_power_target_filter_tc
801-
self.avg_power_filter_a = 1 / sgx.gpu_avg_power_target_filter_tc
802-
self.avg_power_filter_tc_x4 = 4 * sgx.gpu_avg_power_target_filter_tc
803-
self.avg_power_filter_tc_xperiod = period_ms * sgx.gpu_avg_power_target_filter_tc
800+
self.avg_power_target_filter_a_neg = 1 - 1 / sgx.gpu_avg_power_target_filter_tc
801+
self.avg_power_target_filter_a = 1 / sgx.gpu_avg_power_target_filter_tc
802+
self.avg_power_target_filter_tc_x4 = 4 * sgx.gpu_avg_power_target_filter_tc
803+
self.avg_power_target_filter_tc_xperiod = period_ms * sgx.gpu_avg_power_target_filter_tc
804804
self.base_clock_mhz = base_clock_mhz
805805
self.unk_c58_4 = 0
806806

807807
# Note: integer rounding
808-
power_filter_tc_periods = sgx.gpu_avg_power_filter_tc_ms // period_ms
809-
self.power_filter_tc_periods_x4 = power_filter_tc_periods * 4
808+
avg_power_filter_tc_periods = sgx.gpu_avg_power_filter_tc_ms // period_ms
809+
self.avg_power_filter_tc_periods_x4 = avg_power_filter_tc_periods * 4
810810
self.unk_cfc = 0
811811
self.unk_d00 = 0
812-
self.power_filter_a_neg = 1 - 1 / power_filter_tc_periods
812+
self.avg_power_filter_a_neg = 1 - 1 / avg_power_filter_tc_periods
813813
self.unk_d08 = 0
814-
self.power_filter_a = 1 - self.power_filter_a_neg
814+
self.avg_power_filter_a = 1 - self.avg_power_filter_a_neg
815815
self.unk_d10 = 0
816816
self.avg_power_ki_dt = sgx.gpu_avg_power_ki_only * (period_ms / 1000)
817817
self.unk_d18 = 0
@@ -820,9 +820,9 @@ def __init__(self, sgx, chip_info):
820820
self.avg_power_kp = sgx.gpu_avg_power_kp
821821
self.unk_d28 = 0
822822
self.unk_d2c = 0
823-
self.unk_d30 = sgx.gpu_avg_power_min_duty_cycle
824-
self.max_pstate_scaled_9 = self.max_pstate_scaled
825-
self.max_pstate_scaled_10 = self.max_pstate_scaled
823+
self.avg_power_min_duty_cycle = sgx.gpu_avg_power_min_duty_cycle
824+
self.max_pstate_scaled_12 = self.max_pstate_scaled
825+
self.max_pstate_scaled_13 = self.max_pstate_scaled
826826
self.unk_d3c = 0
827827
self.max_power_7 = chip_info.max_power
828828
self.max_power_8 = chip_info.max_power
@@ -832,7 +832,7 @@ def __init__(self, sgx, chip_info):
832832
self.base_clock_mhz_2 = base_clock_mhz
833833
self.unk_d54_4 = bytes(0xc)
834834
self.unk_d54 = bytes(0x10)
835-
self.max_pstate_scaled_11 = self.max_pstate_scaled
835+
self.max_pstate_scaled_14 = self.max_pstate_scaled
836836
self.unk_d68 = bytes(0x24)
837837

838838
self.t8103_data = AGXHWDataT8103(chip_info)
@@ -869,14 +869,6 @@ def __init__(self, sgx, chip_info):
869869
self.unk_3ce0_0 = 0
870870

871871

872-
"unk_3ce0" / Int32ul,
873-
"unk_3ce4" / Int32ul,
874-
"unk_3ce8" / Int32ul,
875-
"unk_3cec" / Int32ul,
876-
"unk_3cf0" / Int32ul,
877-
"unk_3cf4" / Array(8, Float32l),
878-
"unk_3d14" / Array(8, Float32l),
879-
"unk_3d34" / HexDump(Bytes(0x38)),
880872
self.unk_3ce0 = 0
881873
self.unk_3ce4 = 0
882874
self.unk_3ce8 = 1
@@ -959,7 +951,7 @@ class AGXHWDataB(ConstructClass):
959951
"unk_484" / Int32ul,
960952
"unk_488" / Int32ul,
961953
"unk_48c" / Int32ul,
962-
"unk_490" / Int32ul,
954+
"base_clock_khz" / Int32ul,
963955
"power_sample_period" / Int32ul,
964956
"pad_498" / ZPadding(4),
965957

@@ -1007,7 +999,7 @@ class AGXHWDataB(ConstructClass):
1007999
"unk_534" / Int32ul,
10081000
"unk_538" / Int32ul,
10091001
Ver("13.0 beta4", "unk_53c_0" / Int32ul),
1010-
"num_cores" / Int32ul,
1002+
"num_frags" / Int32ul,
10111003
"unk_540" / Int32ul,
10121004
"unk_544" / Int32ul,
10131005
"unk_548" / Int32ul,
@@ -1017,7 +1009,7 @@ class AGXHWDataB(ConstructClass):
10171009
"gpu_region_base" / Int64ul,
10181010
"unk_560" / Int32ul,
10191011
"unk_564" / Int32ul,
1020-
"num_cores_2" / Int32ul,
1012+
"num_cores" / Int32ul,
10211013
"max_pstate" / Int32ul,
10221014
Ver("..13.0 beta4", "num_pstates" / Int32ul),
10231015
"frequencies" / Array(16, Dec(Int32ul)),
@@ -1041,7 +1033,8 @@ class AGXHWDataB(ConstructClass):
10411033
"unk_ae4" / Array(4, Int32ul),
10421034
"pad_af4" / ZPadding(4),
10431035
"unk_af8" / Int32ul,
1044-
"pad_afc" / ZPadding(8),
1036+
"unk_afc" / Int32ul,
1037+
"unk_b00" / Int32ul,
10451038
"unk_b04" / Int32ul,
10461039
"unk_b08" / Int32ul,
10471040
"unk_b0c" / Int32ul,
@@ -1181,7 +1174,7 @@ def __init__(self, sgx, chip_info):
11811174
self.unk_484 = 0x1
11821175
self.unk_488 = 0x0
11831176
self.unk_48c = 0x1
1184-
self.unk_490 = 24000
1177+
self.base_clock_khz = 24000
11851178
self.power_sample_period = sgx.gpu_power_sample_period
11861179
self.unk_49c = 0x1
11871180
self.unk_4a0 = 0x1
@@ -1219,7 +1212,7 @@ def __init__(self, sgx, chip_info):
12191212
self.unk_534 = chip_info.hwdb_534
12201213
self.unk_538 = 0x0
12211214
self.unk_53c_0 = 0
1222-
self.num_cores = chip_info.num_cores
1215+
self.num_frags = chip_info.num_cores
12231216
self.unk_540 = 0x0
12241217
self.unk_544 = 0x0
12251218
self.unk_548 = 0x0
@@ -1229,7 +1222,7 @@ def __init__(self, sgx, chip_info):
12291222
self.gpu_region_base = sgx.gpu_region_base
12301223
self.unk_560 = chip_info.hwdb_560
12311224
self.unk_564 = chip_info.hwdb_564
1232-
self.num_cores_2 = chip_info.num_cores
1225+
self.num_cores = chip_info.num_cores
12331226
self.max_pstate = sgx.gpu_num_perf_states
12341227
self.num_pstates = sgx.gpu_num_perf_states + 1
12351228

@@ -1252,6 +1245,8 @@ def __init__(self, sgx, chip_info):
12521245
else:
12531246
self.unk_ae4 = [0x0, 0xf, 0x3f, 0x3f]
12541247
self.unk_af8 = 0x0
1248+
self.unk_afc = 0x0
1249+
self.unk_b00 = 0x0
12551250
self.unk_b04 = 0x0
12561251
self.unk_b08 = 0x0
12571252
self.unk_b0c = 0x0

0 commit comments

Comments
 (0)