All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Enable SPI NOR flash for SpacemiT K3 in main app
@ 2026-10-20 19:51 E Shattow
  2026-10-20 19:51 ` [PATCH 1/2] configs: spacemit: k3: enable spi nor flash " E Shattow
  2026-10-20 19:51 ` [PATCH 2/2] configs: spacemit: k3: enable mtdparts on Pico-ITX " E Shattow
  0 siblings, 2 replies; 10+ messages in thread
From: E Shattow @ 2026-10-20 19:51 UTC (permalink / raw)
  To: u-boot, Yixun Lan; +Cc: E Shattow

Enable SPI Flash command, mtd part names and locations, and store U-Boot
environment in SPI NOR flash.

E Shattow (2):
  configs: spacemit: k3: enable spi nor flash in main app
  configs: spacemit: k3: enable mtdparts on Pico-ITX in main app

 arch/riscv/cpu/k3/Kconfig     |  1 +
 configs/spacemit_k3_defconfig | 11 +++++++++++
 2 files changed, 12 insertions(+)


base-commit: 40988fb81ef17c15c36aab94297f5a7a6bc79671
-- 
2.53.0


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

* [PATCH 1/2] configs: spacemit: k3: enable spi nor flash in main app
  2026-10-20 19:51 [PATCH 0/2] Enable SPI NOR flash for SpacemiT K3 in main app E Shattow
@ 2026-10-20 19:51 ` E Shattow
  2026-10-21  7:13   ` Yixun Lan
  2026-10-21  8:01   ` Yixun Lan
  2026-10-20 19:51 ` [PATCH 2/2] configs: spacemit: k3: enable mtdparts on Pico-ITX " E Shattow
  1 sibling, 2 replies; 10+ messages in thread
From: E Shattow @ 2026-10-20 19:51 UTC (permalink / raw)
  To: u-boot, Yixun Lan, Tim Ouyang, Leo Liang, Yao Zi, Tom Rini; +Cc: E Shattow

Enable sf command and env storage in SPI NOR flash. SPL is not yet
upstream so this is only in the main app, and depends on vendor SPL for
clocks setup ahead of SPI NOR flash probe.

Signed-off-by: E Shattow <e@freeshell.de>
---
 arch/riscv/cpu/k3/Kconfig     | 1 +
 configs/spacemit_k3_defconfig | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/arch/riscv/cpu/k3/Kconfig b/arch/riscv/cpu/k3/Kconfig
index 5474ac112437..07b490a718dd 100644
--- a/arch/riscv/cpu/k3/Kconfig
+++ b/arch/riscv/cpu/k3/Kconfig
@@ -14,5 +14,6 @@ config SPACEMIT_K3
 	imply RISCV_TIMER if RISCV_SMODE
 	imply CMD_CPU
 	imply OF_UPSTREAM
+	imply SPI
 
 endif
diff --git a/configs/spacemit_k3_defconfig b/configs/spacemit_k3_defconfig
index 586305c62322..b333e708d01b 100644
--- a/configs/spacemit_k3_defconfig
+++ b/configs/spacemit_k3_defconfig
@@ -4,6 +4,8 @@ CONFIG_SYS_MALLOC_F_LEN=0x80000
 CONFIG_NR_DRAM_BANKS=2
 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
 CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x102300000
+CONFIG_ENV_SIZE=0x10000
+CONFIG_ENV_OFFSET=0xa0000
 CONFIG_DM_GPIO=y
 CONFIG_DEFAULT_DEVICE_TREE="spacemit/k3-pico-itx"
 CONFIG_SYS_BOOTM_LEN=0xa000000
@@ -35,6 +37,8 @@ CONFIG_CMD_REGULATOR=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_DEVICE_TREE_INCLUDES="spacemit-k3-u-boot.dtsi"
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_NET_LWIP=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_SYSCON=y
@@ -44,6 +48,7 @@ CONFIG_SPACEMIT_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_SPACEMIT_K1=y
 CONFIG_MISC=y
+CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_PHY_GIGE=y
 CONFIG_DWC_ETH_QOS=y
 CONFIG_DWC_ETH_QOS_SPACEMIT=y
@@ -61,4 +66,5 @@ CONFIG_DEBUG_UART_SHIFT=2
 CONFIG_DEBUG_UART_ANNOUNCE=y
 CONFIG_SYS_NS16550=y
 CONFIG_SYS_NS16550_MEM32=y
+CONFIG_FSL_QSPI=y
 CONFIG_TIMER_EARLY=y
-- 
2.53.0


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

