TBM Bare metal tests
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
arch-aarch64
arch-arm
arch-microblaze
configs
drivers
ehash
libfdt
libminic
libverif
plat
scripts
testsuite-aarch64
testsuite-arm
testsuite-c3p3u
testsuite-microblaze
testsuite-pele
testsuite-petalogix-ml605
testsuite-petalogix-s3adsp1800-aspace
testsuite-zynqmp
zlib
LICENSE
Makefile
README
Rules.mk
bitops.h
ctest-bare.c
devtree.c
devtree.h
initcalls.c
initcalls.h
io.h
irq.h
plat.c
regops.h
sys.c
sys.h
testcalls.c
testcalls.h
unitname.c
unitname.h

README

This is a small bare-metal SW test/exploration environment.

TEST
----
Examples how-to build some ARM and MicroBlaze variants:
$ make CFG=configs/vexpress-a32.cfg
$ make CFG=configs/vexpress-a64.cfg
$ make CFG=configs/petalogix-s3adsp1800.cfg

To build all:
make CFG=configs/test

If you need to override the default toolchains:
$ make CFG=configs/vexpress-a64.cfg CROSS=aarch64-myown-elf-

ZynqMP APU setup:
$ make CFG=configs/zynqmp-apu.cfg

Or you can create a .config file, for example:
$ cat .config
MB_CROSS=microblazeel-xilinx-linux-gnu-
ARM_CROSS=arm-xilinx-linux-gnueabi-
AARCH64_CROSS=aarch64-linux-gnu-

The final binaries can be found in the build/* dir.

To run the tests on the ZynqMP QEMU:
qemu-system-aarch64 -M xlnx-zcu102,secure=off -serial stdio -kernel build/zynqmp/apu/ctest-bare
qemu-system-aarch64 -M xlnx-zcu102,secure=on -serial stdio -kernel build/zynqmp/apu/ctest-bare

To run something on the ZynqMP's RPU:
qemu-system-aarch64 -M xlnx-zcu102 -smp 6 -serial stdio -device loader,file=./build/zynqmp/rpu/ctest-bare,cpu-num=4 -global xlnx,zynqmp.boot-cpu="rpu-cpu[0]"

To run the vexpress-a64 tests, do the following:
qemu-system-aarch64 -M vexpress-a15,secure=on -cpu cortex-a53 -m 1024 -display none -serial stdio -kernel build/vexpress/a64/ctest-bare

To run the vexpress-a32 tests, do the following:
qemu-system-arm -M vexpress-a15,secure=on -serial stdio -display none -kernel build/vexpress/a32/ctest-bare

Directory structure:

configs/ Build configuration files.
build/ Build products/artifacts.
arch-*/ Contains arch specific boot code, interrupt setups and other stuff.
testsuite-*/ Contains most of the test driving logic.
drivers/*/ Contains drivers to be used by tests or other code.
drivers-*/ Legacy naming for old drivers
libminic/ A BSD licenced small C library implementation
libfdt/ Flat Device Tree lib to parse device trees on boot