On 6 May 2015 at 02:30, Simon Glass <[email protected]> wrote: > On 5 May 2015 at 05:37, [email protected] > <[email protected]> wrote: >> On 5/1/2015 9:54 AM, Simon Glass wrote: >>> Hi, >>> >>> On 29 April 2015 at 04:40, Haikun Wang <[email protected]> wrote: >>>> Add command "sf info" to show the information of the current SPI flash >>>> device. >>>> >>>> Signed-off-by: Haikun Wang <[email protected]> >>>> --- >>>> In current sf driver, we show the debug information during the flash probe >>>> period. >>>> >>>> In case of without DM SPI, we need to run command "sf probe" to get the >>>> debug >>>> information of the current SPI flash device. "sf probe" will re-identify >>>> the >>>> device every time and it reduce the efficiency. We can get the debug >>>> information >>>> without any re-identify process using "sf info".
So for non-dm case, sf probe and sf info does same? >>>> >>>> In case of using DM SPI, if we disable CONFIG_DM_DEVICE_REMOVE "sf probe" >>>> will >>>> only call the flash driver's probe function the first time you run it and >>>> no >>>> information will show after the first. It is recommended that only call the >>>> flash driver's probe function once during u-boot period. You can get the >>>> debug >>>> information using "sf info" in this case. >>>> >>>> Changes in v1: None. >>>> >>>> common/cmd_sf.c | 43 ++++++++++++++++++++++++++++++++++++++++++- >>>> 1 file changed, 42 insertions(+), 1 deletion(-) >>> >>> I wonder if you should enable this command only when driver model is used? >> You mean I should only enable it when driver model is used? >> I think it is also useful in NO-DM model. >> We can get the device information without data transfer using this command. > > OK. > > Acked-by: Simon Glass <[email protected]> > >> >> Best regards, >> Wang Haikun >>> >>>> >>>> diff --git a/common/cmd_sf.c b/common/cmd_sf.c >>>> index 6aabf39..38841fa 100644 >>>> --- a/common/cmd_sf.c >>>> +++ b/common/cmd_sf.c >>>> @@ -503,6 +503,44 @@ static int do_spi_flash_test(int argc, char * const >>>> argv[]) >>>> } >>>> #endif /* CONFIG_CMD_SF_TEST */ >>>> >>>> +static int do_spi_flash_info(struct spi_flash *flash, bool >>>> dm_column_style) >>>> +{ >>>> + if (dm_column_style) { >>>> + struct udevice *bus; >>>> + struct udevice *dev; >>>> + struct dm_spi_slave_platdata *plat; >>>> + >>>> + dev = flash->dev; >>>> + bus = dev->parent; >>>> + plat = dev_get_parent_platdata(dev); >>>> + >>>> + printf("Device: %s\n", dev->name); >>>> + printf("Chipselect: %d\n", plat->cs); >>>> + printf("Bind Driver: %s\n", dev->driver->name); >>>> + printf("SPI bus: %s\n", bus->name); >>>> + printf("SPI bus number: %d\n", bus->seq); >>>> + printf("Flash type: %s\n", flash->name); >>>> + printf("Page size: "); >>>> + print_size(flash->page_size, "\n"); >>>> + printf("Erase size: "); >>>> + print_size(flash->erase_size, "\n"); >>>> + printf("Total size: "); >>>> + print_size(flash->size, "\n"); >>>> + if (flash->memory_map) >>>> + printf("Mapped at %p\n", flash->memory_map); >>>> + } else { >>>> + printf("SF: Detected %s with page size ", flash->name); >>>> + print_size(flash->page_size, ", erase size "); >>>> + print_size(flash->erase_size, ", total "); >>>> + print_size(flash->size, ""); >>>> + if (flash->memory_map) >>>> + printf(", mapped at %p", flash->memory_map); >>>> + puts("\n"); >>>> + } >>>> + >>>> + return 0; >>>> +} >>>> + >>>> static int do_spi_flash(cmd_tbl_t *cmdtp, int flag, int argc, >>>> char * const argv[]) >>>> { >>>> @@ -537,6 +575,8 @@ static int do_spi_flash(cmd_tbl_t *cmdtp, int flag, >>>> int argc, >>>> else if (!strcmp(cmd, "test")) >>>> ret = do_spi_flash_test(argc, argv); >>>> #endif >>>> + else if (!strcmp(cmd, "info")) >>>> + ret = do_spi_flash_info(flash, >>>> IS_ENABLED(CONFIG_DM_SPI_FLASH)); >>>> else >>>> ret = -1; >>>> >>>> @@ -567,6 +607,7 @@ U_BOOT_CMD( >>>> "sf erase offset [+]len - erase `len' bytes from >>>> `offset'\n" >>>> " `+len' round up `len' to block >>>> size\n" >>>> "sf update addr offset len - erase and write `len' bytes >>>> from memory\n" >>>> - " at `addr' to flash at `offset'" >>>> + " at `addr' to flash at `offset'\n" >>>> + "sf info - display info of the current SPI Flash device\n" >>>> SF_TEST_HELP >>>> ); >>>> -- >>>> 2.1.0.27.g96db324 >>>> >>> >>> Regards, >>> Simon >>> >> thaks! _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

