From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Tue, 27 Aug 2013 23:32:39 +0200 Subject: [U-Boot] [PATCH 3/3] ARM: mxs: Fix NAND FCB flashing In-Reply-To: <1377639159-5243-1-git-send-email-marex@denx.de> References: <1377639159-5243-1-git-send-email-marex@denx.de> Message-ID: <1377639159-5243-3-git-send-email-marex@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Fix the method of flashing FCB blocks into NAND. The new env writes all four FCB blocks and also does not scrub such a big part of the NAND. This fixed complains about busted NAND blocks in Linux. Signed-off-by: Marek Vasut Cc: Fabio Estevam Cc: Stefano Babic --- include/configs/m28evk.h | 22 ++++++++++++++++++++-- include/configs/mx28evk.h | 22 ++++++++++++++++++++-- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h index eba8759..8a0587c 100644 --- a/include/configs/m28evk.h +++ b/include/configs/m28evk.h @@ -170,11 +170,29 @@ "nand info ; " \ "setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \ "setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \ + "update_nand_write_fcb=" \ + "setenv i ${update_nand_count} ; " \ + "setenv update_nand_offset 0x0 ; " \ + "setexpr update_nand_step " \ + "${update_nand_stride} * ${nand_writesize} ; " \ + "while test ${i} -gt 0 ; do " \ + "echo ${update_nand_offset} ; " \ + "nand scrub -y ${update_nand_offset} " \ + "${nand_erasesize} ; " \ + "nand write.raw ${loadaddr} " \ + "${update_nand_offset} 0x1 ; " \ + "setexpr i ${i} - 1 ; " \ + "setexpr update_nand_offset " \ + "${update_nand_offset} + " \ + "${update_nand_step} ; " \ + "done ; " \ + "setenv i ; " \ + "setenv update_nand_offset ; " \ + "setenv update_nand_step\0" \ "update_nand_full=" /* Update FCB, DBBT and FW */ \ "if tftp ${update_nand_full_filename} ; then " \ "run update_nand_get_fcb_size ; " \ - "nand scrub -y 0x0 ${filesize} ; " \ - "nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \ + "run update_nand_write_fcb ; " \ "setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \ "setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \ "nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \ diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h index 07f88ca..b0ae031 100644 --- a/include/configs/mx28evk.h +++ b/include/configs/mx28evk.h @@ -172,11 +172,29 @@ "nand info ; " \ "setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \ "setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \ + "update_nand_write_fcb=" \ + "setenv i ${update_nand_count} ; " \ + "setenv update_nand_offset 0x0 ; " \ + "setexpr update_nand_step " \ + "${update_nand_stride} * ${nand_writesize} ; " \ + "while test ${i} -gt 0 ; do " \ + "echo ${update_nand_offset} ; " \ + "nand scrub -y ${update_nand_offset} " \ + "${nand_erasesize} ; " \ + "nand write.raw ${loadaddr} " \ + "${update_nand_offset} 0x1 ; " \ + "setexpr i ${i} - 1 ; " \ + "setexpr update_nand_offset " \ + "${update_nand_offset} + " \ + "${update_nand_step} ; " \ + "done ; " \ + "setenv i ; " \ + "setenv update_nand_offset ; " \ + "setenv update_nand_step\0" \ "update_nand_full=" /* Update FCB, DBBT and FW */ \ "if tftp ${update_nand_full_filename} ; then " \ "run update_nand_get_fcb_size ; " \ - "nand scrub -y 0x0 ${filesize} ; " \ - "nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \ + "run update_nand_write_fcb ; " \ "setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \ "setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \ "nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \ -- 1.7.10.4