Hi Patrick On 9/6/22 18:53, Patrick Delaunay wrote: > Solve many compilation warning when stm32prog is activated on the aarch64. > > Signed-off-by: Patrick Delaunay <patrick.delau...@foss.st.com> > --- > > .../mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c | 14 +++++++------- > arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c | 16 ++++++++-------- > arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h | 14 +++++++------- > .../cmd_stm32prog/stm32prog_serial.c | 15 +++++++-------- > .../mach-stm32mp/cmd_stm32prog/stm32prog_usb.c | 4 ++-- > 5 files changed, 31 insertions(+), 32 deletions(-) > > diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c > b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c > index cb9e20da136..d2666b97757 100644 > --- a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c > +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c > @@ -126,21 +126,21 @@ static int do_stm32prog(struct cmd_tbl *cmdtp, int > flag, int argc, > char *bootm_argv[5] = { > "bootm", boot_addr_start, "-", dtb_addr, NULL > }; > - u32 uimage = data->uimage; > - u32 dtb = data->dtb; > - u32 initrd = data->initrd; > + const void *uimage = (void *)data->uimage; > + const void *dtb = (void *)data->dtb; > + const void *initrd = (void *)data->initrd; > > if (!dtb) > bootm_argv[3] = env_get("fdtcontroladdr"); > else > snprintf(dtb_addr, sizeof(dtb_addr) - 1, > - "0x%x", dtb); > + "0x%p", dtb); > > snprintf(boot_addr_start, sizeof(boot_addr_start) - 1, > - "0x%x", uimage); > + "0x%p", uimage); > > if (initrd) { > - snprintf(initrd_addr, sizeof(initrd_addr) - 1, > "0x%x:0x%x", > + snprintf(initrd_addr, sizeof(initrd_addr) - 1, > "0x%p:0x%zx", > initrd, data->initrd_size); > bootm_argv[2] = initrd_addr; > } > @@ -148,7 +148,7 @@ static int do_stm32prog(struct cmd_tbl *cmdtp, int flag, > int argc, > printf("Booting kernel at %s %s %s...\n\n\n", > boot_addr_start, bootm_argv[2], bootm_argv[3]); > /* Try bootm for legacy and FIT format image */ > - if (genimg_get_format((void *)uimage) != IMAGE_FORMAT_INVALID) > + if (genimg_get_format(uimage) != IMAGE_FORMAT_INVALID) > do_bootm(cmdtp, 0, 4, bootm_argv); > else if (CONFIG_IS_ENABLED(CMD_BOOTZ)) > do_bootz(cmdtp, 0, 4, bootm_argv); > diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c > b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c > index 3b2652a0e0d..67be1ac7ff8 100644 > --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c > +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c > @@ -322,7 +322,7 @@ void stm32prog_header_check(uintptr_t raw_header, struct > image_header_s *header) > header->image_length = 0x0; > } > > -static u32 stm32prog_header_checksum(u32 addr, struct image_header_s *header) > +static u32 stm32prog_header_checksum(uintptr_t addr, struct image_header_s > *header) > { > u32 i, checksum; > u8 *payload; > @@ -398,7 +398,7 @@ static int parse_name(struct stm32prog_data *data, > if (strlen(p) < sizeof(part->name)) { > strcpy(part->name, p); > } else { > - stm32prog_err("Layout line %d: partition name too long [%d]: > %s", > + stm32prog_err("Layout line %d: partition name too long [%zd]: > %s", > i, strlen(p), p); > result = -EINVAL; > } > @@ -537,7 +537,7 @@ int (* const parse[COL_NB_STM32])(struct stm32prog_data > *data, int i, char *p, > }; > > static int parse_flash_layout(struct stm32prog_data *data, > - ulong addr, > + uintptr_t addr, > ulong size) > { > int column = 0, part_nb = 0, ret; > @@ -1440,7 +1440,7 @@ int stm32prog_otp_write(struct stm32prog_data *data, > u32 offset, u8 *buffer, > if (offset + *size > otp_size) > *size = otp_size - offset; > > - memcpy((void *)((u32)data->otp_part + offset), buffer, *size); > + memcpy((void *)((uintptr_t)data->otp_part + offset), buffer, *size); > > return 0; > } > @@ -1479,7 +1479,7 @@ int stm32prog_otp_read(struct stm32prog_data *data, u32 > offset, u8 *buffer, > data->otp_part, OTP_SIZE_TA); > else if (IS_ENABLED(CONFIG_ARM_SMCCC)) > result = stm32_smc_exec(STM32_SMC_BSEC, > STM32_SMC_READ_ALL, > - (u32)data->otp_part, 0); > + (unsigned long)data->otp_part, > 0); > if (result) > goto end_otp_read; > } > @@ -1491,7 +1491,7 @@ int stm32prog_otp_read(struct stm32prog_data *data, u32 > offset, u8 *buffer, > > if (offset + *size > otp_size) > *size = otp_size - offset; > - memcpy(buffer, (void *)((u32)data->otp_part + offset), *size); > + memcpy(buffer, (void *)((uintptr_t)data->otp_part + offset), *size); > > end_otp_read: > log_debug("%s: result %i\n", __func__, result); > @@ -1521,7 +1521,7 @@ int stm32prog_otp_start(struct stm32prog_data *data) > data->otp_part, OTP_SIZE_TA); > } else if (IS_ENABLED(CONFIG_ARM_SMCCC)) { > arm_smccc_smc(STM32_SMC_BSEC, STM32_SMC_WRITE_ALL, > - (u32)data->otp_part, 0, 0, 0, 0, 0, &res); > + (uintptr_t)data->otp_part, 0, 0, 0, 0, 0, &res); > > if (!res.a0) { > switch (res.a1) { > @@ -1951,7 +1951,7 @@ int stm32prog_dfu_init(struct stm32prog_data *data) > return dfu_init_entities(data); > } > > -int stm32prog_init(struct stm32prog_data *data, ulong addr, ulong size) > +int stm32prog_init(struct stm32prog_data *data, uintptr_t addr, ulong size) > { > memset(data, 0x0, sizeof(*data)); > data->read_phase = PHASE_RESET; > diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h > b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h > index ac300768ca0..397506ac47c 100644 > --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h > +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h > @@ -154,7 +154,7 @@ struct stm32prog_data { > u32 offset; > char error[255]; > struct stm32prog_part_t *cur_part; > - u32 *otp_part; > + void *otp_part; > u8 pmic_part[PMIC_SIZE]; > > /* SERIAL information */ > @@ -165,12 +165,12 @@ struct stm32prog_data { > u8 read_phase; > > /* bootm information */ > - u32 uimage; > - u32 dtb; > - u32 initrd; > - u32 initrd_size; > + uintptr_t uimage; > + uintptr_t dtb; > + uintptr_t initrd; > + size_t initrd_size; > > - u32 script; > + uintptr_t script; > > /* OPTEE PTA NVMEM */ > struct udevice *tee; > @@ -209,7 +209,7 @@ char *stm32prog_get_error(struct stm32prog_data *data); > } > > /* Main function */ > -int stm32prog_init(struct stm32prog_data *data, ulong addr, ulong size); > +int stm32prog_init(struct stm32prog_data *data, uintptr_t addr, ulong size); > void stm32prog_clean(struct stm32prog_data *data); > > #ifdef CONFIG_CMD_STM32PROG_SERIAL > diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_serial.c > b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_serial.c > index 1bf5f5ae0ac..9f2ab2b625c 100644 > --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_serial.c > +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_serial.c > @@ -300,7 +300,7 @@ static void stm32prog_serial_putc(u8 w_byte) > } > > /* Helper function ************************************************/ > -static u8 stm32prog_start(struct stm32prog_data *data, u32 address) > +static u8 stm32prog_start(struct stm32prog_data *data, uintptr_t address) > { > u8 ret = 0; > struct dfu_entity *dfu_entity; > @@ -353,7 +353,7 @@ static u8 stm32prog_start(struct stm32prog_data *data, > u32 address) > } else { > void (*entry)(void) = (void *)address; > > - printf("## Starting application at 0x%x ...\n", address); > + printf("## Starting application at 0x%p ...\n", (void > *)address); > (*entry)(); > printf("## Application terminated\n"); > ret = -ENOEXEC; > @@ -368,9 +368,9 @@ static u8 stm32prog_start(struct stm32prog_data *data, > u32 address) > * @tmp_xor: Current xor value to update > * Return: The address area > */ > -static u32 get_address(u8 *tmp_xor) > +static uintptr_t get_address(u8 *tmp_xor) > { > - u32 address = 0x0; > + uintptr_t address = 0x0; > u8 data; > > data = stm32prog_serial_getc(); > @@ -487,7 +487,7 @@ static void get_phase_command(struct stm32prog_data *data) > */ > static void read_memory_command(struct stm32prog_data *data) > { > - u32 address = 0x0; > + uintptr_t address = 0x0; > u8 rcv_data = 0x0, tmp_xor = 0x0; > u32 counter = 0x0; > > @@ -532,7 +532,7 @@ static void read_memory_command(struct stm32prog_data > *data) > */ > static void start_command(struct stm32prog_data *data) > { > - u32 address = 0; > + uintptr_t address = 0; > u8 tmp_xor = 0x0; > u8 ret, rcv_data; > > @@ -546,8 +546,7 @@ static void start_command(struct stm32prog_data *data) > return; > } > /* validate partition */ > - ret = stm32prog_start(data, > - address); > + ret = stm32prog_start(data, address); > > if (ret) > stm32prog_serial_result(ABORT_BYTE); > diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c > b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c > index bcb4d373f69..be38ff239b2 100644 > --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c > +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c > @@ -41,7 +41,7 @@ static int stm32prog_set_phase(struct stm32prog_data *data, > u8 phase, > static int stm32prog_cmd_write(u64 offset, void *buf, long *len) > { > u8 phase; > - u32 address; > + uintptr_t address; > u8 *pt = buf; > void (*entry)(void); > int ret; > @@ -58,7 +58,7 @@ static int stm32prog_cmd_write(u64 offset, void *buf, long > *len) > address = (pt[1] << 24) | (pt[2] << 16) | (pt[3] << 8) | pt[4]; > if (phase == PHASE_RESET) { > entry = (void *)address; > - printf("## Starting application at 0x%x ...\n", address); > + printf("## Starting application at 0x%p ...\n", entry); > (*entry)(); > printf("## Application terminated\n"); > return 0;
Reviewed-by: Patrice Chotard <patrice.chot...@foss.st.com> Thanks Patrice