From c8e4742f918b6029137bbe4e5d8fda9df52cb274 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Thu, 31 Aug 2017 08:52:12 +0300 Subject: AGESA vendorcode: Move PlatformInstall.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All thse Option.*Install.h files are about configuring what eventually is referenced in the final libagesa build. It's self-contained so isolate these together with PlatformInstall.h to hide them from rest of the build. Change-Id: Id9d90a3366bafc1ad01434599d2ae1302887d88c Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/21298 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- .../Config/OptionCpuSpecificServicesInstall.h | 1297 ++++++++++++++++++++ 1 file changed, 1297 insertions(+) create mode 100644 src/vendorcode/amd/agesa/f16kb/Config/OptionCpuSpecificServicesInstall.h (limited to 'src/vendorcode/amd/agesa/f16kb/Config/OptionCpuSpecificServicesInstall.h') diff --git a/src/vendorcode/amd/agesa/f16kb/Config/OptionCpuSpecificServicesInstall.h b/src/vendorcode/amd/agesa/f16kb/Config/OptionCpuSpecificServicesInstall.h new file mode 100644 index 0000000000..987677e91a --- /dev/null +++ b/src/vendorcode/amd/agesa/f16kb/Config/OptionCpuSpecificServicesInstall.h @@ -0,0 +1,1297 @@ +/* $NoKeywords:$ */ +/** + * @file + * + * Install of CPU specific services support + * + * This file generates the CPU specific services tables. + * + * @xrefitem bom "File Content Label" "Release Content" + * @e project: AGESA + * @e sub-project: Include + * @e \$Revision: 85962 $ @e \$Date: 2013-01-14 20:12:29 -0600 (Mon, 14 Jan 2013) $ + */ +/***************************************************************************** + * + * Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Advanced Micro Devices, Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + + +/* + +NOTE: + +1. This file is designed to be included multiple times in one file. So there's no includsion guard like below. + +#ifndef _OPTION_CPU_FAMILY_SERVICE_INSTALL_DEFAULT_H_ +#define _OPTION_CPU_FAMILY_SERVICE_INSTALL_DEFAULT_H_ +#endif // _OPTION_CPU_FAMILY_SERVICE_INSTALL_DEFAULT_H_ + + +2. This file is designed to be included in below form. + +// +// 1st family model specific definitions +// +#include "OptionCpuSpecificServicesInstallReset.h" +#define CpuSrvcTableName cpuFamilyModelServices +// Put your service definitions "CpuSrvc" here. +#define CpuSrvcDisablePstate cpuF1stM1stDisablePstate +#include "OptionCpuSpecificServicesInstall.h" +INSTALL_CPU_SPECIFIC_SERVICES_TABLE (CpuSrvcTableName); + +// +// 2nd family model specific definitions +// +#include "OptionCpuSpecificServicesInstallReset.h" +#define CpuSrvcTableName cpuFamilyModelServices +// Put your service definitions "CpuSrvc" here. +#define CpuSrvcDisablePstate cpuF2ndM2ndDisablePstate +#include "OptionCpuSpecificServicesInstall.h" +INSTALL_CPU_SPECIFIC_SERVICES_TABLE (CpuSrvcTableName); + + +Example of CPU specific services definitions: + +NOTE: Members with type casting should use OvrdDfltCpuSrvc instead due to automatical "extern" limitation. + +#define CpuSrvcRevision (UINT16) Revision +#define CpuSrvcDisablePstate (PF_CPU_DISABLE_PSTATE) DisablePstate +#define CpuSrvcTransitionPstate (PF_CPU_TRANSITION_PSTATE) TransitionPstate +#define CpuSrvcGetProcIddMax (PF_CPU_GET_IDD_MAX) GetProcIddMax +#define CpuSrvcGetTscRate (PF_CPU_GET_TSC_RATE) GetTscRate +#define CpuSrvcGetCurrentNbFrequency (PF_CPU_GET_NB_FREQ) GetCurrentNbFrequency +#define CpuSrvcGetMinMaxNbFrequency (PF_CPU_GET_MIN_MAX_NB_FREQ) GetMinMaxNbFrequency +#define CpuSrvcGetNbPstateInfo (PF_CPU_GET_NB_PSTATE_INFO) GetNbPstateInfo +#define CpuSrvcIsNbCofInitNeeded (PF_CPU_IS_NBCOF_INIT_NEEDED) IsNbCofInitNeeded +#define CpuSrvcGetNbIddMax (PF_CPU_GET_NB_IDD_MAX) GetNbIddMax +#define CpuSrvcLaunchApCore (PF_CPU_AP_INITIAL_LAUNCH) LaunchApCore +#define CpuSrvcGetNumberOfPhysicalCores (PF_CPU_NUMBER_OF_PHYSICAL_CORES) GetNumberOfPhysicalCores +#define CpuSrvcGetApMailboxFromHardware (PF_CPU_AMD_GET_AP_MAILBOX_FROM_HARDWARE) GetApMailboxFromHardware +#define CpuSrvcSetApCoreNumber (PF_CPU_SET_AP_CORE_NUMBER) SetApCoreNumber +#define CpuSrvcGetApCoreNumber (PF_CPU_GET_AP_CORE_NUMBER) GetApCoreNumber +#define CpuSrvcTransferApCoreNumber (PF_CPU_TRANSFER_AP_CORE_NUMBER) TransferApCoreNumber +#define CpuSrvcGetStoredNodeNumber (PF_CPU_GET_STORED_NODE_NUMBER) GetStoredNodeNumber +#define CpuSrvcCoreIdPositionInInitialApicId (PF_CORE_ID_POSITION_IN_INITIAL_APIC_ID) CoreIdPositionInInitialApicId +#define CpuSrvcSaveFeatures (PF_CPU_SAVE_FEATURES) SaveFeatures +#define CpuSrvcWriteFeatures (PF_CPU_WRITE_FEATURES) WriteFeatures +#define CpuSrvcSetWarmResetFlag (PF_CPU_SET_WARM_RESET_FLAG) SetWarmResetFlag +#define CpuSrvcGetWarmResetFlag (PF_CPU_GET_WARM_RESET_FLAG) GetWarmResetFlag +#define CpuSrvcGetBrandString1 (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetBrandString1 +#define CpuSrvcGetBrandString2 (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetBrandString2 +#define CpuSrvcGetMicroCodePatchesStruct (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetMicroCodePatchesStruct +#define CpuSrvcGetMicrocodeEquivalenceTable (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetMicrocodeEquivalenceTable +#define CpuSrvcGetCacheInfo (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetCacheInfo +#define CpuSrvcGetSysPmTableStruct (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetSysPmTableStruct +#define CpuSrvcGetWheaInitData (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetWheaInitData +#define CpuSrvcGetPlatformTypeSpecificInfo (PF_CPU_GET_PLATFORM_TYPE_SPECIFIC_INFO) GetPlatformTypeSpecificInfo +#define CpuSrvcIsNbPstateEnabled (PF_IS_NB_PSTATE_ENABLED) IsNbPstateEnabled +#define CpuSrvcNextLinkHasHtPhyFeats (PF_NEXT_LINK_HAS_HTFPY_FEATS) NextLinkHasHtPhyFeats +#define CpuSrvcSetHtPhyRegister (PF_SET_HT_PHY_REGISTER) SetHtPhyRegister +#define CpuSrvcGetNextHtLinkFeatures (PF_GET_NEXT_HT_LINK_FEATURES) GetNextHtLinkFeatures +#define CpuSrvcRegisterTableList (REGISTER_TABLE **) RegisterTableList +#define CpuSrvcTableEntryTypeDescriptors (TABLE_ENTRY_TYPE_DESCRIPTOR *) TableEntryTypeDescriptors +#define CpuSrvcPackageLinkMap (PACKAGE_HTLINK_MAP) PackageLinkMap +#define CpuSrvcComputeUnitMap (COMPUTE_UNIT_MAP *) ComputeUnitMap +#define CpuSrvcInitCacheDisabled (FAMILY_CACHE_INIT_POLICY) InitCacheDisabled +#define CpuSrvcGetEarlyBeforeApLaunchInitOnCoreTable (PF_GET_EARLY_INIT_TABLE) GetEarlyInitBeforeApLaunchOnCoreTable +#define CpuSrvcGetEarlyAfterApLaunchInitOnCoreTable (PF_GET_EARLY_INIT_TABLE) GetEarlyInitAfterApLaunchOnCoreTable +#define CpuSrvcPatchLoaderIsSharedByCU (BOOLEAN) TRUE + + USAGE MODEL: + + // + // If BUILD_CONFIG_SWITCH = TRUE + // If override service is defined, use it as the final service definition. + // If override service is not define, use default service (DlftCpuSrvc) as the final service definition. + // + // If BUILD_CONFIG_SWITCH = FALSE + // Use default assert service (AssertCpuSrvc) as the final service definition for making a assertion when unsupported service is called. + // + // "extern" will be used for function pointer (exclude data) type serive members automatically when CpuSrvc is defined. + // + +// Member: (MEMBER_TYPE) ServiceName +#if BUILD_CONFIG_SWITCH == TRUE + #ifdef CpuSrvcServiceName + #define FinalCpuSrvcServiceName CpuSrvcServiceName + extern MEMBER_TYPE FinalCpuSrvcServiceName; + #else + #define FinalCpuSrvcServiceName DfltCpuSrvcServiceName + #pragma message( STRING_MACRO_DEFAULT_USED(CpuSrvcServiceName) ) + #endif +#else + #define FinalCpuSrvcServiceName DfltAssertCpuSrvcServiceName + #pragma message( STRING_MACRO_DEFAULT_ASSERT_USED(CpuSrvcServiceName) ) +#endif + +*/ + + +#define STRING2(x) #x +#define STRING(x) STRING2(x) +#define CAT_STRING(a, b) a##b +#define STRING_ARROW " --> " + +// +// Verbose control for messaging CPU services at build time +// +#ifndef VERBOSE_CPU_SERVICES + #define VERBOSE_CPU_SERVICES 1 // 0 - disable messaging, 1 - enable debugging. +#endif + +#if VERBOSE_CPU_SERVICES + #define STRING_MACRO_VALUE(Name) " " #Name " = " STRING(Name) + #define STRING_OVERRIDE_MACRO_VALUE(Name) " OVERRIDE: " #Name " : " STRING(Name) STRING_ARROW STRING(Ovrd##Name) + #define STRING_MACRO_DEFAULT_USED(Name) " NOT DEFINED: " #Name STRING_ARROW " DEFAULT: " STRING(FinalDflt##Name) + #define STRING_MACRO_DEFAULT_ASSERT_USED(Name) " DISABLED: " #Name ", assertion is used." + + #define STRING_SEPARATOR1 "-----------------------------------------------------------------------------------------------" + #define STRING_SEPARATOR2 "===============================================================================================" + #define STRING_SEPARATOR_POUND "###############################################################################################" +#else // VERBOSE_CPU_SERVICES + #define STRING_MACRO_VALUE(Name) NULL_STRING + #define STRING_OVERRIDE_MACRO_VALUE(Name) NULL_STRING + #define STRING_MACRO_DEFAULT_USED(Name) NULL_STRING + #define STRING_MACRO_DEFAULT_ASSERT_USED(Name) NULL_STRING + + + #define NULL_STRING "" + #define STRING_SEPARATOR1 NULL_STRING + #define STRING_SEPARATOR2 NULL_STRING + #define STRING_SEPARATOR_POUND NULL_STRING +#endif // VERBOSE_CPU_SERVICES + +// +// Handle override definitions on DfltAssertCpuSrvc +// + +#ifdef OvrdDfltAssertCpuSrvcRevision + #define FinalDfltAssertCpuSrvcRevision OvrdDfltAssertCpuSrvcRevision +#else + #define FinalDfltAssertCpuSrvcRevision DfltAssertCpuSrvcRevision +#endif + +#ifdef OvrdDfltAssertCpuSrvcDisablePstate + #define FinalDfltAssertCpuSrvcDisablePstate OvrdDfltAssertCpuSrvcDisablePstate +#else + #define FinalDfltAssertCpuSrvcDisablePstate DfltAssertCpuSrvcDisablePstate +#endif + +#ifdef OvrdDfltAssertCpuSrvcTransitionPstate + #define FinalDfltAssertCpuSrvcTransitionPstate OvrdDfltAssertCpuSrvcTransitionPstate +#else + #define FinalDfltAssertCpuSrvcTransitionPstate DfltAssertCpuSrvcTransitionPstate +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetProcIddMax + #define FinalDfltAssertCpuSrvcGetProcIddMax OvrdDfltAssertCpuSrvcGetProcIddMax +#else + #define FinalDfltAssertCpuSrvcGetProcIddMax DfltAssertCpuSrvcGetProcIddMax +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetTscRate + #define FinalDfltAssertCpuSrvcGetTscRate OvrdDfltAssertCpuSrvcGetTscRate +#else + #define FinalDfltAssertCpuSrvcGetTscRate DfltAssertCpuSrvcGetTscRate +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetCurrentNbFrequency + #define FinalDfltAssertCpuSrvcGetCurrentNbFrequency OvrdDfltAssertCpuSrvcGetCurrentNbFrequency +#else + #define FinalDfltAssertCpuSrvcGetCurrentNbFrequency DfltAssertCpuSrvcGetCurrentNbFrequency +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetMinMaxNbFrequency + #define FinalDfltAssertCpuSrvcGetMinMaxNbFrequency OvrdDfltAssertCpuSrvcGetMinMaxNbFrequency +#else + #define FinalDfltAssertCpuSrvcGetMinMaxNbFrequency DfltAssertCpuSrvcGetMinMaxNbFrequency +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetNbPstateInfo + #define FinalDfltAssertCpuSrvcGetNbPstateInfo OvrdDfltAssertCpuSrvcGetNbPstateInfo +#else + #define FinalDfltAssertCpuSrvcGetNbPstateInfo DfltAssertCpuSrvcGetNbPstateInfo +#endif + +#ifdef OvrdDfltAssertCpuSrvcIsNbCofInitNeeded + #define FinalDfltAssertCpuSrvcIsNbCofInitNeeded OvrdDfltAssertCpuSrvcIsNbCofInitNeeded +#else + #define FinalDfltAssertCpuSrvcIsNbCofInitNeeded DfltAssertCpuSrvcIsNbCofInitNeeded +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetNbIddMax + #define FinalDfltAssertCpuSrvcGetNbIddMax OvrdDfltAssertCpuSrvcGetNbIddMax +#else + #define FinalDfltAssertCpuSrvcGetNbIddMax DfltAssertCpuSrvcGetNbIddMax +#endif + +#ifdef OvrdDfltAssertCpuSrvcLaunchApCore + #define FinalDfltAssertCpuSrvcLaunchApCore OvrdDfltAssertCpuSrvcLaunchApCore +#else + #define FinalDfltAssertCpuSrvcLaunchApCore DfltAssertCpuSrvcLaunchApCore +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetNumberOfPhysicalCores + #define FinalDfltAssertCpuSrvcGetNumberOfPhysicalCores OvrdDfltAssertCpuSrvcGetNumberOfPhysicalCores +#else + #define FinalDfltAssertCpuSrvcGetNumberOfPhysicalCores DfltAssertCpuSrvcGetNumberOfPhysicalCores +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetApMailboxFromHardware + #define FinalDfltAssertCpuSrvcGetApMailboxFromHardware OvrdDfltAssertCpuSrvcGetApMailboxFromHardware +#else + #define FinalDfltAssertCpuSrvcGetApMailboxFromHardware DfltAssertCpuSrvcGetApMailboxFromHardware +#endif + +#ifdef OvrdDfltAssertCpuSrvcSetApCoreNumber + #define FinalDfltAssertCpuSrvcSetApCoreNumber OvrdDfltAssertCpuSrvcSetApCoreNumber +#else + #define FinalDfltAssertCpuSrvcSetApCoreNumber DfltAssertCpuSrvcSetApCoreNumber +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetApCoreNumber + #define FinalDfltAssertCpuSrvcGetApCoreNumber OvrdDfltAssertCpuSrvcGetApCoreNumber +#else + #define FinalDfltAssertCpuSrvcGetApCoreNumber DfltAssertCpuSrvcGetApCoreNumber +#endif + +#ifdef OvrdDfltAssertCpuSrvcTransferApCoreNumber + #define FinalDfltAssertCpuSrvcTransferApCoreNumber OvrdDfltAssertCpuSrvcTransferApCoreNumber +#else + #define FinalDfltAssertCpuSrvcTransferApCoreNumber DfltAssertCpuSrvcTransferApCoreNumber +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetStoredNodeNumber + #define FinalDfltAssertCpuSrvcGetStoredNodeNumber OvrdDfltAssertCpuSrvcGetStoredNodeNumber +#else + #define FinalDfltAssertCpuSrvcGetStoredNodeNumber DfltAssertCpuSrvcGetStoredNodeNumber +#endif + +#ifdef OvrdDfltAssertCpuSrvcCoreIdPositionInInitialApicId + #define FinalDfltAssertCpuSrvcCoreIdPositionInInitialApicId OvrdDfltAssertCpuSrvcCoreIdPositionInInitialApicId +#else + #define FinalDfltAssertCpuSrvcCoreIdPositionInInitialApicId DfltAssertCpuSrvcCoreIdPositionInInitialApicId +#endif + +#ifdef OvrdDfltAssertCpuSrvcSaveFeatures + #define FinalDfltAssertCpuSrvcSaveFeatures OvrdDfltAssertCpuSrvcSaveFeatures +#else + #define FinalDfltAssertCpuSrvcSaveFeatures DfltAssertCpuSrvcSaveFeatures +#endif + +#ifdef OvrdDfltAssertCpuSrvcWriteFeatures + #define FinalDfltAssertCpuSrvcWriteFeatures OvrdDfltAssertCpuSrvcWriteFeatures +#else + #define FinalDfltAssertCpuSrvcWriteFeatures DfltAssertCpuSrvcWriteFeatures +#endif + +#ifdef OvrdDfltAssertCpuSrvcSetWarmResetFlag + #define FinalDfltAssertCpuSrvcSetWarmResetFlag OvrdDfltAssertCpuSrvcSetWarmResetFlag +#else + #define FinalDfltAssertCpuSrvcSetWarmResetFlag DfltAssertCpuSrvcSetWarmResetFlag +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetWarmResetFlag + #define FinalDfltAssertCpuSrvcGetWarmResetFlag OvrdDfltAssertCpuSrvcGetWarmResetFlag +#else + #define FinalDfltAssertCpuSrvcGetWarmResetFlag DfltAssertCpuSrvcGetWarmResetFlag +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetBrandString1 + #define FinalDfltAssertCpuSrvcGetBrandString1 OvrdDfltAssertCpuSrvcGetBrandString1 +#else + #define FinalDfltAssertCpuSrvcGetBrandString1 DfltAssertCpuSrvcGetBrandString1 +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetBrandString2 + #define FinalDfltAssertCpuSrvcGetBrandString2 OvrdDfltAssertCpuSrvcGetBrandString2 +#else + #define FinalDfltAssertCpuSrvcGetBrandString2 DfltAssertCpuSrvcGetBrandString2 +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetMicroCodePatchesStruct + #define FinalDfltAssertCpuSrvcGetMicroCodePatchesStruct OvrdDfltAssertCpuSrvcGetMicroCodePatchesStruct +#else + #define FinalDfltAssertCpuSrvcGetMicroCodePatchesStruct DfltAssertCpuSrvcGetMicroCodePatchesStruct +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetMicrocodeEquivalenceTable + #define FinalDfltAssertCpuSrvcGetMicrocodeEquivalenceTable OvrdDfltAssertCpuSrvcGetMicrocodeEquivalenceTable +#else + #define FinalDfltAssertCpuSrvcGetMicrocodeEquivalenceTable DfltAssertCpuSrvcGetMicrocodeEquivalenceTable +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetCacheInfo + #define FinalDfltAssertCpuSrvcGetCacheInfo OvrdDfltAssertCpuSrvcGetCacheInfo +#else + #define FinalDfltAssertCpuSrvcGetCacheInfo DfltAssertCpuSrvcGetCacheInfo +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetSysPmTableStruct + #define FinalDfltAssertCpuSrvcGetSysPmTableStruct OvrdDfltAssertCpuSrvcGetSysPmTableStruct +#else + #define FinalDfltAssertCpuSrvcGetSysPmTableStruct DfltAssertCpuSrvcGetSysPmTableStruct +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetWheaInitData + #define FinalDfltAssertCpuSrvcGetWheaInitData OvrdDfltAssertCpuSrvcGetWheaInitData +#else + #define FinalDfltAssertCpuSrvcGetWheaInitData DfltAssertCpuSrvcGetWheaInitData +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetPlatformTypeSpecificInfo + #define FinalDfltAssertCpuSrvcGetPlatformTypeSpecificInfo OvrdDfltAssertCpuSrvcGetPlatformTypeSpecificInfo +#else + #define FinalDfltAssertCpuSrvcGetPlatformTypeSpecificInfo DfltAssertCpuSrvcGetPlatformTypeSpecificInfo +#endif + +#ifdef OvrdDfltAssertCpuSrvcIsNbPstateEnabled + #define FinalDfltAssertCpuSrvcIsNbPstateEnabled OvrdDfltAssertCpuSrvcIsNbPstateEnabled +#else + #define FinalDfltAssertCpuSrvcIsNbPstateEnabled DfltAssertCpuSrvcIsNbPstateEnabled +#endif + +#ifdef OvrdDfltAssertCpuSrvcNextLinkHasHtPhyFeats + #define FinalDfltAssertCpuSrvcNextLinkHasHtPhyFeats OvrdDfltAssertCpuSrvcNextLinkHasHtPhyFeats +#else + #define FinalDfltAssertCpuSrvcNextLinkHasHtPhyFeats DfltAssertCpuSrvcNextLinkHasHtPhyFeats +#endif + +#ifdef OvrdDfltAssertCpuSrvcSetHtPhyRegister + #define FinalDfltAssertCpuSrvcSetHtPhyRegister OvrdDfltAssertCpuSrvcSetHtPhyRegister +#else + #define FinalDfltAssertCpuSrvcSetHtPhyRegister DfltAssertCpuSrvcSetHtPhyRegister +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetNextHtLinkFeatures + #define FinalDfltAssertCpuSrvcGetNextHtLinkFeatures OvrdDfltAssertCpuSrvcGetNextHtLinkFeatures +#else + #define FinalDfltAssertCpuSrvcGetNextHtLinkFeatures DfltAssertCpuSrvcGetNextHtLinkFeatures +#endif + +#ifdef OvrdDfltAssertCpuSrvcRegisterTableList + #define FinalDfltAssertCpuSrvcRegisterTableList OvrdDfltAssertCpuSrvcRegisterTableList +#else + #define FinalDfltAssertCpuSrvcRegisterTableList DfltAssertCpuSrvcRegisterTableList +#endif + +#ifdef OvrdDfltAssertCpuSrvcTableEntryTypeDescriptors + #define FinalDfltAssertCpuSrvcTableEntryTypeDescriptors OvrdDfltAssertCpuSrvcTableEntryTypeDescriptors +#else + #define FinalDfltAssertCpuSrvcTableEntryTypeDescriptors DfltAssertCpuSrvcTableEntryTypeDescriptors +#endif + +#ifdef OvrdDfltAssertCpuSrvcPackageLinkMap + #define FinalDfltAssertCpuSrvcPackageLinkMap OvrdDfltAssertCpuSrvcPackageLinkMap +#else + #define FinalDfltAssertCpuSrvcPackageLinkMap DfltAssertCpuSrvcPackageLinkMap +#endif + +#ifdef OvrdDfltAssertCpuSrvcComputeUnitMap + #define FinalDfltAssertCpuSrvcComputeUnitMap OvrdDfltAssertCpuSrvcComputeUnitMap +#else + #define FinalDfltAssertCpuSrvcComputeUnitMap DfltAssertCpuSrvcComputeUnitMap +#endif + +#ifdef OvrdDfltAssertCpuSrvcInitCacheDisabled + #define FinalDfltAssertCpuSrvcInitCacheDisabled OvrdDfltAssertCpuSrvcInitCacheDisabled +#else + #define FinalDfltAssertCpuSrvcInitCacheDisabled DfltAssertCpuSrvcInitCacheDisabled +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable + #define FinalDfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable OvrdDfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable +#else + #define FinalDfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable DfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable +#endif + +#ifdef OvrdDfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable + #define FinalDfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable OvrdDfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable +#else + #define FinalDfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable DfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable +#endif + +#ifdef OvrdDfltAssertCpuSrvcPatchLoaderIsSharedByCU + #define FinalDfltAssertCpuSrvcPatchLoaderIsSharedByCU OvrdDfltAssertCpuSrvcPatchLoaderIsSharedByCU +#else + #define FinalDfltAssertCpuSrvcPatchLoaderIsSharedByCU DfltAssertCpuSrvcPatchLoaderIsSharedByCU +#endif + +// +// Handle override definitions on DfltCpuSrvc +// + +#ifdef OvrdDfltCpuSrvcRevision + #define FinalDfltCpuSrvcRevision OvrdDfltCpuSrvcRevision +#else + #define FinalDfltCpuSrvcRevision DfltCpuSrvcRevision +#endif + +#ifdef OvrdDfltCpuSrvcDisablePstate + #define FinalDfltCpuSrvcDisablePstate OvrdDfltCpuSrvcDisablePstate +#else + #define FinalDfltCpuSrvcDisablePstate DfltCpuSrvcDisablePstate +#endif + +#ifdef OvrdDfltCpuSrvcTransitionPstate + #define FinalDfltCpuSrvcTransitionPstate OvrdDfltCpuSrvcTransitionPstate +#else + #define FinalDfltCpuSrvcTransitionPstate DfltCpuSrvcTransitionPstate +#endif + +#ifdef OvrdDfltCpuSrvcGetProcIddMax + #define FinalDfltCpuSrvcGetProcIddMax OvrdDfltCpuSrvcGetProcIddMax +#else + #define FinalDfltCpuSrvcGetProcIddMax DfltCpuSrvcGetProcIddMax +#endif + +#ifdef OvrdDfltCpuSrvcGetTscRate + #define FinalDfltCpuSrvcGetTscRate OvrdDfltCpuSrvcGetTscRate +#else + #define FinalDfltCpuSrvcGetTscRate DfltCpuSrvcGetTscRate +#endif + +#ifdef OvrdDfltCpuSrvcGetCurrentNbFrequency + #define FinalDfltCpuSrvcGetCurrentNbFrequency OvrdDfltCpuSrvcGetCurrentNbFrequency +#else + #define FinalDfltCpuSrvcGetCurrentNbFrequency DfltCpuSrvcGetCurrentNbFrequency +#endif + +#ifdef OvrdDfltCpuSrvcGetMinMaxNbFrequency + #define FinalDfltCpuSrvcGetMinMaxNbFrequency OvrdDfltCpuSrvcGetMinMaxNbFrequency +#else + #define FinalDfltCpuSrvcGetMinMaxNbFrequency DfltCpuSrvcGetMinMaxNbFrequency +#endif + +#ifdef OvrdDfltCpuSrvcGetNbPstateInfo + #define FinalDfltCpuSrvcGetNbPstateInfo OvrdDfltCpuSrvcGetNbPstateInfo +#else + #define FinalDfltCpuSrvcGetNbPstateInfo DfltCpuSrvcGetNbPstateInfo +#endif + +#ifdef OvrdDfltCpuSrvcIsNbCofInitNeeded + #define FinalDfltCpuSrvcIsNbCofInitNeeded OvrdDfltCpuSrvcIsNbCofInitNeeded +#else + #define FinalDfltCpuSrvcIsNbCofInitNeeded DfltCpuSrvcIsNbCofInitNeeded +#endif + +#ifdef OvrdDfltCpuSrvcGetNbIddMax + #define FinalDfltCpuSrvcGetNbIddMax OvrdDfltCpuSrvcGetNbIddMax +#else + #define FinalDfltCpuSrvcGetNbIddMax DfltCpuSrvcGetNbIddMax +#endif + +#ifdef OvrdDfltCpuSrvcLaunchApCore + #define FinalDfltCpuSrvcLaunchApCore OvrdDfltCpuSrvcLaunchApCore +#else + #define FinalDfltCpuSrvcLaunchApCore DfltCpuSrvcLaunchApCore +#endif + +#ifdef OvrdDfltCpuSrvcGetNumberOfPhysicalCores + #define FinalDfltCpuSrvcGetNumberOfPhysicalCores OvrdDfltCpuSrvcGetNumberOfPhysicalCores +#else + #define FinalDfltCpuSrvcGetNumberOfPhysicalCores DfltCpuSrvcGetNumberOfPhysicalCores +#endif + +#ifdef OvrdDfltCpuSrvcGetApMailboxFromHardware + #define FinalDfltCpuSrvcGetApMailboxFromHardware OvrdDfltCpuSrvcGetApMailboxFromHardware +#else + #define FinalDfltCpuSrvcGetApMailboxFromHardware DfltCpuSrvcGetApMailboxFromHardware +#endif + +#ifdef OvrdDfltCpuSrvcSetApCoreNumber + #define FinalDfltCpuSrvcSetApCoreNumber OvrdDfltCpuSrvcSetApCoreNumber +#else + #define FinalDfltCpuSrvcSetApCoreNumber DfltCpuSrvcSetApCoreNumber +#endif + +#ifdef OvrdDfltCpuSrvcGetApCoreNumber + #define FinalDfltCpuSrvcGetApCoreNumber OvrdDfltCpuSrvcGetApCoreNumber +#else + #define FinalDfltCpuSrvcGetApCoreNumber DfltCpuSrvcGetApCoreNumber +#endif + +#ifdef OvrdDfltCpuSrvcTransferApCoreNumber + #define FinalDfltCpuSrvcTransferApCoreNumber OvrdDfltCpuSrvcTransferApCoreNumber +#else + #define FinalDfltCpuSrvcTransferApCoreNumber DfltCpuSrvcTransferApCoreNumber +#endif + +#ifdef OvrdDfltCpuSrvcGetStoredNodeNumber + #define FinalDfltCpuSrvcGetStoredNodeNumber OvrdDfltCpuSrvcGetStoredNodeNumber +#else + #define FinalDfltCpuSrvcGetStoredNodeNumber DfltCpuSrvcGetStoredNodeNumber +#endif + +#ifdef OvrdDfltCpuSrvcCoreIdPositionInInitialApicId + #define FinalDfltCpuSrvcCoreIdPositionInInitialApicId OvrdDfltCpuSrvcCoreIdPositionInInitialApicId +#else + #define FinalDfltCpuSrvcCoreIdPositionInInitialApicId DfltCpuSrvcCoreIdPositionInInitialApicId +#endif + +#ifdef OvrdDfltCpuSrvcSaveFeatures + #define FinalDfltCpuSrvcSaveFeatures OvrdDfltCpuSrvcSaveFeatures +#else + #define FinalDfltCpuSrvcSaveFeatures DfltCpuSrvcSaveFeatures +#endif + +#ifdef OvrdDfltCpuSrvcWriteFeatures + #define FinalDfltCpuSrvcWriteFeatures OvrdDfltCpuSrvcWriteFeatures +#else + #define FinalDfltCpuSrvcWriteFeatures DfltCpuSrvcWriteFeatures +#endif + +#ifdef OvrdDfltCpuSrvcSetWarmResetFlag + #define FinalDfltCpuSrvcSetWarmResetFlag OvrdDfltCpuSrvcSetWarmResetFlag +#else + #define FinalDfltCpuSrvcSetWarmResetFlag DfltCpuSrvcSetWarmResetFlag +#endif + +#ifdef OvrdDfltCpuSrvcGetWarmResetFlag + #define FinalDfltCpuSrvcGetWarmResetFlag OvrdDfltCpuSrvcGetWarmResetFlag +#else + #define FinalDfltCpuSrvcGetWarmResetFlag DfltCpuSrvcGetWarmResetFlag +#endif + +#ifdef OvrdDfltCpuSrvcGetBrandString1 + #define FinalDfltCpuSrvcGetBrandString1 OvrdDfltCpuSrvcGetBrandString1 +#else + #define FinalDfltCpuSrvcGetBrandString1 DfltCpuSrvcGetBrandString1 +#endif + +#ifdef OvrdDfltCpuSrvcGetBrandString2 + #define FinalDfltCpuSrvcGetBrandString2 OvrdDfltCpuSrvcGetBrandString2 +#else + #define FinalDfltCpuSrvcGetBrandString2 DfltCpuSrvcGetBrandString2 +#endif + +#ifdef OvrdDfltCpuSrvcGetMicroCodePatchesStruct + #define FinalDfltCpuSrvcGetMicroCodePatchesStruct OvrdDfltCpuSrvcGetMicroCodePatchesStruct +#else + #define FinalDfltCpuSrvcGetMicroCodePatchesStruct DfltCpuSrvcGetMicroCodePatchesStruct +#endif + +#ifdef OvrdDfltCpuSrvcGetMicrocodeEquivalenceTable + #define FinalDfltCpuSrvcGetMicrocodeEquivalenceTable OvrdDfltCpuSrvcGetMicrocodeEquivalenceTable +#else + #define FinalDfltCpuSrvcGetMicrocodeEquivalenceTable DfltCpuSrvcGetMicrocodeEquivalenceTable +#endif + +#ifdef OvrdDfltCpuSrvcGetCacheInfo + #define FinalDfltCpuSrvcGetCacheInfo OvrdDfltCpuSrvcGetCacheInfo +#else + #define FinalDfltCpuSrvcGetCacheInfo DfltCpuSrvcGetCacheInfo +#endif + +#ifdef OvrdDfltCpuSrvcGetSysPmTableStruct + #define FinalDfltCpuSrvcGetSysPmTableStruct OvrdDfltCpuSrvcGetSysPmTableStruct +#else + #define FinalDfltCpuSrvcGetSysPmTableStruct DfltCpuSrvcGetSysPmTableStruct +#endif + +#ifdef OvrdDfltCpuSrvcGetWheaInitData + #define FinalDfltCpuSrvcGetWheaInitData OvrdDfltCpuSrvcGetWheaInitData +#else + #define FinalDfltCpuSrvcGetWheaInitData DfltCpuSrvcGetWheaInitData +#endif + +#ifdef OvrdDfltCpuSrvcGetPlatformTypeSpecificInfo + #define FinalDfltCpuSrvcGetPlatformTypeSpecificInfo OvrdDfltCpuSrvcGetPlatformTypeSpecificInfo +#else + #define FinalDfltCpuSrvcGetPlatformTypeSpecificInfo DfltCpuSrvcGetPlatformTypeSpecificInfo +#endif + +#ifdef OvrdDfltCpuSrvcIsNbPstateEnabled + #define FinalDfltCpuSrvcIsNbPstateEnabled OvrdDfltCpuSrvcIsNbPstateEnabled +#else + #define FinalDfltCpuSrvcIsNbPstateEnabled DfltCpuSrvcIsNbPstateEnabled +#endif + +#ifdef OvrdDfltCpuSrvcNextLinkHasHtPhyFeats + #define FinalDfltCpuSrvcNextLinkHasHtPhyFeats OvrdDfltCpuSrvcNextLinkHasHtPhyFeats +#else + #define FinalDfltCpuSrvcNextLinkHasHtPhyFeats DfltCpuSrvcNextLinkHasHtPhyFeats +#endif + +#ifdef OvrdDfltCpuSrvcSetHtPhyRegister + #define FinalDfltCpuSrvcSetHtPhyRegister OvrdDfltCpuSrvcSetHtPhyRegister +#else + #define FinalDfltCpuSrvcSetHtPhyRegister DfltCpuSrvcSetHtPhyRegister +#endif + +#ifdef OvrdDfltCpuSrvcGetNextHtLinkFeatures + #define FinalDfltCpuSrvcGetNextHtLinkFeatures OvrdDfltCpuSrvcGetNextHtLinkFeatures +#else + #define FinalDfltCpuSrvcGetNextHtLinkFeatures DfltCpuSrvcGetNextHtLinkFeatures +#endif + +#ifdef OvrdDfltCpuSrvcRegisterTableList + #define FinalDfltCpuSrvcRegisterTableList OvrdDfltCpuSrvcRegisterTableList +#else + #define FinalDfltCpuSrvcRegisterTableList DfltCpuSrvcRegisterTableList +#endif + +#ifdef OvrdDfltCpuSrvcTableEntryTypeDescriptors + #define FinalDfltCpuSrvcTableEntryTypeDescriptors OvrdDfltCpuSrvcTableEntryTypeDescriptors +#else + #define FinalDfltCpuSrvcTableEntryTypeDescriptors DfltCpuSrvcTableEntryTypeDescriptors +#endif + +#ifdef OvrdDfltCpuSrvcPackageLinkMap + #define FinalDfltCpuSrvcPackageLinkMap OvrdDfltCpuSrvcPackageLinkMap +#else + #define FinalDfltCpuSrvcPackageLinkMap DfltCpuSrvcPackageLinkMap +#endif + +#ifdef OvrdDfltCpuSrvcComputeUnitMap + #define FinalDfltCpuSrvcComputeUnitMap OvrdDfltCpuSrvcComputeUnitMap +#else + #define FinalDfltCpuSrvcComputeUnitMap DfltCpuSrvcComputeUnitMap +#endif + +#ifdef OvrdDfltCpuSrvcInitCacheDisabled + #define FinalDfltCpuSrvcInitCacheDisabled OvrdDfltCpuSrvcInitCacheDisabled +#else + #define FinalDfltCpuSrvcInitCacheDisabled DfltCpuSrvcInitCacheDisabled +#endif + +#ifdef OvrdDfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable + #define FinalDfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable OvrdDfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable +#else + #define FinalDfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable DfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable +#endif + +#ifdef OvrdDfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable + #define FinalDfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable OvrdDfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable +#else + #define FinalDfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable DfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable +#endif + +#ifdef OvrdDfltCpuSrvcPatchLoaderIsSharedByCU + #define FinalDfltCpuSrvcPatchLoaderIsSharedByCU OvrdDfltCpuSrvcPatchLoaderIsSharedByCU +#else + #define FinalDfltCpuSrvcPatchLoaderIsSharedByCU DfltCpuSrvcPatchLoaderIsSharedByCU +#endif + + +// +// Make final service definition with considerations of below: +// 1. Common build config swich control +// 2. Override service definition +// + +// Member: (UINT16) Revision +#ifdef CpuSrvcRevision + #define FinalCpuSrvcRevision CpuSrvcRevision +#else + #define FinalCpuSrvcRevision FinalDfltCpuSrvcRevision +#endif + +// Member: (PF_CPU_DISABLE_PSTATE) DisablePstate +#if AGESA_ENTRY_INIT_EARLY == TRUE + #ifdef CpuSrvcDisablePstate + #define FinalCpuSrvcDisablePstate CpuSrvcDisablePstate + #ifndef EXTERN_FINALCPUSRVCDISABLEPSTATE + #define EXTERN_FINALCPUSRVCDISABLEPSTATE + extern F_CPU_DISABLE_PSTATE FinalCpuSrvcDisablePstate; + #endif + #else + #define FinalCpuSrvcDisablePstate FinalDfltCpuSrvcDisablePstate + #endif +#else + #define FinalCpuSrvcDisablePstate FinalDfltAssertCpuSrvcDisablePstate +#endif + +// Member: (PF_CPU_TRANSITION_PSTATE) TransitionPstate +#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE) + #ifdef CpuSrvcTransitionPstate + #define FinalCpuSrvcTransitionPstate CpuSrvcTransitionPstate + #ifndef EXTERN_FINALCPUSRVCTRANSITIONPSTATE + #define EXTERN_FINALCPUSRVCTRANSITIONPSTATE + extern F_CPU_TRANSITION_PSTATE FinalCpuSrvcTransitionPstate; + #endif + #else + #define FinalCpuSrvcTransitionPstate FinalDfltCpuSrvcTransitionPstate + #endif +#else + #define FinalCpuSrvcTransitionPstate FinalDfltAssertCpuSrvcTransitionPstate +#endif + +// Member: (PF_CPU_GET_IDD_MAX) GetProcIddMax +#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE) + #ifdef CpuSrvcGetProcIddMax + #define FinalCpuSrvcGetProcIddMax CpuSrvcGetProcIddMax + extern F_CPU_GET_IDD_MAX FinalCpuSrvcGetProcIddMax; + #else + #define FinalCpuSrvcGetProcIddMax FinalDfltCpuSrvcGetProcIddMax + #endif +#else + #define FinalCpuSrvcGetProcIddMax FinalDfltAssertCpuSrvcGetProcIddMax +#endif + +// Member: (PF_CPU_GET_TSC_RATE) GetTscRate +#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE) + #ifdef CpuSrvcGetTscRate + #define FinalCpuSrvcGetTscRate CpuSrvcGetTscRate + #ifndef EXTERN_FINALCPUSRVCGETTSCRATE + #define EXTERN_FINALCPUSRVCGETTSCRATE + extern F_CPU_GET_TSC_RATE FinalCpuSrvcGetTscRate; + #endif + #else + #define FinalCpuSrvcGetTscRate FinalDfltCpuSrvcGetTscRate + #endif +#else + #define FinalCpuSrvcGetTscRate FinalDfltAssertCpuSrvcGetTscRate +#endif + +// Member: (PF_CPU_GET_NB_FREQ) GetCurrentNbFrequency +#if AGESA_ENTRY_INIT_EARLY == TRUE + #ifdef CpuSrvcGetCurrentNbFrequency + #define FinalCpuSrvcGetCurrentNbFrequency CpuSrvcGetCurrentNbFrequency + extern F_CPU_GET_NB_FREQ FinalCpuSrvcGetCurrentNbFrequency; + #else + #define FinalCpuSrvcGetCurrentNbFrequency FinalDfltCpuSrvcGetCurrentNbFrequency + #endif +#else + #define FinalCpuSrvcGetCurrentNbFrequency FinalDfltAssertCpuSrvcGetCurrentNbFrequency +#endif + + +// Member: (PF_CPU_GET_MIN_MAX_NB_FREQ) GetMinMaxNbFrequency +#if AGESA_ENTRY_INIT_EARLY == TRUE + #ifdef CpuSrvcGetMinMaxNbFrequency + #define FinalCpuSrvcGetMinMaxNbFrequency CpuSrvcGetMinMaxNbFrequency + extern F_CPU_GET_MIN_MAX_NB_FREQ FinalCpuSrvcGetMinMaxNbFrequency; + #else + #define FinalCpuSrvcGetMinMaxNbFrequency FinalDfltCpuSrvcGetMinMaxNbFrequency + #endif +#else + #define FinalCpuSrvcGetMinMaxNbFrequency FinalDfltAssertCpuSrvcGetMinMaxNbFrequency +#endif + +// Member: (PF_CPU_GET_NB_PSTATE_INFO) GetNbPstateInfo +#if AGESA_ENTRY_INIT_EARLY == TRUE + #ifdef CpuSrvcGetNbPstateInfo + #define FinalCpuSrvcGetNbPstateInfo CpuSrvcGetNbPstateInfo + extern F_CPU_GET_NB_PSTATE_INFO FinalCpuSrvcGetNbPstateInfo; + #else + #define FinalCpuSrvcGetNbPstateInfo FinalDfltCpuSrvcGetNbPstateInfo + #endif +#else + #define FinalCpuSrvcGetNbPstateInfo FinalDfltAssertCpuSrvcGetNbPstateInfo +#endif + +// Member: (PF_CPU_IS_NBCOF_INIT_NEEDED) IsNbCofInitNeeded +#if AGESA_ENTRY_INIT_EARLY == TRUE + #ifdef CpuSrvcIsNbCofInitNeeded + #define FinalCpuSrvcIsNbCofInitNeeded CpuSrvcIsNbCofInitNeeded + extern F_CPU_IS_NBCOF_INIT_NEEDED FinalCpuSrvcIsNbCofInitNeeded; + #else + #define FinalCpuSrvcIsNbCofInitNeeded FinalDfltCpuSrvcIsNbCofInitNeeded + #endif +#else + #define FinalCpuSrvcIsNbCofInitNeeded FinalDfltAssertCpuSrvcIsNbCofInitNeeded +#endif + +// Member: (PF_CPU_GET_NB_IDD_MAX) GetNbIddMax +#if AGESA_ENTRY_INIT_EARLY == TRUE + #ifdef CpuSrvcGetNbIddMax + #define FinalCpuSrvcGetNbIddMax CpuSrvcGetNbIddMax + extern F_CPU_GET_NB_IDD_MAX FinalCpuSrvcGetNbIddMax; + #else + #define FinalCpuSrvcGetNbIddMax FinalDfltCpuSrvcGetNbIddMax + #endif +#else + #define FinalCpuSrvcGetNbIddMax FinalDfltAssertCpuSrvcGetNbIddMax +#endif + +// Member: (PF_CPU_AP_INITIAL_LAUNCH) LaunchApCore +#if AGESA_ENTRY_INIT_EARLY == TRUE + #ifdef CpuSrvcLaunchApCore + #define FinalCpuSrvcLaunchApCore CpuSrvcLaunchApCore + #ifndef EXTERN_FINALCPUSRVCLAUNCHAPCORE + #define EXTERN_FINALCPUSRVCLAUNCHAPCORE + extern F_CPU_AP_INITIAL_LAUNCH FinalCpuSrvcLaunchApCore; + #endif + #else + #define FinalCpuSrvcLaunchApCore FinalDfltCpuSrvcLaunchApCore + #endif +#else + #define FinalCpuSrvcLaunchApCore FinalDfltAssertCpuSrvcLaunchApCore +#endif + +// Member:(PF_CPU_NUMBER_OF_PHYSICAL_CORES) GetNumberOfPhysicalCores +#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE) + #ifdef CpuSrvcGetNumberOfPhysicalCores + #define FinalCpuSrvcGetNumberOfPhysicalCores CpuSrvcGetNumberOfPhysicalCores + extern F_CPU_NUMBER_OF_PHYSICAL_CORES FinalCpuSrvcGetNumberOfPhysicalCores; + #else + #define FinalCpuSrvcGetNumberOfPhysicalCores FinalDfltCpuSrvcGetNumberOfPhysicalCores + #endif +#else + #define FinalCpuSrvcGetNumberOfPhysicalCores FinalDfltAssertCpuSrvcGetNumberOfPhysicalCores +#endif + +// Member: (PF_CPU_AMD_GET_AP_MAILBOX_FROM_HARDWARE) GetApMailboxFromHardware +#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) + #ifdef CpuSrvcGetApMailboxFromHardware + #define FinalCpuSrvcGetApMailboxFromHardware CpuSrvcGetApMailboxFromHardware + extern F_CPU_AMD_GET_AP_MAILBOX_FROM_HARDWARE FinalCpuSrvcGetApMailboxFromHardware; + #else + #define FinalCpuSrvcGetApMailboxFromHardware FinalDfltCpuSrvcGetApMailboxFromHardware + #endif +#else + #define FinalCpuSrvcGetApMailboxFromHardware FinalDfltAssertCpuSrvcGetApMailboxFromHardware +#endif + +// Member: (PF_CPU_SET_AP_CORE_NUMBER) SetApCoreNumber +#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) + #ifdef CpuSrvcSetApCoreNumber + #define FinalCpuSrvcSetApCoreNumber CpuSrvcSetApCoreNumber + extern F_CPU_SET_AP_CORE_NUMBER FinalCpuSrvcSetApCoreNumber; + #else + #define FinalCpuSrvcSetApCoreNumber FinalDfltCpuSrvcSetApCoreNumber + #endif +#else + #define FinalCpuSrvcSetApCoreNumber FinalDfltAssertCpuSrvcSetApCoreNumber +#endif + +// Member: (PF_CPU_GET_AP_CORE_NUMBER) GetApCoreNumber +#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || \ + (AGESA_ENTRY_INIT_POST == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE) + #ifdef CpuSrvcGetApCoreNumber + #define FinalCpuSrvcGetApCoreNumber CpuSrvcGetApCoreNumber + extern F_CPU_GET_AP_CORE_NUMBER FinalCpuSrvcGetApCoreNumber; + #else + #define FinalCpuSrvcGetApCoreNumber FinalDfltCpuSrvcGetApCoreNumber + #endif +#else + #define FinalCpuSrvcGetApCoreNumber FinalDfltAssertCpuSrvcGetApCoreNumber +#endif + +// Member: (PF_CPU_TRANSFER_AP_CORE_NUMBER) TransferApCoreNumber +#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) + #ifdef CpuSrvcTransferApCoreNumber + #define FinalCpuSrvcTransferApCoreNumber CpuSrvcTransferApCoreNumber + extern F_CPU_TRANSFER_AP_CORE_NUMBER FinalCpuSrvcTransferApCoreNumber; + #else + #define FinalCpuSrvcTransferApCoreNumber FinalDfltCpuSrvcTransferApCoreNumber + #endif +#else + #define FinalCpuSrvcTransferApCoreNumber FinalDfltAssertCpuSrvcTransferApCoreNumber +#endif + +// Member: (PF_CPU_GET_STORED_NODE_NUMBER) GetStoredNodeNumber +#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || \ + (AGESA_ENTRY_INIT_ENV == TRUE) || (AGESA_ENTRY_INIT_MID == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE) || \ + (AGESA_ENTRY_INIT_LATE == TRUE) || (AGESA_ENTRY_INIT_S3SAVE == TRUE) || (AGESA_ENTRY_INIT_RESUME == TRUE) || \ + (AGESA_ENTRY_INIT_LATE_RESTORE == TRUE) || (AGESA_ENTRY_INIT_GENERAL_SERVICES == TRUE) + #ifdef CpuSrvcGetStoredNodeNumber + #define FinalCpuSrvcGetStoredNodeNumber CpuSrvcGetStoredNodeNumber + extern F_CPU_GET_STORED_NODE_NUMBER FinalCpuSrvcGetStoredNodeNumber; + #else + #define FinalCpuSrvcGetStoredNodeNumber FinalDfltCpuSrvcGetStoredNodeNumber + #endif +#else + #define FinalCpuSrvcGetStoredNodeNumber FinalDfltAssertCpuSrvcGetStoredNodeNumber +#endif + +// Member: (PF_CORE_ID_POSITION_IN_INITIAL_APIC_ID) CoreIdPositionInInitialApicId +#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || \ + (AGESA_ENTRY_INIT_POST == TRUE) || (AGESA_ENTRY_INIT_GENERAL_SERVICES == TRUE) + #ifdef CpuSrvcCoreIdPositionInInitialApicId + #define FinalCpuSrvcCoreIdPositionInInitialApicId CpuSrvcCoreIdPositionInInitialApicId + #ifndef EXTERN_FINALCPUSRVCCOREIDPOSITIONININITIALAPICID + #define EXTERN_FINALCPUSRVCCOREIDPOSITIONININITIALAPICID + extern F_CORE_ID_POSITION_IN_INITIAL_APIC_ID FinalCpuSrvcCoreIdPositionInInitialApicId; + #endif + #else + #define FinalCpuSrvcCoreIdPositionInInitialApicId FinalDfltCpuSrvcoreIdPositionInInitialApicId + #endif +#else + #define FinalCpuSrvcCoreIdPositionInInitialApicId FinalDfltAssertCpuSrvcCoreIdPositionInInitialApicId +#endif + +// Member: (PF_CPU_SAVE_FEATURES) SaveFeatures +#if (AGESA_ENTRY_INIT_POST == TRUE) + #ifdef CpuSrvcSaveFeatures + #define FinalCpuSrvcSaveFeatures CpuSrvcSaveFeatures + extern F_CPU_SAVE_FEATURES FinalCpuSrvcSaveFeatures; + #else + #define FinalCpuSrvcSaveFeatures FinalDfltCpuSrvcSaveFeatures + #endif +#else + #define FinalCpuSrvcSaveFeatures FinalDfltAssertCpuSrvcSaveFeatures +#endif + +// Member: (PF_CPU_WRITE_FEATURES) WriteFeatures +#if (AGESA_ENTRY_INIT_POST == TRUE) + #ifdef CpuSrvcWriteFeatures + #define FinalCpuSrvcWriteFeatures CpuSrvcWriteFeatures + extern F_CPU_WRITE_FEATURES FinalCpuSrvcWriteFeatures; + #else + #define FinalCpuSrvcWriteFeatures FinalDfltCpuSrvcWriteFeatures + #endif +#else + #define FinalCpuSrvcWriteFeatures FinalDfltAssertCpuSrvcWriteFeatures +#endif + +// Member: (PF_CPU_SET_WARM_RESET_FLAG) SetWarmResetFlag +#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE) + #ifdef CpuSrvcSetWarmResetFlag + #define FinalCpuSrvcSetWarmResetFlag CpuSrvcSetWarmResetFlag + #ifndef EXTERN_FINALCPUSRVCSETWARMRESETFLAG + #define EXTERN_FINALCPUSRVCSETWARMRESETFLAG + extern F_CPU_SET_WARM_RESET_FLAG FinalCpuSrvcSetWarmResetFlag; + #endif + #else + #define FinalCpuSrvcSetWarmResetFlag FinalDfltCpuSrvcSetWarmResetFlag + #endif +#else + #define FinalCpuSrvcSetWarmResetFlag FinalDfltAssertCpuSrvcSetWarmResetFlag +#endif + +// Member: (PF_CPU_GET_WARM_RESET_FLAG) GetWarmResetFlag +#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE) + #ifdef CpuSrvcGetWarmResetFlag + #define FinalCpuSrvcGetWarmResetFlag CpuSrvcGetWarmResetFlag + #ifndef EXTERN_FINALCPUSRVCGETWARMRESETFLAG + #define EXTERN_FINALCPUSRVCGETWARMRESETFLAG + extern F_CPU_GET_WARM_RESET_FLAG FinalCpuSrvcGetWarmResetFlag; + #endif + #else + #define FinalCpuSrvcGetWarmResetFlag FinalDfltCpuSrvcGetWarmResetFlag + #endif +#else + #define FinalCpuSrvcGetWarmResetFlag FinalDfltAssertCpuSrvcGetWarmResetFlag +#endif + +// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetBrandString1 +#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE) + #ifdef CpuSrvcGetBrandString1 + #define FinalCpuSrvcGetBrandString1 CpuSrvcGetBrandString1 + extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetBrandString1; + #else + #define FinalCpuSrvcGetBrandString1 FinalDfltCpuSrvcGetBrandString1 + #endif +#else + #define FinalCpuSrvcGetBrandString1 FinalDfltAssertCpuSrvcGetBrandString1 +#endif + +// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetBrandString2 +#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE) + #ifdef CpuSrvcGetBrandString2 + #define FinalCpuSrvcGetBrandString2 CpuSrvcGetBrandString2 + extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetBrandString2; + #else + #define FinalCpuSrvcGetBrandString2 FinalDfltCpuSrvcGetBrandString2 + #endif +#else + #define FinalCpuSrvcGetBrandString2 FinalDfltAssertCpuSrvcGetBrandString2 +#endif + +// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetMicroCodePatchesStruct +#if (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) + #ifdef CpuSrvcGetMicroCodePatchesStruct + #define FinalCpuSrvcGetMicroCodePatchesStruct CpuSrvcGetMicroCodePatchesStruct + #ifndef EXTERN_FINALCPUSRVCGETMICROCODEPATCHESSTRUCT + #define EXTERN_FINALCPUSRVCGETMICROCODEPATCHESSTRUCT + extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetMicroCodePatchesStruct; + #endif + #else + #define FinalCpuSrvcGetMicroCodePatchesStruct FinalDfltCpuSrvcGetMicroCodePatchesStruct + #endif +#else + #define FinalCpuSrvcGetMicroCodePatchesStruct FinalDfltAssertCpuSrvcGetMicroCodePatchesStruct +#endif + +// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetMicrocodeEquivalenceTable +#if (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) + #ifdef CpuSrvcGetMicrocodeEquivalenceTable + #define FinalCpuSrvcGetMicrocodeEquivalenceTable CpuSrvcGetMicrocodeEquivalenceTable + #ifndef EXTERN_FINALCPUSRVCGETMICROCODEEQUIVALENCETABLE + #define EXTERN_FINALCPUSRVCGETMICROCODEEQUIVALENCETABLE + extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetMicrocodeEquivalenceTable; + #endif + #else + #define FinalCpuSrvcGetMicrocodeEquivalenceTable FinalDfltCpuSrvcGetMicrocodeEquivalenceTable + #endif +#else + #define FinalCpuSrvcGetMicrocodeEquivalenceTable FinalDfltAssertCpuSrvcGetMicrocodeEquivalenceTable +#endif + +// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetCacheInfo +#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) + #ifdef CpuSrvcGetCacheInfo + #define FinalCpuSrvcGetCacheInfo CpuSrvcGetCacheInfo + extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetCacheInfo; + #else + #define FinalCpuSrvcGetCacheInfo FinalDfltCpuSrvcGetCacheInfo + #endif +#else + #define FinalCpuSrvcGetCacheInfo FinalDfltAssertCpuSrvcGetCacheInfo +#endif + +// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetSysPmTableStruct +#if AGESA_ENTRY_INIT_EARLY == TRUE + #ifdef CpuSrvcGetSysPmTableStruct + #define FinalCpuSrvcGetSysPmTableStruct CpuSrvcGetSysPmTableStruct + extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetSysPmTableStruct; + #else + #define FinalCpuSrvcGetSysPmTableStruct FinalDfltCpuSrvcGetSysPmTableStruct + #endif +#else + #define FinalCpuSrvcGetSysPmTableStruct FinalDfltAssertCpuSrvcGetSysPmTableStruct +#endif + +// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetWheaInitData +#if AGESA_ENTRY_INIT_LATE == TRUE + #ifdef CpuSrvcGetWheaInitData + #define FinalCpuSrvcGetWheaInitData CpuSrvcGetWheaInitData + #ifndef EXTERN_FINALCPUSRVCGETWHEAINITDATA + #define EXTERN_FINALCPUSRVCGETWHEAINITDATA + extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetWheaInitData; + #endif + #else + #define FinalCpuSrvcGetWheaInitData FinalDfltCpuSrvcGetWheaInitData + #endif +#else + #define FinalCpuSrvcGetWheaInitData FinalDfltAssertCpuSrvcGetWheaInitData +#endif + +// Member: (PF_CPU_GET_PLATFORM_TYPE_SPECIFIC_INFO) GetPlatformTypeSpecificInfo +#if (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE) + #ifdef CpuSrvcGetPlatformTypeSpecificInfo + #define FinalCpuSrvcGetPlatformTypeSpecificInfo CpuSrvcGetPlatformTypeSpecificInfo + extern F_CPU_GET_PLATFORM_TYPE_SPECIFIC_INFO FinalCpuSrvcGetPlatformTypeSpecificInfo; + #else + #define FinalCpuSrvcGetPlatformTypeSpecificInfo FinalDfltCpuSrvcGetPlatformTypeSpecificInfo + #endif +#else + #define FinalCpuSrvcGetPlatformTypeSpecificInfo FinalDfltAssertCpuSrvcGetPlatformTypeSpecificInfo +#endif + +// Member: (PF_IS_NB_PSTATE_ENABLED) IsNbPstateEnabled +#if (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE) + #ifdef CpuSrvcIsNbPstateEnabled + #define FinalCpuSrvcIsNbPstateEnabled CpuSrvcIsNbPstateEnabled + extern F_IS_NB_PSTATE_ENABLED FinalCpuSrvcIsNbPstateEnabled; + #else + #define FinalCpuSrvcIsNbPstateEnabled FinalDfltCpuSrvcIsNbPstateEnabled + #endif +#else + #define FinalCpuSrvcIsNbPstateEnabled FinalDfltAssertCpuSrvcIsNbPstateEnabled +#endif + +// Member: (PF_NEXT_LINK_HAS_HTFPY_FEATS) NextLinkHasHtPhyFeats +#if BASE_FAMILY_HT_PCI == TRUE + #ifdef CpuSrvcNextLinkHasHtPhyFeats + #define FinalCpuSrvcNextLinkHasHtPhyFeats CpuSrvcNextLinkHasHtPhyFeats + extern F_NEXT_LINK_HAS_HTPHY_FEATS FinalCpuSrvcNextLinkHasHtPhyFeats; + #else + #define FinalCpuSrvcNextLinkHasHtPhyFeats FinalDfltCpuSrvcNextLinkHasHtPhyFeats + #endif +#else + #define FinalCpuSrvcNextLinkHasHtPhyFeats FinalDfltAssertCpuSrvcNextLinkHasHtPhyFeats +#endif + +// Member: (PF_SET_HT_PHY_REGISTER) SetHtPhyRegister +#if BASE_FAMILY_HT_PCI == TRUE + #ifdef CpuSrvcSetHtPhyRegister + #define FinalCpuSrvcSetHtPhyRegister CpuSrvcSetHtPhyRegister + extern F_SET_HT_PHY_REGISTER FinalCpuSrvcSetHtPhyRegister; + #else + #define FinalCpuSrvcSetHtPhyRegister FinalDfltCpuSrvcSetHtPhyRegister + #endif +#else + #define FinalCpuSrvcSetHtPhyRegister FinalDfltAssertCpuSrvcSetHtPhyRegister +#endif + +// Member: (PF_GET_NEXT_HT_LINK_FEATURES) GetNextHtLinkFeatures +#if BASE_FAMILY_PCI == TRUE + #ifdef CpuSrvcGetNextHtLinkFeatures + #define FinalCpuSrvcGetNextHtLinkFeatures CpuSrvcGetNextHtLinkFeatures + extern F_GET_NEXT_HT_LINK_FEATURES FinalCpuSrvcGetNextHtLinkFeatures; + #else + #define FinalCpuSrvcGetNextHtLinkFeatures FinalDfltCpuSrvcGetNextHtLinkFeatures + #endif +#else + #define FinalCpuSrvcGetNextHtLinkFeatures FinalDfltAssertCpuSrvcGetNextHtLinkFeatures +#endif + +// Member: (REGISTER_TABLE **) RegisterTableList +#if USES_REGISTER_TABLES == TRUE // (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) + #ifdef CpuSrvcRegisterTableList + #define FinalCpuSrvcRegisterTableList CpuSrvcRegisterTableList + #else + #define FinalCpuSrvcRegisterTableList FinalDfltCpuSrvcRegisterTableList + #endif +#else + #define FinalCpuSrvcRegisterTableList FinalDfltAssertCpuSrvcRegisterTableList +#endif + +// Member: (TABLE_ENTRY_TYPE_DESCRIPTOR *) TableEntryTypeDescriptors +#if USES_REGISTER_TABLES == TRUE // (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) + #ifdef CpuSrvcTableEntryTypeDescriptors + #define FinalCpuSrvcTableEntryTypeDescriptors CpuSrvcTableEntryTypeDescriptors + #else + #define FinalCpuSrvcTableEntryTypeDescriptors FinalDfltCpuSrvcTableEntryTypeDescriptors + #endif +#else + #define FinalCpuSrvcTableEntryTypeDescriptors FinalDfltAssertCpuSrvcTableEntryTypeDescriptors +#endif + +// Member: (PACKAGE_HTLINK_MAP) PackageLinkMap +#if MODEL_SPECIFIC_HT_PCI == TRUE + #ifdef CpuSrvcPackageLinkMap + #define FinalCpuSrvcPackageLinkMap CpuSrvcPackageLinkMap + #else + #define FinalCpuSrvcPackageLinkMap FinalDfltCpuSrvcPackageLinkMap + #endif +#else + #define FinalCpuSrvcPackageLinkMap FinalDfltAssertCpuSrvcPackageLinkMap +#endif + +// Member: (COMPUTE_UNIT_MAP *) ComputeUnitMap +#ifdef CpuSrvcComputeUnitMap + #define FinalCpuSrvcComputeUnitMap CpuSrvcComputeUnitMap +#else + #define FinalCpuSrvcComputeUnitMap FinalDfltCpuSrvcComputeUnitMap +#endif + +// Member: (FAMILY_CACHE_INIT_POLICY) InitCacheDisabled +#ifdef CpuSrvcInitCacheDisabled + #define FinalCpuSrvcInitCacheDisabled CpuSrvcInitCacheDisabled +#else + #define FinalCpuSrvcInitCacheDisabled FinalDfltCpuSrvcInitCacheDisabled +#endif + +// Member: (PF_GET_EARLY_INIT_TABLE) GetEarlyInitBeforeApLaunchOnCoreTable +#if AGESA_ENTRY_INIT_EARLY == TRUE + #ifdef CpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable + #define FinalCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable CpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable + extern F_GET_EARLY_INIT_TABLE FinalCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable; + #else + #define FinalCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable FinalDfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable + #endif +#else + #define FinalCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable FinalDfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable +#endif + +// Member: (PF_GET_EARLY_INIT_TABLE) GetEarlyInitAfterApLaunchOnCoreTable +#if AGESA_ENTRY_INIT_EARLY == TRUE + #ifdef CpuSrvcGetEarlyInitAfterApLaunchOnCoreTable + #define FinalCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable CpuSrvcGetEarlyInitAfterApLaunchOnCoreTable + extern F_GET_EARLY_INIT_TABLE FinalCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable; + #else + #define FinalCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable FinalDfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable + #endif +#else + #define FinalCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable FinalDfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable +#endif + +// Member: (BOOLEAN) PatchLoaderIsSharedByCU +#if (AGESA_ENTRY_INIT_RECOVERY == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) + #ifdef CpuSrvcPatchLoaderIsSharedByCU + #define FinalCpuSrvcPatchLoaderIsSharedByCU CpuSrvcPatchLoaderIsSharedByCU + #else + #define FinalCpuSrvcPatchLoaderIsSharedByCU FinalDfltCpuSrvcPatchLoaderIsSharedByCU + #endif +#else + #define FinalCpuSrvcPatchLoaderIsSharedByCU FinalDfltAssertCpuSrvcPatchLoaderIsSharedByCU +#endif + +// +// NOTE: All CPU family specific service members should be all defined now. +// + +// +// Define CPU specific services installation macro +// +#ifndef _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_NAME_ + #define _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_NAME_ + + #define INSTALL_CPU_SPECIFIC_SERVICES_TABLE_NAME(MacroPrefix, TableName) \ + CONST CPU_SPECIFIC_SERVICES ROMDATA TableName = \ + { \ + MacroPrefix##CpuSrvcRevision, \ + MacroPrefix##CpuSrvcDisablePstate, \ + MacroPrefix##CpuSrvcTransitionPstate, \ + MacroPrefix##CpuSrvcGetProcIddMax, \ + MacroPrefix##CpuSrvcGetTscRate, \ + MacroPrefix##CpuSrvcGetCurrentNbFrequency, \ + MacroPrefix##CpuSrvcGetMinMaxNbFrequency, \ + MacroPrefix##CpuSrvcGetNbPstateInfo, \ + MacroPrefix##CpuSrvcIsNbCofInitNeeded, \ + MacroPrefix##CpuSrvcGetNbIddMax, \ + MacroPrefix##CpuSrvcLaunchApCore, \ + MacroPrefix##CpuSrvcGetNumberOfPhysicalCores, \ + MacroPrefix##CpuSrvcGetApMailboxFromHardware, \ + MacroPrefix##CpuSrvcSetApCoreNumber, \ + MacroPrefix##CpuSrvcGetApCoreNumber, \ + MacroPrefix##CpuSrvcTransferApCoreNumber, \ + MacroPrefix##CpuSrvcGetStoredNodeNumber, \ + MacroPrefix##CpuSrvcCoreIdPositionInInitialApicId, \ + MacroPrefix##CpuSrvcSaveFeatures, \ + MacroPrefix##CpuSrvcWriteFeatures, \ + MacroPrefix##CpuSrvcSetWarmResetFlag, \ + MacroPrefix##CpuSrvcGetWarmResetFlag, \ + MacroPrefix##CpuSrvcGetBrandString1, \ + MacroPrefix##CpuSrvcGetBrandString2, \ + MacroPrefix##CpuSrvcGetMicroCodePatchesStruct, \ + MacroPrefix##CpuSrvcGetMicrocodeEquivalenceTable, \ + MacroPrefix##CpuSrvcGetCacheInfo, \ + MacroPrefix##CpuSrvcGetSysPmTableStruct, \ + MacroPrefix##CpuSrvcGetWheaInitData, \ + MacroPrefix##CpuSrvcGetPlatformTypeSpecificInfo, \ + MacroPrefix##CpuSrvcIsNbPstateEnabled, \ + MacroPrefix##CpuSrvcNextLinkHasHtPhyFeats, \ + MacroPrefix##CpuSrvcSetHtPhyRegister, \ + MacroPrefix##CpuSrvcGetNextHtLinkFeatures, \ + MacroPrefix##CpuSrvcRegisterTableList, \ + MacroPrefix##CpuSrvcTableEntryTypeDescriptors, \ + MacroPrefix##CpuSrvcPackageLinkMap, \ + MacroPrefix##CpuSrvcComputeUnitMap, \ + MacroPrefix##CpuSrvcInitCacheDisabled, \ + MacroPrefix##CpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable, \ + MacroPrefix##CpuSrvcGetEarlyInitAfterApLaunchOnCoreTable, \ + MacroPrefix##CpuSrvcPatchLoaderIsSharedByCU \ + } +#endif // _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_NAME_ + +#ifndef _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_ + #define _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_ + + #define INSTALL_CPU_SPECIFIC_SERVICES_TABLE(TableName) \ + INSTALL_CPU_SPECIFIC_SERVICES_TABLE_NAME (Final, TableName) +#endif // _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_ + +// +// Message out the final table definitions +// + -- cgit v1.2.3