| 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: |
| https://gitlab.com/shaktiproject/cores/shakti-soc/-/blob/master/fpga/boards/artya7-100t/c-class/README.rst |
| |
| For more info on the Shakti C-class core, please see: |
| https://c-class.readthedocs.io/en/latest/ |
| |
| 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. |
| |
| .. code-block:: bash |
| |
| $ git clone https://gitlab.com/behindbytes/shakti-sdk.git |
| $ cd shakti-sdk |
| $ make software PROGRAM=loopback TARGET=artix7_100t |
| |
| Binary would be generated in: |
| software/examples/uart_applns/loopback/output/loopback.shakti |
| |
| You could also download the precompiled example applications using below |
| commands. |
| |
| .. code-block:: bash |
| |
| $ wget -c https://gitlab.com/behindbytes/shakti-binaries/-/raw/master/sdk/shakti_sdk_qemu.zip |
| $ unzip shakti_sdk_qemu.zip |
| |
| Then we can run the UART example using: |
| |
| .. code-block:: bash |
| |
| $ qemu-system-riscv64 -M shakti_c -nographic \ |
| -bios path/to/shakti_sdk_qemu/loopback.shakti |
| |
| OpenSBI |
| ~~~~~~~ |
| We can also run OpenSBI with Test Payload. |
| |
| .. code-block:: bash |
| |
| $ git clone https://github.com/riscv/opensbi.git -b v0.9 |
| $ cd opensbi |
| $ wget -c https://gitlab.com/behindbytes/shakti-binaries/-/raw/master/dts/shakti.dtb |
| $ 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. |
| |
| .. code-block:: bash |
| |
| $ qemu-system-riscv64 -M shakti_c -nographic \ |
| -bios path/to/fw_payload.elf |