Skip to content

Commit 0228a48

Browse files
committed
add R2C
1 parent 9b2a955 commit 0228a48

9 files changed

Lines changed: 446 additions & 1 deletion

File tree

.github/workflows/NanoPi-Build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
needs: init
5050
strategy:
5151
matrix:
52-
nanopi_model: [R2S, R4S]
52+
nanopi_model: [R2S, R2C, R4S]
5353

5454
runs-on: ubuntu-20.04
5555
if: github.event.repository.owner.id == github.event.sender.id

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ Automated builds of OpenWrt for FriendlyARM NanoPi R2S & R4S boards
3838

3939

4040
## Changelog
41+
#### 2022-04-12
42+
- Add NanoPi R2C in uboot and branch 21.02
4143
#### 2022-03-28
4244
- Add branch 22.03
4345
#### 2022-02-12

openwrt-21.02/steps/03_patch_openwrt.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,20 @@ endef
4545
TARGET_DEVICES += friendlyarm_nanopi-r4s
4646
EOT
4747

48+
cat <<EOT >> target/linux/rockchip/image/armv8.mk
49+
50+
define Device/friendlyarm_nanopi-r2c
51+
DEVICE_VENDOR := FriendlyARM
52+
DEVICE_MODEL := NanoPi R2C
53+
SOC := rk3328
54+
UBOOT_DEVICE_NAME := nanopi-r2c-rk3328
55+
IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r2s | pine64-img | gzip | append-metadata
56+
DEVICE_PACKAGES := kmod-usb-net-rtl8152
57+
endef
58+
TARGET_DEVICES += friendlyarm_nanopi-r2c
59+
EOT
60+
61+
4862
# r8152 driver from friendlywrt for kernel 5.4
4963
# add extra patch to update r8152 driver to v.1.11.11
5064
# note : driver 2.13 and 2.14 seem unstable from this thread

openwrt-21.02/steps/06-create_config_from_seed.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,10 @@ if [[ "$1" == "R2S" ]]; then
2020
sed -i 's/cortex-a72.cortex-a53/cortex-a53/' .config
2121
fi
2222

23+
if [[ "$1" == "R2C" ]]; then
24+
echo "NanoPi R2C model, post patching .config"
25+
sed -i 's/nanopi-r4s/nanopi-r2c/' .config
26+
sed -i 's/cortex-a72.cortex-a53/cortex-a53/' .config
27+
fi
28+
2329
make defconfig

package/uboot-rockchip/Makefile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,17 @@ endef
2424

2525
# RK3328 boards
2626

27+
define U-Boot/nanopi-r2c-rk3328
28+
BUILD_SUBTARGET:=armv8
29+
NAME:=NanoPi R2C
30+
BUILD_DEVICES:= \
31+
friendlyarm_nanopi-r2c
32+
DEPENDS:=+PACKAGE_u-boot-nanopi-r2c-rk3328:arm-trusted-firmware-rockchip
33+
PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
34+
ATF:=rk3328_bl31.elf
35+
OF_PLATDATA:=$(1)
36+
endef
37+
2738
define U-Boot/nanopi-r2s-rk3328
2839
BUILD_SUBTARGET:=armv8
2940
NAME:=NanoPi R2S
@@ -72,6 +83,7 @@ UBOOT_TARGETS := \
7283
nanopi-r4s-rk3399 \
7384
rock-pi-4-rk3399 \
7485
rockpro64-rk3399 \
86+
nanopi-r2c-rk3328 \
7587
nanopi-r2s-rk3328
7688

7789
UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes
Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
2+
index d3e89ca3ba..d5f64ac432 100644
3+
--- a/arch/arm/dts/Makefile
4+
+++ b/arch/arm/dts/Makefile
5+
@@ -108,6 +108,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3308) += \
6+
7+
dtb-$(CONFIG_ROCKCHIP_RK3328) += \
8+
rk3328-evb.dtb \
9+
+ rk3328-nanopi-r2c.dtb \
10+
rk3328-nanopi-r2s.dtb \
11+
rk3328-orangepi-r1-plus.dtb \
12+
rk3328-roc-cc.dtb \
13+
diff --git a/arch/arm/dts/rk3328-nanopi-r2c-u-boot.dtsi b/arch/arm/dts/rk3328-nanopi-r2c-u-boot.dtsi
14+
new file mode 100644
15+
index 0000000000..c2e86d0f0e
16+
--- /dev/null
17+
+++ b/arch/arm/dts/rk3328-nanopi-r2c-u-boot.dtsi
18+
@@ -0,0 +1,7 @@
19+
+// SPDX-License-Identifier: GPL-2.0+
20+
+/*
21+
+ * (C) Copyright 2018-2019 Rockchip Electronics Co., Ltd
22+
+ * (C) Copyright 2021 Tianling Shen
23+
+ */
24+
+
25+
+#include "rk3328-nanopi-r2s-u-boot.dtsi"
26+
diff --git a/arch/arm/dts/rk3328-nanopi-r2c.dts b/arch/arm/dts/rk3328-nanopi-r2c.dts
27+
new file mode 100644
28+
index 0000000000..adf91a0306
29+
--- /dev/null
30+
+++ b/arch/arm/dts/rk3328-nanopi-r2c.dts
31+
@@ -0,0 +1,47 @@
32+
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
33+
+/*
34+
+ * Copyright (c) 2021 FriendlyElec Computer Tech. Co., Ltd.
35+
+ * (http://www.friendlyarm.com)
36+
+ *
37+
+ * Copyright (c) 2021 Tianling Shen <cnsztl@immortalwrt.org>
38+
+ */
39+
+
40+
+/dts-v1/;
41+
+
42+
+#include "rk3328-nanopi-r2s.dts"
43+
+
44+
+/ {
45+
+ model = "FriendlyElec NanoPi R2C";
46+
+ compatible = "friendlyarm,nanopi-r2c", "rockchip,rk3328";
47+
+};
48+
+
49+
+&gmac2io {
50+
+ phy-handle = <&yt8521s>;
51+
+
52+
+ mdio {
53+
+ /delete-node/ ethernet-phy@1;
54+
+
55+
+ yt8521s: ethernet-phy@3 {
56+
+ compatible = "ethernet-phy-id0000.011a",
57+
+ "ethernet-phy-ieee802.3-c22";
58+
+ reg = <3>;
59+
+ pinctrl-0 = <&eth_phy_reset_pin>;
60+
+ pinctrl-names = "default";
61+
+ reset-assert-us = <10000>;
62+
+ reset-deassert-us = <50000>;
63+
+ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
64+
+ };
65+
+ };
66+
+};
67+
+
68+
+&lan_led {
69+
+ label = "nanopi-r2c:green:lan";
70+
+};
71+
+
72+
+&sys_led {
73+
+ label = "nanopi-r2c:red:sys";
74+
+};
75+
+
76+
+&wan_led {
77+
+ label = "nanopi-r2c:green:wan";
78+
+};
79+
diff --git a/configs/nanopi-r2c-rk3328_defconfig b/configs/nanopi-r2c-rk3328_defconfig
80+
new file mode 100644
81+
index 0000000000..7bc7a3274f
82+
--- /dev/null
83+
+++ b/configs/nanopi-r2c-rk3328_defconfig
84+
@@ -0,0 +1,98 @@
85+
+CONFIG_ARM=y
86+
+CONFIG_ARCH_ROCKCHIP=y
87+
+CONFIG_SYS_TEXT_BASE=0x00200000
88+
+CONFIG_SPL_GPIO_SUPPORT=y
89+
+CONFIG_NR_DRAM_BANKS=1
90+
+CONFIG_ENV_OFFSET=0x3F8000
91+
+CONFIG_DEFAULT_DEVICE_TREE="rk3328-nanopi-r2c"
92+
+CONFIG_ROCKCHIP_RK3328=y
93+
+CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y
94+
+CONFIG_TPL_LIBCOMMON_SUPPORT=y
95+
+CONFIG_TPL_LIBGENERIC_SUPPORT=y
96+
+CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
97+
+CONFIG_SPL_STACK_R_ADDR=0x600000
98+
+CONFIG_DEBUG_UART_BASE=0xFF130000
99+
+CONFIG_DEBUG_UART_CLOCK=24000000
100+
+CONFIG_DEBUG_UART=y
101+
+CONFIG_TPL_SYS_MALLOC_F_LEN=0x800
102+
+# CONFIG_ANDROID_BOOT_IMAGE is not set
103+
+CONFIG_FIT=y
104+
+CONFIG_FIT_VERBOSE=y
105+
+CONFIG_SPL_LOAD_FIT=y
106+
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3328-nanopi-r2c.dtb"
107+
+# CONFIG_DISPLAY_CPUINFO is not set
108+
+CONFIG_DISPLAY_BOARDINFO_LATE=y
109+
+CONFIG_MISC_INIT_R=y
110+
+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
111+
+CONFIG_TPL_SYS_MALLOC_SIMPLE=y
112+
+CONFIG_SPL_STACK_R=y
113+
+CONFIG_SPL_I2C_SUPPORT=y
114+
+CONFIG_SPL_POWER_SUPPORT=y
115+
+CONFIG_SPL_ATF=y
116+
+CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
117+
+CONFIG_CMD_BOOTZ=y
118+
+CONFIG_CMD_GPT=y
119+
+CONFIG_CMD_MMC=y
120+
+CONFIG_CMD_USB=y
121+
+# CONFIG_CMD_SETEXPR is not set
122+
+CONFIG_CMD_TIME=y
123+
+CONFIG_SPL_OF_CONTROL=y
124+
+CONFIG_TPL_OF_CONTROL=y
125+
+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
126+
+CONFIG_TPL_OF_PLATDATA=y
127+
+CONFIG_ENV_IS_IN_MMC=y
128+
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
129+
+CONFIG_NET_RANDOM_ETHADDR=y
130+
+CONFIG_TPL_DM=y
131+
+CONFIG_REGMAP=y
132+
+CONFIG_SPL_REGMAP=y
133+
+CONFIG_TPL_REGMAP=y
134+
+CONFIG_SYSCON=y
135+
+CONFIG_SPL_SYSCON=y
136+
+CONFIG_TPL_SYSCON=y
137+
+CONFIG_CLK=y
138+
+CONFIG_SPL_CLK=y
139+
+CONFIG_FASTBOOT_BUF_ADDR=0x800800
140+
+CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
141+
+CONFIG_ROCKCHIP_GPIO=y
142+
+CONFIG_SYS_I2C_ROCKCHIP=y
143+
+CONFIG_MMC_DW=y
144+
+CONFIG_MMC_DW_ROCKCHIP=y
145+
+CONFIG_SF_DEFAULT_SPEED=20000000
146+
+CONFIG_DM_ETH=y
147+
+CONFIG_ETH_DESIGNWARE=y
148+
+CONFIG_GMAC_ROCKCHIP=y
149+
+CONFIG_PINCTRL=y
150+
+CONFIG_SPL_PINCTRL=y
151+
+CONFIG_DM_PMIC=y
152+
+CONFIG_PMIC_RK8XX=y
153+
+CONFIG_SPL_DM_REGULATOR=y
154+
+CONFIG_REGULATOR_PWM=y
155+
+CONFIG_DM_REGULATOR_FIXED=y
156+
+CONFIG_SPL_DM_REGULATOR_FIXED=y
157+
+CONFIG_REGULATOR_RK8XX=y
158+
+CONFIG_PWM_ROCKCHIP=y
159+
+CONFIG_RAM=y
160+
+CONFIG_SPL_RAM=y
161+
+CONFIG_TPL_RAM=y
162+
+CONFIG_DM_RESET=y
163+
+CONFIG_BAUDRATE=1500000
164+
+CONFIG_DEBUG_UART_SHIFT=2
165+
+CONFIG_SYSINFO=y
166+
+CONFIG_SYSRESET=y
167+
+# CONFIG_TPL_SYSRESET is not set
168+
+CONFIG_USB=y
169+
+CONFIG_USB_XHCI_HCD=y
170+
+CONFIG_USB_XHCI_DWC3=y
171+
+CONFIG_USB_EHCI_HCD=y
172+
+CONFIG_USB_EHCI_GENERIC=y
173+
+CONFIG_USB_OHCI_HCD=y
174+
+CONFIG_USB_OHCI_GENERIC=y
175+
+CONFIG_USB_DWC2=y
176+
+CONFIG_USB_DWC3=y
177+
+# CONFIG_USB_DWC3_GADGET is not set
178+
+CONFIG_USB_GADGET=y
179+
+CONFIG_USB_GADGET_DWC2_OTG=y
180+
+CONFIG_SPL_TINY_MEMSET=y
181+
+CONFIG_TPL_TINY_MEMSET=y
182+
+CONFIG_ERRNO_STR=y
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* DO NOT MODIFY
3+
*
4+
* Declares externs for all device/uclass instances.
5+
* This was generated by dtoc from a .dtb (device tree binary) file.
6+
*/
7+
8+
#include <dm/device-internal.h>
9+
#include <dm/uclass-internal.h>
10+
11+
/* driver declarations - these allow DM_DRIVER_GET() to be used */
12+
extern U_BOOT_DRIVER(rockchip_rk3328_cru);
13+
extern U_BOOT_DRIVER(rockchip_rk3328_dmc);
14+
extern U_BOOT_DRIVER(rockchip_rk3288_dw_mshc);
15+
extern U_BOOT_DRIVER(ns16550_serial);
16+
extern U_BOOT_DRIVER(rockchip_rk3328_grf);
17+
18+
/* uclass driver declarations - needed for DM_UCLASS_DRIVER_REF() */
19+
extern UCLASS_DRIVER(clk);
20+
extern UCLASS_DRIVER(mmc);
21+
extern UCLASS_DRIVER(ram);
22+
extern UCLASS_DRIVER(serial);
23+
extern UCLASS_DRIVER(syscon);

0 commit comments

Comments
 (0)