Add project patch version to version info

Add project patch version to match Dasharo versioning scheme.

Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
This commit is contained in:
Michał Żygowski
2025-08-04 11:41:53 +02:00
parent f496db457c
commit 0b63e5ae1a
4 changed files with 9 additions and 2 deletions

View File

@@ -20,6 +20,7 @@ extern EFI_GUID gBootLoaderVersionGuid;
#pragma pack(1)
typedef struct {
UINT16 BuildNumber;
UINT8 ProjPatchVersion;
UINT8 ProjMinorVersion;
UINT8 ProjMajorVersion;
UINT8 CoreMinorVersion;

View File

@@ -157,6 +157,7 @@ class ImageVer(Structure):
_pack_ = 1
_fields_ = [
('BuildNumber', c_uint16),
('ProjPatchVersion', c_uint8),
('ProjMinorVersion', c_uint8),
('ProjMajorVersion', c_uint8),
('CoreMinorVersion', c_uint8),
@@ -897,6 +898,7 @@ def get_verinfo_via_file (ver_dict, file):
ver_info.ImageId = struct.unpack('Q', image_id)[0]
try:
ver_info.SourceVersion = int(ver_dict['SourceVersion'], 16)
ver_info.ImageVersion.ProjPatchVersion = int(ver_dict['ProjPatchVersion'])
ver_info.ImageVersion.ProjMinorVersion = int(ver_dict['ProjMinorVersion'])
ver_info.ImageVersion.ProjMajorVersion = int(ver_dict['ProjMajorVersion'])
ver_info.ImageVersion.CoreMinorVersion = int(ver_dict['CoreMinorVersion'])
@@ -947,6 +949,7 @@ def get_verinfo_via_git (ver_dict, repo_dir = '.'):
ver_info.ImageVersion.BuildNumber = build_number
ver_info.ImageId = struct.unpack('Q', imgid)[0]
ver_info.SourceVersion = commitid
ver_info.ImageVersion.ProjPatchVersion = ver_dict['VERINFO_PROJ_PATCH_VER']
ver_info.ImageVersion.ProjMinorVersion = ver_dict['VERINFO_PROJ_MINOR_VER']
ver_info.ImageVersion.ProjMajorVersion = ver_dict['VERINFO_PROJ_MAJOR_VER']
ver_info.ImageVersion.CoreMinorVersion = ver_dict['VERINFO_CORE_MINOR_VER']
@@ -970,6 +973,7 @@ def gen_ver_info_txt (ver_file, ver_info):
h_file.write('SecureVerNum = %03d\n' % ver_info.ImageVersion.SecureVerNum)
h_file.write('ProjMajorVersion = %03d\n' % ver_info.ImageVersion.ProjMajorVersion)
h_file.write('ProjMinorVersion = %03d\n' % ver_info.ImageVersion.ProjMinorVersion)
h_file.write('ProjPatchVersion = %03d\n' % ver_info.ImageVersion.ProjPatchVersion)
h_file.write('CoreMajorVersion = %03d\n' % ver_info.ImageVersion.CoreMajorVersion)
h_file.write('CoreMinorVersion = %03d\n' % ver_info.ImageVersion.CoreMinorVersion)
h_file.write('BuildNumber = %05d\n' % ver_info.ImageVersion.BuildNumber)

View File

@@ -1275,7 +1275,7 @@ class Build(object):
if hasattr(self._board, 'BOARD_PKG_NAME_OVERRIDE'):
ver_txt_file = os.path.join(os.environ['PLT_SOURCE'], 'Platform', self._board.BOARD_PKG_NAME_OVERRIDE, ver_info_name + '.txt')
keys = ['VERINFO_IMAGE_ID', 'VERINFO_BUILD_DATE', 'VERINFO_PROJ_MINOR_VER',
keys = ['VERINFO_IMAGE_ID', 'VERINFO_BUILD_DATE', 'VERINFO_PROJ_MINOR_VER', 'VERINFO_PROJ_PATCH_VER',
'VERINFO_PROJ_MAJOR_VER', 'VERINFO_CORE_MINOR_VER', 'VERINFO_CORE_MAJOR_VER',
'VERINFO_SVN', 'FSPDEBUG_MODE', 'RELEASE_MODE', 'BUILD_ARCH']
ver_dict = {}

View File

@@ -133,7 +133,9 @@ VerifySblVersion (
// Update last update version to the version we are about to update
//
Status = UpdateStatus(ImageHdr->UpdateHardwareInstance, \
(CapsuleBlVersion->ImageVersion.ProjMajorVersion << 8) | CapsuleBlVersion->ImageVersion.ProjMinorVersion, \
(CapsuleBlVersion->ImageVersion.ProjMajorVersion << 16) | \
(CapsuleBlVersion->ImageVersion.ProjMinorVersion << 8) | \
CapsuleBlVersion->ImageVersion.ProjPatchVersion, \
0xFFFFFFFF);
if (EFI_ERROR (Status)) {
DEBUG((DEBUG_ERROR, "Updating status to reserved region failed: %r\n", Status));