spinnman.messages.spinnaker_boot package¶
Module contents¶
- class spinnman.messages.spinnaker_boot.SpinnakerBootMessage(opcode: SpinnakerBootOpCode, operand_1: int, operand_2: int, operand_3: int, data: bytes | None = None, offset: int = 0)¶
Bases:
object
A message used for booting the board.
- Parameters:
- Raises:
SpinnmanInvalidParameterException – If the opcode is not a valid value
- static from_bytestring(data: bytes, offset: int) SpinnakerBootMessage [source]¶
- Parameters:
- Return type:
- property opcode: SpinnakerBootOpCode¶
The operation of this packet.
- Return type:
- class spinnman.messages.spinnaker_boot.SpinnakerBootMessages(extra_boot_values: Dict[SystemVariableDefinition, Any] | None = None)¶
Bases:
object
A set of boot messages to be sent to boot the board.
- Parameters:
extra_boot_values (dict(SystemVariableDefinition, object)) – Any additional or overwrite values to set during boot. This should only be used for values which are not standard based on the board version. for example this may include an Led_0 value.
- Raises:
SpinnmanInvalidParameterException – If the board version is not supported
SpinnmanIOException – If there is an error assembling the packets
- property messages: Iterable[SpinnakerBootMessage]¶
An iterable of message to be sent.
- Return type:
iterable(SpinnakerBootMessage)
- class spinnman.messages.spinnaker_boot.SpinnakerBootOpCode(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
Enum
Boot message Operation Codes.
- FLOOD_FILL_BLOCK = 3¶
- FLOOD_FILL_CONTROL = 5¶
- FLOOD_FILL_START = 1¶
- HELLO = 65¶
- class spinnman.messages.spinnaker_boot.SystemVariableDefinition(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
Enum
Defines the system variables available.
- Parameters:
data_type (_DataType) – The data type of the variable
offset (int) – The offset from the start of the system variable structure where the variable is found
default (object) – The default value assigned to the variable if not overridden
array_size (int or None) – The length of the array, or None if not an array
- allocated_tag_table_address = (_DataType.INT, 220, 0, None, 'The address of the allocated tag table')¶
- app_data_table_address = (_DataType.INT, 228, 0, None, 'The address of the application data table')¶
- property array_size: int | None¶
Gets the array size passed into the init (if applicable)
- Return type:
int or None
- board_info = (_DataType.INT, 248, 0, None, 'A pointer to the board information structure')¶
- board_test_flags = (_DataType.BYTE, 103, 0, None, 'Board testing flags')¶
- boot_signature = (_DataType.INT, 92, 0, None, 'The boot signature')¶
- clock_divisor = (_DataType.BYTE, 14, 51, None, 'The clock divisors for system & router clocks')¶
- clock_drift = (_DataType.INT, 56, 0, None, 'The clock drift')¶
- clock_milliseconds = (_DataType.LONG, 16, 0, None, 'The time since startup in milliseconds')¶
- cpu_clock_mhz = (_DataType.SHORT, 36, 200, None, 'The CPU clock frequency in MHz')¶
- cpu_information_base_address = (_DataType.INT, 204, 0, None, 'The base address of the CPU information blocks')¶
- property data_type: _DataType¶
Gets the data_type passed into the init.
- Return type:
_DataType
- debug_x = (_DataType.BYTE, 5, 0, None, 'The x-coordinate of the chip to send debug messages to')¶
- debug_y = (_DataType.BYTE, 4, 0, None, 'The y-coordinate of the chip to send debug messages to')¶
- ethernet_ip_address = (_DataType.BYTE_ARRAY, 240, b'\x00\x00\x00\x00', 4, 'The IP address of the chip')¶
- first_free_router_entry = (_DataType.SHORT, 224, 0, None, 'The ID of the first free router entry')¶
- fixed_route_copy = (_DataType.INT, 244, 0, None, 'A (virtual) copy of the router FR register')¶
- hardware_version = (_DataType.BYTE, 10, 0, None, 'The version of the hardware in use')¶
- iobuf_size = (_DataType.INT, 80, 16384, None, 'The size of the iobuf buffer in bytes')¶
- is_ethernet_available = (_DataType.BYTE, 11, 0, None, 'Indicates if Ethernet is available on this chip')¶
- is_peer_to_peer_available = (_DataType.BYTE, 6, 0, None, 'Indicates if peer-to-peer is working on the chip')¶
- is_root_chip = (_DataType.BYTE, 64, 0, None, 'Indicates if this is the root chip')¶
- last_biff_id = (_DataType.BYTE, 102, 0, None, 'Last ID used in BIFF packet')¶
- led_0 = (_DataType.INT, 48, 1, None, 'The first part of the LED definitions')¶
- led_1 = (_DataType.INT, 52, 0, None, 'The last part of the LED definitions')¶
- led_half_period_10_ms = (_DataType.BYTE, 43, 1, None, 'The LED half-period in 10 ms units, or 1 to show load')¶
- link_peek_timeout_microseconds = (_DataType.BYTE, 42, 200, None, 'The link peek/poke timeout in microseconds')¶
- links_available = (_DataType.BYTE, 101, 63, None, 'Bit mask (6 bits) of links enabled')¶
- lock = (_DataType.BYTE, 100, 0, None, 'The lock')¶
- log_peer_to_peer_sequence_length = (_DataType.BYTE, 13, 4, None, 'Log (base 2) of the peer-to-peer sequence length')¶
- ltpc_period = (_DataType.SHORT, 26, 0, None, '')¶
- monitor_mailbox_flags = (_DataType.INT, 236, 0, None, 'The monitor incoming mailbox flags')¶
- n_active_peer_to_peer_addresses = (_DataType.SHORT, 226, 0, None, 'The number of active peer-to-peer addresses')¶
- n_scamp_working_cores = (_DataType.BYTE, 189, 0, None, 'The number of SCAMP working cores')¶
- n_working_cores = (_DataType.BYTE, 188, 0, None, 'The number of working cores')¶
- nearest_ethernet_x = (_DataType.BYTE, 9, 0, None, 'The y-coordinate of the nearest chip with Ethernet')¶
- nearest_ethernet_y = (_DataType.BYTE, 8, 0, None, 'The x-coordinate of the nearest chip with Ethernet')¶
- nearest_neighbour_delay_us = (_DataType.BYTE, 66, 20, None, 'The delay between nearest-neighbour packets in microseconds')¶
- nearest_neighbour_forward = (_DataType.BYTE, 40, 63, None, 'Nearest-Neighbour forward parameter')¶
- nearest_neighbour_last_id = (_DataType.BYTE, 7, 0, None, 'The last ID used in nearest neighbour transaction')¶
- nearest_neighbour_memory_pointer = (_DataType.INT, 96, 0, None, 'The memory pointer for nearest neighbour global operations')¶
- nearest_neighbour_retry = (_DataType.BYTE, 41, 0, None, 'Nearest-Neighbour retry parameter')¶
- netinit_bc_wait_time = (_DataType.BYTE, 44, 50, None, 'The time to wait after last BC during network initialisation in 10 ms units')¶
- netinit_phase = (_DataType.BYTE, 45, 0, None, 'The phase of boot process (see enum netinit_phase_e)')¶
- p2p_b_repeats = (_DataType.BYTE, 12, 4, None, 'Number of times to send out P2PB packets')¶
- p2p_root_x = (_DataType.BYTE, 47, 0, None, 'The x-coordinate of the chip from which the system was booted')¶
- p2p_root_y = (_DataType.BYTE, 46, 0, None, 'The y-coordinate of the chip from which the system was booted')¶
- padding_2 = (_DataType.INT, 68, 0, None, 'A word of padding')¶
- padding_3 = (_DataType.SHORT, 190, 0, None, 'A short of padding')¶
- padding_4 = (_DataType.INT, 252, 0, None, 'A word of padding')¶
- peer_to_peer_hop_table_address = (_DataType.INT, 216, 0, None, 'The address of the peer-to-peer hop tables')¶
- physical_to_virtual_core_map = (_DataType.BYTE_ARRAY, 148, b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 20, 'The physical core ID to virtual core ID map')¶
- random_seed = (_DataType.INT, 60, 0, None, 'The random seed')¶
- router_table_copy_address = (_DataType.INT, 212, 0, None, 'The address of the copy of the routing tables')¶
- router_time_phase_timer = (_DataType.INT, 32, 0, None, 'The router time-phase timer')¶
- sdram_base_address = (_DataType.INT, 192, 0, None, 'The base address of SDRAM')¶
- sdram_clock_frequency_mhz = (_DataType.SHORT, 38, 130, None, 'The SDRAM clock frequency in MHz')¶
- sdram_heap_address = (_DataType.INT, 76, 0, None, 'The base address of the user SDRAM heap')¶
- software_watchdog_count = (_DataType.BYTE, 67, 0, None, 'The number of watch dog timeouts before an error is raised')¶
- status_map = (_DataType.BYTE_ARRAY, 128, b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 20, 'The status map set during SCAMP boot')¶
- system_buffer_words = (_DataType.INT, 88, 32768, None, 'The size of the system buffer in words')¶
- system_ram_base_address = (_DataType.INT, 196, 0, None, 'The base address of System RAM')¶
- system_ram_heap_address = (_DataType.INT, 72, 1024, None, 'The base address of the system SDRAM heap')¶
- system_sdram_base_address = (_DataType.INT, 200, 0, None, 'The base address of System SDRAM')¶
- system_sdram_bytes = (_DataType.INT, 84, 8388608, None, 'The size of the system SDRAM in bytes')¶
- system_sdram_heap_address = (_DataType.INT, 208, 0, None, 'The base address of the system SDRAM heap')¶
- time_milliseconds = (_DataType.SHORT, 24, 0, None, 'The number of milliseconds in the current second')¶
- time_phase_scale = (_DataType.BYTE, 15, 0, None, 'The time-phase scaling factor')¶
- unix_timestamp = (_DataType.INT, 28, 0, None, 'The time in seconds since midnight, 1st January 1970')¶
- user_temp_0 = (_DataType.INT, 112, 0, None, 'The first user variable')¶
- user_temp_1 = (_DataType.INT, 116, 0, None, 'The second user variable')¶
- user_temp_2 = (_DataType.INT, 120, 0, None, 'The third user variable')¶
- user_temp_4 = (_DataType.INT, 124, 0, None, 'The fourth user variable')¶
- virtual_to_physical_core_map = (_DataType.BYTE_ARRAY, 168, b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 20, 'The virtual core ID to physical core ID map')¶
- x = (_DataType.BYTE, 1, 0, None, 'The x-coordinate of the chip')¶
- x_size = (_DataType.BYTE, 3, 0, None, 'The number of chips in the x-dimension')¶
- y = (_DataType.BYTE, 0, 0, None, 'The y-coordinate of the chip')¶
- y_size = (_DataType.BYTE, 2, 0, None, 'The number of chips in the y-dimension')¶