Welcome to the meta-mender-zynq Repo. This layer contains mender specific integrations for Xilinx Zynq 7000 hardware, for Over The Air (OTA) software update support of Xilinx Petalinux (Yocto) based Zynq 7000 builds.
See integration details in the Mender Hub Page
- Trenz TE0715-04 Module with Trenz TE0706-02 Carrier
- Xilinx Petalinux 2018.3
- Mender
- Golang
- hdf file (Likely generated by Xilinx Vivado 2018.3)
- Create user layer directory
mkdir <projectdir>/components/ext_source/
- Download this layer
cd <projectdir>/components/ext_source/
git clone https://github.com/reachBAM/meta-mender-zynq.git
- Download mender layer
cd <projectdir>/components/ext_source/
git clone https://github.com/mendersoftware/meta-mender.git
cd meta-mender
git checkout rocko
- Patch Mender
git apply ../meta-mender-zynq/patches/Mender_No_Dtb_Fix.patch
- This patch provides a mechanism for avoiding a compile error because Zynq puts the dtb file inside a fitimage
- Recommendation taken from Mender Hub Page
- Run
petalinux-config
- cd
<projectdir>
- Add mender layers
- Yocto Settings --->
- User Layers --->
- ${PROOT}/components/ext_source/meta-mender/meta-mender-core
- ${PROOT}/components/ext_source/meta-mender-zynq
- Exit
- Exit
- Disable automatic u-boot environmental settings
- Subsystem AUTO Hardware Settings --->
- Advanced bootable images storage Settings --->
- u-boot env partition settings --->
- image storage media --->
- set to manual
- Exit
- Exit
- Exit
- Exit
- cd
- Enable Mender in root filesystem
echo "CONFIG_mender=y" >> project-spec/configs/rootfs_config
- Enable Mender in petalinux-build
echo "IMAGE_INSTALL_append = " mender"" >> project-spec/meta-user/recipes-core/images/petalinux-image-full.bbappend
- Modify bootargs in project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
- Change
bootargs = "... root=XXX ...
to bootargs = "... root=${mender_kernel_root} ...
- Note this only applies if you are overriding the boot args in the device tree
- Alternatively, Petalinux may be defining it in
components/plnx_workspace/device-tree/device-tree/system-user.dtsi
- TODO: Provide example when not using device tree
- Change
- Add golang recipe
- TBD
- Apply petalinuxbsp.conf.append
- Copy and paste file contents to bottom of project-spec/meta-user/conf/petalinuxbsp.conf
- Configure project to generate hardware boot file and place on boot partition
- Set path to hdf file in project-spec/meta-user/conf/petalinuxbsp.conf
- Needs to be full path to hdf file generated by Xilinx Vivado tools
HDF_PATH = "/home/<user>/.../<filename>.hdf"
- Set path to hdf file in project-spec/meta-user/conf/petalinuxbsp.conf
- [OPTIONAL] Configure project to place FPGA programming file in
<rootfs>/boot/
folderecho "CONFIG_fpgabin=y" >> project-spec/configs/rootfs_config
echo "IMAGE_INSTALL_append = " fpgabin"" >> project-spec/meta-user/recipes-core/images/petalinux-image-full.bbappend
- Set artifact name in project-spec/meta-user/conf/petalinuxbsp.conf
MENDER_ARTIFACT_NAME="Example"
- Set SDCard Size in project-spec/meta-user/conf/petalinuxbsp.conf
MENDER_STORAGE_TOTAL_SIZE_MB="30436"
petalinux-build
sudo dd bs=4M if=build/tmp/deploy/images/<machine_name>/<image_name>.sdimg of=/dev/sdX status=progress
- where sdX is the SDCard