I would like some help determining the development process for the MiniZed. Essentially, I am trying to create my own custom verilog code as well as C code, while still having petalinux and WiFi functionality. Currently I am trying my best to follow the "Integrating Sensors on MiniZed with PetaLinux (2017.1 and 2017.4)" tutorial. My problem with this tutorial is that too many of the files are pre-generated. Specifically, LAB1 shows how to create a boot.bin file for QSPI programming and then LAB2 shows how to program the image.ub into the emmc, but it also includes a bootemmc.bin file. As far as I understand, the bootemmc.bin file is also reprogramming the QSPI flash. Is there is difference between boot.bin of LAB1 and bootemmc.bin of LAB2? Maybe I am missing something, but I cannot seem to find how to generate the bootemmc.bin file. How is this possible?
I would like to generate a base project where I can develop my own PL and PS code. What I have tried so far:
1. Generate a project using petalinux-create using the bsp "MiniZed.bsp 2018.2 (BSP for booting from QSPI flash to eMMC)"
2. When I open the Vivado project created by this command the following files are missing:
3. I found these missing files at https://github.com/Avnet/hdl and inserted them where Vivado was looking for them. Why is this necessary or how do I handle this properly?
4. Bit stream in Vivado was then successfully generated. Now I know I could edit the hardware design and it would successfully generate the bit and hdf files.
5. Exported the necessary HDF from Vivado and ran petalinux-config using the newly generated .hdf file
6. Exited the "Xilinx PetaLinux configuration editor" without changing anything
7. Ran petalinux-build
8. Now this is where some confusion comes into play:
a) the petalinux-build command generated a boot.bin file without running boot_gen.sh! So, I tried programming this boot.bin file using "exec program_flash -f boot.bin -fsbl zynq_fsbl.elf -flash_type qspi_single" (on Windows). The "zynq_fsbl.elf" was also taken from the generated files from petalinux-build. This messed up the system enough that I got error "Zynq> ERROR: [Xicom 50-186] Error while detecting SPI flash device - unrecognized JEDEC id bytes: 00, 00, 00" when trying to follow "Restoring MiniZed to the Factory State" using XSCT (on Windows). I had to use the "Programming the QSPI Flash from the Vivado Hardware Manager" section of that file to get it back to normal (again on Windows).
b) I adapted the boot_gen.sh script to work with my project. I thought maybe the starting addresses were incorrect in the boot.bin file generated purely from petalinux-build. In this case when using the Vivado Hardware Manager on Windows to program the flash using this boot.bit file, I get the error. "ERROR: [Labtools 27-3347] Flash Programming Unsuccessful: Program File Size cannot be greater than flash part size".
c) I have not tried using petalinux-package as this was not used in any of Avnet's documentation (besides generating BSPs, from what I've seen).
This is my current attempt and thought process. I will follow LAB6 of "Integrating Sensors on MiniZed with PetaLinux (2017.1 and 2017.4)" to add my own C application, once I get there. For now, I want to to be able to generate the bootemmc.bin and image.ub files for a QSPI and eMMC build using the "MiniZed.bsp 2018.2 (BSP for booting from QSPI flash to eMMC)" as a basis. I am unsure if I am going about this correctly. Feel free to give me any suggestions and pointers you seem necessary.
Furthermore, running any of the MiniZed scripts at https://github.com/Avnet/hdl does nothing on both Windows and linux.
I am running Vivado 2018.2 on WIndows 10
I used the prebuilt virtual box image file for Ubuntu 16.04. I had to update some files to properly run Vivado/SDK 2018.2. I also installed petalinux 2018.2 tools.
Thanks for your help,