summaryrefslogtreecommitdiff
path: root/Core/EM/NVRAM/NVRAM.mak
diff options
context:
space:
mode:
Diffstat (limited to 'Core/EM/NVRAM/NVRAM.mak')
-rw-r--r--Core/EM/NVRAM/NVRAM.mak225
1 files changed, 225 insertions, 0 deletions
diff --git a/Core/EM/NVRAM/NVRAM.mak b/Core/EM/NVRAM/NVRAM.mak
new file mode 100644
index 0000000..43d544b
--- /dev/null
+++ b/Core/EM/NVRAM/NVRAM.mak
@@ -0,0 +1,225 @@
+#**********************************************************************
+#**********************************************************************
+#** **
+#** (C)Copyright 1985-2009, American Megatrends, Inc. **
+#** **
+#** All Rights Reserved. **
+#** **
+#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+#** **
+#** Phone: (770)-246-8600 **
+#** **
+#**********************************************************************
+#**********************************************************************
+
+#**********************************************************************
+# $Header: /Alaska/SOURCE/Core/Modules/NVRAM/NVRAM.mak 12 1/14/14 5:45p Oleksiyy $
+#
+# $Revision: 12 $
+#
+# $Date: 1/14/14 5:45p $
+#**********************************************************************
+# Revision History
+# ----------------
+# $Log: /Alaska/SOURCE/Core/Modules/NVRAM/NVRAM.mak $
+#
+# 12 1/14/14 5:45p Oleksiyy
+# [TAG] EIP121524
+# [Category] New Feature
+# [Description] Extended Aptio functionality for clearing or restoring
+# NVRAM to factory default state (preserving only selected Vars).
+# [Files] NVRAM.sdl
+# NVRAM.mak
+# NVRAMDXE.c
+# NVRAM.cif
+#
+# 11 11/07/12 5:42p Oleksiyy
+# [TAG] EIP98678
+# [Category] Improvement
+# [Description] GetVariable() response slow. Added token to process
+# only SetVariable through SMI.
+# [Files] NvramSmi.c, NvramSmi.sdl and NVRAM.mak
+#
+# 10 11/11/11 3:23p Felixp
+# Set DO_NOT_ACCESS_DATA_OUTSIDE_OF_SMM_AT_RUNTIME macro when NvramSmi
+# eModule is in the project.
+#
+# 9 2/04/10 3:58p Felixp
+# Hook eLinks are renamed
+#
+# 8 2/02/10 5:14p Oleksiyy
+# EIP 33263 : Hooks for SetVariable, GetVariable and GetNextVarName
+# added
+#
+# 7 5/01/09 6:13p Felixp
+# Bug fix(EIP 19816). $(AMICSPLib) is no longer linked with NVRAM
+# libraries.
+# (it caused problems on systems without Core Sources).
+# $(AMICSPLib) is linked with Runtime and CORE_PEI instead.
+#
+# 6 10/09/08 11:47a Felixp
+# 1. Fault tolerant NVRAM garbage collection support is added.
+# Use FAULT_TOLERANT_NVRAM_UPDATE SDL token to enable/disable (disabled
+# by default).
+# NOTE: This feature requires upgrade of the Board module.
+# NOTE: This feature requires porting:
+# Fault tolerant update requires reserved flash area of size NVRAM_SIZE
+# used for back up during NVRAM garbage collection.
+# The address of the area is defined by NVRAM_BACKUP_ADDRESS SDL token
+# defined in Board.sdl.
+# Size and Base addresses of other firmware volumes may need to be
+# adjusted to free up space for the NVRAM back up area.
+# Default ROM layout expects NVRAM back up area immediately below the
+# main NVRAM area.
+# For projects with the customized ROM layout Core.mak has to be updated.
+# 2. Top level NVRAM function updated to be reentrance-safe.
+# NOTE: This feature requires upgrade of the SB module.
+# 3. Improved recovery from the flash programming failures and
+# corruptions within NVRAM area.
+# 4. More reliable non-fault tolerant garbage collection.
+#
+# 5 9/06/07 12:14a Felixp
+#
+# 4 8/31/07 3:44p Felixp
+# NVRAM code has been significantly changed to introduce the following
+# improvements:
+# 1. The code is chaned to always use the same amount of memory.
+# Previous implementation allocated memory as needed, which caused
+# occasional S4 problems.
+# Plus S4 resume never worked during the very first boot after the
+# firmware update.
+# 2. Support for NVRAM defaults added.
+# NVRAM image with the default values for the Setup variables is now
+# generated by the build process.
+# The image is generated by the HpkTool (included into AMITSE module
+# part).
+# In addition to standard Setup defaults it is also possible
+# to generate manufactoring defaults. Support for the manufactoring
+# defaults
+# is disabled by default and can be enabled using
+# MANUFACTURING_MODE_SUPPORT SDL token.
+# 3. Support for boot with alternative configurations is added.
+# Decision to switch to the alternative configuration
+# (alternative set of values for NVRAM variables)
+# is based on values returned by the porintg routine in OemPort.c.
+# During boot with alternative configurations GetVariable service
+# returns alternative values for the setup-related variables.
+# If variable does not have an alternative value, current value is
+# returned.
+# Two alternative configurations are supported:
+# Boot with manufactoring settings(activated when IsMfgMode routine in
+# OemPort.c returns TRUE).
+# Boot with default settings(activated when IsDefaultConfigMode routine
+# in OemPort.c returns TRUE).
+# NOTE: This feature requires of the Board module
+# 4.NVRAM reset option is added.
+# If porting routine IsResetConfigMode in OemPort.c returns TRUE in PEI
+# phase,
+# NVRAM content will be reset during initialization of the DXE NVRAM
+# driver.
+# During reset operation all setup-related variables are reset to their
+# default values.
+# All other variables are deleted.
+# NOTE: This feature requires upgrade of the Board module
+# 5.Detection of NVRAM update added.
+# NVRAM implementation detects if NVRAM has been updated since the last
+# NVRAM call.
+# This provides ability to use variables services before and after
+# firmware update.
+# 6.Overall code clean up and simplification.
+# 7.Core Sources are no longer required in order to use NV_SIMULATION
+# option.
+# 8.PI 1.0 support.
+# Support for a PI 1.0 complient variable PPI is added. Old PPI is still
+# preserved in this label for backward compatibility.
+# New library routines PeiGetVariable and PeiGetNextVariableName are
+# created in order to hide the differences between two PPIs.
+# It is recommended to update existing code to use new library routines.
+# Support of the old PPI may be dropped in the future versions of Core.
+# 9. NVRAM is now packaged as a raw FFS file embedded into the standard
+# FV (used to be non-standard FV with raw NVRAM image).
+# Validation: New NVRAM code has been validated using SCT and EFI version
+# of Windows Server 2008
+# Files modified: Core.sdl, Core.mak, AmiPeiLib.h, PeiLib.c,
+# ReadOnlyVariable.h, , Token.c, HpkTool.exe, AMITSE.mak, Setup.ini,
+# NVRAM.sdl, NVRAM.mak, NVRAM.h, NVRAMRead.c, NVRAMPEI.c,
+# NVRAMDXE.c
+#
+# 3 10/13/06 1:27a Felixp
+#
+# 2 8/25/06 10:59a Felixp
+#
+# 1 8/24/06 12:38p Felixp
+#
+#**********************************************************************
+#<AMI_FHDR_START>
+#
+# Name: NVRAM.mak
+#
+# Description:
+#
+#<AMI_FHDR_END>
+#**********************************************************************
+all : NvramPei NvramDxe
+
+NVRAM_PEI_OBJECTS=\
+$$(BUILD_DIR)\$(NVRAM_DIR)\NVRAMRead.obj\
+$$(BUILD_DIR)\$(NVRAM_DIR)\NVRAMPEI.obj
+
+NVRAM_DXE_OBJECTS=\
+$$(BUILD_DIR)\$(NVRAM_DIR)\NVRAMRead.obj\
+$$(BUILD_DIR)\$(NVRAM_DIR)\NVRAMDXE.obj
+
+$(BUILD_DIR)\NVRAM.mak : $(NVRAM_DIR)\$(@B).cif $(NVRAM_DIR)\$(@B).mak $(BUILD_RULES)
+ $(CIF2MAK) $(NVRAM_DIR)\$(@B).cif $(CIF2MAK_DEFAULTS)
+
+Runtime_LIBBin : $(BUILD_DIR)\NVRAMDXE.lib
+CORE_PEI_LIBBin : $(BUILD_DIR)\NVRAMPEI.lib
+
+$(BUILD_DIR)\NVRAMDXE.lib : NvramDxe
+$(BUILD_DIR)\NVRAMPEI.lib : NvramPei
+
+NvramDxe : $(BUILD_DIR)\NVRAM.mak NvramDxeBin
+NvramPei : $(BUILD_DIR)\NVRAM.mak NvramPeiBin
+
+NvramDxeBin :
+ $(ECHO) #define NVRAM_PRESERVE_VARIABLES_LIST $(NvramPreserveVariables) > $(BUILD_DIR)\NvramPreserveList.h
+ $(MAKE) /$(MAKEFLAGS) $(BUILD_DEFAULTS)\
+ /f $(BUILD_DIR)\NVRAM.mak all\
+ "OBJECTS=$(NVRAM_DXE_OBJECTS)"\
+ "EXT_HEADERS=$(BUILD_DIR)\token.h\
+ $(BUILD_DIR)\NvramPreserveList.h" \
+ TYPE=LIBRARY LIBRARY_NAME=$(BUILD_DIR)\NVRAMDXE.lib\
+ "MY_DEFINES=/D\"GET_VAR_LIST=$(GetVariableHook)\"\
+ /D\"GET_NEXT_VAR_NAME_LIST=$(GetNextVariableNameHook)\"\
+!IF "$(NvramSmiSupport)"=="1" && "$(NVRAM_SMI_FULL_PROTECTION)"=="1"
+ /D\"DO_NOT_ACCESS_DATA_OUTSIDE_OF_SMM_AT_RUNTIME=1\"\
+!ENDIF
+ /D\"SET_VAR_LIST=$(SetVariableHook)\""
+
+NvramPeiBin :
+ $(MAKE) /$(MAKEFLAGS) $(BUILD_DEFAULTS)\
+ /f $(BUILD_DIR)\NVRAM.mak all\
+!IF "$(x64_BUILD)"=="1"
+ BUILD_DIR=$(BUILD_DIR)\IA32\
+!ELSE
+ BUILD_DIR=$(BUILD_DIR)\
+!ENDIF
+ "OBJECTS=$(NVRAM_PEI_OBJECTS)"\
+ TYPE=PEI_LIBRARY LIBRARY_NAME=$(BUILD_DIR)\NVRAMPEI.lib\
+ "MY_DEFINES=/D\"PEI_GET_VAR_LIST=$(PeiGetVariableHook)\"\
+ /D\"PEI_GET_NEXT_VAR_NAME_LIST=$(PeiGetNextVariableNameHook)\""
+
+#**********************************************************************
+#**********************************************************************
+#** **
+#** (C)Copyright 1985-2009, American Megatrends, Inc. **
+#** **
+#** All Rights Reserved. **
+#** **
+#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+#** **
+#** Phone: (770)-246-8600 **
+#** **
+#**********************************************************************
+#********************************************************************** \ No newline at end of file