* [PATCH 2/2] configs: spacemit: k3: enable mtdparts on Pico-ITX in main app
  2026-10-20 19:51 [PATCH 0/2] Enable SPI NOR flash for SpacemiT K3 in main app E Shattow
  2026-10-20 19:51 ` [PATCH 1/2] configs: spacemit: k3: enable spi nor flash " E Shattow
@ 2026-10-20 19:51 ` E Shattow
  2026-10-21  7:56   ` Yixun Lan
  1 sibling, 1 reply; 10+ messages in thread
From: E Shattow @ 2026-10-20 19:51 UTC (permalink / raw)
  To: u-boot, Yixun Lan, Tom Rini; +Cc: E Shattow

add default mtdparts and mtdids consistent with k3-pico-itx.dts

Signed-off-by: E Shattow <e@freeshell.de>
---
 configs/spacemit_k3_defconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/configs/spacemit_k3_defconfig b/configs/spacemit_k3_defconfig
index b333e708d01b..2ca912556a88 100644
--- a/configs/spacemit_k3_defconfig
+++ b/configs/spacemit_k3_defconfig
@@ -26,6 +26,7 @@ CONFIG_SYS_PBSIZE=276
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
+CONFIG_CMD_MTD=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_DNS=y
 CONFIG_CMD_MII=y
@@ -36,6 +37,9 @@ CONFIG_CMD_PMIC=y
 CONFIG_CMD_REGULATOR=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
+CONFIG_CMD_MTDPARTS=y
+CONFIG_MTDIDS_DEFAULT="nor0=spi0.0"
+CONFIG_MTDPARTS_DEFAULT="spi0.0:128k(bootinfo),512k(fsbl),64k(env),1024k(esos),384k(opensbi),-(uboot)"
 CONFIG_DEVICE_TREE_INCLUDES="spacemit-k3-u-boot.dtsi"
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
@@ -49,6 +53,7 @@ CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_SPACEMIT_K1=y
 CONFIG_MISC=y
 CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_SPI_FLASH_MTD=y
 CONFIG_PHY_GIGE=y
 CONFIG_DWC_ETH_QOS=y
 CONFIG_DWC_ETH_QOS_SPACEMIT=y
-- 
2.53.0


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

* Re: [PATCH 1/2] configs: spacemit: k3: enable spi nor flash in main app
  2026-10-20 19:51 ` [PATCH 1/2] configs: spacemit: k3: enable spi nor flash " E Shattow
@ 2026-10-21  7:13   ` Yixun Lan
  2026-10-21  7:37     ` E Shattow
  2026-10-21  8:01   ` Yixun Lan
  1 sibling, 1 reply; 10+ messages in thread
From: Yixun Lan @ 2026-10-21  7:13 UTC (permalink / raw)
  To: E Shattow; +Cc: u-boot, Tim Ouyang, Leo Liang, Yao Zi, Tom Rini

Hi E Shattow,

Thanks for the patch

On 12:51 Tue 20 Oct     , E Shattow wrote:
> Enable sf command and env storage in SPI NOR flash.
..
> SPL is not yet
> upstream so this is only in the main app, and depends on vendor SPL for
> clocks setup ahead of SPI NOR flash probe.
> 
This could be added as additional info, but I'd rather not put in commit
meassage, maybe just put it under "---" scissors line for reference

For why depend on SPL for clock, reset setup.. I checked fsl_qspi.c,
there is no clock & reset enabling support currently, although SpacemiT
do provide those support, but I think it's another item need to improve,
and we could definitely address it in a separate thread..

> Signed-off-by: E Shattow <e@freeshell.de>
> ---
>  arch/riscv/cpu/k3/Kconfig     | 1 +
>  configs/spacemit_k3_defconfig | 6 ++++++
>  2 files changed, 7 insertions(+)
> 
> diff --git a/arch/riscv/cpu/k3/Kconfig b/arch/riscv/cpu/k3/Kconfig
> index 5474ac112437..07b490a718dd 100644
> --- a/arch/riscv/cpu/k3/Kconfig
> +++ b/arch/riscv/cpu/k3/Kconfig
> @@ -14,5 +14,6 @@ config SPACEMIT_K3
>  	imply RISCV_TIMER if RISCV_SMODE
>  	imply CMD_CPU
>  	imply OF_UPSTREAM
> +	imply SPI
Any reason to add this dependency?

I'd prefer to put this config in defconfig, As I see K3 has 
no hard requirement for SPI support from architecture perspective

>  
>  endif
> diff --git a/configs/spacemit_k3_defconfig b/configs/spacemit_k3_defconfig
> index 586305c62322..b333e708d01b 100644
> --- a/configs/spacemit_k3_defconfig
> +++ b/configs/spacemit_k3_defconfig
> @@ -4,6 +4,8 @@ CONFIG_SYS_MALLOC_F_LEN=0x80000
>  CONFIG_NR_DRAM_BANKS=2
>  CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
>  CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x102300000
> +CONFIG_ENV_SIZE=0x10000
> +CONFIG_ENV_OFFSET=0xa0000
>  CONFIG_DM_GPIO=y
>  CONFIG_DEFAULT_DEVICE_TREE="spacemit/k3-pico-itx"
>  CONFIG_SYS_BOOTM_LEN=0xa000000
> @@ -35,6 +37,8 @@ CONFIG_CMD_REGULATOR=y
>  CONFIG_CMD_FAT=y
>  CONFIG_CMD_FS_GENERIC=y
>  CONFIG_DEVICE_TREE_INCLUDES="spacemit-k3-u-boot.dtsi"
> +CONFIG_ENV_OVERWRITE=y
> +CONFIG_ENV_IS_IN_SPI_FLASH=y
>  CONFIG_NET_LWIP=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_SYSCON=y
> @@ -44,6 +48,7 @@ CONFIG_SPACEMIT_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_SPACEMIT_K1=y
>  CONFIG_MISC=y
> +CONFIG_SPI_FLASH_WINBOND=y
>  CONFIG_PHY_GIGE=y
>  CONFIG_DWC_ETH_QOS=y
>  CONFIG_DWC_ETH_QOS_SPACEMIT=y
> @@ -61,4 +66,5 @@ CONFIG_DEBUG_UART_SHIFT=2
>  CONFIG_DEBUG_UART_ANNOUNCE=y
>  CONFIG_SYS_NS16550=y
>  CONFIG_SYS_NS16550_MEM32=y
> +CONFIG_FSL_QSPI=y
>  CONFIG_TIMER_EARLY=y
> -- 
> 2.53.0
> 

-- 
Yixun Lan (dlan)

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

* Re: [PATCH 1/2] configs: spacemit: k3: enable spi nor flash in main app
  2026-10-21  7:13   ` Yixun Lan
