-
*Common Directory: $INSTALL\_DIR/common
-
*Install Set: Everything
- cd ~/Documents/MicrochipInstallers
- ./Libero_SoC_*.*_Web.bin
-
+{{Cmd|cd ~/Documents/MicrochipInstallers}}
+{{Cmd|./Libero_SoC_*.*_Web.bin}}
==== 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)
+{{Cmd|/opt/microchip/Libero_SoC_v2024.1/Libero/bin64/libero|output=
+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)
-
- 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
+{{Cmd|cd /opt/microchip/Libero_SoC_*.*}}
+{{Cmd|git init}}
+{{Cmd|git add .}}
+{{Cmd|git commit -m "init"}}
+{{Cmd|find . -name "libstdc++.so.6" -type f -or -type l -delete}}
+{{Cmd|git add .}}
+{{Cmd|git commit -m "removed tool specific libstdc++.so.6 files"}}
+{{Cmd|# 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
-
+{{Cmd|cd ~/Documents/MicrochipInstallers}}
+{{Cmd|./Microchip-SoftConsole-*.*-RISC-V-*-linux-x64-installer.run}}
== Post-Install ==
- sudo $INSTALL_DIR/Libero_SoC_*.*/Logs/req_to_install.sh
-
+{{RootCmd|$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.
-
==== FlashPro 5 ====
- sudo $INSTALL_DIR/Libero_SoC_v2023.1/Libero/bin/udev_install
-
+{{RootCmd|$INSTALL_DIR/Libero_SoC_v2023.1/Libero/bin/udev_install}}
==== FlashPro 6 ====
- sudo $INSTALL_DIR/Libero_SoC_v2023.1/Libero/bin/fp6_env_install
-
+{{RootCmd|$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.
- mkdir -p $INSTALL_DIR/Libero_SoC_v2023.1/license
- cp /path/to/license /opt/microchip/Libero_SoC_v2023/license
-
+{{Cmd|mkdir -p $INSTALL_DIR/Libero_SoC_v2023.1/license}}
+{{Cmd|cp /path/to/license /opt/microchip/Libero_SoC_v2023/license}}
=== Installing the Licensing Daemon ===
- sudo cp scripts/libero-license.service /etc/systemd/user
-
+{{RootCmd|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
+{{RootCmd|emerge -av gawk wget dev-vcs/git diffstat unzip sys-apps/texinfo chrpath socat libsdl xterm bmap-tools repo}}
== 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
-
+{{Cmd|mkdir yocto-dev && cd yocto-dev}}
+{{Cmd|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
-
+{{Cmd|repo sync}}
+{{Cmd|repo rebase}}
== Setup the Bitbake environment ==
- . ./meta-polarfire-soc-yocto-bsp/polarfire-soc_yocto_setup.sh
-
+{{Cmd|. ./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 /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
+{{Cmd|mkdir -p "$HOME/.local/share/yocto/downloads"}}
+{{Cmd|mkdir -p "$HOME/.local/share/yocto/sstate-cache"}}
+{{Cmd|mkdir -p "$HOME/.local/share/yocto/persistent"}}
+{{Cmd|cd /build/conf/}}
+
+Append the following to =/build/conf/local.conf= to disable static dependencies and set up non-temporary directories for your yocto build artifacts to live.
+{{FileBox|filename=local.conf|lang=bash|1=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}"
+}}
== Build the Disk Image ==
- cd $PROOT
- bitbake mpfs-dev-cli
-
+{{Cmd|cd $PROOT}}
+{{Cmd|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
-
+{{Cmd|mkdir yocto-dev && cd yocto-dev}}
+{{Cmd|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
-
+{{Cmd|repo sync}}
+{{Cmd|repo rebase}}
== Set up the Bitbake environment ==
- . ./meta-polarfire-soc-yocto-bsp/polarfire-soc_yocto_setup.sh
-
+{{Cmd|. ./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
-
+{{Cmd|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
-
+{{Cmd|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
-
+{{Cmd|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] ====
diff --git a/README.org b/README.org
index 661bac7..04c484b 100644
--- a/README.org
+++ b/README.org
@@ -11,14 +11,14 @@
* TODO Installing via Portage
* Installing Manually
** Prerequisites
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
sudo emerge -a sys-apps/lsb-release
#+end_src
*** 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]].
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
mkdir -p ~/Documents/MicrochipInstallers
cd ~/Documents/MicrochipInstallers
mv ~/Downloads/libero_soc_*.*_web_lin.zip .
@@ -27,7 +27,7 @@ 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]].
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
mkdir -p ~/Documents/MicrochipInstallers
cd ~/Documents/MicrochipInstallers
mv ~/Downloads/Microchip-SoftConsole-*.*-RISC-V-*-linux-x64-installer.run .
@@ -36,7 +36,7 @@ mv ~/Downloads/Microchip-SoftConsole-*.*-RISC-V-*-linux-x64-installer.run .
** Install
*** Setup
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
export INSTALL_DIR=/opt/microchip
sudo mkdir -p $INSTALL_DIR
sudo chown $USER:$USER $INSTALL_DIR
@@ -48,7 +48,7 @@ Installer Directions:
- Common Directory: $INSTALL_DIR/common
- Install Set: Everything
-#+begin_src bash :noeval
+#+begin_src bash :eval no
cd ~/Documents/MicrochipInstallers
./Libero_SoC_*.*_Web.bin
#+end_src
@@ -63,7 +63,7 @@ Warning: You are running a version of Suse Linux that is not supported.
#+end_example
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)
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
cd /opt/microchip/Libero_SoC_*.*
git init
git add .
@@ -78,14 +78,14 @@ 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
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
cd ~/Documents/MicrochipInstallers
./Microchip-SoftConsole-*.*-RISC-V-*-linux-x64-installer.run
#+end_src
** Post-Install
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
sudo $INSTALL_DIR/Libero_SoC_*.*/Logs/req_to_install.sh
#+end_src
@@ -93,12 +93,12 @@ sudo $INSTALL_DIR/Libero_SoC_*.*/Logs/req_to_install.sh
You need to have the FlashPro device to install these, so ignore this if you don't have a FlashPro device.
**** FlashPro 5
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
sudo $INSTALL_DIR/Libero_SoC_v2023.1/Libero/bin/udev_install
#+end_src
**** FlashPro 6
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
sudo $INSTALL_DIR/Libero_SoC_v2023.1/Libero/bin/fp6_env_install
#+end_src
@@ -107,47 +107,43 @@ You can register for a microchip and request a year-long evaluation license here
You'll want to get the *LIB-PL-MACID-F-EVAL* license, which is a floating linux license.
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
mkdir -p $INSTALL_DIR/Libero_SoC_v2023.1/license
cp /path/to/license /opt/microchip/Libero_SoC_v2023/license
#+end_src
*** Installing the Licensing Daemon
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
sudo cp scripts/libero-license.service /etc/systemd/user
#+end_src
* Install Yocto Ecosystem
** Prerequisites
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
sudo emerge -pv gawk wget dev-vcs/git diffstat unzip sys-apps/texinfo chrpath socat libsdl xterm bmap-tools repo
#+end_src
-#+begin_src bash :noeval
-sudo emerge -a
-#+end_src
-
** Create the Yocto Workspace
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
mkdir yocto-dev && cd yocto-dev
repo init -u https://github.com/polarfire-soc/polarfire-soc-yocto-manifests.git -b main -m default.xml
#+end_src
** Update the repo workspace
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
repo sync
repo rebase
#+end_src
** Setup the Bitbake environment
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
. ./meta-polarfire-soc-yocto-bsp/polarfire-soc_yocto_setup.sh
#+end_src
** Optimize your build environment
Yocto builds take a very long time. We can optimize this.
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
mkdir -p ${HOME}/.local/share/yocto/downloads
mkdir -p ${HOME}/.local/share/yocto/sstate-cache
mkdir -p ${HOME}/.local/share/yocto/persistent
@@ -177,7 +173,7 @@ EXTRA_OECONF += "${STATICLIBCONF}"
#+end_src
** Build the Disk Image
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
cd $PROOT
bitbake mpfs-dev-cli
#+end_src
@@ -189,38 +185,38 @@ 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)
-#+begin_src
+#+begin_src bash :exports code :eval no
mkdir yocto-dev && cd yocto-dev
repo init -u https://github.com/polarfire-soc/polarfire-soc-yocto-manifests.git -b main -m default.xml
#+end_src
** Update the repo workspace
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
repo sync
repo rebase
#+end_src
** Set up the Bitbake environment
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
. ./meta-polarfire-soc-yocto-bsp/polarfire-soc_yocto_setup.sh
#+end_src
** Building Board Disk Image
*** Building a Linux Image with a root file system (RootFS)
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
MACHINE=icicle-kit-es bitbake mpfs-dev-cli
#+end_src
*** Building a RAM-based Root Filestystem
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
MACHINE=icicle-kit-es bitbake -R conf/initramfs.conf mpfs-initramfs-image
#+end_src
*** Building a Linux Image for an external QSPI flash memory
*** Flashing an SD Card
-#+begin_src bash :noeval
+#+begin_src bash :exports code :eval no
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
#+end_src
* References