Indexing of FeatureCtrlMask for SMU13 OverDrive
Alex Deucher
alexdeucher at gmail.com
Tue Feb 7 14:11:44 UTC 2023
On Mon, Feb 6, 2023 at 11:36 PM Alex Deucher <alexdeucher at gmail.com> wrote:
>
> On Mon, Feb 6, 2023 at 8:17 PM Matt Coffin <mcoffin13 at gmail.com> 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
More information about the amd-gfx
mailing list