mmr-kria-os
is an OpenEmbedded-based operating system which addresses the challenges of packaging a Linux distribution for an asymmetric MP platform, such as Kria KR260, in the automotive environment.
- Install host dependencies: https://docs.yoctoproject.org/ref-manual/system-requirements.html#required-packages-for-the-build-host
- Download this repo with related submodules:
git clone --recurse-submodules -j12 https://github.com/EdoardoTorrini/mmr-kria-os
- Install extra dependencies by running:
sudo apt install < apt_dependencies.txt
- Edit
DL_DIR
,SSTATE_DIR
,TMPDIR
,HDF_PATH
in local.conf if necessary. These parameters will allow you to place downloads, sstate and tmp dirs in a folder different from build (the default one) - Source BitBake environment:
source setupsdk
- Build as much recipes as possible with:
bitbake -k kria-image-mmr
- Fix failed recipes
The default location of hardware description file, in the form of XSA file, is platform/platform.xsa, according to the default configuration of local.conf. Replace this file to change hardware description.
You may need to run bitbake -c cleanall pmu-firmware fsbl-firmware
after it.
bitbake -k kria-image-mmr
is the suggested command to build kria image.
Run bitbake -c cleanall pmu-firmware fsbl-firmware device-tree
whenever platform.xsa changes.
My image runs well on QEMU, but doesn't work on the real board. QEMU is good at validating images up to the platform description (userspace is ok, u-boot and device tree too) but cannot simulate boundary blocks such as PMU and FPGA. So, if your design describes peripherals such as CAN controller or GPIO, make sure to upload the boot firmware (BOOT.bin) on PMU through
xmutil bootfw_update -i BOOT.bin
, otherwise power domain errors will arise.
My new platform boots on QEMU, but doesn't boot on the devboard There can be several reasons. The most likely one is that you are running an image that expects a FPGA bitstream coherent with its device tree. Is there a bitstream (.bit) in your BOOT.bin? check it with
bootgen -read BOOT.bin
Have you uploaded the boot firmware to the PM Unit? Runxmutil bootfw_update -i BOOT.bin
. If the current image doesn't boot, run another image, flash BOOT.bin and then try again.