11-22-2019 06:03 AM
I would like to know how to deal with burning the software images in my board during production.
My board is based on Zynq XC7Z020. It has a QSPI flash that is intended to store the secondary boot loader (U-Boot) and OS image(s). There is also a u-SD socket on board. At the moment, it is being used as the main boot device for development purposes but our intention is using it to store logs and other variable information (e.g. non critical configuration). An on-board dip-switch allows to choose the boot device (SD, QSPI or JTAG).
My question is if it there is a simple and practical way to burning the images in the QSPI. Preferably one that does not require changing the dip-switch setting. FWIW we are not using the secure boot resources in our application.
Thanks in advance for any tip or directions.
11-27-2019 12:45 AM
11-27-2019 01:20 AM
in our solution is a custom board were we use the SD card to boot (via a jumper) and install automatically on an eMMC internal, then remove the jumper
and it boot automatically to you QSPI flash
11-27-2019 02:23 AM
About preprogramming the flash, it is not a bad idea but I am not sure it is viable in our case on the short term.
About programming QSPI in u-boot, could you elaborate? I mean, shouldn't u-boot be preprogrammed? (Sorry if it is too a basic question, I may be missing something obvous).
About the third idea (boot in JTAG mode), I will dig deeper on it.
11-27-2019 02:29 AM
That sort of things deserve a spare minute at early design stages. Funny to see so many projects with a lovely end product then wondering "how do we program it?"
as said before, and I think the easiest, most competitive way is to order flash memories pre-written.
After that, plenty of DIY solutions... usually FPGA-based products have small batches (~100) than an operator can do in a few days. Then there are more automated solutions but production figures need to justify the expense.
11-27-2019 02:39 AM
How about using the JTAG connector to override the jumper settings? If you have the DIP switches (or jumpers) connected to the boot mode pins through 1K - 10K resistors, and have the pins also wired to GND on the JTAG connector (or, if you're using a connector type that has a separate insertion-detect contact, you can use that) then as soon as you plug the JTAG connector in you're in JTAG boot mode.