On Mon, Feb 6, 2023 at 11:36 PM Alex Deucher <alexdeucher@xxxxxxxxx> wrote: > > On Mon, Feb 6, 2023 at 8:17 PM Matt Coffin <mcoffin13@xxxxxxxxx> wrote: > > > > Hello again, > > > > I've been working on OverDrive support for smu13, as you probably > > already know. In that endeavor, it also contains the following: > > > > 1. I've come up with a few patterns that I think will reduce the > > amount of boilerplate and SMU-specific code required to do > > implement these interfaces in the future. > > 2. Since the old pp_od_clk_voltage sysfs interface is inadequate for > > usage in setting values other than a few indexed clock/voltage settings, > > I'll likely be sending a proposed "generic" interface, where OD settings > > are exposed to userspace by ASIC-specific indexed identifiers. > > > > But, those are beside the point, for now. > > > > While picking through the existing headers, the information in > > smu_v13_0_0_pptable.h seems to not quite be in line with what I'm seeing > > coming from the card, so I'm instead focusing mainly on > > smu13_driver_if_v13_0_0.h. > > > > In the two OverDrive-related structs, OverDriveTable_t and > > OverDriveLimits_t, the FeatureCtrlMask member seems to be controlling > > which of the "features" of OverDrive would actually be in use. As of > > yet, I haven't been able to find an index of what the bits in here > > actually mean. Is there any way you could help me out with that? > > I can ask tomorrow. That said, we are working on OD support and > should have patches available soon. Those bits refer to the OD feature bits PP_OD_FEATURE_*. Looks like they are missing from smu13_driver_if_v13_0_0.h, but they are the same as the ones in smu13_driver_if_v13_0_7.h. Alex > > Alex > > > > > > > My best guess thus far is that they are by each element of the > > OverDriveTable_t struct, but that's only just a guess. > > > > For reference, here are the values I'm seeing present in each at boot > > time. > > > > Since FeatureCtrlMask is 0b11111001101, the current theory is that the > > "unsupported" features would be VddGfxVmax, GfxclkFmin, GfxclkFmax. Does > > that line up with what we'd be expecting for this ASIC? > > > > Thanks in advance for any information you can provide. I really > > appreciate the work that you all do. > > > > Thanks, > > Matt > > > > OverDriveLimits: > > FeatureCtrlMask: [0x000007cd, 0x000007cd] > > VoltageOffsetPerZoneBoundary: [-450, 0] > > VddGfxVmax: [0, 0] > > IdlePwrSavingFeaturesCtrl: [0x00, 0x00] > > RuntimePwrSavingFeaturesCtrl: [0x00, 0x00] > > GfxclkFmin: [500, 5000] > > GfxclkFmax: [500, 5000] > > UclkFmin: [97, 1500] > > UclkFmax: [97, 1500] > > Ppt: [-10, 15], Tdc: [-10, 0] > > FanLinearPwmPoints: [23, 100] > > FanLinearTempPoints: [25, 100] > > FanMinimumPwm: [23, 100] > > AcousticTargetRpmThreshold: [500, 3200] > > AcousticLimitRpmThreshold: [500, 3200] > > FanTargetTemperature: [25, 105] > > FanZeroRpmEnable: [0, 1] > > FanZeroRpmStopTemp: [25, 100] > > FanMode: [0, 1] > > MaxOpTemp: [50, 110] > > OverDriveTable: > > FeatureCtrlMask: 0x00000000 > > VoltageOffsetPerZoneBoundary[0]: 0 > > VoltageOffsetPerZoneBoundary[1]: 0 > > VoltageOffsetPerZoneBoundary[2]: 0 > > VoltageOffsetPerZoneBoundary[3]: 0 > > VoltageOffsetPerZoneBoundary[4]: 0 > > VoltageOffsetPerZoneBoundary[5]: 0 > > VddGfxVmax: 1150 > > IdlePwrSavingFeaturesCtrl: 0x00 > > RuntimePwrSavingFeaturesCtrl: 0x00 > > GfxclkFmin: 500 > > GfxclkFmax: 2890 > > UclkFmin: 97 > > UclkFmax: 1249 > > Ppt: 0 > > Tdc: 0 > > FanLinearPwmPoints[0]: 0 > > FanLinearPwmPoints[1]: 0 > > FanLinearPwmPoints[2]: 0 > > FanLinearPwmPoints[3]: 0 > > FanLinearPwmPoints[4]: 0 > > FanLinearPwmPoints[5]: 0 > > FanLinearTempPoints[0]: 0 > > FanLinearTempPoints[1]: 0 > > FanLinearTempPoints[2]: 0 > > FanLinearTempPoints[3]: 0 > > FanLinearTempPoints[4]: 0 > > FanLinearTempPoints[5]: 0 > > FanMinimumPwm: 35 > > AcousticTargetRpmThreshold: 1250 > > AcousticLimitRpmThreshold: 1500 > > FanTargetTemperature: 94 > > FanZeroRpmEnable: 1 > > FanZeroRpmStopTemp: 55 > > FanMode: 0 > > MaxOpTemp: 110