Skip to content

Commit a6f72b4

Browse files
committed
Merge branch 'bb02p-bl'
2 parents 4f60863 + 79b0631 commit a6f72b4

File tree

4 files changed

+45
-6
lines changed

4 files changed

+45
-6
lines changed

backend/devices/bitbox02bootloader/firmware.go

+30
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ var intermediateFirmwareBinaryBTCOnly_9_17_1 []byte
3232
//go:embed assets/firmware.v9.17.1.signed.bin.gz
3333
var intermediateFirmwareBinaryMulti_9_17_1 []byte
3434

35+
// BitBox02
36+
3537
//go:embed assets/firmware-btc.v9.22.0.signed.bin.gz
3638
var firmwareBinaryBTCOnly []byte
3739
var firmwareVersionBTCOnly = semver.NewSemVer(9, 22, 0)
@@ -42,6 +44,18 @@ var firmwareBinaryMulti []byte
4244
var firmwareVersionMulti = semver.NewSemVer(9, 22, 0)
4345
var firmwareMonotonicVersionMulti uint32 = 42
4446

47+
// BitBox02 Plus. TODO: these are placeholder entries.
48+
49+
//go:embed assets/firmware-bb02plus-btconly.v9.22.0.signed.bin.gz
50+
var firmwareBB02PlusBinaryBTCOnly []byte
51+
var firmwareBB02PlusVersionBTCOnly = semver.NewSemVer(9, 22, 0)
52+
var firmwareBB02PlusMonotonicVersionBtcOnly uint32 = 42
53+
54+
//go:embed assets/firmware-bb02plus-multi.v9.22.0.signed.bin.gz
55+
var firmwareBB02PlusBinaryMulti []byte
56+
var firmwareBB02PlusVersionMulti = semver.NewSemVer(9, 22, 0)
57+
var firmwareBB02PlusMonotonicVersionMulti uint32 = 42
58+
4559
type firmwareInfo struct {
4660
version *semver.SemVer
4761
monotonicVersion uint32
@@ -75,6 +89,7 @@ func (fi firmwareInfo) firmwareHash() ([]byte, error) {
7589
// The intermediate upgrades, when run, bump the monotonic version by one so we know whether it has
7690
// booted/run at least once.
7791
var bundledFirmwares = map[bitbox02common.Product][]firmwareInfo{
92+
// BitBox02
7893
bitbox02common.ProductBitBox02Multi: {
7994
{
8095
version: semver.NewSemVer(9, 17, 1),
@@ -99,6 +114,21 @@ var bundledFirmwares = map[bitbox02common.Product][]firmwareInfo{
99114
binaryGzip: firmwareBinaryBTCOnly,
100115
},
101116
},
117+
// BitBox02 Plus.
118+
bitbox02common.ProductBitBox02PlusMulti: {
119+
{
120+
version: firmwareBB02PlusVersionMulti,
121+
monotonicVersion: firmwareBB02PlusMonotonicVersionMulti,
122+
binaryGzip: firmwareBB02PlusBinaryMulti,
123+
},
124+
},
125+
bitbox02common.ProductBitBox02PlusBTCOnly: {
126+
{
127+
version: firmwareBB02PlusVersionBTCOnly,
128+
monotonicVersion: firmwareBB02PlusMonotonicVersionBtcOnly,
129+
binaryGzip: firmwareBB02PlusBinaryBTCOnly,
130+
},
131+
},
102132
}
103133

104134
// BundledFirmwareVersion returns the version of newest bundled firmware. Returns nil if none is

backend/devices/bitbox02bootloader/firmware_test.go

+15-6
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,21 @@ func TestFirmwaresOrdered(t *testing.T) {
8181

8282
func TestNextFirmware(t *testing.T) {
8383
for product, firmwares := range bundledFirmwares {
84-
fwInfo, err := nextFirmware(product, 1)
85-
require.NoError(t, err)
86-
require.Equal(t, uint32(36), fwInfo.monotonicVersion)
84+
switch product {
85+
case bitbox02common.ProductBitBox02Multi, bitbox02common.ProductBitBox02BTCOnly:
86+
fwInfo, err := nextFirmware(product, 1)
87+
require.NoError(t, err)
88+
require.Equal(t, uint32(36), fwInfo.monotonicVersion)
8789

88-
fwInfo, err = nextFirmware(product, 36)
89-
require.NoError(t, err)
90-
require.Equal(t, &firmwares[len(firmwares)-1], fwInfo)
90+
fwInfo, err = nextFirmware(product, 36)
91+
require.NoError(t, err)
92+
require.Equal(t, &firmwares[len(firmwares)-1], fwInfo)
93+
case bitbox02common.ProductBitBox02PlusMulti, bitbox02common.ProductBitBox02PlusBTCOnly:
94+
fwInfo, err := nextFirmware(product, 1)
95+
require.NoError(t, err)
96+
require.Equal(t, &firmwares[len(firmwares)-1], fwInfo)
97+
default:
98+
require.Fail(t, "unknown product")
99+
}
91100
}
92101
}

0 commit comments

Comments
 (0)