# Note sulla Polar Fire Microchip

<abstract>
Appunti di Sergio sull'uso della Polarfire di Microchip. Prove effettuare su Windows 10
</abstract>

<img src="./kit.png" width="50%">

## Installazione licenza Libero SoC

* Registrarsi sul sito Microchip da questo link: <https://www.microchipdirect.com/login?redirectTo=%2Ffpga-software-products%3F_ga%3D2.169070692.433967226.1643216525-824939000.1642777875>
* Richiedere la licenza "Libero Silver 1 Yr DiskID NL License"
* Specificare l'ID del disco sul PC ottentuto con il comando "Vol C:"
* Scaricare il file di licenza "Licence.dat" in c:\flexlm\ poi in fase di installazione dare il path di accesso al file

## Installazione Libero SoC

Allo stato attuale la versione di Libero Soc che conviene installare è la 2021.02 per Windows disponibile da questo link:

* <http://ww1.microchip.com/downloads/aemdocuments/documents/fpga/media-content/FPGA/v2021.2/prod/Libero_SoC_v2021.2_win.zip>

Per installarla decomprimere il file zip e lanciare l'eseguibile. 

## Generazione del progetto demo 

Scaricare il progetto icicle-kit-reference-design da questo link:

* File zip: <https://github.com/polarfire-soc/icicle-kit-reference-design/archive/refs/heads/master.zip>

ed estrane i files

Lanciare Libero SoC e accedere al menu:

	Project -> Execute Script

Nel campo Script file aggiungere il file MPFS_ICICLE_KIT_REFERENCE_DESIGN.tcl e aspettare che completi la 
generazione del progetto (ci mette una decina di minuti).

Accendere la ICICLE Kit e collegare la porta microUSB J33 al PC

Per trasferire il file binario sulla FPGA Selezionare la voce "Run PROGRAM Action" presente sulla struttura ad albero a sinistra, cliccare
il tasto destro e selezionere RUN 

## Installazione driver seriali per Windows

* <https://www.silabs.com/documents/public/software/CP210x_Universal_Windows_Driver.zip>

<a name="playlist"></a>
## Creazione di un IP e inserimento nell' ICICLE KIT REFERENCE DESIGN

* [Introduzione](https://www.youtube.com/watch?v=gXnAiesDBTU)
* [Importare un IP in VHDL](https://www.youtube.com/watch?v=AkQ8SLIsfKY)
* [Interfacciamento IP](https://www.youtube.com/watch?v=MsJ7Ai9p7gA)
* [Accesso all'IP da Linux](https://www.youtube.com/watch?v=Q3qtufn4Zgo)
 
## Preparazione microSD con Linux Yocto demo

Scaricare l'immagine pronta di Yocto Linux da questo link:

* <https://github.com/polarfire-soc/meta-polarfire-soc-yocto-bsp/releases>

Usare la versione SMP o AMP (non ho ancora capito la differenza :-) 

Una volta scaricato il file .gz è possibile creare l'immagine su microSD usando Balena Etcher da questo link:

* <https://www.balena.io/etcher/>


## Chip usati sulla ICICLE Kit

* [VSC8662 Datasheet Dual Port 10/100/1000BASE-T PHY](https://ww1.microchip.com/downloads/en/DeviceDoc/VMDS-10312.pdf)

## Links

* Repository GitHub: <https://github.com/polarfire-soc>
* PolarFire SoC Icicle Kit Quick Start Guide <https://www.microsemi.com/products/fpga-soc/polarfire-soc-icicle-quick-start-guide#getting-started>
* Descrizione generale Polar Fire <https://www.microchip.com/en-us/products/fpgas-and-plds/system-on-chip-fpgas/polarfire-soc-fpgas>
* Sorgenti Kernel Linux <https://github.com/polarfire-soc/linux>
 
## Glossario

* MSS - Microprocessor Subsystem
* FIC - Fabric Interface Controllers
* ZSBL - Zeroth Stage Boot Loader

## Schede concorrenti

* [Elclustra Mercury+ MP1](https://www.enclustra.com/en/products/system-on-chip-modules/mercury-mp1/)
* [Polarberry](https://store.sundance.com/product/polarberry/)
* [Aries SOM](https://www.aries-embedded.com/polarfire-microchip-fpga-m100pf-som-mpf100t-pcie-serdes?gclid=Cj0KCQiAosmPBhCPARIsAHOen-MSh1gnEaqBMvLXIK_cd4uUK5VjrYYNdocxUdUsw85rFmEBZUY7AaQaAiauEALw_wcB)



@include='bio_tanzilli' 
