mirror of
				https://github.com/qemu/qemu.git
				synced 2025-10-30 19:15:42 +00:00 
			
		
		
		
	 b980c1aec6
			
		
	
	
		b980c1aec6
		
	
	
	
	
		
			
			Signed-off-by: Stefan Weil <sw@weilnetz.de> Message-Id: <20211117210702.1393570-1-sw@weilnetz.de> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> [thuth: "what's" --> "what is" as suggested by philmd] Signed-off-by: Thomas Huth <thuth@redhat.com>
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| 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
 |