3.0 KiB
CDBA protocol description
General stuff:
cdba operates over ssh
Client:
~/.ssh/configis effectively the 'real' config on the client side- The connection is established by executing:
# serverbinaryname defaults to 'cdba-server'
/usr/bin/ssh user@server serverbinaryname
- ssh
stdoutreceivesmessagesand the client is expected to handle them instantly after receiving, untilEOF - ssh
stderrreceivesstatus updates(blue text) and the client is expected to handle them instantly after receiving, untilEOF
Server:
- The server enumerates all of the connected devices, based on a configuration file
- Client messages are received over
stdin - Messages are sent to the clients over
stdout, until the connection is closed (or drops) - The server opens a tty to the serial port on the device and forwards the output via
MSG_CONSOLE
Supported messages
C - client | S - server
1 - MSG_SELECT_BOARD [C -> S]
data = string board name | len = sizeof(data)Select the board to operate on.
Return [S]: Echo the command back with
len = 0.
2 - MSG_CONSOLE [C <-> S]
data = string_buffer | len = sizeof(data)Send TTY I/O.Return [C/S]: Echo the command back with
len = sizeof(buf), data = buf.
3 - MSG_HARDRESET
<unused>
4 - MSG_POWER_ON [C -> S]
len = 0Power on the board.
Return [S]: Echo the command back with
len = 0.
5 - MSG_POWER_OFF [C -> S]
len = 0Power off the board.
Return [S]: Echo the command back with
len = 0.
6 - MSG_FASTBOOT_PRESENT [S -> C]
data = 0 / 1 | len = 1Signal that the device is available over fastboot and ready to receive further commands. Return [C]: MSG_FASTBOOT_DOWNLOAD or MSG_FASTBOOT_CONTINUE with
len = 0.
7 - MSG_FASTBOOT_DOWNLOAD [C -> S]
data = binary_chunk | len = sizeof(data)Send binary data for fastboot.
Return [S]: Echo the command back with
len = 0.
8 - MSG_FASTBOOT_BOOT
<unused>
9 - MSG_STATUS_UPDATE [C -> S]
TODO: json
Return:
10 - MSG_VBUS_ON [C -> S]
Enable USB VBUS going to the board.
Return [S]: None
11 - MSG_VBUS_OFF [C -> S]
Disable USB VBUS going to the board.
Return [S]: None
12 - MSG_FASTBOOT_REBOOT
<unused>
13 - MSG_SEND_BREAK [C -> S]
len = 0Send a tcsendbreak to the board.
Return [S]: None
14 - MSG_LIST_DEVICES [C - > S]
len = 0List the available boards.
Return [S]: Echo the command back NUM_DEVICES times with
len = sizeof(buf), data = buf. Once done, echo the command back withlen = 0.
15 - MSG_BOARD_INFO [C -> S]
data = string board name | len = sizeof(data)Get the board description.
Return [S]: Echo the command back with
len = sizeof(buf), data = buf.
16 - MSG_FASTBOOT_CONTINUE [C -> S]
len = 0Send
fastboot continueto the board.Return [S]: Echo the command back with
len = 0.