1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-10-12 21:46:44 +02:00
Tom Rini
2024-10-10 08:12:18 -06:00
2 changed files with 26 additions and 9 deletions

View File

@@ -3684,8 +3684,10 @@ static int s25fs_s_quad_enable(struct spi_nor *nor)
static int s25fs_s_erase_non_uniform(struct spi_nor *nor, loff_t addr)
{
u8 opcode = nor->addr_width == 4 ? SPINOR_OP_BE_4K_4B : SPINOR_OP_BE_4K;
/* Support 8 x 4KB sectors at bottom */
return spansion_erase_non_uniform(nor, addr, SPINOR_OP_BE_4K_4B, 0, SZ_32K);
return spansion_erase_non_uniform(nor, addr, opcode, 0, SZ_32K);
}
static int s25fs_s_setup(struct spi_nor *nor, const struct flash_info *info,
@@ -3739,12 +3741,24 @@ static int s25fs_s_post_bfpt_fixup(struct spi_nor *nor,
static void s25fs_s_post_sfdp_fixup(struct spi_nor *nor,
struct spi_nor_flash_parameter *params)
{
/* READ_1_1_2 is not supported */
params->hwcaps.mask &= ~SNOR_HWCAPS_READ_1_1_2;
/* READ_1_1_4 is not supported */
params->hwcaps.mask &= ~SNOR_HWCAPS_READ_1_1_4;
/* PP_1_1_4 is not supported */
params->hwcaps.mask &= ~SNOR_HWCAPS_PP_1_1_4;
/*
* The S25FS064S(8MB) supports 1-1-2 and 1-1-4 commands, but params for
* read ops in SFDP are wrong. The other density parts do not support
* 1-1-2 and 1-1-4 commands.
*/
if (params->size == SZ_8M) {
spi_nor_set_read_settings(&params->reads[SNOR_CMD_READ_1_1_2],
0, 8, SPINOR_OP_READ_1_1_2,
SNOR_PROTO_1_1_2);
spi_nor_set_read_settings(&params->reads[SNOR_CMD_READ_1_1_4],
0, 8, SPINOR_OP_READ_1_1_4,
SNOR_PROTO_1_1_4);
} else {
params->hwcaps.mask &= ~SNOR_HWCAPS_READ_1_1_2;
params->hwcaps.mask &= ~SNOR_HWCAPS_READ_1_1_4;
params->hwcaps.mask &= ~SNOR_HWCAPS_PP_1_1_4;
}
/* Use volatile register to enable quad */
params->quad_enable = s25fs_s_quad_enable;
}