Hi Thomas, On 5 November 2015 at 20:34, Thomas Chou <tho...@wytron.com.tw> wrote: > Hi Simon, > > On 2015年11月06日 11:15, Simon Glass wrote: >>> >>> +config CFI_FLASH >>> + bool "Enable Driver Model for CFI Flash driver" >>> + depends on MTD >>> + help >>> + The Common Flash Interface specification was developed by >>> Intel, >>> + AMD and other flash manufactures that provides a universal >>> method >> >> >> flash manufacturers. It provides a universal method >> > > OK. Thanks. > >>> +#ifdef CONFIG_CFI_FLASH /* for driver model */ >>> +static void cfi_flash_init_dm(void) >>> +{ >>> + struct udevice *dev; >>> + >>> + cfi_flash_num_flash_banks = 0; >>> + /* >>> + * The uclass_first_device() will probe the first device and >>> + * uclass_next_device() will probe the rest if they exist. So >>> + * that cfi_flash_probe() will get called assigning the base >>> + * addresses that are available. >>> + */ >>> + for (uclass_first_device(UCLASS_MTD, &dev); >>> + dev; >>> + uclass_next_device(&dev)) { >>> + } >> >> >> Why do you need to probe these before they are used? Also I think you >> need error checking. > > > This is the place that the device is going to be used. In flash_init() the > cfi flash is probed to find flash type and size. > > There may be other MTD devices, so we scan through them. If there is not cfi > flash device, cfi_flash_num_flash_banks will be zero and the flash_init will > return size as zero. This is not an error. > >>> +#ifdef CONFIG_FLASH_CFI_MTD >>> + dev->uclass_priv = &cfi_mtd_info[0]; >> >> >> Could you put cfi_mtd_info in a struct and use auto-allocation to allocate >> it? > > > I planned this as follow-up patches which will merge cfi-mtd.c and use mtd > ops as major flash ops. Then the mtd_info will be auto-allocated. This is > quite similar to Jagan's work on spi-nor.
Hopefully you can move cfi_mtd_info into uclass-private data at some point. Reviewed-by: Simon Glass <s...@chromium.org> Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot