U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/5] roc-pc-rk3399: Enable redundant SPI flash environment
@ 2026-07-01 17:57 Fabio Estevam
  2026-07-01 17:57 ` [PATCH v2 2/5] roc-pc-rk3399: Introduce a common defconfig Fabio Estevam
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Fabio Estevam @ 2026-07-01 17:57 UTC (permalink / raw)
  To: kever.yang; +Cc: djw, u-boot, Fabio Estevam

From: Fabio Estevam <festevam@nabladev.com>

Enable redundant environment storage in the SPI NOR flash by enabling
CONFIG_ENV_REDUNDANT and defining CONFIG_ENV_OFFSET_REDUND.

Move the primary environment to 0x3f0000 and place the redundant copy
at 0x3f8000, matching the existing SPI NOR layout.

Having two copies of the environment improves robustness against
power loss or interrupted writes and is useful for software update
frameworks such as SWUpdate that modify the U-Boot environment during
system updates.

Signed-off-by: Fabio Estevam <festevam@nabladev.com>
---
Changes since v1:
- Use CONFIG_ENV_OFFSET=0x3F0000 and CONFIG_ENV_OFFSET_REDUND=0x3F8000.

 configs/roc-pc-rk3399_defconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/configs/roc-pc-rk3399_defconfig b/configs/roc-pc-rk3399_defconfig
index 1df5cb03adbb..c7cbe8ec34b3 100644
--- a/configs/roc-pc-rk3399_defconfig
+++ b/configs/roc-pc-rk3399_defconfig
@@ -7,6 +7,6 @@ CONFIG_NR_DRAM_BANKS=1
 CONFIG_SF_DEFAULT_SPEED=30000000
 CONFIG_ENV_SIZE=0x8000
-CONFIG_ENV_OFFSET=0x3F8000
+CONFIG_ENV_OFFSET=0x3F0000
 CONFIG_ENV_SECT_SIZE=0x1000
 CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3399-roc-pc"
 CONFIG_DM_RESET=y
@@ -17,6 +17,7 @@ CONFIG_SYS_LOAD_ADDR=0x800800
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_DEBUG_UART_BASE=0xFF1A0000
 CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_ENV_OFFSET_REDUND=0x3F8000
 CONFIG_SPL_SPI_FLASH_SUPPORT=y
 CONFIG_SPL_SPI=y
 CONFIG_DEBUG_UART=y
@@ -39,6 +40,7 @@ CONFIG_CMD_TIME=y
 CONFIG_SPL_OF_CONTROL=y
 CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
+CONFIG_ENV_REDUNDANT=y
 CONFIG_ENV_RELOC_GD_ENV_ADDR=y
 CONFIG_ROCKCHIP_GPIO=y
 CONFIG_SYS_I2C_ROCKCHIP=y
-- 
2.43.0

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

* [PATCH v2 2/5] roc-pc-rk3399: Introduce a common defconfig
  2026-07-01 17:57 [PATCH v2 1/5] roc-pc-rk3399: Enable redundant SPI flash environment Fabio Estevam
@ 2026-07-01 17:57 ` Fabio Estevam
  2026-07-01 17:57 ` [PATCH v2 3/5] mtd: spi-nor-ids: Add XMC XM25QH128C Fabio Estevam
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Fabio Estevam @ 2026-07-01 17:57 UTC (permalink / raw)
  To: kever.yang; +Cc: djw, u-boot, Fabio Estevam

From: Fabio Estevam <festevam@nabladev.com>

Introduce a common roc-pc-rk3399_common.config file to make it easier
to introduce new roc-pc-rk3399 board variants.

No functional change.

Signed-off-by: Fabio Estevam <festevam@nabladev.com>
---
Changes since v1:
- None.

 configs/roc-pc-rk3399_common.config | 89 ++++++++++++++++++++++++++++
 configs/roc-pc-rk3399_defconfig     | 90 +----------------------------
 2 files changed, 90 insertions(+), 89 deletions(-)
 create mode 100644 configs/roc-pc-rk3399_common.config

diff --git a/configs/roc-pc-rk3399_common.config b/configs/roc-pc-rk3399_common.config
new file mode 100644
index 000000000000..7ead746cec92
--- /dev/null
+++ b/configs/roc-pc-rk3399_common.config
@@ -0,0 +1,89 @@
+CONFIG_ARM=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_COUNTER_FREQUENCY=24000000
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_SPL_GPIO=y
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SF_DEFAULT_SPEED=30000000
+CONFIG_ENV_SIZE=0x8000
+CONFIG_ENV_OFFSET=0x3F8000
+CONFIG_ENV_SECT_SIZE=0x1000
+CONFIG_DM_RESET=y
+CONFIG_ROCKCHIP_RK3399=y
+CONFIG_ROCKCHIP_SPI_IMAGE=y
+CONFIG_TARGET_ROC_PC_RK3399=y
+CONFIG_SYS_LOAD_ADDR=0x800800
+CONFIG_SF_DEFAULT_BUS=1
+CONFIG_DEBUG_UART_BASE=0xFF1A0000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_ENV_OFFSET_REDUND=0x3F8000
+CONFIG_SPL_SPI_FLASH_SUPPORT=y
+CONFIG_SPL_SPI=y
+CONFIG_DEBUG_UART=y
+# CONFIG_ANDROID_BOOT_IMAGE is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_SPL_MAX_SIZE=0x40000
+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
+CONFIG_SPL_ENV_SUPPORT=y
+CONFIG_SPL_SPI_LOAD=y
+CONFIG_SYS_SPI_U_BOOT_OFFS=0xE0000
+CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
+CONFIG_TPL=y
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_USB=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_TIME=y
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_ENV_IS_IN_SPI_FLASH=y
+CONFIG_ENV_REDUNDANT=y
+CONFIG_ENV_RELOC_GD_ENV_ADDR=y
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_SYS_I2C_ROCKCHIP=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_ROCKCHIP=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_ROCKCHIP=y
+CONFIG_SPI_FLASH_SFDP_SUPPORT=y
+CONFIG_DM_ETH_PHY=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_GMAC_ROCKCHIP=y
+CONFIG_PHY_REALTEK=y
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+CONFIG_PHY_ROCKCHIP_TYPEC=y
+CONFIG_PMIC_RK8XX=y
+CONFIG_REGULATOR_PWM=y
+CONFIG_SPL_DM_REGULATOR_FIXED=y
+CONFIG_REGULATOR_RK8XX=y
+CONFIG_PWM_ROCKCHIP=y
+# CONFIG_RAM_ROCKCHIP_DEBUG is not set
+CONFIG_RAM_ROCKCHIP_LPDDR4=y
+CONFIG_BAUDRATE=1500000
+CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_SYS_NS16550_MEM32=y
+CONFIG_ROCKCHIP_SPI=y
+CONFIG_SYSRESET=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_GENERIC=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_GENERIC=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GENERIC=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_USB_HOST_ETHER=y
+CONFIG_USB_ETHER_ASIX=y
+CONFIG_USB_ETHER_ASIX88179=y
+CONFIG_USB_ETHER_MCS7830=y
+CONFIG_USB_ETHER_RTL8152=y
+CONFIG_USB_ETHER_SMSC95XX=y
+CONFIG_USB_GADGET=y
+CONFIG_VIDEO=y
+CONFIG_DISPLAY=y
+CONFIG_VIDEO_ROCKCHIP=y
+CONFIG_DISPLAY_ROCKCHIP_HDMI=y
+CONFIG_ERRNO_STR=y
diff --git a/configs/roc-pc-rk3399_defconfig b/configs/roc-pc-rk3399_defconfig
index 4c9a5a69b4d0..d72e64db1327 100644
--- a/configs/roc-pc-rk3399_defconfig
+++ b/configs/roc-pc-rk3399_defconfig
@@ -1,92 +1,4 @@
-CONFIG_ARM=y
-CONFIG_SKIP_LOWLEVEL_INIT=y
-CONFIG_COUNTER_FREQUENCY=24000000
-CONFIG_ARCH_ROCKCHIP=y
-CONFIG_SPL_GPIO=y
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_SF_DEFAULT_SPEED=30000000
-CONFIG_ENV_SIZE=0x8000
-CONFIG_ENV_OFFSET=0x3F8000
-CONFIG_ENV_SECT_SIZE=0x1000
+#include <configs/roc-pc-rk3399_common.config>
 CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3399-roc-pc"
-CONFIG_DM_RESET=y
-CONFIG_ROCKCHIP_RK3399=y
-CONFIG_ROCKCHIP_SPI_IMAGE=y
-CONFIG_TARGET_ROC_PC_RK3399=y
-CONFIG_SYS_LOAD_ADDR=0x800800
-CONFIG_SF_DEFAULT_BUS=1
-CONFIG_DEBUG_UART_BASE=0xFF1A0000
-CONFIG_DEBUG_UART_CLOCK=24000000
-CONFIG_ENV_OFFSET_REDUND=0x3F8000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI=y
-CONFIG_DEBUG_UART=y
-# CONFIG_ANDROID_BOOT_IMAGE is not set
 CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-roc-pc.dtb"
-CONFIG_DISPLAY_BOARDINFO_LATE=y
-CONFIG_SPL_MAX_SIZE=0x40000
-# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
-CONFIG_SPL_ENV_SUPPORT=y
-CONFIG_SPL_SPI_LOAD=y
-CONFIG_SYS_SPI_U_BOOT_OFFS=0xE0000
-CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
-CONFIG_TPL=y
-CONFIG_CMD_BOOTZ=y
-CONFIG_CMD_GPT=y
-CONFIG_CMD_MMC=y
-CONFIG_CMD_USB=y
-# CONFIG_CMD_SETEXPR is not set
-CONFIG_CMD_TIME=y
-CONFIG_SPL_OF_CONTROL=y
-CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
-CONFIG_ENV_IS_IN_SPI_FLASH=y
-CONFIG_ENV_REDUNDANT=y
-CONFIG_ENV_RELOC_GD_ENV_ADDR=y
-CONFIG_ROCKCHIP_GPIO=y
-CONFIG_SYS_I2C_ROCKCHIP=y
-CONFIG_MMC_DW=y
-CONFIG_MMC_DW_ROCKCHIP=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_SDMA=y
-CONFIG_MMC_SDHCI_ROCKCHIP=y
-CONFIG_SPI_FLASH_SFDP_SUPPORT=y
 CONFIG_SPI_FLASH_WINBOND=y
-CONFIG_DM_ETH_PHY=y
-CONFIG_ETH_DESIGNWARE=y
-CONFIG_GMAC_ROCKCHIP=y
-CONFIG_PHY_REALTEK=y
-CONFIG_PHY_ROCKCHIP_INNO_USB2=y
-CONFIG_PHY_ROCKCHIP_TYPEC=y
-CONFIG_PMIC_RK8XX=y
-CONFIG_REGULATOR_PWM=y
-CONFIG_SPL_DM_REGULATOR_FIXED=y
-CONFIG_REGULATOR_RK8XX=y
-CONFIG_PWM_ROCKCHIP=y
-# CONFIG_RAM_ROCKCHIP_DEBUG is not set
-CONFIG_RAM_ROCKCHIP_LPDDR4=y
-CONFIG_BAUDRATE=1500000
-CONFIG_DEBUG_UART_SHIFT=2
-CONFIG_SYS_NS16550_MEM32=y
-CONFIG_ROCKCHIP_SPI=y
-CONFIG_SYSRESET=y
-CONFIG_USB=y
-CONFIG_USB_XHCI_HCD=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_GENERIC=y
-CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_OHCI_GENERIC=y
-CONFIG_USB_DWC3=y
-CONFIG_USB_DWC3_GENERIC=y
-CONFIG_USB_KEYBOARD=y
-CONFIG_USB_HOST_ETHER=y
-CONFIG_USB_ETHER_ASIX=y
-CONFIG_USB_ETHER_ASIX88179=y
-CONFIG_USB_ETHER_MCS7830=y
-CONFIG_USB_ETHER_RTL8152=y
-CONFIG_USB_ETHER_SMSC95XX=y
-CONFIG_USB_GADGET=y
-CONFIG_VIDEO=y
-CONFIG_DISPLAY=y
-CONFIG_VIDEO_ROCKCHIP=y
-CONFIG_DISPLAY_ROCKCHIP_HDMI=y
-CONFIG_ERRNO_STR=y
-- 
2.43.0


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

* [PATCH v2 3/5] mtd: spi-nor-ids: Add XMC XM25QH128C
  2026-07-01 17:57 [PATCH v2 1/5] roc-pc-rk3399: Enable redundant SPI flash environment Fabio Estevam
  2026-07-01 17:57 ` [PATCH v2 2/5] roc-pc-rk3399: Introduce a common defconfig Fabio Estevam
@ 2026-07-01 17:57 ` Fabio Estevam
  2026-07-01 17:57 ` [PATCH v2 4/5] roc-pc-plus-rk3399: Introduce new variant Fabio Estevam
  2026-07-01 17:58 ` [PATCH v2 5/5] roc-pc-plus-rk3399: Enable USB Mass Storage support Fabio Estevam
  3 siblings, 0 replies; 5+ messages in thread
From: Fabio Estevam @ 2026-07-01 17:57 UTC (permalink / raw)
  To: kever.yang; +Cc: djw, u-boot, Fabio Estevam

From: Fabio Estevam <festevam@nabladev.com>

Add the JEDEC ID for the XMC XM25QH128C SPI NOR flash.

This is a 128Mbit device using 64KiB sectors and supporting 4KiB
erase, dual read and quad read, matching the other XM25QH128 variants.

Signed-off-by: Fabio Estevam <festevam@nabladev.com>
---
Changes since v1:
- None.

 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 c0fa98424aab..18d61ddd2e33 100644
--- a/drivers/mtd/spi/spi-nor-ids.c
+++ b/drivers/mtd/spi/spi-nor-ids.c
@@ -669,6 +669,7 @@ const struct flash_info spi_nor_ids[] = {
 	{ INFO("XM25QH64A", 0x207017, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
 	{ INFO("XM25QH64C", 0x204017, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
 	{ INFO("XM25QH128A", 0x207018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+	{ INFO("XM25QH128C", 0x204018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
 	{ INFO("XM25QU128C", 0x204118, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
 	{ INFO("XM25QH256C", 0x204019, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
 	{ INFO("XM25QU256C", 0x204119, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
-- 
2.43.0


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

* [PATCH v2 4/5] roc-pc-plus-rk3399: Introduce new variant
  2026-07-01 17:57 [PATCH v2 1/5] roc-pc-rk3399: Enable redundant SPI flash environment Fabio Estevam
  2026-07-01 17:57 ` [PATCH v2 2/5] roc-pc-rk3399: Introduce a common defconfig Fabio Estevam
  2026-07-01 17:57 ` [PATCH v2 3/5] mtd: spi-nor-ids: Add XMC XM25QH128C Fabio Estevam
@ 2026-07-01 17:57 ` Fabio Estevam
  2026-07-01 17:58 ` [PATCH v2 5/5] roc-pc-plus-rk3399: Enable USB Mass Storage support Fabio Estevam
  3 siblings, 0 replies; 5+ messages in thread
From: Fabio Estevam @ 2026-07-01 17:57 UTC (permalink / raw)
  To: kever.yang; +Cc: djw, u-boot, Fabio Estevam

From: Fabio Estevam <festevam@nabladev.com>

The roc-pc-plus-rk3399 board shares a lot of features with the
existing supported roc-pc-rk3399 board.

Its devicetree is also supported in the upstream kernel.

The plus variant has only a 12V supply. It contains a XMC XM25QH128C
SPI NOR flash.

Add support for the plus variant.

Signed-off-by: Fabio Estevam <festevam@nabladev.com>
---
Changes since v1:
- None.

 arch/arm/dts/rk3399-roc-pc-plus-u-boot.dtsi | 9 +++++++++
 board/firefly/roc-pc-rk3399/MAINTAINERS     | 1 +
 configs/roc-pc-plus-rk3399_defconfig        | 4 ++++
 doc/board/rockchip/rockchip.rst             | 3 ++-
 4 files changed, 16 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/rk3399-roc-pc-plus-u-boot.dtsi
 create mode 100644 configs/roc-pc-plus-rk3399_defconfig

diff --git a/arch/arm/dts/rk3399-roc-pc-plus-u-boot.dtsi b/arch/arm/dts/rk3399-roc-pc-plus-u-boot.dtsi
new file mode 100644
index 000000000000..7d5af3e234da
--- /dev/null
+++ b/arch/arm/dts/rk3399-roc-pc-plus-u-boot.dtsi
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "rk3399-roc-pc-u-boot.dtsi"
+
+/delete-node/ &vcc_hub_en;
+
+&dc_12v {
+	/delete-property/ vin-supply;
+};
diff --git a/board/firefly/roc-pc-rk3399/MAINTAINERS b/board/firefly/roc-pc-rk3399/MAINTAINERS
index 2c0de4432fa8..d32b078431ab 100644
--- a/board/firefly/roc-pc-rk3399/MAINTAINERS
+++ b/board/firefly/roc-pc-rk3399/MAINTAINERS
@@ -5,5 +5,6 @@ S:	Maintained
 F:	board/firefly/roc-pc-rk3399
 F:	include/configs/roc-pc-rk3399.h
 F:	configs/roc-pc-rk3399_defconfig
+F:	configs/roc-pc-plus-rk3399_defconfig
 F:	configs/roc-pc-mezzanine-rk3399_defconfig
 F:	arch/arm/dts/rk3399-roc-pc*
diff --git a/configs/roc-pc-plus-rk3399_defconfig b/configs/roc-pc-plus-rk3399_defconfig
new file mode 100644
index 000000000000..4ec2f7d44b5f
--- /dev/null
+++ b/configs/roc-pc-plus-rk3399_defconfig
@@ -0,0 +1,4 @@
+#include <configs/roc-pc-rk3399_common.config>
+CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3399-roc-pc-plus"
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-roc-pc-plus.dtb"
+CONFIG_SPI_FLASH_XMC=y
diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
index ae18b08031d2..b87d857a312e 100644
--- a/doc/board/rockchip/rockchip.rst
+++ b/doc/board/rockchip/rockchip.rst
@@ -81,7 +81,8 @@ List of mainline supported Rockchip boards:
      - 96boards RK3399 Ficus (ficus-rk3399)
      - 96boards Rock960 (rock960-rk3399)
      - Firefly-RK3399 (firefly_rk3399)
-     - Firefly ROC-RK3399-PC
+     - Firefly ROC-RK3399-PC (roc-pc-rk3399)
+     - Firefly ROC-RK3399-PC Plus (roc-pc-plus-rk3399)
      - FriendlyElec NanoPC-T4 (nanopc-t4-rk3399)
      - FriendlyElec NanoPi M4 (nanopi-m4-rk3399)
      - FriendlyElec NanoPi M4B (nanopi-m4b-rk3399)
-- 
2.43.0


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

* [PATCH v2 5/5] roc-pc-plus-rk3399: Enable USB Mass Storage support
  2026-07-01 17:57 [PATCH v2 1/5] roc-pc-rk3399: Enable redundant SPI flash environment Fabio Estevam
                   ` (2 preceding siblings ...)
  2026-07-01 17:57 ` [PATCH v2 4/5] roc-pc-plus-rk3399: Introduce new variant Fabio Estevam
@ 2026-07-01 17:58 ` Fabio Estevam
  3 siblings, 0 replies; 5+ messages in thread