@ 2026-10-21  7:37     ` E Shattow
  0 siblings, 0 replies; 10+ messages in thread
From: E Shattow @ 2026-10-21  7:37 UTC (permalink / raw)
  To: Yixun Lan; +Cc: u-boot, Tim Ouyang, Leo Liang, Yao Zi, Tom Rini

Hi Yixun,

On 10/21/26 00:13, Yixun Lan wrote:
> Hi E Shattow,
> 
> Thanks for the patch
> 
> On 12:51 Tue 20 Oct     , E Shattow wrote:
>> Enable sf command and env storage in SPI NOR flash.
> ..
>> SPL is not yet
>> upstream so this is only in the main app, and depends on vendor SPL for
>> clocks setup ahead of SPI NOR flash probe.
>>
> This could be added as additional info, but I'd rather not put in commit
> meassage, maybe just put it under "---" scissors line for reference
> 
> For why depend on SPL for clock, reset setup.. I checked fsl_qspi.c,
> there is no clock & reset enabling support currently, although SpacemiT
> do provide those support, but I think it's another item need to improve,
> and we could definitely address it in a separate thread..
> 
>> Signed-off-by: E Shattow <e@freeshell.de>
>> ---
>>  arch/riscv/cpu/k3/Kconfig     | 1 +
>>  configs/spacemit_k3_defconfig | 6 ++++++
>>  2 files changed, 7 insertions(+)
>>
>> diff --git a/arch/riscv/cpu/k3/Kconfig b/arch/riscv/cpu/k3/Kconfig
>> index 5474ac112437..07b490a718dd 100644
>> --- a/arch/riscv/cpu/k3/Kconfig
>> +++ b/arch/riscv/cpu/k3/Kconfig
>> @@ -14,5 +14,6 @@ config SPACEMIT_K3
>>  	imply RISCV_TIMER if RISCV_SMODE
>>  	imply CMD_CPU
>>  	imply OF_UPSTREAM
>> +	imply SPI
> Any reason to add this dependency?

It is a guess, that when SPL may be loaded by K3 SoC BootROM from SPI
NOR flash then there should be an 'imply SPI' for what is needed to have
SPI support in SPL here on selecting the K3 SoC or in
BOARD_SPECIFIC_OPTIONS.

> 
> I'd prefer to put this config in defconfig, As I see K3 has 
> no hard requirement for SPI support from architecture perspective
> 

Okay, no objection to to move 'imply SPI' as '=y' in
spacemit_k3_defconfig for v2 revision.

>>  
>>  endif
>> diff --git a/configs/spacemit_k3_defconfig b/configs/spacemit_k3_defconfig
>> index 586305c62322..b333e708d01b 100644
>> --- a/configs/spacemit_k3_defconfig
>> +++ b/configs/spacemit_k3_defconfig
>> @@ -4,6 +4,8 @@ CONFIG_SYS_MALLOC_F_LEN=0x80000
>>  CONFIG_NR_DRAM_BANKS=2
>>  CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
>>  CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x102300000
>> +CONFIG_ENV_SIZE=0x10000
>> +CONFIG_ENV_OFFSET=0xa0000
>>  CONFIG_DM_GPIO=y
>>  CONFIG_DEFAULT_DEVICE_TREE="spacemit/k3-pico-itx"
>>  CONFIG_SYS_BOOTM_LEN=0xa000000
>> @@ -35,6 +37,8 @@ CONFIG_CMD_REGULATOR=y
>>  CONFIG_CMD_FAT=y
>>  CONFIG_CMD_FS_GENERIC=y
>>  CONFIG_DEVICE_TREE_INCLUDES="spacemit-k3-u-boot.dtsi"
>> +CONFIG_ENV_OVERWRITE=y
>> +CONFIG_ENV_IS_IN_SPI_FLASH=y
>>  CONFIG_NET_LWIP=y
>>  CONFIG_NET_RANDOM_ETHADDR=y
>>  CONFIG_SYSCON=y
>> @@ -44,6 +48,7 @@ CONFIG_SPACEMIT_GPIO=y
>>  CONFIG_DM_I2C=y
>>  CONFIG_SYS_I2C_SPACEMIT_K1=y
>>  CONFIG_MISC=y
>> +CONFIG_SPI_FLASH_WINBOND=y
>>  CONFIG_PHY_GIGE=y
>>  CONFIG_DWC_ETH_QOS=y
>>  CONFIG_DWC_ETH_QOS_SPACEMIT=y
>> @@ -61,4 +66,5 @@ CONFIG_DEBUG_UART_SHIFT=2
>>  CONFIG_DEBUG_UART_ANNOUNCE=y
>>  CONFIG_SYS_NS16550=y
>>  CONFIG_SYS_NS16550_MEM32=y
>> +CONFIG_FSL_QSPI=y
>>  CONFIG_TIMER_EARLY=y
>> -- 
>> 2.53.0
>>
> 

Thanks for the review,

-E

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

* Re: [PATCH 2/2] configs: spacemit: k3: enable mtdparts on Pico-ITX in main app
  2026-10-20 19:51 ` [PATCH 2/2] configs: spacemit: k3: enable mtdparts on Pico-ITX " E Shattow
