All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] mtd: spi-nor: Add support for Spansion S25FL256L
@ 2021-09-08  8:47 tkuw584924
  2021-09-08  8:47 ` [PATCH 1/2] mtd: spi-nor-ids: " tkuw584924
  2021-09-08  8:47 ` [PATCH 2/2] mtd: spi-nor-core: Add fixups " tkuw584924
  0 siblings, 2 replies; 6+ messages in thread
From: tkuw584924 @ 2021-09-08  8:47 UTC (permalink / raw)
  To: u-boot
  Cc: jagan, vigneshr, p.yadav, tkuw584924, Bacem.Daassi, Takahiro Kuwano

From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>

The S25FL256L is a part of the S25FL-L family and has the same feature set
as S25FL128L except the density.

This device does not support BAR.
Not sure if patch #2 is a good way to avoid BAR. Please advise. 

The datasheet can be found in the following link.
https://www.cypress.com/file/316171/download

Tested on Xilinx Zynq-7000 FPGA board.

Takahiro Kuwano (2):
  mtd: spi-nor-ids: Add support for Spansion S25FL256L
  mtd: spi-nor-core: Add fixup for Spansion S25FL256L

 drivers/mtd/spi/spi-nor-core.c | 21 +++++++++++++++++++++
 drivers/mtd/spi/spi-nor-ids.c  |  1 +
 2 files changed, 22 insertions(+)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] mtd: spi-nor-ids: Add support for Spansion S25FL256L
  2021-09-08  8:47 [PATCH 0/2] mtd: spi-nor: Add support for Spansion S25FL256L tkuw584924
@ 2021-09-08  8:47 ` tkuw584924
  2021-09-17 16:47   ` Pratyush Yadav
  2021-09-08  8:47 ` [PATCH 2/2] mtd: spi-nor-core: Add fixups " tkuw584924
  1 sibling, 1 reply; 6+ messages in thread
From: tkuw584924 @ 2021-09-08  8:47 UTC (permalink / raw)
  To: u-boot
  Cc: jagan, vigneshr, p.yadav, tkuw584924, Bacem.Daassi, Takahiro Kuwano

From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>

The S25FL256L is a part of the S25FL-L family and has the same feature set
as S25FL128L except the density.

The datasheet can be found in the following link.
https://www.cypress.com/file/316171/download

Tested on Xilinx Zynq-7000 FPGA board.

Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
---
 drivers/mtd/spi/spi-nor-ids.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/mtd/spi/spi-nor-ids.c b/drivers/mtd/spi/spi-nor-ids.c
index 4aef1ddd6e..11d7d4fcaa 100644
--- a/drivers/mtd/spi/spi-nor-ids.c
+++ b/drivers/mtd/spi/spi-nor-ids.c
@@ -227,6 +227,7 @@ const struct flash_info spi_nor_ids[] = {
 	{ INFO("s25fl208k",  0x014014,      0,  64 * 1024,  16, SECT_4K | SPI_NOR_DUAL_READ) },
 	{ INFO("s25fl064l",  0x016017,      0,  64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
 	{ INFO("s25fl128l",  0x016018,      0,  64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
+	{ INFO("s25fl256l",  0x016019,      0,  64 * 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
 	{ INFO6("s25hl512t",  0x342a1a, 0x0f0390, 256 * 1024, 256,
 		SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES |
 		USE_CLSR) },
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] mtd: spi-nor-core: Add fixups for Spansion S25FL256L
  2021-09-08  8:47 [PATCH 0/2] mtd: spi-nor: Add support for Spansion S25FL256L tkuw584924
  2021-09-08  8:47 ` [PATCH 1/2] mtd: spi-nor-ids: " tkuw584924
@ 2021-09-08  8:47 ` tkuw584924
  2021-09-17 16:51   ` Pratyush Yadav
  1 sibling, 1 reply; 6+ messages in thread
From: tkuw584924 @ 2021-09-08  8:47 UTC (permalink / raw)
  To: u-boot
  Cc: jagan, vigneshr, p.yadav, tkuw584924, Bacem.Daassi, Takahiro Kuwano

From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>

The S25FL256L is 32MB NOR Flash that does not support Bank Address
Register. This fixup is activated if CONFIG_SPI_FLASH_BAR is enabled and
returns ENOTSUPP in setup() hook to avoid further ops.

Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
---
 drivers/mtd/spi/spi-nor-core.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
index d5d905fa5a..4940b35682 100644
--- a/drivers/mtd/spi/spi-nor-core.c
+++ b/drivers/mtd/spi/spi-nor-core.c
@@ -3222,6 +3222,23 @@ static struct spi_nor_fixups s25hx_t_fixups = {
 	.post_bfpt = s25hx_t_post_bfpt_fixup,
 	.post_sfdp = s25hx_t_post_sfdp_fixup,
 };
