All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] rockchip: rk3576: Add rng, checkboard() and generic board
@ 2025-07-11 22:21 Jonas Karlman
  2025-07-11 22:21 ` [PATCH v2 1/6] arm64: dts: rockchip: add RK3576 RNG node Jonas Karlman
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Jonas Karlman @ 2025-07-11 22:21 UTC (permalink / raw)
  To: Kever Yang, Simon Glass, Philipp Tomsich, Tom Rini; +Cc: u-boot, Jonas Karlman

This is a follow-up series on top of the "Support for the RK3576" series.
It adds support for RNG, USB PID, a generic board and printing of the
running SoC variant.

Changes in v2:
- Add RNG node by picking a commit from devicetree-rebasing
- Add compatible for RK3576 to RNG driver
- Add default USB_GADGET_PRODUCT_NUM for RK3576
- Add USB OTG nodes to the minimal generic RK3576 board
- Split the checkboard() patch in two
- Split out the ArmSoM Sige5 patch into a separate series

Jonas Karlman (5):
  rng: rockchip_rng: Add compatible for RK3576
  rockchip: Add default USB_GADGET_PRODUCT_NUM for RK3576
  board: rockchip: Add minimal generic RK3576 board
  rockchip: rk3576: Implement checkboard() to print SoC variant
  arm: dts: rockchip: Include OTP in U-Boot pre-reloc phase for RK3576

Nicolas Frattaroli (1):
  arm64: dts: rockchip: add RK3576 RNG node

 arch/arm/dts/rk3576-generic-u-boot.dtsi     |  3 +
 arch/arm/dts/rk3576-generic.dts             | 65 +++++++++++++++++++++
 arch/arm/dts/rk3576-u-boot.dtsi             |  4 ++
 arch/arm/mach-rockchip/rk3576/MAINTAINERS   |  5 ++
 arch/arm/mach-rockchip/rk3576/rk3576.c      | 48 +++++++++++++++
 configs/generic-rk3576_defconfig            | 51 ++++++++++++++++
 doc/board/rockchip/rockchip.rst             |  1 +
 drivers/rng/rockchip_rng.c                  |  4 ++
 drivers/usb/gadget/Kconfig                  |  1 +
 dts/upstream/src/arm64/rockchip/rk3576.dtsi |  8 +++
 10 files changed, 190 insertions(+)
 create mode 100644 arch/arm/dts/rk3576-generic-u-boot.dtsi
 create mode 100644 arch/arm/dts/rk3576-generic.dts
 create mode 100644 arch/arm/mach-rockchip/rk3576/MAINTAINERS
 create mode 100644 configs/generic-rk3576_defconfig

-- 
2.49.0


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

* [PATCH v2 1/6] arm64: dts: rockchip: add RK3576 RNG node
  2025-07-11 22:21 [PATCH v2 0/6] rockchip: rk3576: Add rng, checkboard() and generic board Jonas Karlman
@ 2025-07-11 22:21 ` Jonas Karlman
  2025-08-30 14:43   ` Kever Yang
  2025-07-11 22:21 ` [PATCH v2 2/6] rng: rockchip_rng: Add compatible for RK3576 Jonas Karlman
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Jonas Karlman @ 2025-07-11 22:21 UTC (permalink / raw)
  To: Kever Yang, Simon Glass, Philipp Tomsich, Tom Rini, Sumit Garg
  Cc: u-boot, Jonas Karlman, Nicolas Frattaroli, Heiko Stuebner

From: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>

The RK3576 has a hardware random number generator IP built into the SoC.

Add it to the SoC's .dtsi, now that there's a binding and driver for it.

Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Link: https://lore.kernel.org/r/20250430-rk3576-hwrng-v1-3-480c15b5843e@collabora.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 5268f3b5d29887480011b44567bcbf0d422cda94 ]

(cherry picked from commit 25cfcb091747900639f2b5df297d26b3a6ca3989)
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
v2: New patch
---
 dts/upstream/src/arm64/rockchip/rk3576.dtsi | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/dts/upstream/src/arm64/rockchip/rk3576.dtsi b/dts/upstream/src/arm64/rockchip/rk3576.dtsi
index ebb5fc8bb8b1..50332ec6e0de 100644
--- a/dts/upstream/src/arm64/rockchip/rk3576.dtsi
+++ b/dts/upstream/src/arm64/rockchip/rk3576.dtsi
@@ -1419,6 +1419,14 @@
 			status = "disabled";
 		};
 
