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.

170 lines
6.4 KiB
Plaintext

= TODO Installing via Portage =
= Installing Manually =
== Prerequisites ==
sudo emerge -a sys-apps/lsb-release app-crypt/mit-krb5
=== Download Libero ===
Download the latest version from [https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/fpga/libero-software-later-versions 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 [https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/soc-fpga/softconsole here].
mkdir -p ~/Documents/MicrochipInstallers
cd ~/Documents/MicrochipInstallers
mv ~/Downloads/Microchip-SoftConsole-*.*-RISC-V-*-linux-x64-installer.run .
{{RootCmd|a command}}
== 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
==== Gentoo Specific Libero Fixes ====
When attempting to run <tt>/opt/microchip/Libero_SoC_v2024.1/Libero/bin64/libero</tt>, 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 <tt>libstdc++.so.6</tt> files that came with the tools and then supplying the system&rsquo;s provides files via $LD\_LIBRARY\_PATH. I&rsquo;ve also chosen to do this with git commits so you don&rsquo;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)
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 don&rsquo;t have a FlashPro device.
==== FlashPro 5 ====
sudo $INSTALL_DIR/Libero_SoC_v2023.1/Libero/bin/udev_install
==== 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
You&rsquo;ll 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 =
==== [https://github.com/polarfire-soc/meta-polarfire-soc-yocto-bsp PolarFire Yocto Github] ====