Compare commits

...

3 Commits
loadf ... tes

Author SHA1 Message Date
Simon Glass
97ccfdbe16 CI: Update to use the hooks in the U-Boot repo
Now that the hooks are present, make use of them directly rather than
cloning the separate repo.

Series-to: u-boot
Cover-letter:
test: Bring in the test hooks
During a recent discussion with Heinrich we discussed why the hooks are
kept in a separate repo.

The amount of code is small, a tenth of the size of the recently added
lwip. Testing is a critical part of U-Boot and one of the things that
distinguishes it from projects that have not kept up in this area. By
having the tests somewhere else, we are signalling that it is unusual,
or difficult, or optional.

The hooks mechanism also needs something of an update to take account of
real boards in 2025. That will be much easier to undertake if the code
that test/py talks to is in the same repo.

This series brings the hook files in as first-class citizens of U-Boot.
END

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-05-01 08:56:34 -06:00
Simon Glass
741691f537 doc: Tidy up the hooks documentation
Now that these files are within the repo, link the documentation to the
normal U-Boot documentation. Update directory paths and convert it to
rST format.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-05-01 08:56:24 -06:00
Simon Glass
572817786e test: Bring in the test hooks
Bring these in from u-boot-test-hooks commit a7bd2dc

A few changes are included:

- directory permission set to 755
- Contributing.md is dropped since it is no-longer relevant
- the 'src' and 'udev' directories are now inside a 'contrib' directory,
  since they are really just examples.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-05-01 08:56:11 -06:00
195 changed files with 5214 additions and 27 deletions

View File

