Deploying Seco B68 in LAVA lab

Here’s what you need and how to connect the Seco B68 board into the LAVA lab system. This article assumes that the lab is using rpi4 as LAVA worker but same can be applied to any hardware.

Connect the board to LAVA worker

Serial Connection

Seco B68 board uses the RS232 serial connection which means you need a device like this one or similar.

The board uses CN 16 pin header for connecting the serial as can be seen in the following image:

So if you want to connect serial to COM1, the Tx wire from the RS232 module goes into pin 1, the Rx goes into pin3 and GND to pin 5; those are physically next to each other, for reference. The USB part goes directly into the RPI4 LAVA worker.

Power

The board power consumption specs (along with all other info) can be found here but we used a 19V, 3.15A adapter that comes with the board.

Display

The display input is mini DP and it’s needed only once to double check the the serial connection is enabled in BIOS. For my board, it was enabled and AFAIK it’s the default.

Storage

We use an SSD to deploy the .wic image and boot the board. In order to do this we need the SSD, the SATA2.5 to USB3.0 adapter or enclosure. This SSD must be connected to the Aten USB switch, where both the Seco board and the LAVA worker will also be connected.

After all of these steps are done, we’re ready to add the device to LAVA.

LAVA device configuration

We will use flasher deployment method to switch the control of the SSD to LAVA worker, deploy the .wic image to the SSD, then switch the control of SSD back to the DUT and power cycle the board.

The device config should look like this:

{% extends 'seco-b68.jinja2' %}
{% set hard_reset_command = '/root/power-control/pdu-reset.sh 6' %}
{% set power_off_command = '/root/power-control/pdu-off.sh 6' %}
{% set power_on_command = '/root/power-control/pdu-on.sh 6' %}
{% set connection_list = ['uart0'] %}
{% set connection_tags = {'uart0': ['primary', 'telnet']} %}
{% set connection_command = 'telnet localhost 7003' %}
{% set flasher_deploy_commands = ['/usr/sbin/switch-ssd.sh 2',
                                  'sleep 5',
                                  'dd if="{IMAGE}" of="/dev/disk/by-id/usb-Generic_Ultra_HS-SD_MMC_000000264001-0:0" bs=1M',
                                  'sleep 5',
                                  '/usr/sbin/switch-ssd.sh 4'] %}
{% set sync_to_lava = {'device_type': 'seco-b68', 'worker': 'worker.warsaw.lab', 'tags': [], 'aliases': []} %}

Example job

device_type: seco-b68
job_name: b68 example job

timeouts:
  job:
    minutes: 10
  action:
    minutes: 5
  connection:
    minutes: 5
priority: medium
visibility: public

actions:
- deploy:
    to: flasher
    images:
      recovery_image:
        url: http://archive.validation.linaro.org/artifacts/private/stevan.radakovic/2021/12/01/15/19/core-image-minimal-intel-corei7-64-20180205154224.iso

- boot:
    method: minimal
    timeout:
      minutes: 5
    auto_login:
      login_prompt: 'intel-corei7-64 login:'
      username: root
    prompts:
    - 'root@intel-corei7-64:~#'

@stevanr is this also documented in the official documentation?

@Chiara_Del_Fabbro no, I don’t believe any of our deployment articles are