LAVA lacks ability to test bootloader/u-boot
Bug #837032 reported by
Alexander Sack
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
LAVA Dispatcher |
Invalid
|
High
|
Unassigned |
Bug Description
This is a follow up bug for discussion about u-boot testing in bug 833832. Filing against lava lab project as this seems to involve hardware plumming.
Background: The bootloader currently needs to be rock solid for boards in rack. Basically, if the bootloader fails the board is gone from the pool and requires manual maintenance. That's not scalable and until we have a way to automate replacing bootloader in a failsafe way we cannot offer bootloader testing in the lab.
Please discuss.
affects: | lava-lab → lava-dispatcher |
Changed in lava-dispatcher: | |
importance: | Undecided → High |
status: | New → Confirmed |
To post a comment you must log in.
The difficulty is that as it stands, Panda naturally always wants to boot into the X-loader / U-Boot it finds on the SD Card.
If we teleported in a broken X-loader / U-Boot because that's what we wanted to have tested, then we kind of brick the Panda until someone comes and rewrites the SD by hand or swaps in a good card. That's not really acceptable.
One solution to this is to provide a fake SD card PCB which comes out into two SD sockets. One contains a stable reference boot image and initrd, the other contains the test image. By one out-of-band means or another, we allow the test system to select which of the SD cards is visible to the Panda after reset.
If it selects the reference SD, the initrd is loaded and the SD card switched back by timeout to the test image SD, From the initrd userland, the test environment can nuke and prepare the test image SD for the test action over the network. Since it's an initrd, the test image SD is not mounted so you have full control over it.
If it selects the test image SD, then that just boots normally, if it's workable the tests are run otherwise the test session times out and it can be rebooted into the reference SD environment again to prepare for the next test image. That's the case even if, eg, x-loader is corrupted or missing in the test SD image.