On Fri, 2015-05-08 at 14:39 -0700, Tim Harvey wrote: > -int nand_spl_load_image(uint32_t offs, unsigned int size, void *buf) > +int mtd_read(struct mtd_info *mtd, loff_t offs, size_t size, size_t *retlen, > + uchar *buf) > { > struct nand_chip *chip; > unsigned int page; > unsigned int nand_page_per_block; > unsigned int sz = 0; > + nand_info_t *info = &nand_info[0];
Any reason not to use the passed-in mtd pointer (and fix the nand_spl_load_image wrapper to pass in &nand_info[0])? > +/* setup mtd and nand structs and init mxs_nand driver */ > +static int mxs_nand_init(void) > +{ > + nand_info_t *info = &nand_info[0]; > + > + /* return if already initalized */ > + if (nand_chip.numchips) > + return 0; > + > + /* init mxs nand driver */ > + board_nand_init(&nand_chip); > + info->priv = &nand_chip; > + /* set mtd functions */ > + nand_chip.cmdfunc = mxs_nand_command; > + nand_chip.numchips = 1; > + > + /* identify flash device */ > + puts("NAND : "); > + if (mxs_flash_ident(info)) { > + printf("Failed to identify\n"); > + return -1; > + } > + > + /* allocate and initialize buffers */ > + nand_chip.buffers = memalign(ARCH_DMA_MINALIGN, > + sizeof(*nand_chip.buffers)); > + nand_chip.oob_poi = nand_chip.buffers->databuf + info->writesize; > + /* setup flash layout (does not scan as we override that) */ > + info->size = nand_chip.chipsize; > + nand_chip.scan_bbt(info); > + > + printf("%llu MiB\n", (info->size / (1024 * 1024))); > + return 0; > +} Why did this function need to be moved? > +int nand_spl_load_image(uint32_t offs, unsigned int size, void *buf) > +{ > + return mtd_read(NULL, offs, size, NULL, buf); > +} It'd be nice to keep the wrapper near the function it wraps. I don't see any other such wrappers; is there no other driver that currently works with SPL env? > int nand_default_bbt(struct mtd_info *mtd) > { > return 0; > @@ -223,6 +232,7 @@ int nand_default_bbt(struct mtd_info *mtd) > > void nand_init(void) > { > + mxs_nand_init(); > } Do you still need the "return if already initialized" check with this change? How is this change related to the rest? -Scott _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot