From: Gowtham Suresh Kumar <Gowtham.SureshKumar@arm.com>
To: Jose Quaresma <quaresma.jose@gmail.com>
Cc: "meta-arm@lists.yoctoproject.org"
<meta-arm@lists.yoctoproject.org>,
Ross Burton <Ross.Burton@arm.com>, nd <nd@arm.com>
Subject: Re: [meta-arm] [PATCH 2/2] arm-bsp/uefi_capsule: Use json file to pass capsule config
Date: Wed, 15 Feb 2023 12:44:05 +0000 [thread overview]
Message-ID: <AS8PR08MB7173457DC8CA031163EAB41AE0A39@AS8PR08MB7173.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <CANPvuRkftB6dqw2cLtTCmKQQodEixDYwN7NbTCNfUmm0ZdA6yw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 6017 bytes --]
Hello Jose,
The CAPSULE_IMGTYPE is used in the uefi_capsule.bbclass as shown below.
IMAGE_TYPEDEP:uefi_capsule:append = "${CAPSULE_IMGTYPE}"
Best regards,
Gowtham Suresh Kumar
________________________________
From: Jose Quaresma <quaresma.jose@gmail.com>
Sent: Wednesday, February 15, 2023 12:23 PM
To: Gowtham Suresh Kumar <Gowtham.SureshKumar@arm.com>
Cc: meta-arm@lists.yoctoproject.org <meta-arm@lists.yoctoproject.org>; Ross Burton <Ross.Burton@arm.com>; nd <nd@arm.com>
Subject: Re: [meta-arm] [PATCH 2/2] arm-bsp/uefi_capsule: Use json file to pass capsule config
Hi Gowtham,
Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com<mailto:gowtham.sureshkumar@arm.com>> escreveu no dia quarta, 15/02/2023 à(s) 10:42:
From: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com<mailto:gowtham.sureshkumar@arm.com>>
This patch uses the json config file for UEFI capsule generation
as this is efficient and easily scalable to generate multiple
capsules.
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com<mailto:gowtham.sureshkumar@arm.com>>
---
.../recipes-bsp/images/corstone1000-image.bb<http://corstone1000-image.bb> | 8 +++---
...rstone1000-image-capsule-update-image.json | 11 ++++++++
meta-arm/classes/uefi_capsule.bbclass | 27 ++++++++++++-------
3 files changed, 32 insertions(+), 14 deletions(-)
create mode 100644 meta-arm-bsp/recipes-bsp/images/files/corstone1000-image-capsule-update-image.json
diff --git a/meta-arm-bsp/recipes-bsp/images/corstone1000-image.bb<http://corstone1000-image.bb> b/meta-arm-bsp/recipes-bsp/images/corstone1000-image.bb<http://corstone1000-image.bb>
index b0a71bca..ce4df8a6 100644
--- a/meta-arm-bsp/recipes-bsp/images/corstone1000-image.bb<http://corstone1000-image.bb>
+++ b/meta-arm-bsp/recipes-bsp/images/corstone1000-image.bb<http://corstone1000-image.bb>
@@ -13,11 +13,9 @@ PACKAGE_INSTALL = ""
IMAGE_FSTYPES += "wic wic.nopt uefi_capsule"
-UEFI_FIRMWARE_BINARY = "corstone1000-image-${MACHINE}.wic.nopt"
-UEFI_FIRMWARE_VERSION = "5"
-UEFI_FIRMWARE_LSV = "0"
-UEFI_FIRMWARE_GUID = "e2bb9c06-70e9-4b14-97a3-5a7913176e3f"
-UEFI_FIRMWARE_UPDATE_INDEX = "0"
+UEFI_FIRMWARE_BINARY = "${PN}-${MACHINE}.wic.nopt"
+UEFI_CAPSULE_CONFIG = "${THISDIR}/files/${PN}-capsule-update-image.json"
+CAPSULE_IMGTYPE = "wic.nopt"
Looks like this variable is not used anywhere.
Jose
do_sign_images() {
# Sign TF-A BL2
diff --git a/meta-arm-bsp/recipes-bsp/images/files/corstone1000-image-capsule-update-image.json b/meta-arm-bsp/recipes-bsp/images/files/corstone1000-image-capsule-update-image.json
new file mode 100644
index 00000000..0f011ff7
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/images/files/corstone1000-image-capsule-update-image.json
@@ -0,0 +1,11 @@
+{
+ "Payloads": [
+ {
+ "FwVersion": "5",
+ "Guid": "e2bb9c06-70e9-4b14-97a3-5a7913176e3f",
+ "LowestSupportedVersion": "1",
+ "Payload": "$UEFI_FIRMWARE_BINARY",
+ "UpdateImageIndex": "0"
+ }
+ ]
+}
diff --git a/meta-arm/classes/uefi_capsule.bbclass b/meta-arm/classes/uefi_capsule.bbclass
index 0c3d3845..cf708412 100644
--- a/meta-arm/classes/uefi_capsule.bbclass
+++ b/meta-arm/classes/uefi_capsule.bbclass
@@ -1,6 +1,7 @@
# This class generates UEFI capsules
# The current class supports generating a capsule with single firmware binary
+DEPENDS += "gettext-native"
inherit python3native
IMAGE_TYPES += "uefi_capsule"
@@ -19,14 +20,11 @@ CAPSULE_EXTENSION ?= "uefi.capsule"
# The following variables must be set to be able to generate a capsule update
UEFI_FIRMWARE_BINARY ?= ""
-UEFI_FIRMWARE_VERSION ?= ""
-UEFI_FIRMWARE_LSV ?= ""
-UEFI_FIRMWARE_GUID ?= ""
-UEFI_FIRMWARE_UPDATE_INDEX ?= ""
+UEFI_CAPSULE_CONFIG ?= ""
# Check if the required variables are set
python() {
- for var in ["UEFI_FIRMWARE_BINARY", "UEFI_FIRMWARE_VERSION", "UEFI_FIRMWARE_LSV", "UEFI_FIRMWARE_GUID", "UEFI_FIRMWARE_UPDATE_INDEX"]:
+ for var in ["UEFI_FIRMWARE_BINARY", "UEFI_CAPSULE_CONFIG"]:
if not d.getVar(var):
raise bb.parse.SkipRecipe(f"{var} not set")
}
@@ -36,10 +34,21 @@ IMAGE_CMD:uefi_capsule(){
# Force the GenerateCapsule script to use python3
export PYTHON_COMMAND=${PYTHON}
- ${STAGING_DIR_NATIVE}/usr/bin/edk2-BaseTools/BinWrappers/PosixLike/GenerateCapsule -e -o \
- ${CAPSULE_IMGLOCATION}/${UEFI_FIRMWARE_BINARY}.${CAPSULE_EXTENSION} --fw-version ${UEFI_FIRMWARE_VERSION} \
- --lsv ${UEFI_FIRMWARE_LSV} --guid ${UEFI_FIRMWARE_GUID} --verbose --update-image-index \
- ${UEFI_FIRMWARE_UPDATE_INDEX} --verbose ${CAPSULE_IMGLOCATION}/${UEFI_FIRMWARE_BINARY}
+ # Copy the firmware and the capsule config json to current directory
+ if [ -e ${CAPSULE_IMGLOCATION}/${UEFI_FIRMWARE_BINARY} ]; then
+ cp ${CAPSULE_IMGLOCATION}/${UEFI_FIRMWARE_BINARY} . ;
+ fi
+
+ export UEFI_FIRMWARE_BINARY=${UEFI_FIRMWARE_BINARY}
+ envsubst < ${UEFI_CAPSULE_CONFIG} > ./${MACHINE}-capsule-update-image.json
+
+ ${STAGING_DIR_NATIVE}/usr/bin/edk2-BaseTools/BinWrappers/PosixLike/GenerateCapsule \
+ -e -o ${UEFI_FIRMWARE_BINARY}.${CAPSULE_EXTENSION} -j \
+ ${MACHINE}-capsule-update-image.json
+
+ # Remove the firmware to avoid contamination of IMGDEPLOYDIR
+ rm ${UEFI_FIRMWARE_BINARY}
+
}
# The firmware binary should be created before generating the capsule
--
2.17.1
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#4391): https://lists.yoctoproject.org/g/meta-arm/message/4391
Mute This Topic: https://lists.yoctoproject.org/mt/96980035/5052612
Group Owner: meta-arm+owner@lists.yoctoproject.org<mailto:meta-arm%2Bowner@lists.yoctoproject.org>
Unsubscribe: https://lists.yoctoproject.org/g/meta-arm/unsub [quaresma.jose@gmail.com<mailto:quaresma.jose@gmail.com>]
-=-=-=-=-=-=-=-=-=-=-=-
--
Best regards,
José Quaresma
[-- Attachment #2: Type: text/html, Size: 11995 bytes --]
next prev parent reply other threads:[~2023-02-15 12:44 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-15 10:42 [PATCH 0/2] Update UEFI capsule generation to use json config file gowtham.sureshkumar
2023-02-15 10:42 ` [PATCH 1/2] arm/edk2-basetools: Convert edk2 basetools recipes to native only gowtham.sureshkumar
2023-02-15 10:42 ` [PATCH 2/2] arm-bsp/uefi_capsule: Use json file to pass capsule config gowtham.sureshkumar
2023-02-15 12:23 ` [meta-arm] " Jose Quaresma
2023-02-15 12:44 ` Gowtham Suresh Kumar [this message]
2023-02-15 13:14 ` Jose Quaresma
2023-02-17 4:30 ` [PATCH 0/2] Update UEFI capsule generation to use json config file Jon Mason
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-all 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=AS8PR08MB7173457DC8CA031163EAB41AE0A39@AS8PR08MB7173.eurprd08.prod.outlook.com \
--to=gowtham.sureshkumar@arm.com \
--cc=Ross.Burton@arm.com \
--cc=meta-arm@lists.yoctoproject.org \
--cc=nd@arm.com \
--cc=quaresma.jose@gmail.com \
/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;
as well as URLs for NNTP newsgroup(s).