Skip to content

nocnokneo/meta-mender-zynq

 
 

Repository files navigation

meta-mender-zynq

The Repository

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

Supported Boards

  • Trenz TE0715-04 Module with Trenz TE0706-02 Carrier

Dependencies

  • Xilinx Petalinux 2018.3
  • Mender
    • Golang
  • hdf file (Likely generated by Xilinx Vivado 2018.3)

Configuration

  • 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
  • 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
  • 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"
  • [OPTIONAL] Configure project to place FPGA programming file in <rootfs>/boot/ folder
    • echo "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"

Building

  • petalinux-build

Deployment

  • sudo dd bs=4M if=build/tmp/deploy/images/<machine_name>/<image_name>.sdimg of=/dev/sdX status=progress
    • where sdX is the SDCard

About

OpenEmbedded/Yocto/Petalinux layer for adding support of Mender

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • BitBake 88.1%
  • Pascal 9.4%
  • C++ 2.5%