@@ -251,13 +251,12 @@ stages:
# the below corresponds to .gitlab-ci.yml "before_script"
cd \${WORK_DIR}
git config --global --add safe.directory \${WORK_DIR}
git clone --depth=1 https://source.denx.de/u-boot/u-boot-test-hooks /tmp/uboot-test-hooks
# qemu_arm64_lwip_defconfig is the same as qemu_arm64 but with NET_LWIP enabled.
# The test config and the boardenv file from qemu_arm64 can be re-used so create symlinks
ln -s conf.qemu_arm64_na /tmp/uboot-test-hooks/bin/travis-ci/conf.qemu_arm64_lwip_na
ln -s u_boot_boardenv_qemu_arm64_na.py /tmp/uboot-test-hooks/py/travis-ci/u_boot_boardenv_qemu_arm64_lwip_na.py
ln -s travis-ci /tmp/uboot-test-hooks/bin/\`hostname\`
ln -s travis-ci /tmp/uboot-test-hooks/py/\`hostname\`
ln -s conf.qemu_arm64_na test/hooks/bin/travis-ci/conf.qemu_arm64_lwip_na
ln -s u_boot_boardenv_qemu_arm64_na.py test/hooks/py/travis-ci/u_boot_boardenv_qemu_arm64_lwip_na.py
ln -s travis-ci test/hooks/bin/\`hostname\`
ln -s travis-ci test/hooks/py/\`hostname\`
if [[ "\${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then
wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.3.1/opensbi-1.3.1-rv-bin.tar.xz | tar -C /tmp -xJ;
export OPENSBI=/tmp/opensbi-1.3.1-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin;
@@ -307,12 +306,12 @@ stages:
/opt/coreboot/cbfstool \${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom remove -n fallback/payload;
/opt/coreboot/cbfstool \${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom add-flat-binary -f \${UBOOT_TRAVIS_BUILD_DIR}/u-boot.bin -n fallback/payload -c LZMA -l 0x1110000 -e 0x1110000;
fi
export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:\${PATH}
export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci
export PATH=/opt/qemu/bin:test/hooks/bin:\${PATH}
export PYTHONPATH=test/hooks/py/travis-ci
# "\${var:+"-k \$var"}" expands to "" if \$var is empty, "-k \$var" if not
./test/py/test.py -ra -o cache_dir="\$UBOOT_TRAVIS_BUILD_DIR"/.pytest_cache --bd \${TEST_PY_BD} \${TEST_PY_ID} \${TEST_PY_EXTRA} \${TEST_PY_TEST_SPEC:+"-k \${TEST_PY_TEST_SPEC}"} --build-dir "\$UBOOT_TRAVIS_BUILD_DIR" --report-dir "\$UBOOT_TRAVIS_BUILD_DIR" --junitxml=\$(System.DefaultWorkingDirectory)/results.xml
# the below corresponds to .gitlab-ci.yml "after_script"
rm -rf /tmp/uboot-test-hooks /tmp/venv
rm -rf /tmp/venv
EOF
- task: CopyFiles@2
displayName: 'Copy test.sh for later usage'

View File

@@ -30,15 +30,13 @@ stages:
rules:
- when: always
before_script:
# Clone uboot-test-hooks
- git config --global --add safe.directory "${CI_PROJECT_DIR}"
- git clone --depth=1 https://source.denx.de/u-boot/u-boot-test-hooks /tmp/uboot-test-hooks
# qemu_arm64_lwip_defconfig is the same as qemu_arm64 but with NET_LWIP enabled.
# The test config and the boardenv file from qemu_arm64 can be re-used so create symlinks
- ln -s conf.qemu_arm64_na /tmp/uboot-test-hooks/bin/travis-ci/conf.qemu_arm64_lwip_na
- ln -s u_boot_boardenv_qemu_arm64_na.py /tmp/uboot-test-hooks/py/travis-ci/u_boot_boardenv_qemu_arm64_lwip_na.py
- ln -s travis-ci /tmp/uboot-test-hooks/bin/`hostname`
- ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname`
- ln -s conf.qemu_arm64_na test/hooks/bin/travis-ci/conf.qemu_arm64_lwip_na
- ln -s u_boot_boardenv_qemu_arm64_na.py test/hooks/py/travis-ci/u_boot_boardenv_qemu_arm64_lwip_na.py
- ln -s travis-ci test/hooks/bin/`hostname`
- ln -s travis-ci test/hooks/py/`hostname`
- if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then
wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.3.1/opensbi-1.3.1-rv-bin.tar.xz | tar -C /tmp -xJ;
export OPENSBI=/tmp/opensbi-1.3.1-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin;
@@ -60,7 +58,7 @@ stages:
after_script:
- cp -v /tmp/${TEST_PY_BD}/*.{html,css,xml} .
- rm -rf /tmp/uboot-test-hooks /tmp/venv
- rm -rf /tmp/venv
script:
# If we've been asked to use clang only do one configuration.
- export UBOOT_TRAVIS_BUILD_DIR=/tmp/${TEST_PY_BD}
@@ -93,8 +91,8 @@ stages:
/opt/coreboot/cbfstool ${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom add-flat-binary -f ${UBOOT_TRAVIS_BUILD_DIR}/u-boot.bin -n fallback/payload -c LZMA -l 0x1110000 -e 0x1110000;
fi
# "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not
- export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH};
export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci;
- export PATH=/opt/qemu/bin:test/hooks/bin:${PATH};
export PYTHONPATH=test/hooks/py/travis-ci;
./test/py/test.py -ra --bd ${TEST_PY_BD} ${TEST_PY_ID} ${TEST_PY_EXTRA}
${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"}
--build-dir "$UBOOT_TRAVIS_BUILD_DIR"

View File

@@ -85,6 +85,7 @@ Testing
tests_writing
tests_sandbox
binman_tests
test_hooks
Refactoring
-----------

View File

@@ -314,6 +314,8 @@ via `$PATH`. These scripts implement certain actions on behalf of the test
suite. This keeps the test suite simple and isolated from system variances
unrelated to U-Boot features.
For more details see :doc:`test_hooks`.
Hook scripts
~~~~~~~~~~~~
@@ -404,9 +406,9 @@ saving wear on the flash chip(s).
Examples
''''''''
https://source.denx.de/u-boot/u-boot-test-hooks contains some working example hook
The directory `test/hooks` contains some working example hook
scripts, and may be useful as a reference when implementing hook scripts for
your platform. These scripts are not considered part of U-Boot itself.
your platform. These scripts are considered part of U-Boot itself.
Board-type-specific configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -469,16 +471,16 @@ instances of:
Complete invocation example
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Assuming that you have installed the hook scripts into $HOME/ubtest/bin, and
any required environment configuration Python modules into $HOME/ubtest/py,
then you would likely invoke the test script as follows:
Assuming that you have installed U-Boot `$UBOOT`, any new hooks into
`$UBOOT/test/hooks/bin` and any new configuration Python modules into
`$UBOOT/test/hooks/py`, then you would likely invoke the test script as follows:
If U-Boot has already been built:
.. code-block:: bash
PATH=$HOME/ubtest/bin:$PATH \
PYTHONPATH=${HOME}/ubtest/py/${HOSTNAME}:${PYTHONPATH} \
PATH=$UBOOT/test/hooks/bin:$PATH \
PYTHONPATH=$UBOOT/test/hooks/py/${HOSTNAME}:${PYTHONPATH} \
./test/py/test.py --bd seaboard
If you want the test script to compile U-Boot for you too, then you likely
@@ -488,7 +490,7 @@ follows:
.. code-block:: bash
CROSS_COMPILE=arm-none-eabi- \
PATH=$HOME/ubtest/bin:$PATH \
PATH=$UBOOT/test/hooks/bin:$PATH \
PYTHONPATH=${HOME}/ubtest/py/${HOSTNAME}:${PYTHONPATH} \
./test/py/test.py --bd seaboard --build
@@ -496,8 +498,8 @@ or, using buildman to handle it:
.. code-block:: bash
PATH=$HOME/ubtest/bin:$PATH \
PYTHONPATH=${HOME}/ubtest/py/${HOSTNAME}:${PYTHONPATH} \
PATH=$UBOOT/test/hooks/bin:$PATH \
PYTHONPATH=$UBOOT/test/hooks/py/${HOSTNAME}:${PYTHONPATH} \
./test/py/test.py --bd seaboard --build --buildman
Writing tests

306
doc/develop/test_hooks.rst Normal file
View File

@@ -0,0 +1,306 @@
Hardware testing
================
The ``test/hooks`` directory contains support ("hook") scripts for U-Boot's
built-in test framework. That framework is located in the `test/py/` directory
in the U-Boot source tree.
You may use these examples as a reference when creating your own hook scripts,
or even derive your own scripts directly from the files in ``test/hooks``.
Contributing
------------
Please send a patch to the U-Boot as per :doc:`process`
Flashing Philosophy
-------------------
U-Boot may be installed onto a target device either by:
- Writing the U-Boot binary to flash, so that it runs at every cold boot or
reset. In this case, flashing is a one-time operation.
- Downloading U-Boot into RAM whenever it needs to RAM. In this case, the
download needs to happen every time the target board is reset, since the
desired binary is not permanently stored on the system.
The example scripts in ``test/hooks`` take the second approach. This approach
avoids modifying the device's flash memory for each U-Boot binary to be tested,
which should increase longevity of the device. This does mean that the
implementation of the `test/py/` hook scripts is slightly inconsistent with
their naming; `u-boot-test-flash` does nothing whereas `u-boot-test-reset`
downloads U-Boot into RAM rather than only performing a simple system reset.
USB Port Paths
--------------
When multiple USB devices of the same type are attached to the same system, some
mechanism for differentiating between them is required, in order for software to
choose which device to communicate with. In some cases, the only available
mechanism is based on the physical USB port to which the device is attached. For
this mechanism to work, there must be a stable way to uniquely name each
physical USB port. The naming convention is known as the USB port path.
Each USB bus in the system is assigned a unique number by the Linux kernel.
These numbers are typically stable across reboots since they are assigned based
on device creation or probing order, which is usually driven by stable
BIOS-driven data structures. Changes to system hardware can cause these numbers
to change though. Equally, it's a good idea to validate the bus numbers after
reboot. The USB bus number forms the first part of the USB port path.
Each USB controller or hub contains a number of physical USB ports (sockets).
Each of these has a unique fixed number, per the USB specification. These port
numbers form the balance of the USB port path.
Linux uses the format `${bus}-${port}.${port}.${port}...` to represent the USB
port path.
For example::
+--------------+
| PC |
| +----------+ |
| | USB ctlr | |
| | Bus 4 | | +----------+
| | Port 1 |---------| USB hub |
| +----------+ | | Port 1 | +-----------------+
+--------------+ | Port 2------ | USB device |
| Port 3 | | Port path 4-1.2 |
+----------+ | Bus/device 4/15 |
+-----------------+
Note that USB device numbers are not stable; they change each time a device
appears on the bus, such as when it is power cycled or reset.
To determine the USB port path of your device, first manually identify a device
node related to your USB device. For example, you might run `lsusb` with the
device both unplugged and plugged in, find the device's bus and device number,
and then use device file `/dev/bus/usb/${busnum}/${devnum}`. Alternatively, you
may find some type-specific device node such as `/dev/ttyUSB2` or `/dev/sdc` by
experimentation using tools such as `picocom` or `mount` and `ls`.
Once a device node has been identified, use udevadm to query all known
information about the device, then find an entry with `SUBSYSTEMS=="usb"` and a
`KERNELS` value in the format of a USB port path::
$ udevadm info -a /dev/ttyUSB2
...
looking at device '/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.2/ttyUSB2/tty/ttyUSB2':
KERNEL=="ttyUSB2"
SUBSYSTEM=="tty"
DRIVER==""
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.2/ttyUSB2':
KERNELS=="ttyUSB2"
SUBSYSTEMS=="usb-serial"
DRIVERS=="ftdi_sio"
...
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.2':
KERNELS=="3-6:1.2"
SUBSYSTEMS=="usb"
DRIVERS=="ftdi_sio"
...
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-6':
KERNELS=="3-6"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
...
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3':
KERNELS=="usb3"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
Here, the USB port path is "`3-6`".
or::
$ udevadm info -a /dev/bus/usb/003/086
....
looking at device '/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10.4':
KERNEL=="3-10.4"
SUBSYSTEM=="usb"
DRIVER=="usb"
Here, the USB port path is "`3-10.4`".
udev Rules
----------
See the `test/hooks/udev/` directory.
Testing should be performed as a non-root user. This requires that the relevant
device nodes have non-default permissions. udev rules may be used to achieve
this.
To save hardware, it is possible to attach multiple Tegra devices to a single
host machine. This requires that each program that interacts with the device be
able to communicate with a specific Tegra device.
Some applications allow the USB port path be passed to them as a parameter. This
requires no configuration via udev.
Some applications use device-specific properties to identify devices, such as
the serial number encoded into a USB device descriptor. This requires no
configuration via udev.
Other applications allow a USB device filename to be passed in. udev rules may
be used to create well-known device filenames based on a device's USB port
path.
The example udev rules demonstrate both of these types of rules.
Scripts and Binaries
--------------------
See the `test/hooks/bin/` directory.
Scripts exist to power on, power off, flash, and reset Tegra boards, and access
their serial console. The U-Boot test framework expects these scripts to exist
in `$PATH`, and executes them at appropriate times.
Note that the test framework itself does not use the power on/off scripts.
However, they may be used by a companion continuous integration framework that
triggers the U-Boot test framework. For example,
https://github.com/swarren/u-boot-ci-scripts.
U-Boot's test framework identifies each board by type (e.g. p2371-2180; the
engineering name for Jetson TX1) and identity (an arbitrary user-assigned string
used to differentiate multiple instances of the same board type within a user's
testing setup). Each script is passed these two parameters to inform it which
board to operate upon.
Different test setups will use different techniques to control target hardware.
For example, reset and forced recovery signals may be manipulated through
NVIDIA's proprietary PM342 debug board, or some form of relay or electronic
switch board hard-wired to the board's physical buttons.
The scripts are written to be highly generic, and allow sharing of code between
boards. To this end, the top-level implementation of each script does little
more than include a board-specific configuration file, and then include another
file specific to implementation the desired action.
Board configuration files are located in
`test/hooks/bin/${hostname}/conf.${board_type}_${board_identity}`. These files
are segregated by hostname so that the repository can be used directly across
multiple different test machines, without the need for host-specific branches or
post-checkout configuration. Your scripts can also exist outside the U-Boot
repo if that is helpful.
The board configuration file defines which mechanism is used for each possible
action, and any parameters associated with it. For example, downloading U-Boot
into RAM may used either the `tegra-uboot-flasher` tool for boards containing
T124 or earlier, or L4T's `exec-uboot.sh` for boards containing T210 or newer.
These scripts. In each case, the directory name where the tool is installed must
be defined.
Each action is implemented in a script fragment directly in the`test/hooks/bin/`
directory, with filename `${action_type}.${implementation_name}`.
If using these scripts directly for testing Tegra devices, it is likely that
you will not need to create new `download.*` implementations, but will need to
create new `poweroff.*`, `poweron.*`, and `recovery.*` implementations.
Observe that some external tools (`download.*` especially) invoked by these
scripts must be replicated once per board instance, or their actions somehow
serialized, since they copy files into their own directories when executing, and
hence parallel execution would cause incorrect operation.
Labgrid Integration
-------------------
Labgrid is a python library for embedded-board-control. It includes a client
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, one implementation is:
- In the test/hooks/bin/$hostname directory, create an executable file
`common-labgrid-sjg` and set your crossbar and environment information, for
example::
# Hostname and port for the gRPC coordinator
export LG_COORDINATOR=kea:20408
# Environment file for the lab
export LG_ENV="/path/to/kea_env.cfg"
# Location of the U-Boot test hooks
export UB_TEST_HOOKS=/path/to/u-boot/test/hooks
# Make sure only one buildman can run at a time, since it uses all CPUs
export BUILDMAN_PROCESS_LIMIT=1
# Use the internal console since microcom can miss serial input at boot
export LG_CONSOLE="internal"
# Tell u-boot-test-hooks to use the Labgrid-sjg integration
export USE_LABGRID_SJG=1
flash_impl=none
reset_impl=none
console_impl=labgrid-sjg
release_impl=labgrid-sjg
getrole_impl=labgrid-sjg
power_impl=none
The last 6 lines tell the hooks to use Labgrid for console and board release
as well as a new 'getrole' hook which is only used by Labgrid. The flash, reset
and power features of boards are all handled by entirely by Labgrid.
Then create another executable file (in the same directory) called 'conf.all',
containing::
.. code-block:: bash
. "${bin_dir}/${hostname}/common-labgrid-sjg"
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 `test/hooks/bin/konsulko-labgrid`
directory for example boards using this method.
Dependencies
------------
The example scripts depend on various external tools, the installation location
of which must be specified in the board configuration files:
- `tegra-uboot-flasher`; see
https://github.com/NVIDIA/tegra-uboot-flasher-scripts.
- L4T's flashing tools. This must be a regular L4T host-side installation,
possibly stripped down to contain just:
- The top-level directory (which contains `flash.sh` and `*.conf`).
- The `bootloader/` directory.
- The `kernel/` directory.
- `imx_usb`; see
https://github.com/boundarydevices/imx_usb_loader.
- As-yet-unpublished scripts to control various USB relay boards.
U-Boot's test framework also requires a `dfu-util` that supports the -p
command-line option. Most distros provide this nowadays.
Python Modules
--------------
See the `test/hooks/py/` directory.
A Python module exists for each board and defines numerous parameters used by
the U-Boot test framework. The framework expects to simply import these modules
directly, and hence they must be locatable within `$PYTHONPATH`.
These modules are again located in a separate directory for each host, so that
the repository may be shared across hosts.
For complete details re: the required content of these Python modules, please
see :doc:`py_testing` and also the comments in some individual test files in
`test/py/tests/test_*.py`.

View File

@@ -0,0 +1,26 @@
# Copyright (c) 2016, Guillaume GARDET. 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.
console_dev=/dev/ttyUSB0
power_impl=manual
flash_impl=none
reset_impl=recovery_download
recovery_impl=manual
download_impl=imx_usb

View File

@@ -0,0 +1,27 @@
# Copyright (c) 2016 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.
console_impl=qemu
qemu_machine="integratorcp"
qemu_binary="qemu-system-arm"
qemu_extra_args="-nographic"
qemu_kernel_args="-kernel ${U_BOOT_BUILD_DIR}/u-boot"
reset_impl=none
flash_impl=none

View File

@@ -0,0 +1,28 @@
# Copyright (c) 2016 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.
console_impl=qemu
qemu_machine="mips"
qemu_binary="qemu-system-mips"
qemu_extra_args="-nographic -monitor null"
qemu_kernel_args="-drive if=pflash,file=${U_BOOT_BUILD_DIR}/flash,format=raw"
qemu_helper_script="qemu-mips"
reset_impl=none
flash_impl=none

View File

@@ -0,0 +1,27 @@
# Copyright (c) 2016 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.
console_impl=qemu
qemu_machine="vexpress-a15"
qemu_binary="qemu-system-arm"
qemu_extra_args="-nographic -m 1G"
qemu_kernel_args="-kernel ${U_BOOT_BUILD_DIR}/u-boot"
reset_impl=none
flash_impl=none

View File

@@ -0,0 +1,69 @@
# Copyright 2020 Google LLC
#
# 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.
# This can be included by config files to set the cros_servo_port and
# console_dev variables.
# It requires:
# - standalone-hdctools to be installed at the same level as u-boot-test-hooks
# (i.e. at /path/to/u-boot-test-hooks/../standalone-hdctools)
# - a servo board connected. Servo is used to control resetting the board and to
# access the serial console
# - a servodrc also at the directory above u-boot-test-hooks (see sample below)
# - 'servo_name' variable set to the board name, before including this script
# Install hdctools here
# https://chromium.googlesource.com/a/chromiumos/platform/standalone-hdctools
# Information on servo here:
# https://chromium.googlesource.com/chromiumos/third_party/hdctools/+/refs/heads/master/README.md
# the ubtest directory holds u-boot-test-hooks and other things
UBTEST_DIR="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")"
RCFILE="${UBTEST_DIR}/servodrc"
DUT_CONTROL="${UBTEST_DIR}/standalone-hdctools/dut-control"
# Look up the servo_name and get the port number
cros_servo_port="$(grep ^${cros_servo_name}, ${RCFILE} |cut -f3 -d,)"
if [ -z "${cros_servo_port}" ]; then
echo "Failed to find servo port for ${cros_servo_name}"
exit 1
fi
# Find the console
console_dev="$(${DUT_CONTROL} -p ${cros_servo_port} cpu_uart_pty |cut -f2 -d:)"
if [ -z "${console_dev}" ]; then
echo "Failed to find console for ${cros_servo_name}"
exit 1
fi
# Here is a sample servodrc
# This file describes servo boards connected to this host.
#
# Line text starting with # to end of line is ignored, as well as empy lines.
#
# Configuration lines consist of up to 4 comma separated fields, the last
# two are optional:
#
# name serial-number port-number board
#
# Remove the # from the next line
# link, 905537-00223, 9902, link

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,28 @@
# Copyright (c) 2025 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.
# We must be passed the arguments to pass to FVP
ARGS="${fvp_args}"
"${fvp_binary}" ${ARGS} &
# We need to wait for FVP to have spawned itself before launching telnet
sleep 1
exec telnet localhost 5000

View File

@@ -0,0 +1,42 @@
# Copyright 2024 Google LLC
# Written by Simon Glass
#
# 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.
# The variables here can come from one of two places:
#
# 1. When using the ub-xxx scripts (e.g. ub-int) they come from those scripts,
# set by the get_args.sh script
#
# 2. When running from gitlab, the variables are all empty and so take the
# default values below, except for ${strategy} which is set in the gitlab
# script
# On input:
# strategy: Strategy arguments to use, e.g. "-s start". Normally this is
# "-s uboot -e off" but it can be "-s start -e off" or even empty
# verbose: Verbose argument to use, e.g. "-v"
#
# These variables are set by .gitlab-ci.yml or by
exec labgrid-client -V do-bootstrap ${bootstrap:-1} -V do-build ${build:-1} \
-V do-send ${send:-0} -V do-clean ${clean:-0} \
-V process-limit ${BUILDMAN_PROCESS_LIMIT:-0} \
-r "${U_BOOT_BOARD_IDENTITY}" ${strategy} ${verbose} -a console \
${console_log}

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,42 @@
# Copyright (c) 2015, NVIDIA CORPORATION. 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.
if [ -z "${console_baud}" ]; then
console_baud=115200
fi
# Some boards have a UART built into them and it doesn't appear until the
# board is powered on. An example is zynq_zybo. Try to handle this by waiting
# for the console and then continuing as soon as possible (so we don't miss
# the U-Boot banner).
if [ -n "${console_wait}" ]; then
for i in {0..99}; do
if [ -e "${console_dev}" ]; then
break
fi
sleep .1
done
if [ ! -e "${console_dev}" ]; then
echo "Console ${console_dev} not found"
exit 1
fi
fi
exec picocom -b "${console_baud}" "${console_dev}"

View File

@@ -0,0 +1,35 @@
# Copyright (c) 2016 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.
ARGS=""
if [ ! -z "${qemu_extra_args}" ]; then
ARGS+="${qemu_extra_args} "
fi
# We must have these arguments
ARGS+="-M ${qemu_machine}"
ARGS+=" ${qemu_kernel_args}"
# If we have a helper script to run, run it.
if [ ! -z "${qemu_helper_script}" ]; then
. "${bin_dir}/qemu.${qemu_helper_script}"
fi
exec "${qemu_binary}" ${ARGS}

View File

@@ -0,0 +1,23 @@
#!/bin/bash
# Copyright (c) 2016, Guillaume GARDET. 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.
sudo imx_usb -v ${U_BOOT_BUILD_DIR}/u-boot.imx

View File

@@ -0,0 +1,25 @@
# Copyright (c) 2015, NVIDIA CORPORATION. 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.
link=`readlink "${board_usb_dev}"`
instance=`echo "${link}" | sed -e "s@bus/usb@@"`
cp "${U_BOOT_BUILD_DIR}"/u-boot{,.bin,.dtb,-dtb.bin} "${download_l4t}/bootloader/t210ref/${board_type}/"
sudo "${download_l4t}/bootloader/exec-uboot.sh" --instance "${instance}" "${board_type}"

View File

@@ -0,0 +1,24 @@
#!/bin/bash
# Copyright (c) 2015, NVIDIA CORPORATION. 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.
"${tubf_bin}/build" --boards "${tubf_board}" import-uboot "${U_BOOT_BUILD_DIR}"
"${tubf_bin}/tegra-uboot-flasher" exec --usb-port-path "${board_usb_port_path}" "${tubf_config}"

View File

@@ -0,0 +1,46 @@
# Copyright 2024 Google LLC
# Written by Simon Glass
#
# 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.
# Hostname and port for the gRPC coordinator
export LG_COORDINATOR=kea:20408
# Environment file for the lab
export LG_ENV=/vid/software/devel/ubtest/lab/cfg/kea_env.cfg
# Make sure only one buildman can run at a time, since it uses all CPUs
export BUILDMAN_PROCESS_LIMIT=1
# Location of the U-Boot test hooks
export UB_TEST_HOOKS=/vid/software/devel/ubtest/u-boot-test-hooks
# Use the internal console since microcom can miss serial input at boot
export LG_CONSOLE=internal
# Tell u-boot-test-hooks to use the Labgrid integration
export USE_LABGRID_SJG=1
flash_impl=none
reset_impl=none
console_impl=labgrid-sjg
release_impl=labgrid-sjg
getrole_impl=labgrid-sjg
power_impl=none

View File

@@ -0,0 +1,24 @@
#!/bin/bash
# Copyright 2024 Google LLC
# Written by Simon Glass <sjg@chromium.org>
#
# 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.
. "${bin_dir}/${hostname}/common-labgrid-sjg"

View File

@@ -0,0 +1,11 @@
# Copyright 2019 IBM Corp.
# Joel Stanley <joel@jms.id.au>
# SPDX-License-Identifier: GPL-2.0+
console_impl=qemu
qemu_machine="ast2500-evb"
qemu_binary="qemu-system-arm"
qemu_extra_args="-nographic -m 512M -serial mon:stdio -net nic,model=ftgmac100 -net user,id=net0,tftp=${UBOOT_TRAVIS_BUILD_DIR}"
qemu_kernel_args="-drive file=${U_BOOT_BUILD_DIR}/flash.img,format=raw,if=mtd"
reset_impl=none
flash_impl=qemu_gen_padded_image

View File

@@ -0,0 +1 @@
../travis-ci/conf.qemu-riscv32_na

View File

@@ -0,0 +1 @@
../travis-ci/conf.qemu-riscv32_spl_na

View File

@@ -0,0 +1 @@
../travis-ci/conf.qemu-riscv64_na

View File

@@ -0,0 +1 @@
../travis-ci/conf.qemu-x86_64_na

View File

@@ -0,0 +1 @@
../travis-ci/conf.qemu-x86_na

View File

@@ -0,0 +1 @@
../travis-ci/conf.qemu_arm64_na

View File

@@ -0,0 +1 @@
../travis-ci/conf.qemu_arm64_spl_na

View File

@@ -0,0 +1 @@
../travis-ci/conf.qemu_arm_na

View File

@@ -0,0 +1 @@
../travis-ci/conf.qemu_arm_spl_na

View File

@@ -0,0 +1,30 @@
# Copyright 2020 Google LLC
#
# 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.
# Designed for using a Dediprog EM100Pro or Pro-G2 SPI-flash emulator
# https://www.dediprog.com/product/EM100Pro-G2
# (the older EM100Pro works but is not listed anymore)
# It requires these tools:
# em100 at https://review.coreboot.org/cgit/em100.git
# Instructions at https://www.coreboot.org/EM100pro
em100 -x "${em100_serial}" -s -p LOW -d "${U_BOOT_BUILD_DIR}/u-boot.rom" \
-c "${em100_chip}" -r

View File

@@ -0,0 +1,22 @@
# Copyright (c) 2025 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.
# Call fiptool to update an existing fip.bin file
fiptool update --nt-fw="${U_BOOT_BUILD_DIR}/u-boot.bin" ${fip}

View File

@@ -0,0 +1,45 @@
# Copyright (c) 2016 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.
# Make sure that the card is available to us now.
while true; do
ping -c 1 ${flashair_ip} >/dev/null 2>&1
if [ $? -eq 0 ]; then
break;
fi
done
# Make our new holding space.
UL_DIR=`mktemp -d`
# Run this script to copy files as they must appear on the target into
# the given directory.
. "${bin_dir}/${flashair_copy_script}"
# Collect all arguments
ARGS=()
if [ ! -z "${flashair_rmlist}" ]; then
ARGS+=("rmlist:${flashair_rmlist}")
fi
ARGS+=("push:${UL_DIR}")
push-flashair.py ${flashair_ip} "${ARGS[@]}"
rm -rf "${UL_DIR}" "${flashair_rmlist}"

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

21
test/hooks/bin/flash.none Normal file
View File

@@ -0,0 +1,21 @@
# Copyright (c) 2015-2016, NVIDIA CORPORATION. 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.
# No flashing needed

View File

@@ -0,0 +1,15 @@
# Copyright 2019 IBM Corp.
# Joel Stanley <joel@jms.id.au>
# SPDX-License-Identifier: GPL-2.0+
# TODO: Work out a better temp directory
FLASH_IMG="${U_BOOT_BUILD_DIR}"/flash.img
# Allow custom flash image size
FLASH_SIZE="${flash_size:=32}"
# Allow custom U-Boot binaries
U_BOOT_BIN="${flash_u_boot_bin:=u-boot.bin}"
dd if=/dev/zero of="${FLASH_IMG}" count="${FLASH_SIZE}" bs=1M
dd if="${U_BOOT_BUILD_DIR}/${U_BOOT_BIN}" of="${FLASH_IMG}" conv=notrunc

View File

@@ -0,0 +1,44 @@
# Copyright (c) 2015-2018, NVIDIA CORPORATION. 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.
. "${bin_dir}/recovery.${recovery_impl}"
# USB enumeration delay
for ((i = 0; i <= 100; i++)); do
if [ -e "${board_usb_dev}" ]; then
break
fi
sleep 0.1
done
sleep 1
cp "${U_BOOT_BUILD_DIR}"/u-boot-dtb.bin "${flash_l4t}/${flash_l4t_uboot_path}/u-boot.bin"
# FIXME: To speed things up here, we could add "-k kernel" and just reflash the
# "kernel" partition (which holds U-Boot when it's in use). However, this
# relies on having the right L4T already flashed, which isn't likely on my
# system since I use the board for other things.
(cd "${flash_l4t}" && sudo "${flash_l4t}/flash.sh" --usb-instance "${board_usb_port_path}" -r "${flash_l4t_board}" mmcblk0p1)
# Prevent the system from booting before the reset script is run. Otherwise,
# either (a) the test system won't capture the start of the UART log, or (b)
# U-Boot will start running early, and the test system will start capturing
# part way through boot, and see extra copies of all the U-Boot messages, and
# hence fail the boot test. Ideally, flash.sh wouldn't auto-reset/boot the
# system.
. "${bin_dir}/recovery.${recovery_impl}"

View File

@@ -0,0 +1,80 @@
# Copyright 2019 Google LLC. 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.
# Handles the common SDwire mounting (caller does power control)
mount_dir=/media/${mount_point}
# Switch over to get USB card access
sd-mux-ctrl --device-serial ${sdwire_serial} --ts
complete=false
for i in {0..9}; do
if out="$(mount UUID=${mount_uuid} 2>&1)"; then
complete=true
break
fi
echo $out
# If it is already mounted, try to unmount it first. It may have been
# mounted by another user so we won't have the access we need. If this gives
# an error then we know we cannot continue
if [[ $out == *"already mounted"* ]]; then
umount UUID=${mount_uuid}
fi
sleep 1
done
if [[ $complete = false ]]; then
echo "Failed to mount UUID ${mount_uuid} after 10 tries"
exit 1
fi
# Sanity check
if ! mountpoint -q ${mount_dir}; then
echo "Mount ${mount_dir} not available after 'mount'"
exit 1
fi
# Perform the write, pass along as much environment as possible
. writer.${flash_writer}
complete=false
for i in {0..9}; do
if out="$(umount ${mount_dir} 2>&1)"; then
complete=true
break
fi
echo $out
sleep 1
done
if [[ $complete = false ]]; then
echo "Failed to umount UUID ${mount_uuid} after 10 tries"
exit 1
fi
# Sanity check
if mountpoint -q ${mount_dir}; then
echo "Mount ${mount_dir} still available after 'umount'"
exit 1
fi
# Back to card access for the DUT
sd-mux-ctrl --device-serial ${sdwire_serial} --dut

View File

@@ -0,0 +1,41 @@
# Copyright 2019 Google LLC. 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.
# Designed for using SDwire uSD mux and ykush USB power control:
# https://wiki.tizen.org/SDWire
# https://dlidirect.com/products/new-pro-switch
# It requires these tools:
# sd-mux-ctrl at https://git.tizen.org/cgit/tools/testlab/sd-mux/
# curl to control the power switch
# Power off
curl --data ${power_port}=OFF -o /dev/null --silent \
http://${power_user:-admin}:${power_pass:-1234}@${power_ip}/outlet
# Switch over to get USB card access
sd-mux-ctrl --device-serial ${sdwire_serial} --ts
. wait_raw_device
writer.${flash_writer} ${raw_device} ${U_BOOT_BUILD_DIR}
# Back to card access for the DUT
sd-mux-ctrl --device-serial ${sdwire_serial} --dut

View File

@@ -0,0 +1,32 @@
# Copyright 2019 Google LLC. 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.
# Designed for using SDwire uSD mux and ykush USB power control:
# https://wiki.tizen.org/SDWire
# https://www.yepkit.com/products/ykush
# It requires these tools:
# sd-mux-ctrl at https://git.tizen.org/cgit/tools/testlab/sd-mux/
# ykushcmd at https://github.com/Yepkit/ykush
# Power off
. poweroff.${power_impl}
. flash.sdwire_common_mount

View File

@@ -0,0 +1,42 @@
# Copyright 2019 Google LLC. 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.
# Designed for using SDwire uSD mux and ykush USB power control:
# https://wiki.tizen.org/SDWire
# https://www.yepkit.com/products/ykush
# It requires these tools:
# sd-mux-ctrl at https://git.tizen.org/cgit/tools/testlab/sd-mux/
# ykushcmd at https://github.com/Yepkit/ykush
mount_dir=/media/${mount_point}
# Power off
. poweroff.${power_impl}
# Switch over to get USB card access
sd-mux-ctrl --device-serial ${sdwire_serial} --ts
. wait_raw_device
writer.${flash_writer} ${raw_device} ${U_BOOT_BUILD_DIR}
# Back to card access for the DUT
sd-mux-ctrl --device-serial ${sdwire_serial} --dut

View File

@@ -0,0 +1,34 @@
# Copyright 2020 Google LLC
#
# 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.
# Designed for using SDwire uSD mux and selected power control:
# https://wiki.tizen.org/SDWire
# It requires these tools:
# sd-mux-ctrl at https://git.tizen.org/cgit/tools/testlab/sd-mux/
# usbrelay
. poweroff.${power_impl}
sleep 0.1
. flash.sdwire_common_mount
. poweron.${power_impl}

View File

@@ -0,0 +1,47 @@
#!/bin/bash
# Copyright (c) 2016 Stephen Warren <swarren@wwwdotorg.org>
# Copyright (c) 2016 Konsulko Group
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of the copyright holder nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
cp "${U_BOOT_BUILD_DIR}"/u-boot.bin "${UL_DIR}"/u-boot.bin
touch "${UL_DIR}/config.txt"
echo "enable_uart=1" >> "${UL_DIR}/config.txt"
echo "kernel=u-boot.bin" >> "${UL_DIR}/config.txt"
case "${board_type}" in
rpi_3|rpi_3b|rpi_3_b_plus|rpi_4|rpi_arm64)
echo "arm_64bit=1" >> "${UL_DIR}/config.txt"
;;
esac
case "${board_ident}" in
3-32-pl011)
echo "dtoverlay=pi3-miniuart-bt" >> "${UL_DIR}/config.txt"
;;
esac

View File

@@ -0,0 +1,34 @@
# Copyright 2024 Google LLC
# Written by Simon Glass
#
# 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.
[ -n "${do_configure}" ] && config_arg=",config_file"
# The following spurious output is present with Python 3.12 on Ubuntu 24.04 so
# use a redirection to drop it:
# Error in sys.excepthook:
#
# Original exception was:
#
exec labgrid-client -r "${target}" -a query -n \
UBootProviderDriver:board,board_extra,source_dir,build_dir,build_dir_extra${config_arg} \
2>/dev/null

View File

@@ -0,0 +1,33 @@
# Copyright (c) 2016 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.
console_dev=/dev/ttyusb_port2
reset_impl=ykush
flash_impl=sdwire_poweroff_raw
power_impl=ykush
flash_writer=sunxi_raw
ykush_serial=YK17698
ykush_port=2
sdwire_serial=sdwire-7
raw_device=/dev/sdcard0

View File

@@ -0,0 +1,30 @@
# Copyright 2020 Google LLC
#
# 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.
reset_impl=cros_servo
flash_impl=em100
power_impl=cros_servo
em100_chip=W25Q64FV
em100_serial=DP022781
cros_servo_name=link
. common-config.cros-servo-dut-control

View File

@@ -0,0 +1,30 @@
# Copyright 2021 Google LLC
#
# 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.
reset_impl=servo
flash_impl=em100
power_impl=servo
em100_chip=W25Q64FV
em100_serial=DP033694
servo_name=samus
. ubtest_common

View File

@@ -0,0 +1,38 @@
# Copyright 2020 Google LLC
#
# 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.
relay_type=6QMBS_
console_dev=/dev/ttyusb_port3
reset_impl=usbrelay
flash_impl=none
reset_impl=recovery_download
recovery_impl=usbrelay
usbrelay_power=1
usbrelay_reset=2
usbrelay_recovery=3
board_usb_dev=/dev/usbdev-jetson-tk1
download_impl=tegra-uboot-flasher
tubf_bin=/vid/software/devel/tegra/tegra-uboot-flasher-scripts
tubf_board=jetson-tk1
tubf_config=jetson-tk1
board_usb_port_path=4-10.1.1

View File

@@ -0,0 +1,33 @@
# Copyright 2020 Google LLC
#
# 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.
console_dev=/dev/ttyusb_port7
reset_impl=digital-loggers
flash_impl=em100
power_impl=digital-loggers
power_ip="192.168.4.19"
power_user="admin"
power_pass="1234"
power_port=6
em100_dev=/dev/em100_0
em100_serial=DP139140
em100_chip=W25Q64DW

View File

@@ -0,0 +1,35 @@
# Copyright 2020 Google LLC
#
# 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.
console_dev=/dev/ttyusb_port4
reset_impl=digital-loggers
flash_impl=sdwire_digital-loggers_raw
power_impl=digital-loggers
flash_writer=sunxi_raw
power_ip="192.168.4.19"
power_user="admin"
power_pass="1234"
power_port=1
sdwire_serial=202001064004
raw_device=/dev/sdcard1

View File

@@ -0,0 +1,33 @@
# Copyright (c) 2020 Google LLC. 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.
console_dev=/dev/ttyusb_port8
reset_impl=ykush
flash_impl=sdwire_poweroff_raw
power_impl=ykush
flash_writer=rk3288_raw
ykush_serial=YK17698
ykush_port=3
sdwire_serial=sdwireda10
raw_device=/dev/sdcard3

View File

@@ -0,0 +1,34 @@
# Copyright (c) 2016 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.
console_dev=/dev/ttyusb_port1
reset_impl=ykush
flash_impl=sdwire_poweroff_mount
power_impl=ykush
flash_writer=rpi_mount
ykush_serial=YK17698
ykush_port=1
sdwire_serial=sdwire-18
mount_uuid=B529-9710
mount_point=rpi3_b_boot

View File

@@ -0,0 +1,34 @@
# Copyright (c) 2016 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.
console_dev=/dev/ttyusb_port1
reset_impl=ykush
flash_impl=sdwire_ykush_mount
power_impl=ykush
flash_writer=rpi_mount
ykush_serial=YK17698
ykush_port=1
sdwire_serial=sdwire-18
mount_uuid=B529-9710
mount_point=rpi3_b_boot

View File

@@ -0,0 +1,44 @@
# Copyright 2020 Google LLC
#
# 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.
set -ex
relay_type=6QMBS_
console_dev=/dev/ttyusb_port5
console_wait=1
reset_impl=usbrelay
flash_impl=sdwire_relay_mount
power_impl=digital-loggers
flash_writer=zynq_mount
usbrelay_reset=6
power_ip="192.168.4.19"
power_user="admin"
power_pass="1234"
power_port=5
sdwire_serial=202001064001
mount_uuid=5203-DB74
mount_point=zynq_zybo_boot

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,22 @@
# Copyright (c) 2016 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.
curl --data ${power_port}=OFF -o /dev/null --silent \
http://${power_user:-admin}:${power_pass:-1234}@${power_ip}/outlet

View File

@@ -0,0 +1,21 @@
# Copyright (c) 2015-2016, NVIDIA CORPORATION. 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.
# We do nothing, and assume the user will power off the board later

22
test/hooks/bin/poweroff.none Executable file
View File

@@ -0,0 +1,22 @@
# Copyright 2024 Google LLC
# Written by Simon Glass <sjg@chromium.org>
#
# 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.
# No power-control needed

View File

@@ -0,0 +1,37 @@
# Copyright (c) 2015-2018, NVIDIA CORPORATION. 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.
export LD_LIBRARY_PATH="${phidgets_dir}/lib:${LD_LIBRARY_PATH}"
# Put board into recovery so it doesn't boot
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_recovery} 1
sleep 0.25
# Pulse power button to ensure board is on
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_power} 1
sleep 0.75
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_power} 0
sleep 0.25
# Hold power button to turn board off
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_power} 1
sleep 15
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_power} 0
sleep 0.25
# Release recovery
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_recovery} 0

View File

@@ -0,0 +1,21 @@
# Copyright (c) 2015-2016, NVIDIA CORPORATION. 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.
"${nv_board_automation_bin}/boardctl" --target pm342 --serial "${pm342_serial}" power_off

View File

@@ -0,0 +1,23 @@
# Copyright 2019 Google LLC. 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.
# Usees YKUSB to power the device off
ykushcmd -s ${ykush_serial} -d ${ykush_port}

View File

@@ -0,0 +1,22 @@
# Copyright (c) 2016 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.
curl --data ${power_port}=ON -o /dev/null --silent \
http://${power_user:-admin}:${power_pass:-1234}@${power_ip}/outlet

View File

@@ -0,0 +1,21 @@
# Copyright (c) 2015-2016, NVIDIA CORPORATION. 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.
# We do nothing, and assume the user has already powered on the board first

22
test/hooks/bin/poweron.none Executable file
View File

@@ -0,0 +1,22 @@
# Copyright 2024 Google LLC
# Written by Simon Glass <sjg@chromium.org>
#
# 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.
# No power-control needed

View File

@@ -0,0 +1,32 @@
# Copyright (c) 2015-2018, NVIDIA CORPORATION. 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.
export LD_LIBRARY_PATH="${phidgets_dir}/lib:${LD_LIBRARY_PATH}"
# Put board into recovery so it doesn't boot
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_recovery} 1
sleep 0.25
# Pulse power button to turn board on
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_power} 1
sleep 0.75
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_power} 0
sleep 0.25
# Release recovery
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_recovery} 0

View File

@@ -0,0 +1,24 @@
# Copyright (c) 2015-2016, NVIDIA CORPORATION. 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.
# Basic power on
"${nv_board_automation_bin}/boardctl" --target pm342 --serial "${pm342_serial}" power_on
# Put board into recovery so it doesn't boot
. "${bin_dir}/recovery.pm342"

View File

@@ -0,0 +1,23 @@
# Copyright 2019 Google LLC. 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.
# Usees YKUSB to power the device on
ykushcmd -s ${ykush_serial} -u ${ykush_port}

118
test/hooks/bin/push-flashair.py Executable file
View File

@@ -0,0 +1,118 @@
#!/usr/bin/env python3
# Copyright (c) 2016 Stephen Warren <swarren@wwwdotorg.org>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of the copyright holder nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
import argparse
import fnmatch
import os
import requests
import sys
try:
from os import scandir
except ImportError:
from scandir import scandir
def push_file(host, local_path, remote_name):
print('..PUSH FILE: ' + remote_name)
files = {'file': (remote_name, open(local_path,'rb'))}
response = requests.post('http://%s/upload.cgi' % host, files=files)
print('.... ' + str(response.status_code))
response.raise_for_status()
if 'NG' in response.text or 'action=/upload.cgi' not in response.text:
print('Upload failed:', file=sys.stderr)
print(response.text, file=sys.stderr)
sys.exit(1)
def op_push_dir(host, local_dir):
print('PUSH DIR: ' + local_dir)
for de in scandir(local_dir):
if not de.is_file():
print('Can\'t handle non-file "%s"' % de.path, file=sys.stderr)
sys.exit(1)
push_file(host, de.path, de.name)
def op_rm_list(host, rm_list_file):
print('RM LIST: ' + rm_list_file)
params = {'op': 100, 'DIR': '/'}
response = requests.get('http://%s/command.cgi' % host, params=params)
response.raise_for_status()
lines = response.text.splitlines()
if lines[0] != 'WLANSD_FILELIST':
print('File list qery failed:', file=sys.stderr)
print(response.text, file=sys.stderr)
sys.exit(1)
existing_files = []
for l in lines[1:]:
existing_files.append(l.split(',')[1].lower())
with open(rm_list_file, 'rt') as fh:
for l in fh:
l = l.split('#')[0]
rmspec = l.strip().lower()
if not rmspec:
continue
for remote_filename in existing_files[:]:
if fnmatch.fnmatch(remote_filename, rmspec):
print('..DELETE: ' + remote_filename)
params = {'DEL': '/' + remote_filename}
response = requests.get('http://%s/upload.cgi' % host, params=params)
print('.... ' + str(response.status_code))
response.raise_for_status()
if 'SUCCESS' not in response.text:
print('Delete failed:', file=sys.stderr)
print(response.text, file=sys.stderr)
sys.exit(1)
op_map = {
'push': op_push_dir,
'rmlist': op_rm_list,
}
def main():
parser = argparse.ArgumentParser(
description='Copy files to a Toshiba FlashAir device')
parser.add_argument('host', help='The host or host:port of the FlashAir')
parser.add_argument('ops', nargs='+', help='''Operations to perform;
"dir", "push:dir": push directory, "rmlist:listfile": delete files listed
in listfile''')
args = parser.parse_args()
for op in args.ops:
if not ':' in op:
func = op_push_dir
param = op
else:
(op_name, param) = op.split(':', 1)
if op_name not in op_map:
print('"%s" is not a valid operation' % op_name,
file=sys.stderr)
parser.print_help(file=sys.stderr)
sys.exit(1)
func = op_map[op_name]
func(args.host, param)
if __name__ == '__main__':
main()

23
test/hooks/bin/qemu.swtpm Executable file
View File

@@ -0,0 +1,23 @@
#!/bin/sh
# SPDX-License-Identifier: BSD-2
#
# This script launches swtpm to emulate a TPMv2.
#
# The parameter -t makes it unload when the connection to QEMU is
# terminated.
#
# To make use of it add
#
# qemu_helper_script="swtpm"
#
# to the board script and the following arguments to qemu_extra_args
#
# -chardev socket,id=chrtpm,path=/tmp/tpm/swtpm-sock \
# -tpmdev emulator,id=tpm0,chardev=chrtpm \
# -device tpm-tis-device,tpmdev=tpm0
#
# U-Boot must be built with CONFIG_TPM2_MMIO=y.
mkdir -p /tmp/tpm
swtpm socket -d -t --tpmstate dir=/tmp/tpm --tpm2 \
--ctrl type=unixio,path=/tmp/tpm/swtpm-sock

View File

@@ -0,0 +1,23 @@
# Copyright (c) 2015-2016, NVIDIA CORPORATION. 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.
echo PLACE THE BOARD INTO RECOVERY MODE > /dev/tty
echo PRESS ENTER WHEN DONE > /dev/tty
read foo > /dev/tty < /dev/tty

View File

@@ -0,0 +1,29 @@
# Copyright (c) 2016, NVIDIA CORPORATION. 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.
export LD_LIBRARY_PATH="${phidgets_dir}/lib:${LD_LIBRARY_PATH}"
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_recovery} 1
sleep 0.25
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_reset} 1
sleep 0.25
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_reset} 0
sleep 0.25
"${phidgets_dir}/bin/phidgets-relay" ${phidgets_serial} ${phidgets_relay_recovery} 0

View File

@@ -0,0 +1,26 @@
# Copyright (c) 2015, NVIDIA CORPORATION. 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.
# The "recovery" command doesn't work on p2771-0000, so do this manually:
"${nv_board_automation_bin}/boardctl" --target pm342 --serial "${pm342_serial}" recovery_down
sleep 0.25
"${nv_board_automation_bin}/boardctl" --target pm342 --serial "${pm342_serial}" reset
sleep 0.25
"${nv_board_automation_bin}/boardctl" --target pm342 --serial "${pm342_serial}" recovery_up

39
test/hooks/bin/recovery.relay Executable file
View File

@@ -0,0 +1,39 @@
#!/bin/bash
# Copyright (c) 2015, NVIDIA CORPORATION. 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.
"${recovery_relay_bin}/relayctl.py" "${recovery_relay_type}" \
"${recovery_relay_dev}" "${recovery_relay_force_recovery}" on
sleep 0.1
"${recovery_relay_bin}/relayctl.py" "${recovery_relay_type}" \
"${recovery_relay_dev}" "${recovery_relay_reset}" on
sleep 0.1
"${recovery_relay_bin}/relayctl.py" "${recovery_relay_type}" \
"${recovery_relay_dev}" "${recovery_relay_reset}" off
sleep 0.1
"${recovery_relay_bin}/relayctl.py" "${recovery_relay_type}" \
"${recovery_relay_dev}" "${recovery_relay_force_recovery}" off

View File

@@ -0,0 +1,32 @@
#!/bin/bash
# Copyright 2020 Google LLC
#
# 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.
usbrelay "${relay_type}${usbrelay_recovery}=1"
usbrelay "${relay_type}${usbrelay_reset}=1"
sleep 0.1
usbrelay "${relay_type}${usbrelay_reset}=0"
sleep 0.1
usbrelay "${relay_type}${usbrelay_recovery}=0"

View File

@@ -0,0 +1,22 @@
# Copyright 2024 Google LLC
# Written by Simon Glass
#
# 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.
exec labgrid-client -r "${U_BOOT_BOARD_IDENTITY}" release -a

View File

@@ -0,0 +1,22 @@
# Copyright 2024 Google LLC
# Written by Simon Glass <sjg@chromium.org>
#
# 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.
# No releasing needed

View File

@@ -0,0 +1,23 @@
# Copyright 2020 Google LLC. 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.
# Uses servo to reset the board
${DUT_CONTROL} -p ${cros_servo_port} cold_reset:on sleep:.2 cold_reset:off

View File

@@ -0,0 +1,25 @@
# Copyright (c) 2016 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.
curl --data ${power_port}=OFF -o /dev/null --silent \
http://${power_user:-admin}:${power_pass:-1234}@${power_ip}/outlet
sleep .5
curl --data ${power_port}=ON -o /dev/null --silent \
http://${power_user:-admin}:${power_pass:-1234}@${power_ip}/outlet

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

30
test/hooks/bin/reset.none Normal file
View File

@@ -0,0 +1,30 @@
# Copyright (c) 2016, 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.
# You probably should not be using this script. The only exception may be
# if your console implementation spawns the target device itself (e.g. it
# invokes an emulator such as qemu) rather than simply attaching to an
# existing target device (which incidentally may also be possible with
# qemu). The fact this script does nothing also assumes that U-Boot's
# test/-py scripts re-invoke the console implementation every time the target
# is reset, which is true at present, but in theory could be changed in the
# future.
# No reset needed

View File

@@ -0,0 +1,21 @@
# Copyright (c) 2015-2018, NVIDIA CORPORATION. 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.
"${nv_board_automation_bin}/boardctl" --target pm342 --serial "${pm342_serial}" reset

View File

@@ -0,0 +1,36 @@
# Copyright (c) 2015-2016, NVIDIA CORPORATION. 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.
. "${bin_dir}/recovery.${recovery_impl}"
# USB enumeration delay
for ((i = 0; i <= 100; i++)); do
if [ -e "${board_usb_dev}" ]; then
break
fi
sleep 0.1
done
if [ ! -e "${board_usb_dev}" ]; then
echo "Cannot find device ${board_usb_dev}"
exit 1
fi
sleep 1
. "${bin_dir}/download.${download_impl}"

View File

@@ -0,0 +1,26 @@
# Copyright 2019 Google LLC. 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.
# Usees usbrelay to assert and release reset
usbrelay "${relay_type}${usbrelay_reset}=1"
sleep .2
usbrelay "${relay_type}${usbrelay_reset}=0"

View File

@@ -0,0 +1,25 @@
# Copyright 2019 Google LLC. 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.
# Usees YKUSB to power the device off and then on
ykushcmd -s ${ykush_serial} -d ${ykush_port}
sleep 1
ykushcmd -s ${ykush_serial} -u ${ykush_port}

View File

@@ -0,0 +1,36 @@
# Copyright (c) 2015-2016, NVIDIA CORPORATION. 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.
console_dev=/dev/ttyS0
power_impl=phidgets
flash_impl=none
reset_impl=recovery_download
recovery_impl=phidgets
phidgets_dir="${HOME}/phidgets"
phidgets_serial=109237
phidgets_relay_power=0
phidgets_relay_recovery=1
phidgets_relay_reset=2
board_usb_dev=/dev/usbdev-jetson-tk1
download_impl=tegra-uboot-flasher
tubf_bin="${HOME}/ubtest-tegra-uboot-flasher/scripts"
tubf_board=jetson-tk1
tubf_config=jetson-tk1
board_usb_port_path=1-8.3

View File

@@ -0,0 +1,57 @@
# Copyright (c) 2015-2018, NVIDIA CORPORATION. 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.
syms_file="${U_BOOT_BUILD_DIR}/u-boot.sym"
if [ -f "${syms_file}" ]; then
set +e
grep -q cboot "${syms_file}" >/dev/null 2>&1
grep_ret=$?
set -e
if [ ${grep_ret} -eq 0 ]; then
boot_from_cboot=1
else
boot_from_cboot=0
fi
else
boot_from_cboot=0
fi
console_dev=/dev/console-p2371-2180
power_impl=pm342
recovery_impl=pm342
nv_board_automation_bin="${HOME}/ubtest-nvidia-board-automation"
pm342_serial=SRW-0
board_usb_dev=/dev/usbdev-p2371-2180
board_usb_port_path=1-5
if [ ${boot_from_cboot} -eq 1 ]; then
echo conf.p2371-2180_na: U-Boot branch requires flashing for testing
flash_impl=recovery_l4t
flash_l4t="${HOME}/ubtest-l4t-r28.1-p2371-2180"
flash_l4t_uboot_path=bootloader/t210ref/p2371-2180/
flash_l4t_board=jetson-tx1
reset_impl=pm342
else
echo conf.p2371-2180_na: U-Boot branch can use USB RCM for testing
flash_impl=none
reset_impl=recovery_download
download_impl=l4t-exec-uboot
download_l4t="${HOME}/ubtest-l4t-exec-uboot"
fi

View File

@@ -0,0 +1,32 @@
# Copyright (c) 2015-2018, NVIDIA CORPORATION. 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.
console_dev=/dev/console-p2771-0000
power_impl=pm342
flash_impl=recovery_l4t
recovery_impl=pm342
flash_l4t="${HOME}/ubtest-l4t-r28.1-p2771-0000"
flash_l4t_uboot_path=bootloader/t186ref/p2771-0000/500/
flash_l4t_board=jetson-tx2
reset_impl=pm342
nv_board_automation_bin="${HOME}/ubtest-nvidia-board-automation"
pm342_serial=SRW-1
board_usb_dev=/dev/usbdev-p2771-0000
board_usb_port_path=3-2

View File

@@ -0,0 +1,27 @@
# Copyright (c) 2023 Marek Vasut <marek.vasut+renesas@mailbox.org>
#
# 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.
console_impl=qemu
qemu_machine="mcf5208evb"
qemu_binary="qemu-system-m68k"
qemu_extra_args="-nographic -serial mon:stdio -net user,tftp=${UBOOT_TRAVIS_BUILD_DIR} -net nic,model=mcf-fec"
qemu_kernel_args="-bios ${U_BOOT_BUILD_DIR}/u-boot.bin"
reset_impl=none
flash_impl=none

View File

@@ -0,0 +1,28 @@
# Copyright (c) 2016 Konsulko Group. All rights reserved.
# Copyright 2021 Google LLC
#
# 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.
console_impl=qemu
qemu_machine="pc"
qemu_binary="qemu-system-i386"
qemu_extra_args="-nographic -cpu qemu32 -netdev user,id=net0,tftp=${UBOOT_TRAVIS_BUILD_DIR} -device e1000,netdev=net0"
qemu_kernel_args="-bios ${U_BOOT_BUILD_DIR}/coreboot.rom"
reset_impl=none
flash_impl=none

View File

@@ -0,0 +1,11 @@
# Copyright 2019 IBM Corp.
# Joel Stanley <joel@jms.id.au>
# SPDX-License-Identifier: GPL-2.0+
console_impl=qemu
qemu_machine="ast2500-evb"
qemu_binary="qemu-system-arm"
qemu_extra_args="-nographic -nic user,tftp=${UBOOT_TRAVIS_BUILD_DIR}"
qemu_kernel_args="-drive file=${U_BOOT_BUILD_DIR}/flash.img,format=raw,if=mtd"
reset_impl=none
flash_impl=qemu_gen_padded_image

View File

@@ -0,0 +1,13 @@
# Copyright 2022 IBM Corp.
# Joel Stanley <joel@jms.id.au>
# SPDX-License-Identifier: GPL-2.0+
console_impl=qemu
qemu_machine="ast2600-evb"
qemu_binary="qemu-system-arm"
qemu_extra_args="-nographic -nic user,tftp=${UBOOT_TRAVIS_BUILD_DIR}"
qemu_kernel_args="-drive file=${U_BOOT_BUILD_DIR}/flash.img,format=raw,if=mtd"
flash_u_boot_bin="u-boot-with-spl.bin"
reset_impl=none
flash_impl=qemu_gen_padded_image
flash_size=64

View File

@@ -0,0 +1,27 @@
# Copyright (c) 2016 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.
console_impl=qemu
qemu_machine="integratorcp"
qemu_binary="qemu-system-arm"
qemu_extra_args="-nographic"
qemu_kernel_args="-kernel ${U_BOOT_BUILD_DIR}/u-boot"
reset_impl=none
flash_impl=none

View File

@@ -0,0 +1,30 @@
# Copyright (c) 2016 Konsulko Group. All rights reserved.
# Copyright (c) 2020 Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
#
# 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.
console_impl=qemu
qemu_machine="malta"
qemu_binary="qemu-system-mips64"
qemu_extra_args="-nographic -cpu MIPS64R2-generic -m 256"
qemu_kernel_args="-drive if=pflash,file=${U_BOOT_BUILD_DIR}/flash.img,format=raw \
-netdev user,id=net0,tftp=${UBOOT_TRAVIS_BUILD_DIR} -device pcnet,netdev=net0"
reset_impl=none
flash_impl=qemu_gen_padded_image
flash_size=4

View File

@@ -0,0 +1,31 @@
# Copyright (c) 2016 Konsulko Group. All rights reserved.
# Copyright (c) 2020 Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
#
# 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.
console_impl=qemu
qemu_machine="malta"
qemu_binary="qemu-system-mips64el"
qemu_extra_args="-nographic -cpu MIPS64R2-generic -m 256"
qemu_kernel_args="-drive if=pflash,file=${U_BOOT_BUILD_DIR}/flash.img,format=raw \
-netdev user,id=net0,tftp=${UBOOT_TRAVIS_BUILD_DIR} -device pcnet,netdev=net0"
reset_impl=none
flash_impl=qemu_gen_padded_image
flash_size=4
flash_u_boot_bin=u-boot-swap.bin

View File

@@ -0,0 +1,30 @@
# Copyright (c) 2016 Konsulko Group. All rights reserved.
# Copyright (c) 2020 Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
#
# 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.
console_impl=qemu
qemu_machine="malta"
qemu_binary="qemu-system-mips"
qemu_extra_args="-nographic -cpu 24Kc -m 256"
qemu_kernel_args="-drive if=pflash,file=${U_BOOT_BUILD_DIR}/flash.img,format=raw \
-netdev user,id=net0,tftp=${UBOOT_TRAVIS_BUILD_DIR} -device pcnet,netdev=net0"
reset_impl=none
flash_impl=qemu_gen_padded_image
flash_size=4

Some files were not shown because too many files have changed in this diff Show More