diff options
Diffstat (limited to 'resources/scripts')
-rwxr-xr-x | resources/scripts/build/boot/roms_helper | 28 | ||||
-rwxr-xr-x | resources/scripts/build/clean/cbutils | 12 | ||||
-rwxr-xr-x | resources/scripts/build/module/cbutils | 28 | ||||
-rwxr-xr-x | resources/scripts/build/payload/u-boot | 22 | ||||
-rwxr-xr-x | resources/scripts/build/release/roms | 12 | ||||
-rwxr-xr-x | resources/scripts/build/release/src | 19 | ||||
-rwxr-xr-x | resources/scripts/modify/coreboot/configs | 14 | ||||
-rwxr-xr-x | resources/scripts/modify/u-boot/configs | 14 | ||||
-rwxr-xr-x | resources/scripts/update/blobs/download | 8 | ||||
-rwxr-xr-x | resources/scripts/update/blobs/extract | 10 | ||||
-rwxr-xr-x | resources/scripts/update/blobs/inject | 4 | ||||
-rwxr-xr-x | resources/scripts/update/coreboot/configs | 14 | ||||
-rwxr-xr-x | resources/scripts/update/module/coreboot | 183 | ||||
-rwxr-xr-x | resources/scripts/update/module/mrc | 2 | ||||
-rwxr-xr-x | resources/scripts/update/module/u-boot | 262 | ||||
-rwxr-xr-x | resources/scripts/update/u-boot/configs | 26 |
16 files changed, 109 insertions, 549 deletions
diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 32a6e537..287d6dac 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -63,19 +63,19 @@ if [ ! -d "resources/coreboot/${board}" ]; then exit 1 fi -if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then - printf "build/roms: Missing board.cfg for target: %s\n" ${board} +if [ ! -f "resources/coreboot/${board}/target.cfg" ]; then + printf "build/roms: Missing target.cfg for target: %s\n" ${board} exit 1 fi grub_scan_disk="undefined" -cbtree="undefined" -romtype="normal" # optional parameter in board.cfg. "normal" is default +tree="undefined" +romtype="normal" # optional parameter in target.cfg. "normal" is default arch="undefined" # Disable all payloads by default. -# board.cfg files have to specifically enable [a] payload(s) +# target.cfg files have to specifically enable [a] payload(s) payload_grub="n" payload_grub_withseabios="n" # seabios chainloaded from grub payload_seabios="n" @@ -86,8 +86,8 @@ payload_uboot="n" uboot_config="undefined" # ditto option whether to compile ada in crossgcc: crossgcc_ada="y" # yes by default -# Override the above defaults using board.cfg -. "resources/coreboot/${board}/board.cfg" +# Override the above defaults using target.cfg +. "resources/coreboot/${board}/target.cfg" if [ "${grub_scan_disk}" = "undefined" ]; then printf "build/roms: Target '%s' does not define grub_scan_disk. " \ @@ -106,7 +106,7 @@ if [ "${grub_scan_disk}" != "both" ] && \ # erroring out would be silly. just use the default fi -if [ "${cbtree}" = "undefined" ]; then +if [ "${tree}" = "undefined" ]; then printf "build/roms: Target '%s' does not define a coreboot tree. " \ ${board} printf "Skipping build.\n" @@ -196,17 +196,17 @@ fi romdir="bin/${board}" cbdir="coreboot/${board}" -if [ "${board}" != "${cbtree}" ]; then - cbdir="coreboot/${cbtree}" +if [ "${board}" != "${tree}" ]; then + cbdir="coreboot/${tree}" fi -cbfstool="cbutils/${cbtree}/cbfstool" +cbfstool="cbutils/${tree}/cbfstool" corebootrom="${cbdir}/build/coreboot.rom" seavgabiosrom="payload/seabios/seavgabios.bin" -./build module cbutils ${cbtree} || exit 1 +./build module cbutils ${tree} || exit 1 if [ ! -d "${cbdir}" ]; then - ./download coreboot ${cbtree} + ./fetch_trees coreboot ${tree} fi cat version > "${cbdir}/.coreboot-version" @@ -554,7 +554,7 @@ mkGrubRom() { backgroundfile="background1280x800.png" if [ "${board}" = "x60" ] || [ "${board}" = "t60_intelgpu" ]; then - # TODO: don't hardcode this. do it in board.cfg per board + # TODO: don't hardcode this. do it in target.cfg per board backgroundfile="background1024x768.png" fi backgroundfile="resources/grub/background/${backgroundfile}" diff --git a/resources/scripts/build/clean/cbutils b/resources/scripts/build/clean/cbutils index 54659564..de9a588f 100755 --- a/resources/scripts/build/clean/cbutils +++ b/resources/scripts/build/clean/cbutils @@ -32,21 +32,21 @@ rm -Rf cbutils [ ! -d "coreboot/" ] && exit 0 -for cbtree in coreboot/*; do - if [ "${cbtree##*/}" = "coreboot" ]; then +for tree in coreboot/*; do + if [ "${tree##*/}" = "coreboot" ]; then continue fi - if [ ! -d "${cbtree}" ]; then + if [ ! -d "${tree}" ]; then continue fi # Clean coreboot, of course - make -C "${cbtree}/" distclean + make -C "${tree}/" distclean # Clean its utilities as well for util in cbfstool ifdtool nvramtool cbmem; do - make distclean -C "${cbtree}/util/${util}/" + make distclean -C "${tree}/util/${util}/" done - make distclean -C "${cbtree}/payloads/libpayload/" + make distclean -C "${tree}/payloads/libpayload/" done printf "\n\n" diff --git a/resources/scripts/build/module/cbutils b/resources/scripts/build/module/cbutils index 8d4e2f2f..45739e95 100755 --- a/resources/scripts/build/module/cbutils +++ b/resources/scripts/build/module/cbutils @@ -41,34 +41,34 @@ build_for_mainboard() { board="${1}" [ ! -d "resources/coreboot/${board}" ] && \ continue - [ ! -f "resources/coreboot/${board}/board.cfg" ] && \ + [ ! -f "resources/coreboot/${board}/target.cfg" ] && \ continue - cbtree="undefined" - . "resources/coreboot/${board}/board.cfg" # source - if [ "${cbtree}" = "undefined" ]; then - printf "build/cbutils: improper cbtree definition for '%s'" \ + tree="undefined" + . "resources/coreboot/${board}/target.cfg" # source + if [ "${tree}" = "undefined" ]; then + printf "build/cbutils: improper tree definition for '%s'" \ "${board}" return 1 fi - buildutils "${cbtree}" || return 1 + buildutils "${tree}" || return 1 } buildutils() { - cbtree="${1}" - if [ ! -d "coreboot/${cbtree}/" ]; then - ./download coreboot $cbtree || return 1 + tree="${1}" + if [ ! -d "coreboot/${tree}/" ]; then + ./fetch_trees coreboot $tree || return 1 fi for util in cbfstool ifdtool; do - [ -f "cbutils/${cbtree}/${util}" ] \ + [ -f "cbutils/${tree}/${util}" ] \ && continue - if [ ! -d "cbutils/${cbtree}" ]; then - mkdir -p "cbutils/${cbtree}" || return 1 + if [ ! -d "cbutils/${tree}" ]; then + mkdir -p "cbutils/${tree}" || return 1 fi - utildir="coreboot/${cbtree}/util/${util}" + utildir="coreboot/${tree}/util/${util}" make distclean -C "${utildir}" || return 1 make -j$(nproc) -C "${utildir}" || return 1 - mv "${utildir}/${util}" "cbutils/${cbtree}" || return 1 + mv "${utildir}/${util}" "cbutils/${tree}" || return 1 make distclean -C "${utildir}" || return 1 done } diff --git a/resources/scripts/build/payload/u-boot b/resources/scripts/build/payload/u-boot index bff41400..a98d133d 100755 --- a/resources/scripts/build/payload/u-boot +++ b/resources/scripts/build/payload/u-boot @@ -26,7 +26,7 @@ RET=0 pdir="payload/u-boot" ubdir="" arch="" -ubtree="" +tree="" config_name="" board_dir="" @@ -86,21 +86,21 @@ handle_dependencies() rm -rf "${pdir}/${board}" mkdir -p "${pdir}/${board}" - ubtree="undefined" + tree="undefined" arch="undefined" - if [ ! -f "${board_dir}/board.cfg" ]; then - printf "build/u-boot %s: Missing board.cfg.\n" \ + if [ ! -f "${board_dir}/target.cfg" ]; then + printf "build/u-boot %s: Missing target.cfg.\n" \ "${board}" RET=1 return 1 fi - # Override the above defaults using board.cfg - . "${board_dir}/board.cfg" # source + # Override the above defaults using target.cfg + . "${board_dir}/target.cfg" # source - if [ "${ubtree}" = "undefined" ]; then - printf "build/u-boot %s: ubtree undefined\n" \ + if [ "${tree}" = "undefined" ]; then + printf "build/u-boot %s: tree undefined\n" \ "${board}" RET=1 return 1 @@ -113,12 +113,12 @@ handle_dependencies() fi ubdir="u-boot/${board}" - if [ "${board}" != "${ubtree}" ]; then - ubdir="u-boot/${ubtree}" + if [ "${board}" != "${tree}" ]; then + ubdir="u-boot/${tree}" fi if [ ! -d "${ubdir}" ]; then - ./download u-boot "$board" + ./fetch_trees u-boot "$board" fi if [ ! -d "${ubdir}" ]; then diff --git a/resources/scripts/build/release/roms b/resources/scripts/build/release/roms index c60070ec..faf07af0 100755 --- a/resources/scripts/build/release/roms +++ b/resources/scripts/build/release/roms @@ -24,14 +24,14 @@ set -u -e projectname="$(cat projectname)" version="version-unknown" versiondate="version-date-unknown" -cbtree="default" +tree="default" target="" CONFIG_HAVE_MRC="" CONFIG_HAVE_ME_BIN="" CONFIG_KBC1126_FIRMWARE="" CONFIG_INCLUDE_SMSC_SCH5545_EC_FW="" -ifdtool="cbutils/${cbtree}/ifdtool" -cbfstool="cbutils/${cbtree}/cbfstool" +ifdtool="cbutils/${tree}/ifdtool" +cbfstool="cbutils/${tree}/cbfstool" main() { @@ -118,10 +118,10 @@ strip_archive() { romdir=${1} - if [ ! -d coreboot/${cbtree} ]; then - ./download coreboot ${cbtree} || exit 1 + if [ ! -d coreboot/${tree} ]; then + ./fetch_trees coreboot ${tree} || exit 1 fi - ./build module cbutils ${cbtree} || exit 1 + ./build module cbutils ${tree} || exit 1 rm -Rf "${romdir}_tmp" # dirty hack, to reduce disk io later # rather than using /tmp, which might not be tmpfs diff --git a/resources/scripts/build/release/src b/resources/scripts/build/release/src index 0e3237ab..95c0036f 100755 --- a/resources/scripts/build/release/src +++ b/resources/scripts/build/release/src @@ -23,13 +23,15 @@ set -u -e projectname="$(cat projectname)" -modlist="coreboot flashrom grub memtest86plus seabios me_cleaner u-boot" -modlist="${modlist} bios_extract biosutilities uefitool" +trees_gitclone_list="coreboot u-boot" +simple_gitclone_list="flashrom grub memtest86plus seabios me_cleaner uefitool" +simple_gitclone_list="${simple_gitclone_list} bios_extract biosutilities" dirlist="resources util" # do not add blobs directory here. it's handled below filelist="lbmk blobutil modify download build README.md COPYING Makefile update" filelist="${filelist} version versiondate projectname .gitcheck gitclone" +filelist="${filelist} fetch_trees" version="version-unknown" versiondate="version-date-unknown" @@ -75,16 +77,19 @@ create_release_directory() download_modules() { - for modname in ${modlist}; do - if [ ! -d "${modname}/" ]; then - ./download ${modname} - fi + for modname in ${trees_gitclone_list}; do + [ ! -d "${modname}" ] && \ + ./fetch_trees ${modname} + done + for modname in ${simple_gitclone_list}; do + [ ! -d "${modname}/" ] && \ + ./download ${modname} done } copy_files() { - for dir in ${modlist} ${dirlist}; do + for dir in ${simple_gitclone_list} ${dirlist}; do cp -R "${dir}/" "${srcdir}/" done diff --git a/resources/scripts/modify/coreboot/configs b/resources/scripts/modify/coreboot/configs index 665ee091..f6daa2f4 100755 --- a/resources/scripts/modify/coreboot/configs +++ b/resources/scripts/modify/coreboot/configs @@ -44,20 +44,20 @@ main() modifyconf() { board="$1" - if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then - printf "\nmodify/config/coreboot: no board.cfg for: %s\n" \ + if [ ! -f "resources/coreboot/${board}/target.cfg" ]; then + printf "\nmodify/config/coreboot: no target.cfg for: %s\n" \ "${board}" fi - cbtree="" - . "resources/coreboot/${board}/board.cfg" # source + tree="" + . "resources/coreboot/${board}/target.cfg" # source - if [ -z ${cbtree} ]; then + if [ -z ${tree} ]; then return 0 fi - cbdir="coreboot/${cbtree}" + cbdir="coreboot/${tree}" if [ ! -d "${cbdir}" ]; then - ./download coreboot ${cbtree} + ./fetch_trees coreboot ${tree} fi for cbcfg in resources/coreboot/${board}/config/*; do diff --git a/resources/scripts/modify/u-boot/configs b/resources/scripts/modify/u-boot/configs index 9572a5b8..4e16f353 100755 --- a/resources/scripts/modify/u-boot/configs +++ b/resources/scripts/modify/u-boot/configs @@ -44,22 +44,22 @@ main() modifyconf() { board="$1" - if [ ! -f "resources/u-boot/${board}/board.cfg" ]; then - printf "\nmodify/config/u-boot: no board.cfg for: %s\n" \ + if [ ! -f "resources/u-boot/${board}/target.cfg" ]; then + printf "\nmodify/config/u-boot: no target.cfg for: %s\n" \ "${board}" return 0 fi - ubtree="undefined" - . "resources/u-boot/${board}/board.cfg" # source + tree="undefined" + . "resources/u-boot/${board}/target.cfg" # source - if [ "${ubtree}" = "undefined" ]; then + if [ "${tree}" = "undefined" ]; then return 0 fi - ubdir="u-boot/${ubtree}" + ubdir="u-boot/${tree}" if [ ! -d "${ubdir}" ]; then - ./download u-boot ${ubtree} + ./fetch_trees u-boot ${tree} fi for ubcfg in resources/u-boot/${board}/config/*; do diff --git a/resources/scripts/update/blobs/download b/resources/scripts/update/blobs/download index 04d5bd31..343e2a81 100755 --- a/resources/scripts/update/blobs/download +++ b/resources/scripts/update/blobs/download @@ -63,8 +63,8 @@ main() if [ ! -d "${boarddir}" ]; then fail "Target not defined" - elif [ ! -f "${boarddir}/board.cfg" ]; then - fail "Target missing board.cfg" + elif [ ! -f "${boarddir}/target.cfg" ]; then + fail "Target missing target.cfg" fi detect_firmware || exit 0 @@ -78,7 +78,7 @@ detect_firmware() { set -- "${boarddir}/config/"* . ${1} 2>/dev/null - . "${boarddir}/board.cfg" + . "${boarddir}/target.cfg" if [ "${CONFIG_HAVE_MRC}" = "y" ]; then needs="${needs} MRC" @@ -189,7 +189,7 @@ build_dependencies() fi if [ ! -d ${cbdir} ]; then printf "downloading coreboot\n" - ./download coreboot default \ + ./fetch_trees coreboot default \ || fail "could not download coreboot" fi if [ ! -d bios_extract ]; then diff --git a/resources/scripts/update/blobs/extract b/resources/scripts/update/blobs/extract index b32ec0ea..63d09c02 100755 --- a/resources/scripts/update/blobs/extract +++ b/resources/scripts/update/blobs/extract @@ -49,8 +49,8 @@ check_board() fail "file does not exist: ${vendor_rom}" elif [ ! -d "${boarddir}" ]; then fail "build/roms ${board}: target not defined" - elif [ ! -f "${boarddir}/board.cfg" ]; then - fail "build/roms ${board}: missing board.cfg" + elif [ ! -f "${boarddir}/target.cfg" ]; then + fail "build/roms ${board}: missing target.cfg" fi } @@ -66,11 +66,11 @@ build_dependencies() if [ ! -d ${cbdir} ]; then printf "downloading coreboot\n" - ./download coreboot default \ + ./fetch_trees coreboot default \ || fail "could not download coreboot" else printf "coreboot already downloaded. Skipping.\n" - printf "run ./download coreboot to manually overwrite\n" + printf "run ./fetch_trees coreboot to manually overwrite\n" fi if ! [ -f ${ifdtool} ]; then @@ -86,7 +86,7 @@ extract_blobs() set -- "${boarddir}/config/"* . ${1} 2>/dev/null - . "${boarddir}/board.cfg" + . "${boarddir}/target.cfg" if [ "$CONFIG_HAVE_MRC" = "y" ]; then printf 'haswell board detected, downloading mrc\n' diff --git a/resources/scripts/update/blobs/inject b/resources/scripts/update/blobs/inject index 97cb35a6..46d83309 100755 --- a/resources/scripts/update/blobs/inject +++ b/resources/scripts/update/blobs/inject @@ -142,7 +142,7 @@ build_dependencies() { if [ ! -d ${cbdir} ]; then printf "downloading coreboot\n" - ./download coreboot default + ./fetch_trees coreboot default fi ./build module cbutils default || fail "could not build cbutils" @@ -200,7 +200,7 @@ patch_rom() set -- "${boarddir}/config/"* . ${1} 2>/dev/null - . "${boarddir}/board.cfg" + . "${boarddir}/target.cfg" if [ "$CONFIG_HAVE_MRC" = "y" ]; then inject_blob_intel_mrc "${rom}" diff --git a/resources/scripts/update/coreboot/configs b/resources/scripts/update/coreboot/configs index cd5299b3..c17a21bb 100755 --- a/resources/scripts/update/coreboot/configs +++ b/resources/scripts/update/coreboot/configs @@ -53,15 +53,15 @@ updateconf() boarddir="${cbcfgsdir}/${board}" - if [ -f "${boarddir}/board.cfg" ]; then - cbtree="undefined" - . "${boarddir}/board.cfg" # source - if [ "${cbtree}" = "undefined" ]; then + if [ -f "${boarddir}/target.cfg" ]; then + tree="undefined" + . "${boarddir}/target.cfg" # source + if [ "${tree}" = "undefined" ]; then return 0 fi - cbdir="coreboot/${cbtree}" + cbdir="coreboot/${tree}" if [ ! -d "${cbdir}" ]; then - ./download coreboot ${cbtree} + ./fetch_trees coreboot ${tree} fi for cbcfg in "${boarddir}/config/"*; do if [ ! -f "${cbcfg}" ]; then @@ -74,7 +74,7 @@ updateconf() make distclean -BC "${cbdir}" done else - printf "\nupdate/config/coreboot: no board.cfg for: %s\n" \ + printf "\nupdate/config/coreboot: no target.cfg for: %s\n" \ ${board} fi } diff --git a/resources/scripts/update/module/coreboot b/resources/scripts/update/module/coreboot deleted file mode 100755 index 2e78636b..00000000 --- a/resources/scripts/update/module/coreboot +++ /dev/null @@ -1,183 +0,0 @@ -#!/usr/bin/env sh - -# helper script: download coreboot -# -# Copyright (C) 2014-2016,2020,2021,2023 Leah Rowe <info@minifree.org> -# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com> -# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com> -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# - -[ "x${DEBUG+set}" = 'xset' ] && set -v -set -u -e - -_board="" -cbtree="" -cbrevision="" - -cbcfgsdir="resources/coreboot" - -main() -{ - rm -f ${cbcfgsdir}/*/seen - - printf "Downloading coreboot and (if available) applying patches\n" - - boards="" - if [ $# -gt 0 ]; then - boards=$@ - else - for board in "${cbcfgsdir}/"*; do - [ ! -d "${board}" ] && continue - boards="${boards} ${board##*/}" - done - fi - for board in ${boards}; do - rm -f "${cbcfgsdir}"/*/seen - download_coreboot_for_board "${board}" - done - - rm -f ${cbcfgsdir}/*/seen -} - -download_coreboot_for_board() -{ - _board="${1}" - cbtree="undefined" - cbrevision="undefined" - - fetch_coreboot_config "${_board}" || exit 1 - - rm -f "${cbcfgsdir}"/*/seen - - if [ -d "coreboot/${cbtree}" ]; then - printf "REMARK: download/coreboot %s: exists. Skipping.\n" \ - ${cbtree} - [ "${cbtree}" != "${1}" ] && \ - printf "(for board: '%s}')\n" ${1} - return 0 - fi - - gitclone_coreboot_from_upstream || exit 1 - - prepare_new_coreboot_tree "${1}" "${cbtree}" "${cbrevision}" \ - || exit 1 -} - -fetch_coreboot_config() -{ - _board=${1} - - while true; do - cbrevision="undefined" - cbtree="undefined" - - check_config_for_board "${_board}" || return 1 - - # This is to override $cbrevision and $cbtree - . "${cbcfgsdir}/${_board}/board.cfg" || exit 1 - - if [ "${_board}" != "${cbtree}" ]; then - _board="${cbtree}" - continue - elif [ "${cbtree}" = "undefined" ]; then - printf "ERROR: download/coreboot:" - printf " tree name undefined for '%s\n'" \ - ${_board} - return 1 - elif [ "${cbrevision}" = "undefined" ]; then - printf "ERROR: download/coreboot:" - printf " commit ID undefined for '%s'\n" \ - ${_board} - return 1 - else - break - fi - done -} - -check_config_for_board() -{ - _board=${1} - - if [ ! -f "${cbcfgsdir}/${_board}/board.cfg" ]; then - printf "ERROR: download/coreboot: board.cfg does not" - printf " exist for '%s'\n" ${_board} - return 1 - elif [ -f "${cbcfgsdir}/${_board}/seen" ]; then - printf "ERROR: download/coreboot: logical loop:" - printf " '%s' board.cfg refers to another tree," ${_board} - printf " which ultimately refers back to '%s'." ${_board} - return 1 - fi - touch "${cbcfgsdir}/${_board}/seen" -} - -gitclone_coreboot_from_upstream() -{ - [ ! -d coreboot ] && \ - mkdir -p coreboot - [ ! -d coreboot ] && \ - return 1 - [ -d coreboot/coreboot ] && \ - return 0 - ./gitclone coreboot || \ - return 1 -} - -prepare_new_coreboot_tree() -{ - target=${1} - cbtree=${2} - cbrevision=${3} - - printf "Preparing coreboot tree: %s\n" ${cbtree} - [ "${cbtree}" != "${target}" ] && \ - printf "(for board: %s)\n" "${target}" - - cp -R coreboot/coreboot "coreboot/${cbtree}" || exit 1 - ( - cd "coreboot/${cbtree}" \ - || err "cannot cd to coreboot/${cbtree}" - git reset --hard ${cbrevision} \ - || err "cannot reset coreboot revision for tree, ${cbtree}" - git submodule update --init --checkout \ - || err "cannot update coreboot submodules for tree, ${cbtree}" - - for patch in ../../"${cbcfgsdir}"/"${cbtree}"/patches/*.patch; do - [ ! -f "${patch}" ] && \ - continue - if ! git am "${patch}"; then - git am --abort - err "cannot patch ${cbtree}" - fi - done - - # extra.sh can be used for anything - # but should *only* be a last resort - if [ -f "../../${cbcfgsdir}/${cbtree}/extra.sh" ]; then - "../../${cbcfgsdir}/${cbtree}/extra.sh" || \ - err "${cbtree} extra.sh" - fi - ) -} - -err() -{ - printf "ERROR: %s: %s\n" $0 $1 1>&2 - exit 1 -} - -main $@ diff --git a/resources/scripts/update/module/mrc b/resources/scripts/update/module/mrc index d6a1c3a6..84e79f62 100755 --- a/resources/scripts/update/module/mrc +++ b/resources/scripts/update/module/mrc @@ -74,7 +74,7 @@ check_existing() build_dependencies() { if [ ! -d "${cbdir}/" ]; then - ./download coreboot default || return 1 + ./fetch_trees coreboot default || return 1 fi ./build module cbutils default || return 1 return 0 diff --git a/resources/scripts/update/module/u-boot b/resources/scripts/update/module/u-boot deleted file mode 100755 index 161608c9..00000000 --- a/resources/scripts/update/module/u-boot +++ /dev/null @@ -1,262 +0,0 @@ -#!/usr/bin/env sh - -# helper script: download u-boot -# -# Copyright (C) 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> -# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com> -# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com> -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# - -[ "x${DEBUG+set}" = 'xset' ] && set -v -set -u -e - -[ -f build_error ] && rm -f build_error - -list_supported_boards() { - for board in resources/u-boot/*; do - if [ -d ${board} ]; then - echo "${board#resources/u-boot/}" - fi - done -} - -downloadfor() { - board="${1}" - - # The loop will always exit, but this while loop is crafted - # such that a tree referencing a tree that references another tree is possible - # (and so on) - while true; do - ubrevision="undefined" - ubtree="undefined" - - if [ ! -f "resources/u-boot/${board}/board.cfg" ]; then - printf "ERROR: %s: board.cfg does not exist for '%s'\n" \ - "download/u-boot" "${board}" - return 1 - fi - - if [ -f "resources/u-boot/${board}/seen" ]; then - printf "ERROR: %s: logical loop; '%s' board.cfg refers to another tree, which ultimately refers back to '%s'.\n" \ - "download/u-boot" "${board}" "${board}" - return 1 - fi - - # This is to override $ubrevision and $ubtree - . "resources/u-boot/${board}/board.cfg" || touch build_error - if [ -f build_error ]; then - printf "ERROR: %s: problem sourcing %s/board.cfg\n" \ - "download/u-boot" "${board}" - return 1 - fi - touch "resources/u-boot/${board}/seen" - - if [ "${board}" != "${ubtree}" ]; then - board="${ubtree}" - else - if [ "${ubtree}" = "undefined" ]; then - printf "ERROR: %s: tree name undefined for '%s\n'" \ - "download/u-boot" "${board}" - return 1 - fi - - if [ "${ubrevision}" = "undefined" ]; then - printf "ERROR: %s: commit ID undefined for '%s'\n" \ - "download/u-boot" "${board}" - return 1 - fi - break - fi - done - - rm -f resources/u-boot/*/seen - - ubtree="u-boot/${ubtree}" - if [ -d "${ubtree}" ]; then - printf \ - "REMARK: '%s' directory already exists. Skipping setup.\n" \ - "${ubtree}" - if [ "${ubtree}" != "u-boot/${board}" ]; then - printf "(for board: '${board}')\n" - fi - return 0 - fi - - if [ ! -d "u-boot" ]; then - mkdir -p "u-boot" - fi - - if [ ! -d "u-boot" ]; then - printf \ - "ERROR: '%s' directory not created. Check file system permissions\n" \ - "u-boot" - return 1 - fi - - uboot_dir="u-boot/u-boot" - if [ ! -d "${uboot_dir}/.git" ] && [ -d "${uboot_dir}" ]; then - rm -Rf "${uboot_dir}" - fi - - if [ ! -d "${uboot_dir}" ]; then - printf "Download u-boot from upstream:\n" - git clone https://source.denx.de/u-boot/u-boot.git \ - "${uboot_dir}" || \ - rm -Rf "${uboot_dir}" - if [ ! -d "${uboot_dir}" ]; then - printf "WARNING: Upstream failed. Trying backup github repository:\n" - git clone https://github.com/u-boot/u-boot.git \ - "${uboot_dir}" || \ - rm -Rf coreboot - fi - if [ ! -d "${uboot_dir}" ]; then - printf \ - "ERROR: %s: Problem with git-clone. Network issue?\n" \ - "download/u-boot" - return 1 - fi - fi - - git -C "${uboot_dir}" fetch origin "${ubrevision}" || touch build_error - if [ -f build_error ]; then - printf \ - "ERROR: %s: Problem with git-fetch. Network issue?\n" \ - "download/u-boot" - return 1 - fi - - cp -R "${uboot_dir}" "${ubtree}" || touch build_error - if [ -f build_error ]; then - printf "ERROR: %s: Unable to copy directory. Check file system permissions or free space.\n" \ - "download/u-boot" - rm -Rf "${ubtree}/" - return 1 - fi - - git -C "${ubtree}" reset --hard ${ubrevision} || \ - touch build_error - if [ -f build_error ]; then - printf \ - "ERROR: %s: Unable to reset to commit ID/tag '%s' for board '%s' on tree '%s'\n" \ - "download/u-boot" "${ubrevision}" "${board}" "${ubtree}" - return 1 - fi - - git -C "${ubtree}" submodule update --init || touch build_error - if [ -f build_error ]; then - printf "ERROR: %s: Unable to update submodules for tree '%s'\n" \ - "${ubtree}" - return 1 - fi - - for patch in resources/u-boot/${board}/patches/*.patch; do - if [ ! -f "${patch}" ]; then - continue - fi - - git -C "${ubtree}" am "$(pwd)/${patch}" || touch build_error - if [ -f build_error ]; then - printf "ERROR: %s: Unable to apply patch '%s' for board '%s' on tree '%s'" \ - "download/u-boot" "${patch}" "${board}" "${ubtree}" - git -C "${ubtree}" am --abort - return 1 - fi - done - - # extra.sh could be used to patch submodules, if you wanted to - # It's impossible to predict what submodules will be available, and - # it's rare that you'd want to patch them, so this is handled by - # extra.sh on a per-board basis - # In fact, extra.sh can be used for anything you want. - if [ -f "resources/u-boot/${board}/extra.sh" ]; then - ( cd "${ubtree}" && "../../resources/u-boot/${board}/extra.sh"; ) || touch build_error - if [ -f build_error ]; then - return 1 - fi - return 0 - else - return 0 - fi -} - -strip_comments() -{ - file="$1" - # Remove comments - sed 's/#.*//' "${file}" | \ - # Remove lines composed of whitespaces only - sed '/^\W\+$/d' | \ - # Remove empty lines - sed '/^$/d' -} - -usage() -{ - progname="./download u-boot" - - printf "Usage:\n" - printf "\t%s # %s\n" \ - "${progname}" \ - "Download u-boot for all boards" - printf "\t%s [board] # %s\n" \ - "${progname}" \ - "Download u-boot for the given board" - printf "\t%s --list-boards # %s\n" \ - "${progname}" \ - "List supported boards" - printf "\t%s --help # %s\n" \ - "${progname}" \ - "Prints this help" -} - -download_uboot_board() -{ - board="${1}" - ubtree="u-boot/${board}" - - printf "Downloading u-boot " - printf "and (if exist in build system) applying patches\n" - downloadfor "${board}" - - rm -f "build_error" - printf "\n\n" -} - -if [ $# -eq 0 ] ; then - for board in $(list_supported_boards); do - download_uboot_board "${board}" - done - exit 0 -elif [ $# -eq 1 ] && [ "$1" = "--help" ] ; then - usage - exit 0 -elif [ $# -eq 1 ] && [ "$1" = "--list-boards" ] ; then - list_supported_boards - exit 0 -elif [ $# -eq 1 ] ; then - for board in $(list_supported_boards) ; do - if [ "$board" = "$1" ] ; then - download_uboot_board "$1" - exit 0 - fi - done - - printf "Error: Board '${1}' is not supported\n" - - exit 1 -fi - -exit 0 diff --git a/resources/scripts/update/u-boot/configs b/resources/scripts/update/u-boot/configs index b01ef0db..4dbb05bc 100755 --- a/resources/scripts/update/u-boot/configs +++ b/resources/scripts/update/u-boot/configs @@ -31,38 +31,38 @@ printf "Updating U-Boot configs\n" # Build ROM images for supported boards updateconf() { board="$1" - if [ -f "resources/u-boot/${board}/board.cfg" ]; then - ubtree="undefined" - . "resources/u-boot/${board}/board.cfg" # source - if [ "${ubtree}" = "undefined" ]; then + if [ -f "resources/u-boot/${board}/target.cfg" ]; then + tree="undefined" + . "resources/u-boot/${board}/target.cfg" # source + if [ "${tree}" = "undefined" ]; then return 0 fi - if [ ! -d "u-boot/${ubtree}" ]; then - ./download u-boot ${ubtree} + if [ ! -d "u-boot/${tree}" ]; then + ./fetch_trees u-boot ${tree} fi for ubcfg in resources/u-boot/${board}/config/*; do if [ ! -f ${ubcfg} ]; then continue fi ( - cd u-boot/${ubtree}/ + cd u-boot/${tree}/ rm -f .config* make distclean ) - mv $ubcfg u-boot/${ubtree}/.config + mv $ubcfg u-boot/${tree}/.config ( - cd u-boot/${ubtree}/ + cd u-boot/${tree}/ make oldconfig ) - mv u-boot/${ubtree}/.config $ubcfg - rm -f u-boot/${ubtree}/.config* + mv u-boot/${tree}/.config $ubcfg + rm -f u-boot/${tree}/.config* ( - cd u-boot/${ubtree}/ + cd u-boot/${tree}/ make distclean ) done else - printf "\nupdate/config/u-boot: no board.cfg for: %s\n" "${board}" + printf "\nupdate/config/u-boot: no target.cfg for: %s\n" "${board}" fi } |