Hi Michael, On 01/09/2015 23:58, Michael Heimpold wrote: > Running mxsboot on a big-endian system produces a sd image which > cannot be started by the i.MX28 ROM. It complains on the debug > uart as following:
I confess that I never tested mxsboot and/or mkimage on a big endian host. I am expecting there are similar issues with mkimage and imximage, too.... > 0x8020a009 > 0x80502008 > 0x8020a009 > 0x80502008 > ... > > Enforcing all fields within the BCB to little-endian make > the image bootable again. > > Signed-off-by: Michael Heimpold <[email protected]> > --- > tools/mxsboot.c | 19 ++++++++++--------- > 1 file changed, 10 insertions(+), 9 deletions(-) > > diff --git a/tools/mxsboot.c b/tools/mxsboot.c > index 185b327..8284e95 100644 > --- a/tools/mxsboot.c > +++ b/tools/mxsboot.c > @@ -7,6 +7,7 @@ > * SPDX-License-Identifier: GPL-2.0+ > */ > > +#include <endian.h> > #include <fcntl.h> > #include <sys/stat.h> > #include <sys/types.h> > @@ -569,15 +570,15 @@ static int mx28_create_sd_image(int infd, int outfd) > > cb = (struct mx28_sd_config_block *)buf; > > - cb->signature = 0x00112233; > - cb->primary_boot_tag = 0x1; > - cb->secondary_boot_tag = 0x1; > - cb->num_copies = 1; > - cb->drv_info[0].chip_num = 0x0; > - cb->drv_info[0].drive_type = 0x0; > - cb->drv_info[0].tag = 0x1; > - cb->drv_info[0].first_sector_number = sd_sector + 4; > - cb->drv_info[0].sector_count = (size - 4) / 512; > + cb->signature = htole32(0x00112233); > + cb->primary_boot_tag = htole32(0x1); > + cb->secondary_boot_tag = htole32(0x1); > + cb->num_copies = htole32(1); > + cb->drv_info[0].chip_num = htole32(0x0); > + cb->drv_info[0].drive_type = htole32(0x0); > + cb->drv_info[0].tag = htole32(0x1); > + cb->drv_info[0].first_sector_number = htole32(sd_sector + 4); > + cb->drv_info[0].sector_count = htole32((size - 4) / 512); > > wr_size = write(outfd, buf, size); > if (wr_size != size) { > Looks ok to me ! Acked-by: Stefano Babic <[email protected]> Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: [email protected] ===================================================================== _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