+		rng: rng@2a410000 {
+			compatible = "rockchip,rk3576-rng";
+			reg = <0x0 0x2a410000 0x0 0x200>;
+			clocks = <&cru HCLK_TRNG_NS>;
+			interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
+			resets = <&cru SRST_H_TRNG_NS>;
+		};
+
 		otp: otp@2a580000 {
 			compatible = "rockchip,rk3576-otp";
 			reg = <0x0 0x2a580000 0x0 0x400>;
-- 
2.49.0


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

* [PATCH v2 2/6] rng: rockchip_rng: Add compatible for RK3576
  2025-07-11 22:21 [PATCH v2 0/6] rockchip: rk3576: Add rng, checkboard() and generic board Jonas Karlman
  2025-07-11 22:21 ` [PATCH v2 1/6] arm64: dts: rockchip: add RK3576 RNG node Jonas Karlman
@ 2025-07-11 22:21 ` Jonas Karlman
  2025-08-30 14:43   ` Kever Yang
  2025-07-11 22:21 ` [PATCH v2 3/6] rockchip: Add default USB_GADGET_PRODUCT_NUM " Jonas Karlman
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Jonas Karlman @ 2025-07-11 22:21 UTC (permalink / raw)
  To: Kever Yang, Simon Glass, Philipp Tomsich, Tom Rini, Sughosh Ganu,
	Heinrich Schuchardt
  Cc: u-boot, Jonas Karlman

The RK3576 SoC contains a RKRNG block that can be used to generate
random numbers using the rockchip_rng driver.

Add compatible for RK3576 to support random numbers:

  => rng list
  RNG #0 - rng@2a410000

  => rng
  00000000: 36 dd ab 98 ec fb fe d1 cf 36 b3 e1 9b 3d 00 90  6........6...=..
  00000010: f5 84 de 75 6b 27 48 9e 13 62 12 6c 50 ca 47 1a  ...uk'H..b.lP.G.
  00000020: b3 4d fc 43 c5 b5 2d be 07 27 03 26 bb 69 61 2a  .M.C..-..'.&.ia*
  00000030: 6f 70 01 83 4e ce 91 7a 5a 6c 7c 00 43 87 3e c5  op..N..zZl|.C.>.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
v2: New patch
---
 drivers/rng/rockchip_rng.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/rng/rockchip_rng.c b/drivers/rng/rockchip_rng.c
index d854ea900442..8cf750e043cf 100644
--- a/drivers/rng/rockchip_rng.c
+++ b/drivers/rng/rockchip_rng.c
@@ -393,6 +393,10 @@ static const struct udevice_id rockchip_rng_match[] = {
 		.compatible = "rockchip,rk3588-rng",
 		.data = (ulong)&rk_trngv1_soc_data,
 	},
+	{
+		.compatible = "rockchip,rk3576-rng",
+		.data = (ulong)&rkrng_soc_data,
+	},
 	{
 		.compatible = "rockchip,rkrng",
 		.data = (ulong)&rkrng_soc_data,
-- 
2.49.0


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

* [PATCH v2 3/6] rockchip: Add default USB_GADGET_PRODUCT_NUM for RK3576
  2025-07-11 22:21 [PATCH v2 0/6] rockchip: rk3576: Add rng, checkboard() and generic board Jonas Karlman
  2025-07-11 22:21 ` [PATCH v2 1/6] arm64: dts: rockchip: add RK3576 RNG node Jonas Karlman
  2025-07-11 22:21 ` [PATCH v2 2/6] rng: rockchip_rng: Add compatible for RK3576 Jonas Karlman
@ 2025-07-11 22:21 ` Jonas Karlman
  2025-07-15  8:03   ` Mattijs Korpershoek
  2025-08-30 14:43   ` Kever Yang
  2025-07-11 22:21 ` [PATCH v2 4/6] board: rockchip: Add minimal generic RK3576 board Jonas Karlman
                   ` (2 subsequent siblings)
  5 siblings, 2 replies; 13+ messages in thread
From: Jonas Karlman @ 2025-07-11 22:21 UTC (permalink / raw)
  To: Kever Yang, Simon Glass, Philipp Tomsich, Tom Rini,
	Lukasz Majewski, Mattijs Korpershoek, Marek Vasut
  Cc: u-boot, Jonas Karlman

Use 0x350e as the default USB Product ID for Rockchip RK3576, same PID
being used by the BootROM when the device is in MASKROM mode.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
v2: New patch
---
 drivers/usb/gadget/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 46a83141481f..bab88567ea62 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -86,6 +86,7 @@ config USB_GADGET_PRODUCT_NUM
 	default 0x350a if ROCKCHIP_RK3568
 	default 0x350b if ROCKCHIP_RK3588
 	default 0x350c if ROCKCHIP_RK3528
+	default 0x350e if ROCKCHIP_RK3576
 	default 0x0
 	help
 	  Product ID of the USB device emulated, reported to the host device.
-- 
2.49.0


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

* [PATCH v2 4/6] board: rockchip: Add minimal generic RK3576 board
  2025-07-11 22:21 [PATCH v2 0/6] rockchip: rk3576: Add rng, checkboard() and generic board Jonas Karlman
                   ` (2 preceding siblings ...)
  2025-07-11 22:21 ` [PATCH v2 3/6] rockchip: Add default USB_GADGET_PRODUCT_NUM " Jonas Karlman
@ 2025-07-11 22:21 ` Jonas Karlman
  2025-07-11 22:21 ` [PATCH v2 5/6] rockchip: rk3576: Implement checkboard() to print SoC variant Jonas Karlman
  2025-07-11 22:21 ` [PATCH v2 6/6] arm: dts: rockchip: Include OTP in U-Boot pre-reloc phase for RK3576 Jonas Karlman
  5 siblings, 0 replies; 13+ messages in thread
From: Jonas Karlman @ 2025-07-11 22:21 UTC (permalink / raw)
  To: Kever Yang, Simon Glass, Philipp Tomsich, Tom Rini, Jonas Karlman; +Cc: u-boot

Add a minimal generic RK3576 board that only have eMMC, SDMMC and USB
OTG enabled. This defconfig can be used to boot from eMMC or SD-card on
most RK3576 boards that follow reference board design.

eMMC and SD-card boot tested on:
- ArmSoM CM5
- ArmSoM Sige5
- FriendlyElec NanoPi M5
- Luckfox Omni3576
- Toybrick TB-RK3576D

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
---
v2: Add nodes and Kconfig options for USB OTG
---
 arch/arm/dts/rk3576-generic-u-boot.dtsi   |  3 ++
 arch/arm/dts/rk3576-generic.dts           | 65 +++++++++++++++++++++++
 arch/arm/mach-rockchip/rk3576/MAINTAINERS |  5 ++
 configs/generic-rk3576_defconfig          | 51 ++++++++++++++++++
 doc/board/rockchip/rockchip.rst           |  1 +
 5 files changed, 125 insertions(+)
 create mode 100644 arch/arm/dts/rk3576-generic-u-boot.dtsi
 create mode 100644 arch/arm/dts/rk3576-generic.dts
 create mode 100644 arch/arm/mach-rockchip/rk3576/MAINTAINERS
 create mode 100644 configs/generic-rk3576_defconfig

diff --git a/arch/arm/dts/rk3576-generic-u-boot.dtsi b/arch/arm/dts/rk3576-generic-u-boot.dtsi
new file mode 100644
index 000000000000..632fabb6af56
--- /dev/null
+++ b/arch/arm/dts/rk3576-generic-u-boot.dtsi
@@ -0,0 +1,3 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+#include "rk3576-u-boot.dtsi"
diff --git a/arch/arm/dts/rk3576-generic.dts b/arch/arm/dts/rk3576-generic.dts
new file mode 100644
index 000000000000..d984fa3746e0
--- /dev/null
+++ b/arch/arm/dts/rk3576-generic.dts
@@ -0,0 +1,65 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Minimal generic DT for RK3576 with eMMC, SD-card and USB OTG enabled
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "rk3576.dtsi"
+
+/ {
+	model = "Generic RK3576";
+	compatible = "rockchip,rk3576";
+
+	aliases {
+		mmc0 = &sdhci;
+		mmc1 = &sdmmc;
+	};
+
+	chosen {
+		stdout-path = "serial0:1500000n8";
+	};
+};
+
+&sdhci {
+	bus-width = <8>;
+	cap-mmc-highspeed;
+	mmc-hs200-1_8v;
+	no-sd;
+	no-sdio;
+	non-removable;
+	status = "okay";
+};
+
+&sdmmc {
+	bus-width = <4>;
+	cap-sd-highspeed;
+	disable-wp;
+	no-mmc;
+	no-sdio;
+	status = "okay";
+};
+
+&u2phy0 {
+	status = "okay";
+};
+
+&u2phy0_otg {
+	status = "okay";
+};
+
+&uart0 {
+	pinctrl-0 = <&uart0m0_xfer>;
+	status = "okay";
+};
+
+&usb_drd0_dwc3 {
+	dr_mode = "peripheral";
+	maximum-speed = "high-speed";
+	status = "okay";
+};
+
+&usbdp_phy {
+	status = "okay";
+};
diff --git a/arch/arm/mach-rockchip/rk3576/MAINTAINERS b/arch/arm/mach-rockchip/rk3576/MAINTAINERS
new file mode 100644
index 000000000000..b5190c818468
--- /dev/null
+++ b/arch/arm/mach-rockchip/rk3576/MAINTAINERS
@@ -0,0 +1,5 @@
+GENERIC-RK3576
+M:	Jonas Karlman <jonas@kwiboo.se>
+S:	Maintained
+F:	arch/arm/dts/rk3576-generic*
+F:	configs/generic-rk3576_defconfig
diff --git a/configs/generic-rk3576_defconfig b/configs/generic-rk3576_defconfig
new file mode 100644
index 000000000000..a5b82f219aa4
--- /dev/null
+++ b/configs/generic-rk3576_defconfig
@@ -0,0 +1,51 @@
+CONFIG_ARM=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_COUNTER_FREQUENCY=24000000
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_DEFAULT_DEVICE_TREE="rk3576-generic"
+CONFIG_ROCKCHIP_RK3576=y
+CONFIG_SYS_LOAD_ADDR=0x40c00800
+CONFIG_DEBUG_UART_BASE=0x2AD40000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_DEBUG_UART=y
+# CONFIG_BOOTMETH_VBE is not set
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3576-generic.dtb"
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_SPL_MAX_SIZE=0x40000
+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
+CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_MEMINFO_MAP=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_MISC=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_ROCKUSB=y
+CONFIG_CMD_USB_MASS_STORAGE=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_RNG=y
+# CONFIG_SPL_DOS_PARTITION is not set
+# CONFIG_OF_UPSTREAM is not set
+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_NO_NET=y
+# CONFIG_ADC is not set
+# CONFIG_USB_FUNCTION_FASTBOOT is not set
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_SUPPORT_EMMC_RPMB=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_PHY_ROCKCHIP_INNO_USB2=y
+CONFIG_PHY_ROCKCHIP_USBDP=y
+CONFIG_BAUDRATE=1500000
+CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_SYS_NS16550_MEM32=y
+CONFIG_SYSRESET_PSCI=y
+CONFIG_USB=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GENERIC=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_USB_FUNCTION_ROCKUSB=y
+CONFIG_ERRNO_STR=y
diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
index 1e46f2b56192..6a8a3b386d22 100644
--- a/doc/board/rockchip/rockchip.rst
+++ b/doc/board/rockchip/rockchip.rst
@@ -138,6 +138,7 @@ List of mainline supported Rockchip boards:
 
 * rk3576
      - Firefly ROC-RK3576-PC (roc-pc-rk3576)
+     - Generic RK3576 (generic-rk3576)
 
 * rk3588
      - ArmSoM Sige7 (sige7-rk3588)
-- 
2.49.0


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

* [PATCH v2 5/6] rockchip: rk3576: Implement checkboard() to print SoC variant
  2025-07-11 22:21 [PATCH v2 0/6] rockchip: rk3576: Add rng, checkboard() and generic board Jonas Karlman
                   ` (3 preceding siblings ...)
  2025-07-11 22:21 ` [PATCH v2 4/6] board: rockchip: Add minimal generic RK3576 board Jonas Karlman
@ 2025-07-11 22:21 ` Jonas Karlman
  2025-08-30 14:43   ` Kever Yang
  2025-07-11 22:21 ` [PATCH v2 6/6] arm: dts: rockchip: Include OTP in U-Boot pre-reloc phase for RK3576 Jonas Karlman
  5 siblings, 1 reply; 13+ messages in thread
From: Jonas Karlman @ 2025-07-11 22:21 UTC (permalink / raw)
  To: Kever Yang, Simon Glass, Philipp Tomsich, Tom Rini; +Cc: u-boot, Jonas Karlman

Implement checkboard() to print current SoC model used by a board when
U-Boot proper is running.

  U-Boot 2025.04 (Apr 22 2025 - 20:43:17 +0000)

  Model: Generic RK3576
  SoC:   RK3576
  DRAM:  8 GiB

Information about the SoC model and variant is read from OTP.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
 arch/arm/mach-rockchip/rk3576/rk3576.c | 48 ++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/arch/arm/mach-rockchip/rk3576/rk3576.c b/arch/arm/mach-rockchip/rk3576/rk3576.c
index ba5c94b4b3dd..2b1318f9532f 100644
--- a/arch/arm/mach-rockchip/rk3576/rk3576.c
+++ b/arch/arm/mach-rockchip/rk3576/rk3576.c
@@ -3,6 +3,10 @@
  * Copyright (c) 2024 Rockchip Electronics Co., Ltd
  */
 
+#define LOG_CATEGORY LOGC_ARCH
+
+#include <dm.h>
+#include <misc.h>
 #include <asm/armv8/mmu.h>
 #include <asm/arch-rockchip/bootrom.h>
 #include <asm/arch-rockchip/hardware.h>
@@ -153,3 +157,47 @@ int arch_cpu_init(void)
 
 	return 0;
 }
+
+#define RK3576_OTP_CPU_CODE_OFFSET		0x02
+#define RK3576_OTP_SPECIFICATION_OFFSET		0x08
+
+int checkboard(void)
+{
+	u8 cpu_code[2], specification;
+	struct udevice *dev;
+	char suffix[2];
+	int ret;
+
+	if (!IS_ENABLED(CONFIG_ROCKCHIP_OTP) || !CONFIG_IS_ENABLED(MISC))
+		return 0;
+
+	ret = uclass_get_device_by_driver(UCLASS_MISC,
+					  DM_DRIVER_GET(rockchip_otp), &dev);
+	if (ret) {
+		log_debug("Could not find otp device, ret=%d\n", ret);
+		return 0;
+	}
+
+	/* cpu-code: SoC model, e.g. 0x35 0x76 */
+	ret = misc_read(dev, RK3576_OTP_CPU_CODE_OFFSET, cpu_code, 2);
+	if (ret < 0) {
+		log_debug("Could not read cpu-code, ret=%d\n", ret);
+		return 0;
+	}
+
+	/* specification: SoC variant, e.g. 0xA for RK3576J */
+	ret = misc_read(dev, RK3576_OTP_SPECIFICATION_OFFSET, &specification, 1);
+	if (ret < 0) {
+		log_debug("Could not read specification, ret=%d\n", ret);
+		return 0;
+	}
+	specification &= 0x1f;
+
+	/* for RK3576J i.e. '@' + 0xA = 'J' */
+	suffix[0] = specification > 1 ? '@' + specification : '\0';
+	suffix[1] = '\0';
+
+	printf("SoC:   RK%02x%02x%s\n", cpu_code[0], cpu_code[1], suffix);
+
+	return 0;
+}
-- 
2.49.0


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

* [PATCH v2 6/6] arm: dts: rockchip: Include OTP in U-Boot pre-reloc phase for RK3576
  2025-07-11 22:21 [PATCH v2 0/6] rockchip: rk3576: Add rng, checkboard() and generic board Jonas Karlman
                   ` (4 preceding siblings ...)
  2025-07-11 22:21 ` [PATCH v2 5/6] rockchip: rk3576: Implement checkboard() to print SoC variant Jonas Karlman
@ 2025-07-11 22:21 ` Jonas Karlman
  2025-08-30 14:44   ` Kever Yang
  5 siblings, 1 reply; 13+ messages in thread
From: Jonas Karlman @ 2025-07-11 22:21 UTC (permalink / raw)
  To: Kever Yang, Simon Glass, Philipp Tomsich, Tom Rini; +Cc: u-boot, Jonas Karlman

Update rk3576-u-boot.dtsi to include OTP in U-Boot pre-reloc phase for
checkboard() to be able to read information about the running SoC model
and variant from OTP and print it during boot:

  U-Boot 2025.04 (Apr 22 2025 - 20:43:17 +0000)

  Model: Generic RK3576
  SoC:   RK3576
  DRAM:  8 GiB

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
 arch/arm/dts/rk3576-u-boot.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/dts/rk3576-u-boot.dtsi b/arch/arm/dts/rk3576-u-boot.dtsi
index be99a48a630f..fb5a107f47d9 100644
--- a/arch/arm/dts/rk3576-u-boot.dtsi
+++ b/arch/arm/dts/rk3576-u-boot.dtsi
@@ -49,6 +49,10 @@
 	bootph-all;
 };
 
+&otp {
+	bootph-some-ram;
+};
+
 &pcfg_pull_none {
 	bootph-all;
 };
-- 
2.49.0


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

* Re: [PATCH v2 3/6] rockchip: Add default USB_GADGET_PRODUCT_NUM for RK3576
  2025-07-11 22:21 ` [PATCH v2 3/6] rockchip: Add default USB_GADGET_PRODUCT_NUM " Jonas Karlman
@ 2025-07-15  8:03   ` Mattijs Korpershoek
  2025-08-30 14:43   ` Kever Yang
  1 sibling, 0 replies; 13+ messages in thread
From: Mattijs Korpershoek @ 2025-07-15  8:03 UTC (permalink / raw)
  To: Jonas Karlman, Kever Yang, Simon Glass, Philipp Tomsich, Tom Rini,
	Lukasz Majewski, Mattijs Korpershoek, Marek Vasut
  Cc: u-boot, Jonas Karlman

Hi Jonas,

Thank you for the patch.

On Fri, Jul 11, 2025 at 22:21, Jonas Karlman <jonas@kwiboo.se> wrote:

> Use 0x350e as the default USB Product ID for Rockchip RK3576, same PID
> being used by the BootROM when the device is in MASKROM mode.
>
> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>

Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>

> ---
> v2: New patch
> ---
>  drivers/usb/gadget/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
> index 46a83141481f..bab88567ea62 100644
> --- a/drivers/usb/gadget/Kconfig
> +++ b/drivers/usb/gadget/Kconfig
> @@ -86,6 +86,7 @@ config USB_GADGET_PRODUCT_NUM
>  	default 0x350a if ROCKCHIP_RK3568
>  	default 0x350b if ROCKCHIP_RK3588
>  	default 0x350c if ROCKCHIP_RK3528
> +	default 0x350e if ROCKCHIP_RK3576
>  	default 0x0
>  	help
>  	  Product ID of the USB device emulated, reported to the host device.
> -- 
> 2.49.0

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

* Re: [PATCH v2 1/6] arm64: dts: rockchip: add RK3576 RNG node
  2025-07-11 22:21 ` [PATCH v2 1/6] arm64: dts: rockchip: add RK3576 RNG node Jonas Karlman
@ 2025-08-30 14:43   ` Kever Yang
  0 siblings, 0 replies; 13+ messages in thread
From: Kever Yang @ 2025-08-30 14:43 UTC (permalink / raw)
  To: Jonas Karlman, Simon Glass, Philipp Tomsich, Tom Rini, Sumit Garg
  Cc: u-boot, Nicolas Frattaroli, Heiko Stuebner


On 2025/7/12 06:21, Jonas Karlman wrote:
> From: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
>
> The RK3576 has a hardware random number generator IP built into the SoC.
>
> Add it to the SoC's .dtsi, now that there's a binding and driver for it.
>
> Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
> Link: https://lore.kernel.org/r/20250430-rk3576-hwrng-v1-3-480c15b5843e@collabora.com
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
>
> [ upstream commit: 5268f3b5d29887480011b44567bcbf0d422cda94 ]
>
> (cherry picked from commit 25cfcb091747900639f2b5df297d26b3a6ca3989)
> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
> v2: New patch
> ---
>   dts/upstream/src/arm64/rockchip/rk3576.dtsi | 8 ++++++++
>   1 file changed, 8 insertions(+)
>
> diff --git a/dts/upstream/src/arm64/rockchip/rk3576.dtsi b/dts/upstream/src/arm64/rockchip/rk3576.dtsi
> index ebb5fc8bb8b1..50332ec6e0de 100644
> --- a/dts/upstream/src/arm64/rockchip/rk3576.dtsi
> +++ b/dts/upstream/src/arm64/rockchip/rk3576.dtsi
> @@ -1419,6 +1419,14 @@
>   			status = "disabled";
>   		};
>   
> +		rng: rng@2a410000 {
> +			compatible = "rockchip,rk3576-rng";
> +			reg = <0x0 0x2a410000 0x0 0x200>;
> +			clocks = <&cru HCLK_TRNG_NS>;
> +			interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
> +			resets = <&cru SRST_H_TRNG_NS>;
> +		};
> +
>   		otp: otp@2a580000 {
>   			compatible = "rockchip,rk3576-otp";
>   			reg = <0x0 0x2a580000 0x0 0x400>;

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

* Re: [PATCH v2 2/6] rng: rockchip_rng: Add compatible for RK3576
  2025-07-11 22:21 ` [PATCH v2 2/6] rng: rockchip_rng: Add compatible for RK3576 Jonas Karlman
@ 2025-08-30 14:43   ` Kever Yang
  0 siblings, 0 replies; 13+ messages in thread
From: Kever Yang @ 2025-08-30 14:43 UTC (permalink / raw)
  To: Jonas Karlman, Simon Glass, Philipp Tomsich, Tom Rini,
	Sughosh Ganu, Heinrich Schuchardt
  Cc: u-boot


On 2025/7/12 06:21, Jonas Karlman wrote:
> The RK3576 SoC contains a RKRNG block that can be used to generate
> random numbers using the rockchip_rng driver.
>
> Add compatible for RK3576 to support random numbers:
>
>    => rng list
>    RNG #0 - rng@2a410000
>
>    => rng
>    00000000: 36 dd ab 98 ec fb fe d1 cf 36 b3 e1 9b 3d 00 90  6........6...=..
>    00000010: f5 84 de 75 6b 27 48 9e 13 62 12 6c 50 ca 47 1a  ...uk'H..b.lP.G.
>    00000020: b3 4d fc 43 c5 b5 2d be 07 27 03 26 bb 69 61 2a  .M.C..-..'.&.ia*
>    00000030: 6f 70 01 83 4e ce 91 7a 5a 6c 7c 00 43 87 3e c5  op..N..zZl|.C.>.
>
> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
> v2: New patch
> ---
>   drivers/rng/rockchip_rng.c | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/drivers/rng/rockchip_rng.c b/drivers/rng/rockchip_rng.c
> index d854ea900442..8cf750e043cf 100644
> --- a/drivers/rng/rockchip_rng.c
> +++ b/drivers/rng/rockchip_rng.c
> @@ -393,6 +393,10 @@ static const struct udevice_id rockchip_rng_match[] = {
>   		.compatible = "rockchip,rk3588-rng",
>   		.data = (ulong)&rk_trngv1_soc_data,
>   	},
> +	{
> +		.compatible = "rockchip,rk3576-rng",
> +		.data = (ulong)&rkrng_soc_data,
> +	},
>   	{
>   		.compatible = "rockchip,rkrng",
>   		.data = (ulong)&rkrng_soc_data,

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

* Re: [PATCH v2 3/6] rockchip: Add default USB_GADGET_PRODUCT_NUM for RK3576
  2025-07-11 22:21 ` [PATCH v2 3/6] rockchip: Add default USB_GADGET_PRODUCT_NUM " Jonas Karlman
  2025-07-15  8:03   ` Mattijs Korpershoek
@ 2025-08-30 14:43   ` Kever Yang
  1 sibling, 0 replies; 13+ messages in thread
From: Kever Yang @ 2025-08-30 14:43 UTC (permalink / raw)
  To: Jonas Karlman, Simon Glass, Philipp Tomsich, Tom Rini,
	Lukasz Majewski, Mattijs Korpershoek, Marek Vasut
  Cc: u-boot


On 2025/7/12 06:21, Jonas Karlman wrote:
> Use 0x350e as the default USB Product ID for Rockchip RK3576, same PID
> being used by the BootROM when the device is in MASKROM mode.
>
> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
> v2: New patch
> ---
>   drivers/usb/gadget/Kconfig | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
> index 46a83141481f..bab88567ea62 100644
> --- a/drivers/usb/gadget/Kconfig
> +++ b/drivers/usb/gadget/Kconfig
> @@ -86,6 +86,7 @@ config USB_GADGET_PRODUCT_NUM
>   	default 0x350a if ROCKCHIP_RK3568
>   	default 0x350b if ROCKCHIP_RK3588
>   	default 0x350c if ROCKCHIP_RK3528
> +	default 0x350e if ROCKCHIP_RK3576
>   	default 0x0
>   	help
>   	  Product ID of the USB device emulated, reported to the host device.

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

* Re: [PATCH v2 5/6] rockchip: rk3576: Implement checkboard() to print SoC variant
  2025-07-11 22:21 ` [PATCH v2 5/6] rockchip: rk3576: Implement checkboard() to print SoC variant Jonas Karlman
@ 2025-08-30 14:43   ` Kever Yang
  0 siblings, 0 replies; 13+ messages in thread
From: Kever Yang @ 2025-08-30 14:43 UTC (permalink / raw)
  To: Jonas Karlman, Simon Glass, Philipp Tomsich, Tom Rini; +Cc: u-boot


On 2025/7/12 06:21, Jonas Karlman wrote:
> Implement checkboard() to print current SoC model used by a board when
> U-Boot proper is running.
>
>    U-Boot 2025.04 (Apr 22 2025 - 20:43:17 +0000)
>
>    Model: Generic RK3576
>    SoC:   RK3576
>    DRAM:  8 GiB
>
> Information about the SoC model and variant is read from OTP.
>
> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
>   arch/arm/mach-rockchip/rk3576/rk3576.c | 48 ++++++++++++++++++++++++++
>   1 file changed, 48 insertions(+)
>
> diff --git a/arch/arm/mach-rockchip/rk3576/rk3576.c b/arch/arm/mach-rockchip/rk3576/rk3576.c
> index ba5c94b4b3dd..2b1318f9532f 100644
> --- a/arch/arm/mach-rockchip/rk3576/rk3576.c
> +++ b/arch/arm/mach-rockchip/rk3576/rk3576.c
> @@ -3,6 +3,10 @@
>    * Copyright (c) 2024 Rockchip Electronics Co., Ltd
>    */
>   
> +#define LOG_CATEGORY LOGC_ARCH
> +
> +#include <dm.h>
> +#include <misc.h>
>   #include <asm/armv8/mmu.h>
>   #include <asm/arch-rockchip/bootrom.h>
>   #include <asm/arch-rockchip/hardware.h>
> @@ -153,3 +157,47 @@ int arch_cpu_init(void)
>   
>   	return 0;
>   }
> +
> +#define RK3576_OTP_CPU_CODE_OFFSET		0x02
> +#define RK3576_OTP_SPECIFICATION_OFFSET		0x08
> +
> +int checkboard(void)
> +{
> +	u8 cpu_code[2], specification;
> +	struct udevice *dev;
> +	char suffix[2];
> +	int ret;
> +
> +	if (!IS_ENABLED(CONFIG_ROCKCHIP_OTP) || !CONFIG_IS_ENABLED(MISC))
> +		return 0;
> +
> +	ret = uclass_get_device_by_driver(UCLASS_MISC,
> +					  DM_DRIVER_GET(rockchip_otp), &dev);
> +	if (ret) {
> +		log_debug("Could not find otp device, ret=%d\n", ret);
> +		return 0;
> +	}
> +
> +	/* cpu-code: SoC model, e.g. 0x35 0x76 */
> +	ret = misc_read(dev, RK3576_OTP_CPU_CODE_OFFSET, cpu_code, 2);
> +	if (ret < 0) {
> +		log_debug("Could not read cpu-code, ret=%d\n", ret);
> +		return 0;
> +	}
> +
> +	/* specification: SoC variant, e.g. 0xA for RK3576J */
> +	ret = misc_read(dev, RK3576_OTP_SPECIFICATION_OFFSET, &specification, 1);
> +	if (ret < 0) {
> +		log_debug("Could not read specification, ret=%d\n", ret);
> +		return 0;
> +	}
> +	specification &= 0x1f;
> +
> +	/* for RK3576J i.e. '@' + 0xA = 'J' */
> +	suffix[0] = specification > 1 ? '@' + specification : '\0';
> +	suffix[1] = '\0';
> +
> +	printf("SoC:   RK%02x%02x%s\n", cpu_code[0], cpu_code[1], suffix);
> +
> +	return 0;
> +}

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

* Re: [PATCH v2 6/6] arm: dts: rockchip: Include OTP in U-Boot pre-reloc phase for RK3576
  2025-07-11 22:21 ` [PATCH v2 6/6] arm: dts: rockchip: Include OTP in U-Boot pre-reloc phase for RK3576 Jonas Karlman
@ 2025-08-30 14:44   ` Kever Yang
  0 siblings, 0 replies; 13+ messages in thread
From: Kever Yang @ 2025-08-30 14:44 UTC (permalink / raw)
  To: Jonas Karlman, Simon Glass, Philipp Tomsich, Tom Rini; +Cc: u-boot


On 2025/7/12 06:21, Jonas Karlman wrote:
> Update rk3576-u-boot.dtsi to include OTP in U-Boot pre-reloc phase for
> checkboard() to be able to read information about the running SoC model
> and variant from OTP and print it during boot:
>
>    U-Boot 2025.04 (Apr 22 2025 - 20:43:17 +0000)
>
>    Model: Generic RK3576
>    SoC:   RK3576
>    DRAM:  8 GiB
>
> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
>   arch/arm/dts/rk3576-u-boot.dtsi | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm/dts/rk3576-u-boot.dtsi b/arch/arm/dts/rk3576-u-boot.dtsi
> index be99a48a630f..fb5a107f47d9 100644
> --- a/arch/arm/dts/rk3576-u-boot.dtsi
> +++ b/arch/arm/dts/rk3576-u-boot.dtsi
> @@ -49,6 +49,10 @@
>   	bootph-all;
>   };
>   
> +&otp {
> +	bootph-some-ram;
> +};
> +
>   &pcfg_pull_none {
>   	bootph-all;
>   };

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

end of thread, other threads:[~2025-08-30 14:44 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-11 22:21 [PATCH v2 0/6] rockchip: rk3576: Add rng, checkboard() and generic board Jonas Karlman
2025-07-11 22:21 ` [PATCH v2 1/6] arm64: dts: rockchip: add RK3576 RNG node Jonas Karlman
2025-08-30 14:43   ` Kever Yang
2025-07-11 22:21 ` [PATCH v2 2/6] rng: rockchip_rng: Add compatible for RK3576 Jonas Karlman
2025-08-30 14:43   ` Kever Yang
2025-07-11 22:21 ` [PATCH v2 3/6] rockchip: Add default USB_GADGET_PRODUCT_NUM " Jonas Karlman
2025-07-15  8:03   ` Mattijs Korpershoek
2025-08-30 14:43   ` Kever Yang
2025-07-11 22:21 ` [PATCH v2 4/6] board: rockchip: Add minimal generic RK3576 board Jonas Karlman
2025-07-11 22:21 ` [PATCH v2 5/6] rockchip: rk3576: Implement checkboard() to print SoC variant Jonas Karlman
2025-08-30 14:43   ` Kever Yang
2025-07-11 22:21 ` [PATCH v2 6/6] arm: dts: rockchip: Include OTP in U-Boot pre-reloc phase for RK3576 Jonas Karlman
2025-08-30 14:44   ` Kever Yang

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.