mirror of https://github.com/acidanthera/audk.git
UefiCpuPkg/MicrocodeUpdate: Add Microcode FMP build sample
This folder provides the sample build for Microcode FMP. The DSC/FDF is to convert the Microcode binary/text to Microcode FMP. Cc: Jeff Fan <jeff.fan@intel.com> Cc: Feng Tian <feng.tian@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Chao Zhang <chao.b.zhang@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
This commit is contained in:
parent
882668595c
commit
bb7c65bd03
|
@ -0,0 +1,32 @@
|
|||
## @file
|
||||
#
|
||||
# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
#
|
||||
# Uncomment the following line and update with your platform pkg name
|
||||
#
|
||||
# PLATFORM_NAME = <PlatformPkg>
|
||||
PLATFORM_GUID = 6875FD33-602E-4EF9-9DF2-8BA7D8B7A7AF
|
||||
PLATFORM_VERSION = 0.1
|
||||
#
|
||||
# Uncomment the following line and update with your platform pkg name
|
||||
#
|
||||
# FLASH_DEFINITION = <PlatformPkg>/MicrocodeCapsulePdb/MicrocodeCapsulePdb.fdf
|
||||
#
|
||||
# Uncomment the following line and update with your platform pkg name
|
||||
#
|
||||
# OUTPUT_DIRECTORY = Build/<PlatformPkg>
|
||||
SUPPORTED_ARCHITECTURES = IA32|X64
|
||||
BUILD_TARGETS = DEBUG|RELEASE
|
||||
SKUID_IDENTIFIER = DEFAULT
|
|
@ -0,0 +1,32 @@
|
|||
## @file
|
||||
#
|
||||
# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
##
|
||||
|
||||
[FmpPayload.FmpPayloadMicrocode1]
|
||||
IMAGE_HEADER_INIT_VERSION = 0x02
|
||||
IMAGE_TYPE_ID = 96d4fdcd-1502-424d-9d4c-9b12d2dcae5c # Microcode GUID (do not change it)
|
||||
IMAGE_INDEX = 0x1
|
||||
HARDWARE_INSTANCE = 0x0
|
||||
|
||||
#
|
||||
# Uncomment the following line and update with path to Microcode PDB file
|
||||
#
|
||||
#FILE DATA = $(WORKSPACE)/<PlatformPkg>/Microcode/Microcode.pdb
|
||||
|
||||
[Capsule.MicrocodeCapsule]
|
||||
CAPSULE_GUID = 6dcbd5ed-e82d-4c44-bda1-7194199ad92a # FMP special Guid (do not change it)
|
||||
CAPSULE_FLAGS = PersistAcrossReset,InitiateReset
|
||||
CAPSULE_HEADER_SIZE = 0x20
|
||||
CAPSULE_HEADER_INIT_VERSION = 0x1
|
||||
|
||||
FMP_PAYLOAD = FmpPayloadMicrocode1
|
|
@ -0,0 +1,20 @@
|
|||
# How to generate Microcode FMP from Microcode PDB file
|
||||
|
||||
1) Copy directory `UefiCpuPkg/Feature/Capsule/MicrocodeUpdatePdb` to `<Your Platform Package>/MicrocodeUpdatePdb`.
|
||||
|
||||
2) Uncomment and update `FILE DATA` statement in `<Your Platform Package>/MicrocodeUpdatePdb/MicrocodeCapsulePdb.fdf` with path to a Microcode PDB file. The PDB file can placed in `<Your Platform Package>/MicrocodeUpdatePdb` or any other path.
|
||||
|
||||
`FILE DATA = <your Microcode PDB file path>`
|
||||
|
||||
Uncomment and update `PLATFORM_NAME`, `FLASH_DEFINITION`, `OUTPUT_DIRECTORY` section in `<Your Platform Package>/MicrocodeUpdatePdb/MicrocodeCapsulePdb.dsc` with <Your Platform Package>.
|
||||
|
||||
PLATFORM_NAME = <Your Platform Package>
|
||||
FLASH_DEFINITION = <Your Platform Package>/MicrocodeCapsulePdb/MicrocodeCapsulePdb.fdf
|
||||
OUTPUT_DIRECTORY = Build/<Your Platform Package>
|
||||
|
||||
3) Use EDK II build tools to generate the Microcode FMP Capsule
|
||||
|
||||
`build -p <Your Platform Package>/MicrocodeCapsulePdb/MicrocodeCapsulePdb.dsc`
|
||||
|
||||
4) The Microcode FMP Capsule is generated at `$(WORKSPACE)/$(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/FV/MicrocodeCapsule.Cap`
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
## @file
|
||||
# Microcode text file to binary
|
||||
#
|
||||
# Convert text format microcode to binary format.
|
||||
#
|
||||
# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
BASE_NAME = Microcode
|
||||
FILE_GUID = ABC36AAC-2031-4422-896E-0A3B899AD0B4
|
||||
COMPONENT_TYPE = Microcode
|
||||
FFS_EXT = .ffs
|
||||
|
||||
[Sources]
|
||||
#
|
||||
# Uncomment the following line and update with name of Microcode TXT file
|
||||
#
|
||||
#Microcode.txt
|
|
@ -0,0 +1,38 @@
|
|||
## @file
|
||||
#
|
||||
# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
#
|
||||
# Uncomment the following line and update with your platform pkg name
|
||||
#
|
||||
# PLATFORM_NAME = <PlatformPkg>
|
||||
PLATFORM_GUID = 6875FD33-602E-4EF9-9DF2-8BA7D8B7A7AF
|
||||
PLATFORM_VERSION = 0.1
|
||||
#
|
||||
# Uncomment the following line and update with your platform pkg name
|
||||
#
|
||||
# FLASH_DEFINITION = <PlatformPkg>/MicrocodeCapsuleTxt/MicrocodeCapsuleTxt.fdf
|
||||
#
|
||||
# Uncomment the following line and update with your platform pkg name
|
||||
#
|
||||
# OUTPUT_DIRECTORY = Build/<PlatformPkg>
|
||||
SUPPORTED_ARCHITECTURES = IA32|X64
|
||||
BUILD_TARGETS = DEBUG|RELEASE
|
||||
SKUID_IDENTIFIER = DEFAULT
|
||||
|
||||
[Components]
|
||||
#
|
||||
# Uncomment the following line and update with path to Microcode INF file
|
||||
#
|
||||
# <PlatformPkg>/MicrocodeCapsuleTxt/Microcode/Microcode.inf
|
|
@ -0,0 +1,32 @@
|
|||
## @file
|
||||
#
|
||||
# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
##
|
||||
|
||||
[FmpPayload.FmpPayloadMicrocode1]
|
||||
IMAGE_HEADER_INIT_VERSION = 0x02
|
||||
IMAGE_TYPE_ID = 96d4fdcd-1502-424d-9d4c-9b12d2dcae5c # Microcode GUID (do not change it)
|
||||
IMAGE_INDEX = 0x1
|
||||
HARDWARE_INSTANCE = 0x0
|
||||
|
||||
#
|
||||
# Uncomment the following line and update with path to Microcode MCB file
|
||||
#
|
||||
#FILE DATA = $(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/IA32/PlatformPkg/MicrocodeCapsuleTxt/Microcode/Microcode/OUTPUT/Microcode.mcb
|
||||
|
||||
[Capsule.MicrocodeCapsule]
|
||||
CAPSULE_GUID = 6dcbd5ed-e82d-4c44-bda1-7194199ad92a # FMP special Guid (do not change it)
|
||||
CAPSULE_FLAGS = PersistAcrossReset,InitiateReset
|
||||
CAPSULE_HEADER_SIZE = 0x20
|
||||
CAPSULE_HEADER_INIT_VERSION = 0x1
|
||||
|
||||
FMP_PAYLOAD = FmpPayloadMicrocode1
|
|
@ -0,0 +1,33 @@
|
|||
# How to generate Microcode FMP from Microcode TXT file
|
||||
|
||||
1) Copy directory `UefiCpuPkg/Feature/Capsule/MicrocodeUpdateTxt` to `<Your Platform Package>/MicrocodeUpdateTxt`
|
||||
|
||||
2) Copy microcode TXT file to`<Your Platform Package>/MicrocodeUpdateTxt/Microcode`
|
||||
|
||||
3) Uncomment and update statement in `[Sources]` section of `<Your Platform Package>/MicrocodeUpdateTxt/Microcode/Microcode.inf` with name of Microcode TXT file copied in previous step.
|
||||
|
||||
[Sources]
|
||||
<Your Microcode TXT file>
|
||||
|
||||
Uncomment and update `FILE DATA` statement in `<Your Platform Package>/MicrocodeUpdateTxt/MicrocodeCapsuleTxt.fdf` with path to a Microcode MCB file. The MCB file is placed in `$(WORKSPACE)/$(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/IA32/<Your Platform Package>/MicrocodeUpdateTxt/Microcode/Microcode/OUTPUT/`.
|
||||
|
||||
`FILE DATA = <your Microcode MCB file path>`
|
||||
|
||||
Uncomment and update `PLATFORM_NAME`, `FLASH_DEFINITION`, `OUTPUT_DIRECTORY` section in `<Your Platform Package>/MicrocodeUpdateTxt/MicrocodeCapsuleTxt.dsc` with <Your Platform Package>.
|
||||
|
||||
PLATFORM_NAME = <Your Platform Package>
|
||||
FLASH_DEFINITION = <Your Platform Package>/MicrocodeCapsuleTxt/MicrocodeCapsuleTxt.fdf
|
||||
OUTPUT_DIRECTORY = Build/<Your Platform Package>
|
||||
|
||||
Uncomment and update statement in `Components` section of `<Your Platform Package>/MicrocodeUpdateTxt/MicrocodeCapsuleTxt.dsc` with path to a Microcode INF file.
|
||||
|
||||
[Components]
|
||||
<Your Microcode INF file>
|
||||
|
||||
4) Use EDK II build tools to generate the Microcode FMP Capsule
|
||||
|
||||
`build -p <Your Platform Package>/MicrocodeCapsuleTxt/MicrocodeCapsuleTxt.dsc`
|
||||
|
||||
5) The generated Microcode FMP Capsule is found at `$(WORKSPACE)/$(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/FV/MicrocodeCapsule.Cap`
|
||||
|
||||
|
Loading…
Reference in New Issue