]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
sunxi_nand_spl: Remove NAND_SUNXI_SPL_SYNDROME_PARTITIONS_END
authorHans de Goede <hdegoede@redhat.com>
Fri, 21 Aug 2015 13:23:57 +0000 (15:23 +0200)
committerLothar Waßmann <LW@KARO-electronics.de>
Thu, 10 Sep 2015 10:19:14 +0000 (12:19 +0200)
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>
drivers/mtd/nand/Kconfig
drivers/mtd/nand/sunxi_nand_spl.c

index 6a8f08e991a3bc71e83c78e70d5ec9ea71a516c4..b0f4b50d42721b5d67973ef706e6d5a8021f40c9 100644 (file)
@@ -106,14 +106,6 @@ config SPL_NAND_DENALI
          This is a small implementation of the Denali NAND controller
          for use on SPL.
 
          This is a small implementation of the Denali NAND controller
          for use on SPL.
 
-config NAND_SUNXI_SPL_SYNDROME_PARTITIONS_END
-       hex "Size of syndrome partitions in sunxi NAND"
-       default 0x400000
-       depends on NAND_SUNXI
-       ---help---
-       End address for boot partitions on NAND. Those partitions have a
-       different random seed that has to match the sunxi BROM setting.
-
 endif
 
 config NAND_ATMEL
 endif
 
 config NAND_ATMEL
index 14320c44948aaf257b5c333acb580f3f2cfb14f8..5c0a52744f6653389eb0fa6acaf669e554db14b4 100644 (file)
@@ -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,
        };
                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++) {
 
        if (offs == CONFIG_SYS_NAND_U_BOOT_OFFS) {
                for (i = 0; i < ARRAY_SIZE(boot_offsets); i++) {