Skip to content
Snippets Groups Projects
Commit 704affb4 authored by Jan David Mol's avatar Jan David Mol
Browse files

Wait for both images to boot, not just user

parent 011b36d5
Branches
Tags
1 merge request!722Station boot patches
...@@ -262,31 +262,29 @@ class SDPFirmware(OPCUADevice): ...@@ -262,31 +262,29 @@ class SDPFirmware(OPCUADevice):
# overloaded functions # overloaded functions
# -------- # --------
def _power_hardware_on(self): def _boot_to_image(self, image_nr):
"""Boot the SDP Firmware user image"""
# FPGAs that are actually reachable and we care about # FPGAs that are actually reachable and we care about
wait_for = ~( wait_for = ~(
self.read_attribute("TR_fpga_communication_error_R") self.read_attribute("TR_fpga_communication_error_R")
) & self.read_attribute("TR_fpga_mask_R") ) & self.read_attribute("TR_fpga_mask_R")
# Order the correct firmare to be loaded # Order the correct firmare to be loaded
self.proxy.FPGA_boot_image_RW = [1] * N_pn self.proxy.FPGA_boot_image_RW = [image_nr] * N_pn
# Wait for the firmware to be loaded (ignoring masked out elements) # Wait for the firmware to be loaded (ignoring masked out elements)
self.wait_attribute( self.wait_attribute(
"FPGA_boot_image_R", lambda attr: ((attr == 1) | ~wait_for).all(), 60 "FPGA_boot_image_R", lambda attr: ((attr == 1) | ~wait_for).all(), 60
) )
def _power_hardware_on(self):
"""Boot the SDP Firmware user image"""
self._boot_to_image(0)
def _power_hardware_off(self): def _power_hardware_off(self):
"""Use the SDP Firmware factory image""" """Use the SDP Firmware factory image"""
# Save actual mask values
TR_fpga_mask = self.proxy.TR_fpga_mask_RW self._boot_to_image(1)
# Set the mask to all Trues
self.proxy.TR_fpga_mask_RW = [True] * N_pn
# Boot the boot image firmware
self.proxy.FPGA_boot_image_RW = [0] * N_pn
# Restore the mask
self.proxy.TR_fpga_mask_RW = TR_fpga_mask
# -------- # --------
# Commands # Commands
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment