You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
269 lines
6.5 KiB
Markdown
269 lines
6.5 KiB
Markdown
---
|
|
author: Penguin
|
|
date: 06/19/23
|
|
title: Installing Microchip FPGA Tools
|
|
---
|
|
|
|
# <span class="todo TODO">TODO</span> Installing via Portage
|
|
|
|
# Installing Manually
|
|
|
|
## Prerequisites
|
|
|
|
``` bash
|
|
sudo emerge -a sys-apps/lsb-release
|
|
```
|
|
|
|
### Download Libero
|
|
|
|
Download the latest version from
|
|
[here](https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/fpga/libero-software-later-versions).
|
|
|
|
``` bash
|
|
mkdir -p ~/Documents/MicrochipInstallers
|
|
cd ~/Documents/MicrochipInstallers
|
|
mv ~/Downloads/libero_soc_*.*_web_lin.zip .
|
|
unzip libero_soc_*.*_web_lin.zip
|
|
```
|
|
|
|
### Download SoftConsole
|
|
|
|
Download the latest version from
|
|
[here](https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/soc-fpga/softconsole).
|
|
|
|
``` bash
|
|
mkdir -p ~/Documents/MicrochipInstallers
|
|
cd ~/Documents/MicrochipInstallers
|
|
mv ~/Downloads/Microchip-SoftConsole-*.*-RISC-V-*-linux-x64-installer.run .
|
|
```
|
|
|
|
## Install
|
|
|
|
### Setup
|
|
|
|
``` bash
|
|
export INSTALL_DIR=/opt/microchip
|
|
sudo mkdir -p $INSTALL_DIR
|
|
sudo chown $USER:$USER $INSTALL_DIR
|
|
```
|
|
|
|
### Install Libero
|
|
|
|
Installer Directions:
|
|
|
|
- Install Directory:
|
|
$INSTALL_DIR/Libero_SoC\_\<version_major\>.\<version_minor\>
|
|
- Common Directory: $INSTALL_DIR/common
|
|
- Install Set: Everything
|
|
|
|
``` bash
|
|
cd ~/Documents/MicrochipInstallers
|
|
./Libero_SoC_*.*_Web.bin
|
|
```
|
|
|
|
1. Gentoo Specific Libero Fixes
|
|
|
|
When attempting to run
|
|
`/opt/microchip/Libero_SoC_v2024.1/Libero/bin64/libero`, you will
|
|
most likely be met with the following error:
|
|
|
|
``` example
|
|
Warning: You are running a version of Suse Linux that is not supported.
|
|
Please refer to Libero SoC Release Note for the detail of supported operating systems.
|
|
/opt/microchip/Libero_SoC_v2024.1/Libero/bin64/libero_bin: /opt/microchip/Libero_SoC_v2024.1/Libero/lib64/rhel/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /usr/lib64/libicuuc.so.74)
|
|
```
|
|
|
|
The way I chose to combat this was to delete all of the
|
|
`libstdc++.so.6` files that came with the tools and then supplying
|
|
the system's provides files via $LD_LIBRARY_PATH. I've also chosen
|
|
to do this with git commits so you don't have to start all over if
|
|
you mess up. The git parts are optional but recommended. (Thanks to
|
|
sam for helping me figure this out)
|
|
|
|
``` bash
|
|
cd /opt/microchip/Libero_SoC_*.*
|
|
git init
|
|
git add .
|
|
git commit -m "init"
|
|
find . -name "libstdc++.so.6" -type f -or -type l -delete
|
|
git add .
|
|
git commit -m "removed tool specific libstdc++.so.6 files"
|
|
# test it to make sure it launches
|
|
LD_LIBRARY_PATH="/usr/lib/gcc/x86_64-pc-linux-gnu/13" ./Libero/bin64/libero
|
|
```
|
|
|
|
This should launch and then give you an error saying license not
|
|
found. This is normal and will be fixed later in the guide.
|
|
|
|
### Install SoftConsole
|
|
|
|
``` bash
|
|
cd ~/Documents/MicrochipInstallers
|
|
./Microchip-SoftConsole-*.*-RISC-V-*-linux-x64-installer.run
|
|
```
|
|
|
|
## Post-Install
|
|
|
|
``` bash
|
|
sudo $INSTALL_DIR/Libero_SoC_*.*/Logs/req_to_install.sh
|
|
```
|
|
|
|
### Installing FlashPro Drivers
|
|
|
|
You need to have the FlashPro device to install these, so ignore this if
|
|
you don't have a FlashPro device.
|
|
|
|
1. FlashPro 5
|
|
|
|
``` bash
|
|
sudo $INSTALL_DIR/Libero_SoC_v2023.1/Libero/bin/udev_install
|
|
```
|
|
|
|
2. FlashPro 6
|
|
|
|
``` bash
|
|
sudo $INSTALL_DIR/Libero_SoC_v2023.1/Libero/bin/fp6_env_install
|
|
```
|
|
|
|
### Installing Your License
|
|
|
|
You can register for a microchip and request a year-long evaluation
|
|
license here:
|
|
<https://www.microchipdirect.com/login?redirectTo=%2Ffpga-software-products>
|
|
|
|
You'll want to get the **LIB-PL-MACID-F-EVAL** license, which is a
|
|
floating linux license.
|
|
|
|
``` bash
|
|
mkdir -p $INSTALL_DIR/Libero_SoC_v2023.1/license
|
|
cp /path/to/license /opt/microchip/Libero_SoC_v2023/license
|
|
```
|
|
|
|
### Installing the Licensing Daemon
|
|
|
|
``` bash
|
|
sudo cp scripts/libero-license.service /etc/systemd/user
|
|
```
|
|
|
|
# Install Yocto Ecosystem
|
|
|
|
## Prerequisites
|
|
|
|
``` bash
|
|
sudo emerge -pv gawk wget dev-vcs/git diffstat unzip sys-apps/texinfo chrpath socat libsdl xterm bmap-tools repo
|
|
```
|
|
|
|
``` bash
|
|
sudo emerge -a
|
|
```
|
|
|
|
## Create the Yocto Workspace
|
|
|
|
``` bash
|
|
mkdir yocto-dev && cd yocto-dev
|
|
repo init -u https://github.com/polarfire-soc/polarfire-soc-yocto-manifests.git -b main -m default.xml
|
|
```
|
|
|
|
## Update the repo workspace
|
|
|
|
``` bash
|
|
repo sync
|
|
repo rebase
|
|
```
|
|
|
|
## Setup the Bitbake environment
|
|
|
|
``` bash
|
|
. ./meta-polarfire-soc-yocto-bsp/polarfire-soc_yocto_setup.sh
|
|
```
|
|
|
|
## Optimize your build environment
|
|
|
|
Yocto builds take a very long time. We can optimize this.
|
|
|
|
``` bash
|
|
mkdir -p ${HOME}/.local/share/yocto/downloads
|
|
mkdir -p ${HOME}/.local/share/yocto/sstate-cache
|
|
mkdir -p ${HOME}/.local/share/yocto/persistent
|
|
cd <project_root>/build/conf/
|
|
|
|
|
|
echo '
|
|
BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"
|
|
PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count() - 1}"
|
|
DL_DIR = "${HOME}/.local/share/yocto/downloads"
|
|
SSTATE_DIR = "${HOME}/.local/share/yocto/sstate-cache"
|
|
PERSISTENT_DIR=${HOME/.local/share/yocto/persistent
|
|
SOURCE_MIRROR_URL ?= "file://${HOME}/.local/share/yocto/downloads"
|
|
INHERIT += "own-mirrors"
|
|
BB_GENERATE_MIRROR_TARBALLS = "1"
|
|
# uncomment to test sources
|
|
# BB_NO_NETWORK = "1"
|
|
|
|
# remove static deps
|
|
STATICLIBCONF = "--disable-static"
|
|
DISABLE_STATIC:pn-openssl = ""
|
|
DISABLE_STATIC:pn-openssl-native = ""
|
|
DISABLE_STATIC:pn-nativesdk-openssl = ""
|
|
DISABLE_STATIC:pn-libtalloc = ""
|
|
EXTRA_OECONF += "${STATICLIBCONF}"
|
|
' >> local.conf
|
|
```
|
|
|
|
## Build the Disk Image
|
|
|
|
``` bash
|
|
cd $PROOT
|
|
bitbake mpfs-dev-cli
|
|
```
|
|
|
|
# Creating a Bootable Yocto Linux Image
|
|
|
|
We have two options: Create a new workspace, or we can use this repo as
|
|
a workspace because this repo is my working workspace.
|
|
|
|
## Create a workspace (OPTIONAL)
|
|
|
|
mkdir yocto-dev && cd yocto-dev
|
|
repo init -u https://github.com/polarfire-soc/polarfire-soc-yocto-manifests.git -b main -m default.xml
|
|
|
|
## Update the repo workspace
|
|
|
|
``` bash
|
|
repo sync
|
|
repo rebase
|
|
```
|
|
|
|
## Set up the Bitbake environment
|
|
|
|
``` bash
|
|
. ./meta-polarfire-soc-yocto-bsp/polarfire-soc_yocto_setup.sh
|
|
```
|
|
|
|
## Building Board Disk Image
|
|
|
|
### Building a Linux Image with a root file system (RootFS)
|
|
|
|
``` bash
|
|
MACHINE=icicle-kit-es bitbake mpfs-dev-cli
|
|
```
|
|
|
|
### Building a RAM-based Root Filestystem
|
|
|
|
``` bash
|
|
MACHINE=icicle-kit-es bitbake -R conf/initramfs.conf mpfs-initramfs-image
|
|
```
|
|
|
|
### Building a Linux Image for an external QSPI flash memory
|
|
|
|
### Flashing an SD Card
|
|
|
|
``` bash
|
|
zcat build/tmp-glibc/deploy/images/icicle-kit-es/mpfs-dev-cli-icicle-kit-es.wic.gz | sudo dd of=/dev/sdX bs=4096 iflag=fullblock oflag=direct conv=fsync status=progress
|
|
```
|
|
|
|
# References
|
|
|
|
[PolarFire Yocto
|
|
Github](https://github.com/polarfire-soc/meta-polarfire-soc-yocto-bsp)
|