Adding FVP support.
fvp boot and deploy methods to docker devices.
General flow is as follows.
- Run a docker deploy to pull a docker image. This image will need to contain the FVP binaries.
- Run a fvp deploy to pull in certain binaries for use with running the FVP (rootfs, other artifacts)
- Run an fvp boot action which is similar to the docker boot action, as it will be booting a docker image.
- Arguments for this are required, such as where the FVP binary is located in the image, environment variables that are required to be set (for license reasons), arguments to pass to the binary, and a regex used later to find the serial port from the output.
- Firstly it runs the FVP binary with
--version, and creates a result so this can be viewed in metadata.
- Then it runs FVP with the arguments give, with replacements for paths any downloaded files in the FVP deploy action once mounted into container, plus normal extra docker arguments from the device settings.
- When the
console_stringregex is found, the PORT is extracted.
- Once we know the port, a
docker exec $container telnet localhost $portis executed, and from here on in, the UART LAVA is connected to is that UART.
- Subsequent tests communicate on that UART.
Note: Initially, we had thought that FVP binaries would be downloaded as part of FVP deploy, but after discussing in the design meeting last week, we now have reworked so that we assume FVP binaries are in the docker image (see the sample job for FVP). I think we've removed any references to having FVP image downloaded as part of deploy stage, but might have missed some areas. If there are sections that are still present but you don't think are required, I'm happy to remove them.