diff --git a/capture/capture_aes.py b/capture/capture_aes.py index 839cf3b9..7b921b0d 100755 --- a/capture/capture_aes.py +++ b/capture/capture_aes.py @@ -102,7 +102,8 @@ def setup(cfg: dict, project: Path): baudrate = cfg["target"].get("baudrate"), port = cfg["target"].get("port"), output_len = cfg["target"].get("output_len_bytes"), - usb_serial = cfg["target"].get("usb_serial") + usb_serial = cfg["target"].get("usb_serial"), + interface = cfg["target"].get("interface") ) target = Target(target_cfg) diff --git a/capture/capture_hmac.py b/capture/capture_hmac.py index 2186741e..a6d62c8f 100755 --- a/capture/capture_hmac.py +++ b/capture/capture_hmac.py @@ -102,7 +102,8 @@ def setup(cfg: dict, project: Path): baudrate = cfg["target"].get("baudrate"), port = cfg["target"].get("port"), output_len = cfg["target"].get("output_len_bytes"), - usb_serial = cfg["target"].get("usb_serial") + usb_serial = cfg["target"].get("usb_serial"), + interface = cfg["target"].get("interface") ) target = Target(target_cfg) diff --git a/capture/capture_ibex.py b/capture/capture_ibex.py index cb5a2632..af4c4978 100755 --- a/capture/capture_ibex.py +++ b/capture/capture_ibex.py @@ -90,7 +90,8 @@ def setup(cfg: dict, project: Path): baudrate = cfg["target"].get("baudrate"), port = cfg["target"].get("port"), output_len = cfg["target"].get("output_len_bytes"), - usb_serial = cfg["target"].get("usb_serial") + usb_serial = cfg["target"].get("usb_serial"), + interface = cfg["target"].get("interface") ) target = Target(target_cfg) diff --git a/capture/capture_kmac.py b/capture/capture_kmac.py index fb850eba..589eac3b 100755 --- a/capture/capture_kmac.py +++ b/capture/capture_kmac.py @@ -106,7 +106,8 @@ def setup(cfg: dict, project: Path): baudrate = cfg["target"].get("baudrate"), port = cfg["target"].get("port"), output_len = cfg["target"].get("output_len_bytes"), - usb_serial = cfg["target"].get("usb_serial") + usb_serial = cfg["target"].get("usb_serial"), + interface = cfg["target"].get("interface") ) target = Target(target_cfg) diff --git a/capture/capture_otbn.py b/capture/capture_otbn.py index c399d498..ac95a84c 100755 --- a/capture/capture_otbn.py +++ b/capture/capture_otbn.py @@ -116,7 +116,8 @@ def setup(cfg: dict, project: Path): baudrate = cfg["target"].get("baudrate"), port = cfg["target"].get("port"), output_len = cfg["target"].get("output_len_bytes"), - usb_serial = cfg["target"].get("usb_serial") + usb_serial = cfg["target"].get("usb_serial"), + interface = cfg["target"].get("interface") ) target = Target(target_cfg) diff --git a/capture/capture_sha3.py b/capture/capture_sha3.py index 5c733f9f..a116b393 100755 --- a/capture/capture_sha3.py +++ b/capture/capture_sha3.py @@ -91,7 +91,8 @@ def setup(cfg: dict, project: Path): baudrate = cfg["target"].get("baudrate"), port = cfg["target"].get("port"), output_len = cfg["target"].get("output_len_bytes"), - usb_serial = cfg["target"].get("usb_serial") + usb_serial = cfg["target"].get("usb_serial"), + interface = cfg["target"].get("interface") ) target = Target(target_cfg) diff --git a/fault_injection/fi_crypto.py b/fault_injection/fi_crypto.py index e12afab1..131b97f0 100755 --- a/fault_injection/fi_crypto.py +++ b/fault_injection/fi_crypto.py @@ -48,7 +48,8 @@ def setup(cfg: dict, project: Path): baudrate = cfg["target"].get("baudrate"), port = cfg["target"].get("port"), output_len = cfg["target"].get("output_len_bytes"), - usb_serial = cfg["target"].get("usb_serial") + usb_serial = cfg["target"].get("usb_serial"), + interface = cfg["target"].get("interface") ) target = Target(target_cfg) diff --git a/fault_injection/fi_ibex.py b/fault_injection/fi_ibex.py index 5c6d5ccd..908e0567 100755 --- a/fault_injection/fi_ibex.py +++ b/fault_injection/fi_ibex.py @@ -48,7 +48,8 @@ def setup(cfg: dict, project: Path): baudrate = cfg["target"].get("baudrate"), port = cfg["target"].get("port"), output_len = cfg["target"].get("output_len_bytes"), - usb_serial = cfg["target"].get("usb_serial") + usb_serial = cfg["target"].get("usb_serial"), + interface = cfg["target"].get("interface") ) target = Target(target_cfg) diff --git a/fault_injection/fi_otbn.py b/fault_injection/fi_otbn.py index 8e9be19a..95f684e5 100755 --- a/fault_injection/fi_otbn.py +++ b/fault_injection/fi_otbn.py @@ -48,7 +48,8 @@ def setup(cfg: dict, project: Path): baudrate = cfg["target"].get("baudrate"), port = cfg["target"].get("port"), output_len = cfg["target"].get("output_len_bytes"), - usb_serial = cfg["target"].get("usb_serial") + usb_serial = cfg["target"].get("usb_serial"), + interface = cfg["target"].get("interface") ) target = Target(target_cfg) diff --git a/fault_injection/fi_rng.py b/fault_injection/fi_rng.py index e079db3b..215ea484 100755 --- a/fault_injection/fi_rng.py +++ b/fault_injection/fi_rng.py @@ -48,7 +48,8 @@ def setup(cfg: dict, project: Path): baudrate = cfg["target"].get("baudrate"), port = cfg["target"].get("port"), output_len = cfg["target"].get("output_len_bytes"), - usb_serial = cfg["target"].get("usb_serial") + usb_serial = cfg["target"].get("usb_serial"), + interface = cfg["target"].get("interface") ) target = Target(target_cfg) diff --git a/target/chip.py b/target/chip.py index 69ff849a..bc7d506f 100644 --- a/target/chip.py +++ b/target/chip.py @@ -13,11 +13,13 @@ class Chip(): """ def __init__(self, firmware, opentitantool_path, boot_delay: Optional[int] = 1, - usb_serial: Optional[str] = None): + usb_serial: Optional[str] = None, + interface: Optional[str] = "hyper310"): self.firmware = firmware self.opentitantool = opentitantool_path self.boot_delay = boot_delay self.usb_serial = usb_serial + self.interface = interface self._initialize_chip() def _initialize_chip(self): @@ -27,14 +29,14 @@ def _initialize_chip(self): flash_process = Popen([self.opentitantool, "--usb-serial=" + str(self.usb_serial), "--rcfile=", - "--interface=hyper310", + "--interface=" + str(self.interface), "--exec", "transport init", "--exec", "bootstrap " + self.firmware, "no-op"], stdout=PIPE, stderr=PIPE) else: flash_process = Popen([self.opentitantool, "--rcfile=", - "--interface=hyper310", + "--interface=" + str(self.interface), "--exec", "transport init", "--exec", "bootstrap " + self.firmware, "no-op"], stdout=PIPE, stderr=PIPE) @@ -52,14 +54,14 @@ def reset_target(self, boot_delay: Optional[int] = 1): if self.usb_serial is not None and self.usb_serial != "": reset_process = Popen([self.opentitantool, "--usb-serial=" + str(self.usb_serial), - "--interface=hyper310", + "--interface=" + str(self.interface), "--exec", "transport init", "--exec", "gpio write RESET false", "--exec", "gpio write RESET true", "no-op"], stdout=PIPE, stderr=PIPE) else: reset_process = Popen([self.opentitantool, - "--interface=hyper310", + "--interface=" + str(self.interface), "--exec", "transport init", "--exec", "gpio write RESET false", "--exec", "gpio write RESET true", "no-op"], diff --git a/target/targets.py b/target/targets.py index 351277a1..d1e897e4 100644 --- a/target/targets.py +++ b/target/targets.py @@ -28,6 +28,7 @@ class TargetConfig: port: Optional[str] = None read_timeout: Optional[int] = 1 usb_serial: Optional[str] = None + interface: Optional[str] = "hyper310" class Target: @@ -60,7 +61,8 @@ def _init_target(self): elif self.target_cfg.target_type == "chip": target = Chip(firmware = self.target_cfg.fw_bin, opentitantool_path = "../objs/opentitantool", - usb_serial=self.target_cfg.usb_serial) + usb_serial = self.target_cfg.usb_serial, + interface = self.target_cfg.interface) else: raise RuntimeError("Error: Target not supported!") return target