Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add note for boot.frm #10

Open
F5OEO opened this issue Dec 28, 2023 · 3 comments
Open

Add note for boot.frm #10

F5OEO opened this issue Dec 28, 2023 · 3 comments

Comments

@F5OEO
Copy link

F5OEO commented Dec 28, 2023

Just inform that building process without Vivado doesn't produce boot.frm.

Installation described in readme to set environment could be done alternatively by using uboot-env.dfu.

@daniestevez
Copy link
Member

Just inform that building process without Vivado doesn't produce boot.frm.

This is known. The current README says:

To build the FPGA bitstream, Vivado 2021.2 is required.

Maybe we can add a sentence after this "The boot.frm file includes the FPGA bitstream, so Vivado is also required to build it."?

On this note, the ADI Makefile for the stock firmware includes a feature to detect whether Vivado is not present and if it isn't it will download the XSA from Github instead of building it. I never made sure that this works with the Maia SDR firmware, but it could be done if there is enough interest.

Installation described in readme to set environment could be done alternatively by using uboot-env.dfu.

Indeed. The uboot-env.dfu that is built with the Maia SDR firmware already contains the correct settings. The reason that the installation instructions do not mention this is that it is safer to use a couple of fw_setenv commands than to update all the uboot environment. Breaking uboot would break the DFU capability, leaving a Pluto that can only be recovered by JTAG (effectively bricking it for most people), and I want to steer clear of those problems as much as possible.

@F5OEO
Copy link
Author

F5OEO commented Dec 28, 2023

This is known. The current README says: To build the FPGA bitstream, Vivado 2021.2 is required.

I assume building FPGA bistream is xsa, but boot.frm use a tool from the Xilink sdk.

it will download the XSA

Confirm it is working

Breaking uboot would break the DFU capability

By default , uboot could not be updated (so not break)... boot.frm which includes boot and env has only effect on env.

https://ez.analog.com/adieducation/university-program/f/q-a/114236/can-we-really-update-u-boot
https://ez.analog.com/adieducation/university-program/f/q-a/562284/update-u-boot-failed

@daniestevez
Copy link
Member

Oh, I had a mixup in my head between boot.frm (which is the boot.bin containing the FSBL and uboot, and the uboot env), and pluto.frm (the uImage containing the bitstream, kernel and rootfs). Indeed making boot.bin requires Xilinx's mkimage. This is the same as with the stock ADI firmware.

By default , uboot could not be updated (so not break)... boot.frm which includes boot and env has only effect on env.

Interesting. I didn't know that the boot.bin QSPI partition was locked. At some point I updated this partition in one of my Plutos. I don't remember how I did it. Maybe it was from uboot, by using sf protect unlock.

In any case, although rare, I still think that a bad uboot env could prevent the device from entering DFU correctly, so I'd rather have users update the couple parameters that are needed using fw_setenv (which is also recommended by ADI to update other parameters such as the ad9361 compat, and thus somewhat familiar to users), instead of updating the whole env by flashing boot.frm. This has the additional advantage of not overwriting other parameters that the user might have set, such as the IP address or USB Ethernet driver mode.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants