Compare commits

..

1 Commits

Author SHA1 Message Date
Leah Rowe
9acb6a5339 update/release: reproducibility test without xz
in testing, between two linux distros, i got different src
tarball hashes, but same hashes when run twice on each

i'm using pretty solid options in tar, and riku came up
with the idea that maybe xz might be causing issue.

i'm ruling this out by running the release script with
this patch, on the same two systems, which will create
a .tar file instead, and i'll compare hashes.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-17 16:24:41 +01:00
83 changed files with 597 additions and 611 deletions

2
.gitignore vendored
View File

@@ -22,7 +22,7 @@
/push
/version
/versiondate
/vendorfiles/
/vendor/
*me.bin
*sch5545ec.bin
/mrc/

70
build
View File

@@ -11,7 +11,7 @@ set -u -e
. "include/err.sh"
. "include/option.sh"
eval "$(setvars "" option aur_notice tmpdir)"
eval "$(setvars "" mode option aur_notice tmpdir)"
tmpdir_was_set="y"
set | grep TMPDIR 1>/dev/null 2>/dev/null || tmpdir_was_set="n"
@@ -39,14 +39,11 @@ buildpath="./script/${linkname}"
main()
{
xx_ id -u 1>/dev/null 2>/dev/null
[ $# -lt 1 ] && fail "Too few arguments. Try: ${0} help"
[ "${1}" = "dependencies" ] && xx_ install_packages $@ && lbmk_exit 0
initialise_command $@ && shift 1
initialise_command $@
shift 2
check_git
check_project "fail"
git_init
execute_command $@
lbmk_exit 0
@@ -54,13 +51,22 @@ main()
initialise_command()
{
[ $# -lt 1 ] && fail "Too few arguments. Try: ${0} help"
mode="${1}"
[ "${mode}" != "dependencies" ] || xx_ install_packages $@
[ "$(id -u)" != "0" ] || fail "this command as root is not permitted"
case "${1}" in
help) usage ${0} && lbmk_exit 0 ;;
list) items "${buildpath}" && lbmk_exit 0 ;;
esac
option="${1}"
[ "${mode}" = "help" ] && usage ${0} && lbmk_exit 0
if [ "${mode}" = "list" ]; then
listitems "${buildpath}"
lbmk_exit 0
elif [ $# -lt 2 ]; then
usage ${0}
lbmk_exit 1
fi
option="${2}"
}
install_packages()
@@ -77,29 +83,23 @@ install_packages()
. "config/dependencies/${2}"
xx_ ${pkg_add} ${pkglist}
[ -z "${aur_notice}" ] && return 0
printf "You must install AUR packages: %s\n" "${aur_notice}" 1>&2
}
[ "${aur_notice}" = "" ] || \
printf "You must install AUR packages: %s\n" "${aur_notice}" 1>&2
# release archives contain .gitignore, but not .git.
# lbmk can be run from lbmk.git, or an archive.
git_init()
{
[ -L ".git" ] && fail "Reference .git is a symlink"
[ -e ".git" ] && return 0
eval "$(setvars "$(date -Rd @${versiondate})" cdate _nogit)"
git init || fail "${PWD}: cannot initialise Git repository"
git add -A . || fail "${PWD}: cannot add files to Git repository"
git commit -m "${projectname} ${version}" --date "${cdate}" || \
fail "${PWD}: can't commit ${projectname}/${version}, date ${cdate}"
git tag -a "${version}" -m "${projectname} ${version}" || \
fail "${PWD}: cannot git-tag ${projectname}/${version}"
lbmk_exit 0
}
execute_command()
{
lbmkcmd="${buildpath}/${option}"
if [ "${option}" = "list" ]; then
xx_ listitems "${buildpath}/${mode}"
lbmk_exit 0
fi
lbmkcmd="${buildpath}/${mode}/${option}"
[ "${lbmkcmd}" = "./script/build/boot/roms" ] && \
printf "NOTE: ./build boot roms now: ./build fw coreboot\n" 1>&2
[ "${lbmkcmd%/*}" = "./script/update/blobs" ] && \
printf "NOTE: ./update blobs is now: ./update vendor\n" 1>&2
[ -f "${lbmkcmd}" ] || fail "Invalid command. Run: ${linkpath} help"
"${lbmkcmd}" $@ || fail "execute_command: ${lbmkcmd} ${@}"
}
@@ -108,10 +108,16 @@ usage()
{
progname=${0}
cat <<- EOF
USAGE: ${progname} <OPTION>
USAGE: ${progname} <MODE> <OPTION>
possible values for 'OPTION':
$(items "${buildpath}")
possible values for 'mode':
$(listitems "${buildpath}")
For each of the above modes, you may also do:
${progname} <MODE> list
Example: ./build fw list, which would yield:
$(./build fw list)
Refer to ${projectname} documentation for more info.
EOF

View File

@@ -149,7 +149,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/e6430/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/e6430/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/e6430/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/e6430/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -147,7 +147,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/e6430/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/e6430/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/e6430/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/e6430/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -150,7 +150,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp_ivybridge/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp_ivybridge/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp_ivybridge/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp_ivybridge/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp_ivybridge/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp_ivybridge/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp_ivybridge/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp_ivybridge/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp_sandybridge/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp_sandybridge/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp_sandybridge/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp_sandybridge/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -146,7 +146,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp_sandybridge/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp_sandybridge/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp_sandybridge/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp_sandybridge/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -147,7 +147,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp_ivybridge/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp_ivybridge/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp_ivybridge/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp_ivybridge/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -145,7 +145,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp_ivybridge/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp_ivybridge/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp_ivybridge/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp_ivybridge/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp8200sff/ifd_4mb"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp8200sff/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp8200sff/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp8200sff/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -146,7 +146,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp8200sff/ifd_4mb"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp8200sff/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp8200sff/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp8200sff/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp8200sff/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp8200sff/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp8200sff/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp8200sff/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -146,7 +146,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp8200sff/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp8200sff/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp8200sff/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp8200sff/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp8300usdt/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp8300usdt/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp8300usdt/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp8300usdt/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -146,7 +146,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp8300usdt/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp8300usdt/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp8300usdt/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp8300usdt/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -149,7 +149,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp_ivybridge/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp_ivybridge/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp_ivybridge/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp_ivybridge/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -147,7 +147,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp_ivybridge/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp_ivybridge/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp_ivybridge/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp_ivybridge/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp_ivybridge/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp_ivybridge/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp_ivybridge/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp_ivybridge/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -146,7 +146,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/hp_ivybridge/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/hp_ivybridge/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/hp_ivybridge/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/hp_ivybridge/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -140,7 +140,7 @@ CONFIG_TPM_PIRQ=0x0
CONFIG_BOARD_DELL_PRECISION_T1650=y
CONFIG_BOARD_DELL_SNB_IVB_WORKSTATIONS=y
CONFIG_INCLUDE_SMSC_SCH5545_EC_FW=y
CONFIG_SMSC_SCH5545_EC_FW_FILE="../../../vendorfiles/t1650/sch5545ec.bin"
CONFIG_SMSC_SCH5545_EC_FW_FILE="../../../vendor/t1650/sch5545ec.bin"
CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000
CONFIG_ECAM_MMCONF_BUS_NUMBER=64
CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld"
@@ -155,7 +155,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/t1650/12_ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/t1650/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/t1650/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/t1650/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -150,7 +150,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx20/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx20/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx20/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx20/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -150,7 +150,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx20/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx20/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx20/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx20/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx20/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx20/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx20/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx20/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -149,7 +149,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -147,7 +147,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -143,7 +143,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/t440p/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/t440p/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/t440p/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/t440p/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
# CONFIG_ENABLE_DDR_2X_REFRESH is not set

View File

@@ -146,7 +146,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/t440p/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/t440p/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/t440p/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/t440p/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
# CONFIG_ENABLE_DDR_2X_REFRESH is not set

View File

@@ -144,7 +144,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/t440p/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/t440p/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/t440p/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/t440p/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
# CONFIG_ENABLE_DDR_2X_REFRESH is not set

View File

@@ -150,7 +150,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx20/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx20/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx20/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx20/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx20/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx20/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx20/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx20/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -149,7 +149,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -147,7 +147,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -149,7 +149,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -147,7 +147,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -143,7 +143,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/t440p/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/t440p/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/t440p/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/t440p/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
# CONFIG_ENABLE_DDR_2X_REFRESH is not set

View File

@@ -146,7 +146,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/t440p/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/t440p/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/t440p/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/t440p/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
# CONFIG_ENABLE_DDR_2X_REFRESH is not set

View File

@@ -144,7 +144,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../../config/ifd/t440p/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/t440p/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/t440p/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/t440p/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
# CONFIG_ENABLE_DDR_2X_REFRESH is not set

View File

@@ -151,7 +151,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx20/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx20/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx20/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx20/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -149,7 +149,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx20/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx20/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx20/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx20/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -150,7 +150,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -150,7 +150,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/16_ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/16_ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -150,7 +150,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -150,7 +150,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -150,7 +150,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/16_ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -148,7 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_IFD_BIN_PATH="../../../config/ifd/xx30/16_ifd"
CONFIG_ME_BIN_PATH="../../../vendorfiles/xx30/me.bin"
CONFIG_ME_BIN_PATH="../../../vendor/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../../config/ifd/xx30/gbe"
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_VBT_DATA_SIZE_KB=8

View File

@@ -1,15 +1,19 @@
pkg_add="apt-get -y install"
pkglist=" \
acpica-tools autoconf autogen automake autopoint autotools-dev bc \
binutils-arm-none-eabi bison build-essential cmake curl device-tree-compiler \
doxygen e2fsprogs efitools flex fonts-unifont gawk gcc-arm-linux-gnueabi \
gcc-arm-none-eabi gdb gettext git gnat help2man innoextract libdevmapper-dev \
libfdt-dev libfont-freetype-perl libfreetype6-dev libftdi-dev libfuse-dev \
libgnutls28-dev liblz4-tool liblzma-dev libncurses5-dev libncurses-dev \
libnewlib-arm-none-eabi libopts25 libopts25-dev libpci-dev libpython3-dev \
libsdl2-dev libselinux1-dev libssl-dev libtool libusb-1.0 libusb-1.0-0-dev \
libusb-dev lz4 lzma lzma-alone m4 nasm openssl p7zip p7zip-full parted pciutils \
perl pkg-config python3 python3-distutils python3-pkg-resources python3-pycryptodome \
python3-pyelftools python3-setuptools python-is-python3 sharutils swig unar \
unifont unzip uuid-dev wget zlib1g-dev \
wget git uuid-dev nasm build-essential sharutils curl parted e2fsprogs unzip \
pkg-config gcc-arm-linux-gnueabi \
build-essential python3 \
build-essential perl python3-setuptools libncurses5-dev doxygen iasl gdb flex \
bison build-essential git libssl-dev gnat python-is-python3 \
fonts-unifont libopts25 libselinux1-dev autogen m4 autoconf help2man \
libopts25-dev libfont-freetype-perl automake autotools-dev build-essential bison \
flex libfuse-dev liblzma-dev gawk libdevmapper-dev libtool libfreetype6-dev \
gettext unifont bc bison build-essential device-tree-compiler efitools flex \
libfdt-dev liblz4-tool libgnutls28-dev libncurses-dev libpython3-dev libsdl2-dev \
libssl-dev lz4 lzma lzma-alone openssl pkg-config python3 python3-distutils \
python3-pkg-resources python3-pycryptodome python3-pyelftools swig uuid-dev \
build-essential libpci-dev pciutils zlib1g-dev libftdi-dev build-essential \
libusb-1.0-0-dev libusb-1.0 libusb-1.0-0-dev libusb-dev cmake \
innoextract p7zip p7zip-full unar autopoint \
binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi cmake \
"

View File

@@ -1,11 +1,11 @@
pkg_add="dnf -y install"
pkglist=" \
acpica-tools arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-gcc-cs \
arm-none-eabi-newlib autogen bison bzip2 cmake curl dejavu-fonts-all \
device-mapper doxygen e2fsprogs flex freetype-devel fuse gawk gcc gcc-gnat \
gdb gettext gettext-devel git gprbuild help2man innoextract intltool \
libftdi-devel libselinux-devel libusb1 libusb1-devel nasm ncurses-devel \
openssl-devel p7zip p7zip-plugins pandoc parted pciutils-devel perl \
perl-libwww-perl python-unversioned-command python3 rsync sharutils subversion \
texinfo unar unifont unifont-fonts unifont-ttf-fonts unzip wget xz zlib-devel \
wget git pandoc nasm perl-libwww-perl python3 subversion gcc sharutils curl \
parted e2fsprogs unzip arm-none-eabi-gcc-cs gcc python3 gcc perl gcc-gnat \
ncurses-devel doxygen acpica-tools gdb flex bison gcc git openssl-devel gprbuild \
bzip2 unifont-fonts unifont unifont-ttf-fonts autogen help2man gcc bison flex \
dejavu-fonts-all texinfo rsync python3 libusb xz gawk device-mapper fuse gettext \
freetype-devel intltool libselinux-devel gcc pciutils-devel zlib-devel \
libftdi-devel gcc libusb-devel cmake innoextract p7zip p7zip-plugins unar \
arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-newlib cmake \
"

View File

@@ -1 +0,0 @@
debian

View File

@@ -1 +0,0 @@
ubuntu2004

View File

@@ -1,14 +1,19 @@
pkg_add="apt-get -y install"
pkglist=" \
autoconf autogen automake autopoint autotools-dev bc binutils-arm-none-eabi \
bison build-essential cmake curl device-tree-compiler doxygen e2fsprogs efitools \
flex gawk gcc-arm-linux-gnueabi gcc-arm-none-eabi gdb gettext git gnat help2man \
innoextract libdevmapper-dev libfdt-dev libfont-freetype-perl libfreetype6-dev \
libftdi-dev libfuse-dev libgnutls28-dev liblz4-tool liblzma-dev libncurses5-dev \
libncurses-dev libnewlib-arm-none-eabi libopts25 libopts25-dev libpci-dev \
libpython3-dev libsdl2-dev libselinux1-dev libssl-dev libtool libusb-1.0-0 \
libusb-1.0-0-dev lz4 lzma lzma-alone m4 nasm openssl p7zip p7zip-full parted \
pciutils perl pkg-config python3 python3-distutils python3-pkg-resources \
python3-pycryptodome python3-pyelftools python3-setuptools python-is-python3 \
sharutils swig ttf-unifont unar unifont unzip uuid-dev wget zlib1g-dev \
wget git uuid-dev nasm build-essential sharutils curl parted e2fsprogs unzip \
pkg-config gcc-arm-linux-gnueabi \
build-essential python3 \
build-essential perl python3-setuptools libncurses5-dev doxygen iasl gdb flex \
bison build-essential git libssl-dev gnat python-is-python3 \
ttf-unifont libopts25 libselinux1-dev autogen m4 autoconf help2man \
libopts25-dev libfont-freetype-perl automake autotools-dev build-essential bison \
flex libfuse-dev liblzma-dev gawk libdevmapper-dev libtool libfreetype6-dev \
gettext unifont bc bison build-essential device-tree-compiler efitools flex \
libfdt-dev liblz4-tool libgnutls28-dev libncurses-dev libpython3-dev libsdl2-dev \
libssl-dev lz4 lzma lzma-alone openssl pkg-config python3 python3-distutils \
python3-pkg-resources python3-pycryptodome python3-pyelftools swig uuid-dev \
build-essential libpci-dev pciutils zlib1g-dev libftdi-dev build-essential \
libusb-1.0-0-dev libusb-1.0 libusb-1.0-0-dev libusb-dev cmake \
innoextract p7zip p7zip-full unar \
binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi cmake \
"

View File

@@ -7,5 +7,5 @@ ncurses-devel font-unifont-bdf autogen help2man base-devel bison flex \
dejavu-fonts-ttf texinfo rsync python3 libusb xz gawk device-mapper fuse gettext \
gettext-devel freetype base-devel libpciaccess pciutils zlib libftdi1 \
base-devel libusb cmake innoextract p7zip unar cross-arm-none-eabi-binutils \
cross-arm-none-eabi-gcc cross-arm-none-eabi-newlib cross-arm-none-eabi-libstdc++ cmake \
cross-arm-none-eabi-gcc cross-arm-none-eabi-newlib cmake \
"

View File

@@ -2,5 +2,4 @@
rev: 0a7bc1d71735ef97b00dfec0fd54a02fcc5d1bb0
loc: bios_extract
url: https://review.coreboot.org/bios_extract
bkup_url: https://github.com/coreboot/bios_extract/
}

View File

@@ -1,6 +1,5 @@
{biosutilities}{
rev: 03ae0cf0706ede5a2a15da0986c19c776d0e6b26
loc: biosutilities
url: https://codeberg.org/libreboot/BIOSUtilities
bkup_url: https://github.com/platomav/BIOSUtilities
url: https://github.com/platomav/BIOSUtilities
}

View File

@@ -1,6 +1,5 @@
{flashrom}{
rev: fba29da188b4a3aa8a3cf6f5a3d13c37a5d9e1d7
rev: 11680db4e1251eb842bee11e53b6d1f0ae67767b
loc: flashrom
url: https://review.coreboot.org/flashrom.git
bkup_url: https://github.com/flashrom/flashrom
}

View File

@@ -2,13 +2,12 @@
rev: e58b870ff926415e23fc386af41ff81b2f588763
loc: grub
url: git://git.savannah.gnu.org/grub.git
bkup_url: https://codeberg.org/libreboot/grub
bkup_url: http://git.savannah.gnu.org/r/grub.git
depend: gnulib
}
{gnulib}{
rev: 9f48fb992a3d7e96610c4ce8be969cff2d61a01b
loc: grub/gnulib
url: git://git.sv.gnu.org/gnulib
bkup_url: https://codeberg.org/libreboot/gnulib
url: git://git.sv.gnu.org/gnulib
}

View File

@@ -1,6 +0,0 @@
{img}{
rev: 918c0ba07cf45f07836fa8c312fc51b48db32e0a
loc: img
url: https://codeberg.org/libreboot/lbwww-img
bkup_url: https://git.disroot.org/libreboot/lbwww-img
}

View File

@@ -1,6 +1,5 @@
{memtest86plus}{
rev: 5dcd424ea7afb857c1171e747ef064d98d26afeb
loc: memtest86plus
url: https://codeberg.org/libreboot/memtest86plus
bkup_url: https://github.com/memtest86plus/memtest86plus.git
url: https://github.com/memtest86plus/memtest86plus.git
}

View File

@@ -1,6 +0,0 @@
{pico-sdk}{
rev: 6a7db34ff63345a7badec79ebea3aaef1712f374
loc: pico-sdk
url: https://codeberg.org/libreboot/pico-sdk
bkup_url: https://github.com/raspberrypi/pico-sdk
}

View File

@@ -1,7 +0,0 @@
{pico-serprog}{
rev: c8c16e9c11fe9e5b7230ff358f79de3f1951e1d9
loc: pico-serprog
url: https://codeberg.org/libreboot/pico-serprog
bkup_url: https://git.disroot.org/libreboot/pico-serprog
depend: pico-sdk
}

34
config/git/serprog Normal file
View File

@@ -0,0 +1,34 @@
{rpi-pico-serprog}{
rev: c8c16e9c11fe9e5b7230ff358f79de3f1951e1d9
loc: pico-serprog
url: https://codeberg.org/libreboot/pico-serprog
bkup_url: https://notabug.org/libreboot/pico-serprog
depend: rpi-pico-sdk
depend: rpi-pico-tinyusb
}
{rpi-pico-sdk}{
rev: 6a7db34ff63345a7badec79ebea3aaef1712f374
loc: pico-sdk
url: https://github.com/raspberrypi/pico-sdk
}
{rpi-pico-tinyusb}{
rev: 86c416d4c0fb38432460b3e11b08b9de76941bf5
loc: pico-sdk/lib/tinyusb
url: https://github.com/hathach/tinyusb.git
}
{stm32-vserprog}{
rev: 8fcf0a4d41800631b571fa7bbd1d8b251f0a2111
loc: stm32-vserprog
url: https://codeberg.org/libreboot/stm32-vserprog
bkup_url: https://notabug.org/libreboot/stm32-vserprog
depend: libopencm3
}
{libopencm3}{
rev: 458250dc6147dc807eec9e4d5a6caf38a699ecb1
loc: stm32-vserprog/libopencm3
url: https://github.com/libopencm3/libopencm3
}

