{"id":17648063,"url":"https://github.com/gpanders/zynqmp-boot-apps","last_synced_at":"2026-01-08T16:17:56.411Z","repository":{"id":102162684,"uuid":"193538036","full_name":"gpanders/zynqmp-boot-apps","owner":"gpanders","description":"Generate and install boot apps for the Zynq MPSoC device","archived":false,"fork":false,"pushed_at":"2019-08-08T19:01:45.000Z","size":12,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-05T09:51:57.914Z","etag":null,"topics":["mpsoc","xilinx","zcu102","zynq"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gpanders.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-24T16:08:06.000Z","updated_at":"2023-08-23T16:04:01.000Z","dependencies_parsed_at":"2023-07-11T17:17:14.052Z","dependency_job_id":null,"html_url":"https://github.com/gpanders/zynqmp-boot-apps","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpanders%2Fzynqmp-boot-apps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpanders%2Fzynqmp-boot-apps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpanders%2Fzynqmp-boot-apps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpanders%2Fzynqmp-boot-apps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gpanders","download_url":"https://codeload.github.com/gpanders/zynqmp-boot-apps/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246290583,"owners_count":20753724,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mpsoc","xilinx","zcu102","zynq"],"created_at":"2024-10-23T11:16:10.775Z","updated_at":"2026-01-08T16:17:56.376Z","avatar_url":"https://github.com/gpanders.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zynq MPSoC Boot Apps\n\nGenerate and install boot apps for the Zynq MPSoC device.\n\nThe scripts in this directory generate the following products:\n\n- First Stage Bootloader (fsbl)\n- Platform Management Unit Firmware (pmufw)\n- Device tree blob (system.dtb)\n- BOOT.bin file\n\nYou can think of this tool as a much lighter and less ~~bloated~~ feature-rich\nversion of PetaLinux. This tool is not meant to hold your hand and do everything\nfor you the way PetaLinux does, but rather enables you to use the command line\nto do many of the steps typically done in the Xilinx SDK GUI.\n\n## Prerequisites\n\nBefore using this tool you must first have created your hardware description\nfile in Vivado. This is done by creating a block design in Vivado with the Zynq\nIP and selecting `File` \u003e `Export Hardware` after compiling the bitstream. Make\nsure you check the \"Include bitstream\" box. Once you have generated your\nhardware description file, you can copy it into this directory.\n\nIn order to generate the BOOT.bin file you must also have built [U-Boot] and the\n[ARM Trusted Firmware (ATF)] separately. These are not included in this\nrepository because of their size and because they are often tailored for\nindividual needs.  Once you have built U-Boot and ATF, copy the `u-boot.elf` and\n`bl31.elf` files into this directory's `build` directory (you can create it if\nit does not already exist).\n\n## Usage\n\nSimply drop your hardware description file (.hdf) into this directory and run\n\n    $ make\n\nYou can set the version of the device tree generator to be used with the `VER`\nvariable:\n\n    $ make VER=2018.3\n\nIt is recommended to use the same version as the version of Vivado you used to\ncreate your design.\n\n## Install to SD card\n\nTo install the output products to your SD card's boot partition, mount the\npartition to a location on your host computer (e.g. `/media/sd/boot`) and run\n\n    $ sudo make INSTALL_DIR=/media/sd/boot install\n\nreplacing `/media/sd/boot` with your actual mount point.\n\n[U-Boot]: https://github.com/Xilinx/u-boot-xlnx\n[ARM Trusted Firmware (ATF)]: https://github.com/Xilinx/arm-trusted-firmware.git\n\n## Example\n\nBelow is an example of using this tool from start to finish with a design\ncreated in Vivado 2018.3. **This is an example and file names and invocations\nmay change for your own needs**.\n\nStart in your home directory.\n```console\n$ cd ~\n```\n\nClone all required repositories.\n```console\n$ git clone https://github.com/Xilinx/u-boot-xlnx\n$ git clone https://github.com/Xilinx/arm-trusted-firmware\n$ git clone https://github.com/gpanders/zynqmp-boot-apps\n```\n\nSource the setup script provided with your SDK installation.\n```console\n$ source /opt/Xilinx/SDK/2018.3/settings64.sh\n$ export CROSS_COMPILE=\"aarch64-linux-gnu-\"\n```\n\nBuild U-Boot. Be sure to checkout the tag corresponding to your version of\nVivado.\n```console\n$ cd ~/u-boot-xlnx\n$ git checkout tags/xilinx-v2018.3\n$ make xilinx_zynqmp_zcu102_rev1_0_defconfig\n$ make -j8\n```\n\nBuild the ARM Trusted Firmware. Again, checkout the correct tag.\n```console\n$ cd ~/arm-trusted-firmware\n$ git checkout tags/xilinx-v2018.3\n$ make PLAT=zynqmp -j8 all\n```\n\nNavigate to this repository and copy all required files.\n```console\n$ cd ~/zynqmp-boot-apps\n$ cp /path/to/hdf_file.hdf .\n$ mkdir build\n$ cp ~/u-boot-xlnx/u-boot.elf ~/arm-trusted-firmware/build/zynqmp/release/bl31/bl31.elf build/\n```\n\nMount your SD card's boot partition.\n```console\n$ sudo mkdir -p /media/sd/boot\n$ sudo mount /dev/sdc1 /media/sd/boot\n```\n\nMake and install the boot files.\n```console\n$ make VER=2018.3\n$ sudo make INSTALL_DIR=/media/sd/boot install\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpanders%2Fzynqmp-boot-apps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgpanders%2Fzynqmp-boot-apps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpanders%2Fzynqmp-boot-apps/lists"}