On Thu, 24 Mar 2022 at 20:40, Michal Simek <michal.si...@xilinx.com> wrote: > > > > On 3/24/22 15:51, Sughosh Ganu wrote: > > On Thu, 24 Mar 2022 at 19:55, Michal Simek <michal.si...@xilinx.com> wrote: > >> > >> > >> > >> On 3/24/22 13:39, Sughosh Ganu wrote: > >>> While building a capsule, the GUID value of that specific image is to > >>> be passed through the --guid command option to the mkeficapsule > >>> tool. This renders the EFI_FIRMWARE_IMAGE_TYPE_UBOOT_FIT_GUID and > >>> EFI_FIRMWARE_IMAGE_TYPE_UBOOT_RAW_GUID values superfluous. Remove the > >>> --raw and --fit command line options as well. > >>> > >>> Signed-off-by: Sughosh Ganu <sughosh.g...@linaro.org> > >>> --- > >>> tools/eficapsule.h | 8 -------- > >>> tools/mkeficapsule.c | 26 +------------------------- > >>> 2 files changed, 1 insertion(+), 33 deletions(-) > >>> > >>> diff --git a/tools/eficapsule.h b/tools/eficapsule.h > >>> index 69c9c58c2f..d63b831443 100644 > >>> --- a/tools/eficapsule.h > >>> +++ b/tools/eficapsule.h > >>> @@ -37,14 +37,6 @@ typedef struct { > >>> EFI_GUID(0x6dcbd5ed, 0xe82d, 0x4c44, 0xbd, 0xa1, \ > >>> 0x71, 0x94, 0x19, 0x9a, 0xd9, 0x2a) > >>> > >>> -#define EFI_FIRMWARE_IMAGE_TYPE_UBOOT_FIT_GUID \ > >>> - EFI_GUID(0xae13ff2d, 0x9ad4, 0x4e25, 0x9a, 0xc8, \ > >>> - 0x6d, 0x80, 0xb3, 0xb2, 0x21, 0x47) > >>> - > >>> -#define EFI_FIRMWARE_IMAGE_TYPE_UBOOT_RAW_GUID \ > >>> - EFI_GUID(0xe2bb9c06, 0x70e9, 0x4b14, 0x97, 0xa3, \ > >>> - 0x5a, 0x79, 0x13, 0x17, 0x6e, 0x3f) > >>> - > >>> #define EFI_CERT_TYPE_PKCS7_GUID \ > >>> EFI_GUID(0x4aafd29d, 0x68df, 0x49ee, 0x8a, 0xa9, \ > >>> 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7) > >>> diff --git a/tools/mkeficapsule.c b/tools/mkeficapsule.c > >>> index c118335b93..5f74d23b9e 100644 > >>> --- a/tools/mkeficapsule.c > >>> +++ b/tools/mkeficapsule.c > >>> @@ -27,17 +27,11 @@ > >>> static const char *tool_name = "mkeficapsule"; > >>> > >>> efi_guid_t efi_guid_fm_capsule = > >>> EFI_FIRMWARE_MANAGEMENT_CAPSULE_ID_GUID; > >>> -efi_guid_t efi_guid_image_type_uboot_fit = > >>> - EFI_FIRMWARE_IMAGE_TYPE_UBOOT_FIT_GUID; > >>> -efi_guid_t efi_guid_image_type_uboot_raw = > >>> - EFI_FIRMWARE_IMAGE_TYPE_UBOOT_RAW_GUID; > >>> efi_guid_t efi_guid_cert_type_pkcs7 = EFI_CERT_TYPE_PKCS7_GUID; > >>> > >>> -static const char *opts_short = "frg:i:I:v:p:c:m:dh"; > >>> +static const char *opts_short = "g:i:I:v:p:c:m:dh"; > >>> > >>> static struct option options[] = { > >>> - {"fit", no_argument, NULL, 'f'}, > >>> - {"raw", no_argument, NULL, 'r'}, > >>> {"guid", required_argument, NULL, 'g'}, > >>> {"index", required_argument, NULL, 'i'}, > >>> {"instance", required_argument, NULL, 'I'}, > >>> @@ -54,8 +48,6 @@ static void print_usage(void) > >>> fprintf(stderr, "Usage: %s [options] <image blob> <output file>\n" > >>> "Options:\n" > >>> > >>> - "\t-f, --fit FIT image type\n" > >>> - "\t-r, --raw raw image type\n" > >>> "\t-g, --guid <guid string> guid for image blob type\n" > >>> "\t-i, --index <index> update image index\n" > >>> "\t-I, --instance <instance> update hardware instance\n" > >>> @@ -606,22 +598,6 @@ int main(int argc, char **argv) > >>> break; > >>> > >>> switch (c) { > >>> - case 'f': > >>> - if (guid) { > >>> - fprintf(stderr, > >>> - "Image type already specified\n"); > >>> - exit(EXIT_FAILURE); > >>> - } > >>> - guid = &efi_guid_image_type_uboot_fit; > >>> - break; > >>> - case 'r': > >>> - if (guid) { > >>> - fprintf(stderr, > >>> - "Image type already specified\n"); > >>> - exit(EXIT_FAILURE); > >>> - } > >>> - guid = &efi_guid_image_type_uboot_raw; > >>> - break; > >>> case 'g': > >>> if (guid) { > >>> fprintf(stderr, > >> > >> Can you please find a way how to export guid based on what you build? > >> I think the best would be when capsules are enable to generated them > >> directly as > >> the part of build process with proper guids. > > > > I don't know how that can be done in a generic way. A platform might > > have more than one updatable image. So for doing what you are > > suggesting, we will need to a) pass the board for which the capsule is > > generated, and b) for which image in that board is the capsule > > generated. Currently, the mkeficapsule command parameters are on > > pretty much similar lines to what we have in the EDK2 GenerateCapsule > > tool. Can you not have a script for the xilinx boards which does what > > you are suggesting. That script can populate the GUID and image index > > values and then call the mkeficapsule tool. > > Custom script in board can of course do it but pretty much all information is > just added by your support for all boards. > guid should also dictates image index. > > That's why if this is done in a generic way the same script can be used by all > platforms. > It means exported file with guid, file name. If that file exists mkeficapsule > can read it and just create capsules based on it. > > It is not a must but I think it is good time to think about how this can be > done > because there are likely a lot of similarities across boards. And we shouldn't > end up in situation where every board has own (pretty much similar) script > which > generates capsules.
Yes, it can indeed be made generic across platforms. Only have it separate from the mkeficapsule tool. -sughosh > > Thanks, > Michal