Shakti C Reference Platform (shakti_c)

Shakti C Reference Platform is a reference platform based on arty a7 100t for the Shakti SoC.

Shakti SoC is a SoC based on the Shakti C-class processor core. Shakti C is a 64bit RV64GCSUN processor core.

For more details on Shakti SoC, please see:

For more info on the Shakti C-class core, please see:

Supported devices

The shakti_c machine supports the following devices:

  • 1 C-class core

  • Core Level Interruptor (CLINT)

  • Platform-Level Interrupt Controller (PLIC)

  • 1 UART

Boot options

The shakti_c machine can start using the standard -bios functionality for loading the baremetal application or opensbi.

Boot the machine

Shakti SDK

Shakti SDK can be used to generate the baremetal example UART applications.

$ git clone
$ cd shakti-sdk
$ make software PROGRAM=loopback TARGET=artix7_100t
Binary would be generated in:


You could also download the precompiled example applications using below commands.

$ wget -c
$ unzip

Then we can run the UART example using:

$ qemu-system-riscv64 -M shakti_c -nographic \
   -bios path/to/shakti_sdk_qemu/loopback.shakti


We can also run OpenSBI with Test Payload.

$ git clone -b v0.9
$ cd opensbi
$ wget -c
$ export CROSS_COMPILE=riscv64-unknown-elf-
$ export FW_FDT_PATH=./shakti.dtb
$ make PLATFORM=generic

fw_payload.elf would be generated in build/platform/generic/firmware/fw_payload.elf. Boot it using the below qemu command.

$ qemu-system-riscv64 -M shakti_c -nographic \
   -bios path/to/fw_payload.elf