@ 2026-10-21  7:56   ` Yixun Lan
  2026-10-21 14:35     ` E Shattow
  0 siblings, 1 reply; 10+ messages in thread
From: Yixun Lan @ 2026-10-21  7:56 UTC (permalink / raw)
  To: E Shattow; +Cc: u-boot, Tom Rini

Hi E Shattow,


On 12:51 Tue 20 Oct     , E Shattow wrote:
> add default mtdparts and mtdids consistent with k3-pico-itx.dts
> 
> Signed-off-by: E Shattow <e@freeshell.de>
> ---
>  configs/spacemit_k3_defconfig | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/configs/spacemit_k3_defconfig b/configs/spacemit_k3_defconfig
> index b333e708d01b..2ca912556a88 100644
> --- a/configs/spacemit_k3_defconfig
> +++ b/configs/spacemit_k3_defconfig
> @@ -26,6 +26,7 @@ CONFIG_SYS_PBSIZE=276
>  CONFIG_HUSH_PARSER=y
>  CONFIG_CMD_GPIO=y
>  CONFIG_CMD_I2C=y
> +CONFIG_CMD_MTD=y
>  CONFIG_CMD_DHCP=y
>  CONFIG_CMD_DNS=y
>  CONFIG_CMD_MII=y
> @@ -36,6 +37,9 @@ CONFIG_CMD_PMIC=y
>  CONFIG_CMD_REGULATOR=y
>  CONFIG_CMD_FAT=y
>  CONFIG_CMD_FS_GENERIC=y
> +CONFIG_CMD_MTDPARTS=y
> +CONFIG_MTDIDS_DEFAULT="nor0=spi0.0"
> +CONFIG_MTDPARTS_DEFAULT="spi0.0:128k(bootinfo),512k(fsbl),64k(env),1024k(esos),384k(opensbi),-(uboot)"
or make it more specific? s/spi0.0/d420c000.spi/ 

>  CONFIG_DEVICE_TREE_INCLUDES="spacemit-k3-u-boot.dtsi"
>  CONFIG_ENV_OVERWRITE=y
>  CONFIG_ENV_IS_IN_SPI_FLASH=y
> @@ -49,6 +53,7 @@ CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_SPACEMIT_K1=y
>  CONFIG_MISC=y
>  CONFIG_SPI_FLASH_WINBOND=y
> +CONFIG_SPI_FLASH_MTD=y
>  CONFIG_PHY_GIGE=y
>  CONFIG_DWC_ETH_QOS=y
>  CONFIG_DWC_ETH_QOS_SPACEMIT=y
> -- 
> 2.53.0
> 

-- 
Yixun Lan (dlan)

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

* Re: [PATCH 1/2] configs: spacemit: k3: enable spi nor flash in main app
  2026-10-20 19:51 ` [PATCH 1/2] configs: spacemit: k3: enable spi nor flash " E Shattow
  2026-10-21  7:13   ` Yixun Lan
@ 2026-10-21  8:01   ` Yixun Lan
  2026-10-21 15:47     ` E Shattow
  1 sibling, 1 reply; 10+ messages in thread
From: Yixun Lan @ 2026-10-21  8:01 UTC (permalink / raw)
  To: E Shattow; +Cc: u-boot, Tim Ouyang, Leo Liang, Yao Zi, Tom Rini

Hi E Shattow,

one more comment

