From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Waterman Date: Wed, 06 Apr 2011 16:01:52 -0400 Subject: [U-Boot] [PATCH v2] nand_spl: Fix large page nand_command() In-Reply-To: <20110405184220.GA31867@schlenkerla.am.freescale.net> References: <4D9B29FC.1040405@dawning.com> <20110405184220.GA31867@schlenkerla.am.freescale.net> Message-ID: <4D9CC6B0.6020608@dawning.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Sorry, I screwed up the settings in Thunderbird, hopefully I fixed the white space/name issues now. About the patch not applying, I used git format-patch and git apply to test the stuff locally, was that wrong? Here is a revised patch, I hope this is better. - Alex From: Alex Waterman Date: Wed, 6 Apr 2011 15:09:57 -0400 Subject: [PATCH] nand_spl: Fix large page nand_command() This patch changes the large page nand_command() routine to use a word offset instead of a byte offset. The 'offs' argument gets divided by 2 so that the offset passed to nand_command() is still by byte offset. Originally, the offset was not shifted and when too high an offset was requested the nand chip would attempt to read non-existent data. Changes for v2: - Moved the offset calculation to outside of the OOB emulation code. - Hopefully no more whitespace mangling. Signed-off-by: Alex Waterman --- nand_spl/nand_boot.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/nand_spl/nand_boot.c b/nand_spl/nand_boot.c index 76b8566..4a96878 100644 --- a/nand_spl/nand_boot.c +++ b/nand_spl/nand_boot.c @@ -90,6 +90,10 @@ static int nand_command(struct mtd_info *mtd, int block, int page, int offs, u8 cmd = NAND_CMD_READ0; } + /* Shift the offset from byte addressing to word addressing. */ + if (this->options & NAND_BUSWIDTH_16) + offs >>= 1; + /* Begin command latch cycle */ this->cmd_ctrl(mtd, cmd, NAND_CTRL_CLE | NAND_CTRL_CHANGE); /* Set ALE and clear CLE to start address cycle */ -- 1.7.3.1