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:
committed by
Simon Glass
parent
08a888fa52
commit
576d24dba7
@@ -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
|
||||
|
||||
35
test/hooks/bin/common.labgrid-trini
Normal file
35
test/hooks/bin/common.labgrid-trini
Normal 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
|
||||
24
test/hooks/bin/console.labgrid-trini
Executable file
24
test/hooks/bin/console.labgrid-trini
Executable 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
|
||||
31
test/hooks/bin/flash.labgrid-trini.sd-mux
Normal file
31
test/hooks/bin/flash.labgrid-trini.sd-mux
Normal 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
|
||||
30
test/hooks/bin/konsulko-labgrid/conf.am62x_beagleplay_a53_na
Normal file
30
test/hooks/bin/konsulko-labgrid/conf.am62x_beagleplay_a53_na
Normal 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
|
||||
30
test/hooks/bin/konsulko-labgrid/conf.am64x_evm_a53_na
Normal file
30
test/hooks/bin/konsulko-labgrid/conf.am64x_evm_a53_na
Normal 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
|
||||
1
test/hooks/bin/konsulko-labgrid/conf.rpi_4_32b_na
Symbolic link
1
test/hooks/bin/konsulko-labgrid/conf.rpi_4_32b_na
Symbolic link
@@ -0,0 +1 @@
|
||||
conf.rpi_arm64_na
|
||||
1
test/hooks/bin/konsulko-labgrid/conf.rpi_4_na
Symbolic link
1
test/hooks/bin/konsulko-labgrid/conf.rpi_4_na
Symbolic link
@@ -0,0 +1 @@
|
||||
conf.rpi_arm64_na
|
||||
25
test/hooks/bin/konsulko-labgrid/conf.rpi_arm64_na
Normal file
25
test/hooks/bin/konsulko-labgrid/conf.rpi_arm64_na
Normal 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
|
||||
24
test/hooks/bin/reset.labgrid-trini
Executable file
24
test/hooks/bin/reset.labgrid-trini
Executable 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
|
||||
46
test/hooks/bin/writer.labgrid-trini.rpi
Normal file
46
test/hooks/bin/writer.labgrid-trini.rpi
Normal 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"
|
||||
35
test/hooks/bin/writer.labgrid-trini.ti-k3
Normal file
35
test/hooks/bin/writer.labgrid-trini.ti-k3
Normal 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"
|
||||
Reference in New Issue
Block a user