Board Management Layer Notes
Here are notes about the different ways that system do board managemnent:
Contents
different systems
SLAV
Uses the following verbs or functions:
- dut_boot
- dut_login
- dut_exec
- dut_copyfrom
- dut_copyto
- fota = "flash-over-the-air" for flashing a board
Questions:
- what layer provides these?
- what layer calls these?
ttc (Tiny Target Control)
Uses the following verbse or functions:
- ttc kinstall - install kernel (either to target or tftp area on server)
- ttc fsinstall - install root filesystem (either to target or nfs area on server)
- ttc reboot - reboot the target
- ttc console - get access to console on the target
- ttc login - get to login shell on the target
- ttc run - execute a command on the target
- ttc cp - copy files to or from the target
- example: ttc [<board>] cp file target:/tmp
- example: ttc [<board>] cp target:/some/dir/file hostfile
- ttc rm - remove files from target
- ttc waitfor - wait for a command to complete successfully
reservations
- ttc status - show status of a board (including reservation)
- ttc reserve - reserve a target
- ttc release - release a target
labgrid
r4d
LAVA
kernelCI (as a caller)
Fuego
These are considered the "transport" APIs:
- cmd - execute a command on the device under test
- report - execute a command, and log its output (used to execute the actual test program)
- put - copy files and/or directories to the device under test
- get - copy files and/or directories from the device under test
And a board management API:
- reboot - reboot the device under test
details
The APIs provided by the plugin-class for this are:
- ov_transport_connect - establish communication channel with a board
- ov_transport_disconnect - disconnect communication channel with a board
- ov_transport_get - get files from a board
- ov_transport_put - put files to a board
- ov_transport_cmd - execute a command on the board
- ov_board_setup - provision and reserve a board or instantiate a vm
- ov_board_teardown - destroy a vm instance, or release a board
- ov_board_control_reboot - reboot a board
Currently in Fuego, The setup, teardown, connect and disconnect functions are often empty for a board, and provisioning is left as an exercise for a different element of the CI loop.
syzbot
Uses 4 verbs: