X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=doc%2FREADME.nand;h=fc62f92e08503071d1d2702eb715ca91422f68f3;hb=6b92487dcf9afe83a3570153d66940fdb293be76;hp=b5171f4d407c6d602100bb9b15993754d6d0c921;hpb=d9831893ab2efd3dd36f948da898c83f33c4992c;p=oweals%2Fu-boot.git diff --git a/doc/README.nand b/doc/README.nand index b5171f4d40..fc62f92e08 100644 --- a/doc/README.nand +++ b/doc/README.nand @@ -57,14 +57,9 @@ Commands: Print information about all of the NAND devices found. nand read addr ofs|partition size - Read `size' bytes from `ofs' in NAND flash to `addr'. If a page - cannot be read because it is marked bad or an uncorrectable data - error is found the command stops with an error. - - nand read.jffs2 addr ofs|partition size - Like `read', but the data for blocks that are marked bad is read as - 0xff. This gives a readable JFFS2 image that can be processed by - the JFFS2 commands such as ls and fsload. + Read `size' bytes from `ofs' in NAND flash to `addr'. Blocks that + are marked bad are skipped. If a page cannot be read because an + uncorrectable data error is found, the command stops with an error. nand read.oob addr ofs|partition size Read `size' bytes from the out-of-band data area corresponding to @@ -73,17 +68,15 @@ Commands: for bad blocks or ECC errors. nand write addr ofs|partition size - Write `size' bytes from `addr' to `ofs' in NAND flash. If a page - cannot be written because it is marked bad or the write fails the - command stops with an error. - - nand write.jffs2 addr ofs|partition size - Like `write', but blocks that are marked bad are skipped and the - is written to the next block instead. This allows writing writing - a JFFS2 image, as long as the image is short enough to fit even - after skipping the bad blocks. Compact images, such as those - produced by mkfs.jffs2 should work well, but loading an image copied - from another flash is going to be trouble if there are any bad blocks. + Write `size' bytes from `addr' to `ofs' in NAND flash. Blocks that + are marked bad are skipped. If a page cannot be read because an + uncorrectable data error is found, the command stops with an error. + + As JFFS2 skips blocks similarly, this allows writing a JFFS2 image, + as long as the image is short enough to fit even after skipping the + bad blocks. Compact images, such as those produced by mkfs.jffs2 + should work well, but loading an image copied from another flash is + going to be trouble if there are any bad blocks. nand write.oob addr ofs|partition size Write `size' bytes from `addr' to the out-of-band data area @@ -93,8 +86,8 @@ Commands: Configuration Options: - CFG_CMD_NAND - A good one to add to CONFIG_COMMANDS since it enables NAND support. + CONFIG_CMD_NAND + Enables NAND support and commmands. CONFIG_MTD_NAND_ECC_JFFS2 Define this if you want the Error Correction Code information in @@ -102,7 +95,7 @@ Configuration Options: CONFIG_MTD_NAND_ECC_YAFFS would be another useful choice for someone to implement. - CFG_MAX_NAND_DEVICE + CONFIG_SYS_MAX_NAND_DEVICE The maximum number of NAND devices you want to support. NAND Interface: @@ -171,7 +164,7 @@ More Definitions: These definitions are needed in the board configuration for now, but may really belong in a header file. TODO: Figure which ones are truly configuration settings and rename - them to CFG_NAND_... and move the rest somewhere appropriate. + them to CONFIG_SYS_NAND_... and move the rest somewhere appropriate. #define SECTORSIZE 512 #define ADDR_COLUMN 1 @@ -179,8 +172,16 @@ More Definitions: #define ADDR_COLUMN_PAGE 3 #define NAND_ChipID_UNKNOWN 0x00 #define NAND_MAX_FLOORS 1 - #define NAND_MAX_CHIPS 1 + #define CONFIG_SYS_NAND_MAX_CHIPS 1 + #define CONFIG_SYS_DAVINCI_BROKEN_ECC + Versions of U-Boot <= 1.3.3 and Montavista Linux kernels + generated bogus ECCs on large-page NAND. Both large and small page + NAND ECCs were incompatible with the Linux davinci git tree (since + NAND was integrated in 2.6.24). + Turn this ON if you want backwards compatibility. + Turn this OFF if you want U-Boot and the Linux davinci git kernel + to use the same ECC format. NOTE: ===== @@ -191,13 +192,8 @@ We now use a complete rewrite of the NAND code based on what is in The old NAND handling code has been re-factored and is now confined to only board-specific files and - unfortunately - to the DoC code (see below). A new configuration variable has been introduced: -CFG_NAND_LEGACY, which has to be defined in the board config file if -that board uses legacy code. If CFG_NAND_LEGACY is defined, the board -specific config.mk file should also have "BOARDLIBS = -drivers/nand_legacy/libnand_legacy.a". For boards using the new NAND -approach (PPChameleon and netstar at the moment) no variable is -necessary, but the config.mk should have "BOARDLIBS = -drivers/nand/libnand.a". +CONFIG_NAND_LEGACY, which has to be defined in the board config file if +that board uses legacy code. The necessary changes have been made to all affected boards, and no build breakage has been introduced, except for NETTA and NETTA_ISDN @@ -220,12 +216,6 @@ JFFS2 related commands: using both the new code which is able to skip bad blocks "nand erase clean" additionally writes JFFS2-cleanmarkers in the oob. - "nand write.jffs2" - like "nand write" but skip found bad eraseblocks - - "nand read.jffs2" - like "nand read" but skip found bad eraseblocks - Miscellaneous and testing commands: "markbad [offset]" create an artificial bad block (for testing bad block handling)