imx: rom api: fix image offset computation
authorSébastien Szymanski <sebastien.szymanski@armadeus.com>
Wed, 13 May 2020 14:02:28 +0000 (16:02 +0200)
committerStefano Babic <sbabic@denx.de>
Mon, 8 Jun 2020 08:42:14 +0000 (10:42 +0200)
When not booting from FlexSPI, the offset computation is:

offset = image_offset + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512 - 0x8000;

When booting from SD card or eMMC user partition, image_offset is
0x8000. It is useless to add and remove 0x8000.
When booting from other device, image_offset is 0 so this computation is wrong.

Simplfy this computation to work on all booting devices.

Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
arch/arm/mach-imx/spl_imx_romapi.c

index f588a5f52160b12ec7fd5c61820cdbc41c5df86b..893b7d12a7910d47c652953beef45379b0c7465f 100644 (file)
@@ -84,12 +84,7 @@ static int spl_romapi_load_image_seekable(struct spl_image_info *spl_image,
        printf("image offset 0x%x, pagesize 0x%x, ivt offset 0x%x\n",
               image_offset, pagesize, offset);
 
-       if (((rom_bt_dev >> 16) & 0xff) ==  BT_DEV_TYPE_FLEXSPINOR)
-               offset = CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512;
-       else
-               offset = image_offset +
-                       CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512 - 0x8000;
-
+       offset = CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512;
        size = ALIGN(sizeof(struct image_header), pagesize);
        ret = g_rom_api->download_image((u8 *)header, offset, size,
                                        ((uintptr_t)header) ^ offset ^ size);