[U-Boot] [PATCH V3 4/6] sf command: allow default chip select through CONFIG_SPI_FLASH_CS
Eric Nelson
eric.nelson at boundarydevices.com
Fri Jan 27 02:22:22 CET 2012
On 01/24/2012 11:08 AM, Mike Frysinger wrote:
> On Tuesday 24 January 2012 11:18:22 Eric Nelson wrote:
>> This patch allows a board configuration file to provide a default
>> chip-select for serial flash so that first argument to the 'sf' command
>> is optional.
>>
>> On boards that use the mxc_spi driver and a GPIO for chip select, this
>> allows a much simpler command line:
>> U-Boot> sf probe
>> instead of
>> U-Boot> sf probe 0x5300
>
> NAK (to this version of the patch): missing README update, and other issues
> below
>
Which README? The only references I find to serial flash support
are in board-specific README files.
~/u-boot$ find . -iname \*readme\* | xargs grep -w sf
./doc/README.p2041rdb: => sf erase 0 100000
./doc/README.p2041rdb: => sf write 1000000 0 $filesize
./doc/README.p2041rdb: => sf erase 110000 10000
./doc/README.p2041rdb: => sf write 1000000 110000 $filesize
./doc/README.sh7757lcr: => sf probe 0
./doc/README.sh7757lcr: => sf erase 0 80000
./doc/README.sh7757lcr: => sf write 0x89000000 0 80000
I can start one of those for the SabreLite board, but that's un-related
to this patch.
>> --- a/common/cmd_sf.c
>> +++ b/common/cmd_sf.c
>>
>> +#ifndef CONFIG_SPI_FLASH_CS
>> + if (argc< 2) {
>> + printf("%s: missing arguments\n", __func__);
>> return -1;
>
> return cmd_usage(cmdtp);
>
>> - if (*endp == ':') {
>> - if (endp[1] == 0)
>> - return -1;
>> + }
>> +#else
>> + cs = CONFIG_SPI_FLASH_CS ;
>> +#endif
>
> you're setting the default CS, not locking it in. so a better config knob name
> would be something like:
> CONFIG_SF_DEFAULT_CS
> this matches the existing CONFIG_SF_XXX defines
>
> also, you have a spurious space before the semicolon there
>
Thanks Mike,
FWIW, I chose this name on purpose to make life easier on a couple of
other boards immediately (efika and vision2):
~/u-boot$ grep CONFIG_SPI_FLASH_CS include/configs/*
include/configs/efikamx.h:#define CONFIG_SPI_FLASH_CS (1 | 121 << 8)
include/configs/m28evk.h:#define CONFIG_SPI_FLASH_CS 2
include/configs/mx6qsabrelite.h.rej: #define CONFIG_SPI_FLASH_CS 1
include/configs/vision2.h:#define CONFIG_SPI_FLASH_CS (1 | (121 << 8))
>> U_BOOT_CMD(
>> sf, 5, 1, do_spi_flash,
>> "SPI flash sub-system",
>> +#ifndef CONFIG_SPI_FLASH_CS
>> "probe [bus:]cs [hz] [mode] - init flash device on given SPI bus\n"
>> +#else
>> + "probe [[bus:]cs] [hz] [mode] - init flash device on given SPI bus\n"
>> +#endif
>> " and chip select\n"
>> "sf read addr offset len - read `len' bytes starting at\n"
>> " `offset' to memory at `addr'\n"
>
> this is ugly. i'd rather just omit it and not worry about the syntax being
> perfect.
Works for me.
More information about the U-Boot
mailing list