hooks: labgrid: Add wrapper scripts around using labgrid-client for device control

General usage for these hooks is documented in the README.md file. In
terms of implementation, To start with, we add a common file to ensure
that all required environment variables are set. Next, we add a console
script which calls labgrid-console. We also add a reset script that
behaves similarly. For writing files a wrapper around using
labgrid-client sd-mux is provided and then both Raspberry Pi an TI K3
platforms have writers provided. Sample board conf files can be found in
the bin/konsulko-labgrid directory.

Reviewed-by: Simon Glass <sjg@chromium.org>
Co-developed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Edi Feschiyan <edi.feschiyan@konsulko.com>
This commit is contained in:
Edi Feschiyan
2024-08-29 12:56:20 -06:00
committed by Simon Glass
parent 08a888fa52
commit 576d24dba7
12 changed files with 294 additions and 1 deletions

View File

@@ -206,7 +206,7 @@ program which is used to integrate with the U-Boot pytests.
Since Labgrid has all the information necessary to build and boot on a lab,
there is no per-board configuration required. The various flash.xxx and
recovery.xxx scripts are not used. To set it up:
recovery.xxx scripts are not used. To set it up, one implementation is:
- In your bin/$hostname directory, create an executable file
`common-labgrid-sjg` and set your crossbar and environment information, for
@@ -250,6 +250,17 @@ containing::
That should be all that is needed.
An alternate implementation requires setting the following environment
variables must be set as per your lab:
- `LG_CROSSBAR` must point at the crossbar service.
- `LG_PLACE` must point at the device under test.
- `LG_ENV` must point at the labgrid yaml file that describes your lab.
In order for a given platform to be tested, it must be acquired before starting
tests and then released once complete. See the bin/konsulko-labgrid directory
for example boards using this method.
## Dependencies
The example scripts depend on various external tools, the installation location

View File

@@ -0,0 +1,35 @@
# Copyright (c) 2024 Konsulko Group. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# Ensure we have all environment variables set
if [ -z "${LG_CROSSBAR}" ]; then
echo "LG_CROSSBAR is unset";
exit 1;
fi
if [ -z "${LG_PLACE}" ]; then
echo "LG_PLACE is unset";
exit 1;
fi
if [ -z "${LG_ENV}" ]; then
echo "LG_ENV is unset";
exit 1;
fi

View File

@@ -0,0 +1,24 @@
# Copyright (c) 2024 Konsulko Group. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# Ensure we have all environment variables set
. common.labgrid-trini
exec labgrid-client console

View File

@@ -0,0 +1,31 @@
# Copyright (c) 2024 Konsulko Group. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# Ensure we have all environment variables set
. common.labgrid-trini
echo "switching sd-mux to host"
labgrid-client sd-mux host
#let mmc have some time to initialize to be available for udisks
sleep 1
. writer.${flash_writer}
echo "switching sd-mux to dut"
labgrid-client sd-mux dut

View File

@@ -0,0 +1,30 @@
# Copyright (c) 2024 Konsulko Group. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# List the files to copy
tispl=tispl.bin_unsigned
uboot=u-boot.img_unsigned
tiboot3=tiboot3-am62x-gp-evm.bin
# Use labgrid
console_impl=labgrid-trini
reset_impl=labgrid-trini
flash_impl=labgrid-trini.sd-mux
flash_writer=labgrid-trini.ti-k3

View File

@@ -0,0 +1,30 @@
# Copyright (c) 2024 Konsulko Group. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# List the files to copy
tispl=tispl.bin_unsigned
uboot=u-boot.img_unsigned
tiboot3=tiboot3-am64x-gp-evm.bin
# Use labgrid
console_impl=labgrid-trini
reset_impl=labgrid-trini
flash_impl=labgrid-trini.sd-mux
flash_writer=labgrid-trini.ti-k3

View File

@@ -0,0 +1 @@
conf.rpi_arm64_na

View File

@@ -0,0 +1 @@
conf.rpi_arm64_na

View File

@@ -0,0 +1,25 @@
# Copyright (c) 2024 Konsulko Group. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# Use labgrid
console_impl=labgrid-trini
reset_impl=labgrid-trini
flash_impl=labgrid-trini.sd-mux
flash_writer=labgrid-trini.rpi

View File

@@ -0,0 +1,24 @@
# Copyright (c) 2024 Konsulko Group. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# Ensure we have all environment variables set
. common.labgrid-trini
exec labgrid-client power cycle

View File

@@ -0,0 +1,46 @@
# Copyright (c) 2024 Konsulko Group. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# Ensure we have all environment variables set
. common.labgrid-trini
set -e
build=${U_BOOT_BUILD_DIR}
configtxt=`mktemp`
echo "enable_uart=1" | tee ${configtxt}
echo "kernel=u-boot.bin" | tee -a ${configtxt}
case "${board_type}" in
rpi_3|rpi_3b|rpi_3_b_plus|rpi_4|rpi_arm64)
echo "arm_64bit=1" | tee -a ${configtxt}
;;
esac
case "${board_ident}" in
3-32-pl011)
echo "dtoverlay=pi3-miniuart-bt" | sudo tee -a ${configtxt}
;;
esac
labgrid-client write-files -T ${configtxt} config.txt
labgrid-client write-files -T ${build}/u-boot.bin u-boot.bin
rm ${configtxt}
echo "Done writing build"

View File

@@ -0,0 +1,35 @@
# Copyright (c) 2024 Konsulko Group. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# Ensure we have all environment variables set
. common.labgrid-trini
build=${U_BOOT_BUILD_DIR}
if [ -z "${tispl}" -o -z "${uboot}" -o -z "${tiboot3}" ]; then
echo "Must configure tispl, uboot, tiboot3 and optionally sysfw"
echo "per the board documentation."
exit 1
fi
echo "Writing build at ${build}"
labgrid-client write-files -T ${build}/${tispl} tispl.bin
labgrid-client write-files -T ${build}/${uboot} u-boot.img
labgrid-client write-files -T ${build/_a??/_r5}/${tiboot3} tiboot3.bin
echo "Done writing build"