View File

@@ -1,6 +0,0 @@
{stm32-vserprog}{
rev: 8fcf0a4d41800631b571fa7bbd1d8b251f0a2111
loc: stm32-vserprog
url: https://codeberg.org/libreboot/stm32-vserprog
bkup_url: https://git.disroot.org/libreboot/stm32-vserprog
}

View File

@@ -1,6 +1,5 @@
{uefitool}{
rev: 4a41c33596e9bc3ae812e763965d91ac57553e02
loc: uefitool
url: https://codeberg.org/libreboot/UEFITool
bkup_url: https://github.com/LongSoft/UEFITool
url: https://github.com/LongSoft/UEFITool
}

View File

@@ -1,6 +0,0 @@
{www}{
rev: f3001eae5724ef38fe512a378148a2d619a0ff24
loc: www
url: https://codeberg.org/libreboot/lbwww
bkup_url: https://git.disroot.org/libreboot/lbwww
}

View File

@@ -101,7 +101,7 @@ menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o
# TODO: add more strings, based on what distros set up when
# the user select auto-partitioning on those installers
lvmvol="lvm/grubcrypt-bootvol lvm/grubcrypt-rootvol"
lvmvol="lvm/matrix-bootvol lvm/matrix-rootvol"
raidvol="md/0 md/1 md/2 md/3 md/4 md/5 md/6 md/7 md/8 md/9"

View File

@@ -16,7 +16,7 @@ index bd4431000..31308e16a 100644
grub_term_cls (term);
- msg_formatted = grub_xasprintf (_("GNU GRUB version %s"), PACKAGE_VERSION);
+ msg_formatted = grub_xasprintf (_("Libreboot 20231021 release, based on coreboot. https://libreboot.org/"));
+ msg_formatted = grub_xasprintf (_("libreboot firmware, based on coreboot. https://libreboot.org/"));
if (!msg_formatted)
return;

View File

@@ -1,7 +1,7 @@
# SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2022, 2023 Leah Rowe <leah@libreboot.org>
version=""; versiondate=""; projectname=""; _nogit=""
version=""; versiondate=""; projectname=""
x_() {
[ $# -lt 1 ] || ${@} || err_exit err ${@}

View File

@@ -4,7 +4,8 @@
# This file is only used by update/project/trees
eval "$(setvars "" _target rev _xm loc url bkup_url depend)"
eval "$(setvars "" _target rev _xm)"
eval "$(setvars "" loc url bkup_url depend)"
tmp_git_dir="${PWD}/tmp/gitclone"
fetch_project_trees()
@@ -13,11 +14,10 @@ fetch_project_trees()
[ -d "src/${project}/${project}" ] || fetch_from_upstream
fetch_config
[ -z "${rev}" ] && err "fetch_project_trees $target: undefined rev"
if [ -d "src/${project}/${tree}" ]; then
[ -d "src/${project}/${tree}" ] && \
printf "download/%s %s (%s): exists\n" \
"${project}" "${tree}" "${_target}" 1>&2
return 0
fi
"${project}" "${tree}" "${_target}" 1>&2 && \
return 1
prepare_new_tree
}
@@ -26,12 +26,12 @@ fetch_from_upstream()
[ -d "src/${project}/${project}" ] && return 0
x_ mkdir -p "src/${project}"
fetch_project_repo "${project}"
x_ fetch_project_repo "${project}"
}
fetch_config()
{
rm -f "${cfgsdir}/"*/seen || err "fetch_config ${cfgsdir}: !rm seen"
x_ rm -f "${cfgsdir}/"*/seen
while true; do
eval "$(setvars "" rev tree)"
_xm="fetch_config ${project}/${_target}"
@@ -51,7 +51,7 @@ load_target_config()
. "${cfgsdir}/${1}/target.cfg" || \
err "load_target_config ${cfgsdir}/${1}: cannot load config"
touch "${cfgsdir}/${1}/seen" || err "load_config $cfgsdir/$1: !mk seen"
x_ touch "${cfgsdir}/${1}/seen"
}
prepare_new_tree()
@@ -59,15 +59,14 @@ prepare_new_tree()
printf "Creating %s tree %s (%s)\n" "${project}" "${tree}" "${_target}"
x_ cp -R "src/${project}/${project}" "src/${project}/${tree}"
git_reset_rev "src/${project}/${tree}" "${rev}"
x_ git_reset_rev "src/${project}/${tree}" "${rev}"
(
x_ cd "src/${project}/${tree}"
if [ -f ".gitmodules" ]; then
git submodule update --init --checkout || \
err "prepare_new_tree ${project}/${tree}: !submodules"
fi
git submodule update --init --checkout || \
err "prepare_new_tree ${project}/${tree}: can't update git modules"
)
git_am_patches "$PWD/src/$project/$tree" "$PWD/$cfgsdir/$tree/patches"
git_am_patches "${PWD}/src/${project}/${tree}" \
"${PWD}/${cfgsdir}/${tree}/patches"
}
fetch_project_repo()
@@ -76,10 +75,10 @@ fetch_project_repo()
verify_config
clone_project
[ -z "${depend}" ] || for d in ${depend} ; do
x_ ./update trees -f ${d}
[ "${depend}" = "" ] || for d in ${depend} ; do
x_ ./update project trees -f ${d}
done
rm -Rf "${tmp_git_dir}" || err "fetch_repo: !rm -Rf ${tmp_git_dir}"
x_ rm -Rf "${tmp_git_dir}"
}
verify_config()
@@ -92,39 +91,33 @@ verify_config()
clone_project()
{
rm -Rf "${tmp_git_dir}" || err "clone_project: !rm -Rf ${tmp_git_dir}"
mkdir -p "${tmp_git_dir%/*}" || \
err "clone_project: !mkdir -p ${tmp_git_dir%/*}"
x_ rm -Rf "${tmp_git_dir}"
x_ mkdir -p "${tmp_git_dir%/*}"
loc="${loc#src/}"
loc="src/${loc}"
if [ -d "${loc}" ]; then
printf "%s already exists, so skipping download\n" "$loc" 1>&2
return 0
fi
git clone ${url} "${tmp_git_dir}" || \
git clone ${bkup_url} "${tmp_git_dir}" || \
err "clone_project: could not download ${project}"
git_reset_rev "${tmp_git_dir}" "${rev}"
git_am_patches "${tmp_git_dir}" "${PWD}/config/${project}/patches"
git_reset_rev "${tmp_git_dir}" "${rev}" || \
err "clone_project ${loc}/: cannot reset <- ${rev}"
git_am_patches "${tmp_git_dir}" "${PWD}/config/${project}/patches" || \
err "clone_project ${loc}/: cannot apply patches"
x_ rm -Rf "${loc}"
[ "${loc}" = "${loc%/*}" ] || x_ mkdir -p ${loc%/*}
mv "${tmp_git_dir}" "${loc}" || \
err "clone_project: !mv ${tmp_git_dir} ${loc}"
x_ mv "${tmp_git_dir}" "${loc}"
}
git_reset_rev()
{
sdir="${1}"
_rev="${2}"
(
cd "${1}" || err "git_reset_rev: !cd ${1}"
git reset --hard ${2} || err "!git reset ${1} <- ${2}"
if [ "${project}" != "coreboot" ] && [ "${project}" != "u-boot" ] && \
[ -f ".gitmodules" ]; then
git submodule update --init --checkout || \
err "git_reset_rev ${1}: can't download submodules"
fi
x_ cd "${sdir}"
git reset --hard ${_rev} || \
err "cannot git reset ${sdir} <- ${rev}"
)
}
@@ -133,7 +126,7 @@ git_am_patches()
sdir="${1}" # assumed to be absolute path
patchdir="${2}" # ditto
(
cd "${sdir}" || err "git_am_patches: !cd ${sdir}"
x_ cd "${sdir}"
for patch in "${patchdir}/"*; do
[ -L "${patch}" ] && continue
[ -f "${patch}" ] || continue
@@ -145,7 +138,8 @@ git_am_patches()
)
for patches in "${patchdir}/"*; do
[ -L "${patches}" ] && continue
[ ! -d "${patches}" ] && continue
git_am_patches "${sdir}" "${patches}"
[ ! -d "${patches}" ] || \
git_am_patches "${sdir}" "${patches}" err || \
err "apply_patches: !${sdir}/ ${patches}/"
done
}

View File

@@ -4,7 +4,7 @@
# Modifications in this version are Copyright 2021 and 2023 Leah Rowe.
# Original copyright detailed in repo: https://review.coreboot.org/coreboot/
eval "$(setvars "" MRC_url MRC_url_bkup MRC_hash MRC_board ROOTFS SHELLBALL)"
eval "$(setvars "" MRC_url MRC_url_bkup MRC_hash MRC_board)"
extract_mrc()
{
@@ -12,25 +12,25 @@ extract_mrc()
[ -z "${CONFIG_MRC_FILE}" ] && \
err "extract_mrc $MRC_hash: CONFIG_MRC_FILE not set"
ROOTFS="root-a.ext2"
SHELLBALL="chromeos-firmwareupdate-${MRC_board}"
_file="${MRC_url##*/}"
_file="${_file%.zip}"
(
x_ cd "${appdir}"
extract_partition
extract_shellball
extract_coreboot
extract_partition ROOT-A "${_file}" root-a.ext2
extract_shellball root-a.ext2 chromeos-firmwareupdate-${MRC_board}
extract_coreboot chromeos-firmwareupdate-${MRC_board}
)
"${cbfstool}" "${appdir}/"coreboot-*.bin extract -n mrc.bin \
-f "${_dest}" -r RO_SECTION || err "extract_mrc: cbfstool ${_dest}"
x_ "${cbfstool}" "${appdir}/"coreboot-*.bin extract -n mrc.bin \
-f "${_dest}" -r RO_SECTION
}
extract_partition()
{
NAME="ROOT-A"
FILE="${MRC_url##*/}"
FILE="${FILE%.zip}"
NAME=${1}
FILE=${2}
ROOTFS=${3}
_bs=1024
printf "Extracting ROOT-A partition\n"
@@ -40,13 +40,15 @@ extract_partition()
START=$(( $( echo ${ROOTP} | cut -f2 -d\ | tr -d "B" ) ))
SIZE=$(( $( echo ${ROOTP} | cut -f4 -d\ | tr -d "B" ) ))
dd if="${FILE}" of="${ROOTFS}" bs=${_bs} \
skip=$(( ${START} / ${_bs} )) count=$(( ${SIZE} / ${_bs} )) || \
err "extract_partition, dd ${FILE}, ${ROOTFS}"
x_ dd if="${FILE}" of="${ROOTFS}" bs=${_bs} \
skip=$(( ${START} / ${_bs} )) count=$(( ${SIZE} / ${_bs} ))
}
extract_shellball()
{
ROOTFS=${1}
SHELLBALL=${2}
printf "Extracting chromeos-firmwareupdate\n"
printf "cd /usr/sbin\ndump chromeos-firmwareupdate ${SHELLBALL}\nquit" \
| debugfs "${ROOTFS}" || err "extract_shellball: debugfs"
@@ -54,12 +56,13 @@ extract_shellball()
extract_coreboot()
{
_shellball=${1}
_unpacked=$( mktemp -d )
printf "Extracting coreboot image\n"
[ -f "${SHELLBALL}" ] || \
[ -f "${_shellball}" ] || \
err "extract_coreboot: shellball missing in google cros image"
sh "${SHELLBALL}" --unpack "${_unpacked}" || err "shellball, ${SHELLBALL}"
x_ sh "${_shellball}" --unpack "${_unpacked}"
# TODO: audit the f* out of that shellball, for each mrc version.
# it has to be updated for each mrc update. we should ideally
@@ -71,6 +74,5 @@ extract_coreboot()
_version=$( cat "${_unpacked}/VERSION" | grep BIOS\ version: | \
cut -f2 -d: | tr -d \ )
cp "${_unpacked}/bios.bin" "coreboot-${_version}.bin" || \
err "!cp unpacked, ${_unpacked}/bios.bin, coreboot-${_version}.rom"
x_ cp "${_unpacked}/bios.bin" "coreboot-${_version}.bin"
}

View File

@@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
vendir="vendorfiles"
vendir="vendor"
appdir="${vendir}/app"
cbdir="src/coreboot/default"
cbcfgsdir="config/coreboot"
@@ -17,11 +17,11 @@ eval "$(setvars "" CONFIG_BOARD_DELL_E6400 CONFIG_HAVE_MRC CONFIG_HAVE_ME_BIN \
CONFIG_INCLUDE_SMSC_SCH5545_EC_FW CONFIG_SMSC_SCH5545_EC_FW_FILE \
CONFIG_IFD_BIN_PATH CONFIG_MRC_FILE _dest board boarddir)"
items()
listitems()
{
rval=1
[ ! -d "${1}" ] && \
printf "items: directory '%s' doesn't exist" "${1}" && \
printf "listitems: directory '%s' doesn't exist" "${1}" && \
return 1
for x in "${1}/"*; do
# -e used because this is for files *or* directories
@@ -62,12 +62,13 @@ check_defconfig()
handle_coreboot_utils()
{
for util in cbfstool ifdtool; do
x_ ./update trees ${_f} "src/coreboot/${1}/util/${util}"
x_ ./update project trees ${_f} "src/coreboot/${1}/util/${util}"
[ -z "${mode}" ] && [ ! -f "cbutils/${1}/${util}" ] && \
x_ mkdir -p "cbutils/${1}" && \
x_ cp "src/coreboot/${1}/util/${util}/${util}" \
"cbutils/${1}"
[ -z "${mode}" ] || x_ rm -Rf "cbutils/${1}"
[ -z "${mode}" ] || \
x_ rm -Rf "cbutils/${1}"
done
}
@@ -89,12 +90,12 @@ modify_coreboot_rom()
done
elif [ "${romtype}" = "i945 laptop" ]; then
# for bucts-based installation method from factory bios
dd if="${rompath}" of="${tmprom}" bs=1 \
x_ dd if="${rompath}" of="${tmprom}" bs=1 \
skip=$(($(stat -c %s "${rompath}") - 0x10000)) \
count=64k || err "modrom 1, dd, ${rompath}"
dd if="${tmprom}" of="${rompath}" bs=1 \
count=64k
x_ dd if="${tmprom}" of="${rompath}" bs=1 \
seek=$(($(stat -c %s "${rompath}") - 0x20000)) \
count=64k conv=notrunc || err "modrom 2, dd, ${rompath}"
count=64k conv=notrunc
fi
x_ rm -f "${tmprom}"
}

View File

@@ -25,14 +25,15 @@ pv="${pv} payload_seabios_withgrub payload_uboot memtest_bin"
v="romdir cbrom initmode displaymode cbcfg targetdir tree arch"
v="${v} grub_timeout ubdir vendorfiles board grub_scan_disk uboot_config"
eval "$(setvars "n" ${pv})"
eval "$(setvars "" ${v} boards _displaymode _payload _keyboard all targets)"
eval "$(setvars "" ${v})"
eval "$(setvars "" boards _displaymode _payload _keyboard all targets)"
main()
{
while [ $# -gt 0 ]; do
case ${1} in
help) usage && exit 0 ;;
list) items config/coreboot && exit 0 ;;
list) listitems config/coreboot && exit 0 ;;
-d) _displaymode="${2}" ;;
-p) _payload="${2}" ;;
-k) _keyboard="${2}" ;;
@@ -44,7 +45,7 @@ main()
shift 2
done
[ "${all}" != "y" ] || boards=$(items config/coreboot) || \
[ "${all}" != "y" ] || boards=$(listitems config/coreboot) || \
err "Cannot generate list of boards for building"
for x in ${boards}; do
@@ -62,7 +63,11 @@ main()
printf "\nROM images available in these directories:\n"
printf "${targets}^^ ROM images available in these directories.\n\n"
printf "DO NOT flash ROM images from elf/ - please use bin/ instead.\n"
printf "WARNING!!!!!!! PLEASE READ:\n\n"
printf "DO NOT flash ROM images contained under elf/, because they lack"
printf " payloads and will BRICK your machine. Please flash ROM images"
printf " contained under bin/ instead. YOU HAVE BEEN WARNED.\n\n"
}
check_target()
@@ -128,15 +133,15 @@ prepare_target()
cbrom="${cbdir}/build/coreboot.rom"
[ -f "${cbfstool}" ] || \
x_ ./update trees -b coreboot utils ${tree}
x_ ./update project trees -b coreboot utils ${tree}
build_dependency_seabios
memtest_bin="memtest86plus/build64/memtest.bin"
[ "${payload_memtest}" != "y" ] || [ -f "src/${memtest_bin}" ] || \
x_ ./update trees -b memtest86plus
x_ ./update project trees -b memtest86plus
rm -f "${romdir}/"* || err "!prepare, rm files, ${romdir}"
x_ rm -f "${romdir}/"*
build_dependency_grub
build_dependency_uboot
@@ -146,12 +151,13 @@ prepare_target()
build_dependency_seabios()
{
[ "${payload_seabios}" = "y" ] || return 0
[ -f "${seavgabiosrom}" ] && \
[ -f elf/seabios/default/libgfxinit/bios.bin.elf ] && \
[ -f elf/seabios/default/vgarom/bios.bin.elf ] && \
[ -f elf/seabios/default/normal/bios.bin.elf ] && return 0
x_ ./update trees -b seabios
if [ ! -f "${seavgabiosrom}" ] \
|| [ ! -f elf/seabios/default/libgfxinit/bios.bin.elf ] \
|| [ ! -f elf/seabios/default/vgarom/bios.bin.elf ] \
|| [ ! -f elf/seabios/default/normal/bios.bin.elf ]; then
x_ ./update project trees -b seabios
fi
}
build_dependency_grub()
@@ -171,14 +177,14 @@ build_dependency_grub()
rebuild_grub="y" && break
done
[ "${rebuild_grub}" = "y" ] || return 0
x_ ./build grub
x_ ./build fw grub
}
build_dependency_uboot()
{
[ "${payload_uboot}" = "y" ] || return 0
x_ ./update trees -b u-boot ${board}
x_ ./update project trees -b u-boot ${board}
ubdir="elf/u-boot/${board}/${uboot_config}"
ubootelf="${ubdir}/u-boot.elf"
[ ! -f "${ubootelf}" ] && [ -f "${ubdir}/u-boot" ] && \
@@ -215,7 +221,7 @@ build_roms()
"${cbcfg}" "${board}" "${displaymode}" "${initmode}" \
1>&2 && return 0
x_ ./update trees -b coreboot ${board}
x_ ./update project trees -b coreboot ${board}
_cbrom="elf/coreboot_nopayload_DO_NOT_FLASH/${board}/${initmode}_${displaymode}"
[ "${initmode}" = "normal" ] && \
@@ -274,17 +280,15 @@ build_grub_roms()
if [ "${displaymode}" = "vesafb" ] || \
[ "${displaymode}" = "corebootfb" ]; then
backgroundfile="config/grub/background/${grub_background}"
"${cbfstool}" "${tmprom}" add -f ${backgroundfile} \
-n background.png -t raw || err "insert background, ${backgroundfile}"
x_ "${cbfstool}" "${tmprom}" add -f ${backgroundfile} \
-n background.png -t raw
fi
tmpcfg=$(mktemp -t coreboot_rom.XXXXXXXXXX)
printf "set grub_scan_disk=\"%s\"\n" "${grub_scan_disk}" >"${tmpcfg}" \
|| err "set grub_scandisk, ${grub_scan_disk}, ${tmpcfg}"
x_ printf "set grub_scan_disk=\"%s\"\n" "${grub_scan_disk}" >"${tmpcfg}"
[ "${grub_scan_disk}" = "both" ] || \
x_ "${cbfstool}" "${tmprom}" add -f "${tmpcfg}" -n scan.cfg -t raw
printf "set timeout=%s\n" "${grub_timeout}" > "${tmpcfg}" || \
err "set timeout, ${grub_timeout}, ${tmpcfg}"
x_ printf "set timeout=%s\n" "${grub_timeout}" > "${tmpcfg}"
[ -z "${grub_timeout}" ] || x_ "${cbfstool}" "${tmprom}" add \
-f "${tmpcfg}" -n timeout.cfg -t raw
x_ rm -f "${tmpcfg}"
@@ -393,9 +397,9 @@ moverom() {
usage()
{
cat <<- EOF
USAGE: ./build roms targetname
To build *all* boards, do this: ./build roms all
To list *all* boards, do this: ./build roms list
USAGE: ./build fw coreboot targetname
To build *all* boards, do this: ./build fw coreboot all
To list *all* boards, do this: ./build fw coreboot list
Optional Flags:
-d: displaymode
@@ -404,12 +408,12 @@ usage()
Example commands:
./build roms x60
./build roms x200_8mb x60
./build roms x60 -p grub -d corebootfb -k usqwerty
./build fw coreboot x60
./build fw coreboot x200_8mb x60
./build fw coreboot x60 -p grub -d corebootfb -k usqwerty
possible values for 'target':
$(items "config/coreboot")
$(listitems "config/coreboot")
Refer to the ${projectname} documentation for more information.
EOF

View File

@@ -23,10 +23,10 @@ main()
handle_dependencies()
{
[ -d "src/grub" ] || x_ ./update trees -f grub
[ -d "src/grub" ] || x_ ./update project trees -f grub
[ -f "src/grub/grub-mkstandalone" ] || build_grub_utils
x_ mkdir -p "${elfdir}"
rm -f "${elfdir}/"* || err "!rm elf, handle_, ${elfdir}/"
x_ rm -f "${elfdir}/"*
}
build_grub_utils()
@@ -37,7 +37,7 @@ build_grub_utils()
x_ ./bootstrap --gnulib-srcdir=gnulib/ --no-git
x_ ./autogen.sh
x_ ./configure --with-platform=coreboot
make -j$(nproc) FS_PAYLOAD_MODULES="" || err "!mk grub utils"
x_ make -j$(nproc) FS_PAYLOAD_MODULES=""
)
}
@@ -47,8 +47,8 @@ build_keymap_configs()
[ -f "${keylayoutfile}" ] || continue
keymap="${keylayoutfile##${grubcfgsdir}/keymap/}"
keymap="${keymap%.gkb}"
printf "keymap %s\n" "${keymap}" > \
"${elfdir}/keymap_${keymap}.cfg" || err "!insert keymap"
x_ printf "keymap %s\n" "${keymap}" > \
"${elfdir}/keymap_${keymap}.cfg"
done
}