On 12:51 Tue 20 Oct     , E Shattow wrote:
> Enable sf command and env storage in SPI NOR flash. SPL is not yet
> upstream so this is only in the main app, and depends on vendor SPL for
> clocks setup ahead of SPI NOR flash probe.
> 
> Signed-off-by: E Shattow <e@freeshell.de>
> ---
>  arch/riscv/cpu/k3/Kconfig     | 1 +
>  configs/spacemit_k3_defconfig | 6 ++++++
>  2 files changed, 7 insertions(+)
> 
..
>  CONFIG_SYSCON=y
> @@ -44,6 +48,7 @@ CONFIG_SPACEMIT_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_SPACEMIT_K1=y
>  CONFIG_MISC=y
> +CONFIG_SPI_FLASH_WINBOND=y
I've also tested on com260 board which use GD25LQ64C chip, same 8MiB
but need to enable CONFIG_SPI_FLASH_GIGADEVICE=y, the patch 2/2 also
works on com260, so I'd suggest to make the commit message slightly
 more generic? not specific for Pico-ITX board

-- 
Yixun Lan (dlan)

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

* Re: [PATCH 2/2] configs: spacemit: k3: enable mtdparts on Pico-ITX in main app
  2026-10-21  7:56   ` Yixun Lan
@ 2026-10-21 14:35     ` E Shattow
  2026-10-22  0:57       ` Yixun Lan
  0 siblings, 1 reply; 10+ messages in thread
From: E Shattow @ 2026-10-21 14:35 UTC (permalink / raw)
  To: Yixun Lan; +Cc: u-boot, Tom Rini

Hi Yixun,

On 10/21/26 00:56, Yixun Lan wrote:
> Hi E Shattow,
> 
> 
> On 12:51 Tue 20 Oct     , E Shattow wrote:
>> add default mtdparts and mtdids consistent with k3-pico-itx.dts
>>
>> Signed-off-by: E Shattow <e@freeshell.de>
>> ---
>>  configs/spacemit_k3_defconfig | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/configs/spacemit_k3_defconfig b/configs/spacemit_k3_defconfig
>> index b333e708d01b..2ca912556a88 100644
>> --- a/configs/spacemit_k3_defconfig
>> +++ b/configs/spacemit_k3_defconfig
>> @@ -26,6 +26,7 @@ CONFIG_SYS_PBSIZE=276
>>  CONFIG_HUSH_PARSER=y
>>  CONFIG_CMD_GPIO=y
>>  CONFIG_CMD_I2C=y
>> +CONFIG_CMD_MTD=y
>>  CONFIG_CMD_DHCP=y
>>  CONFIG_CMD_DNS=y
>>  CONFIG_CMD_MII=y
>> @@ -36,6 +37,9 @@ CONFIG_CMD_PMIC=y
>>  CONFIG_CMD_REGULATOR=y
>>  CONFIG_CMD_FAT=y
>>  CONFIG_CMD_FS_GENERIC=y
>> +CONFIG_CMD_MTDPARTS=y
>> +CONFIG_MTDIDS_DEFAULT="nor0=spi0.0"
>> +CONFIG_MTDPARTS_DEFAULT="spi0.0:128k(bootinfo),512k(fsbl),64k(env),1024k(esos),384k(opensbi),-(uboot)"

> or make it more specific? s/spi0.0/d420c000.spi/ 

Yes and no, I do prefer an automatic layout (and layout name) be
generated from device tree at runtime. I guess that may possibly become
"qspi.flash0", or "fdt.soc.d420c000.spi.qspi.flash.0", etc.

The output of 'mtd list' tells us the parent:

=> mtd list
List of MTD devices:
* nor0
  - device: flash@0
  - parent: spi@d420c000

Also, then, the output of 'mtdparts' tells us the partition layout:

=> mtdpart

device nor0 <spi0.0>, # parts = 6
 #: name                size            offset          mask_flags
 0: bootinfo            0x00020000      0x00000000      0
 1: fsbl                0x00080000      0x00020000      0
 2: env                 0x00010000      0x000a0000      0
 3: esos                0x00100000      0x000b0000      0
 4: opensbi             0x00060000      0x001b0000      0
 5: uboot               0x005f0000      0x00210000      0

active partition: nor0,0 - (bootinfo) 0x00020000 @ 0x00000000

defaults:
mtdids  : nor0=spi0.0
mtdparts:
spi0.0:128k(bootinfo),512k(fsbl),64k(env),1024k(esos),384k(opensbi),-(uboot)

I consider the partition layout identifier style as you suggest:

$ egrep --exclude-dir=.git -or 'mtdparts=[^ ]+)' | cut -d: -f2 | sort |
uniq -c | egrep -v '[0-9a-fA-F]{7}' | sort -k1,1 -n

...
      3 mtdparts=nand_mtd
      3 mtdparts=uniphier-nand.0
      4 mtdparts=nand0
      4 mtdparts=spi-flash.0
      5 mtdparts=nor0
      5 mtdparts=spi_flash
      7 mtdparts=boot
      7 mtdparts=omap2-nand.0
      8 mtdparts=nand
     11 mtdparts=nand.0
     12 mtdparts=orion_nand
     13 mtdparts=spi0.0
     16 mtdparts=gpmi-nand
     50 mtdparts=atmel_nand


$ egrep --exclude-dir=.git -or 'mtdparts=[^ ]+)' | cut -d: -f2 | sort |
uniq -c | egrep '[0-9a-fA-F]{7}' | sort -k1,1 -n
      1 mtdparts=10b80000.nand.0
      1 mtdparts=1fc000000.nor_flash
      1 mtdparts=21e0000.qspi
      1 mtdparts=30bb0000.qspi
      1 mtdparts=30bb0000.spi
      1 mtdparts=8000000.nand
      1 mtdparts=fe000000.nor_flash
      1 mtdparts=ffb90000.nand.0
      1 mtdparts=mtdparts=47040000.spi.0
      1 mtdparts=[mtdparts=]edb7312-nor
      1 mtdparts=mtdparts=edb7312-nor
      2 mtdparts=02008000.spi.1
      2 mtdparts=8000000.nor
      4 mtdparts=1550000.spi
      4 mtdparts=1550000.spi-0
      4 mtdparts=47040000.spi.0
      4 mtdparts=ec000000.nor
      4 mtdparts=ef000000.nor
      4 mtdparts=fef000000.nor
     10 mtdparts=ff705000.spi.0
     16 mtdparts=60000000.nor
     16 mtdparts=ff800000.flash
     22 mtdparts=fe8000000.nor


For the initial patch here I instead prefer the minimal and simple style
for mtdparts layout template names and to re-use what is popular in
U-Boot source tree. The use of hexadecimal bus address for the layout
name is difficult for me to read, and not clear to me what is the
benefit to doing this manually-entered data address?

=> env print
...
mtddevnum=0
mtdids=nor0=spi0.0
mtdparts=spi0.0:128k(bootinfo),512k(fsbl),64k(env),1024k(esos),384k(opensbi),-(uboot)
partition=nor0,0
...

Compared to a style of repeating the bus address:

=> env print
...
mtddevnum=0
mtdids=nor0=d420c000.spi
mtdparts=d420c000.spi:128k(bootinfo),512k(fsbl),64k(env),1024k(esos),384k(opensbi),-(uboot)
partition=nor0,0
...

Let me know if you do yet prefer the bus address repeated for the name
of partition layout. I'd like to see this as part of a runtime-generated
mtdparts configuration, so anything is okay with me for the initial
manual layout here.

> 
>>  CONFIG_DEVICE_TREE_INCLUDES="spacemit-k3-u-boot.dtsi"
>>  CONFIG_ENV_OVERWRITE=y
>>  CONFIG_ENV_IS_IN_SPI_FLASH=y
>> @@ -49,6 +53,7 @@ CONFIG_DM_I2C=y
>>  CONFIG_SYS_I2C_SPACEMIT_K1=y
>>  CONFIG_MISC=y
>>  CONFIG_SPI_FLASH_WINBOND=y
>> +CONFIG_SPI_FLASH_MTD=y
>>  CONFIG_PHY_GIGE=y
>>  CONFIG_DWC_ETH_QOS=y
>>  CONFIG_DWC_ETH_QOS_SPACEMIT=y
>> -- 
>> 2.53.0
>>
> 

Thanks,

-E

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

* Re: [PATCH 1/2] configs: spacemit: k3: enable spi nor flash in main app
  2026-10-21  8:01   ` Yixun Lan
