From: Duke Zhai <duke.z...@amd.com>

BZ #:4728

1.Use HPET timer to replace 8254 timer
2.Fix Bug Microcode version cannot show correctly at BIOS setup
3.Enable capsule at linux build
4.Update FspWrapper UPD table for BIOS setup options

Cc: Ken Yao <ken....@amd.com>
Cc: Igniculus Fu <igniculus...@amd.com>
Reviewed-by: Abner Chang <abner.ch...@amd.com>
Reviewed-by: Eric Xing <eric.x...@amd.com>
Signed-off-by: Duke Zhai <duke.z...@amd.com>
---
 .../BIOSImageDirectory32M.xml                 |  2 +-
 .../ChachaniBoardPkg/GenCapsule.bat           |  2 +-
 .../VanGoghBoard/ChachaniBoardPkg/Project.dsc |  2 -
 .../VanGoghBoard/ChachaniBoardPkg/Project.fdf |  3 +-
 .../VanGoghBoard/ChachaniBoardPkg/build.sh    | 22 +++++-
 .../edk2/Fsp2WrapperPkg/Include/FspmUpd.h     | 71 ++++++++++---------
 .../FspWrapperPlatformLibSample.c             | 29 --------
 7 files changed, 59 insertions(+), 72 deletions(-)

diff --git 
a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/BIOSImageDirectory32M.xml 
b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/BIOSImageDirectory32M.xml
index 22af6623e2..585e12d487 100644
--- a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/BIOSImageDirectory32M.xml
+++ b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/BIOSImageDirectory32M.xml
@@ -57,7 +57,7 @@
     <IMAGE_ENTRY Type="0x65" Instance="0x01" SubProgram="0x0" 
File="TypeId0x65D0.csbin" />
     <IMAGE_ENTRY Type="0x64" Instance="0x02" SubProgram="0x0" 
File="TypeId0x64L1.csbin" />
     <IMAGE_ENTRY Type="0x65" Instance="0x02" SubProgram="0x0" 
File="TypeId0x65D1.csbin" />
-    <IMAGE_ENTRY Type="0x66" Instance="0x03" File="TypeId0x66.bin" />
+    <IMAGE_ENTRY Type="0x66" Instance="0x00" File="TypeId0x66.bin" />
     <IMAGE_ENTRY Type="0x6A" File="TypeId0x6A.sbin" />
   </BIOS_DIR>
 </DIRS>
diff --git a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/GenCapsule.bat 
b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/GenCapsule.bat
index 7dca22a4e3..c55f561772 100644
--- a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/GenCapsule.bat
+++ b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/GenCapsule.bat
@@ -36,7 +36,7 @@ if not exist %WORKSPACE%\%BIOS_FILE_NAME% (
   goto ERROR
 )
 
- Setup OpenSSL Command Line Environment
+echo Setup OpenSSL Command Line Environment
 if not "%OPENSSL_PATH%" == "" (
   set OPENSSL_PATH_TEMP=%OPENSSL_PATH%
 )
diff --git a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Project.dsc 
b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Project.dsc
index 510ce10c0c..20f06dd851 100644
--- a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Project.dsc
+++ b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Project.dsc
@@ -745,8 +745,6 @@
   MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
   FatPkg/EnhancedFatDxe/Fat.inf
   PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
-  OvmfPkg/8259InterruptControllerDxe/8259.inf
-  OvmfPkg/8254TimerDxe/8254Timer.inf
   
MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.inf
   
MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceSmm.inf
 
diff --git a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Project.fdf 
b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Project.fdf
index 5194a8c10d..0d844689b3 100644
--- a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Project.fdf
+++ b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Project.fdf
@@ -416,8 +416,7 @@ NumBlocks     = 0x100
   # Platform
   #
   INF  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
-  INF  OvmfPkg/8259InterruptControllerDxe/8259.inf
-  INF  OvmfPkg/8254TimerDxe/8254Timer.inf
+  INF  PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
 
   #
   # ACPI
diff --git a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/build.sh 
b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/build.sh
index f4652e91c6..0984876ef2 100644
--- a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/build.sh
+++ b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/build.sh
@@ -1,3 +1,4 @@
+#!/bin/bash
 ## @file
 # Linux build script file to launch Chachani Board BIOS build
 #
@@ -22,6 +23,7 @@ export OemBoard=Chachani
 export PLATFORM_PATH=edk2-platforms/Platform/AMD/VanGoghBoard
 export BUILD_TYPE=RELEASE
 export TOOLCHAIN_TAG=CLANGPDB
