On Tuesday 18 August 2009, Piotr Ziecik wrote: > Due to errors in chipselect management in davinci_nand driver > OpenOCD was able to access only to chips attached to first EMIF > chipselect. This patch fixes chipselect management code and allows > OpenOCD to access to NAND devices attached to any EMIF CS line. > > Signed-off-by: Piotr Ziecik <ko...@semihalf.com>
Acked-by: David Brownell <dbrown...@users.sourceforge.net> > --- > src/flash/davinci_nand.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/src/flash/davinci_nand.c b/src/flash/davinci_nand.c > index 8d2d7e9..ffd3560 100644 > --- a/src/flash/davinci_nand.c > +++ b/src/flash/davinci_nand.c > @@ -365,7 +365,7 @@ static int davinci_write_page_ecc1(struct nand_device_s > *nand, uint32_t page, > struct davinci_nand *info = nand->controller_priv; > target_t *target = info->target; > const uint32_t fcr_addr = info->aemif + NANDFCR; > - const uint32_t ecc1_addr = info->aemif + NANDFECC + info->chipsel; > + const uint32_t ecc1_addr = info->aemif + NANDFECC + (4 * info->chipsel); > uint32_t fcr, ecc1; > > /* Write contiguous ECC bytes starting at specified offset. > @@ -676,11 +676,11 @@ static int davinci_nand_device_command(struct > command_context_s *cmd_ctx, > || aemif == 0x01e10000 /* dm335, dm355 */ > || aemif == 0x01d10000 /* dm365 */ > ) { > - if (chip < 0x0200000 || chip >= 0x0a000000) { > + if (chip < 0x02000000 || chip >= 0x0a000000) { > LOG_ERROR("NAND address %08lx out of range?", chip); > goto fail; > } > - chipsel = (chip - 0x02000000) >> 21; > + chipsel = (chip - 0x02000000) >> 25; > } else { > LOG_ERROR("unrecognized AEMIF controller address %08lx", aemif); > goto fail; > -- > 1.6.4 > > _______________________________________________ > Openocd-development mailing list > Openocd-development@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/openocd-development > > _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development