system76 / firmware-update

System76 Firmware Update Utility
GNU General Public License v3.0
204 stars 15 forks source link

Oryp7 fix #40

Closed jackpot51 closed 3 years ago

jackpot51 commented 3 years ago

This implements the legacy EC flashing protocol in firmware-update and uses it when flashing System76 EC on top of legacy EC so we can control when the EC gets reset.

This will affect any transitions between proprietary and open firmware, so other models should be tested as well.

jacobgkau commented 3 years ago

I see the new output including the Entering scratch ROM message, only when going from proprietary Clevo firmware to Open Firmware (Open-to-proprietary and Open-to-Open still show Programming EC Main ROM.)

I'm not sure how necessary it was to change the message at the end of the process from System will shut off in 5 seconds to EC will reset in 5 seconds-- to a non-technical user, "reset" might sound like it should turn back on by itself (which it doesn't.) The rest of this output is fairly technical anyway, though, so if this is more accurate, I guess it's not a problem.

Tested on the following:

Haven't seen any problems yet. (Flashing to lemp10's outdated firmware required unplugging the AC adapter, but I confirmed that was an issue with the older firmware version I picked to test with, not the new flash_legacy function.) Holding on approval for further testing per @leviport.

leviport commented 3 years ago

I did some flashes on darp6 with this update and it's looking good. I also only saw the "Entering scratch ROM" message when going from proprietary to open EC firmware.

I tested the following sequence:

Open EC (current open firmware) -> open EC -> proprietary EC (older open firmware) -> open EC -> proprietary EC -> proprietary EC -> open EC

I will test oryp6 in the morning. If that goes well, I think we're good to go.

crawfxrd commented 3 years ago

Pick f0f0d35 to fix CI.

jackpot51 commented 3 years ago

Merging to get this ready in a firmware PR

jackpot51 commented 3 years ago

Please see https://github.com/system76/firmware/pull/296

leviport commented 3 years ago

Just finished testing oryp6 and all seems well. Sequence tested:

open -> proprietary -> proprietary -> open -> open

open = latest open firmware and open EC proprietary = uncustomized Clevo firmware and EC