tools: mkimage: fix STM32 image format for big endian hosts
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>
This commit is contained in:
parent
cf0818b477
commit
441749d9d1
@ -45,7 +45,7 @@ static void stm32image_default_header(struct stm32_header *ptr)
|
|||||||
ptr->magic_number = HEADER_MAGIC;
|
ptr->magic_number = HEADER_MAGIC;
|
||||||
ptr->header_version[VER_MAJOR_IDX] = HEADER_VERSION_V1;
|
ptr->header_version[VER_MAJOR_IDX] = HEADER_VERSION_V1;
|
||||||
ptr->option_flags = HEADER_DEFAULT_OPTION;
|
ptr->option_flags = HEADER_DEFAULT_OPTION;
|
||||||
ptr->ecdsa_algorithm = 1;
|
ptr->ecdsa_algorithm = cpu_to_le32(1);
|
||||||
ptr->binary_type = HEADER_TYPE_UBOOT;
|
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_entry_point = cpu_to_le32(params->ep);
|
||||||
stm32hdr->image_length = cpu_to_le32((uint32_t)sbuf->st_size -
|
stm32hdr->image_length = cpu_to_le32((uint32_t)sbuf->st_size -
|
||||||
sizeof(struct stm32_header));
|
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));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user