How to boot from tinyFPGA BX to user configuration instead of bootloader


#1

hi
I have a question for you.
The FPGA I use is your tinyfpga Bx.

  1. Can I replace the FPGA bootloader with a user-defined binary file?

  2. If no.1 is available, I would appreciate it if you could tell me how to do it in detail.

  3. If no. 1 is not possible, ultimately what I want is that when I apply the power (with usb cable) to the fpaga, I want all pins (except the vin pin) to output LOW (0V).

Is there any way to do this?


#2
  1. Yes you can replace the bootloader. But if you do, you won’t be able to reprogram the device without soldering wires to the SPI flash pins on the underside of the board.

  2. If you really want to do it, it is the same procedure as fixing a bricked device, and that too requires you to solder wires to the SPI flash pins on the underside of the board. See, for example, - BX bootloader bricked.

It is possible to modify the bootloader update code to get the bootloader to replace itself with a user binary, but that is a bit tricky and you only get one shot and getting it correct, or again you have to solder wires to the underside of the board.

  1. But why do you want to replace the bootloader? If you connect the device to a usb charger rather than a computer, the bootloader runs, detects it is not connected to a computer, and runs the user configuration. Isn’t that good enough for what you want?

What you want to do sounds a rather strange thing to want to do with an FPGA.


#3

Thank you for your answers.

The following picture is about pin15.
Our RTL code is high in the default value of pin15.
What I want is to be as shown in Figure 1.

The problem is that the voltage goes down to zero at the moment of uploading as shown in Figure 2.

We use pin 15 as an control signal. So even small changes like that can cause problems.

So we revised the default value of pin15 in our RTL code to zero and hope that voltage will be zero at every moment as shown in Figure 4.

However, when the bootloader is uploaded, the value of the pins is high as shown in Figure 3. That is why I left the above question.

Is there any other way to solve this problem other than bootloader?