documentation/mpfs: add mpfs and icile board to documentation

This commit is contained in:
Janne Rosberg 2021-05-14 09:30:52 +03:00 committed by Xiang Xiao
parent d6205642ab
commit 39274937e4
3 changed files with 161 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@ -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).

View File

@ -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/*/*