View File

@@ -22,12 +22,12 @@ main()
platform="rp2040"
boards_dir=${pico_sdk_dir}/src/boards/include/boards
[ -d "${pico_src_dir}/" ] || \
x_ ./update trees -f "pico-serprog"
x_ ./update project trees -f "rpi-pico-serprog"
elif [ "${1}" = "stm32" ]; then
platform="stm32"
boards_dir=${stm32_src_dir}/boards
[ -d "${stm32_src_dir}/" ] || \
x_ ./update trees -f "stm32-vserprog"
x_ ./update project trees -f "stm32-vserprog"
else
err "${usage}"
fi

247
script/update/project/release Executable file
View File

@@ -0,0 +1,247 @@
#!/usr/bin/env sh
# SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2020-2023 Leah Rowe <leah@libreboot.org>
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
. "include/err.sh"
. "include/option.sh"
eval "$(setvars "" vdir relname src_dirname srcdir _nogit _xm target romdir \
microcode_required mode)"
_f="coreboot u-boot seabios flashrom grub memtest86plus uefitool"
_f="${_f} bios_extract biosutilities pico-serprog stm32-vserprog"
_f="${_f} rpi-pico-serprog"
main()
{
vdir="release"
while getopts d:m: option; do
[ -z "${OPTARG}" ] && err "Empty argument not allowed"
case "${option}" in
d) vdir="${OPTARG}" ;;
m) mode="${OPTARG}" ;;
*) err "Invalid option" ;;
esac
done
vdir="${vdir}/${version}"
relname="${projectname}-${version}"
src_dirname="${relname}_src"
srcdir="${vdir}/${src_dirname}"
[ -e "${vdir}" ] && err "already exists: \"${vdir}\""
mkvdir
build_release
}
mkvdir()
{
mkdir -p "${vdir}" || err "mkvdir: !mkdir -p \"${vdir}\""
git_init || err "mkvdir: !git_init \"${vdir}\""
git clone . "${srcdir}" || err "mkdir: !gitclone \"${srcdir}\""
[ -z "${_nogit}" ] || x_ rm -Rf ".git"
rm -Rf "${srcdir}/.git"
insert_version_files "${srcdir}" || err "mkvdir ${srcdir}: versionfile"
}
# release archives contain .gitignore, but not .git.
# this script can be run from lbmk.git, or an archive.
git_init()
{
[ -L ".git" ] && err "Reference .git is a symlink"
[ -e ".git" ] && return 0
eval "$(setvars "$(date -Rd @${versiondate})" cdate _nogit)"
git init || return 1
git add -A . || return 1
git commit -m "${projectname} ${version}" --date "${cdate}" || return 1
git tag -a "${version}" -m "${projectname} ${version}" || return 1
}
build_release()
{
_xm="build_release ${vdir}"
(
cd "${srcdir}" || err "${_xm}: !cd \"${srcdir}\""
fetch_trees
)
(
cd "${srcdir%/*}" || err "${_xm}: mktarball \"${srcdir}\""
mktarball "${srcdir##*/}" "${srcdir##*/}.tar.xz" || err "${_xm}: mksrc"
)
if [ "${mode}" != "src" ]; then
(
cd "${srcdir}" || err "${_xm}: 2 !cd \"${srcdir}\""
mkrom_images
)
fi
rm -Rf "${srcdir}" || err "${_xm}: !rm -Rf \"${srcdir}\""
}
fetch_trees()
{
for x in ${_f}; do
./update project trees -f "${x}" || err "${_xm}: fetch ${x}"
done
for x in config/*/build.list; do
[ -f "${x}" ] || continue
xp="${x#*/}"; xp="${xp%/*}"
[ -L "${xp}" ] || x_ rm -Rf "src/${xp}/${xp}"
done
rm -Rf */.git* */*/.git* */*/*/.git* */*/*/*/.git* */*/*/*/*/.git* \
*/*/*/*/*/*/.git* */*/*/*/*/*/*/.git* */*/*/*/*/*/*/*/.git* \
.git tmp || err "${_xm}: rm-dotgit"
}
mkrom_images()
{
./build fw coreboot all || err "${_xm}: roms-all"
./build fw serprog rp2040 || err "${_xm}: rp2040"
./build fw serprog stm32 || err "${_xm}: stm32"
for rombuild in bin/*; do
[ -d "${rombuild}" ] || continue
handle_rom_archive "${rombuild}"
done
mv "release/${version}/roms/" ../roms || err "${_xm}: copy roms/"
}
handle_rom_archive()
{
builddir="${1}"
romdir="tmp/romdir"
x_ rm -Rf "${romdir}"
target="${builddir##*/}"
if [ ! -f "config/coreboot/${target}/target.cfg" ]; then
# No config, just make a tarball
tarball="release/${version}/roms/${relname}_${target}.tar.xz"
insert_copying_files "${builddir}"
mktarball "${builddir}" "${tarball}"
return 0
fi
romdir="${romdir}/bin/${target}"
x_ mkdir -p "${romdir}"
x_ cp "${builddir}/"* "${romdir}"
nukerom
printf "Generating release/%s/roms/%s-%s_%s.tar.xz\n" \
"${version}" "${projectname}" "${version}" "${target##*/}"
insert_version_files "${romdir}" || \
err "mkrom_tarball ${romdir}: versionfile"
insert_copying_files "${romdir}"
mkrom_tarball
}
nukerom()
{
microcode_required="y"
. "config/coreboot/${target}/target.cfg"
if [ "${microcode_required}" != "y" ] && \
[ "${microcode_required}" != "n" ]; then microcode_required="y"; fi
if [ "${microcode_required}" = "n" ]; then
for romfile in "${romdir}"/*.rom; do
[ -f "${romfile}" ] || continue
strip_ucode "${romfile}"
done
for romfile in "${romdir}"/*.tmprom; do
[ -f "${romfile}" ] || continue
x_ mv "${romfile}" "${romfile%.tmprom}.rom"
done
fi
# Hash the images before removing vendor files
# which ./update vendor inject uses for verification
x_ rm -f "${romdir}/vendorhashes"
x_ touch "${romdir}/vendorhashes"
(
x_ cd "${romdir}"
x_ sha512sum *.rom >> vendorhashes
)
for romfile in "${romdir}"/*.rom; do
[ -f "${romfile}" ] || continue
x_ ./update vendor inject -r "${romfile}" -b ${target} -n nuke
done
}
strip_ucode()
{
romfile=${1}
_newrom_b="${romfile%.rom}_nomicrocode.tmprom"
x_ cp "${romfile}" "${_newrom_b}"
microcode_present="y"
"${cbfstool}" "${_newrom_b}" remove -n \
cpu_microcode_blob.bin 2>/dev/null || microcode_present="n"
[ "${microcode_present}" = "n" ] || return 0
printf "REMARK: '%s' already lacks microcode\n" "${romfile}" 1>&2
printf "Renaming default ROM file instead.\n" 1>&2
x_ mv "${romfile}" "${_newrom_b}"
}
insert_copying_files()
{
x_ rm -Rf "${1}/licenses"
x_ mkdir -p "${1}/licenses"
l="${1}/licenses"
# copy licenses to rom image archive, for completion
x_ cp "src/grub/COPYING" "${l}/COPYING.grub"
x_ cp "src/coreboot/default/COPYING" "${l}/COPYING.coreboot"
x_ cp -R "src/coreboot/default/LICENSES" "${l}/LICENSES.coreboot"
x_ cp "src/seabios/default/COPYING" "${l}/COPYING.coreboot"
x_ cp "src/seabios/default/COPYING.LESSER" "${l}/COPYING.LESSER.seabios"
x_ cp -R "src/u-boot/default/Licenses" "${l}/COPYING.u-boot"
}
mkrom_tarball()
{
archivename="${relname}_${target##*/}"
f="release/${version}/roms/${archivename}"
x_ mkdir -p "${f%/*}"
(
x_ cd "${romdir%/bin/${target}}"
mktarball "bin/${target}" "${archivename}.tar.xz"
)
x_ mv "${romdir%/bin/${target}}/${archivename}.tar.xz"* "${f%/*}"
printf "Created ROM archive: ${f%/*}/${archivename}.tar.xz"
}
insert_version_files()
{
printf "%s\n" "${version}" > "${1}/version" || return 1
printf "%s\n" "${versiondate}" > "${1}/versiondate" || return 1
printf "%s\n" "${projectname}" > "${1}/projectname" || return 1
}
mktarball()
{
# preserve timestamps for reproducible tarballs
tar_implementation=$(tar --version | head -n1) || :
[ "${2%/*}" = "${2}" ] || x_ mkdir -p "${2%/*}"
if [ "${tar_implementation% *}" = "tar (GNU tar)" ]; then
tar --sort=name --owner=root:0 --group=root:0 \
--mtime="UTC 2023-10-14" -c "${1}" > "${2}" || \
err "mktarball 1, ${1}"
else
# TODO: reproducible tarballs on non-GNU systems
tar -c "${1}" > "${2}" || err "mktarball 2, ${1}"
fi
(
[ "${2%/*}" != "${2}" ] && x_ cd "${2%/*}"
x_ sha512sum "${2##*/}" > "${2##*/}.sha512"
)
}
main $@

