summaryrefslogtreecommitdiff
path: root/meta-phosphor/classes/image_types_phosphor.bbclass
diff options
context:
space:
mode:
authorSaqib Khan <khansa@us.ibm.com>2017-09-22 18:21:30 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2017-11-16 06:32:03 +0300
commit417234737e4238a6f2315188c10d1e16f65e9664 (patch)
treeade1ca36741a5b8b700f6d19eef4c673e3722a57 /meta-phosphor/classes/image_types_phosphor.bbclass
parent10721e62693599aa11d82588dfe5d5c89b2e108e (diff)
downloadopenbmc-417234737e4238a6f2315188c10d1e16f65e9664.tar.xz
Calculate the version ID of BMC UBI volumes during build time.
- When the new ubi layout is flashed onto the BMC, the volumes were named kernel-0 and rofs-0 by default. This tends to be misleading as we can't differentiate between two different BMC versions. - Now the ubi volumes will be named kernel-<versionID> and rofs-<versionID> calculated by getting the hash(SHA-512) of the version and taking the first 8 characters. - The Uboot env needs to be updated to point to the correct kernelname which has now changed from kernel-0 to kernel-<versionID> calculated by getting the HASH(SHA-512) of the version and taking the first 8 characters. Resolves openbmc/openbmc#2323 Change-Id: I258d165b399d1ff59ea86f410006f6d03fe13a2e Signed-off-by: Saqib Khan <khansa@us.ibm.com>
Diffstat (limited to 'meta-phosphor/classes/image_types_phosphor.bbclass')
-rw-r--r--meta-phosphor/classes/image_types_phosphor.bbclass40
1 files changed, 20 insertions, 20 deletions
diff --git a/meta-phosphor/classes/image_types_phosphor.bbclass b/meta-phosphor/classes/image_types_phosphor.bbclass
index 8d19c80f5..5599332f6 100644
--- a/meta-phosphor/classes/image_types_phosphor.bbclass
+++ b/meta-phosphor/classes/image_types_phosphor.bbclass
@@ -10,6 +10,7 @@ def build_uboot(d):
# Inherit u-boot classes if legacy uboot images are in use.
IMAGE_TYPE_uboot = '${@build_uboot(d)}'
inherit ${IMAGE_TYPE_uboot}
+inherit image_version
# Phosphor image types
#
@@ -139,16 +140,27 @@ add_volume() {
fi
}
-do_generate_ubi() {
- cfg=ubinize-${IMAGE_NAME}.cfg
+python do_generate_ubi() {
+ version_id = do_get_versionID(d)
+ d.setVar('VERSION_ID', version_id)
+ bb.build.exec_func("do_make_ubi", d)
+}
+do_generate_ubi[dirs] = "${S}/ubi"
+do_generate_ubi[depends] += " \
+ ${PN}:do_image_${@d.getVar('FLASH_UBI_BASETYPE', True).replace('-', '_')} \
+ virtual/kernel:do_deploy \
+ u-boot:do_populate_sysroot \
+ mtd-utils-native:do_populate_sysroot \
+ "
+do_make_ubi() {
+ cfg=ubinize-${IMAGE_NAME}.cfg
rm -f $cfg ubi-img
-
# Construct the ubinize config file
- add_volume $cfg 0 static kernel-0 \
+ add_volume $cfg 0 static kernel-${VERSION_ID} \
${DEPLOY_DIR_IMAGE}/${FLASH_KERNEL_IMAGE}
- add_volume $cfg 1 static rofs-0 \
+ add_volume $cfg 1 static rofs-${VERSION_ID} \
${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${FLASH_UBI_BASETYPE}
add_volume $cfg 2 dynamic rwfs rwfs.${FLASH_UBI_OVERLAY_BASETYPE} ${FLASH_UBI_RWFS_TXT_SIZE}
@@ -168,8 +180,8 @@ do_generate_ubi() {
cd ${IMGDEPLOYDIR}
ln -sf ${IMAGE_NAME}.ubi.mtd ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.ubi.mtd
}
-do_generate_ubi[dirs] = "${S}/ubi"
-do_generate_ubi[depends] += " \
+do_make_ubi[dirs] = "${S}/ubi"
+do_make_ubi[depends] += " \
${PN}:do_image_${@d.getVar('FLASH_UBI_BASETYPE', True).replace('-', '_')} \
virtual/kernel:do_deploy \
u-boot:do_populate_sysroot \
@@ -281,19 +293,7 @@ do_generate_ubi_tar[depends] += " \
"
python do_generate_phosphor_manifest() {
- import configparser
- import io
- path = d.getVar('STAGING_DIR_HOST', True) + d.getVar('sysconfdir', True)
- path = os.path.join(path, 'os-release')
- parser = configparser.SafeConfigParser(strict=False)
- parser.optionxform = str
- version = ''
- with open(path, 'r') as fd:
- buf = '[root]\n' + fd.read()
- fd = io.StringIO(buf)
- parser.readfp(fd)
- version = parser['root']['VERSION_ID']
-
+ version = do_get_version(d)
with open('MANIFEST', 'w') as fd:
fd.write('purpose=xyz.openbmc_project.Software.Version.VersionPurpose.BMC\n')
fd.write('version={}\n'.format(version.strip('"')))