+export OTA_CAPSULE_NAME=OTACAPSULE # You need to keep this name sync with 
PlatformCapsule.fdf
 #TRUE / FALSE
 export COMPRESS_FSP_REGION=TRUE
 export KEY_MODE=TK
@@ -35,16 +37,25 @@ export NASM_PREFIX=
 export GCC5_BIN=
 #CLANG_BIN shall end with a slash.
 export CLANG_BIN=
+#OPENSSL_PATH shall end with a slash.
+export OPENSSL_PATH=
 
 echo "Building for ${OemBoard} board, ${BUILD_TYPE} mode with 
${TOOLCHAIN_TAG}."
-echo "IASL: ${IASL_PREFIX}iasl, NASM: ${NASM_PREFIX}nasm, GCC: ${GCC5_BIN}gcc, 
CLANG:${CLANG_BIN}clang."
+echo "IASL: ${IASL_PREFIX}iasl, NASM: ${NASM_PREFIX}nasm, GCC: ${GCC5_BIN}gcc, 
CLANG:${CLANG_BIN}clang, OPENSSL:${OPENSSL_PATH}openssl."
 [[ ${COMPRESS_FSP_REGION} == "TRUE" ]] && echo "FSP will be built with 
compress support."
 # Env check
 echo_section "Checking compilation environment"
 [[ "${IASL_PREFIX}" == "" ]] && export IASL_PREFIX=$(dirname $(which iasl))/
 [[ "${NASM_PREFIX}" == "" ]] && export NASM_PREFIX=$(dirname $(which nasm))/