View File

@@ -16,9 +16,12 @@ export LOCALVERSION="-${projectname}-${version%%-*}"
eval "$(setvars "" arch cfgsdir codedir config config_name crossgcc_ada mode \
elfdir listfile project romtype target target_dir targets tree _f target1)"
tmpclean="$(mktemp -d -t makeclean.XXXXXXXXXX)"
main()
{
while getopts f:b:m:u:c:x:s:l:n: option; do
while getopts f:b:m:u:c:x:s:l:n: option
do
_f="${1}"
case "${1}" in
-b) : ;;
@@ -34,16 +37,19 @@ main()
esac
shift; project="${OPTARG#src/}"; shift
done
[ -z "${_f}" ] && err "missing flag (-m/-u/-b/-c/-x/-f/-s/-l/-n)"
[ -z "${_f}" ] && err "flag not specified (-m, -u, -b, -c, -x, -f, -s, -l or -n)"
[ -z "${project}" ] && err "project name not specified"
[ -f "config/${project}/build.list" ] && build_targets $@ && return 0
build_projects $@
if [ ! -f "config/${project}/build.list" ]; then
build_projects $@
else
build_targets $@
fi
}
build_projects()
{
[ $# -gt 0 ] && x_ ./update trees ${_f} ${@}
[ $# -gt 0 ] && x_ ./update project trees ${_f} ${@}
if [ "${mode}" = "fetch" ]; then
fetch_project_repo
@@ -51,7 +57,7 @@ build_projects()
fi
codedir="src/${project}"
[ -d "${codedir}" ] || x_ ./update trees -f "${project}"
[ -d "${codedir}" ] || x_ ./update project trees -f "${project}"
if [ "${project}" = "uefitool" ]; then
(
@@ -81,7 +87,7 @@ build_targets()
[ $# -gt 0 ] && target1="${1}"
[ "${target1}" = "utils" ] && [ "${project}" = "coreboot" ] && \
shift 1
targets=$(items "${cfgsdir}") || \
targets=$(listitems "${cfgsdir}") || \
err "Cannot get options for ${cfgsdir}"
[ $# -gt 0 ] && targets=$@
@@ -97,7 +103,7 @@ handle_targets()
printf "Running 'make %s' for project '%s, target '%s''\n" \
"${mode}" "${project}" "${target}"
[ "${project}" != "coreboot" ] || [ ! -z ${mode} ] || \
x_ ./vendor download ${target}
x_ ./update vendor download ${target}
x_ handle_defconfig
done
@@ -145,8 +151,10 @@ handle_src_tree()
. "${target_dir}/target.cfg" || \
err "handle_src_tree ${target_dir}: cannot load target.cfg"
[ -z "${arch}" ] && err "handle_src_tree $project/$tree: arch unset"
[ -z "${tree}" ] && err "handle_src_tree $project/$tree: tree unset"
[ -z "${tree}" ] && \
err "handle_src_tree: ${target_dir}: tree undefined"
[ -z "${arch}" ] && \
err "handle_src_tree: ${target_dir}: undefined cpu type"
codedir="src/${project}/${tree}"
@@ -157,15 +165,23 @@ handle_src_tree()
"${codedir}" 1>&2
return 1
fi
x_ ./update trees -f "${project}" "${target}"
x_ ./update project trees -f "${project}" "${target}"
elif [ "${mode}" = "distclean" ] || \
[ "${mode}" = "crossgcc-clean" ]; then
[ -f "${tmpclean}/${tree}" ] && return 1
touch "${tmpclean}/${tree}"
fi
[ "${target1}" = "utils" ] && [ "${project}" = "coreboot" ] && return 0
[ "$project" != "coreboot" ] && [ "$project" != "u-boot" ] && return 0
# u-boot and coreboot are both compiled with coreboot's crossgcc
[ -z "${mode}" ] || return 0
check_cross_compiler
if [ "${project}" = "coreboot" ] || [ "${project}" = "u-boot" ]; then
[ ! -z ${mode} ] || check_cross_compiler || \
err "handle_src_tree ${project}/${target}: crossgcc"
cbfstool="cbutils/${tree}/cbfstool"
[ -f "${cbfstool}" ] || \
x_ ./update project trees -b coreboot utils "${tree}"
fi
}
# set up cross-compiler (coreboot crossgcc) for u-boot and coreboot
@@ -174,35 +190,42 @@ check_cross_compiler()
{
[ "${crossgcc_ada}" = "y" ] || [ "${crossgcc_ada}" = "n" ] || \
crossgcc_ada="y"
[ "${crossgcc_ada}" = "y" ] || export BUILD_LANGUAGES=c
[ "${crossgcc_ada}" != "y" ] && \
export BUILD_LANGUAGES=c
cbdir="src/coreboot/${tree}"
[ "${project}" != "coreboot" ] && cbdir="src/coreboot/default"
[ "${project}" != "coreboot" ] && \
cbdir="src/coreboot/default"
# only true if not building coreboot:
ctarget="${cbdir#src/coreboot/}"
[ -d "${cbdir}" ] || x_ ./update trees -f coreboot ${ctarget}
[ -d "${cbdir}" ] || \
x_ ./update project trees -f coreboot ${ctarget}
if [ "${arch}" = "x86_32" ] || [ "${arch}" = "x86_64" ]; then
[ -d "${cbdir}/util/crossgcc/xgcc/i386-elf/" ] || \
x_ make -C "${cbdir}" crossgcc-i386 CPUS=$(nproc)
make -C "${cbdir}" crossgcc-i386 CPUS=$(nproc) || \
return 1
case "$(uname -m)" in
x86*|i*86|amd64) : ;;
*) export CROSS_COMPILE=i386-elf- ;;
esac
elif [ "${arch}" = "ARMv7" ]; then
[ -d "${cbdir}/util/crossgcc/xgcc/arm-eabi/" ] || \
x_ make -C "${cbdir}" crossgcc-arm CPUS=$(nproc)
make -C "${cbdir}" crossgcc-arm CPUS=$(nproc) || \
return 1
case "$(uname -m)" in
arm|arm32|armv6*|armv7*) : ;;
*) export CROSS_COMPILE=arm-eabi- ;;
esac
elif [ "${arch}" = "AArch64" ]; then
[ -d "${cbdir}/util/crossgcc/xgcc/aarch64-elf/" ] || \
x_ make -C "${cbdir}" crossgcc-aarch64 CPUS=$(nproc)
make -C "${cbdir}" crossgcc-aarch64 CPUS=$(nproc) || \
return 1
# aarch64 also needs armv7 toolchain for arm-trusted-firmware
[ -d "${cbdir}/util/crossgcc/xgcc/arm-eabi/" ] || \
x_ make -C "${cbdir}" crossgcc-arm CPUS=$(nproc)
make -C "${cbdir}" crossgcc-arm CPUS=$(nproc) || \
return 1
case "$(uname -m)" in
arm64|aarch64) : ;;
*) export CROSS_COMPILE=aarch64-elf- ;;
@@ -210,7 +233,7 @@ check_cross_compiler()
fi
# we *must* ensure that u-boot's build system uses crossgcc first
export PATH="${PWD}/${cbdir}/util/crossgcc/xgcc/bin:$PATH"
export PATH="$(pwd)/${cbdir}/util/crossgcc/xgcc/bin:$PATH"
}
check_config()
@@ -256,7 +279,6 @@ run_make_command()
x_ printf "%s\n" "${version%%-*}" >"${codedir}/.coreboot-version"
x_ make ${mode} -j$(nproc) -C "${codedir}"
[ "${mode}" != "clean" ] && return 0
make -C "${codedir}" distclean 2>/dev/null || :
}

View File

