~funderscore blog cgit wiki get in touch
aboutsummaryrefslogtreecommitdiff
blob: e395c6ae12c666588aae867771d0aebc584ea686 (plain)
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
.. SPDX-License-Identifier: GPL-2.0+

Sipeed's Lichee PI 4A based on T-HEAD TH1520 SoC
================================================

The LicheePi4A is a high-performance RISC-V SBC based on TH1520(4xC910@1.85GHz),
comes with 4/8/16 GB RAM, and up to 128GB eMMC, and rich peripherals.

 - SoC            T-HEAD TH1520 SoC
 - System Memory  4GB, 8GB, or 16GB LPDDR4X
 - Storage        eMMC flash with 8/32/128 GB
 -                external microSD slot
 - Networking     2x Gigabit Ethernet
 -                WiFi+BT
 - Display        HDMI2.0, 4-lane MIPI DSI
 - Camera         4-lane MIPI CSI + 2x2-lane MIPI CSI
 - Audio          Onboard Speaker, 2xMEMS MIC, 3.5mm headphone jack
 - USB            4xUSB3.0 Type-A, 1xUSB2.0 Type-C
 - GPIO           2x10Pin breakout, UART/IIC/SPI
 - Power          DC 12V/2A, POE 5V/2.4A, USB Type-C 5V/2A

TH1520 RISC-V SoC
-----------------

The TH1520 SoC consist of quad-core RISC-V Xuantie C910 (RV64GCV) processor,
Xuantie C906 audio DSP, low power Xuantie E902 core, it also integrate
Imagination GPU for graphics, and 4 TOPS NPU for AI acceleration.

Mainline support
----------------

The support for following drivers are already enabled:

1. ns16550 UART Driver.

Building
~~~~~~~~

1. Add the RISC-V toolchain to your PATH.
2. Setup ARCH & cross compilation environment variable:

.. code-block:: none

   export CROSS_COMPILE=<riscv64 toolchain prefix>

The U-Boot is capable of running in M-Mode, so we can directly build it.

.. code-block:: console

	cd <U-Boot-dir>
	make th1520_lpi4a_defconfig
	make

This will generate u-boot-dtb.bin

Booting
~~~~~~~

Currently, we rely on vendor u-boot to initialize the clock, pinctrl subsystem,
and chain load the mainline u-boot image either via tftp or emmc storage,
then bootup from it.

Sample boot log from Lichee PI 4A board via tftp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code-block:: none

	brom_ver 8
	[APP][E] protocol_connect failed, exit.

	U-Boot SPL 2020.01-00016-g8c870a6be8 (May 20 2023 - 01:04:49 +0000)
	FM[1] lpddr4x dualrank freq=3733 64bit dbi_off=n sdram init
	ddr initialized, jump to uboot
	image has no header


	U-Boot 2020.01-00016-g8c870a6be8 (May 20 2023 - 01:04:49 +0000)

	CPU:   rv64imafdcvsu
	Model: T-HEAD c910 light
	DRAM:  8 GiB
	C910 CPU FREQ: 750MHz
	AHB2_CPUSYS_HCLK FREQ: 250MHz
	AHB3_CPUSYS_PCLK FREQ: 125MHz
	PERISYS_AHB_HCLK FREQ: 250MHz
	PERISYS_APB_PCLK FREQ: 62MHz
	GMAC PLL POSTDIV FREQ: 1000MHZ
	DPU0 PLL POSTDIV FREQ: 1188MHZ
	DPU1 PLL POSTDIV FREQ: 1188MHZ
	MMC:   sdhci@ffe7080000: 0, sd@ffe7090000: 1
	Loading Environment from MMC... OK
	Error reading output register
	Warning: cannot get lcd-en GPIO
	LCD panel cannot be found : -121
	splash screen startup cost 16 ms
	In:    serial
	Out:   serial
	Err:   serial
	Net:
	Warning: ethernet@ffe7070000 using MAC address from ROM
	eth0: ethernet@ffe7070000ethernet@ffe7070000:0 is connected to ethernet@ffe7070000.  Reconnecting to ethernet@ffe7060000

	Warning: ethernet@ffe7060000 (eth1) using random MAC address - 42:25:d4:16:5f:fc
	, eth1: ethernet@ffe7060000
	Hit any key to stop autoboot:  2
	ethernet@ffe7060000 Waiting for PHY auto negotiation to complete.. done
	Speed: 1000, full duplex
	Using ethernet@ffe7070000 device
	TFTP from server 192.168.8.50; our IP address is 192.168.8.45
	Filename 'u-boot-dtb.bin'.
	Load address: 0x1c00000
	Loading: * #########################
		 8 MiB/s
	done
	Bytes transferred = 376686 (5bf6e hex)
	## Starting application at 0x01C00000 ...

        U-Boot 2023.07-rc2-00004-g1befbe31c1 (May 23 2023 - 18:40:01 +0800)

        CPU:   rv64imafdc
        Model: Sipeed Lichee Pi 4A
        DRAM:  8 GiB
        Core:  13 devices, 6 uclasses, devicetree: separate
        Loading Environment from <NULL>... OK
        In:    serial@ffe7014000
        Out:   serial@ffe7014000
        Err:   serial@ffe7014000
        Model: Sipeed Lichee Pi 4A
        LPI4A=>