spl: nand: sunxi: stop guessing the redundant u-boot offset

Use CONFIG_SYS_NAND_U_BOOT_OFFS_REDUND value instead of trying to guess
where the redundant u-boot image is based on simple (and most of the time
erroneous) heuristics.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>

# Conflicts:
#	drivers/mtd/nand/sunxi_nand_spl.c
This commit is contained in:
Boris Brezillon 2016-06-06 10:16:59 +02:00 committed by Scott Wood
parent 80ef700f8d
commit fa30115878

View File

@ -344,26 +344,6 @@ static int nand_read_buffer(uint32_t offs, unsigned int size, void *dest)
int nand_spl_load_image(uint32_t offs, unsigned int size, void *dest)
{
/*
* u-boot partition sits after 2 eraseblocks (spl, spl-backup), look
* for backup u-boot 1 erase block further.
*/
const uint32_t eraseblock_size = CONFIG_SYS_NAND_U_BOOT_OFFS / 2;
const uint32_t boot_offsets[] = {
CONFIG_SYS_NAND_U_BOOT_OFFS,
CONFIG_SYS_NAND_U_BOOT_OFFS + eraseblock_size,
};
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) == 0)
return 0;
}
return -1;
}
return nand_read_buffer(offs, size, dest);
}