1.. zephyr:board:: mpfs_icicle 2 3Overview 4******** 5 6The Microchip mpfs_icicle board is a PolarFire SoC FPGA based development board with a Microchip MPFS250T fpga device. 7The E51 RISC-V CPU can be deployed on the mpfs_icicle board. 8More information can be found on the `Microchip website <https://www.microchip.com/en-us/product/MPFS250T>`_. 9 10Programming and debugging 11************************* 12 13Building 14======== 15 16Applications for the ``mpfs_icicle`` board configuration can be built as usual 17(see :ref:`build_an_application`): 18 19.. zephyr-app-commands:: 20 :board: mpfs_icicle 21 :goals: build 22 23To build the default SMP capable variant 24 25.. zephyr-app-commands:: 26 :board: mpfs_icicle/polarfire/smp 27 :goals: build 28 29Flashing 30======== 31 32In order to upload the application to the device, you'll need OpenOCD and GDB 33with RISC-V support. 34You can get them as a part of SoftConsole SDK. 35Download and installation instructions can be found on 36`Microchip's SoftConsole website 37<https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/programming-and-debug/softconsole>`_. 38 39With the necessary tools installed, you can connect to the board using OpenOCD. 40To establish an OpenOCD connection run: 41 42.. code-block:: bash 43 44 sudo LD_LIBRARY_PATH=<softconsole_path>/openocd/bin \ 45 <softconsole_path>/openocd/bin/openocd --command "set DEVICE MPFS" --file \ 46 <softconsole_path>/openocd/share/openocd/scripts/board/microsemi-riscv.cfg 47 48 49Leave it running, and in a different terminal, use GDB to upload the binary to 50the board. You can use the RISC-V GDB from a toolchain delivered with 51SoftConsole SDK. 52 53Here is the GDB terminal command to connect to the device 54and load the binary: 55 56.. code-block:: console 57 58 <softconsole_path>/riscv-unknown-elf-gcc/bin/riscv64-unknown-elf-gdb \ 59 -ex "target extended-remote localhost:3333" \ 60 -ex "set mem inaccessible-by-default off" \ 61 -ex "set arch riscv:rv64" \ 62 -ex "set riscv use_compressed_breakpoints no" \ 63 -ex "load" <path_to_executable> 64 65Debugging 66========= 67 68Refer to the detailed overview of :ref:`application_debugging`. 69