summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/git/revisions10
-rwxr-xr-xscript/build/release/src11
-rwxr-xr-xscript/build/serprog/rp204033
-rwxr-xr-xscript/build/serprog/stm3221
4 files changed, 55 insertions, 20 deletions
diff --git a/config/git/revisions b/config/git/revisions
index ed01d20f..60f2588b 100644
--- a/config/git/revisions
+++ b/config/git/revisions
@@ -76,6 +76,7 @@
url: https://github.com/LongSoft/UEFITool
}
+
{rpi-pico-sdk}{
rev: 6a7db34ff63345a7badec79ebea3aaef1712f374
loc: util-fw/rp2040/pico-sdk
@@ -98,8 +99,15 @@
}
{stm32-vserprog}{
- rev: 60c6274f7f5d45d01c64b7acdc5b0e4ed71caa96
+ rev: 8fcf0a4d41800631b571fa7bbd1d8b251f0a2111
loc: util-fw/stm32-vserprog
url: https://codeberg.org/libreboot/stm32-vserprog
bkup_url: https://notabug.org/libreboot/stm32-vserprog
+ depend: libopencm3
+}
+
+{libopencm3}{
+ rev: 458250dc6147dc807eec9e4d5a6caf38a699ecb1
+ loc: util-fw/stm32-vserprog/libopencm3
+ url: https://github.com/libopencm3/libopencm3
}
diff --git a/script/build/release/src b/script/build/release/src
index 86c435b2..d425638c 100755
--- a/script/build/release/src
+++ b/script/build/release/src
@@ -28,8 +28,9 @@ read projectname < projectname
trees_fetch_list="coreboot u-boot seabios"
simple_fetch_list="flashrom grub memtest86plus me_cleaner uefitool"
simple_fetch_list="${simple_fetch_list} bios_extract biosutilities"
+download_only_list="pico-serprog stm32-vserprog"
-dirlist="config util script include"
+dirlist="config util script include util-fw"
linklist="build update handle" # symlinks in main directory, to script: lbmk
filelist="lbmk README.md COPYING version versiondate projectname checkgit"
filelist="${filelist} checkversion"
@@ -87,7 +88,7 @@ download_modules()
[ -d "${modname}" ] || ./update project trees ${modname} || \
err "download_modules: couldn't download ${modname} trees"
done
- for modname in ${simple_fetch_list}; do
+ for modname in ${simple_fetch_list} ${download_only_list}; do
[ -d "${modname}/" ] || ./update project repo ${modname} || \
err "download_modules: couldn't download ${modname} repo"
done
@@ -152,6 +153,10 @@ purge_files()
./handle make file -c "${p}" || \
err "purge_files: !./handle make file -c ${p}"
done
+ for p in "stm32-vserprog" "stm32-vserprog/libopencm3"; do
+ ./handle make file -c "util-fw/${p}" || \
+ err "purge_files !./handle make file util-fw/${p}"
+ done
for p in 32 64; do
./handle make file -c "memtest86plus/build${p}" || \
err "purge_files: cannot clean memtest86+ build${p}"
@@ -169,6 +174,8 @@ purge_files()
err "purge_files rm-rf2: can't purge .git files/directories"
rm -Rf cbutils || err "purge_files: can't remove ${srcdir}/cbutils/"
rm -Rf elf || err "purge_files: can't remove ${srcdir}/elf/"
+ rm -Rf util-fw/rp2040/pico-serprog/build
+ || err "purge_files: can't remove pico-serprog/build"
)
}
diff --git a/script/build/serprog/rp2040 b/script/build/serprog/rp2040
index e265cc7a..83c8af69 100755
--- a/script/build/serprog/rp2040
+++ b/script/build/serprog/rp2040
@@ -24,23 +24,25 @@ set -u -e
. "include/err.sh"
serprog_release_dir=$(pwd)/bin/serprog_rp2040
-sdk_dir=$(pwd)/util-fw/rp2040/pico-sdk
src_dir=$(pwd)/util-fw/rp2040/pico-serprog
+sdk_dir=$(pwd)/util-fw/rp2040/pico-sdk
+boards_dir=${sdk_dir}/src/boards/include/boards
main()
{
- printf "Compiling serprog firmware for Raspberry Pi Pico\n"
-
[ -d "${src_dir}/" ] || ./update project repo rpi-pico-serprog \
|| err "fetch rpi-pico-serprog failed!\n"
mkdir -p "${serprog_release_dir}" || \
err "can't create dir: ${serprog_release_dir}"
- boards_dir=${sdk_dir}/src/boards/include/boards
-
if [ $# -gt 0 ] ; then
- buildrom "${1}"
+ if [ "${1}" = "list" ] ; then
+ list_boards
+ else
+ buildrom "${1}"
+ fi
else
+ printf "Building pico-serprog for all boards\n"
basename -a -s .h ${boards_dir}/*.h | while read board ; do
[ "${board}" = "none" ] || buildrom ${board}
done
@@ -51,14 +53,21 @@ main()
buildrom()
{
board=${1}
- (cd ${src_dir}; cmake -DPICO_BOARD="${board}" \
- -DPICO_SDK_PATH="${sdk_dir}" "${src_dir}" || \
- err "can't cmake ${src_dir}")
- make -C ${src_dir} clean
- make -C ${src_dir}
- mv ${src_dir}/pico_serprog.uf2 \
+ printf "Building pico-serprog for ${board}\n"
+ cmake -DPICO_BOARD="${board}" -DPICO_SDK_PATH="${sdk_dir}" \
+ -B "${src_dir}/build" "${src_dir}" \
+ || err "can't cmake ${src_dir}"
+ cmake --build "${src_dir}/build"
+ mv ${src_dir}/build/pico_serprog.uf2 \
${serprog_release_dir}/serprog_${board}.uf2 \
|| err "${board} serprog build failed!"
+ printf "output to ${serprog_release_dir}/serprog_${board}.uf2\n"
+}
+
+list_boards()
+{
+ printf "Available boards for pico-serprog:\n"
+ basename -a -s .h ${boards_dir}/*.h
}
main $@
diff --git a/script/build/serprog/stm32 b/script/build/serprog/stm32
index 8637e292..94c45bc8 100755
--- a/script/build/serprog/stm32
+++ b/script/build/serprog/stm32
@@ -25,21 +25,23 @@ set -u -e
serprog_release_dir=$(pwd)/bin/serprog_stm32
src_dir=$(pwd)/util-fw/stm32-vserprog
+boards_dir=${src_dir}/boards
main()
{
- printf "Compiling serprog firmware for STM32\n"
-
[ -d "${src_dir}/" ] || ./update project repo stm32-vserprog \
|| err "fetch stm32-vserprog failed!\n"
mkdir -p "${serprog_release_dir}" || \
err "can't create dir: ${serprog_release_dir}"
- boards_dir=${src_dir}/boards
-
if [ $# -gt 0 ] ; then
- buildrom "${1}"
+ if [ "${1}" = "list" ] ; then
+ list_boards
+ else
+ buildrom "${1}"
+ fi
else
+ printf "Building stm32-vserprog for all boards\n"
basename -a -s .h ${boards_dir}/*.h | while read board ; do
buildrom ${board}
done
@@ -50,10 +52,19 @@ main()
buildrom()
{
board=${1}
+ printf "Building stm32-vserprog for ${board}\n"
+ make -C ${src_dir} libopencm3-just-make BOARD=${board}
make -C ${src_dir} BOARD=${board}
mv ${src_dir}/stm32-vserprog.hex \
${serprog_release_dir}/serprog_${board}.hex \
|| err "${board} serprog build failed!"
+ printf "output to ${serprog_release_dir}/serprog_${board}.hex\n"
+}
+
+list_boards()
+{
+ printf "Available boards for stm32-vserprog:\n"
+ basename -a -s .h ${boards_dir}/*.h
}
main $@