@@ -1,282 +0,0 @@
#!/usr/bin/env sh
# SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2020-2023 Leah Rowe <leah@libreboot.org>
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
. "include/err.sh"
. "include/option.sh"
eval "$(setvars "" vdir relname src_dirname srcdir _xm target romdir \
microcode_required mode)"
main()
{
vdir="release"
while getopts d:m: option; do
[ -z "${OPTARG}" ] && err "Empty argument not allowed"
case "${option}" in
d) vdir="${OPTARG}" ;;
m) mode="${OPTARG}" ;;
*) err "Invalid option" ;;
esac
done
vdir="${vdir}/${version}"
relname="${projectname}-${version}"
src_dirname="${relname}_src"
srcdir="${vdir}/${src_dirname}"
[ -e "${vdir}" ] && err "already exists: \"${vdir}\""
mkvdir
build_release
printf "DONE! Check release files under %s\n" "${vdir}"
}
mkvdir()
{
mkdir -p "${vdir}" || err "mkvdir: !mkdir -p \"${vdir}\""
git clone . "${srcdir}" || err "mkdir: !gitclone \"${srcdir}\""
insert_version_files "${srcdir}" || err "mkvdir ${srcdir}: versionfile"
}
build_release()
{
_xm="build_release ${vdir}"
(
cd "${srcdir}" || err "${_xm}: !cd \"${srcdir}\""
fetch_trees
)
(
cd "${srcdir%/*}" || err "${_xm}: mktarball \"${srcdir}\""
mktarball "${srcdir##*/}" "${srcdir##*/}.tar.xz" || err "${_xm}: mksrc"
)
[ "${mode}" = "src" ] && return 0 # for src mode, xgcc tarballs are
# not included in the src archive
# now build roms, then copy crossgcc to src and re-compress
# while compressing rom images too.
(
cd "${srcdir}" || err "${_xm}: 2 !cd \"${srcdir}\""
mkrom_images
)
for _cbd in "${srcdir}/src/coreboot/"*; do
[ -d "${_cbd}/util/crossgcc/tarballs" ] || continue
_xgccdir="${vdir}/crossgcc/${_cbd##*/}"
mkdir -p "${_xgccdir}" || \
err "build_release: !mkdir -p ${_xgccdir}"
cp -R "${_cbd}/util/crossgcc/tarballs/"* "${_xgccdir}" || \
err "build_gcc: !copy xgcc ${_cbd}"
done
rm -Rf "${srcdir}" || err "build_release: !rm -Rf ${srcdir}"
(
cd "${srcdir%/*}" || err "${_xm} 2: mktarball \"${srcdir}\""
tar -xf "${srcdir##*/}.tar.xz" || err "!extract ${srcdir##*/}.tar.xz"
rm -f "${srcdir##*/}.tar.xz" || err "!rm -f ${srcdir##*/}.tar.xz"
)
for _xgcc in "${vdir}/crossgcc/"*; do
[ -d "${_xgcc}" ] || continue
mkdir -p "${srcdir}/src/coreboot/${_xgcc##*/}/util/crossgcc/tarballs" || \
err "!mkdir src/coreboot/${_xgcc##*/}/util/crossgcc/tarballs"
mv "${_xgcc}/"* \
"${srcdir}/src/coreboot/${_xgcc##*/}/util/crossgcc/tarballs/" \
|| err "!move xgcc tarballs to ${srcdir}/xgcc/${_xgcc##*/}"
done
rm -Rf "${vdir}/crossgcc" || err "!rm -Rf \"${vdir}/crossgcc\""
(
cd "${srcdir%/*}" || err "${_xm}: mktarball \"${srcdir}\""
mktarball "${srcdir##*/}" "${srcdir##*/}.tar.xz" || err "${_xm}: mksrc"
)
# now test the vendor insert script, using the release archive:
(
cd "${srcdir}" || err "!cd ${srcdir}"
for vrom in ../roms/*.tar.xz; do
[ -f "${vrom}" ] || continue
case "${vrom}" in
*serprog*) continue ;;
esac
./vendor inject "${vrom}" || \
err "TESTFAIL: inject: ${vrom##*/}"
continue
done
)
rm -Rf "${srcdir}" || err "!rm -Rf ${srcdir}"
}
fetch_trees()
{
for x in config/git/*; do
[ ! -f "${x}" ] || ./update trees -f "${x#config/git/}" || \
err "${_xm}: fetch ${x#config/git/}"
done
for x in config/*/build.list; do
[ -f "${x}" ] || continue
xp="${x#*/}"; xp="${xp%/*}"
[ -L "${xp}" ] || rm -Rf "src/${xp}/${xp}" || \
err "!rm -Rf \"src/${xp}/${xp}\""
done
find . -name ".git" -exec rm -Rf {} + || err "${_xm}: rm .git"
find . -name ".gitmodules" -exec rm -Rf {} + || err "${_xm}: rm .gitmod"
x_ rm -Rf tmp .git
}
mkrom_images()
{
./build roms all || err "${_xm}: roms-all"
./build serprog rp2040 || err "${_xm}: rp2040"
./build serprog stm32 || err "${_xm}: stm32"
for rombuild in bin/*; do
[ -d "${rombuild}" ] || continue
handle_rom_archive "${rombuild}"
done
mv "release/${version}/roms/" ../roms || err "${_xm}: copy roms/"
}
handle_rom_archive()
{
builddir="${1}"
romdir="tmp/romdir"
rm -Rf "${romdir}" || err "!rm romdir, handle_rom_archive"
target="${builddir##*/}"
if [ ! -f "config/coreboot/${target}/target.cfg" ]; then
# No config, just make a tarball
tarball="release/${version}/roms/${relname}_${target}.tar.xz"
insert_copying_files "${builddir}" || \
err "!insert copy, handle, ${builddir}"
mktarball "${builddir}" "${tarball}"
return 0
fi
romdir="${romdir}/bin/${target}"
mkdir -p "${romdir}" || err "!mkdir -p romdir, handle_rom_archive"
cp "${builddir}/"* "${romdir}" || err "!cp romdir, handle_rom_archive"
nukerom
printf "Generating release/%s/roms/%s-%s_%s.tar.xz\n" \
"${version}" "${projectname}" "${version}" "${target##*/}"
insert_version_files "${romdir}" || \
err "mkrom_tarball ${romdir}: versionfile"
insert_copying_files "${romdir}" || err "!insert copy, handle 2, ${romdir}"
mkrom_tarball
}
nukerom()
{
microcode_required="y"
. "config/coreboot/${target}/target.cfg"
if [ "${microcode_required}" != "y" ] && \
[ "${microcode_required}" != "n" ]; then microcode_required="y"; fi
if [ "${microcode_required}" = "n" ]; then
for romfile in "${romdir}"/*.rom; do
[ -f "${romfile}" ] || continue
strip_ucode "${romfile}"
done
for romfile in "${romdir}"/*.tmprom; do
[ -f "${romfile}" ] || continue
mv "${romfile}" "${romfile%.tmprom}.rom" || \
err "!mv romfile, nukerom"
done
fi
# Hash the images before removing vendor files
# which "./vendor inject" uses for verification
rm -f "${romdir}/vendorhashes" || err "!rm ${romdir}/vendorhashes"
touch "${romdir}/vendorhashes" || err "!touch ${romdir}/vendorhashes"
(
cd "${romdir}" || err "!cd romdir ${romdir}, nukerom"
sha512sum *.rom >> vendorhashes || err "!create vendorhashes, nukerom"
)
for romfile in "${romdir}"/*.rom; do
[ -f "${romfile}" ] || continue
./vendor inject -r "${romfile}" -b ${target} -n nuke || \
err "!vendor inject (nuke) ${romfile}, nukerom"
done
}
strip_ucode()
{
romfile=${1}
_newrom_b="${romfile%.rom}_nomicrocode.tmprom"
cp "${romfile}" "${_newrom_b}" || err "!cp romfile ${romfile}, strip_u"
microcode_present="y"
"${cbfstool}" "${_newrom_b}" remove -n \
cpu_microcode_blob.bin 2>/dev/null || microcode_present="n"
[ "${microcode_present}" = "n" ] || return 0
printf "REMARK: '%s' already lacks microcode\n" "${romfile}" 1>&2
printf "Renaming default ROM file instead.\n" 1>&2
mv "${romfile}" "${_newrom_b}" || err "!mv romfile ${romfile}, strip_u"
}
insert_copying_files()
{
rm -Rf "${1}/licenses" || return 1
mkdir -p "${1}/licenses" || return 1
l="${1}/licenses"
# copy licenses to rom image archive, for completion
cp "src/grub/COPYING" "${l}/COPYING.grub" || return 1
cp "src/coreboot/default/COPYING" "${l}/COPYING.coreboot" || return 1
cp -R "src/coreboot/default/LICENSES" "${l}/LICENSES.coreboot" || return 1
cp "src/seabios/default/COPYING" "${l}/COPYING.coreboot" || return 1
cp "src/seabios/default/COPYING.LESSER" "${l}/COPYING.LESSER.seabios" || return 1
cp -R "src/u-boot/default/Licenses" "${l}/COPYING.u-boot" || return 1
printf "Multiple licenses. Check corresponding %s source archive\n" \
"${projectname}" > "${1}/COPYING" || return 1
}
mkrom_tarball()
{
archivename="${relname}_${target##*/}"
f="release/${version}/roms/${archivename}"
mkdir -p "${f%/*}" || err "mkrom_tarball: !mkdir -p ${f%/*}"
(
cd "${romdir%/bin/${target}}" || err "!cd ${romdir%/bin/${target}}"
mktarball "bin/${target}" "${archivename}.tar.xz"
)
mv "${romdir%/bin/${target}}/${archivename}.tar.xz"* "${f%/*}" || \
err "!mktarball, rom, ${f%/*}/${romdir%/bin/${target}}/${archivename}.tar.xz"
printf "Created ROM archive: ${f%/*}/${archivename}.tar.xz"
}
insert_version_files()
{
printf "%s\n" "${version}" > "${1}/version" || return 1
printf "%s\n" "${versiondate}" > "${1}/versiondate" || return 1
printf "%s\n" "${projectname}" > "${1}/projectname" || return 1
}
mktarball()
{
# preserve timestamps for reproducible tarballs
tar_implementation=$(tar --version | head -n1) || :
[ "${2%/*}" = "${2}" ] || mkdir -p "${2%/*}" || err "mk, !mkdir -p \"${2%/*}\""
if [ "${tar_implementation% *}" = "tar (GNU tar)" ]; then
tar --sort=name --owner=root:0 --group=root:0 \
--mtime="UTC 2023-10-21" -c "${1}" | xz -T0 -9e > "${2}" || \
err "mktarball 1, ${1}"
else
# TODO: reproducible tarballs on non-GNU systems
tar -c "${1}" | xz -T0 -9e > "${2}" || err "mktarball 2, ${1}"
fi
(
[ "${2%/*}" != "${2}" ] && x_ cd "${2%/*}"
sha512sum "${2##*/}" > "${2##*/}.sha512" || \
err "!sha512sum \"${2##*/}\" > \"${2##*/}.sha512\""
)
}
main $@