@ 2026-10-21 15:47     ` E Shattow
  0 siblings, 0 replies; 10+ messages in thread
From: E Shattow @ 2026-10-21 15:47 UTC (permalink / raw)
  To: Yixun Lan; +Cc: u-boot, Tim Ouyang, Leo Liang, Yao Zi, Tom Rini

Hi Yixun,

On 10/21/26 01:01, Yixun Lan wrote:
> Hi E Shattow,
> 
> one more comment
> 
> On 12:51 Tue 20 Oct     , E Shattow wrote:
>> Enable sf command and env storage in SPI NOR flash. SPL is not yet

Okay, I will adjust the commit message. Thanks for looking at fsl_qspi.c
this is a good report to learn it will need some work.

I have carefully constructed a build of SPL from
spacemit-com/uboot-2022.10 that is reduced to a minimum of build config
options. I'll make the requested changes and send a short write-up of
how I build this reduced vendor SPL, for a baseline of testing.

>> upstream so this is only in the main app, and depends on vendor SPL for
>> clocks setup ahead of SPI NOR flash probe.
>>
>> Signed-off-by: E Shattow <e@freeshell.de>
>> ---
>>  arch/riscv/cpu/k3/Kconfig     | 1 +
>>  configs/spacemit_k3_defconfig | 6 ++++++
>>  2 files changed, 7 insertions(+)
>>
> ..
>>  CONFIG_SYSCON=y
>> @@ -44,6 +48,7 @@ CONFIG_SPACEMIT_GPIO=y
>>  CONFIG_DM_I2C=y
>>  CONFIG_SYS_I2C_SPACEMIT_K1=y
>>  CONFIG_MISC=y
>> +CONFIG_SPI_FLASH_WINBOND=y
> I've also tested on com260 board which use GD25LQ64C chip, same 8MiB
> but need to enable CONFIG_SPI_FLASH_GIGADEVICE=y, the patch 2/2 also
> works on com260, so I'd suggest to make the commit message slightly
>  more generic? not specific for Pico-ITX board
> 
Great, adding this for extending support to CoM260, thank you.

-E

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

* Re: [PATCH 2/2] configs: spacemit: k3: enable mtdparts on Pico-ITX in main app
  2026-10-21 14:35     ` E Shattow
