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
|
UR-DP1000 Evb Board Support Package 使用说明
# 1. 概述
UR-DP1000是超睿科技研发的高性能多核RISC-V Soc,拥有8个高性能自研RISC-V处理器核UR-CP100,同时集成了24路PCIe 4.0、双路DDR 4以及一系列丰富的低速接口。
本 BSP 支持 UR-DP1000 EVB开发板。采用本BSP编译生成的RT-Thread标准版本以及Smart版本可以运行在 UR-DP1000 EVB开发板上。板卡集成16GB DDR4内存。
# 2. 芯片规格说明
| 硬件 | 描述 |
| -- | -- |
|芯片型号| UR-DP1000 |
|CPU| 8核UR-CP100,64位乱序发射超标量微架构,支持rv64imafdchx指令集,支持虚拟化扩展 |
|主频| 2.0-2.3GHz |
|cache| 核内集成64KB L1I和64KB L1D Cache以及512KB L2 Cache |
| 外设 | 支持两路DDR4,支持ECC,最大支持内存容量128GB |
| | 支持24路PCIe 4.0接口 |
| | SPI、UART、QSPI、UART、GMAC、I2C、PWM、GPIO等 |
# 3. BSP外设支持
| 设备名称 | 支持情况 | 说明 |
| -------- | -------- | ---------------------------------------------------------- |
| PLIC | 支持 | 中断控制器 |
| CLINT | 支持 | RISC-V core local 中断控制器,系统时钟及核间中断依赖该设备 |
| MMU | 支持 | 支持SV39,支持ASID |
| UART | 支持 | 调试串口 |
| SPI | 支持 | Designware apb ssi ,支持TF卡驱动 |
# 4. 编译
RT-Thread编译只支持Linux,推荐Ubuntu 22.04。
## 4.1. toolchain下载
toolchain下载地址:<https://download.rt-thread.org/rt-smart/riscv64/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_251248.tar.bz2>
将下载的toolchain解压到指定路径中,例如:/opt/riscv64gc-linux-musleabi_for_x86_64-pc-linux-gnu
## 4.2. BSP编译
### 4.2.1. 设置编译环境变量
```shell
export RTT_EXEC_PATH=/opt/riscv64gc-linux-musleabi_for_x86_64-pc-linux-gnu/bin
export RTT_CC_PREFIX=riscv64-unknown-linux-musl-
```
### 4.2.2. 安装编译依赖
```shell
sudo apt install scons python3-pip
pip install kconfiglib
```
### 4.2.3. 编译
```shell
git clone https://github.com/RT-Thread/rt-thread.git
cd bsp/ultrarisc/ur_dp1000_evb
#默认为RT-Thread标准版
scons
```
编译完成后,可以在bsp目录下生成rt-thread.elf及rtthread.bin文件。
如果要编译RT-Thread Smart版本,需要通过scons --menuconfig使能:RT-Thread Kernel->Enable RT-Thread Smart (microkernel on kernel/userland);
同时使能SPI MMC驱动:Ultrarisc DP1000 Soc Drivers Configuration->Using MMC。
# 5. 运行
编译完成后,在UR-DP1000 EVB板卡上可以通过jtag加载镜像运行:
在RT-Thread调试阶段,为了能够快速的下载RT-Thread镜像,方便功能调试,可以通过jtag下载及调试:
- 板卡上电后,首先运行固化在flash里的固件,opensbi启动;
- 将jtag调试器与板卡jtag口连接,同时启动openocd;
- 如果是标准版本,可以直接通过gdb加载rt-thread.elf,然后continue运行;如果是RT-Thread Smart版本,需要通过gdb加载rtthread.bin,然后修改pc值为0x80200000,continue运行。
```shell
#gdb
restore rtthread.bin binary 0x80200000
set $pc=0x80200000
continue
```
成功运行时,串口端的输出如下:
```shell
OpenSBI v1.6-66-gbeb27559acd
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
Platform Name : ultrarisc,dp1000
Platform Features : medeleg
Platform HART Count : 8
Platform IPI Device : aclint-mswi
Platform Timer Device : aclint-mtimer @ 10000000Hz
Platform Console Device : uart8250
Platform HSM Device : ---
Platform PMU Device : ---
Platform Reboot Device : ---
Platform Shutdown Device : ---
Platform Suspend Device : ---
Platform CPPC Device : ---
Firmware Base : 0x80000000
Firmware Size : 403 KB
Firmware RW Offset : 0x40000
Firmware RW Size : 147 KB
Firmware Heap Offset : 0x54000
Firmware Heap Size : 67 KB (total), 4 KB (reserved), 11 KB (used), 51 KB (free)
Firmware Scratch Size : 4096 B (total), 400 B (used), 3696 B (free)
Runtime SBI Version : 2.0
Standard SBI Extensions : time,rfnc,ipi,base,hsm,pmu,dbcn,legacy
Experimental SBI Extensions : fwft,sse
Domain0 Name : root
Domain0 Boot HART : 0
Domain0 HARTs : 0*,1*,2*,3*,16*,17*,18*,19*
Domain0 Region00 : 0x0000000020310000-0x0000000020310fff M: (I,R,W) S/U: (R,W)
Domain0 Region01 : 0x0000000080000000-0x000000008003ffff M: (R,X) S/U: ()
Domain0 Region02 : 0x0000000080040000-0x000000008007ffff M: (R,W) S/U: ()
Domain0 Region03 : 0x0000000008000000-0x00000000080fffff M: (I,R,W) S/U: ()
Domain0 Region04 : 0x0000000000000000-0xffffffffffffffff M: () S/U: (R,W,X)
Domain0 Next Address : 0x0000000080200000
Domain0 Next Arg1 : 0x0000000082200000
Domain0 Next Mode : S-mode
Domain0 SysReset : yes
Domain0 SysSuspend : yes
Boot HART ID : 0
Boot HART Domain : root
Boot HART Priv Version : v1.12
Boot HART Base ISA : rv64imafdchx
Boot HART ISA Extensions : zicntr,zihpm
Boot HART PMP Count : 4
Boot HART PMP Granularity : 2 bits
Boot HART PMP Address Bits : 42
Boot HART MHPM Info : 6 (0x000001f8)
Boot HART Debug Triggers : 0 triggers
Boot HART MIDELEG : 0x0000000000000666
Boot HART MEDELEG : 0x0000000000f0b509
Test payload running
ssi_version_id=4.03*
fifo length is 64
heap: [0x002acb28 - 0x042acb28]
\ | /
- RT - Thread Smart Operating System
/ | \ 5.2.1 build May 28 2025 08:24:41
2006 - 2024 Copyright by RT-Thread team
[I/drivers.serial] Using /dev/ttyS0 as default console
Mount "/dev/sd0p1" on "/"
Hello RT-Thread
msh />
/ #
```
# 6. 联系人信息
[email protected]
|