From e06768a7a73e7c2121081bf248c734b549aa38b0 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Tue, 23 Apr 2019 21:23:52 +0200 Subject: [PATCH] legacy: use local copy of the previously built bootloader --- legacy/firmware/Makefile | 2 +- legacy/firmware/bl_data.py | 2 +- legacy/firmware/bootloader.dat | Bin 0 -> 32768 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 legacy/firmware/bootloader.dat diff --git a/legacy/firmware/Makefile b/legacy/firmware/Makefile index a21f0cd26..9e34ef843 100644 --- a/legacy/firmware/Makefile +++ b/legacy/firmware/Makefile @@ -130,7 +130,7 @@ CFLAGS += -DUSE_MONERO=0 @printf " MAKO $@\n" $(Q)$(PYTHON) ../vendor/trezor-common/tools/cointool.py render $@.mako -bl_data.h: bl_data.py ../bootloader/bootloader.bin +bl_data.h: bl_data.py bootloader.dat @printf " PYTHON bl_data.py\n" $(Q)$(PYTHON) bl_data.py diff --git a/legacy/firmware/bl_data.py b/legacy/firmware/bl_data.py index 0ba5733cf..c719d29e7 100755 --- a/legacy/firmware/bl_data.py +++ b/legacy/firmware/bl_data.py @@ -1,7 +1,7 @@ #!/usr/bin/env python from hashlib import sha256 -fn = "../bootloader/bootloader.bin" +fn = "bootloader.dat" data = open(fn, "rb").read() if len(data) > 32768: diff --git a/legacy/firmware/bootloader.dat b/legacy/firmware/bootloader.dat new file mode 100644 index 0000000000000000000000000000000000000000..334e31461fdfaf9abb83f2804a46a700e351d4a4 GIT binary patch literal 32768 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