[PATCH v7 09/11] sandbox: capsule: Generate capsule related files through binman
Simon Glass
sjg at chromium.org
Sat Aug 5 17:04:00 CEST 2023
Hi Sughosh,
On Sat, 5 Aug 2023 at 05:35, Sughosh Ganu <sughosh.ganu at linaro.org> wrote:
>
> The EFI capsule files can now be generated as part of u-boot
> build through binman. Add capsule entry nodes in the u-boot.dtsi for
> the sandbox architecture for generating the capsules. These capsules
> are then used for testing the EFI capsule update functionality on the
> sandbox platforms. Also add binman nodes for generating the input
> files used for these capsules.
>
> Remove the corresponding logic which was used for generation of these
> input files which is now superfluous.
>
> Signed-off-by: Sughosh Ganu <sughosh.ganu at linaro.org>
> ---
> Changes since V6:
> * Use macros defined in sandbox_efi_capsule for GUIDs and capsule
> input filenames.
> * Generate the capsule input files through binman text entries.
>
> arch/sandbox/dts/u-boot.dtsi | 363 ++++++++++++++++++
> include/sandbox_efi_capsule.h | 11 +
> test/py/tests/test_efi_capsule/conftest.py | 168 +-------
> test/py/tests/test_efi_capsule/signature.dts | 10 -
> .../tests/test_efi_capsule/uboot_bin_env.its | 36 --
> 5 files changed, 385 insertions(+), 203 deletions(-)
> delete mode 100644 test/py/tests/test_efi_capsule/signature.dts
> delete mode 100644 test/py/tests/test_efi_capsule/uboot_bin_env.its
I think you are still getting confused with using filenames when you
don't need to. See below...
>
> diff --git a/arch/sandbox/dts/u-boot.dtsi b/arch/sandbox/dts/u-boot.dtsi
> index 60bd004937..f1b16b41c2 100644
> --- a/arch/sandbox/dts/u-boot.dtsi
> +++ b/arch/sandbox/dts/u-boot.dtsi
> @@ -7,11 +7,374 @@
> */
>
> #ifdef CONFIG_EFI_HAVE_CAPSULE_SUPPORT
> +
> +#include <sandbox_efi_capsule.h>
> +
> / {
> #ifdef CONFIG_EFI_CAPSULE_AUTHENTICATE
> signature {
> capsule-key = /incbin/(CONFIG_EFI_CAPSULE_ESL_FILE);
> };
> #endif
> +
> + binman: binman {
> + multiple-images;
> + };
> +};
> +
> +&binman {
> + input1 {
> + filename = UBOOT_BIN_IMAGE_OLD;
> + text {
> + text = "u-boot:Old";
> + };
> + };
> +
> + input2 {
> + filename = UBOOT_BIN_IMAGE_NEW;
> + text {
> + text = "u-boot:New";
> + };
> + };
> +
> + input3 {
> + filename = UBOOT_ENV_IMAGE_OLD;
> + text {
> + text = "u-boot-env:Old";
> + };
> + };
> +
> + input4 {
> + filename = UBOOT_ENV_IMAGE_NEW;
> + text {
> + text = "u-boot-env:New";
> + };
> + };
All of those nodes can be removed
> +
> + itb {
> + filename = UBOOT_FIT_IMAGE;
> +
> + fit {
> + description = "Automatic U-Boot environment update";
> + #address-cells = <2>;
> +
> + images {
> + u-boot-bin {
> + description = "U-Boot binary on SPI Flash";
> + compression = "none";
> + type = "firmware";
> + arch = "sandbox";
> + load = <0>;
> + blob {
> + filename = UBOOT_BIN_IMAGE_NEW;
> + };
instead of this blob node, you should be able to write:
text {
text = "u-boot:Old";
};
There is no need to provide filenames in every node.
> +
> + hash-1 {
> + algo = "sha1";
> + };
> + };
> + u-boot-env {
> + description = "U-Boot environment on SPI Flash";
> + compression = "none";
> + type = "firmware";
> + arch = "sandbox";
> + load = <0>;
> + blob {
> + filename = UBOOT_ENV_IMAGE_NEW;
> + };
same here and below
> +
> + hash-1 {
> + algo = "sha1";
> + };
> + };
> + };
> + };
> + };
> +
> + capsule1 {
> + filename = "Test01";
> + capsule {
> + type = "efi-capsule";
> + image-index = <0x1>;
> + image-type-id = SANDBOX_UBOOT_IMAGE_GUID;
> +
> + blob {
> + filename = UBOOT_BIN_IMAGE_NEW;
> + };
again this should be a text node
same below
> + };
> + };
> +
> + capsule2 {
> + filename = "Test02";
> + capsule {
> + type = "efi-capsule";
> + image-index = <0x2>;
> + image-type-id = SANDBOX_UBOOT_ENV_IMAGE_GUID;
> +
> + blob {
> + filename = UBOOT_ENV_IMAGE_NEW;
> + };
> + };
> + };
> +
> + capsule3 {
> + filename = "Test03";
> + capsule {
> + type = "efi-capsule";
> + image-index = <0x1>;
> + image-type-id = SANDBOX_INCORRECT_GUID;
> +
> + blob {
> + filename = UBOOT_BIN_IMAGE_NEW;
> + };
> + };
> + };
> +
> + capsule4 {
> + filename = "Test04";
> + capsule {
> + type = "efi-capsule";
> + image-index = <0x1>;
> + image-type-id = SANDBOX_FIT_IMAGE_GUID;
> +
> + blob {
> + filename =
[..]
> + capsule19 {
> + filename = "Test115";
[..]
We really need to talk about these tests. So many cases! Can you not
reduce this?
Regards,
Simon
More information about the U-Boot
mailing list