[U-Boot] [PATCH v2 3/7] sf: Make BAR discovery, as spi_flash_read_bar
Jagan Teki
jteki at openedev.com
Tue Aug 18 10:22:49 CEST 2015
On 18 August 2015 at 13:16, Bin Meng <bmeng.cn at gmail.com> wrote:
> Hi Jagan,
>
> On Mon, Aug 17, 2015 at 6:32 PM, Jagan Teki <jteki at openedev.com> wrote:
>> Add spi_flash_read_bar function for reading bar and discovering
>> bar commands at probe time.
>>
>> Signed-off-by: Jagan Teki <jteki at openedev.com>
>> Cc: Michal Simek <michal.simek at xilinx.com>
>> Cc: Siva Durga Prasad Paladugu <sivadur at xilinx.com>
>> ---
>> drivers/mtd/spi/sf_probe.c | 54 ++++++++++++++++++++++++++++++----------------
>> 1 file changed, 35 insertions(+), 19 deletions(-)
>>
>> diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
>> index e0283dc..0483bed 100644
>> --- a/drivers/mtd/spi/sf_probe.c
>> +++ b/drivers/mtd/spi/sf_probe.c
>> @@ -99,6 +99,37 @@ static int spi_flash_set_qeb(struct spi_flash *flash, u8 idcode0)
>> }
>> }
>>
>> +#ifdef CONFIG_SPI_FLASH_BAR
>> +static int spi_flash_read_bank(struct spi_flash *flash, u8 idcode0)
>> +{
>> + u8 curr_bank = 0;
>> + int ret;
>> +
>> + if (flash->size <= SPI_FLASH_16MB_BOUN)
>> + goto bank_end;
>> +
>> + switch (idcode0) {
>> + case SPI_FLASH_CFI_MFR_SPANSION:
>> + flash->bank_read_cmd = CMD_BANKADDR_BRRD;
>> + flash->bank_write_cmd = CMD_BANKADDR_BRWR;
>> + default:
>> + flash->bank_read_cmd = CMD_EXTNADDR_RDEAR;
>> + flash->bank_write_cmd = CMD_EXTNADDR_WREAR;
>> + }
>> +
>> + ret = spi_flash_read_common(flash, &flash->bank_read_cmd, 1,
>> + &curr_bank, 1);
>> + if (ret) {
>> + debug("SF: fail to read bank addr register\n");
>> + return ret;
>> + }
>> +
>> +bank_end:
>> + flash->bank_curr = curr_bank;
>> + return 0;
>> +}
>> +#endif
>> +
>> static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,
>> struct spi_flash *flash)
>> {
>> @@ -106,6 +137,7 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,
>> u8 cmd;
>> u16 jedec = idcode[1] << 8 | idcode[2];
>> u16 ext_jedec = idcode[3] << 8 | idcode[4];
>> + int ret;
>>
>> /* Validate params from spi_flash_params table */
>> params = spi_flash_params_table;
>> @@ -235,25 +267,9 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,
>>
>> /* Configure the BAR - discover bank cmds and read current bank */
>> #ifdef CONFIG_SPI_FLASH_BAR
>> - u8 curr_bank = 0;
>> - if (flash->size > SPI_FLASH_16MB_BOUN) {
>> - int ret;
>> -
>> - flash->bank_read_cmd = (idcode[0] == 0x01) ?
>> - CMD_BANKADDR_BRRD : CMD_EXTNADDR_RDEAR;
>> - flash->bank_write_cmd = (idcode[0] == 0x01) ?
>> - CMD_BANKADDR_BRWR : CMD_EXTNADDR_WREAR;
>> -
>> - ret = spi_flash_read_common(flash, &flash->bank_read_cmd, 1,
>> - &curr_bank, 1);
>> - if (ret) {
>> - debug("SF: fail to read bank addr register\n");
>> - return ret;
>> - }
>> - flash->bank_curr = curr_bank;
>> - } else {
>> - flash->bank_curr = curr_bank;
>> - }
>> + ret = spi_flash_read_bank(flash, idcode[0]);
>> + if (ret < 0)
>> + return ret;
>> #endif
>>
>> /* Flash powers up read-only, so clear BP# bits */
>> --
>
> This commit is causing build warnings:
>
> drivers/mtd/spi/sf_probe.c: In function ‘spi_flash_validate_params’:
> drivers/mtd/spi/sf_probe.c:140:6: warning: unused variable ‘ret’
> [-Wunused-variable]
Yes, this I knew - will fix the same.
thanks!
--
Jagan | openedev.
More information about the U-Boot
mailing list