diff options
Diffstat (limited to 'resources/scripts/update')
-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 |
8 files changed, 32 insertions, 477 deletions
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 } |