From: Fabio Estevam @ 2026-07-01 17:58 UTC (permalink / raw)
  To: kever.yang; +Cc: djw, u-boot, Fabio Estevam

From: Fabio Estevam <festevam@nabladev.com>

Configure the USB0 DWC3 controller for peripheral mode and enable the
required USB gadget options to support the U-Boot 'ums' command on the
ROC-RK3399-PC Plus.

The 'ums' command provides a convenient way to expose the on-board eMMC
as a USB Mass Storage device to a host computer, simplifying development,
image installation and recovery without requiring removable media or
network access.

Limit the controller to High-Speed operation by using the USB2 OTG PHY.

Signed-off-by: Fabio Estevam <festevam@nabladev.com>
---
Changes since v1:
- None.

 arch/arm/dts/rk3399-roc-pc-plus-u-boot.dtsi | 7 +++++++
 configs/roc-pc-plus-rk3399_defconfig        | 3 +++
 2 files changed, 10 insertions(+)

diff --git a/arch/arm/dts/rk3399-roc-pc-plus-u-boot.dtsi b/arch/arm/dts/rk3399-roc-pc-plus-u-boot.dtsi
index 7d5af3e234da..f613d75646c3 100644
--- a/arch/arm/dts/rk3399-roc-pc-plus-u-boot.dtsi
+++ b/arch/arm/dts/rk3399-roc-pc-plus-u-boot.dtsi
@@ -7,3 +7,10 @@
 &dc_12v {
 	/delete-property/ vin-supply;
 };
