Ryzen/AmiCpuPkg/Cpu/Setup/Cpu.sd

377 lines
16 KiB
Plaintext
Raw Normal View History

2022-12-22 23:14:44 -08:00
//*************************************************************************
//*************************************************************************
//** **
//** (C)Copyright 1985-2019, American Megatrends, Inc. **
//** **
//** All Rights Reserved. **
//** **
//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
//** **
//** Phone: (770)-246-8600 **
//** **
//*************************************************************************
//*************************************************************************
//<AMI_FHDR_START>
//----------------------------------------------------------------------------
//
// Name: CPU.sd
//
// Description:
// Setup definition for CPU.
//
//----------------------------------------------------------------------------
//<AMI_FHDR_END>
#ifdef SETUP_DATA_DEFINITION
/***********************************************************/
/* Put NVRAM data definitions here.
/* For example: UINT8 Data1;
/* These definitions will be converted by the build process
/* to a definitions of SETUP_DATA fields.
/***********************************************************/
UINT8 PNOW_ASL_MODE;
UINT8 PSTATE_CTRL; // [Fam15 only]
UINT8 PPC_LIMIT;
UINT8 PPC_CTRL;
UINT8 SVM_MODE;
UINT8 NX_MODE;
UINT8 C6Mode; // [Fam15 only]
UINT8 CpbMode; // [Fam15 only]
UINT8 HideF15Op; // [Fam15 only]
UINT8 HideStibp;
UINT8 StibpStatus;
#endif
#if defined(VFRCOMPILE) && !defined(CONTROLS_ARE_DEFINED)
#define CONTROL_DEFINITION
#endif
#ifdef CONTROL_DEFINITION
#define POWER_NOW_ASL\
oneof varid = SETUP_DATA.PNOW_ASL_MODE,\
prompt = STRING_TOKEN(STR_PNOW_ASL),\
help = STRING_TOKEN(STR_PNOW_ASL_HELP),\
option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
endoneof;
// [Fam15 only]
#define PSTATE_CONTROL\
oneof varid = SETUP_DATA.PSTATE_CTRL,\
prompt = STRING_TOKEN(STR_PSTATE_CONTROL),\
help = STRING_TOKEN(STR_PSTATE_CONTROL_HELP),\
option text = STRING_TOKEN(STR_PSTATE0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE1), value = 1, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE2), value = 2, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE3), value = 3, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE4), value = 4, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE5), value = 5, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE6), value = 6, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE7), value = 7, flags = RESET_REQUIRED;\
endoneof;
#define PPC0_CONTROL\
oneof varid = SETUP_DATA.PPC_CTRL,\
prompt = STRING_TOKEN(STR_PPC_CONTROL),\
help = STRING_TOKEN(STR_PPC_CONTROL_HELP),\
option text = STRING_TOKEN(STR_PSTATE0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
endoneof;
#define PPC1_CONTROL\
oneof varid = SETUP_DATA.PPC_CTRL,\
prompt = STRING_TOKEN(STR_PPC_CONTROL),\
help = STRING_TOKEN(STR_PPC_CONTROL_HELP),\
option text = STRING_TOKEN(STR_PSTATE0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE1), value = 1, flags = RESET_REQUIRED;\
endoneof;
#define PPC2_CONTROL\
oneof varid = SETUP_DATA.PPC_CTRL,\
prompt = STRING_TOKEN(STR_PPC_CONTROL),\
help = STRING_TOKEN(STR_PPC_CONTROL_HELP),\
option text = STRING_TOKEN(STR_PSTATE0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE1), value = 1, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE2), value = 2, flags = RESET_REQUIRED;\
endoneof;
#define PPC3_CONTROL\
oneof varid = SETUP_DATA.PPC_CTRL,\
prompt = STRING_TOKEN(STR_PPC_CONTROL),\
help = STRING_TOKEN(STR_PPC_CONTROL_HELP),\
option text = STRING_TOKEN(STR_PSTATE0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE1), value = 1, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE2), value = 2, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE3), value = 3, flags = RESET_REQUIRED;\
endoneof;
#define PPC4_CONTROL\
oneof varid = SETUP_DATA.PPC_CTRL,\
prompt = STRING_TOKEN(STR_PPC_CONTROL),\
help = STRING_TOKEN(STR_PPC_CONTROL_HELP),\
option text = STRING_TOKEN(STR_PSTATE0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE1), value = 1, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE2), value = 2, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE3), value = 3, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE4), value = 4, flags = RESET_REQUIRED;\
endoneof;
#define PPC5_CONTROL\
oneof varid = SETUP_DATA.PPC_CTRL,\
prompt = STRING_TOKEN(STR_PPC_CONTROL),\
help = STRING_TOKEN(STR_PPC_CONTROL_HELP),\
option text = STRING_TOKEN(STR_PSTATE0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE1), value = 1, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE2), value = 2, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE3), value = 3, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE4), value = 4, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE5), value = 5, flags = RESET_REQUIRED;\
endoneof;
#define PPC6_CONTROL\
oneof varid = SETUP_DATA.PPC_CTRL,\
prompt = STRING_TOKEN(STR_PPC_CONTROL),\
help = STRING_TOKEN(STR_PPC_CONTROL_HELP),\
option text = STRING_TOKEN(STR_PSTATE0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE1), value = 1, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE2), value = 2, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE3), value = 3, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE4), value = 4, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE5), value = 5, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE6), value = 6, flags = RESET_REQUIRED;\
endoneof;
#define PPC7_CONTROL\
oneof varid = SETUP_DATA.PPC_CTRL,\
prompt = STRING_TOKEN(STR_PPC_CONTROL),\
help = STRING_TOKEN(STR_PPC_CONTROL_HELP),\
option text = STRING_TOKEN(STR_PSTATE0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE1), value = 1, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE2), value = 2, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE3), value = 3, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE4), value = 4, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE5), value = 5, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE6), value = 6, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_PSTATE7), value = 7, flags = RESET_REQUIRED;\
endoneof;
#define CPU_NX_MODE\
oneof varid = SETUP_DATA.NX_MODE,\
prompt = STRING_TOKEN(STR_NX_MODE),\
help = STRING_TOKEN(STR_NX_MODE_HELP),\
option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
endoneof;
#define CPU_SVM_MODE\
oneof varid = SETUP_DATA.SVM_MODE,\
prompt = STRING_TOKEN(STR_SVM_MODE),\
help = STRING_TOKEN(STR_SVM_MODE_HELP),\
option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
endoneof;
// [Fam15 only]
#define CPU_C6_MODE\
oneof varid = SETUP_DATA.C6Mode,\
prompt = STRING_TOKEN(STR_C6_MODE),\
help = STRING_TOKEN(STR_C6_MODE_HELP),\
option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
endoneof;
// [Fam15 only]
#define CPU_CPB_MODE\
oneof varid = SETUP_DATA.CpbMode,\
prompt = STRING_TOKEN(STR_CPB_MODE),\
help = STRING_TOKEN(STR_CPB_MODE_HELP),\
option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
endoneof;
#define STIBP_STATUS\
oneof varid = SETUP_DATA.StibpStatus,\
prompt = STRING_TOKEN(STR_STIBP),\
help = STRING_TOKEN(STR_STIBP_HELP),\
option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED;\
endoneof;
#endif // CONTROL_DEFINITION
#ifdef CONTROLS_WITH_DEFAULTS
POWER_NOW_ASL
PSTATE_CONTROL // [Fam15 only]
PPC0_CONTROL
PPC1_CONTROL
PPC2_CONTROL
PPC3_CONTROL
PPC4_CONTROL
PPC5_CONTROL
PPC6_CONTROL
PPC7_CONTROL
CPU_NX_MODE
CPU_SVM_MODE
CPU_CPB_MODE // [Fam15 only]
CPU_C6_MODE // [Fam15 only]
STIBP_STATUS
#endif // CONTROLS_WITH_DEFAULTS
#ifdef FORM_SET_TYPEDEF
#include <CPU\Dxe\CpuDxe.h>
#endif
#ifdef ADVANCED_FORM_SET
#ifndef SUPPRESS_GRAYOUT_ENDIF
#define SUPPRESS_GRAYOUT_ENDIF endif;
#endif
#ifdef FORM_SET_VARSTORE
#ifndef VARSTORE_SETUP_CPU_FEATURES
#define VARSTORE_SETUP_CPU_FEATURES
varstore SETUP_CPU_FEATURES,
key = AUTO_ID(CPU_FEATURES_ID),
name = SetupCpuFeatures,
guid = SETUP_GUID;
#endif
#endif
#ifdef FORM_SET_ITEM
// Define controls to be added to the main page of the formset
#endif
#ifdef FORM_SET_GOTO
// Define goto commands for the forms defined in this file
goto CPU_FORM_ID,
prompt = STRING_TOKEN(STR_CPU_FORM),
help = STRING_TOKEN(STR_CPU_FORM_HELP);
#endif
#ifdef FORM_SET_FORM
// Define forms
form formid = AUTO_ID(CPU_FORM_ID),
title = STRING_TOKEN(STR_CPU_FORM);
SUBTITLE(STRING_TOKEN(STR_CPU_FORM))
SEPARATOR
SUBTITLE(STRING_TOKEN(STR_MODULE_VERSION))
SUBTITLE(STRING_TOKEN(STR_AGESA_VERSION))
SEPARATOR
POWER_NOW_ASL
suppressif NOT ideqval SETUP_DATA.PPC_LIMIT == 0
OR ideqval SETUP_DATA.PNOW_ASL_MODE == 0;
PPC0_CONTROL
endif;
suppressif NOT ideqval SETUP_DATA.PPC_LIMIT == 1
OR ideqval SETUP_DATA.PNOW_ASL_MODE == 0;
PPC1_CONTROL
endif;
suppressif NOT ideqval SETUP_DATA.PPC_LIMIT == 2
OR ideqval SETUP_DATA.PNOW_ASL_MODE == 0;
PPC2_CONTROL
endif;
suppressif NOT ideqval SETUP_DATA.PPC_LIMIT == 3
OR ideqval SETUP_DATA.PNOW_ASL_MODE == 0;
PPC3_CONTROL
endif;
suppressif NOT ideqval SETUP_DATA.PPC_LIMIT == 4
OR ideqval SETUP_DATA.PNOW_ASL_MODE == 0;
PPC4_CONTROL
endif;
suppressif NOT ideqval SETUP_DATA.PPC_LIMIT == 5
OR ideqval SETUP_DATA.PNOW_ASL_MODE == 0;
PPC5_CONTROL
endif;
suppressif NOT ideqval SETUP_DATA.PPC_LIMIT == 6
OR ideqval SETUP_DATA.PNOW_ASL_MODE == 0;
PPC6_CONTROL
endif;
suppressif NOT ideqval SETUP_DATA.PPC_LIMIT == 7
OR ideqval SETUP_DATA.PNOW_ASL_MODE == 0;
PPC7_CONTROL
endif;
CPU_NX_MODE
CPU_SVM_MODE
suppressif ideqval SETUP_DATA.HideF15Op == 1; // [Fam15 only]
SUBTITLE(STRING_TOKEN(STR_CPU_FAM15_ONLY_TEXT))
PSTATE_CONTROL
CPU_CPB_MODE
CPU_C6_MODE
endif;
goto CPU_FORM_NODE0_ID,
prompt = STRING_TOKEN(STR_NODE0_FORM),
help = STRING_TOKEN(STR_NODE0_HELP);
endform; // form id CPU_FORM_ID
// ====================================================================
// Node 0 Information
// ====================================================================
form formid = AUTO_ID(CPU_FORM_NODE0_ID),
title = STRING_TOKEN(STR_NODE0_FORM);
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_VERSION_VALUE))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_CORE_VALUE))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_FAMILY_VALUE))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_MODEL_VALUE))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_ID_VALUE))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_SPEED_VALUE))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_SPEED_VALUE_MIN))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_MICROCODE_VALUE))
SEPARATOR
#if CACHE_INFO_MODEL == 0
SUBTITLE(STRING_TOKEN(STR_CACHE_INFO_STRING))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_L1_ICACHE_VALUE))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_L1_DCACHE_VALUE))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_L2_CACHE_VALUE))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_L3_CACHE_VALUE))
#else
SUBTITLE(STRING_TOKEN(STR_CACHE_INFO_STRING_TOTAL))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_L1_DCACHE_VALUE))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_L2_CACHE_VALUE))
SUBTITLE(STRING_TOKEN(STR_PROCESSOR_L3_CACHE_VALUE))
#endif //#if CACHE_INFO_MODEL == 0
endform;
#endif // #ifdef FORM_SET_FORM
#endif // #ifdef ADVANCED_FORM_SET
#ifdef SECURITY_FORM_SET
#ifndef SUPPRESS_GRAYOUT_ENDIF
#define SUPPRESS_GRAYOUT_ENDIF endif;
#endif
#ifdef FORM_SET_ITEM
// Define controls to be added to the main page of the formset
suppressif ideqval SETUP_DATA.HideStibp == 1;
STIBP_STATUS
endif;
#endif
#endif // #ifdef SECURITY_FORM_SET
//*************************************************************************
//*************************************************************************
//** **
//** (C)Copyright 1985-2019, American Megatrends, Inc. **
//** **
//** All Rights Reserved. **
//** **
//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
//** **
//** Phone: (770)-246-8600 **
//** **
//*************************************************************************
//*************************************************************************