Skip to content

Commit

Permalink
documentation/mpfs: add mpfs and icile board to documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
jrosberg authored and xiaoxiang781216 committed May 25, 2021
1 parent d620564 commit 3927493
Show file tree
Hide file tree
Showing 3 changed files with 161 additions and 0 deletions.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
79 changes: 79 additions & 0 deletions 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).

82 changes: 82 additions & 0 deletions 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/*/*


0 comments on commit 3927493

Please sign in to comment.