Linux Audio

Check our new training course

Loading...
Note: File does not exist in v5.9.
  1/*
  2 * Copyright 2020 Advanced Micro Devices, Inc.
  3 *
  4 * Permission is hereby granted, free of charge, to any person obtaining a
  5 * copy of this software and associated documentation files (the "Software"),
  6 * to deal in the Software without restriction, including without limitation
  7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8 * and/or sell copies of the Software, and to permit persons to whom the
  9 * Software is furnished to do so, subject to the following conditions:
 10 *
 11 * The above copyright notice and this permission notice shall be included in
 12 * all copies or substantial portions of the Software.
 13 *
 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
 18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 20 * OTHER DEALINGS IN THE SOFTWARE.
 21 *
 22 */
 23
 24#ifndef ALDEBARAN_PP_SMC_H
 25#define ALDEBARAN_PP_SMC_H
 26
 27#pragma pack(push, 1)
 28
 29// SMU Response Codes:
 30#define PPSMC_Result_OK                    0x1
 31#define PPSMC_Result_Failed                0xFF
 32#define PPSMC_Result_UnknownCmd            0xFE
 33#define PPSMC_Result_CmdRejectedPrereq     0xFD
 34#define PPSMC_Result_CmdRejectedBusy       0xFC
 35
 36// Message Definitions:
 37#define PPSMC_MSG_TestMessage                    0x1
 38#define PPSMC_MSG_GetSmuVersion                  0x2
 39#define PPSMC_MSG_GfxDriverReset                 0x3
 40#define PPSMC_MSG_GetDriverIfVersion             0x4
 41#define PPSMC_MSG_spare1                         0x5
 42#define PPSMC_MSG_spare2                         0x6
 43#define PPSMC_MSG_EnableAllSmuFeatures           0x7
 44#define PPSMC_MSG_DisableAllSmuFeatures          0x8
 45#define PPSMC_MSG_spare3                         0x9
 46#define PPSMC_MSG_spare4                         0xA
 47#define PPSMC_MSG_spare5                         0xB
 48#define PPSMC_MSG_spare6                         0xC
 49#define PPSMC_MSG_GetEnabledSmuFeaturesLow       0xD
 50#define PPSMC_MSG_GetEnabledSmuFeaturesHigh      0xE
 51#define PPSMC_MSG_SetDriverDramAddrHigh          0xF
 52#define PPSMC_MSG_SetDriverDramAddrLow           0x10
 53#define PPSMC_MSG_SetToolsDramAddrHigh           0x11
 54#define PPSMC_MSG_SetToolsDramAddrLow            0x12
 55#define PPSMC_MSG_TransferTableSmu2Dram          0x13
 56#define PPSMC_MSG_TransferTableDram2Smu          0x14
 57#define PPSMC_MSG_UseDefaultPPTable              0x15
 58#define PPSMC_MSG_SetSystemVirtualDramAddrHigh   0x16
 59#define PPSMC_MSG_SetSystemVirtualDramAddrLow    0x17
 60#define PPSMC_MSG_SetSoftMinByFreq               0x18
 61#define PPSMC_MSG_SetSoftMaxByFreq               0x19
 62#define PPSMC_MSG_SetHardMinByFreq               0x1A
 63#define PPSMC_MSG_SetHardMaxByFreq               0x1B
 64#define PPSMC_MSG_GetMinDpmFreq                  0x1C
 65#define PPSMC_MSG_GetMaxDpmFreq                  0x1D
 66#define PPSMC_MSG_GetDpmFreqByIndex              0x1E
 67#define PPSMC_MSG_SetWorkloadMask                0x1F
 68#define PPSMC_MSG_GetVoltageByDpm                0x20
 69#define PPSMC_MSG_GetVoltageByDpmOverdrive       0x21
 70#define PPSMC_MSG_SetPptLimit                    0x22
 71#define PPSMC_MSG_GetPptLimit                    0x23
 72#define PPSMC_MSG_PrepareMp1ForUnload            0x24
 73#define PPSMC_MSG_PrepareMp1ForReset             0x25 //retired in 68.07
 74#define PPSMC_MSG_SoftReset                      0x26 //retired in 68.07
 75#define PPSMC_MSG_RunDcBtc                       0x27
 76#define PPSMC_MSG_DramLogSetDramAddrHigh         0x28
 77#define PPSMC_MSG_DramLogSetDramAddrLow          0x29
 78#define PPSMC_MSG_DramLogSetDramSize             0x2A
 79#define PPSMC_MSG_GetDebugData                   0x2B
 80#define PPSMC_MSG_WaflTest                       0x2C
 81#define PPSMC_MSG_spare7                         0x2D
 82#define PPSMC_MSG_SetMemoryChannelEnable         0x2E
 83#define PPSMC_MSG_SetNumBadHbmPagesRetired       0x2F
 84#define PPSMC_MSG_DFCstateControl                0x32
 85#define PPSMC_MSG_GetGmiPwrDnHyst                0x33
 86#define PPSMC_MSG_SetGmiPwrDnHyst                0x34
 87#define PPSMC_MSG_GmiPwrDnControl                0x35
 88#define PPSMC_MSG_EnterGfxoff                    0x36
 89#define PPSMC_MSG_ExitGfxoff                     0x37
 90#define PPSMC_MSG_SetExecuteDMATest              0x38
 91#define PPSMC_MSG_EnableDeterminism              0x39
 92#define PPSMC_MSG_DisableDeterminism             0x3A
 93#define PPSMC_MSG_SetUclkDpmMode                 0x3B
 94
 95//STB to dram log
 96#define PPSMC_MSG_DumpSTBtoDram                     0x3C
 97#define PPSMC_MSG_STBtoDramLogSetDramAddrHigh       0x3D
 98#define PPSMC_MSG_STBtoDramLogSetDramAddrLow        0x3E
 99#define PPSMC_MSG_STBtoDramLogSetDramSize           0x3F
100#define PPSMC_MSG_SetSystemVirtualSTBtoDramAddrHigh 0x40
101#define PPSMC_MSG_SetSystemVirtualSTBtoDramAddrLow  0x41
102
103#define PPSMC_MSG_GfxDriverResetRecovery	0x42
104#define PPSMC_MSG_BoardPowerCalibration 	0x43
105#define PPSMC_Message_Count			0x44
106
107//PPSMC Reset Types
108#define PPSMC_RESET_TYPE_WARM_RESET              0x00
109#define PPSMC_RESET_TYPE_DRIVER_MODE_1_RESET     0x01 //driver msg argument should be 1 for mode-1
110#define PPSMC_RESET_TYPE_DRIVER_MODE_2_RESET     0x02 //and 2 for mode-2
111#define PPSMC_RESET_TYPE_PCIE_LINK_RESET         0x03
112#define PPSMC_RESET_TYPE_BIF_LINK_RESET          0x04
113#define PPSMC_RESET_TYPE_PF0_FLR_RESET           0x05
114
115
116typedef enum {
117  GFXOFF_ERROR_NO_ERROR,
118  GFXOFF_ERROR_DISALLOWED,
119  GFXOFF_ERROR_GFX_BUSY,
120  GFXOFF_ERROR_GFX_OFF,
121  GFXOFF_ERROR_GFX_ON,
122} GFXOFF_ERROR_e;
123
124typedef uint32_t PPSMC_Result;
125typedef uint32_t PPSMC_Msg;
126#pragma pack(pop)
127
128#endif