+
+&usbdrd_dwc3_0 {
+	dr_mode = "peripheral";
+	maximum-speed = "high-speed";
+	phys = <&u2phy0_otg>;
+	phy-names = "usb2-phy";
+};
diff --git a/configs/roc-pc-plus-rk3399_defconfig b/configs/roc-pc-plus-rk3399_defconfig
index 4ec2f7d44b5f..f3d78c53e672 100644
--- a/configs/roc-pc-plus-rk3399_defconfig
+++ b/configs/roc-pc-plus-rk3399_defconfig
@@ -2,3 +2,6 @@
 CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3399-roc-pc-plus"
 CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-roc-pc-plus.dtb"
 CONFIG_SPI_FLASH_XMC=y
+CONFIG_CMD_USB_MASS_STORAGE=y
+# CONFIG_USB_FUNCTION_FASTBOOT is not set
+CONFIG_USB_GADGET_DOWNLOAD=y
-- 
2.43.0


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

end of thread, other threads:[~2026-07-01 17:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-01 17:57 [PATCH v2 1/5] roc-pc-rk3399: Enable redundant SPI flash environment Fabio Estevam
2026-07-01 17:57 ` [PATCH v2 2/5] roc-pc-rk3399: Introduce a common defconfig Fabio Estevam
2026-07-01 17:57 ` [PATCH v2 3/5] mtd: spi-nor-ids: Add XMC XM25QH128C Fabio Estevam
2026-07-01 17:57 ` [PATCH v2 4/5] roc-pc-plus-rk3399: Introduce new variant Fabio Estevam
2026-07-01 17:58 ` [PATCH v2 5/5] roc-pc-plus-rk3399: Enable USB Mass Storage support Fabio Estevam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox