[U-Boot] [PATCH v4 31/36] sf: Add extended read commands support

Jagan Teki jagannadh.teki at gmail.com
Wed Sep 25 11:35:41 CEST 2013


On Wed, Sep 25, 2013 at 1:40 AM,  <thomas.langer at lantiq.com> wrote:
> Hello Jagan,
>
> Am 24.09.2013 20:36, schrieb Jagannadha Sutradharudu Teki:
>> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
>> index ea39d1a..0ac9fab 100644
>> --- a/drivers/spi/spi.c
>> +++ b/drivers/spi/spi.c
>> @@ -7,6 +7,7 @@
>>  #include <common.h>
>>  #include <malloc.h>
>>  #include <spi.h>
>> +#include <spi_flash.h>
>>
>>  void *spi_do_alloc_slave(int offset, int size, unsigned int bus,
>>                        unsigned int cs)
>> @@ -20,6 +21,7 @@ void *spi_do_alloc_slave(int offset, int size, unsigned int bus,
>>               slave = (struct spi_slave *)(ptr + offset);
>>               slave->bus = bus;
>>               slave->cs = cs;
>> +             slave->rd_cmd = CMD_READ_ARRAY_FAST;
>
> This is SPI code, not SF! The spi layer should not know such details of
> the slave!
> What about EEPROMs or other SPI slaves, which are NOT spi_flash???
> Examples (just searched for includes of "spi.h"):
> board/bf527-ezkit/video.c
> drivers/net/enc28j60.c
>
> Please ensure that the layers are not mixed up!
> SPI is an interface type and SF is ONLY ONE user of this interface!

I understand your concern, but here the point is for discovering the
command set.
slave->rd_cmd = CMD_READ_ARRAY_FAST;
is a default controller supported fast read.

spi_flash layer will discover the respective rd_cmd based slave and flash, if
slave doesn't have any commands to list, means not support
extended/quad then these fields are filled in spi.c

there is nothing harm for respective drivers or code.
>
>>       }
>>
>>       return ptr;
>> diff --git a/include/spi.h b/include/spi.h
>> index c0dab57..093847e 100644
>> --- a/include/spi.h
>> +++ b/include/spi.h
>> @@ -40,11 +40,13 @@
>>   *   cs:     ID of the chip select connected to the slave.
>>   *   max_write_size: If non-zero, the maximum number of bytes which can
>>   *           be written at once, excluding command bytes.
>> + *   rd_cmd: Read command.
>>   */
>>  struct spi_slave {
>>       unsigned int    bus;
>>       unsigned int    cs;
>>       unsigned int max_write_size;
>> +     u8 rd_cmd;
>>  };
>>
>>  /*-----------------------------------------------------------------------
>
> Best Regards,
> Thomas
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

-- 
Thanks,
Jagan.
--------
Jagannadha Sutradharudu Teki,
E: jagannadh.teki at gmail.com, P: +91-9676773388
Engineer - System Software Hacker
U-boot - SPI Custodian and Zynq APSOC
Ln: http://www.linkedin.com/in/jaganteki


More information about the U-Boot mailing list