Merge "ipq807x: Enable 4-byte address mode for flash W25Q256JW"

This commit is contained in:
Linux Build Service Account 2018-04-04 03:16:32 -07:00 committed by Gerrit - the friendly Code Review server
commit e29cf10dc6
3 changed files with 19 additions and 14 deletions

View file

@ -461,7 +461,7 @@ int apps_iscrashed(void)
unsigned int get_smem_spi_addr_len(void)
{
return SPI_MAX_ADDR_LEN;
return SPI_DEFAULT_ADDR_LEN;
}

View file

@ -1240,21 +1240,25 @@ do_generic_probe:
}
flash->addr_width = SPI_FLASH_3B_ADDR_LEN;
if ((flash->size > SPI_FLASH_16MB_BOUN) &&
(get_smem_spi_addr_len() == SPI_FLASH_4B_ADDR_LEN)) {
#ifndef CONFIG_IPQ_4B_ADDR_SWITCH_REQD
if (idcode[0] == SPI_FLASH_CFI_MFR_WINBOND)
if (flash->size > SPI_FLASH_16MB_BOUN) {
if (get_smem_spi_addr_len() == SPI_FLASH_4B_ADDR_LEN) {
flash->addr_width = SPI_FLASH_4B_ADDR_LEN;
#else
if (idcode[0] == SPI_FLASH_CFI_MFR_GIGA) {
ret = spi_flash_cmd(spi, SPI_FLASH_CMD_EN4B, NULL, 0);
if (ret) {
printf("SF:Failed to switch to 4 byte mode\n");
flash->size = 0x1000000;
} else
flash->addr_width = SPI_FLASH_4B_ADDR_LEN;
}
} else {
#ifdef CONFIG_IPQ_4B_ADDR_SWITCH_REQD
if (idcode[0] == SPI_FLASH_CFI_MFR_GIGA ||
idcode[0] == SPI_FLASH_CFI_MFR_WINBOND) {
ret = spi_flash_cmd(spi,
SPI_FLASH_CMD_EN4B,
NULL, 0);
if (ret) {
printf("SF:Failed to switch to 4 byte mode\n");
flash->size = 0x1000000;
} else
flash->addr_width =
SPI_FLASH_4B_ADDR_LEN;
}
#endif
}
}
printf("SPI_ADDR_LEN=%x\n",flash->addr_width);

View file

@ -158,6 +158,7 @@ extern loff_t board_env_size;
#define CONFIG_SF_DEFAULT_SPEED (48 * 1000 * 1000)
#define CONFIG_SPI_FLASH_BAR 1
#define CONFIG_SPI_FLASH_USE_4K_SECTORS
#define CONFIG_IPQ_4B_ADDR_SWITCH_REQD
#define CONFIG_EFI_PARTITION
#define CONFIG_QCA_BAM 1