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

8 months ago
---
author: Penguin
date: 06/19/23
8 months ago
title: Installing Microchip FPGA Tools
8 months ago
---
1 year ago
8 months ago
# <span class="todo TODO">TODO</span> Installing via Portage
1 year ago
8 months ago
# Installing Manually
1 year ago
8 months ago
## Prerequisites
1 year ago
8 months ago
``` bash
sudo emerge -a sys-apps/lsb-release
```
1 year ago
8 months ago
### Download Libero
1 year ago
8 months ago
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).
1 year ago
8 months ago
``` bash
8 months ago
mkdir -p ~/Documents/MicrochipInstallers
cd ~/Documents/MicrochipInstallers
mv ~/Downloads/libero_soc_*.*_web_lin.zip .
unzip libero_soc_*.*_web_lin.zip
8 months ago
```
1 year ago
8 months ago
### 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
8 months ago
Installer Directions:
1 year ago
8 months ago
- 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
```
1 year ago
8 months ago
## Post-Install
1 year ago
8 months ago
``` bash
8 months ago
sudo $INSTALL_DIR/Libero_SoC_*.*/Logs/req_to_install.sh
8 months ago
```
1 year ago
8 months ago
### Installing FlashPro Drivers
1 year ago
8 months ago
You need to have the FlashPro device to install these, so ignore this if
you don't have a FlashPro device.
1 year ago
8 months ago
1. FlashPro 5
1 year ago
8 months ago
``` bash
8 months ago
sudo $INSTALL_DIR/Libero_SoC_v2023.1/Libero/bin/udev_install
8 months ago
```
1 year ago
8 months ago
2. FlashPro 6
1 year ago
8 months ago
``` bash
8 months ago
sudo $INSTALL_DIR/Libero_SoC_v2023.1/Libero/bin/fp6_env_install
8 months ago
```
1 year ago
8 months ago
### Installing Your License
1 year ago
8 months ago
You can register for a microchip and request a year-long evaluation
8 months ago
license here:
<https://www.microchipdirect.com/login?redirectTo=%2Ffpga-software-products>
1 year ago
8 months ago
You'll want to get the **LIB-PL-MACID-F-EVAL** license, which is a
8 months ago
floating linux license.
1 year ago
8 months ago
``` bash
8 months ago
mkdir -p $INSTALL_DIR/Libero_SoC_v2023.1/license
cp /path/to/license /opt/microchip/Libero_SoC_v2023/license
8 months ago
```
1 year ago
8 months ago
### Installing the Licensing Daemon
1 year ago
8 months ago
``` bash
sudo cp scripts/libero-license.service /etc/systemd/user
```
1 year ago
8 months ago
# Install Yocto Ecosystem
1 year ago
8 months ago
## Prerequisites
1 year ago
8 months ago
``` bash
8 months ago
sudo emerge -pv gawk wget dev-vcs/git diffstat unzip sys-apps/texinfo chrpath socat libsdl xterm bmap-tools repo
```
``` bash
sudo emerge -a
8 months ago
```
1 year ago
8 months ago
## Create the Yocto Workspace
1 year ago
8 months ago
``` 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
```
1 year ago
8 months ago
## 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
```
1 year ago
8 months ago
# Creating a Bootable Yocto Linux Image
1 year ago
8 months ago
We have two options: Create a new workspace, or we can use this repo as
a workspace because this repo is my working workspace.
1 year ago
8 months ago
## Create a workspace (OPTIONAL)
1 year ago
8 months ago
mkdir yocto-dev && cd yocto-dev
repo init -u https://github.com/polarfire-soc/polarfire-soc-yocto-manifests.git -b main -m default.xml
1 year ago
8 months ago
## Update the repo workspace
1 year ago
8 months ago
``` bash
repo sync
repo rebase
```
1 year ago
8 months ago
## Set up the Bitbake environment
1 year ago
8 months ago
``` bash
. ./meta-polarfire-soc-yocto-bsp/polarfire-soc_yocto_setup.sh
```
1 year ago
8 months ago
## Building Board Disk Image
1 year ago
8 months ago
### Building a Linux Image with a root file system (RootFS)
1 year ago
8 months ago
``` bash
MACHINE=icicle-kit-es bitbake mpfs-dev-cli
```
1 year ago
8 months ago
### Building a RAM-based Root Filestystem
1 year ago
8 months ago
``` bash
MACHINE=icicle-kit-es bitbake -R conf/initramfs.conf mpfs-initramfs-image
```
1 year ago
8 months ago
### Building a Linux Image for an external QSPI flash memory
1 year ago
8 months ago
### 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
1 year ago
8 months ago
[PolarFire Yocto
Github](https://github.com/polarfire-soc/meta-polarfire-soc-yocto-bsp)