int nand_spl_load_image(uint32_t offs, unsigned int size, void *dest)
 {
+       const uint32_t boot_offsets[] = {
+               0 * 1024 * 1024 + CONFIG_SYS_NAND_U_BOOT_OFFS,
+               1 * 1024 * 1024 + CONFIG_SYS_NAND_U_BOOT_OFFS,
+               2 * 1024 * 1024 + CONFIG_SYS_NAND_U_BOOT_OFFS,
+               4 * 1024 * 1024 + CONFIG_SYS_NAND_U_BOOT_OFFS,
+       };
        int syndrome = offs < CONFIG_NAND_SUNXI_SPL_SYNDROME_PARTITIONS_END;
+       int i;
+
+       if (offs == CONFIG_SYS_NAND_U_BOOT_OFFS) {
+               for (i = 0; i < ARRAY_SIZE(boot_offsets); i++) {
+                       if (nand_read_buffer(boot_offsets[i], size,
+                                            dest, syndrome) == 0)
+                               return 0;
+               }
+               return -1;
+       }
 
        return nand_read_buffer(offs, size, dest, syndrome);
 }