Message ID | 20200128144214.23838-1-patrick.delaunay@st.com |
---|---|
State | Accepted |
Commit | 441749d9d14d3484da1f19a0e6d4118d9fde9175 |
Delegated to: | Patrick Delaunay |
Headers | show |
Series | tools: mkimage: fix STM32 image format for big endian hosts | expand |
Hi, > From: Patrick DELAUNAY <patrick.delaunay@st.com> > Sent: mardi 28 janvier 2020 15:42 > > From: Antonio Borneo <antonio.borneo@st.com> > > Two header fields are not properly converted to little endian before assignment, > resulting in incorrect header while executing mkimage on big endian hosts. > > Convert the value of the header fields image_checksum and edcsa_algorithm to > little endian before the assignment. > > Signed-off-by: Antonio Borneo <antonio.borneo@st.com> > Reviewed-by: Patrick DELAUNAY <patrick.delaunay@st.com> > Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> > --- Applied to u-boot-stm32/master, thanks! Regards Patrick
diff --git a/tools/stm32image.c b/tools/stm32image.c index ff3ec5f3f2..18357c0518 100644 --- a/tools/stm32image.c +++ b/tools/stm32image.c @@ -45,7 +45,7 @@ static void stm32image_default_header(struct stm32_header *ptr) ptr->magic_number = HEADER_MAGIC; ptr->header_version[VER_MAJOR_IDX] = HEADER_VERSION_V1; ptr->option_flags = HEADER_DEFAULT_OPTION; - ptr->ecdsa_algorithm = 1; + ptr->ecdsa_algorithm = cpu_to_le32(1); ptr->binary_type = HEADER_TYPE_UBOOT; } @@ -131,7 +131,8 @@ static void stm32image_set_header(void *ptr, struct stat *sbuf, int ifd, stm32hdr->image_entry_point = cpu_to_le32(params->ep); stm32hdr->image_length = cpu_to_le32((uint32_t)sbuf->st_size - sizeof(struct stm32_header)); - stm32hdr->image_checksum = stm32image_checksum(ptr, sbuf->st_size); + stm32hdr->image_checksum = + cpu_to_le32(stm32image_checksum(ptr, sbuf->st_size)); } /*