1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-27 15:12:36 +02:00
flashrom/test_build.sh
Jean THOMAS 001c87d901 dirtyjtag: Add DirtyJTAG programmer
Add a new programmer driver for the DirtyJTAG project (a USB-JTAG
firmware for STM32 MCUs).

Successfully tested with DirtyJTAG 1.4 running on an Olimex STM32-H103
development board and a SST25VF020B SPI flash chip.

Change-Id: Ic43e9a014ed7d04e429e73b30c9dcfdde1a78913
Signed-off-by: Jean THOMAS <virgule@jeanthomas.me>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/67878
Reviewed-by: Felix Singer <felixsinger@posteo.net>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
2022-10-15 18:17:38 +00:00

72 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env sh
set -e
# This script will only work on Linux with all dependencies installed.
is_scan_build_env=0
make_programmer_opts="INTERNAL INTERNAL_X86 SERPROG RAYER_SPI RAIDEN_DEBUG_SPI PONY_SPI NIC3COM \
GFXNVIDIA SATASII ATAHPT ATAVIA ATAPROMISE FT2232_SPI USBBLASTER_SPI MSTARDDC_SPI \
PICKIT2_SPI STLINKV3_SPI PARADE_LSPCON MEDIATEK_I2C_SPI REALTEK_MST_I2C_SPI DUMMY \
DRKAISER NICREALTEK NICNATSEMI NICINTEL NICINTEL_SPI NICINTEL_EEPROM OGP_SPI \
BUSPIRATE_SPI DEDIPROG DEVELOPERBOX_SPI SATAMV LINUX_MTD LINUX_SPI IT8212 \
CH341A_SPI DIGILENT_SPI DIRTYJTAG_SPI JLINK_SPI"
meson_programmer_opts="all auto group_ftdi group_i2c group_jlink group_pci group_serial group_usb \
atahpt atapromise atavia buspirate_spi ch341a_spi dediprog developerbox_spi \
digilent_spi dirtyjtag_spi drkaiser dummy ft2232_spi gfxnvidia internal it8212 \
jlink_spi linux_mtd linux_spi parade_lspcon mediatek_i2c_spi mstarddc_spi \
nic3com nicintel nicintel_eeprom nicintel_spi nicnatsemi nicrealtek \
ogp_spi pickit2_spi pony_spi raiden_debug_spi rayer_spi realtek_mst_i2c_spi \
satamv satasii serprog stlinkv3_spi usbblaster_spi"
if [ "$(basename "${CC}")" = "ccc-analyzer" ] || [ -n "${COVERITY_OUTPUT}" ]; then
is_scan_build_env=1
fi
build_make () {
make clean
make -j $(nproc) CONFIG_EVERYTHING=yes
# In case of clang analyzer we don't want to run it on
# each programmer individually. Thus, just return here.
if [ ${is_scan_build_env} -eq 1 ]; then
return
fi
for option in ${make_programmer_opts}; do
echo "Building ${option}"
make clean
make -j $(nproc) CONFIG_NOTHING=yes CONFIG_${option}=yes
done
}
build_meson () {
build_dir=out
meson_opts="-Dtests=enabled"
ninja_opts="-j $(nproc)"
rm -rf ${build_dir}
for programmer in ${meson_programmer_opts}; do
programmer_dir="${build_dir}/${programmer}"
# In case of clang analyzer we don't want to run it on
# each programmer individually. Thus, just return here.
if [ ${is_scan_build_env} -eq 1 ] && [ "${programmer}" != "all" ]; then
return
fi
meson ${programmer_dir} ${meson_opts} -Dprogrammer=${programmer}
ninja ${ninja_opts} -C ${programmer_dir}
ninja ${ninja_opts} -C ${programmer_dir} test
done
}
build_make
build_meson