
Hi Thomas,
On 03.11.2015 07:25, Thomas Chou wrote:
On 2015年11月03日 13:56, Stefan Roese wrote:
if (CONFIG_IS_ENABLED(CFI_FLASH)) { struct udevice *dev; cfi_flash_num_flash_banks = 0; /* probe every MTD device to find cfi-flash device */ for (uclass_first_device(UCLASS_MTD, &dev); dev; uclass_next_device(&dev)) { } }
I'm still not an expert in the DM internals. I fail to see, where the actual probing is happening in the loop. Is it buried in the uclass_first_device() call?
The probing is happening in both uclass_first_device() and uclass_next_device().
The uclass_first_device() will probe the first device. While uclass_next_device() will probe the rest if they exist.
Okay. So cfi_flash_probe() will get called assigning the base addresses that are available. The real "probing" (meaning detection) is happening later in flash_init().
I think adding (or extending) a comment here to describe this would be helpful in v2.
Thanks, Stefan