====== Deploying ======
As soon as you are done with your development, you can deploy it. This means loading it onto a SD card together with a FPGA configuration. Alternatively, you can program it into the on-board QSPI flash device. We strongly recommend using the SD card and reserving the QSPI flash for use with [[firstexample:first_example_microzed_appdev|Application Development]].
The application and configuration of the FPGA are loaded from the SD card or the flash device upon power-up. Make sure to specify a PL configuration, see 2. below.
===== Step by Step Instructions =====
- Create a deep project and setup the project configuration as given in [[first_example_microzed|Hello World on the Avnet MicroZed Board]].
- Choose a configuration for the FPGA part to be included into the resulting image. \\ {{ chooseplfile.png?350 |}}. \\ Available configurations can be found under [[https://wiki.bu.ost.ch/infoportal/embedded_systems/zynq7000/microzed#configuration_files|Configuration Files]]. You can use relative or absolute paths.
- When creating the run configuration, set the target configuration to //boot from flash memory// {{ runconfigurationmicrozedflash.png?400 |}}.
- Running the configuration will create two flash files. Its location is given by the image file setting in the configuration. They carry the names //*.ExternalFlash.mcs// and //BOOT.bin//. Running the configuration will try to open a connection to the target if a programmer is chosen, such as //OpenOCD//. Make sure to remove the programmer, if you have no programmer present.
- Now, you have to choose between using a SD card or the QSPI flash.
==== Using the SD Card ====
- Copy the above generated file //BOOT.bin// onto a SD card. The card must be formatted with FAT32.
- Set the jumpers on your MicroZed board as follows \\ {{ sdboot.png?200 |}}. \\ This will boot the device from the SD card.
- Cycle the power. The settings of the jumpers will be read only at power-on! Hence, make sure to cycle the supply power after changing the jumper settings. A soft reset (through the JTAG or by pressing the reset button on the board) will reset the board but will not sample the boot mode pins connected to the jumpers.
==== Using the QSPI Flash ====
- Follow the steps given in [[firstexample:boot_loader#flashing_a_new_boot_loader|Flashing a new Boot Loader]]. However, instead of loading the configuration file -f \\ost.ch\dfs\bsc.sys\public-programme\deep\lib\rsc\BOOTflink2.mcs
you have to load your own binary image -f MyProject\App.ExternalFlash.mcs
.
- Set the jumpers on your MicroZed board as follows \\ {{ qspiboot.png?200 |}}. \\ This will boot the device from the QSPI flash.
- Cycle the power. The settings of the jumpers will be read only at power-on! Hence, make sure to cycle the supply power after changing the jumper settings. A soft reset (through the JTAG or by pressing the reset button on the board will reset the board but will not sample the boot mode pins connected to the jumpers.
===== How Does the System Boot? =====
- reset (by power-on or reset button)
- load and run first stage boot loader from flash
- configuration of PLL, clocks, DDR
- load PL
- copy application to DDR memory
- handoff to address 0x100000