public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Xing, Eric via groups.io" <eric.xing=amd.com@groups.io>
To: "Zhai, MingXin (Duke)" <duke.zhai@amd.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Yao, Ken" <Ken.Yao@amd.com>,
	"Fu, Igniculus" <Igniculus.Fu@amd.com>,
	"Chang, Abner" <Abner.Chang@amd.com>
Subject: Re: [edk2-devel] [PATCH] AMD/AmdPlatformPkg: Update AMD Vangogh platform reference code
Date: Wed, 13 Mar 2024 07:02:51 +0000	[thread overview]
Message-ID: <PH0PR12MB5631194271BFDACCCD4E3C84F62A2@PH0PR12MB5631.namprd12.prod.outlook.com> (raw)
In-Reply-To: <20240312030533.477-1-duke.zhai@amd.com>

[AMD Official Use Only - General]

Below changes are reviewed and verified.

Reviewed-by: Eric Xing <eric.xing@amd.com>

> -----Original Message-----
> From: Zhai, MingXin (Duke) <duke.zhai@amd.com>
> Sent: Tuesday, March 12, 2024 11:06 AM
> To: devel@edk2.groups.io
> Cc: Yao, Ken <Ken.Yao@amd.com>; Fu, Igniculus <Igniculus.Fu@amd.com>;
> Chang, Abner <Abner.Chang@amd.com>; Xing, Eric <Eric.Xing@amd.com>
> Subject: [PATCH] AMD/AmdPlatformPkg: Update AMD Vangogh platform
> reference code
>
> From: Duke Zhai <Duke.Zhai@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.yao@amd.com>
> Cc: Igniculus Fu <igniculus.fu@amd.com>
> Reviewed-by: Abner Chang <abner.chang@amd.com>
> Reviewed-by: Eric Xing <eric.xing@amd.com>
> Signed-off-by: Duke Zhai <Duke.Zhai@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/BIOSImageDirectory32
> M.xml
> b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/BIOSImageDirectory32
> M.xml
> index 22af6623e2..585e12d487 100644
> ---
> a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/BIOSImageDirectory32
> M.xml
> +++
> b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/BIOSImageDirectory32
> M.x
> +++ ml
> @@ -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/Firmwa
> rePerformanceDxe.inf
>
> MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/Firmw
> arePerformanceSmm.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_TA
> G}/FV/S
> +YSTEMFIRMWAREUPDATECARGO* touch
> +${WORKSPACE}/Build/ChachaniBoardPkg/${BUILD_TYPE}_${TOOLCHAIN_TA
> G}/FV/S
> +YSTEMFIRMWAREUPDATECARGO.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_TA
> G}/FV/${OTA_CAPSULE_NAME}.Cap .
> +
>  echo_section "Build success @ $(date)"
> diff --git
> a/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Include/F
> spmUpd.h
> b/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Include/F
> spmUpd.h
> index 8cadbe430a..875461a58a 100644
> ---
> a/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Include/F
> spmUpd.h
> +++
> b/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Include/F
> sp
> +++ mUpd.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/B
> aseFspWrapperPlatformLibSample/FspWrapperPlatformLibSample.c
> b/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Library/B
> aseFspWrapperPlatformLibSample/FspWrapperPlatformLibSample.c
> index 1afcf68f85..2a616482e3 100644
> ---
> a/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Library/B
> aseFspWrapperPlatformLibSample/FspWrapperPlatformLibSample.c
> +++
> b/Platform/AMD/VanGoghBoard/Override/edk2/Fsp2WrapperPkg/Library/B
> as
> +++ eFspWrapperPlatformLibSample/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 (#116708): https://edk2.groups.io/g/devel/message/116708
Mute This Topic: https://groups.io/mt/104878510/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



  reply	other threads:[~2024-03-13  7:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-12  3:05 [edk2-devel] [PATCH] AMD/AmdPlatformPkg: Update AMD Vangogh platform reference code Zhai, MingXin (Duke) via groups.io
2024-03-13  7:02 ` Xing, Eric via groups.io [this message]
2024-03-13  7:46 ` Yao, Ken via groups.io

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=PH0PR12MB5631194271BFDACCCD4E3C84F62A2@PH0PR12MB5631.namprd12.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox