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

Support VL805 firmware updates #127

Open
fhunleth opened this issue Nov 8, 2021 · 2 comments
Open

Support VL805 firmware updates #127

fhunleth opened this issue Nov 8, 2021 · 2 comments

Comments

@fhunleth
Copy link
Member

fhunleth commented Nov 8, 2021

The Raspberry Pi firmware is stored on an EEPROM so it needs to be updated periodically. This is inconvenient right now with Nerves. It would be nice if there were an easy way to do this.

Information is at https://github.com/raspberrypi/rpi-eeprom.

@ericr3r
Copy link

ericr3r commented Nov 10, 2021

A naive implementation that I've done before is utilize recovery.bin. There are a few obvious downsides with this approach:

  • The updates of pieeeprom.bin and vl805.bin aren't versioned so this approach could end up back leveling the firmware.
  • The bin files are renamed after update. Potentially breaking signed boot images if implemented.
  • Wouldn't support fallback on bad firmware update

Since these file aren't really tied to buildroot, we took the approach of creating a custom fwup config in our app instead of in our nerves system. We add the files to a bootfs_overlay and included the following fragment in fwup:

file-resource recovery.bin {
    host-path = "${NERVES_APP}/bootfs_overlay/recovery.bin"
}

file-resource pieeprom.upd {
    host-path = "${NERVES_APP}/bootfs_overlay/pieeprom.upd"
}

file-resource pieeprom.sig {
    host-path = "${NERVES_APP}/bootfs_overlay/pieeprom.sig"
}

@fhunleth
Copy link
Member Author

@erauer Thanks for sharing this!

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