With all this drama around failed bios updates I have thought of a potential solution to improve the situation a bit. Ideally framework had built in a fail-safe flash method like a lot of desktop mainboards have these days but that ship has sailed so the second best thing (imo) is making hardware flashing a lot easier.
What I had in mind was something like a “smart” pogo-pin probe that could be preloaded with the bioses for all framework devices and prompts the user through the process (like one of those automated defibrillators).
Those could be sold on the marketplace and given out during the rma process to consenting customers instead of having to replace entire mainboards. It could also give people more peace of mind having recovery options ready that are significantly easier to use than a regular hardware flasher.
The processes could be:
Hold probe on bios-chip
Check orientation
Check that the chip isn’t already powered
Read the current contents of the chip to the device (onboard microsd probably) for potential rollback and to be able to diagnose the failed flash
Try to guess the model based on the existing image (Assuming failed flash doesn’t just end up with an entirely wiped flash chip that should be possible)
Prompt user to confirm model and allow overriding it (in case a wrong bios was flashed before or somehow detected wrong)
Flash bios to the chip, read it back and verify, with progress information and if necessary retry prompts
I think this could be done with an rp2050 (because of the ease of user flashing), some form of display (maybe an ssd1309), a microsd slot, 1.8v level shifter, 2 or 3 buttons for navigation, a bunch of passives (and maybe the odd ldo or mosfet) and the pogo pin probe itself. Ideally this could be integrated into a pen like device. BOM-cost would probably be around 10-20$ (excluding microsd card).
I don’t think that ship has completely sailed. Granted there isn’t a way to add them to the existing main boards but it could be added to newer boards.
Although, I’ve never had issues flashing any BIOS (knock on wood) I do think something that can help recover from a failed flash would be great to have.
I like the idea of preloaded BIOS for simplicity for non-technical users, but it should definitely be able to be updated for any new BIOS that comes out.
That would be on the microsd card, someone could publish new collections when new ones come out. Using something like an rp2040 that can be flashed by just draging a file onto it also helps if that one needs new firmware.
Ah I see. That makes sense. I probably would prefer a USB port with internal storage or in addition to the MicroSD card. Cables are easier to come by compared to a MicroSD or SD card reader and I feel less people have a MicroSD or SD card reader available vs a USB cable.
Flash chips that are big enough to fit multiple bioses are kinda expensive and reading microsdcards is easy. You can just leave it in the thing and treat it as internal storage.
You could probably add mass storage mode to the micro so you can take the dumps/update bioses without a reader but it would be slower and I suspect somebody who is ready to hw flash a bios even with a simplified method is also able to get a microsd card reader.
My understanding is that they are working on it for all models. They have stated they already have it on the desktop, so I don’t see why it can’t be done to all. It is not that difficult a concept to deal with, but the implementation may take some thought.
I think if they could add it on future mainboards or even on newer revisions of the current mainboards it would be really helpful, but there would still be a need for something to fix the older systems. Unless FrameWork decides it’s going to replace every failed BIOS update with a revised mainboard. I doubt that would be the case since even if the probability is low it would be an expensive endevor.
I believe that is also true for FW. AIUI the EC has its own processor chip which deals with all the BIOS setup, and I would think would also deal with the BIOS updates.
The EC doesn’t run like an OOB device like you see on server boards though right? (I think these are called Baseboard Management Controllers or BMC)
Even if it was just a serial only console it would make recovery from a bad BIOS update possible.
Surely some enterprise/business users would like that ability too for field deployments of Framework devices in some embedded applications. It might just be too cost prohibitive to implement in future boards though as it would take up space and drive up the cost a little.
Edit After reading a little more the EC just reads a specific block of space at the beginning of the flash chip and loads that into its working ram. So if the flash is corrupt for the EC the only way to recover is to write back to the flash chip directly (safest) or risk tapping into the test pads on the board that are not documented.
Did not read enough to see if the EC can write to the flash chip. If so this would be a great avenue for recovery if that was possible. Framework (or someone else) could sell an expansion card that is ready to talk to the EC and has the necessary resistors to talk to the little controller.
This all hinges on the EC portion of the flash not being corrupted. I believe these are flashed as separate packages though. So as long as the EC lives to talk another day it wouldn’t resort to low level chip probing and flashing.
I support this idea completely, but for the sake of conversation and ideation, does the company statement now make it redundant? Crisis Recovery has now made it into at least one product line BIOS update.