1.. _roc_rk3568_pc:
2
3Firefly ROC-RK3568-PC (Quad-core Cortex-A55)
4############################################
5
6Overview
7********
8
9The ROC-RK3568-PC is a Quad-Core 64-Bit Mini Computer, which supports 4G large RAM. M.2
10and SATA3.0 interfaces enables expansion with large hard drives.
11Providing dual Gigabit Ethernet ports, it supports WiFi 6 wireless transmission.
12Control Port can be connected with RS485/RS232 devices.
13
14RK3568 quad-core 64-bit Cortex-A55 processor, with brand new ARM v8.2-A architecture,
15has frequency up to 2.0GHz. Zephyr OS is ported to run on it.
16
17
18- Board features:
19
20  - RAM: 4GB LPDDR4
21  - Storage:
22
23    - 32GB eMMC
24    - M.2 PCIe 3.0 x 1 (Expand with 2242 / 2280 NVMe SSD)
25    - TF-Card Slot
26  - Wireless:
27
28    - Supports WiFi 6 (802.11 AX)
29    - Supports BT5.0
30  - USB:
31
32    - One USB 3.0
33    - Two USB 2.0
34    - One Type-C
35  - Ethernet
36  - M.2 PCIe3.0 (Expand with NVMe SSD)
37  - LEDs:
38
39    - 1x Power status LED
40  - Debug
41
42    - UART debug ports for board
43
44
45Supported Features
46==================
47
48The Zephyr roc_rk3568_pc board configuration supports the following hardware
49features:
50
51+-----------+------------+-------------------------------------+
52| Interface | Controller | Driver/Component                    |
53+===========+============+=====================================+
54| GIC-v3    | on-chip    | interrupt controller                |
55+-----------+------------+-------------------------------------+
56| ARM TIMER | on-chip    | system clock                        |
57+-----------+------------+-------------------------------------+
58| UART      | on-chip    | serial port                         |
59+-----------+------------+-------------------------------------+
60
61Devices
62========
63System Clock
64------------
65
66This board configuration uses a system clock frequency of 24 MHz.
67Cortex-A55 Core runs up to 2.0 GHz.
68
69Serial Port
70-----------
71
72This board configuration uses a single serial communication channel with the
73CPU's UART2.
74
75Programming and Debugging
76*************************
77
78Use U-Boot to load the zephyr.bin to the memory and kick it:
79
80.. code-block:: console
81
82    tftp 0x40000000 zephyr.bin; dcache flush; icache flush; dcache off; icache off; go 0x40000000
83
84Use this configuration to run basic Zephyr applications and kernel tests,
85for example, with the :zephyr:code-sample:`synchronization` sample:
86
87.. zephyr-app-commands::
88   :zephyr-app: samples/synchronization
89   :host-os: unix
90   :board: roc_rk3568_pc
91   :goals: run
92
93This will build an image with the synchronization sample app, boot it and
94display the following ram console output:
95
96.. code-block:: console
97
98    ***  Booting Zephyr OS build bc695c6df5eb  ***
99    thread_a: Hello World from cpu 0 on roc_rk3568_pc!
100    thread_b: Hello World from cpu 0 on roc_rk3568_pc!
101    thread_a: Hello World from cpu 0 on roc_rk3568_pc!
102    thread_b: Hello World from cpu 0 on roc_rk3568_pc!
103
104
105``roc_rk3568_pc//smp`` support, use this configuration to run Zephyr smp applications and subsys tests,
106for example, with the :zephyr:code-sample:`synchronization` sample:
107
108.. zephyr-app-commands::
109   :zephyr-app: samples/synchronization
110   :host-os: unix
111   :board: roc_rk3568_pc//smp
112   :goals: run
113
114This will build an image with the shell_module sample app, boot it and
115display the following ram console output:
116
117.. code-block:: console
118
119    ***  Booting Zephyr OS build bc695c6df5eb  ***
120    I/TC: Secondary CPU 1 initializing
121    I/TC: Secondary CPU 1 switching to normal world boot
122    I/TC: Secondary CPU 2 initializing
123    I/TC: Secondary CPU 2 switching to normal world boot
124    I/TC: Secondary CPU 3 initializing
125    I/TC: Secondary CPU 3 switching to normal world boot
126    Secondary CPU core 1 (MPID:0x100) is up
127    Secondary CPU core 2 (MPID:0x200) is up
128    Secondary CPU core 3 (MPID:0x300) is up
129
130    thread_a: Hello World from cpu 0 on roc_rk3568_pc!
131    thread_b: Hello World from cpu 1 on roc_rk3568_pc!
132    thread_a: Hello World from cpu 0 on roc_rk3568_pc!
133    thread_b: Hello World from cpu 1 on roc_rk3568_pc!
134
135References
136==========
137
138More information can refer to Firefly official website:
139`Firefly website`_.
140
141.. _Firefly website:
142   https://en.t-firefly.com/product/industry/rocrk3568pc.html?theme=pc
143