mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-04-01 12:01:31 +00:00
sf: Add spi_flash_read_bar
Add spi_flash_read_bar function for reading bar and discovering bar commands at probe time. Cc: Michal Simek <michal.simek@xilinx.com> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Jagan Teki <jteki@openedev.com>
This commit is contained in:
parent
3c75ade2b3
commit
234a9e1c60
1 changed files with 34 additions and 19 deletions
|
@ -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,
|
static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,
|
||||||
struct spi_flash *flash)
|
struct spi_flash *flash)
|
||||||
{
|
{
|
||||||
|
@ -235,25 +266,9 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,
|
||||||
|
|
||||||
/* Configure the BAR - discover bank cmds and read current bank */
|
/* Configure the BAR - discover bank cmds and read current bank */
|
||||||
#ifdef CONFIG_SPI_FLASH_BAR
|
#ifdef CONFIG_SPI_FLASH_BAR
|
||||||
u8 curr_bank = 0;
|
int ret = spi_flash_read_bank(flash, idcode[0]);
|
||||||
if (flash->size > SPI_FLASH_16MB_BOUN) {
|
if (ret < 0)
|
||||||
int ret;
|
return 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;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Flash powers up read-only, so clear BP# bits */
|
/* Flash powers up read-only, so clear BP# bits */
|
||||||
|
|
Loading…
Add table
Reference in a new issue