Hi,
On 14-11-16 12:19, Hans de Goede wrote:
Hi,
On 08-11-16 17:21, Maxime Ripard wrote:
Introduce a new sunxi-spl-with-ecc.bin image with already the right header,
ECC, randomizer and padding for the BROM to be able to read it.
It needs to be flashed using a raw access to the NAND so that the
controller doesn't change a thing to it, since we already have all the
right parameters.
Signed-off-by: Maxime Ripard <maxime.rip...@free-electrons.com>
Looks good to me:
Reviewed-by: Hans de Goede <hdego...@redhat.com>
Scrap that, this causes all sunxi boars to fail to build:
+--page is missing
+sunxi-nand-image-builder 2016.11-rc3-00069-gabe4d57
+Usage: sunxi-nand-image-builder [OPTIONS] source-image output-image
+Creates a raw NAND image that can be read by the sunxi NAND controller.
+-h --help Display this help and exit
+-c <str>/<step> --ecc=<str>/<step> ECC config (strength/step-size)
+-p <size> --page=<size> Page size
+-o <size> --oob=<size> OOB size
+-u <size> --usable=<size> Usable page size
+-e <size> --eraseblock=<size> Erase block size
+-b --boot0 Build a boot0 image.
+-s --scramble Scramble data
+ Valid ECC strengths: 16, 24, 28, 32, 40, 48, 56, 60 and 64
+ Valid ECC step size: 512 and 1024
+If you are building a boot0 image, you'll have specify extra options.
+These options should be chosen based on the layouts described here:
+ http://linux-sunxi.org/NAND#More_information_on_BROM_NAND
+ --usable should be assigned the 'Hardware page' value
+ --ecc should be assigned the 'ECC capacity'/'ECC page' values
+ --usable should be smaller than --page
+The --address option is only required for non-boot0 images that are
+meant to be programmed at a non eraseblock aligned offset.
+Examples:
+ The H27UCG8T2BTR-BC NAND exposes
+ * 16k pages
+ * 1280 OOB bytes per page
+ * 4M eraseblocks
+ * requires data scrambling
+ * expects a minimum ECC of 40bits/1024bytes
+ A normal image can be generated with
+ sunxi-nand-image-builder -p 16384 -o 1280 -e 0x400000 -s -c 40/1024
+ A boot0 image can be generated with
+ sunxi-nand-image-builder -p 16384 -o 1280 -e 0x400000 -s -b -u 4096 -c
64/1024
+make[2]: *** [spl/sunxi-spl-with-ecc.bin] Error 255
+make[1]: *** [spl/u-boot-spl] Error 2
I've dropped this patch.
Regards,
Hans
Regards,
Hans
---
Makefile | 3 +++
scripts/Makefile.spl | 12 ++++++++++++
2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index 37cbcb28f75e..12a248e297b5 100644
--- a/Makefile
+++ b/Makefile
@@ -1345,6 +1345,9 @@ spl/u-boot-spl: tools prepare \
spl/sunxi-spl.bin: spl/u-boot-spl
@:
+spl/sunxi-spl-with-ecc.bin: spl/sunxi-spl.bin
+ @:
+
spl/u-boot-spl.sfp: spl/u-boot-spl
@:
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
index e0b0117dc9b6..b41b4e427cc5 100644
--- a/scripts/Makefile.spl
+++ b/scripts/Makefile.spl
@@ -168,6 +168,7 @@ endif
ifdef CONFIG_ARCH_SUNXI
ALL-y += $(obj)/sunxi-spl.bin
+ALL-y += $(obj)/sunxi-spl-with-ecc.bin
endif
ifeq ($(CONFIG_SYS_SOC),"at91")
@@ -276,6 +277,17 @@ cmd_mksunxiboot = $(objtree)/tools/mksunxiboot $< $@
$(obj)/sunxi-spl.bin: $(obj)/$(SPL_BIN).bin FORCE
$(call if_changed,mksunxiboot)
+quiet_cmd_sunxi_spl_image_builder = SUNXI_SPL_IMAGE_BUILDER $@
+cmd_sunxi_spl_image_builder = $(objtree)/tools/sunxi-spl-image-builder \
+ -c
$(CONFIG_NAND_SUNXI_SPL_ECC_STRENGTH)/$(CONFIG_NAND_SUNXI_SPL_ECC_SIZE) \
+ -p $(CONFIG_SYS_NAND_PAGE_SIZE) \
+ -o $(CONFIG_SYS_NAND_OOBSIZE) \
+ -u $(CONFIG_NAND_SUNXI_SPL_USABLE_PAGE_SIZE) \
+ -e $(CONFIG_SYS_NAND_BLOCK_SIZE) \
+ -s -b $< $@
+$(obj)/sunxi-spl-with-ecc.bin: $(obj)/sunxi-spl.bin
+ $(call if_changed,sunxi_spl_image_builder)
+
# Rule to link u-boot-spl
# May be overridden by arch/$(ARCH)/config.mk
quiet_cmd_u-boot-spl ?= LD $@
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot