[edk2-devel] [PATCH] IntelFsp2Pkg: Adopt FSP 2.3 specification.

Chiu, Chasel chasel.chiu at intel.com
Mon Oct 4 01:10:08 UTC 2021


Patch pushed: https://github.com/tianocore/edk2/commit/4cc1458dbe004b1d70534caa55f475f6d19fe14a

Thanks,
Chasel


> -----Original Message-----
> From: Chiu, Chasel <chasel.chiu at intel.com>
> Sent: Friday, October 1, 2021 4:29 PM
> To: devel at edk2.groups.io
> Cc: Chiu, Chasel <chasel.chiu at intel.com>; Ma, Maurice
> <maurice.ma at intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone at intel.com>; Zeng, Star <star.zeng at intel.com>
> Subject: [PATCH] IntelFsp2Pkg: Adopt FSP 2.3 specification.
> 
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3674
> 
> Add ExtendedImageRevision in FSP_INFO_HEADER structure, also add
> FSP_NON_VOLATILE_STORAGE_HOB2 header.
> 
> Cc: Maurice Ma <maurice.ma at intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone at intel.com>
> Cc: Star Zeng <star.zeng at intel.com>
> Signed-off-by: Chasel Chiu <chasel.chiu at intel.com>
> ---
>  IntelFsp2Pkg/Include/Guid/FspHeaderFile.h             | 33
> ++++++++++++++++++++++++++++++++-
>  IntelFsp2Pkg/Include/Guid/FspNonVolatileStorageHob2.h | 27
> +++++++++++++++++++++++++++
>  IntelFsp2Pkg/IntelFsp2Pkg.dec                         |  1 +
>  3 files changed, 60 insertions(+), 1 deletion(-)
> 
> diff --git a/IntelFsp2Pkg/Include/Guid/FspHeaderFile.h
> b/IntelFsp2Pkg/Include/Guid/FspHeaderFile.h
> index 3474bac1de..11e0ede65b 100644
> --- a/IntelFsp2Pkg/Include/Guid/FspHeaderFile.h
> +++ b/IntelFsp2Pkg/Include/Guid/FspHeaderFile.h
> @@ -2,7 +2,7 @@
>    Intel FSP Header File definition from Intel Firmware Support Package External
> 
>    Architecture Specification v2.0 and above.
> 
> 
> 
> -  Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>
> 
> +  Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>
> 
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> 
> 
>  **/
> 
> @@ -44,14 +44,28 @@ typedef struct {
>    UINT8   Reserved1[2];
> 
>    ///
> 
>    /// Byte 0x0A: Indicates compliance with a revision of this specification in the
> BCD format.
> 
> +  ///            For revision v2.3 the value will be 0x23.
> 
>    ///
> 
>    UINT8   SpecVersion;
> 
>    ///
> 
>    /// Byte 0x0B: Revision of the FSP Information Header.
> 
> +  ///            The Current value for this field is 0x6.
> 
>    ///
> 
>    UINT8   HeaderRevision;
> 
>    ///
> 
>    /// Byte 0x0C: Revision of the FSP binary.
> 
> +  ///            Major.Minor.Revision.Build
> 
> +  ///            If FSP HeaderRevision is <= 5, the ImageRevision can be decoded as
> follows:
> 
> +  ///               7 : 0  - Build Number
> 
> +  ///              15 : 8  - Revision
> 
> +  ///              23 : 16 - Minor Version
> 
> +  ///              31 : 24 - Major Version
> 
> +  ///            If FSP HeaderRevision is >= 6, ImageRevision specifies the low-order
> bytes of the build number and revision
> 
> +  ///            while ExtendedImageRevision specifies the high-order bytes of the
> build number and revision.
> 
> +  ///               7 : 0  - Low Byte of Build Number
> 
> +  ///              15 : 8  - Low Byte of Revision
> 
> +  ///              23 : 16 - Minor Version
> 
> +  ///              31 : 24 - Major Version
> 
>    ///
> 
>    UINT32  ImageRevision;
> 
>    ///
> 
> @@ -116,6 +130,23 @@ typedef struct {
>    ///            If the value is set to 0x00000000, then this API is not available in this
> component.
> 
>    ///
> 
>    UINT32  FspMultiPhaseSiInitEntryOffset;
> 
> +  ///
> 
> +  /// Byte 0x4C: Extended revision of the FSP binary.
> 
> +  ///            This value is only valid if FSP HeaderRevision is >= 6.
> 
> +  ///            ExtendedImageRevision specifies the high-order byte of the revision
> and build number in the FSP binary revision.
> 
> +  ///               7 : 0 - High Byte of Build Number
> 
> +  ///              15 : 8 - High Byte of Revision
> 
> +  ///            The FSP binary build number can be decoded as follows:
> 
> +  ///            Build Number = (ExtendedImageRevision[7:0] << 8) |
> ImageRevision[7:0]
> 
> +  ///            Revision = (ExtendedImageRevision[15:8] << 8) |
> ImageRevision[15:8]
> 
> +  ///            Minor Version = ImageRevision[23:16]
> 
> +  ///            Major Version = ImageRevision[31:24]
> 
> +  ///
> 
> +  UINT16  ExtendedImageRevision;
> 
> +  ///
> 
> +  /// Byte 0x4E: Reserved4.
> 
> +  ///
> 
> +  UINT16  Reserved4;
> 
>  } FSP_INFO_HEADER;
> 
> 
> 
>  ///
> 
> diff --git a/IntelFsp2Pkg/Include/Guid/FspNonVolatileStorageHob2.h
> b/IntelFsp2Pkg/Include/Guid/FspNonVolatileStorageHob2.h
> new file mode 100644
> index 0000000000..8c07dc7e7e
> --- /dev/null
> +++ b/IntelFsp2Pkg/Include/Guid/FspNonVolatileStorageHob2.h
> @@ -0,0 +1,27 @@
> +/** @file
> 
> +  Intel FSP Non-Volatile Storage (NVS) HOB version 2 definition from
> 
> +  Intel Firmware Support Package External Architecture Specification v2.3.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +
> 
> +**/
> 
> +
> 
> +#ifndef __FSP_NON_VOLATILE_STORAGE_HOB2_H__
> 
> +#define __FSP_NON_VOLATILE_STORAGE_HOB2_H__
> 
> +
> 
> +///
> 
> +/// The Non-Volatile Storage (NVS) HOB version 2 provides > 64KB buffer
> support.
> 
> +///
> 
> +#define FSP_NON_VOLATILE_STORAGE_HOB2_GUID \
> 
> +  { 0x4866788f, 0x6ba8, 0x47d8, { 0x83, 0x06, 0xac, 0xf7, 0x7f, 0x55, 0x10,
> 0x46 } }
> 
> +
> 
> +typedef struct {
> 
> +  EFI_HOB_GUID_TYPE    GuidHob;
> 
> +  EFI_PHYSICAL_ADDRESS NvsDataPtr;
> 
> +  UINT64               NvsDataLength;
> 
> +} FSP_NON_VOLATILE_STORAGE_HOB2;
> 
> +
> 
> +extern EFI_GUID gFspNonVolatileStorageHob2Guid;
> 
> +
> 
> +#endif
> 
> diff --git a/IntelFsp2Pkg/IntelFsp2Pkg.dec b/IntelFsp2Pkg/IntelFsp2Pkg.dec
> index ec7b9a7702..58eac7220d 100644
> --- a/IntelFsp2Pkg/IntelFsp2Pkg.dec
> +++ b/IntelFsp2Pkg/IntelFsp2Pkg.dec
> @@ -68,6 +68,7 @@
>    # Guid define in FSP EAS
> 
>    gFspHeaderFileGuid                    = { 0x912740BE, 0x2284, 0x4734, { 0xB9, 0x71,
> 0x84, 0xB0, 0x27, 0x35, 0x3F, 0x0C } }
> 
>    gFspReservedMemoryResourceHobGuid     = { 0x69a79759, 0x1373, 0x4367,
> { 0xa6, 0xc4, 0xc7, 0xf5, 0x9e, 0xfd, 0x98, 0x6e } }
> 
> +  gFspNonVolatileStorageHob2Guid        = { 0x4866788f, 0x6ba8, 0x47d8, { 0x83,
> 0x06, 0xac, 0xf7, 0x7f, 0x55, 0x10, 0x46 } }
> 
>    gFspNonVolatileStorageHobGuid         = { 0x721acf02, 0x4d77, 0x4c2a, { 0xb3,
> 0xdc, 0x27, 0x0b, 0x7b, 0xa9, 0xe4, 0xb0 } }
> 
>    gFspBootLoaderTolumHobGuid            = { 0x73ff4f56, 0xaa8e, 0x4451, { 0xb3,
> 0x16, 0x36, 0x35, 0x36, 0x67, 0xad, 0x44 } } # FSP EAS v1.1
> 
> 
> 
> --
> 2.28.0.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#81399): https://edk2.groups.io/g/devel/message/81399
Mute This Topic: https://groups.io/mt/85994000/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list