summaryrefslogtreecommitdiff
path: root/bsp/ultrarisc/ur_dp1000_evb/README.md
blob: 017b3cdbf58e1d7b42de0a7de60fd8acce484b96 (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
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]