diff --git a/Documentation/platforms/risc-v/mpfs/boards/icicle/icicle.png b/Documentation/platforms/risc-v/mpfs/boards/icicle/icicle.png new file mode 100644 index 00000000000..3ed60749767 Binary files /dev/null and b/Documentation/platforms/risc-v/mpfs/boards/icicle/icicle.png differ diff --git a/Documentation/platforms/risc-v/mpfs/boards/icicle/index.rst b/Documentation/platforms/risc-v/mpfs/boards/icicle/index.rst new file mode 100644 index 00000000000..725654566a5 --- /dev/null +++ b/Documentation/platforms/risc-v/mpfs/boards/icicle/index.rst @@ -0,0 +1,79 @@ +==================== +PolarFire Icicle Kit +==================== + +.. list-table:: + :align: center + + * - .. figure:: icicle.png + :align: center + +CPU +--- +PolarFire SoC FPGA (MPFS250T-FCVG484EES) + +- SiFive E51 Monitor core (1 x RV64IMAC) +- SiFive U54 Application cores (4 x RV64GC) +- and Secure boot + + +Memory and storage +------------------ +- 2 GB LPDDR4 x 32 +- 1 Gb SPI flash +- 8 GB eMMC flash & SD card slot (multiplexed) + + +Programming & Debugging +----------------------- +Onboard JTAG connector or onboard embedded FlashPro (multiplexed) + +- UART via micro USB +- 52 x test points + + +Interfaces +---------- + +- 4 x 12.7 Gbps SERDES +- PCIe Gen2 Rootport +- 2 x Gigabit Ethernet +- Micro USB 2.0 Hi-Speed OTG +- 4 x UART (via single micro USB) +- 2 x CAN +- 2 x SPI +- 2 x I²C + +Expansion +--------- +- Raspberry Pi compatible 40-pin header +- mikroBUS socket + +Sensor +------ +- Power sensor (pac1934) + + + +Buttons and LEDs +================ + +Buttons +------- +There are 3 buttons and reset button. The Reset button is not available +to software by default. + + +LEDs +---- +There is 4 user controlled on-board LEDs. + + +Configurations +============== + +nsh +--- + +Basic configuration to run the NuttShell (nsh). + diff --git a/Documentation/platforms/risc-v/mpfs/index.rst b/Documentation/platforms/risc-v/mpfs/index.rst new file mode 100644 index 00000000000..cafbe2a3368 --- /dev/null +++ b/Documentation/platforms/risc-v/mpfs/index.rst @@ -0,0 +1,82 @@ +=========================== +Microchip Polarfile (MPFS) +=========================== + +RV64 64-bit RISC-V multiprocessor-based Microcontroller Subsystem +(MPFS025T, MPFS095T, MPFS160T, MPFS250T, MPFS460T) + + +MPFS Toolchain +============== + +A generic RISC-V toolchain can be used to build MPFS projects. +Like: https://xpack.github.io/riscv-none-embed-gcc or https://github.com/sifive/freedom-tools/releases + + +Booting +======= + +The NuttX port for now relies on HSS bootloader to carry on some hardware initializations. + + +Building and flashing +===================== + +First make sure that ``hss-payload-generator`` is installed. +Available from: https://github.com/polarfire-soc/hart-software-services + +This tool is used to convert the ELF/bin to a compatible HSS payload image + +Configure the NuttX project: ``./tools/configure.sh icicle:nsh`` +Run ``make`` to build the project. + +Create HSS payload bin:: + + hss-payload-generator -v -c hss-nuttx.yml payload.bin + + +Debugging with OpenOCD +====================== + +Compatible OpenOCD and configs can be downloaded from: +https://www.microsemi.com/product-directory/design-tools/4879-softconsole#downloads + + +OpenOCD can then be used:: + + openocd -c "set DEVICE MPFS" --file board/microsemi-riscv.cfg + + +Peripheral Support +================== + +The following list indicates the state of peripherals' support in NuttX: + +============ ======= ===== +Peripheral Support NOTES +============ ======= ===== +GPIO Yes +MMUART Yes Uart mode only +SPI No +I2C No +Timers No +Watchdog No +RTC No +CAN No +eNVM No +USB No +eMMC SD/SDIO No +============ ======= ===== + + + +Supported Boards +================ + +.. toctree:: + :glob: + :maxdepth: 1 + + boards/*/* + + \ No newline at end of file