Skip to content
Snippets Groups Projects
Commit c9773e0f authored by Jean-Michel Picod's avatar Jean-Michel Picod
Browse files

Fix dependency on tockloader 1.4

Now that it has been released and pushed to pypi, make sure that
tockloader is at least 1.4 version
parent dc12e104
No related branches found
No related tags found
No related merge requests found
...@@ -22,7 +22,7 @@ jobs: ...@@ -22,7 +22,7 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip setuptools wheel python -m pip install --upgrade pip setuptools wheel
pip install tockloader pylint pip install 'tockloader~=1.4' pylint
- name: Register matcher - name: Register matcher
run: echo ::add-matcher::./.github/python_matcher.json run: echo ::add-matcher::./.github/python_matcher.json
- name: Test code with pylint - name: Test code with pylint
......
...@@ -29,6 +29,7 @@ import sys ...@@ -29,6 +29,7 @@ import sys
import colorama import colorama
from six.moves import input from six.moves import input
import tockloader
from tockloader import tab from tockloader import tab
from tockloader import tbfh from tockloader import tbfh
from tockloader import tockloader as loader from tockloader import tockloader as loader
...@@ -252,12 +253,16 @@ class OpenSKInstaller: ...@@ -252,12 +253,16 @@ class OpenSKInstaller:
board=self.args.board, board=self.args.board,
debug=False, debug=False,
force=False, force=False,
jlink_cmd="JLinkExe",
jlink=self.args.programmer == "jlink", jlink=self.args.programmer == "jlink",
jlink_device=board.jlink_device, jlink_device=board.jlink_device,
jlink_if=board.jlink_if, jlink_if=board.jlink_if,
jlink_speed=1200, jlink_speed=1200,
openocd=self.args.programmer == "openocd", openocd=self.args.programmer == "openocd",
openocd_board=board.openocd_board, openocd_board=board.openocd_board,
openocd_cmd="openocd",
openocd_commands=copy.copy(board.openocd_commands),
openocd_options=copy.copy(board.openocd_options),
jtag=False, jtag=False,
no_bootloader_entry=False, no_bootloader_entry=False,
page_size=board.page_size, page_size=board.page_size,
...@@ -399,7 +404,7 @@ class OpenSKInstaller: ...@@ -399,7 +404,7 @@ class OpenSKInstaller:
setattr(args, "make", False) setattr(args, "make", False)
setattr(args, "no_replace", False) setattr(args, "no_replace", False)
tock = loader.TockLoader(args) tock = loader.TockLoader(args)
tock.open(args) tock.open()
tabs = [tab.TAB(tab_filename)] tabs = [tab.TAB(tab_filename)]
try: try:
tock.install(tabs, replace="yes", erase=args.erase) tock.install(tabs, replace="yes", erase=args.erase)
...@@ -428,7 +433,7 @@ class OpenSKInstaller: ...@@ -428,7 +433,7 @@ class OpenSKInstaller:
args = copy.copy(self.tockloader_default_args) args = copy.copy(self.tockloader_default_args)
setattr(args, "address", board_props.app_address) setattr(args, "address", board_props.app_address)
tock = loader.TockLoader(args) tock = loader.TockLoader(args)
tock.open(args) tock.open()
try: try:
tock.flash_binary(kernel, board_props.kernel_address) tock.flash_binary(kernel, board_props.kernel_address)
except TockLoaderException as e: except TockLoaderException as e:
...@@ -441,7 +446,7 @@ class OpenSKInstaller: ...@@ -441,7 +446,7 @@ class OpenSKInstaller:
args = copy.copy(self.tockloader_default_args) args = copy.copy(self.tockloader_default_args)
setattr(args, "address", board_props.padding_address) setattr(args, "address", board_props.padding_address)
tock = loader.TockLoader(args) tock = loader.TockLoader(args)
tock.open(args) tock.open()
try: try:
tock.flash_binary(padding, args.address) tock.flash_binary(padding, args.address)
except TockLoaderException as e: except TockLoaderException as e:
...@@ -451,11 +456,14 @@ class OpenSKInstaller: ...@@ -451,11 +456,14 @@ class OpenSKInstaller:
args = copy.copy(self.tockloader_default_args) args = copy.copy(self.tockloader_default_args)
board_props = SUPPORTED_BOARDS[self.args.board] board_props = SUPPORTED_BOARDS[self.args.board]
setattr(args, "app_address", board_props.app_address) setattr(args, "app_address", board_props.app_address)
# Ensure we don't force erase all apps but only the apps starting
# at `board.app_address`. This makes sure we don't erase the padding.
setattr(args, "force", False)
info("Erasing all installed applications") info("Erasing all installed applications")
tock = loader.TockLoader(args) tock = loader.TockLoader(args)
tock.open(args) tock.open()
try: try:
tock.erase_apps(False) tock.erase_apps()
except TockLoaderException as e: except TockLoaderException as e:
# Erasing apps is not critical # Erasing apps is not critical
info(("A non-critical error occurred while erasing " info(("A non-critical error occurred while erasing "
...@@ -467,6 +475,7 @@ class OpenSKInstaller: ...@@ -467,6 +475,7 @@ class OpenSKInstaller:
return False return False
args = copy.copy(self.tockloader_default_args) args = copy.copy(self.tockloader_default_args)
tock = loader.TockLoader(args) tock = loader.TockLoader(args)
tock.open()
app_found = False app_found = False
with tock._start_communication_with_board(): with tock._start_communication_with_board():
apps = [app.name for app in tock._extract_all_app_headers()] apps = [app.name for app in tock._extract_all_app_headers()]
...@@ -515,6 +524,10 @@ class OpenSKInstaller: ...@@ -515,6 +524,10 @@ class OpenSKInstaller:
final_hex.tofile(dest_file, format="hex") final_hex.tofile(dest_file, format="hex")
def check_prerequisites(self): def check_prerequisites(self):
if not tockloader.__version__.startswith("1.4"):
fatal(("Your version of tockloader is too old: found {}, expected "
"1.4.0.".format(tockloader.__version__)))
if self.args.programmer == "jlink": if self.args.programmer == "jlink":
assert_mandatory_binary("JLinkExe") assert_mandatory_binary("JLinkExe")
......
...@@ -86,7 +86,7 @@ source tools/gen_key_materials.sh ...@@ -86,7 +86,7 @@ source tools/gen_key_materials.sh
generate_crypto_materials N generate_crypto_materials N
rustup install $(head -n 1 rust-toolchain) rustup install $(head -n 1 rust-toolchain)
pip3 install --user --upgrade tockloader six intelhex pip3 install --user --upgrade 'tockloader~=1.4' six intelhex
rustup target add thumbv7em-none-eabi rustup target add thumbv7em-none-eabi
# Install dependency to create applications. # Install dependency to create applications.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment