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.
 
penguin dbf5620265 add todos 9 months ago
doc/img add doc 1 year ago
scripts checkpoint 9 months ago
.gitignore update env 1 year ago
README.md update readme, mostly mediawiki updates 9 months ago
README.mw update readme, mostly mediawiki updates 9 months ago
README.org add todos 9 months ago

README.md

Table of Contents

  1. Installing via Portage
  2. Installing Manually
    1. Prerequisites
      1. Download Libero
      2. Download SoftConsole
    2. Install
      1. Setup
      2. Install Libero
      3. Install SoftConsole
    3. Post-Install
      1. Installing FlashPro Drivers
      2. Installing Your License
      3. Installing the Licensing Daemon
  3. Install Yocto Ecosystem
    1. Prerequisites
    2. Create the Yocto Workspace
    3. Update the repo workspace
    4. Setup the Bitbake environment
    5. Optimize your build environment
    6. Build the Disk Image
  4. Creating a Bootable Yocto Linux Image
    1. Create a workspace (OPTIONAL)
    2. Update the repo workspace
    3. Set up the Bitbake environment
    4. Building Board Disk Image
      1. Building a Linux Image with a root file system (RootFS)
      2. Building a RAM-based Root Filestystem
      3. Building a Linux Image for an external QSPI flash memory
      4. Flashing an SD Card
  5. References

TODO Installing via Portage

Installing Manually

Prerequisites

sudo emerge -a sys-apps/lsb-release

Download Libero

Download the latest version from here.

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.

mkdir -p ~/Documents/MicrochipInstallers
cd ~/Documents/MicrochipInstallers
mv ~/Downloads/Microchip-SoftConsole-*.*-RISC-V-*-linux-x64-installer.run .

Install

Setup

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

    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:

    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 systems provides files via $LD_LIBRARY_PATH. Ive also chosen to do this with git commits so you dont 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)

    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

cd ~/Documents/MicrochipInstallers
./Microchip-SoftConsole-*.*-RISC-V-*-linux-x64-installer.run

Post-Install

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 dont have a FlashPro device.

  1. FlashPro 5

    sudo $INSTALL_DIR/Libero_SoC_v2023.1/Libero/bin/udev_install
    
  2. FlashPro 6

    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

Youll want to get the LIB-PL-MACID-F-EVAL license, which is a floating linux license.

mkdir -p $INSTALL_DIR/Libero_SoC_v2023.1/license
cp /path/to/license /opt/microchip/Libero_SoC_v2023/license

Installing the Licensing Daemon

sudo cp scripts/libero-license.service /etc/systemd/user

Install Yocto Ecosystem

Prerequisites

sudo emerge -pv gawk wget dev-vcs/git diffstat unzip sys-apps/texinfo chrpath socat libsdl xterm bmap-tools repo

sudo emerge -a

Create the Yocto Workspace

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

repo sync
repo rebase

Setup the Bitbake environment

. ./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.

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

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

repo sync
repo rebase

Set up the Bitbake environment

. ./meta-polarfire-soc-yocto-bsp/polarfire-soc_yocto_setup.sh

Building Board Disk Image

Building a Linux Image with a root file system (RootFS)

MACHINE=icicle-kit-es bitbake mpfs-dev-cli

Building a RAM-based Root Filestystem

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

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. PolarFire Yocto Github