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

Create a new special intermediary firmware #4

Closed
tsusanka opened this issue Apr 1, 2019 · 12 comments
Closed

Create a new special intermediary firmware #4

tsusanka opened this issue Apr 1, 2019 · 12 comments
Assignees
Labels
bootloader legacy Bootloader for Trezor One T1B1 legacy Trezor One
Milestone

Comments

@tsusanka
Copy link
Contributor

tsusanka commented Apr 1, 2019

To make onboarding easier let's create a new firmware, which will update bootloader to its newest version and firmware to the newest version, so user does not have to update (and unplug) its device several times.

@keepkeyjon
Copy link

You could skip some of the unplugging with soft resets: https://github.com/trezor/trezor-mcu/issues/438

@saleemrashid
Copy link
Contributor

Yes, I had a terrible experience attempting to upgrade an old Trezor to the latest firmware (since the new firmwares are too big for the old bootloader).

@prusnak prusnak transferred this issue from trezor/trezor-mcu Apr 15, 2019
@prusnak prusnak added this to the backlog milestone Apr 15, 2019
@prusnak prusnak added the T1B1 legacy Trezor One label Apr 15, 2019
@prusnak prusnak modified the milestones: backlog, backlog-legacy Apr 15, 2019
@tsusanka

This comment has been minimized.

@tsusanka tsusanka modified the milestones: backlog-legacy, 2019-06 Apr 29, 2019
@prusnak prusnak removed this from the 2019-06 milestone May 24, 2019
@ZdenekSL ZdenekSL added this to the 2019-08 milestone Jun 26, 2019
@ZdenekSL ZdenekSL added the W2 label Jul 3, 2019
@ZdenekSL ZdenekSL modified the milestones: 2019-08, 2019-09 Aug 1, 2019
@ZdenekSL ZdenekSL modified the milestones: 2019-09, backlog Aug 21, 2019
@tsusanka
Copy link
Contributor Author

We will create a new "artificial" firmware, which will perform the first upgrade and then the second one right away. Of course Wallet/Suite needs to support this.

We might also do the soft resets while we are at it.

@prusnak prusnak modified the milestones: backlog, 2019-12 Nov 20, 2019
@ZdenekSL ZdenekSL modified the milestones: 2019-12, 2020-01 Nov 26, 2019
@mroz22
Copy link
Contributor

mroz22 commented Dec 5, 2019

Just a little irritating question on possible delivery date of this feature @ZdenekSL
I am asking to know whether I should put more effort into workarounds on trezor-suite side or not.

@tsusanka tsusanka added bl 1.9 bootloader legacy Bootloader for Trezor One labels Jun 5, 2020
@tsusanka tsusanka modified the milestones: backlog, 2020-07 Jun 9, 2020
@hiviah
Copy link
Contributor

hiviah commented Jun 18, 2020

So to recap the strategy from intermediate FW's point of view:

  1. it updates bootloader to latest version that is packed together with FW
  2. copies small shim into RAM to allow current firmware to be erased (compiled to fixed address or position independent)
  3. jumps to shim
  4. shim deletes firmware
  5. shim soft-resets device

@tsusanka
Copy link
Contributor Author

This bundles the bootloader.dat file. That is the bootloader latest 1.8.0 version right? Could we build a new version 1.8.1 from master and include that one? It includes some new features such us the soft-reset so we should update to the latest IMHO. Is there any reason not to?

@hiviah
Copy link
Contributor

hiviah commented Aug 31, 2020

It's the exactly same version that is used for normal firmware (it's a symlink). So it's either 1.8.0 or 1.8.1.

@tsusanka
Copy link
Contributor Author

tsusanka commented Sep 25, 2020

Let's test this when it is in Suite, that means after trezor/trezor-suite#2338 is implemented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bootloader legacy Bootloader for Trezor One T1B1 legacy Trezor One
Projects
None yet
Development

No branches or pull requests

7 participants