Skip to content

Commit 7ed8102

Browse files
Support for Cheshire on Digilent Genesys 2
Signed-off-by: Matt Rossouw <matthew.rossouw@unsw.edu.au> Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
1 parent 2f54567 commit 7ed8102

File tree

2 files changed

+70
-0
lines changed

2 files changed

+70
-0
lines changed

build_sdk.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,18 @@ class ConfigInfo:
254254
"KernelRiscvExtF": True,
255255
},
256256
),
257+
BoardInfo(
258+
name="cheshire",
259+
arch=KernelArch.RISCV64,
260+
gcc_cpu=None,
261+
loader_link_address=0x90000000,
262+
kernel_options={
263+
"KernelIsMCS": True,
264+
"KernelPlatform": "cheshire",
265+
"KernelRiscvExtD": True,
266+
"KernelRiscvExtF": True,
267+
},
268+
),
257269
)
258270

259271
SUPPORTED_CONFIGS = (

docs/manual.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -981,6 +981,64 @@ If you are booting from U-Boot, use the following command to start the system im
981981
Note that the OpenSBI version from the CVA6 SDK at the time of writing has issues when
982982
booting. It is recommended to use the mainline OpenSBI.
983983

984+
## Cheshire
985+
986+
Support is available for [Cheshire](https://github.com/pulp-platform/cheshire).
987+
It is an SoC design based on the CVA6 core, implementing a 64-bit RISC-V CPU.
988+
989+
Microkit outputs a raw binary for this device. Several steps are required in order to boot.
990+
991+
A custom version of OpenSBI is required. It can be found
992+
[here](https://github.com/pulp-platform/opensbi/tree/cheshire).
993+
Build the firmware payload using platform `fpga/cheshire`.
994+
995+
### Using U-Boot
996+
997+
With a system pre-configured with the Cheshire ZSBL, OpenSBI and U-boot:
998+
999+
=> go 0x90000000
1000+
1001+
### Raw systerm with no bootloader
1002+
1003+
Without any firmware present on the SD card, it is still possible to boot Cheshire with a Microkit system.
1004+
1005+
Using a GDB prompt via openOCD:
1006+
1007+
1. Reset board
1008+
> monitor reset halt
1009+
1010+
2. Load a device tree blob (DTS available in Cheshire repo or seL4) to memory and set the a0 and a1 registers to point at it:
1011+
1012+
> restore /path/to/cheshire.dtb binary 0xa0000000
1013+
1014+
(tell OpenSBI where DTB is)
1015+
1016+
> set $a0=0xa0000000
1017+
1018+
(tell OpenSBI that the default hart is #0)
1019+
1020+
> set $a1=0
1021+
1022+
3. Load OpenSBI
1023+
1024+
> load /path/to/opensbi/fw_payload.elf
1025+
1026+
4. Allow OpenSBI to boot, and interrupt it once the line `Test payload running` is emitted on serial.
1027+
1028+
> continue
1029+
1030+
(wait for output)
1031+
1032+
> (Ctrl+C)
1033+
1034+
5. Load Microkit image and execute
1035+
1036+
> restore /path/to/loader.img binary 0x90000000
1037+
1038+
(execute)
1039+
1040+
> continue
1041+
9841042
## Adding Platform Support
9851043

9861044
The following section is a guide for adding support for a new platform to Microkit.

0 commit comments

Comments
 (0)