Hi,
I would like to use lava for coreboot.
coreboot is an open-source bootloader for multiple architectures including replacing BIOS/UEFI on x86.
coreboot needs to installed on flash which is soldered on the mainboard. To flash/install coreboot you need an external SPI flasher e.g. the Beagleboneblack can do this. Using a SPI Testclip, it's possible to flash the SPI chip in-circuit. The SPI chip and partially the mainboard needs to be powered externally.
My concrete test setup is a thinkpad x60. To flash coreboot, I have to do the following:
1 disconnect the power to DUT 2 connect external 3.3V to the SPI chip (and partially DUT) 3 connect the beagleboneblack's SPI pins to the DUT 4 flash coreboot via beagleboneblack 5 disconnect beagleboneblack 6 disconnect external power supply 7 power the x60 8 press the power button of the DUT 9 run test on linux
I've managed to do all the hardware work. * control the power to the DUT via pdudaemon using a ubiquity power [1]. * control external 3.3V via raspberry gpio's on a relais card * control powerbutton via raspberry gpio's on a relais card * put beagleboneblack's spi pins into high-z via dts-overlays [2]
TLDR;
I'm looking for feedback about implementing a lava for coreboot.
What's a good way to integrate the coreboot flashing flow into lava? I started writing a pipeline driver for flashrom [3].
How should I integrate the raspberrypi's gpios controlling important things? Using pdudaemon again?
Do you use safeguards to protect damage from devices? E.g. It's possible to enable both powersupply for DUT and might kill one.
[1] https://github.com/mattface/pdudaemon/pull/1 [2] https://github.com/lynxis/bbb_highz_spi [3] https://github.com/lynxis/lava-dispatcher/blob/master/lava_dispatcher/pipeli...