1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
# RK3568 BSP Introduction
[中文页](./README_ZH.md) | English
## 1. Introduction
### Core Architecture
- **CPU**: Quad-core 64-bit ARM Cortex-A55
- **Process Node**: 22nm FinFET
- **Clock Speed**: Up to 1.8GHz (boost)
### Graphics Subsystem
- **GPU**: ARM Mali-G52 MP2
- Graphics APIs:
- OpenGL ES 3.2/2.0/1.1
- Vulkan 1.1
- Display Outputs:
- HDMI 2.0b
- eDP 1.3
- MIPI-DSI (4 lanes)
- **Video Processing**:
- Decoding: 4K@60fps (H.265/H.264/VP9)
- Encoding: 1080P@60fps (H.264/H.265)
### Memory & Storage
- **RAM Support**:
- Dual-channel LPDDR4/LPDDR4X
- Max Capacity: 8GB
- **Storage Options**:
- eMMC 5.1 HS400
- SD 3.0 UHS-I
- Optional SATA III (6Gbps)
- **High-Speed Interfaces**:
- USB 3.0 Type-A/C
- PCIe 2.1 (x1 lane)
### AI Acceleration
- **NPU**: 0.8 TOPS INT8
- Framework Support:
- TensorFlow Lite
- MXNet
- PyTorch Mobile
### Connectivity
- **Wired**:
- Dual Gigabit Ethernet (RGMII)
- **Wireless**:
- Expansion via:
- PCIe-based WiFi6
- USB Bluetooth 5.0
### Multimedia I/O
- **Camera Input**:
- Dual 4-lane MIPI-CSI
- Supports up to 13MP sensors
## 2. Compiling
Use the RT-Thread Smart dedicated toolchain to compile:
```plaintext
wget https://github.com/RT-Thread/rt-thread/releases/download/v5.2.0/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu_242520-979be38cba.tar.bz2
sudo tar -xf aarch64-linux-musleabi_for_x86_64-pc-linux-gnu_242520-979be38cba.tar.bz2 -C /opt
```
After downloading, extract the toolchain to the /opt directory.Then configure your environment variables:
```plaintext
export RTT_CC="gcc"
export RTT_EXEC_PATH="/opt/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/"
export RTT_CC_PREFIX="aarch64-linux-musleabi-"
export PATH="$RTT_EXEC_PATH:$PATH"
```
Navigate to the rt-thread/bsp/rockchip/rk3500 directory and enter:
```shell
scons --menuconfig
```
Select and pull the zlib package in the menu:

Then run the following commands to fetch packages and build the project:
```shell
source ~/.env/tools/scripts/pkgs --update
scons
```
## 3. Execution
The RK3566 SoC uses different methods to install the kernel depending on the board.It is recommended to install and boot from an SD card.The following steps take the Orange Pi Compute Module 4 as an example:
Connect the serial port of the development board:

1. Open a serial terminal, select the correct serial port, and set the baud rate to 1500000.
2. Copy the generated rtthread.bin file to the SD card.
3. Power up the development board and press Ctrl + C on the keyboard to enter U-Boot command line mode.

4. Enter the following command to load and boot the Smart system:
```shell
fatload mmc 1:1 0x480000 rtthread.bin;booti 0x480000 - 0x8300000
```
```plaintext
reading rtthread.bin
1188080 bytes read in 102 ms (11.1 MiB/s)
Fdt Ramdisk skip relocation
## Flattened Device Tree blob at 0x08300000
Booting using the fdt blob at 0x08300000
'reserved-memory' linux,cma: addr=10000000 size=800000
'reserved-memory' ramoops@110000: addr=110000 size=f0000
Using Device Tree in place at 0000000008300000, end 000000000832048e
Adding bank: 0x00200000 - 0x08400000 (size: 0x08200000)
Adding bank: 0x09400000 - 0xf0000000 (size: 0xe6c00000)
Adding bank: 0x1f0000000 - 0x200000000 (size: 0x10000000)
== DO RELOCATE == Kernel from 0x00280000 to 0x00480000
Total: 107148.892 ms
Starting kernel ...
[I/rtdm.ofw] Booting RT-Thread on physical CPU 0x0
[I/rtdm.ofw] Machine model: Rockchip RK3566 Orange Pi CM4 Board
[I/rtdm.ofw] Earlycon: uart8250 at MMIO/PIO 0x00000000fe660000 (options '')
[I/rtdm.ofw] Memory node(1) ranges: 0x0000000000200000 - 0x0000000008400000
[I/rtdm.ofw] Memory node(1) ranges: 0x0000000009400000 - 0x00000000f0000000
[I/rtdm.ofw] Memory node(1) ranges: 0x00000001f0000000 - 0x0000000200000000
[I/mm.memblock] System memory:
[I/mm.memblock] [0x0000000000200000, 0x0000000008400000]
[I/mm.memblock] [0x0000000009400000, 0x00000000f0000000]
[I/mm.memblock] [0x00000001f0000000, 0x0000000200000000]
[I/mm.memblock] Reserved memory:
[I/mm.memblock] [0x0000000000110000, 0x0000000000200000]
[I/mm.memblock] [0x0000000000480000, 0x00000000006c7000]
[I/mm.memblock] [0x00000000006c7000, 0x00000000046c7000]
[I/mm.memblock] [0x00000000046c7000, 0x00000000048c7000]
[I/mm.memblock] [0x00000000048c7000, 0x00000000048e5000]
[I/mm.memblock] [0x0000000008300000, 0x000000000831e000]
[I/mm.memblock] [0x0000000010000000, 0x0000000010800000]
[I/mm.memblock] [0x00000000edf00000, 0x00000000ee367400]
[I/mm.memblock] [0x00000000eff00000, 0x00000000eff08000]
[I/mm.memblock] physical memory region [0x0000000000200000-0x0000000000480000] installed to system page
[I/mm.memblock] physical memory region [0x00000000048e5000-0x0000000008300000] installed to system page
[I/mm.memblock] physical memory region [0x000000000831e000-0x0000000008400000] installed to system page
[I/mm.memblock] physical memory region [0x0000000009400000-0x0000000010000000] installed to system page
[I/mm.memblock] physical memory region [0x0000000010800000-0x00000000edf00000] installed to system page
[I/mm.memblock] physical memory region [0x00000000ee368000-0x00000000eff00000] installed to system page
[I/mm.memblock] physical memory region [0x00000000eff08000-0x00000000f0000000] installed to system page
[I/mm.memblock] physical memory region [0x00000001f0000000-0x0000000200000000] installed to system page
[I/mm.memblock] 4191 MB memory installed to system page
[I/osi.psci] Using PSCI v1.1 Function IDs
[I/clk.rk3568] set cpu_freq to 1800000000
[I/rtdm.ofw] Console: uart0 (fiq-debugger)
\ | /
- RT - Thread Smart Operating System
/ | \ 5.2.1 build Apr 28 2025 09:19:08
2006 - 2024 Copyright by RT-Thread team
lwIP-2.1.2 initialized!
[I/sal.skt] Socket Abstraction Layer initialize success.
[I/utest] utest is initialize success.
[I/utest] total utest testcase num: (5)
[I/drivers.serial] Using /dev/ttyS0 as default console
Press any key to stop init process startup ... 3
Press any key to stop init process startup ... 2
Press any key to stop init process startup ... 1
Starting init ...
[I/rtdm.mnt] File system initialization done
Hi, this is RT-Thread!!
msh />I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
[I/cpu.aa64] Call cpu 1 on success
I/TC: Secondary CPU 3 initializing
I/TC: Secondary CPU 3 switching to normal world boot
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
[I/cpu.aa64] Call cpu 3 on success
[I/cpu.aa64] Call cpu 2 on success
msh />
msh />
```
|