@ 2026-10-22  0:57       ` Yixun Lan
  0 siblings, 0 replies; 10+ messages in thread
From: Yixun Lan @ 2026-10-22  0:57 UTC (permalink / raw)
  To: E Shattow; +Cc: u-boot, Tom Rini

Hi E

On 07:35 Wed 21 Oct     , E Shattow wrote:
> Hi Yixun,
> 
> On 10/21/26 00:56, Yixun Lan wrote:
> > Hi E Shattow,
> > 
> > 
> > On 12:51 Tue 20 Oct     , E Shattow wrote:
> >> add default mtdparts and mtdids consistent with k3-pico-itx.dts
> >>
> >> Signed-off-by: E Shattow <e@freeshell.de>
> >> ---
> >>  configs/spacemit_k3_defconfig | 5 +++++
> >>  1 file changed, 5 insertions(+)
> >>
> >> diff --git a/configs/spacemit_k3_defconfig b/configs/spacemit_k3_defconfig
> >> index b333e708d01b..2ca912556a88 100644
> >> --- a/configs/spacemit_k3_defconfig
> >> +++ b/configs/spacemit_k3_defconfig
> >> @@ -26,6 +26,7 @@ CONFIG_SYS_PBSIZE=276
> >>  CONFIG_HUSH_PARSER=y
> >>  CONFIG_CMD_GPIO=y
> >>  CONFIG_CMD_I2C=y
> >> +CONFIG_CMD_MTD=y
> >>  CONFIG_CMD_DHCP=y
> >>  CONFIG_CMD_DNS=y
> >>  CONFIG_CMD_MII=y
> >> @@ -36,6 +37,9 @@ CONFIG_CMD_PMIC=y
> >>  CONFIG_CMD_REGULATOR=y
> >>  CONFIG_CMD_FAT=y
> >>  CONFIG_CMD_FS_GENERIC=y
> >> +CONFIG_CMD_MTDPARTS=y
> >> +CONFIG_MTDIDS_DEFAULT="nor0=spi0.0"
> >> +CONFIG_MTDPARTS_DEFAULT="spi0.0:128k(bootinfo),512k(fsbl),64k(env),1024k(esos),384k(opensbi),-(uboot)"
> 
> > or make it more specific? s/spi0.0/d420c000.spi/ 
> 
> Yes and no, I do prefer an automatic layout (and layout name) be
> generated from device tree at runtime. I guess that may possibly become
> "qspi.flash0", or "fdt.soc.d420c000.spi.qspi.flash.0", etc.
> 
> The output of 'mtd list' tells us the parent:
> 
> => mtd list
> List of MTD devices:
> * nor0
>   - device: flash@0
>   - parent: spi@d420c000
> 
> Also, then, the output of 'mtdparts' tells us the partition layout:
> 
> => mtdpart
> 
> device nor0 <spi0.0>, # parts = 6
>  #: name                size            offset          mask_flags
>  0: bootinfo            0x00020000      0x00000000      0
>  1: fsbl                0x00080000      0x00020000      0
>  2: env                 0x00010000      0x000a0000      0
>  3: esos                0x00100000      0x000b0000      0
>  4: opensbi             0x00060000      0x001b0000      0
>  5: uboot               0x005f0000      0x00210000      0
> 
> active partition: nor0,0 - (bootinfo) 0x00020000 @ 0x00000000
> 
> defaults:
> mtdids  : nor0=spi0.0
> mtdparts:
> spi0.0:128k(bootinfo),512k(fsbl),64k(env),1024k(esos),384k(opensbi),-(uboot)
> 
> I consider the partition layout identifier style as you suggest:
> 
> $ egrep --exclude-dir=.git -or 'mtdparts=[^ ]+)' | cut -d: -f2 | sort |
> uniq -c | egrep -v '[0-9a-fA-F]{7}' | sort -k1,1 -n
> 
> ...
>       3 mtdparts=nand_mtd
>       3 mtdparts=uniphier-nand.0
>       4 mtdparts=nand0
>       4 mtdparts=spi-flash.0
>       5 mtdparts=nor0
>       5 mtdparts=spi_flash
>       7 mtdparts=boot
>       7 mtdparts=omap2-nand.0
>       8 mtdparts=nand
>      11 mtdparts=nand.0
>      12 mtdparts=orion_nand
>      13 mtdparts=spi0.0
>      16 mtdparts=gpmi-nand
>      50 mtdparts=atmel_nand
> 
> 
> $ egrep --exclude-dir=.git -or 'mtdparts=[^ ]+)' | cut -d: -f2 | sort |
> uniq -c | egrep '[0-9a-fA-F]{7}' | sort -k1,1 -n
>       1 mtdparts=10b80000.nand.0
>       1 mtdparts=1fc000000.nor_flash
>       1 mtdparts=21e0000.qspi
>       1 mtdparts=30bb0000.qspi
>       1 mtdparts=30bb0000.spi
>       1 mtdparts=8000000.nand
>       1 mtdparts=fe000000.nor_flash
>       1 mtdparts=ffb90000.nand.0
>       1 mtdparts=mtdparts=47040000.spi.0
>       1 mtdparts=[mtdparts=]edb7312-nor
>       1 mtdparts=mtdparts=edb7312-nor
>       2 mtdparts=02008000.spi.1
>       2 mtdparts=8000000.nor
>       4 mtdparts=1550000.spi
>       4 mtdparts=1550000.spi-0
>       4 mtdparts=47040000.spi.0
>       4 mtdparts=ec000000.nor
>       4 mtdparts=ef000000.nor
>       4 mtdparts=fef000000.nor
>      10 mtdparts=ff705000.spi.0
>      16 mtdparts=60000000.nor
>      16 mtdparts=ff800000.flash
>      22 mtdparts=fe8000000.nor
> 
> 
> For the initial patch here I instead prefer the minimal and simple style
> for mtdparts layout template names and to re-use what is popular in
> U-Boot source tree. The use of hexadecimal bus address for the layout
> name is difficult for me to read, and not clear to me what is the
> benefit to doing this manually-entered data address?
> 
> => env print
> ...
> mtddevnum=0
> mtdids=nor0=spi0.0
> mtdparts=spi0.0:128k(bootinfo),512k(fsbl),64k(env),1024k(esos),384k(opensbi),-(uboot)
> partition=nor0,0
> ...
> 
> Compared to a style of repeating the bus address:
> 
> => env print
> ...
> mtddevnum=0
> mtdids=nor0=d420c000.spi
> mtdparts=d420c000.spi:128k(bootinfo),512k(fsbl),64k(env),1024k(esos),384k(opensbi),-(uboot)
> partition=nor0,0
> ...
> 
> Let me know if you do yet prefer the bus address repeated for the name
> of partition layout. I'd like to see this as part of a runtime-generated
> mtdparts configuration, so anything is okay with me for the initial
> manual layout here.
> 
I've done a further check.. so quote from <uboot>/cmd/mtdparts.c

 * mtdparts=[mtdparts=]<mtd-def>[;<mtd-def>...]
 *
 * <mtd-def>  := <mtd-id>:<part-def>[,<part-def>...]
 * <mtd-id>   := unique device tag used by linux kernel to find mtd device (mtd->name)

from kernel side, check file drivers/mtd/parsers/cmdlinepart.c which
has the same format, on the linux console (if no mtdparts enabled)

# cat /sys/class/mtd/mtd0/name
d420c000.spi

so with bus address it's able to support cmdlinepart, although we
currently use ofpart, but IMO, it's correct and in case people need it

> > 
> >>  CONFIG_DEVICE_TREE_INCLUDES="spacemit-k3-u-boot.dtsi"
> >>  CONFIG_ENV_OVERWRITE=y
> >>  CONFIG_ENV_IS_IN_SPI_FLASH=y
> >> @@ -49,6 +53,7 @@ CONFIG_DM_I2C=y
> >>  CONFIG_SYS_I2C_SPACEMIT_K1=y
> >>  CONFIG_MISC=y
> >>  CONFIG_SPI_FLASH_WINBOND=y
> >> +CONFIG_SPI_FLASH_MTD=y
> >>  CONFIG_PHY_GIGE=y
> >>  CONFIG_DWC_ETH_QOS=y
> >>  CONFIG_DWC_ETH_QOS_SPACEMIT=y
> >> -- 
> >> 2.53.0
> >>
> > 
> 
> Thanks,
> 
> -E

-- 
Yixun Lan (dlan)

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

end of thread, other threads:[~2026-10-22  0:58 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-20 19:51 [PATCH 0/2] Enable SPI NOR flash for SpacemiT K3 in main app E Shattow
2026-10-20 19:51 ` [PATCH 1/2] configs: spacemit: k3: enable spi nor flash " E Shattow
2026-10-21  7:13   ` Yixun Lan
2026-10-21  7:37     ` E Shattow
2026-10-21  8:01   ` Yixun Lan
2026-10-21 15:47     ` E Shattow
2026-10-20 19:51 ` [PATCH 2/2] configs: spacemit: k3: enable mtdparts on Pico-ITX " E Shattow
2026-10-21  7:56   ` Yixun Lan
2026-10-21 14:35     ` E Shattow
2026-10-22  0:57       ` Yixun Lan

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.