4 ms·
Yeah, sure! I'm a watchmaking engineer, so clearly not the primary target of those kind of boards. We had electronic engineering course at school, as we are sup
by grp 10y ago
Yeah, sure! I'm a watchmaking engineer, so clearly not the primary target of those kind of boards.
We had electronic engineering course at school, as we are supposed to also develop quartz watches.
And hardcore user of linux for nearly 12 years. For example, I managed to replace the firmware of my ISP propreitary router nearly without any documentation (not supported by openwrt and co).
But I wasted days to try to understand the xilinx way we are supposed to use.
Every tutorials (I found) just explain how to install the vivado toolchain and stop there. So I assumed they had the same problems...
Do you have more recommendations, please?
- planteen 10y agoWhich board did you buy? Most of them (Zedboard, Zybo, MicroZed) come with a Linux kernel already burned in QSPI flash. Make sure the jumpers are set for QSPI boot (not SD card). Plug in to the USB serial CDC port to see the prints. The system should boot to a login, password is usually root. Now, download and install the Xilinx SDK. Write a hello world program. Run the settings64.sh script that was installed to get the toolchain in your path. Compile the code with arm-xilinx-linux-gnueabi-gcc. Put the output ELF file on a SD card. Insert the SD card to your board, mount it, chmod +x your exe, then execute it. If your board didn't come with Linux, find a prebuilt kernel and put it on a SD card. There are usually just two files you need, BOOT.BIN and image.ub. Try reading the Xilinx Petalinux documentation. It's quite good. Also try Sven's Zynq tutorials. Finally, the Zynq has a complex bootloader architecture. If you want to run bare metal, your bare metal app can run in place of the SSBL (U-Boot). And you don't need to load the FPGA at first, the Zynq works fine if the PL is not configured
- rjsw 10y agoA Zynq board isn't all that different from your router. When it powers up, the CPU reads the bootloader, typically u-boot, from somewhere and starts running it. The bootloader then reads the kernel from somewhere, maybe a ramdisk too and starts running Linux. The only difference with the Zynq is that before jumping into the kernel the bootloader will read the FPGA bitstream from somewhere and reconfigure the chip. The design of the board itself will tell the CPU where to look for the bootloader, the location of the files for subsequent stages will come from what defaults had been compiled into the bootloader or from an external config file. If you are already comfortable with cross-compiling Linux then you can just build a kernel from the official tree [1] and add it to the sample SDCard image. You may as well download the Xilinx SDK to get a pre-built cross-compiler. One thing that I find helps is to have a SDCard reader/writer for the desktop or laptop that I'm using as my development machine. [1] https://github.com/Xilinx/linux-xlnx https://github.com/Xilinx/linux-xlnx