On 2/7/21 10:27 PM, Simon Glass wrote:
This occur when building on Raspberry Pi 400 (32-bit ARM). Fix them.

Examples:

cmd/efidebug.c: In function ‘do_efi_capsule_update’:
cmd/efidebug.c:75:49: warning: cast from pointer to integer of different
        size [-Wpointer-to-int-cast]
   ret = EFI_CALL(RT->update_capsule(&capsule, 1, (u64)NULL));
                                                  ^
include/efi_loader.h:104:9: note: in definition of macro ‘EFI_CALL’
   typeof(exp) _r = exp; \
          ^~~
cmd/efidebug.c:75:49: warning: cast from pointer to integer of different
        size [-Wpointer-to-int-cast]
   ret = EFI_CALL(RT->update_capsule(&capsule, 1, (u64)NULL));
                                                  ^
include/efi_loader.h:104:19: note: in definition of macro ‘EFI_CALL’
   typeof(exp) _r = exp; \
                    ^~~

In file included from include/common.h:20,
                  from lib/efi_loader/efi_capsule.c:9:
lib/efi_loader/efi_capsule.c: In function ‘efi_update_capsule’:
include/efi_loader.h:83:8: warning: format ‘%lu’ expects argument of type
        ‘long unsigned int’, but argument 10 has type ‘size_t’
        {aka ‘unsigned int’} [-Wformat=]
   debug("%sEFI: Entry %s(" format ")\n", __efi_nesting_inc(), \
         ^~~~~~~~~~~~~~~~~~
include/linux/printk.h:37:21: note: in definition of macro ‘pr_fmt’
  #define pr_fmt(fmt) fmt
                      ^~~
include/log.h:229:2: note: in expansion of macro ‘log’
   log(LOG_CATEGORY, LOGL_DEBUG, fmt, ##args); \
   ^~~
include/log.h:249:2: note: in expansion of macro ‘debug_cond’
   debug_cond(_DEBUG, fmt, ##args)
   ^~~~~~~~~~
include/efi_loader.h:83:2: note: in expansion of macro ‘debug’
   debug("%sEFI: Entry %s(" format ")\n", __efi_nesting_inc(), \
   ^~~~~
lib/efi_loader/efi_capsule.c:444:2: note: in expansion of macro ‘EFI_ENTRY’
   EFI_ENTRY("%p, %lu, %llu\n", capsule_header_array, capsule_count,
   ^~~~~~~~~
lib/efi_loader/efi_capsule.c:444:19: note: format string is defined here
   EFI_ENTRY("%p, %lu, %llu\n", capsule_header_array, capsule_count,
                  ~~^
                  %u

Signed-off-by: Simon Glass <s...@chromium.org>
---

  cmd/efidebug.c                | 2 +-
  lib/efi_loader/efi_capsule.c  | 4 ++--
  lib/efi_loader/efi_firmware.c | 4 ++--
  3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/cmd/efidebug.c b/cmd/efidebug.c
index bbbcb0a5464..09c41c950f7 100644
--- a/cmd/efidebug.c
+++ b/cmd/efidebug.c
@@ -72,7 +72,7 @@ static int do_efi_capsule_update(struct cmd_tbl *cmdtp, int 
flag,
                       capsule->capsule_image_size);
        }

-       ret = EFI_CALL(RT->update_capsule(&capsule, 1, (u64)NULL));
+       ret = EFI_CALL(RT->update_capsule(&capsule, 1, (uintptr_t)NULL));

Thanks for addressing this issue.

According to the UEFI specification the third parameter is of type
EFI_PHYSICAL_ADDRESS i.e. u64.

Simply use 0 instead of (uintptr_t)NULL.

        if (ret) {
                printf("Cannot handle a capsule at %p", capsule);
                return CMD_RET_FAILURE;
diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
index 0d5a7b63ec8..1c0462ceb21 100644
--- a/lib/efi_loader/efi_capsule.c
+++ b/lib/efi_loader/efi_capsule.c
@@ -441,7 +441,7 @@ efi_status_t EFIAPI efi_update_capsule(
        unsigned int i;
        efi_status_t ret;

-       EFI_ENTRY("%p, %lu, %llu\n", capsule_header_array, capsule_count,
+       EFI_ENTRY("%p, %zu, %llu\n", capsule_header_array, capsule_count,
                  scatter_gather_list);

ok


        if (!capsule_count) {
@@ -501,7 +501,7 @@ efi_status_t EFIAPI efi_query_capsule_caps(
        unsigned int i;
        efi_status_t ret;

-       EFI_ENTRY("%p, %lu, %p, %p\n", capsule_header_array, capsule_count,
+       EFI_ENTRY("%p, %zu, %p, %p\n", capsule_header_array, capsule_count,

ok

                  maximum_capsule_size, reset_type);

        if (!maximum_capsule_size) {
diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
index 5e401bbca2b..7a3cca27936 100644
--- a/lib/efi_loader/efi_firmware.c
+++ b/lib/efi_loader/efi_firmware.c
@@ -299,7 +299,7 @@ efi_status_t EFIAPI efi_firmware_fit_set_image(
        efi_status_t (*progress)(efi_uintn_t completion),
        u16 **abort_reason)
  {
-       EFI_ENTRY("%p %d %p %ld %p %p %p\n", this, image_index, image,
+       EFI_ENTRY("%p %d %p %zd %p %p %p\n", this, image_index, image,
                  image_size, vendor_code, progress, abort_reason);

ok


        if (!image || image_index != 1)
@@ -414,7 +414,7 @@ efi_status_t EFIAPI efi_firmware_raw_set_image(
        efi_status_t status;
        efi_uintn_t capsule_payload_size;

-       EFI_ENTRY("%p %d %p %ld %p %p %p\n", this, image_index, image,
+       EFI_ENTRY("%p %d %p %zd %p %p %p\n", this, image_index, image,

ok

Otherwise

Reviewed-by: Heinrich Schuchardt <xypron.g...@gmx.de>

                  image_size, vendor_code, progress, abort_reason);

        if (!image)


Reply via email to