+
+#ifdef CONFIG_SPI_FLASH_BAR
+static int s25fl256l_setup(struct spi_nor *nor, const struct flash_info *info,
+			   const struct spi_nor_flash_parameter *params)
+{
+	return -ENOTSUPP; /* Bank Address Register is not supported */
+}
+
+static void s25fl256l_default_init(struct spi_nor *nor)
+{
+	nor->setup = s25fl256l_setup;
+}
+
+static struct spi_nor_fixups s25fl256l_fixups = {
+	.default_init = s25fl256l_default_init,
+};
+#endif
 #endif
 
 #ifdef CONFIG_SPI_FLASH_S28HS512T
@@ -3644,6 +3661,10 @@ void spi_nor_set_fixups(struct spi_nor *nor)
 			break;
 		}
 	}
+#ifdef CONFIG_SPI_FLASH_BAR
+	if (!strcmp(nor->info->name, "s25fl256l"))
+		nor->fixups = &s25fl256l_fixups;
+#endif
 #endif
 
 #ifdef CONFIG_SPI_FLASH_S28HS512T
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] mtd: spi-nor-ids: Add support for Spansion S25FL256L
  2021-09-08  8:47 ` [PATCH 1/2] mtd: spi-nor-ids: " tkuw584924
@ 2021-09-17 16:47   ` Pratyush Yadav
  0 siblings, 0 replies; 6+ messages in thread
From: Pratyush Yadav @ 2021-09-17 16:47 UTC (permalink / raw)
  To: tkuw584924; +Cc: u-boot, jagan, vigneshr, Bacem.Daassi, Takahiro Kuwano

On 08/09/21 05:47PM, tkuw584924@gmail.com wrote:
> From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
> 
> The S25FL256L is a part of the S25FL-L family and has the same feature set
> as S25FL128L except the density.
> 
> The datasheet can be found in the following link.
> https://www.cypress.com/file/316171/download
> 
> Tested on Xilinx Zynq-7000 FPGA board.

I think you should add fixups and the flash entry in the same commit 
instead of adding them in separate ones. This would make sure the flash 
works correctly if someone lands on this commit when bisecting.

The patch LGTM otherwise.