+[[ "${OPENSSL_PATH}" == "" ]] && export OPENSSL_PATH=$(dirname $(which 
openssl))/
 [[ -f ${IASL_PREFIX}iasl ]] || (echo "IASL not found! Please specify 
IASL_PREFIX!";exit -1)
-[[ -f ${IASL_PREFIX}nasm ]] || (echo "NASM not found! Please specify 
NASM_PREFIX!";exit -1)
+[[ -f ${NASM_PREFIX}nasm ]] || (echo "NASM not found! Please specify 
NASM_PREFIX!";exit -1)
+[[ -f ${OPENSSL_PATH}openssl ]] || (echo "OpenSSL not found! Please specify 
OPENSSL_PATH!";exit -1)
+
+echo "IASL version $(LC_ALL=C ${IASL_PREFIX}iasl -v | sed -n '3,3p' | cut -d' 
' -f5) detected."
+echo "NASM version $(LC_ALL=C ${NASM_PREFIX}nasm --version | head -n1 | cut 
-d' ' -f3) detected."
+echo "OpenSSL version $(LC_ALL=C ${OPENSSL_PATH}openssl version | head -n1 | 
cut -d' ' -f2) detected."
+
 if [ ${TOOLCHAIN_TAG} != "CLANGPDB" ]
 then
     [[ "${GCC5_BIN}" == "" ]]   && export GCC5_BIN=$(dirname $(which gcc))/
@@ -174,4 +185,11 @@ python3 FlashABImage32M.py ${F1_ECSIG} ${F2_EC} ${F3_EFS} 
${F4_PSP_L1_DIRECTORY}
     ${F6_SLOT_HEADER_1} ${F7_SLOT_HEADER_2} ${F8_SLOT_A} ${F9_SLOT_B} 
${F10_OUT_IMAGE}
 popd
 
+echo_section "Generating Capsule image"
+rm -r 
${WORKSPACE}/Build/ChachaniBoardPkg/${BUILD_TYPE}_${TOOLCHAIN_TAG}/FV/SYSTEMFIRMWAREUPDATECARGO*
+touch 
${WORKSPACE}/Build/ChachaniBoardPkg/${BUILD_TYPE}_${TOOLCHAIN_TAG}/FV/SYSTEMFIRMWAREUPDATECARGO.Fv
+build -p ${PROJECT_PKG}/PlatformCapsule.dsc -t ${TOOLCHAIN_TAG} -b 
${BUILD_TYPE} -D BIOS_FILE=${BIOSNAME}UDK.FD
+[[ $? -ne 0 ]] && exit -1
+cp 
${WORKSPACE}/Build/ChachaniBoardPkg/${BUILD_TYPE}_${TOOLCHAIN_TAG}/FV/${OTA_CAPSULE_NAME}.Cap
 .
+
 echo_section "Build success @ $(date)"
diff --git 
a/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Include/FspmUpd.h 
b/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Include/FspmUpd.h
index 8cadbe430a..875461a58a 100644
--- a/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Include/FspmUpd.h
+++ b/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Include/FspmUpd.h
@@ -16,41 +16,42 @@
 /** Fsp M Configuration
 **/
 typedef struct {
-  /** Offset 0x0040**/ UINT32    bert_size;
-  /** Offset 0x0044**/ UINT32    tseg_size;
-  /** Offset 0x0048**/ UINT32    dxio_descriptor_table_pointer;
-  /** Offset 0x004C**/ UINT32    pcie_reset_function_pointer;
-  /** Offset 0x0050**/ UINT32    ddi_descriptor_table_pointer;
-  /** Offset 0x0054**/ UINT32    temp_memory_base_addr;
-  /** Offset 0x0058**/ UINT32    temp_memory_size;
-  /** Offset 0x005C**/ UINT32    fsp_o_pei_volume_address;
-  /** Offset 0x0060**/ UINT32    fsp_o_pei_upd_address;
-  /** Offset 0x0064**/ UINT32    pei_reset_ppi_addr;
-  /** Offset 0x0068**/ UINT32    resource_size_for_each_rb_ptr;
-  /** Offset 0x006C**/ UINT32    resource_size_for_each_rb_size;
-  /** Offset 0x0070**/ UINT32    total_number_of_root_bridges_ptr;
-  /** Offset 0x0074**/ UINT32    total_number_of_root_bridges_size;
-  /** Offset 0x0078**/ UINT32    amd_pbs_setup_ptr;
-  /** Offset 0x007C**/ UINT32    amd_pbs_setup_size;
-  /** Offset 0x0080**/ UINT32    ap_sync_flag_nv_ptr;
-  /** Offset 0x0084**/ UINT32    ap_sync_flag_nv_size;
-  /** Offset 0x0088**/ UINT8     DbgFchUsbUsb0DrdMode;
-  /** Offset 0x0089**/ UINT8     DbgFchUsbUsb2DrdMode;
-  /** Offset 0x008A**/ UINT32    CmnGnbGfxUmaFrameBufferSize;
-  /** Offset 0x008E**/ UINT8     CmnGnbNbIOMMU;
-  /** Offset 0x008F**/ UINT32    DbgFastPPTLimit;
-  /** Offset 0x0093**/ UINT32    DbgSlowPPTLimit;
-  /** Offset 0x0097**/ UINT32    CmnCpuVoltageOffset;
-  /** Offset 0x009B**/ UINT32    CmnGpuVoltageOffset;
-  /** Offset 0x009F**/ UINT32    CmnSocVoltageOffset;
-  /** Offset 0x00A3**/ UINT8     CmnGnbGfxUmaMode;
-  /** Offset 0x00A4**/ UINT8     CmnFchI2C0Config;
-  /** Offset 0x00A5**/ UINT8     CmnFchI2C1Config;
-  /** Offset 0x00A6**/ UINT8     CmnFchI2C2Config;
-  /** Offset 0x00A7**/ UINT8     CmnFchI2C3Config;
-  /** Offset 0x00A8**/ UINT32    ids_nv_table_address;
-  /** Offset 0x00AC**/ UINT32    ids_nv_table_size;
-  /** Offset 0x00B0**/ UINT16    UpdTerminator;
+       /** Offset 0x0040**/    UINT32                      bert_size;
+       /** Offset 0x0044**/    UINT32                      tseg_size;
+       /** Offset 0x0048**/    UINT32                      
dxio_descriptor_table_pointer;
+       /** Offset 0x004C**/    UINT32                      
pcie_reset_function_pointer;
+       /** Offset 0x0050**/    UINT32                      
ddi_descriptor_table_pointer;
+       /** Offset 0x0054**/    UINT32                      
temp_memory_base_addr;
+       /** Offset 0x0058**/    UINT32                      temp_memory_size;
+       /** Offset 0x005C**/    UINT32                      
fsp_o_pei_volume_address;
+       /** Offset 0x0060**/    UINT32                      
fsp_o_pei_upd_address;
+       /** Offset 0x0064**/    UINT32                      pei_reset_ppi_addr;
+       /** Offset 0x0068**/    UINT32                      
resource_size_for_each_rb_ptr;
+       /** Offset 0x006C**/    UINT32                      
resource_size_for_each_rb_size;
+       /** Offset 0x0070**/    UINT32                      
total_number_of_root_bridges_ptr;
+       /** Offset 0x0074**/    UINT32                      
total_number_of_root_bridges_size;
+       /** Offset 0x0078**/    UINT32                      amd_pbs_setup_ptr;
+       /** Offset 0x007C**/    UINT32                      amd_pbs_setup_size;
+       /** Offset 0x0080**/    UINT32                      ap_sync_flag_nv_ptr;
+       /** Offset 0x0084**/    UINT32                      
ap_sync_flag_nv_size;
+       /** Offset 0x0088**/    UINT8                       FchUsbUsb0DrdMode;
+       /** Offset 0x0089**/    UINT8                       FchUsbUsb2DrdMode;
+       /** Offset 0x008A**/    UINT8                       CmnGnbGfxUmaMode;
+       /** Offset 0x008B**/    UINT32                      
CmnGnbGfxUmaFrameBufferSize;
+       /** Offset 0x008F**/    UINT8                       CmnGnbNbIOMMU;
+       /** Offset 0x0090**/    UINT8                       PPTCtl;
+       /** Offset 0x0091**/    UINT32                      FastPPTLimit;
+       /** Offset 0x0095**/    UINT32                      SlowPPTLimit;
+       /** Offset 0x0099**/    UINT8                       CmnCpuVolOffsetCtl;
+       /** Offset 0x009A**/    UINT32                      CmnCpuVoltageOffset;
+       /** Offset 0x009E**/    UINT8                       CmnGpuVolOffsetCtl;
+       /** Offset 0x009F**/    UINT32                      CmnGpuVoltageOffset;
+       /** Offset 0x00A3**/    UINT8                       CmnSocVolOffsetCtl;
+       /** Offset 0x00A4**/    UINT32                      CmnSocVoltageOffset;
+       /** Offset 0x00A8**/    UINT16                      CclkFmaxOverride;
+       /** Offset 0x00AA**/    UINT16                      GfxclkFmaxOverride;
+       /** Offset 0x00AC**/    UINT8                       padding1[8];
+       /** Offset 0x00B4**/    UINT16                      UpdTerminator;
 } FSP_M_CONFIG;
 
 /** Fsp M UPD Configuration
diff --git 
a/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Library/BaseFspWrapperPlatformLibSample/FspWrapperPlatformLibSample.c
 
b/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Library/BaseFspWrapperPlatformLibSample/FspWrapperPlatformLibSample.c
index 1afcf68f85..2a616482e3 100644
--- 
a/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Library/BaseFspWrapperPlatformLibSample/FspWrapperPlatformLibSample.c
+++ 
b/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Library/BaseFspWrapperPlatformLibSample/FspWrapperPlatformLibSample.c
@@ -61,35 +61,6 @@ GetIdsNvData (
   FSPM_UPD *volatile  FspmUpd
   )
 {
-  VOID             *IdsNvTableData;
-  UINT32           IdsNvDataSize = 0;
-  IDS_HOOK_STATUS  Status        = GetIdsNvTable (NULL, &IdsNvDataSize);
-
-  if ((Status == IDS_HOOK_BUFFER_TOO_SMALL) || (Status == IDS_HOOK_SUCCESS)) {
-    // The CBS code doesn't follow its header!
-    IdsNvTableData = AllocatePool (IdsNvDataSize+100);
-    if (IdsNvTableData != NULL) {
-      Status = GetIdsNvTable (IdsNvTableData, &IdsNvDataSize);
-      if (Status == IDS_HOOK_SUCCESS) {
-        FspmUpd->FspmConfig.ids_nv_table_address = 
(UINT32)(UINTN)IdsNvTableData;
-        FspmUpd->FspmConfig.ids_nv_table_size    = IdsNvDataSize;
-        DEBUG ((
-          DEBUG_INFO,
-          "IDS NV Table address:%x, size:%x\n", \
-          FspmUpd->FspmConfig.ids_nv_table_address,
-          FspmUpd->FspmConfig.ids_nv_table_size
-          ));
-        return EFI_SUCCESS;
-      } else {
-        DEBUG ((DEBUG_ERROR, "Get NV Table #3:%d\n", Status));
-      }
-    } else {
-      DEBUG ((DEBUG_ERROR, "Get NV Table #2:%d\n", Status));
-    }
-  } else {
-    DEBUG ((DEBUG_ERROR, "Get NV Table #1:%d\n", Status));
-  }
-
   return EFI_UNSUPPORTED;
 }
 
-- 
2.31.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116665): https://edk2.groups.io/g/devel/message/116665
Mute This Topic: https://groups.io/mt/104878510/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to