View File

@@ -54,17 +54,18 @@ detect_firmware()
build_dependencies()
{
[ -d ${cbdir} ] || \
x_ ./update trees -f coreboot ${cbdir##*/}
x_ ./update project trees -f coreboot ${cbdir##*/}
for d in uefitool biosutilities bios_extract; do
[ -d "src/${d}" ] && continue
x_ ./update trees -f "${d}"
x_ ./update project trees -f "${d}"
done
[ -f "${uefiextract}" ] || \
x_ ./update trees -b uefitool
x_ ./update project trees -b uefitool
[ -f "${kbc1126_ec_dump}" ] || \
x_ make -C "${cbdir}/util/kbc1126"
[ -f "${cbfstool}" ] && [ -f "${ifdtool}" ] && return 0
x_ ./update trees -b coreboot utils default
if [ ! -f "${cbfstool}" ] || [ ! -f "${ifdtool}" ]; then
x_ ./update project trees -b coreboot utils default
fi
}
download_vendorfiles()
@@ -84,7 +85,8 @@ download_vendorfiles()
"${E6400_VGA_DL_url_bkup}" "${E6400_VGA_DL_hash}" \
"${CONFIG_VGA_BIOS_FILE}"
[ -z "${CONFIG_HAVE_MRC}" ] && return 0
fetch "mrc" "$MRC_url" "$MRC_url_bkup" "$MRC_hash" "$CONFIG_MRC_FILE"
fetch "mrc" "${MRC_url}" "${MRC_url_bkup}" "${MRC_hash}" \
"${CONFIG_MRC_FILE}"
}
fetch()
@@ -134,7 +136,7 @@ mkdirs()
{
[ -f "${1}" ] && \
printf "mkdirs ${1} ${2}: already downloaded\n" 1>&2 && return 1
mkdir -p "${1%/*}" || err "mkdirs: !mkdir -p ${1%/*}"
x_ mkdir -p "${1%/*}"
x_ rm -Rf "${appdir}"
x_ mkdir -p "${appdir}/"
extract_archive "${_dl}" "${appdir}" || \
@@ -190,7 +192,7 @@ extract_kbc1126ec()
mv Rompaq/68*.BIN ec.bin || :
if [ ! -f ec.bin ]; then
unar -D ROM.CAB Rom.bin || unar -D Rom.CAB Rom.bin || \
unar -D 68*.CAB Rom.bin || err "can't extract Rom.bin"
x_ unar -D 68*.CAB Rom.bin
x_ mv Rom.bin ec.bin
fi
[ -f ec.bin ] || err "extract_kbc1126_ec ${board}: can't extract"
@@ -203,8 +205,7 @@ extract_kbc1126ec()
done
[ "${ec_ex}" = "y" ] || \
err "extract_kbc1126_ec ${board}: didn't extract ecfw1/2.bin"
cp "${appdir}/"ec.bin.fw* "${_dest%/*}/" || \
err "extract_kbc1126_ec ${board}: can't copy ec binaries"
x_ cp "${appdir}/"ec.bin.fw* "${_dest%/*}/"
}
extract_e6400vga()
@@ -222,8 +223,7 @@ extract_e6400vga()
[ -f "${E6400_VGA_romname}" ] || \
err "extract_e6400vga: can't extract vga rom from bios.bin"
)
cp "${appdir}/${E6400_VGA_romname}" "${_dest}" || \
err "extract_e6400vga ${board}: can't copy vga rom to ${_dest}"
x_ cp "${appdir}/${E6400_VGA_romname}" "${_dest}"
}
extract_sch5545ec()

View File

@@ -15,7 +15,7 @@ main()
{
[ $# -lt 1 ] && err "No options specified."
[ "${1}" = "listboards" ] && \
items config/coreboot && exit 0
listitems config/coreboot && exit 0
archive="${1}"
@@ -78,7 +78,7 @@ detect_board()
_stripped_prefix=${filename#*_}
board="${_stripped_prefix%.tar.xz}" ;;
*)
err "detect_board $filename: could not detect board type"
err "detect_board: could not detect board type"
esac
[ -d "${boarddir}/" ] || \
err "detect_board: dir, ${boarddir}, doesn't exist"
@@ -87,21 +87,18 @@ detect_board()
build_dependencies()
{
[ -d "${cbdir}" ] || x_ ./update trees -f coreboot default
[ -d "${cbdir}" ] || x_ ./update project trees -f coreboot default
if [ ! -f "${cbfstool}" ] || [ ! -f "${ifdtool}" ]; then
x_ ./update trees -b coreboot utils default
x_ ./update project trees -b coreboot utils default
fi
[ -z "${new_mac}" ] || [ -f "${nvmutil}" ] || x_ make -C util/nvmutil
[ "${nukemode}" = "nuke" ] && return 0
x_ ./vendor download ${board}
x_ ./update vendor download ${board}
}
inject_vendorfiles()
{
if [ "${release}" != "y" ]; then
patch_rom "${rom}"
return 0
fi
[ "${release}" != "y" ] && x_ patch_rom "${rom}" && return 0
printf "patching release images\n"
patch_release_roms
}
@@ -111,24 +108,22 @@ patch_release_roms()
_tmpdir="tmp/romdir"
x_ rm -Rf "${_tmpdir}"
x_ mkdir -p "${_tmpdir}"
tar -xf "${archive}" -C "${_tmpdir}" || \
err "patch_release_roms: !tar -xf \"${archive}\" -C \"${_tmpdir}\""
x_ tar -xf "${archive}" -C "${_tmpdir}"
for x in "${_tmpdir}"/bin/*/*.rom ; do
printf "patching rom: %s\n" "$x"
patch_rom "${x}"
x_ patch_rom "${x}"
done
for x in "${_tmpdir}"/bin/*/*_nomicrocode.rom ; do
[ -f "${x}" ] || continue
[ -f "${x%_nomicrocode.rom}.rom" ] || continue
cp "${x%_nomicrocode.rom}.rom" "${x}" || \
err "patch_r: !cp \"${x%_nomicrocode.rom}.rom\" \"${x}\""
x_ cp "${x%_nomicrocode.rom}.rom" "${x}"
x_ "${cbfstool}" "${x}" remove -n cpu_microcode_blob.bin
done
(
x_ cd "${_tmpdir}/bin/"* # TODO: very dodgy, re-write accordingly
x_ cd "${_tmpdir}/bin/"*
# NOTE: For compatibility with older rom releases, defer to sha1
[ "${nukemode}" = "nuke" ] || \
@@ -216,28 +211,22 @@ inject()
if [ "${_t}" = "GbE" ]; then
x_ mkdir -p tmp
cp "${_dest}" "tmp/gbe.bin" || \
err "inject: !cp \"${_dest}\" \"tmp/gbe.bin\""
x_ cp "${_dest}" "tmp/gbe.bin"
_dest="tmp/gbe.bin"
"${nvmutil}" "${_dest}" setmac "${new_mac}" || \
err "inject ${_dest}: can't change mac address"
x_ "${nvmutil}" "${_dest}" setmac "${new_mac}"
fi
if [ "${cbfsname}" = "IFD" ]; then
if [ "${nukemode}" != "nuke" ]; then
"${ifdtool}" -i ${_t}:${_dest} "${rom}" -O "$rom" || \
err "inject: can't insert $_t ($dest) into $rom"
x_ "${ifdtool}" -i ${_t}:${_dest} "${rom}" -O "$rom"
else
"${ifdtool}" --nuke ${_t} "${rom}" -O "${rom}" || \
err "inject ${rom}: can't nuke ${_t} in IFD"
x_ "${ifdtool}" --nuke ${_t} "${rom}" -O "${rom}"
fi
else
if [ "${nukemode}" != "nuke" ]; then
"${cbfstool}" "${rom}" add -f "${_dest}" \
-n "${cbfsname}" -t ${_t} ${_offset} || \
err "inject $rom: can't insert $_t file $_dest"
x_ "${cbfstool}" "${rom}" add -f "${_dest}" \
-n "${cbfsname}" -t ${_t} ${_offset}
else
"${cbfstool}" "${rom}" remove -n "${cbfsname}" || \
err "inject $rom: can't remove ${cbfsname}"
x_ "${cbfstool}" "${rom}" remove -n "${cbfsname}"
fi
fi
@@ -246,13 +235,13 @@ inject()
usage()
{
cat <<- EOF
USAGE: ./vendor inject -r [rom path] -b [boardname] -m [macaddress]
Example: ./vendor inject -r x230_12mb.rom -b x230_12mb
USAGE: ./update vendor inject -r [rom path] -b [boardname] -m [macaddress]
Example: ./update vendor inject -r x230_12mb.rom -b x230_12mb
Adding a macadress to the gbe is optional.
If the [-m] parameter is left blank, the gbe will not be touched.
Type './vendor inject listboards' to get a list of valid boards
Type './update vendor inject listboards' to get a list of valid boards
EOF
}

1
vendor
View File

@@ -1 +0,0 @@
build