> 
> Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
> ---
>  drivers/mtd/spi/spi-nor-ids.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/mtd/spi/spi-nor-ids.c b/drivers/mtd/spi/spi-nor-ids.c
> index 4aef1ddd6e..11d7d4fcaa 100644
> --- a/drivers/mtd/spi/spi-nor-ids.c
> +++ b/drivers/mtd/spi/spi-nor-ids.c
> @@ -227,6 +227,7 @@ const struct flash_info spi_nor_ids[] = {
>  	{ INFO("s25fl208k",  0x014014,      0,  64 * 1024,  16, SECT_4K | SPI_NOR_DUAL_READ) },
>  	{ INFO("s25fl064l",  0x016017,      0,  64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
>  	{ INFO("s25fl128l",  0x016018,      0,  64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
> +	{ INFO("s25fl256l",  0x016019,      0,  64 * 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
>  	{ INFO6("s25hl512t",  0x342a1a, 0x0f0390, 256 * 1024, 256,
>  		SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES |
>  		USE_CLSR) },
> -- 
> 2.25.1
> 

-- 
Regards,
Pratyush Yadav
Texas Instruments Inc.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] mtd: spi-nor-core: Add fixups for Spansion S25FL256L
  2021-09-08  8:47 ` [PATCH 2/2] mtd: spi-nor-core: Add fixups " tkuw584924
@ 2021-09-17 16:51   ` Pratyush Yadav
  2021-09-29  5:22     ` Takahiro Kuwano
  0 siblings, 1 reply; 6+ messages in thread
From: Pratyush Yadav @ 2021-09-17 16:51 UTC (permalink / raw)
  To: tkuw584924; +Cc: u-boot, jagan, vigneshr, Bacem.Daassi, Takahiro Kuwano

On 08/09/21 05:47PM, tkuw584924@gmail.com wrote:
> From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
> 
> The S25FL256L is 32MB NOR Flash that does not support Bank Address
> Register. This fixup is activated if CONFIG_SPI_FLASH_BAR is enabled and
> returns ENOTSUPP in setup() hook to avoid further ops.
> 
> Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
> ---
>  drivers/mtd/spi/spi-nor-core.c | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
> index d5d905fa5a..4940b35682 100644
> --- a/drivers/mtd/spi/spi-nor-core.c
> +++ b/drivers/mtd/spi/spi-nor-core.c
> @@ -3222,6 +3222,23 @@ static struct spi_nor_fixups s25hx_t_fixups = {
>  	.post_bfpt = s25hx_t_post_bfpt_fixup,
>  	.post_sfdp = s25hx_t_post_sfdp_fixup,
>  };
> +
> +#ifdef CONFIG_SPI_FLASH_BAR
> +static int s25fl256l_setup(struct spi_nor *nor, const struct flash_info *info,
> +			   const struct spi_nor_flash_parameter *params)
> +{
> +	return -ENOTSUPP; /* Bank Address Register is not supported */

I am not very familiar with BAR. Can you please explain what would 
happen if we don't do this?

> +}
> +
> +static void s25fl256l_default_init(struct spi_nor *nor)
> +{
> +	nor->setup = s25fl256l_setup;
> +}
> +
> +static struct spi_nor_fixups s25fl256l_fixups = {
> +	.default_init = s25fl256l_default_init,
> +};
> +#endif
>  #endif
>  
>  #ifdef CONFIG_SPI_FLASH_S28HS512T
> @@ -3644,6 +3661,10 @@ void spi_nor_set_fixups(struct spi_nor *nor)
>  			break;
>  		}
>  	}
> +#ifdef CONFIG_SPI_FLASH_BAR

We should avoid using #ifdef as much as possible. Change this to

  if (CONFIG_IS_ENABLED(SPI_FLASH_BAR) && !strcmp())

> +	if (!strcmp(nor->info->name, "s25fl256l"))
> +		nor->fixups = &s25fl256l_fixups;
> +#endif

*sigh* we really need to find a better way to specify fixups. Let me see 
if I can figure something out. In the meantime, this should be fine.

>  #endif
>  
>  #ifdef CONFIG_SPI_FLASH_S28HS512T
> -- 
> 2.25.1
> 

-- 
Regards,
Pratyush Yadav
Texas Instruments Inc.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] mtd: spi-nor-core: Add fixups for Spansion S25FL256L
  2021-09-17 16:51   ` Pratyush Yadav
@ 2021-09-29  5:22     ` Takahiro Kuwano
  0 siblings, 0 replies; 6+ messages in thread
From: Takahiro Kuwano @ 2021-09-29  5:22 UTC (permalink / raw)
  To: Pratyush Yadav; +Cc: u-boot, jagan, vigneshr, Bacem.Daassi, Takahiro Kuwano

On 9/18/2021 1:51 AM, Pratyush Yadav wrote:
> On 08/09/21 05:47PM, tkuw584924@gmail.com wrote:
>> From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
>>
>> The S25FL256L is 32MB NOR Flash that does not support Bank Address
>> Register. This fixup is activated if CONFIG_SPI_FLASH_BAR is enabled and
>> returns ENOTSUPP in setup() hook to avoid further ops.
>>
>> Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
>> ---
>>  drivers/mtd/spi/spi-nor-core.c | 21 +++++++++++++++++++++
>>  1 file changed, 21 insertions(+)
>>
>> diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
>> index d5d905fa5a..4940b35682 100644
>> --- a/drivers/mtd/spi/spi-nor-core.c
>> +++ b/drivers/mtd/spi/spi-nor-core.c
>> @@ -3222,6 +3222,23 @@ static struct spi_nor_fixups s25hx_t_fixups = {
>>  	.post_bfpt = s25hx_t_post_bfpt_fixup,
>>  	.post_sfdp = s25hx_t_post_sfdp_fixup,
>>  };
>> +
>> +#ifdef CONFIG_SPI_FLASH_BAR
>> +static int s25fl256l_setup(struct spi_nor *nor, const struct flash_info *info,
>> +			   const struct spi_nor_flash_parameter *params)
>> +{
>> +	return -ENOTSUPP; /* Bank Address Register is not supported */
> 
> I am not very familiar with BAR. Can you please explain what would 
> happen if we don't do this?
> 
The Bank Address Register (BAR) enables the 3-byte addressing opcodes to access
beyond 16MB memory space by switching 16MB banks. If we don't do this, the
spi-nor tries to use BAR with 3-byte addressing and the ops to the second half
of 32MB will be performed in the first half of 32MB. 

>> +}
>> +
>> +static void s25fl256l_default_init(struct spi_nor *nor)
>> +{
>> +	nor->setup = s25fl256l_setup;
>> +}
>> +
>> +static struct spi_nor_fixups s25fl256l_fixups = {
>> +	.default_init = s25fl256l_default_init,
>> +};
>> +#endif
>>  #endif
>>  
>>  #ifdef CONFIG_SPI_FLASH_S28HS512T
>> @@ -3644,6 +3661,10 @@ void spi_nor_set_fixups(struct spi_nor *nor)
>>  			break;
>>  		}
>>  	}
>> +#ifdef CONFIG_SPI_FLASH_BAR
> 
> We should avoid using #ifdef as much as possible. Change this to
> 
>   if (CONFIG_IS_ENABLED(SPI_FLASH_BAR) && !strcmp())
> 
>> +	if (!strcmp(nor->info->name, "s25fl256l"))
>> +		nor->fixups = &s25fl256l_fixups;
>> +#endif
> 
> *sigh* we really need to find a better way to specify fixups. Let me see 
> if I can figure something out. In the meantime, this should be fine.
> 
>>  #endif
>>  
>>  #ifdef CONFIG_SPI_FLASH_S28HS512T
>> -- 
>> 2.25.1
>>
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-09-29  5:23 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-08  8:47 [PATCH 0/2] mtd: spi-nor: Add support for Spansion S25FL256L tkuw584924
2021-09-08  8:47 ` [PATCH 1/2] mtd: spi-nor-ids: " tkuw584924
2021-09-17 16:47   ` Pratyush Yadav
2021-09-08  8:47 ` [PATCH 2/2] mtd: spi-nor-core: Add fixups " tkuw584924
2021-09-17 16:51   ` Pratyush Yadav
2021-09-29  5:22     ` Takahiro Kuwano

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.