summaryrefslogtreecommitdiff
path: root/drivers/mtd/nand/sunxi_nand_spl.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2015-08-21 13:23:57 (GMT)
committerHans de Goede <hdegoede@redhat.com>2015-08-31 06:43:42 (GMT)
commit6a08d65acc0f5e62e3144e16fc4460e068e3c6ec (patch)
tree56dc82be9145d3932285f1a00982ad2fead8b847 /drivers/mtd/nand/sunxi_nand_spl.c
parente5268616878690037474ff36cb6efb350b5e1061 (diff)
downloadu-boot-6a08d65acc0f5e62e3144e16fc4460e068e3c6ec.tar.xz
sunxi_nand_spl: Remove NAND_SUNXI_SPL_SYNDROME_PARTITIONS_END
We only ever use syndrome mode for the partitions which contain the SPL, as that is required for the BROM to be able to read the SPL. Instead of using some arbritray limit for deciding whether or not to use syndrome, be smart and check if u-boot-dtb.bin is directly behind the SPL, if it is not then it is on its own partition and we should not use syndrome. Note the reason why we only use syndrome mode for the SPL is because it comeswith weaker randomization, introducing a risk for more bit errors, so we want to avoid it when possible. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
Diffstat (limited to 'drivers/mtd/nand/sunxi_nand_spl.c')
-rw-r--r--drivers/mtd/nand/sunxi_nand_spl.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/mtd/nand/sunxi_nand_spl.c b/drivers/mtd/nand/sunxi_nand_spl.c
index 14320c4..5c0a527 100644
--- a/drivers/mtd/nand/sunxi_nand_spl.c
+++ b/drivers/mtd/nand/sunxi_nand_spl.c
@@ -356,8 +356,12 @@ int nand_spl_load_image(uint32_t offs, unsigned int size, void *dest)
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;
+ int i, syndrome;
+
+ if (CONFIG_SYS_NAND_U_BOOT_OFFS == CONFIG_SPL_PAD_TO)
+ syndrome = 1; /* u-boot-dtb.bin appended to SPL */
+ else
+ syndrome = 0; /* u-boot-dtb.bin on its own partition */
if (offs == CONFIG_SYS_NAND_U_BOOT_OFFS) {
for (i = 0; i < ARRAY_SIZE(boot_offsets); i++) {