From 668de6d81f66c336c7a780edfd8af6550c50a057 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 14 Apr 2023 01:36:54 +0100 Subject: [PATCH 0001/2290] blobutil: support extracting ME from full ROMs In cases where the vendor update file contains a full ROM image encompassing IFD+GbE+ME+BIOS, blobutil was saving the *entire* ROM containing those, as me.bin. For example, if it's an 8MB ROM, blobutil would create a me.bin file that is actually the whole ROM containing: * Vendor IFD region * Vendor GbE(if it has one) * Vendor ME region * Vendor BIOS region This fix tries with -M and -O first. In this combination, me_cleaner shall extract me.bin (neutered) and save it. If that fails, then the normal method with just -O is tried, which by this logic would always be a lone ME image if it succeeds. I tested downloading ME images on existing boards with this, and it didn't break them, and this fixes the bug. This is done for HP 8200 SFF which Riku_V is adding to lbmk. I'm on IRC with Riku_V as I write this commit message! Super hot hotfix patch. --- resources/scripts/blobs/download | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/resources/scripts/blobs/download b/resources/scripts/blobs/download index 14da9067..259dd865 100755 --- a/resources/scripts/blobs/download +++ b/resources/scripts/blobs/download @@ -186,6 +186,9 @@ Bruteforce_extract_me() { return 0 fi + sdir="$(mktemp -d)" + mkdir -p "${sdir}" || return 1 + ( printf "Entering %s\n" "${cdir}" cd "${cdir}" || exit 1 @@ -197,6 +200,8 @@ Bruteforce_extract_me() { # symlinks are a security risk, in this context continue elif [ -f "${i}" ]; then + "${mecleaner}" -r -t -O "${sdir}/vendorfile" -M "${_me_destination}" "${i}" \ + && break # (we found me.bin) "${mecleaner}" -r -t -O "${_me_destination}" "${i}" \ && break # (we found me.bin) "${me7updateparser}" -O ${_me_destination} "${i}" \ @@ -215,6 +220,9 @@ Bruteforce_extract_me() { fi done ) + + rm -Rf "${sdir}" + if [ ! -f "${_me_destination}" ]; then printf "me.bin not found in vendor update for board: %s\n" ${board} return 1 From 41f094d13140024abd133a3aaf0b05f2da326417 Mon Sep 17 00:00:00 2001 From: Riku Viitanen Date: Fri, 14 Apr 2023 22:42:19 +0300 Subject: [PATCH 0002/2290] Port to HP Compaq 8200 Elite SFF --- blobs/hp8200sff/gbe.bin | Bin 0 -> 8192 bytes blobs/hp8200sff/ifd.bin | Bin 0 -> 4096 bytes resources/blobs/sources | 7 + resources/coreboot/hp8200sff_8mb/board.cfg | 8 + .../config/libgfxinit_corebootfb | 611 ++++++++++++++++++ .../hp8200sff_8mb/config/libgfxinit_txtmode | 608 +++++++++++++++++ 6 files changed, 1234 insertions(+) create mode 100644 blobs/hp8200sff/gbe.bin create mode 100644 blobs/hp8200sff/ifd.bin create mode 100644 resources/coreboot/hp8200sff_8mb/board.cfg create mode 100644 resources/coreboot/hp8200sff_8mb/config/libgfxinit_corebootfb create mode 100644 resources/coreboot/hp8200sff_8mb/config/libgfxinit_txtmode diff --git a/blobs/hp8200sff/gbe.bin b/blobs/hp8200sff/gbe.bin new file mode 100644 index 0000000000000000000000000000000000000000..7e8776f92968d9e5a257298123440f91ec361349 GIT binary patch literal 8192 zcmeH~u}i~16vn^YDTZ3`Bn^}-T?Lo4RIR0jfQy54(4}L+$)$h84W)Az|AdaM&f@0k zBItkOe!eROp>gSAhx=aOeV61rUhbE0{vt9Fi> zYT~?;;|NV$h*m^9qDHhUszsNgb Date: Sun, 2 Apr 2023 01:33:33 +0100 Subject: [PATCH 0003/2290] blobutil: support fetching KBC1126 EC (HP laptops) This is useful for e.g. HP EliteBook 2560p. In coreboot config, enable e.g. (for lbmk blobutil): CONFIG_KBC1126_FW1="../../ec/hp2560p/ec.bin.fw1" CONFIG_KBC1126_FW2="../../ec/hp2560p/ec.bin.fw2" In resources/blobs/sources you would have these entries: EC_url EC_url_bkup EC_hash --- .gitignore | 1 + resources/scripts/blobs/download | 161 ++++++++++++++++++++++------ resources/scripts/build/release/src | 1 + 3 files changed, 132 insertions(+), 31 deletions(-) mode change 100755 => 100644 resources/scripts/blobs/download diff --git a/.gitignore b/.gitignore index 5fb035b9..e55b2616 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ /util/ich9utils/ich9show /util/ich9utils/ich9gen /TODO +/ec/ /tmp/ /payload/ /me_cleaner/ diff --git a/resources/scripts/blobs/download b/resources/scripts/blobs/download old mode 100755 new mode 100644 index 259dd865..8d7edac0 --- a/resources/scripts/blobs/download +++ b/resources/scripts/blobs/download @@ -5,12 +5,17 @@ # SPDX-FileCopyrightText: 2023 Leah Rowe # SPDX-License-Identifier: GPL-3.0-only +ec_url="" +ec_url_bkup="" +ec_hash="" + blobdir="blobs" dl_path="${blobdir}/vendorupdate" appdir="${blobdir}/app" _7ztest="a" mecleaner="$(pwd)/me_cleaner/me_cleaner.py" me7updateparser="$(pwd)/resources/blobs/me7_update_parser.py" +kbc1126_ec_dump="$(pwd)/coreboot/default/util/kbc1126/kbc1126_ec_dump" board="${1}" # A shorthand for each board, to avoid duplicating configs per flash size board_short=${board%%_*mb} @@ -39,6 +44,11 @@ if [ "${CONFIG_HAVE_GBE_BIN}" = "y" ]; then needs="${needs} GBE" fi +if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then + printf "HP board with KBC1126 EC detected, downloading ec\n" + needs="${needs} EC" +fi + # Quickly exit without wasting more time if there are no blobs needed (GM45) if [ -z ${needs+x} ]; then printf 'No binary blobs needed for this board\n' @@ -47,6 +57,18 @@ fi while read -r line ; do case ${line} in + EC_url*) + set ${line} + ec_url=${2} + ;; + EC_url_bkup*) + set ${line} + ec_url_bkup=${2} + ;; + EC_hash*) + set ${line} + ec_hash=${2} + ;; DL_hash*) set ${line} dl_hash=${2} @@ -84,6 +106,12 @@ Build_deps(){ printf "downloading coreboot\n" ./download coreboot default || Fail 'could not download coreboot' fi + + if [ ! -f coreboot/default/util/kbc1126/kbc1126_ec_dump ]; then + printf "Building kbc1126_ec_dump from coreboot\n" + make -BC coreboot/default/util/kbc1126 || Fail \ + "could not build kbc1126_ec_dump" + fi if [ ! -f "coreboot/default/util/ifdtool/ifdtool" ]; then printf "building ifdtool from coreboot\n" @@ -100,6 +128,9 @@ Download_needed(){ *MRC*) ./download mrc || _failed="${_failed} mrc" ;; + *EC*) + Download_ec || _failed="${_failed} ec" + ;; esac done @@ -111,42 +142,12 @@ Download_needed(){ Download_me() { printf "Downloading neutered ME for board: %s\n" ${board} - Fetch_update || return 1 + Fetch_update me || return 1 Extract_me || return 1 return 0 } -Fetch_update() { - printf "Fetching vendor update for board: %s\n" ${board} - - if [ -z "${dl_url+x}" ]; then - printf "No vendor update specified for board: %s\n" ${board} - return 1 - fi - - Vendor_checksum ${dl_path} || \ - curl ${dl_url} > ${dl_path} || curl ${dl_url_bkup} > ${dl_path} - - Vendor_checksum ${dl_path} || Fail \ - "Cannot guarantee intergity of vendor update for board: ${board}" - - return 0 -} - -Vendor_checksum() { - if [ ! -f "${dl_path}" ]; then - printf "Vendor update not found on disk for board: %s\n" ${board} - return 1 - fi - if [ "$(sha1sum ${dl_path} | awk '{print $1}')" != "${dl_hash}" ]; then - printf "Bad checksum on vendor update for board: %s\n" ${board} - rm ${dl_path} - return 1 - fi - return 0 -} - Extract_me(){ printf "Extracting neutered ME for ${board}\n" @@ -231,4 +232,102 @@ Bruteforce_extract_me() { fi } +Download_ec() { + printf "Downloading KBC1126 EC firmware for HP laptop\n" + + Fetch_update ec || return 1 + Extract_ec || return 1 + + return 0 +} + +Extract_ec() { + printf "Extracting KBC1126 EC firmware for board: %s\n" ${board} + + _ec_destination=${CONFIG_KBC1126_FW1#../../} + + if [ ! -d "${_ec_destination%/*}" ]; then + mkdir -p "${_ec_destination%/*}" + fi + + if [ -d "${appdir}" ]; then + rm -Rf "${appdir}" + fi + + if [ -f "${_ec_destination}" ]; then + printf "ec already downloaded\n" + return 0 + fi + + unar "${dl_path}" -o "${appdir}" + + ( + cd "${appdir}/${dl_path##*/}" + + mv Rompaq/68*.BIN ec.bin + "${kbc1126_ec_dump}" ec.bin + ) + + for i in 1 2; do + if [ ! -f "${appdir}/${dl_path##*/}/ec.bin.fw${i}" ]; then + printf "Not found: %s/%s/ec.bin.fw%s\n" \ + ${appdir} ${dl_path##*/} ${i} + printf "Could not extract EC firmware for board: %s\n" \ + ${board} + return 1 + fi + done + + cp "${appdir}/${dl_path##*/}"/ec.bin.fw* "${_ec_destination%/*}/" +} + +Fetch_update() { + printf "Fetching vendor update for board: %s\n" ${board} + + fw_type="${1}" + dl="" + dl_bkup="" + dlsum="" + if [ "${fw_type}" = "me" ]; then + dl=${dl_url} + dl_bkup=${dl_url_bkup} + dlsum=${dl_hash} + elif [ "${fw_type}" = "ec" ]; then + dl=${ec_url} + dl_bkup=${ec_url_bkup} + dlsum=${ec_hash} + else + printf "Unsupported download type: %s\n" ${fw_type} + return 1 + fi + + if [ -z "${dl_url+x}" ]; then + printf "No vendor update specified for board: %s\n" ${board} + return 1 + fi + + Vendor_checksum ${dlsum} || \ + curl ${dl} > ${dl_path} || curl ${dl_bkup} > ${dl_path} + + Vendor_checksum ${dlsum} || Fail \ + "Cannot guarantee intergity of vendor update for board: ${board}" + + return 0 +} + +Vendor_checksum() { + sha1=$1 + + if [ ! -f "${dl_path}" ]; then + printf "Vendor update not found on disk for board: %s\n" ${board} + return 1 + fi + if [ "$(sha1sum ${dl_path} | awk '{print $1}')" != "${sha1}" ]; then + printf "Bad checksum on vendor update for board: %s\n" ${board} + rm ${dl_path} + return 1 + fi + return 0 +} + Main diff --git a/resources/scripts/build/release/src b/resources/scripts/build/release/src index 4c9f0bc4..e29cce86 100755 --- a/resources/scripts/build/release/src +++ b/resources/scripts/build/release/src @@ -97,6 +97,7 @@ done cd "${i}/" make distclean ) + make clean -BC default/util/kbc1126/ done ) From 7e0177139524c62998cc7390712211417dff304b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 15 Apr 2023 12:18:06 +0100 Subject: [PATCH 0004/2290] set grub.cfg timeout to 30s --- resources/grub/config/grub.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/grub/config/grub.cfg b/resources/grub/config/grub.cfg index 25d9916a..b03a1741 100644 --- a/resources/grub/config/grub.cfg +++ b/resources/grub/config/grub.cfg @@ -26,7 +26,7 @@ elif [ -f (cbfsdisk)/background.jpg ]; then fi set default="0" -set timeout=5 +set timeout=30 set pager=1 set grub_scan_disk="both" From 8fb54e801f64eb50ab2702930d412f80e0fd8f6b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 15 Apr 2023 21:18:12 +0100 Subject: [PATCH 0005/2290] util/nvmutil: sort includes alphabetically small nitpick, but i try to use openbsd style since i like that style. upon further reading of their style guidelines today, it was revealed to me that for includes, they: * sort sys/ includes alphabetically, at the top * after sys/ includes, have an empty line * includes for networking-related headers below that * empty space below networking headers if there * after that, have the rest of the includes, sorted alphabetically at least, that is my understanding. i have to admit, it does look cleaner not really that critical but why not do it? --- util/nvmutil/nvmutil.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c index d7d3fa60..a489dd8d 100644 --- a/util/nvmutil/nvmutil.c +++ b/util/nvmutil/nvmutil.c @@ -26,16 +26,17 @@ * https://libreboot.org/docs/install/nvmutil.html */ -#include -#include -#include -#include -#include #include -#include -#include + #include #include +#include +#include +#include +#include +#include +#include +#include void readGbeFile(int *fd, const char *path, int flags, size_t nr); From 930f30ac35e18de7ec8464c2d05cb1fb97935738 Mon Sep 17 00:00:00 2001 From: Riku Viitanen Date: Sun, 16 Apr 2023 20:36:40 +0300 Subject: [PATCH 0006/2290] parabola specific dependencies install script --- resources/scripts/build/dependencies/parabola | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100755 resources/scripts/build/dependencies/parabola diff --git a/resources/scripts/build/dependencies/parabola b/resources/scripts/build/dependencies/parabola new file mode 100755 index 00000000..a2002f43 --- /dev/null +++ b/resources/scripts/build/dependencies/parabola @@ -0,0 +1,104 @@ +#!/usr/bin/env sh + +# parabola script: installs build dependencies for Parabola GNU/Linux-libre +# based on the arch script +# +# Copyright (C) 2021 Melissa Goad +# Copyright (C) 2022 Caleb La Grange +# Copyright (C) 2022 Ferass El Hafidi +# Copyright (C) 2023 Andreas Hartmann +# Copyright (C) 2023 Riku Viitanen +# +# 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 . +# + + +if [ "$(id -u)" -ne 0 ]; then + printf "This script must be run as root\n" + exit 1 +fi + +# Duplications are intentional. Please do not re-factor. +# +# This is so that they can moved to separate scripts. +# + +pacman -S --needed --noconfirm wget + +# For downloading source code +# ------------------------------------------------------------ + +pacman -S --needed --noconfirm git + +# For Tianocore and iPXE +# TODO: check whether this is the full list + +pacman -S --needed --noconfirm nasm perl-libwww python subversion + +# For building source code: +# ------------------------------------------------------------ + +pacman -S --needed --noconfirm base-devel + +# for running the crostool script (to get mrc.bin file for t440p) +pacman -S --needed --noconfirm sharutils curl parted e2fsprogs unzip + +# for cross-compiling ARM binaries +pacman -S --needed --noconfirm arm-none-eabi-gcc + +# Memtest86+ build dependencies +# ------------------------------------------------------------ + +pacman -S --needed --noconfirm base-devel python + +# i945-pwm build dependencies +# ------------------------------------------------------------ + +pacman -S --needed --noconfirm base-devel perl + +# Coreboot build dependencies (also requires build-essential and git) +# ------------------------------------------------------------ + +pacman -S --needed --noconfirm ncurses doxygen acpica gdb flex bison base-devel git openssl gcc-ada + +# GRUB build dependencies (also requires build-essential, bison and flex) +# ------------------------------------------------------------ + +pacman -S --needed --noconfirm autogen help2man base-devel bison flex ttf-dejavu texinfo rsync python libusb xz gawk device-mapper fuse2 gettext freetype2 + +# BucTS build dependencies (external script) +# ------------------------------------------------------------ + +pacman -S --needed --noconfirm base-devel + +# Flashrom build dependencies (also requires build-essential) +# ------------------------------------------------------------ + +pacman -S --needed --noconfirm libpciaccess pciutils zlib libftdi base-devel libusb + +# Management engine extraction dependencies +# +# ------------------------------------------------------------ + +pacman -S --needed --noconfirm innoextract p7zip + +# U-Boot build dependencies +# ------------------------------------------------------------ +pacman -S --needed --noconfirm swig dtc + +# Unifont, for GRUB +# ------------------------------------------------------------ + +pacman -S --needed --noconfirm unifont-utils bdf-unifont + From bd4ea9a02845b22a09b73ebb015ce134234d100b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 17 Apr 2023 16:03:27 +0100 Subject: [PATCH 0007/2290] gm45: re-add mitigations for no-microcode setup libreboot will still include microcode updates by default, but mitigations against broken speedstep and reboot (when microcode updates are excluded) were removed following the merge with osboot this patch restores those mitigations; the patch reverts coreboot to older smrr code (which works fine, it isn't critical to use the new behaviour) and disables peci (pointless feature) i'll probably re-tool this later to apply the changes conditionally to whether ucode is present this is not a change in policy. policy says: include cpu microcode updates by default policy also says: libreboot must be configurable microcode removal via cbfstool remove -n, counts as configuration, and in practise is not possible on gm45 patches in current libreboot; this patch corrects that problem, allowing the machines to work somewhat well (same stability issues as before, like MCE errors resulting in kernel panic on high CPU/memory usage, but i digress) happy... hacking --- ...-x200-t400-Revert-cpu-intel-model_10.patch | 47 +++++ ...e-CPUs-don-t-enable-alternative-SMRR.patch | 173 ++++++++++++++++++ 2 files changed, 220 insertions(+) create mode 100644 resources/coreboot/default/patches/0019-fix-speedstep-on-x200-t400-Revert-cpu-intel-model_10.patch create mode 100644 resources/coreboot/default/patches/0020-GM45-type-CPUs-don-t-enable-alternative-SMRR.patch diff --git a/resources/coreboot/default/patches/0019-fix-speedstep-on-x200-t400-Revert-cpu-intel-model_10.patch b/resources/coreboot/default/patches/0019-fix-speedstep-on-x200-t400-Revert-cpu-intel-model_10.patch new file mode 100644 index 00000000..3b1bd40d --- /dev/null +++ b/resources/coreboot/default/patches/0019-fix-speedstep-on-x200-t400-Revert-cpu-intel-model_10.patch @@ -0,0 +1,47 @@ +From 3cf315fd59f1388d60cce9290eb52bccb7b29625 Mon Sep 17 00:00:00 2001 +From: Leah Rowe +Date: Wed, 1 Dec 2021 02:53:00 +0000 +Subject: [PATCH 1/2] fix speedstep on x200/t400: Revert + "cpu/intel/model_1067x: enable PECI" + +This reverts commit 70fea013c7ebd6d85a7806748233fcfd76802f5f. + +Enabling PECI without microcode updates loaded causes the CPUID feature set +to become corrupted. And one consequence is broken SpeedStep. At least, that's +my understanding looking at Intel Errata. This revert is not a fix, because +upstream is correct (upstream assumes microcode updates). We will simply +maintain this revert patch in Libreboot, from now on. +--- + src/cpu/intel/model_1067x/model_1067x_init.c | 9 --------- + 1 file changed, 9 deletions(-) + +diff --git a/src/cpu/intel/model_1067x/model_1067x_init.c b/src/cpu/intel/model_1067x/model_1067x_init.c +index 315e7c36fc..1423fd72bc 100644 +--- a/src/cpu/intel/model_1067x/model_1067x_init.c ++++ b/src/cpu/intel/model_1067x/model_1067x_init.c +@@ -141,8 +141,6 @@ static void configure_emttm_tables(void) + wrmsr(MSR_EMTTM_CR_TABLE(5), msr); + } + +-#define IA32_PECI_CTL 0x5a0 +- + static void configure_misc(const int eist, const int tm2, const int emttm) + { + msr_t msr; +@@ -185,13 +183,6 @@ static void configure_misc(const int eist, const int tm2, const int emttm) + msr.lo |= (1 << 20); /* Lock Enhanced SpeedStep Enable */ + wrmsr(IA32_MISC_ENABLE, msr); + } +- +- /* Enable PECI +- WARNING: due to Erratum AW67 described in Intel document #318733 +- the microcode must be updated before this MSR is written to. */ +- msr = rdmsr(IA32_PECI_CTL); +- msr.lo |= 1; +- wrmsr(IA32_PECI_CTL, msr); + } + + #define PIC_SENS_CFG 0x1aa +-- +2.40.0 + diff --git a/resources/coreboot/default/patches/0020-GM45-type-CPUs-don-t-enable-alternative-SMRR.patch b/resources/coreboot/default/patches/0020-GM45-type-CPUs-don-t-enable-alternative-SMRR.patch new file mode 100644 index 00000000..d29b83dd --- /dev/null +++ b/resources/coreboot/default/patches/0020-GM45-type-CPUs-don-t-enable-alternative-SMRR.patch @@ -0,0 +1,173 @@ +From 651292a204b00d7a39d8722f9d26fd9d7178fba2 Mon Sep 17 00:00:00 2001 +From: Leah Rowe +Date: Mon, 17 Apr 2023 15:49:57 +0100 +Subject: [PATCH 1/1] GM45-type CPUs: don't enable alternative SMRR + +This reverts the changes in coreboot revision: +df7aecd92643d207feaf7fd840f8835097346644 + +While this fix is *technically correct*, the one in +coreboot, it breaks rebooting as tested on several +GM45 ThinkPads e.g. X200, T400, when microcode +updates are not applied. + +Since November 2022, Libreboot includes microcode +updates by default, but it tells users how to remove +it from the ROM (with cbfstool) if they wish. + +Well, with Libreboot 20221214, 20230319 and 20230413, +mitigations present in Libreboot 20220710 (which did +not have microcode updates) do not exist. + +This patch, along with the other patch to remove PECI +support (which breaks speedstep when microcode updates +are not applied) have now been re-added to Libreboot. + +It is still best to use microcode updates by default. +These patches in coreboot are not critically urgent, +and you can use the machines with or without them, +regardless of ucode. + +I'll probably re-write this and the other patch at +some point, applying the change conditionally upon +whether or not microcode is applied. + +Pragmatism is a good thing. I recommend it. +--- + src/cpu/intel/model_1067x/model_1067x_init.c | 4 +++ + src/cpu/intel/model_1067x/mp_init.c | 26 -------------------- + src/cpu/intel/model_106cx/model_106cx_init.c | 4 +++ + src/cpu/intel/model_6ex/model_6ex_init.c | 4 +++ + src/cpu/intel/model_6fx/model_6fx_init.c | 4 +++ + 5 files changed, 16 insertions(+), 26 deletions(-) + +diff --git a/src/cpu/intel/model_1067x/model_1067x_init.c b/src/cpu/intel/model_1067x/model_1067x_init.c +index 1423fd72bc..d1f98ca43a 100644 +--- a/src/cpu/intel/model_1067x/model_1067x_init.c ++++ b/src/cpu/intel/model_1067x/model_1067x_init.c +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + #define MSR_BBL_CR_CTL3 0x11e + +@@ -234,6 +235,9 @@ static void model_1067x_init(struct device *cpu) + fill_processor_name(processor_name); + printk(BIOS_INFO, "CPU: %s.\n", processor_name); + ++ /* Set virtualization based on Kconfig option */ ++ set_vmx_and_lock(); ++ + /* Configure C States */ + configure_c_states(quad); + +diff --git a/src/cpu/intel/model_1067x/mp_init.c b/src/cpu/intel/model_1067x/mp_init.c +index bc53214310..72f40f6762 100644 +--- a/src/cpu/intel/model_1067x/mp_init.c ++++ b/src/cpu/intel/model_1067x/mp_init.c +@@ -43,34 +43,8 @@ static void pre_mp_smm_init(void) + smm_initialize(); + } + +-#define SMRR_SUPPORTED (1 << 11) +- + static void per_cpu_smm_trigger(void) + { +- msr_t mtrr_cap = rdmsr(MTRR_CAP_MSR); +- if (cpu_has_alternative_smrr() && mtrr_cap.lo & SMRR_SUPPORTED) { +- set_feature_ctrl_vmx(); +- msr_t ia32_ft_ctrl = rdmsr(IA32_FEATURE_CONTROL); +- /* We don't care if the lock is already setting +- as our smm relocation handler is able to handle +- setups where SMRR is not enabled here. */ +- if (ia32_ft_ctrl.lo & (1 << 0)) { +- /* IA32_FEATURE_CONTROL locked. If we set it again we +- get an illegal instruction. */ +- printk(BIOS_DEBUG, "IA32_FEATURE_CONTROL already locked\n"); +- printk(BIOS_DEBUG, "SMRR status: %senabled\n", +- ia32_ft_ctrl.lo & (1 << 3) ? "" : "not "); +- } else { +- if (!CONFIG(SET_IA32_FC_LOCK_BIT)) +- printk(BIOS_INFO, +- "Overriding CONFIG(SET_IA32_FC_LOCK_BIT) to enable SMRR\n"); +- ia32_ft_ctrl.lo |= (1 << 3) | (1 << 0); +- wrmsr(IA32_FEATURE_CONTROL, ia32_ft_ctrl); +- } +- } else { +- set_vmx_and_lock(); +- } +- + /* Relocate the SMM handler. */ + smm_relocate(); + } +diff --git a/src/cpu/intel/model_106cx/model_106cx_init.c b/src/cpu/intel/model_106cx/model_106cx_init.c +index 05f5f327cc..0450c2ad83 100644 +--- a/src/cpu/intel/model_106cx/model_106cx_init.c ++++ b/src/cpu/intel/model_106cx/model_106cx_init.c +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #define HIGHEST_CLEVEL 3 + static void configure_c_states(void) +@@ -66,6 +67,9 @@ static void model_106cx_init(struct device *cpu) + fill_processor_name(processor_name); + printk(BIOS_INFO, "CPU: %s.\n", processor_name); + ++ /* Set virtualization based on Kconfig option */ ++ set_vmx_and_lock(); ++ + /* Configure C States */ + configure_c_states(); + +diff --git a/src/cpu/intel/model_6ex/model_6ex_init.c b/src/cpu/intel/model_6ex/model_6ex_init.c +index 5bd1c32815..f3bb08cde3 100644 +--- a/src/cpu/intel/model_6ex/model_6ex_init.c ++++ b/src/cpu/intel/model_6ex/model_6ex_init.c +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #define HIGHEST_CLEVEL 3 + static void configure_c_states(void) +@@ -105,6 +106,9 @@ static void model_6ex_init(struct device *cpu) + /* Setup Page Attribute Tables (PAT) */ + // TODO set up PAT + ++ /* Set virtualization based on Kconfig option */ ++ set_vmx_and_lock(); ++ + /* Configure C States */ + configure_c_states(); + +diff --git a/src/cpu/intel/model_6fx/model_6fx_init.c b/src/cpu/intel/model_6fx/model_6fx_init.c +index 535fb8fae7..f7b05facd2 100644 +--- a/src/cpu/intel/model_6fx/model_6fx_init.c ++++ b/src/cpu/intel/model_6fx/model_6fx_init.c +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #define HIGHEST_CLEVEL 3 + static void configure_c_states(void) +@@ -118,6 +119,9 @@ static void model_6fx_init(struct device *cpu) + /* Setup Page Attribute Tables (PAT) */ + // TODO set up PAT + ++ /* Set virtualization based on Kconfig option */ ++ set_vmx_and_lock(); ++ + /* Configure C States */ + configure_c_states(); + +-- +2.40.0 + From d8222c0175f5f8c4245420d77499c3a33cb7d507 Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Wed, 19 Apr 2023 00:04:53 -0600 Subject: [PATCH 0008/2290] Add configs for the Latitude E6400 Tested the 4MiB ROMs but not the 8 or 16 MiB ones. This uses the same board.cfg as the GM45 ThinkPads with an IFD+GBE from ich9gen. Known issues: - The internal keyboard does not work properly in GRUB. It seems like the keyboard controller is outputing set 1 (XT) scancodes, but GRUB is interpreting them as set 2 (AT) scancodes. This may also have something to do with scancode translation. However, the keyboard works fine in SeaBIOS and Linux. USB keyboards also work properly. - The subsystem IDs in the GBE region are hardcoded for a Thinkpad in ich9gen, though this doesn't seem to cause issues in Linux. The vendor IFD and GBE region do have some differences from the generated binaries, though they do not appear to be critical. --- resources/coreboot/e6400_16mb/board.cfg | 8 + .../e6400_16mb/config/libgfxinit_corebootfb | 559 ++++++++++++++++++ .../e6400_16mb/config/libgfxinit_txtmode | 555 +++++++++++++++++ resources/coreboot/e6400_4mb/board.cfg | 8 + .../e6400_4mb/config/libgfxinit_corebootfb | 559 ++++++++++++++++++ .../e6400_4mb/config/libgfxinit_txtmode | 555 +++++++++++++++++ resources/coreboot/e6400_8mb/board.cfg | 8 + .../e6400_8mb/config/libgfxinit_corebootfb | 559 ++++++++++++++++++ .../e6400_8mb/config/libgfxinit_txtmode | 555 +++++++++++++++++ 9 files changed, 3366 insertions(+) create mode 100644 resources/coreboot/e6400_16mb/board.cfg create mode 100644 resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb create mode 100644 resources/coreboot/e6400_16mb/config/libgfxinit_txtmode create mode 100644 resources/coreboot/e6400_4mb/board.cfg create mode 100644 resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb create mode 100644 resources/coreboot/e6400_4mb/config/libgfxinit_txtmode create mode 100644 resources/coreboot/e6400_8mb/board.cfg create mode 100644 resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb create mode 100644 resources/coreboot/e6400_8mb/config/libgfxinit_txtmode diff --git a/resources/coreboot/e6400_16mb/board.cfg b/resources/coreboot/e6400_16mb/board.cfg new file mode 100644 index 00000000..c8aed013 --- /dev/null +++ b/resources/coreboot/e6400_16mb/board.cfg @@ -0,0 +1,8 @@ +cbtree="default" +romtype="16MiB ICH9 IFD NOR flash" +arch="x86_64" +payload_grub="y" +payload_grub_withseabios="y" +payload_seabios="y" +payload_memtest="y" +grub_scan_disk="ahci" diff --git a/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb b/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb new file mode 100644 index 00000000..fbf03e20 --- /dev/null +++ b/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb @@ -0,0 +1,559 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_COREBOOT_BUILD=y +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +CONFIG_ARCH_SUPPORTS_CLANG=y +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_IWYU is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_UTIL_GENPARSER is not set +# CONFIG_OPTION_BACKEND_NONE is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_COLLECT_TIMESTAMPS=y +# CONFIG_TIMESTAMPS_ON_CONSOLE is not set +CONFIG_USE_BLOBS=y +# CONFIG_USE_AMD_BLOBS is not set +# CONFIG_USE_QC_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_UBSAN is not set +CONFIG_HAVE_ASAN_IN_RAMSTAGE=y +# CONFIG_ASAN is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_TSEG_STAGE_CACHE=y +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) +# end of General setup + +# +# Mainboard +# + +# +# Important: Run 'make distclean' before switching boards +# +# CONFIG_VENDOR_51NB is not set +# CONFIG_VENDOR_ACER is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_CAVIUM is not set +# CONFIG_VENDOR_CLEVO is not set +# CONFIG_VENDOR_COMPULAB is not set +CONFIG_VENDOR_DELL=y +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_EXAMPLE is not set +# CONFIG_VENDOR_FACEBOOK is not set +# CONFIG_VENDOR_FOXCONN is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LIBRETREND is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_OCP is not set +# CONFIG_VENDOR_OPENCELLULAR is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PINE64 is not set +# CONFIG_VENDOR_PORTWELL is not set +# CONFIG_VENDOR_PRODRIVE is not set +# CONFIG_VENDOR_PROTECTLI is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RAZER is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SAPPHIRE is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SIFIVE is not set +# CONFIG_VENDOR_STARLABS is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_SYSTEM76 is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_UP is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400" +CONFIG_MAINBOARD_VERSION="1.0" +CONFIG_MAINBOARD_DIR="dell/e6400" +CONFIG_VGA_BIOS_ID="8086,2a42" +CONFIG_DIMM_MAX=4 +CONFIG_DIMM_SPD_SIZE=256 +CONFIG_FMDFILE="" +# CONFIG_NO_POST is not set +CONFIG_MAINBOARD_VENDOR="Dell Inc." +CONFIG_CBFS_SIZE=0xFFD000 +CONFIG_LINEAR_FRAMEBUFFER_MAX_HEIGHT=1600 +CONFIG_LINEAR_FRAMEBUFFER_MAX_WIDTH=2560 +CONFIG_MAX_CPUS=4 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +CONFIG_POST_DEVICE=y +CONFIG_POST_IO=y +CONFIG_DEVICETREE="devicetree.cb" +# CONFIG_VBOOT is not set +CONFIG_OVERRIDE_DEVICETREE="" +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc." +CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt" +CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" +CONFIG_USBDEBUG_HCD_INDEX=1 +CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 +# CONFIG_CONSOLE_POST is not set +CONFIG_BOARD_DELL_E6400=y +# CONFIG_BOARD_DELL_OPTIPLEX_9010 is not set +# CONFIG_BOARD_DELL_PRECISION_T1650 is not set +CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" +CONFIG_DCACHE_RAM_BASE=0xfefc0000 +CONFIG_DCACHE_RAM_SIZE=0x10000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 +CONFIG_DCACHE_BSP_STACK_SIZE=0x2000 +CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_ECAM_MMCONF_BUS_NUMBER=64 +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 +CONFIG_HAVE_INTEL_FIRMWARE=y +CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_DRIVERS_INTEL_WIFI is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" +# CONFIG_HAVE_IFD_BIN is not set +CONFIG_PCIEXP_HOTPLUG_BUSES=8 +CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 +CONFIG_PS2K_EISAID="PNP0303" +CONFIG_PS2M_EISAID="PNP0F13" +CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" +# CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_DRIVERS_UART_8250IO is not set +CONFIG_HEAP_SIZE=0x4000 +CONFIG_EC_GPE_SCI=0x50 +CONFIG_BOARD_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +CONFIG_COREBOOT_ROMSIZE_KB_16384=y +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=16384 +CONFIG_ROM_SIZE=0x01000000 +CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y +CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y +CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y +# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set +# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set +CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 +# end of Mainboard + +CONFIG_SYSTEM_TYPE_LAPTOP=y + +# +# Chipset +# + +# +# SoC +# +CONFIG_CHIPSET_DEVICETREE="" +CONFIG_CBFS_MCACHE_SIZE=0x4000 +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_SMM_RESERVED_SIZE=0x100000 +CONFIG_SMM_MODULE_STACK_SIZE=0x400 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_STACK_SIZE=0x2000 +CONFIG_VBT_DATA_SIZE_KB=8 +CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 +CONFIG_INTEL_GMA_BCLV_WIDTH=16 +CONFIG_INTEL_GMA_BCLM_OFFSET=0x61256 +CONFIG_INTEL_GMA_BCLM_WIDTH=16 +CONFIG_BOOTBLOCK_IN_CBFS=y +CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 +CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 +CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +CONFIG_FIXED_SMBUS_IO_BASE=0x400 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_CBFS_CACHE_ALIGN=8 + +# +# CPU +# +CONFIG_CPU_INTEL_MODEL_6FX=y +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_CPU_INTEL_SOCKET_P=y +CONFIG_CPU_INTEL_COMMON=y +CONFIG_ENABLE_VMX=y +CONFIG_SET_IA32_FC_LOCK_BIT=y +CONFIG_SET_MSR_AESNI_LOCK_BIT=y +CONFIG_CPU_INTEL_COMMON_TIMEBASE=y +CONFIG_CPU_INTEL_COMMON_SMM=y +CONFIG_MICROCODE_UPDATE_PRE_RAM=y +CONFIG_PARALLEL_MP=y +CONFIG_XAPIC_ONLY=y +# CONFIG_X2APIC_ONLY is not set +# CONFIG_X2APIC_RUNTIME is not set +# CONFIG_X2APIC_LATE_WORKAROUND is not set +CONFIG_UDELAY_TSC=y +CONFIG_TSC_MONOTONIC_TIMER=y +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y +CONFIG_HAVE_SMI_HANDLER=y +CONFIG_SMM_TSEG=y +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_AP_STACK_SIZE=0x800 +CONFIG_SMP=y +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SSE2=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y +CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +# CONFIG_CPU_MICROCODE_CBFS_NONE is not set + +# +# Northbridge +# +CONFIG_NORTHBRIDGE_INTEL_GM45=y + +# +# Southbridge +# +CONFIG_PCIEXP_HOTPLUG=y +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y +# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set +CONFIG_TCO_SPACE_NOT_YET_SPLIT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y +CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 +CONFIG_RCBA_LENGTH=0x4000 + +# +# Super I/O +# + +# +# Embedded Controllers +# +CONFIG_EC_DELL_MEC5035=y + +# +# Intel Firmware +# +CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_POSTCAR_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +CONFIG_ARCH_ALL_STAGES_X86_32=y +CONFIG_HAVE_EXP_X86_64_SUPPORT=y +# CONFIG_USE_EXP_X86_64_SUPPORT is not set +CONFIG_AP_IN_SIPI_WAIT=y +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_POSTCAR_STAGE=y +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_COLLECT_TIMESTAMPS_TSC=y +CONFIG_HAVE_CF9_RESET=y +CONFIG_DEBUG_HW_BREAKPOINTS=y +CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y +# end of Chipset + +# +# Devices +# +CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y +CONFIG_HAVE_LINEAR_FRAMEBUFFER=y +CONFIG_MAINBOARD_HAS_LIBGFXINIT=y +CONFIG_MAINBOARD_USE_LIBGFXINIT=y +# CONFIG_VGA_ROM_RUN is not set +# CONFIG_NO_GFX_INIT is not set +CONFIG_NO_EARLY_GFX_INIT=y + +# +# Display +# +# CONFIG_VGA_TEXT_FRAMEBUFFER is not set +CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y +CONFIG_LINEAR_FRAMEBUFFER=y +# CONFIG_BOOTSPLASH is not set +# end of Display + +CONFIG_PCI=y +CONFIG_ECAM_MMCONF_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +CONFIG_AZALIA_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_ECAM_MMCONF_LENGTH=0x04000000 +CONFIG_PCI_ALLOW_BUS_MASTER=y +CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y +CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y +# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set +# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y +# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set +CONFIG_PCIEXP_HOTPLUG_IO=0x2000 +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +CONFIG_INTEL_GMA_HAVE_VBT=y +CONFIG_INTEL_GMA_ADD_VBT=y +# CONFIG_SOFTWARE_I2C is not set +CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 +# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set +CONFIG_NO_DDR5=y +CONFIG_NO_LPDDR4=y +CONFIG_NO_DDR4=y +CONFIG_USE_DDR3=y +CONFIG_USE_DDR2=y +# end of Devices + +# +# Generic Drivers +# +CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 +# CONFIG_ELOG is not set +# CONFIG_SMMSTORE is not set +CONFIG_SPI_FLASH=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +# CONFIG_DRIVERS_UART_OXPCIE is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_USBDEBUG is not set +# CONFIG_VPD is not set +# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set +# CONFIG_DRIVERS_I2C_MAX98396 is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +CONFIG_INTEL_GMA_SSC_ALTERNATE_REF=y +CONFIG_GFX_GMA=y +CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y +CONFIG_INTEL_GMA_OPREGION_2_0=y +CONFIG_GFX_GMA_DYN_CPU=y +CONFIG_GFX_GMA_GENERATION="G45" +CONFIG_GFX_GMA_PCH="No_PCH" +CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" +CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_USE_PC_CMOS_ALTCENTURY is not set +CONFIG_VGA=y +# CONFIG_DRIVERS_SIL_3114 is not set +# end of Generic Drivers + +# +# Security +# + +# +# CBFS verification +# +# CONFIG_CBFS_VERIFICATION is not set +# end of CBFS verification + +# +# Verified Boot (vboot) +# +# end of Verified Boot (vboot) + +# +# Trusted Platform Module +# +CONFIG_NO_TPM=y +# end of Trusted Platform Module + +# +# Memory initialization +# +CONFIG_PLATFORM_HAS_DRAM_CLEAR=y +CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y +# end of Memory initialization + +# CONFIG_STM is not set +CONFIG_BOOTMEDIA_LOCK_NONE=y +# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set +# CONFIG_BOOTMEDIA_LOCK_CHIP is not set +# CONFIG_BOOTMEDIA_SMM_BWP is not set +# end of Security + +CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +CONFIG_ACPI_SOC_NVS=y +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_BOOT_DEVICE_SPI_FLASH=y +CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y +CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y + +# +# Console +# +CONFIG_BOOTBLOCK_CONSOLE=y +CONFIG_POSTCAR_CONSOLE=y +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +# CONFIG_CONSOLE_SPI_FLASH is not set +# CONFIG_CONSOLE_I2C_SMBUS is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=0 +CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y +CONFIG_CONSOLE_USE_ANSI_ESCAPES=y +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +CONFIG_HWBASE_DEBUG_NULL=y +# end of Console + +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_MONOTONIC_TIMER=y +CONFIG_HAVE_OPTION_TABLE=y +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y + +# +# System tables +# +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +# end of System tables + +# +# Payload +# +CONFIG_PAYLOAD_NONE=y +# end of Payload + +# +# Debugging +# + +# +# CPU Debug Settings +# +# CONFIG_DISPLAY_MTRRS is not set + +# +# BLOB Debug Settings +# + +# +# General Debug Settings +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_CONSOLE_INIT is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_DEBUG_ADA_CODE is not set +# end of Debugging + +CONFIG_RAMSTAGE_ADA=y +CONFIG_RAMSTAGE_LIBHWBASE=y +CONFIG_HWBASE_DYNAMIC_MMIO=y +CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 +CONFIG_HWBASE_DIRECT_PCIDEV=y +CONFIG_DECOMPRESS_OFAST=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_RELOCATABLE_MODULES=y +CONFIG_HAVE_BOOTBLOCK=y +CONFIG_HAVE_ROMSTAGE=y +CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode b/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode new file mode 100644 index 00000000..4ff5f2f9 --- /dev/null +++ b/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode @@ -0,0 +1,555 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_COREBOOT_BUILD=y +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +CONFIG_ARCH_SUPPORTS_CLANG=y +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_IWYU is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_UTIL_GENPARSER is not set +# CONFIG_OPTION_BACKEND_NONE is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_COLLECT_TIMESTAMPS=y +# CONFIG_TIMESTAMPS_ON_CONSOLE is not set +CONFIG_USE_BLOBS=y +# CONFIG_USE_AMD_BLOBS is not set +# CONFIG_USE_QC_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_UBSAN is not set +CONFIG_HAVE_ASAN_IN_RAMSTAGE=y +# CONFIG_ASAN is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_TSEG_STAGE_CACHE=y +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) +# end of General setup + +# +# Mainboard +# + +# +# Important: Run 'make distclean' before switching boards +# +# CONFIG_VENDOR_51NB is not set +# CONFIG_VENDOR_ACER is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_CAVIUM is not set +# CONFIG_VENDOR_CLEVO is not set +# CONFIG_VENDOR_COMPULAB is not set +CONFIG_VENDOR_DELL=y +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_EXAMPLE is not set +# CONFIG_VENDOR_FACEBOOK is not set +# CONFIG_VENDOR_FOXCONN is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LIBRETREND is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_OCP is not set +# CONFIG_VENDOR_OPENCELLULAR is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PINE64 is not set +# CONFIG_VENDOR_PORTWELL is not set +# CONFIG_VENDOR_PRODRIVE is not set +# CONFIG_VENDOR_PROTECTLI is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RAZER is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SAPPHIRE is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SIFIVE is not set +# CONFIG_VENDOR_STARLABS is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_SYSTEM76 is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_UP is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400" +CONFIG_MAINBOARD_VERSION="1.0" +CONFIG_MAINBOARD_DIR="dell/e6400" +CONFIG_VGA_BIOS_ID="8086,2a42" +CONFIG_DIMM_MAX=4 +CONFIG_DIMM_SPD_SIZE=256 +CONFIG_FMDFILE="" +# CONFIG_NO_POST is not set +CONFIG_MAINBOARD_VENDOR="Dell Inc." +CONFIG_CBFS_SIZE=0xFFD000 +CONFIG_MAX_CPUS=4 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +CONFIG_POST_DEVICE=y +CONFIG_POST_IO=y +CONFIG_DEVICETREE="devicetree.cb" +# CONFIG_VBOOT is not set +CONFIG_OVERRIDE_DEVICETREE="" +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc." +CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt" +CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" +CONFIG_USBDEBUG_HCD_INDEX=1 +CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 +# CONFIG_CONSOLE_POST is not set +CONFIG_BOARD_DELL_E6400=y +# CONFIG_BOARD_DELL_OPTIPLEX_9010 is not set +# CONFIG_BOARD_DELL_PRECISION_T1650 is not set +CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" +CONFIG_DCACHE_RAM_BASE=0xfefc0000 +CONFIG_DCACHE_RAM_SIZE=0x10000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 +CONFIG_DCACHE_BSP_STACK_SIZE=0x2000 +CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_ECAM_MMCONF_BUS_NUMBER=64 +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 +CONFIG_HAVE_INTEL_FIRMWARE=y +CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_DRIVERS_INTEL_WIFI is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" +# CONFIG_HAVE_IFD_BIN is not set +CONFIG_PCIEXP_HOTPLUG_BUSES=8 +CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 +CONFIG_PS2K_EISAID="PNP0303" +CONFIG_PS2M_EISAID="PNP0F13" +CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" +# CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_DRIVERS_UART_8250IO is not set +CONFIG_HEAP_SIZE=0x4000 +CONFIG_EC_GPE_SCI=0x50 +CONFIG_BOARD_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +CONFIG_COREBOOT_ROMSIZE_KB_16384=y +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=16384 +CONFIG_ROM_SIZE=0x01000000 +CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y +CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y +CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y +# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set +# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set +CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 +# end of Mainboard + +CONFIG_SYSTEM_TYPE_LAPTOP=y + +# +# Chipset +# + +# +# SoC +# +CONFIG_CHIPSET_DEVICETREE="" +CONFIG_CBFS_MCACHE_SIZE=0x4000 +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_SMM_RESERVED_SIZE=0x100000 +CONFIG_SMM_MODULE_STACK_SIZE=0x400 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_STACK_SIZE=0x2000 +CONFIG_VBT_DATA_SIZE_KB=8 +CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 +CONFIG_INTEL_GMA_BCLV_WIDTH=16 +CONFIG_INTEL_GMA_BCLM_OFFSET=0x61256 +CONFIG_INTEL_GMA_BCLM_WIDTH=16 +CONFIG_BOOTBLOCK_IN_CBFS=y +CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 +CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 +CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +CONFIG_FIXED_SMBUS_IO_BASE=0x400 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_CBFS_CACHE_ALIGN=8 + +# +# CPU +# +CONFIG_CPU_INTEL_MODEL_6FX=y +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_CPU_INTEL_SOCKET_P=y +CONFIG_CPU_INTEL_COMMON=y +CONFIG_ENABLE_VMX=y +CONFIG_SET_IA32_FC_LOCK_BIT=y +CONFIG_SET_MSR_AESNI_LOCK_BIT=y +CONFIG_CPU_INTEL_COMMON_TIMEBASE=y +CONFIG_CPU_INTEL_COMMON_SMM=y +CONFIG_MICROCODE_UPDATE_PRE_RAM=y +CONFIG_PARALLEL_MP=y +CONFIG_XAPIC_ONLY=y +# CONFIG_X2APIC_ONLY is not set +# CONFIG_X2APIC_RUNTIME is not set +# CONFIG_X2APIC_LATE_WORKAROUND is not set +CONFIG_UDELAY_TSC=y +CONFIG_TSC_MONOTONIC_TIMER=y +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y +CONFIG_HAVE_SMI_HANDLER=y +CONFIG_SMM_TSEG=y +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_AP_STACK_SIZE=0x800 +CONFIG_SMP=y +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SSE2=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y +CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +# CONFIG_CPU_MICROCODE_CBFS_NONE is not set + +# +# Northbridge +# +CONFIG_NORTHBRIDGE_INTEL_GM45=y + +# +# Southbridge +# +CONFIG_PCIEXP_HOTPLUG=y +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y +# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set +CONFIG_TCO_SPACE_NOT_YET_SPLIT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y +CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 +CONFIG_RCBA_LENGTH=0x4000 + +# +# Super I/O +# + +# +# Embedded Controllers +# +CONFIG_EC_DELL_MEC5035=y + +# +# Intel Firmware +# +CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_POSTCAR_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +CONFIG_ARCH_ALL_STAGES_X86_32=y +CONFIG_HAVE_EXP_X86_64_SUPPORT=y +# CONFIG_USE_EXP_X86_64_SUPPORT is not set +CONFIG_AP_IN_SIPI_WAIT=y +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_POSTCAR_STAGE=y +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_COLLECT_TIMESTAMPS_TSC=y +CONFIG_HAVE_CF9_RESET=y +CONFIG_DEBUG_HW_BREAKPOINTS=y +CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y +# end of Chipset + +# +# Devices +# +CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y +CONFIG_HAVE_LINEAR_FRAMEBUFFER=y +CONFIG_MAINBOARD_HAS_LIBGFXINIT=y +CONFIG_MAINBOARD_USE_LIBGFXINIT=y +# CONFIG_VGA_ROM_RUN is not set +# CONFIG_NO_GFX_INIT is not set +CONFIG_NO_EARLY_GFX_INIT=y + +# +# Display +# +CONFIG_VGA_TEXT_FRAMEBUFFER=y +# CONFIG_GENERIC_LINEAR_FRAMEBUFFER is not set +# end of Display + +CONFIG_PCI=y +CONFIG_ECAM_MMCONF_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +CONFIG_AZALIA_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_ECAM_MMCONF_LENGTH=0x04000000 +CONFIG_PCI_ALLOW_BUS_MASTER=y +CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y +CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y +# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set +# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y +# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set +CONFIG_PCIEXP_HOTPLUG_IO=0x2000 +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +CONFIG_INTEL_GMA_HAVE_VBT=y +CONFIG_INTEL_GMA_ADD_VBT=y +# CONFIG_SOFTWARE_I2C is not set +CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 +# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set +CONFIG_NO_DDR5=y +CONFIG_NO_LPDDR4=y +CONFIG_NO_DDR4=y +CONFIG_USE_DDR3=y +CONFIG_USE_DDR2=y +# end of Devices + +# +# Generic Drivers +# +CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 +# CONFIG_ELOG is not set +# CONFIG_SMMSTORE is not set +CONFIG_SPI_FLASH=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +# CONFIG_DRIVERS_UART_OXPCIE is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_USBDEBUG is not set +# CONFIG_VPD is not set +# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set +# CONFIG_DRIVERS_I2C_MAX98396 is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +CONFIG_INTEL_GMA_SSC_ALTERNATE_REF=y +CONFIG_GFX_GMA=y +CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y +CONFIG_INTEL_GMA_OPREGION_2_0=y +CONFIG_GFX_GMA_DYN_CPU=y +CONFIG_GFX_GMA_GENERATION="G45" +CONFIG_GFX_GMA_PCH="No_PCH" +CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" +CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_USE_PC_CMOS_ALTCENTURY is not set +CONFIG_VGA=y +# CONFIG_DRIVERS_SIL_3114 is not set +# end of Generic Drivers + +# +# Security +# + +# +# CBFS verification +# +# CONFIG_CBFS_VERIFICATION is not set +# end of CBFS verification + +# +# Verified Boot (vboot) +# +# end of Verified Boot (vboot) + +# +# Trusted Platform Module +# +CONFIG_NO_TPM=y +# end of Trusted Platform Module + +# +# Memory initialization +# +CONFIG_PLATFORM_HAS_DRAM_CLEAR=y +CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y +# end of Memory initialization + +# CONFIG_STM is not set +CONFIG_BOOTMEDIA_LOCK_NONE=y +# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set +# CONFIG_BOOTMEDIA_LOCK_CHIP is not set +# CONFIG_BOOTMEDIA_SMM_BWP is not set +# end of Security + +CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +CONFIG_ACPI_SOC_NVS=y +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_BOOT_DEVICE_SPI_FLASH=y +CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y +CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y + +# +# Console +# +CONFIG_BOOTBLOCK_CONSOLE=y +CONFIG_POSTCAR_CONSOLE=y +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +# CONFIG_CONSOLE_SPI_FLASH is not set +# CONFIG_CONSOLE_I2C_SMBUS is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=0 +CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y +CONFIG_CONSOLE_USE_ANSI_ESCAPES=y +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +CONFIG_HWBASE_DEBUG_NULL=y +# end of Console + +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_MONOTONIC_TIMER=y +CONFIG_HAVE_OPTION_TABLE=y +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y + +# +# System tables +# +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +# end of System tables + +# +# Payload +# +CONFIG_PAYLOAD_NONE=y +# end of Payload + +# +# Debugging +# + +# +# CPU Debug Settings +# +# CONFIG_DISPLAY_MTRRS is not set + +# +# BLOB Debug Settings +# + +# +# General Debug Settings +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_CONSOLE_INIT is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_DEBUG_ADA_CODE is not set +# end of Debugging + +CONFIG_RAMSTAGE_ADA=y +CONFIG_RAMSTAGE_LIBHWBASE=y +CONFIG_HWBASE_DYNAMIC_MMIO=y +CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 +CONFIG_HWBASE_DIRECT_PCIDEV=y +CONFIG_DECOMPRESS_OFAST=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_RELOCATABLE_MODULES=y +CONFIG_HAVE_BOOTBLOCK=y +CONFIG_HAVE_ROMSTAGE=y +CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/coreboot/e6400_4mb/board.cfg b/resources/coreboot/e6400_4mb/board.cfg new file mode 100644 index 00000000..7332682d --- /dev/null +++ b/resources/coreboot/e6400_4mb/board.cfg @@ -0,0 +1,8 @@ +cbtree="default" +romtype="4MiB ICH9 IFD NOR flash" +arch="x86_64" +payload_grub="y" +payload_grub_withseabios="y" +payload_seabios="y" +payload_memtest="y" +grub_scan_disk="ahci" diff --git a/resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb b/resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb new file mode 100644 index 00000000..bf8d7c77 --- /dev/null +++ b/resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb @@ -0,0 +1,559 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_COREBOOT_BUILD=y +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +CONFIG_ARCH_SUPPORTS_CLANG=y +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_IWYU is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_UTIL_GENPARSER is not set +# CONFIG_OPTION_BACKEND_NONE is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_COLLECT_TIMESTAMPS=y +# CONFIG_TIMESTAMPS_ON_CONSOLE is not set +CONFIG_USE_BLOBS=y +# CONFIG_USE_AMD_BLOBS is not set +# CONFIG_USE_QC_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_UBSAN is not set +CONFIG_HAVE_ASAN_IN_RAMSTAGE=y +# CONFIG_ASAN is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_TSEG_STAGE_CACHE=y +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) +# end of General setup + +# +# Mainboard +# + +# +# Important: Run 'make distclean' before switching boards +# +# CONFIG_VENDOR_51NB is not set +# CONFIG_VENDOR_ACER is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_CAVIUM is not set +# CONFIG_VENDOR_CLEVO is not set +# CONFIG_VENDOR_COMPULAB is not set +CONFIG_VENDOR_DELL=y +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_EXAMPLE is not set +# CONFIG_VENDOR_FACEBOOK is not set +# CONFIG_VENDOR_FOXCONN is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LIBRETREND is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_OCP is not set +# CONFIG_VENDOR_OPENCELLULAR is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PINE64 is not set +# CONFIG_VENDOR_PORTWELL is not set +# CONFIG_VENDOR_PRODRIVE is not set +# CONFIG_VENDOR_PROTECTLI is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RAZER is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SAPPHIRE is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SIFIVE is not set +# CONFIG_VENDOR_STARLABS is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_SYSTEM76 is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_UP is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400" +CONFIG_MAINBOARD_VERSION="1.0" +CONFIG_MAINBOARD_DIR="dell/e6400" +CONFIG_VGA_BIOS_ID="8086,2a42" +CONFIG_DIMM_MAX=4 +CONFIG_DIMM_SPD_SIZE=256 +CONFIG_FMDFILE="" +# CONFIG_NO_POST is not set +CONFIG_MAINBOARD_VENDOR="Dell Inc." +CONFIG_CBFS_SIZE=0x3FD000 +CONFIG_LINEAR_FRAMEBUFFER_MAX_HEIGHT=1600 +CONFIG_LINEAR_FRAMEBUFFER_MAX_WIDTH=2560 +CONFIG_MAX_CPUS=4 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +CONFIG_POST_DEVICE=y +CONFIG_POST_IO=y +CONFIG_DEVICETREE="devicetree.cb" +# CONFIG_VBOOT is not set +CONFIG_OVERRIDE_DEVICETREE="" +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc." +CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt" +CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" +CONFIG_USBDEBUG_HCD_INDEX=1 +CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 +# CONFIG_CONSOLE_POST is not set +CONFIG_BOARD_DELL_E6400=y +# CONFIG_BOARD_DELL_OPTIPLEX_9010 is not set +# CONFIG_BOARD_DELL_PRECISION_T1650 is not set +CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" +CONFIG_DCACHE_RAM_BASE=0xfefc0000 +CONFIG_DCACHE_RAM_SIZE=0x10000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 +CONFIG_DCACHE_BSP_STACK_SIZE=0x2000 +CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_ECAM_MMCONF_BUS_NUMBER=64 +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 +CONFIG_HAVE_INTEL_FIRMWARE=y +CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_DRIVERS_INTEL_WIFI is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" +# CONFIG_HAVE_IFD_BIN is not set +CONFIG_PCIEXP_HOTPLUG_BUSES=8 +CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 +CONFIG_PS2K_EISAID="PNP0303" +CONFIG_PS2M_EISAID="PNP0F13" +CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" +# CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_DRIVERS_UART_8250IO is not set +CONFIG_HEAP_SIZE=0x4000 +CONFIG_EC_GPE_SCI=0x50 +CONFIG_BOARD_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +CONFIG_COREBOOT_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=4096 +CONFIG_ROM_SIZE=0x00400000 +CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y +CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y +CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y +# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set +# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set +CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 +# end of Mainboard + +CONFIG_SYSTEM_TYPE_LAPTOP=y + +# +# Chipset +# + +# +# SoC +# +CONFIG_CHIPSET_DEVICETREE="" +CONFIG_CBFS_MCACHE_SIZE=0x4000 +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_SMM_RESERVED_SIZE=0x100000 +CONFIG_SMM_MODULE_STACK_SIZE=0x400 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_STACK_SIZE=0x2000 +CONFIG_VBT_DATA_SIZE_KB=8 +CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 +CONFIG_INTEL_GMA_BCLV_WIDTH=16 +CONFIG_INTEL_GMA_BCLM_OFFSET=0x61256 +CONFIG_INTEL_GMA_BCLM_WIDTH=16 +CONFIG_BOOTBLOCK_IN_CBFS=y +CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 +CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 +CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +CONFIG_FIXED_SMBUS_IO_BASE=0x400 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_CBFS_CACHE_ALIGN=8 + +# +# CPU +# +CONFIG_CPU_INTEL_MODEL_6FX=y +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_CPU_INTEL_SOCKET_P=y +CONFIG_CPU_INTEL_COMMON=y +CONFIG_ENABLE_VMX=y +CONFIG_SET_IA32_FC_LOCK_BIT=y +CONFIG_SET_MSR_AESNI_LOCK_BIT=y +CONFIG_CPU_INTEL_COMMON_TIMEBASE=y +CONFIG_CPU_INTEL_COMMON_SMM=y +CONFIG_MICROCODE_UPDATE_PRE_RAM=y +CONFIG_PARALLEL_MP=y +CONFIG_XAPIC_ONLY=y +# CONFIG_X2APIC_ONLY is not set +# CONFIG_X2APIC_RUNTIME is not set +# CONFIG_X2APIC_LATE_WORKAROUND is not set +CONFIG_UDELAY_TSC=y +CONFIG_TSC_MONOTONIC_TIMER=y +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y +CONFIG_HAVE_SMI_HANDLER=y +CONFIG_SMM_TSEG=y +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_AP_STACK_SIZE=0x800 +CONFIG_SMP=y +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SSE2=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y +CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +# CONFIG_CPU_MICROCODE_CBFS_NONE is not set + +# +# Northbridge +# +CONFIG_NORTHBRIDGE_INTEL_GM45=y + +# +# Southbridge +# +CONFIG_PCIEXP_HOTPLUG=y +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y +# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set +CONFIG_TCO_SPACE_NOT_YET_SPLIT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y +CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 +CONFIG_RCBA_LENGTH=0x4000 + +# +# Super I/O +# + +# +# Embedded Controllers +# +CONFIG_EC_DELL_MEC5035=y + +# +# Intel Firmware +# +CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_POSTCAR_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +CONFIG_ARCH_ALL_STAGES_X86_32=y +CONFIG_HAVE_EXP_X86_64_SUPPORT=y +# CONFIG_USE_EXP_X86_64_SUPPORT is not set +CONFIG_AP_IN_SIPI_WAIT=y +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_POSTCAR_STAGE=y +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_COLLECT_TIMESTAMPS_TSC=y +CONFIG_HAVE_CF9_RESET=y +CONFIG_DEBUG_HW_BREAKPOINTS=y +CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y +# end of Chipset + +# +# Devices +# +CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y +CONFIG_HAVE_LINEAR_FRAMEBUFFER=y +CONFIG_MAINBOARD_HAS_LIBGFXINIT=y +CONFIG_MAINBOARD_USE_LIBGFXINIT=y +# CONFIG_VGA_ROM_RUN is not set +# CONFIG_NO_GFX_INIT is not set +CONFIG_NO_EARLY_GFX_INIT=y + +# +# Display +# +# CONFIG_VGA_TEXT_FRAMEBUFFER is not set +CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y +CONFIG_LINEAR_FRAMEBUFFER=y +# CONFIG_BOOTSPLASH is not set +# end of Display + +CONFIG_PCI=y +CONFIG_ECAM_MMCONF_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +CONFIG_AZALIA_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_ECAM_MMCONF_LENGTH=0x04000000 +CONFIG_PCI_ALLOW_BUS_MASTER=y +CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y +CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y +# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set +# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y +# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set +CONFIG_PCIEXP_HOTPLUG_IO=0x2000 +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +CONFIG_INTEL_GMA_HAVE_VBT=y +CONFIG_INTEL_GMA_ADD_VBT=y +# CONFIG_SOFTWARE_I2C is not set +CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 +# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set +CONFIG_NO_DDR5=y +CONFIG_NO_LPDDR4=y +CONFIG_NO_DDR4=y +CONFIG_USE_DDR3=y +CONFIG_USE_DDR2=y +# end of Devices + +# +# Generic Drivers +# +CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 +# CONFIG_ELOG is not set +# CONFIG_SMMSTORE is not set +CONFIG_SPI_FLASH=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +# CONFIG_DRIVERS_UART_OXPCIE is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_USBDEBUG is not set +# CONFIG_VPD is not set +# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set +# CONFIG_DRIVERS_I2C_MAX98396 is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +CONFIG_INTEL_GMA_SSC_ALTERNATE_REF=y +CONFIG_GFX_GMA=y +CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y +CONFIG_INTEL_GMA_OPREGION_2_0=y +CONFIG_GFX_GMA_DYN_CPU=y +CONFIG_GFX_GMA_GENERATION="G45" +CONFIG_GFX_GMA_PCH="No_PCH" +CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" +CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_USE_PC_CMOS_ALTCENTURY is not set +CONFIG_VGA=y +# CONFIG_DRIVERS_SIL_3114 is not set +# end of Generic Drivers + +# +# Security +# + +# +# CBFS verification +# +# CONFIG_CBFS_VERIFICATION is not set +# end of CBFS verification + +# +# Verified Boot (vboot) +# +# end of Verified Boot (vboot) + +# +# Trusted Platform Module +# +CONFIG_NO_TPM=y +# end of Trusted Platform Module + +# +# Memory initialization +# +CONFIG_PLATFORM_HAS_DRAM_CLEAR=y +CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y +# end of Memory initialization + +# CONFIG_STM is not set +CONFIG_BOOTMEDIA_LOCK_NONE=y +# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set +# CONFIG_BOOTMEDIA_LOCK_CHIP is not set +# CONFIG_BOOTMEDIA_SMM_BWP is not set +# end of Security + +CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +CONFIG_ACPI_SOC_NVS=y +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_BOOT_DEVICE_SPI_FLASH=y +CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y +CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y + +# +# Console +# +CONFIG_BOOTBLOCK_CONSOLE=y +CONFIG_POSTCAR_CONSOLE=y +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +# CONFIG_CONSOLE_SPI_FLASH is not set +# CONFIG_CONSOLE_I2C_SMBUS is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=0 +CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y +CONFIG_CONSOLE_USE_ANSI_ESCAPES=y +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +CONFIG_HWBASE_DEBUG_NULL=y +# end of Console + +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_MONOTONIC_TIMER=y +CONFIG_HAVE_OPTION_TABLE=y +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y + +# +# System tables +# +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +# end of System tables + +# +# Payload +# +CONFIG_PAYLOAD_NONE=y +# end of Payload + +# +# Debugging +# + +# +# CPU Debug Settings +# +# CONFIG_DISPLAY_MTRRS is not set + +# +# BLOB Debug Settings +# + +# +# General Debug Settings +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_CONSOLE_INIT is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_DEBUG_ADA_CODE is not set +# end of Debugging + +CONFIG_RAMSTAGE_ADA=y +CONFIG_RAMSTAGE_LIBHWBASE=y +CONFIG_HWBASE_DYNAMIC_MMIO=y +CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 +CONFIG_HWBASE_DIRECT_PCIDEV=y +CONFIG_DECOMPRESS_OFAST=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_RELOCATABLE_MODULES=y +CONFIG_HAVE_BOOTBLOCK=y +CONFIG_HAVE_ROMSTAGE=y +CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/coreboot/e6400_4mb/config/libgfxinit_txtmode b/resources/coreboot/e6400_4mb/config/libgfxinit_txtmode new file mode 100644 index 00000000..1c8a17ac --- /dev/null +++ b/resources/coreboot/e6400_4mb/config/libgfxinit_txtmode @@ -0,0 +1,555 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_COREBOOT_BUILD=y +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +CONFIG_ARCH_SUPPORTS_CLANG=y +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_IWYU is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_UTIL_GENPARSER is not set +# CONFIG_OPTION_BACKEND_NONE is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_COLLECT_TIMESTAMPS=y +# CONFIG_TIMESTAMPS_ON_CONSOLE is not set +CONFIG_USE_BLOBS=y +# CONFIG_USE_AMD_BLOBS is not set +# CONFIG_USE_QC_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_UBSAN is not set +CONFIG_HAVE_ASAN_IN_RAMSTAGE=y +# CONFIG_ASAN is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_TSEG_STAGE_CACHE=y +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) +# end of General setup + +# +# Mainboard +# + +# +# Important: Run 'make distclean' before switching boards +# +# CONFIG_VENDOR_51NB is not set +# CONFIG_VENDOR_ACER is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_CAVIUM is not set +# CONFIG_VENDOR_CLEVO is not set +# CONFIG_VENDOR_COMPULAB is not set +CONFIG_VENDOR_DELL=y +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_EXAMPLE is not set +# CONFIG_VENDOR_FACEBOOK is not set +# CONFIG_VENDOR_FOXCONN is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LIBRETREND is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_OCP is not set +# CONFIG_VENDOR_OPENCELLULAR is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PINE64 is not set +# CONFIG_VENDOR_PORTWELL is not set +# CONFIG_VENDOR_PRODRIVE is not set +# CONFIG_VENDOR_PROTECTLI is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RAZER is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SAPPHIRE is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SIFIVE is not set +# CONFIG_VENDOR_STARLABS is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_SYSTEM76 is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_UP is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400" +CONFIG_MAINBOARD_VERSION="1.0" +CONFIG_MAINBOARD_DIR="dell/e6400" +CONFIG_VGA_BIOS_ID="8086,2a42" +CONFIG_DIMM_MAX=4 +CONFIG_DIMM_SPD_SIZE=256 +CONFIG_FMDFILE="" +# CONFIG_NO_POST is not set +CONFIG_MAINBOARD_VENDOR="Dell Inc." +CONFIG_CBFS_SIZE=0x3FD000 +CONFIG_MAX_CPUS=4 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +CONFIG_POST_DEVICE=y +CONFIG_POST_IO=y +CONFIG_DEVICETREE="devicetree.cb" +# CONFIG_VBOOT is not set +CONFIG_OVERRIDE_DEVICETREE="" +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc." +CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt" +CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" +CONFIG_USBDEBUG_HCD_INDEX=1 +CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 +# CONFIG_CONSOLE_POST is not set +CONFIG_BOARD_DELL_E6400=y +# CONFIG_BOARD_DELL_OPTIPLEX_9010 is not set +# CONFIG_BOARD_DELL_PRECISION_T1650 is not set +CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" +CONFIG_DCACHE_RAM_BASE=0xfefc0000 +CONFIG_DCACHE_RAM_SIZE=0x10000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 +CONFIG_DCACHE_BSP_STACK_SIZE=0x2000 +CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_ECAM_MMCONF_BUS_NUMBER=64 +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 +CONFIG_HAVE_INTEL_FIRMWARE=y +CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_DRIVERS_INTEL_WIFI is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" +# CONFIG_HAVE_IFD_BIN is not set +CONFIG_PCIEXP_HOTPLUG_BUSES=8 +CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 +CONFIG_PS2K_EISAID="PNP0303" +CONFIG_PS2M_EISAID="PNP0F13" +CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" +# CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_DRIVERS_UART_8250IO is not set +CONFIG_HEAP_SIZE=0x4000 +CONFIG_EC_GPE_SCI=0x50 +CONFIG_BOARD_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +CONFIG_COREBOOT_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=4096 +CONFIG_ROM_SIZE=0x00400000 +CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y +CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y +CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y +# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set +# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set +CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 +# end of Mainboard + +CONFIG_SYSTEM_TYPE_LAPTOP=y + +# +# Chipset +# + +# +# SoC +# +CONFIG_CHIPSET_DEVICETREE="" +CONFIG_CBFS_MCACHE_SIZE=0x4000 +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_SMM_RESERVED_SIZE=0x100000 +CONFIG_SMM_MODULE_STACK_SIZE=0x400 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_STACK_SIZE=0x2000 +CONFIG_VBT_DATA_SIZE_KB=8 +CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 +CONFIG_INTEL_GMA_BCLV_WIDTH=16 +CONFIG_INTEL_GMA_BCLM_OFFSET=0x61256 +CONFIG_INTEL_GMA_BCLM_WIDTH=16 +CONFIG_BOOTBLOCK_IN_CBFS=y +CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 +CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 +CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +CONFIG_FIXED_SMBUS_IO_BASE=0x400 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_CBFS_CACHE_ALIGN=8 + +# +# CPU +# +CONFIG_CPU_INTEL_MODEL_6FX=y +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_CPU_INTEL_SOCKET_P=y +CONFIG_CPU_INTEL_COMMON=y +CONFIG_ENABLE_VMX=y +CONFIG_SET_IA32_FC_LOCK_BIT=y +CONFIG_SET_MSR_AESNI_LOCK_BIT=y +CONFIG_CPU_INTEL_COMMON_TIMEBASE=y +CONFIG_CPU_INTEL_COMMON_SMM=y +CONFIG_MICROCODE_UPDATE_PRE_RAM=y +CONFIG_PARALLEL_MP=y +CONFIG_XAPIC_ONLY=y +# CONFIG_X2APIC_ONLY is not set +# CONFIG_X2APIC_RUNTIME is not set +# CONFIG_X2APIC_LATE_WORKAROUND is not set +CONFIG_UDELAY_TSC=y +CONFIG_TSC_MONOTONIC_TIMER=y +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y +CONFIG_HAVE_SMI_HANDLER=y +CONFIG_SMM_TSEG=y +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_AP_STACK_SIZE=0x800 +CONFIG_SMP=y +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SSE2=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y +CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +# CONFIG_CPU_MICROCODE_CBFS_NONE is not set + +# +# Northbridge +# +CONFIG_NORTHBRIDGE_INTEL_GM45=y + +# +# Southbridge +# +CONFIG_PCIEXP_HOTPLUG=y +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y +# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set +CONFIG_TCO_SPACE_NOT_YET_SPLIT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y +CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 +CONFIG_RCBA_LENGTH=0x4000 + +# +# Super I/O +# + +# +# Embedded Controllers +# +CONFIG_EC_DELL_MEC5035=y + +# +# Intel Firmware +# +CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_POSTCAR_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +CONFIG_ARCH_ALL_STAGES_X86_32=y +CONFIG_HAVE_EXP_X86_64_SUPPORT=y +# CONFIG_USE_EXP_X86_64_SUPPORT is not set +CONFIG_AP_IN_SIPI_WAIT=y +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_POSTCAR_STAGE=y +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_COLLECT_TIMESTAMPS_TSC=y +CONFIG_HAVE_CF9_RESET=y +CONFIG_DEBUG_HW_BREAKPOINTS=y +CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y +# end of Chipset + +# +# Devices +# +CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y +CONFIG_HAVE_LINEAR_FRAMEBUFFER=y +CONFIG_MAINBOARD_HAS_LIBGFXINIT=y +CONFIG_MAINBOARD_USE_LIBGFXINIT=y +# CONFIG_VGA_ROM_RUN is not set +# CONFIG_NO_GFX_INIT is not set +CONFIG_NO_EARLY_GFX_INIT=y + +# +# Display +# +CONFIG_VGA_TEXT_FRAMEBUFFER=y +# CONFIG_GENERIC_LINEAR_FRAMEBUFFER is not set +# end of Display + +CONFIG_PCI=y +CONFIG_ECAM_MMCONF_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +CONFIG_AZALIA_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_ECAM_MMCONF_LENGTH=0x04000000 +CONFIG_PCI_ALLOW_BUS_MASTER=y +CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y +CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y +# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set +# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y +# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set +CONFIG_PCIEXP_HOTPLUG_IO=0x2000 +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +CONFIG_INTEL_GMA_HAVE_VBT=y +CONFIG_INTEL_GMA_ADD_VBT=y +# CONFIG_SOFTWARE_I2C is not set +CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 +# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set +CONFIG_NO_DDR5=y +CONFIG_NO_LPDDR4=y +CONFIG_NO_DDR4=y +CONFIG_USE_DDR3=y +CONFIG_USE_DDR2=y +# end of Devices + +# +# Generic Drivers +# +CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 +# CONFIG_ELOG is not set +# CONFIG_SMMSTORE is not set +CONFIG_SPI_FLASH=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +# CONFIG_DRIVERS_UART_OXPCIE is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_USBDEBUG is not set +# CONFIG_VPD is not set +# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set +# CONFIG_DRIVERS_I2C_MAX98396 is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +CONFIG_INTEL_GMA_SSC_ALTERNATE_REF=y +CONFIG_GFX_GMA=y +CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y +CONFIG_INTEL_GMA_OPREGION_2_0=y +CONFIG_GFX_GMA_DYN_CPU=y +CONFIG_GFX_GMA_GENERATION="G45" +CONFIG_GFX_GMA_PCH="No_PCH" +CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" +CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_USE_PC_CMOS_ALTCENTURY is not set +CONFIG_VGA=y +# CONFIG_DRIVERS_SIL_3114 is not set +# end of Generic Drivers + +# +# Security +# + +# +# CBFS verification +# +# CONFIG_CBFS_VERIFICATION is not set +# end of CBFS verification + +# +# Verified Boot (vboot) +# +# end of Verified Boot (vboot) + +# +# Trusted Platform Module +# +CONFIG_NO_TPM=y +# end of Trusted Platform Module + +# +# Memory initialization +# +CONFIG_PLATFORM_HAS_DRAM_CLEAR=y +CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y +# end of Memory initialization + +# CONFIG_STM is not set +CONFIG_BOOTMEDIA_LOCK_NONE=y +# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set +# CONFIG_BOOTMEDIA_LOCK_CHIP is not set +# CONFIG_BOOTMEDIA_SMM_BWP is not set +# end of Security + +CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +CONFIG_ACPI_SOC_NVS=y +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_BOOT_DEVICE_SPI_FLASH=y +CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y +CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y + +# +# Console +# +CONFIG_BOOTBLOCK_CONSOLE=y +CONFIG_POSTCAR_CONSOLE=y +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +# CONFIG_CONSOLE_SPI_FLASH is not set +# CONFIG_CONSOLE_I2C_SMBUS is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=0 +CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y +CONFIG_CONSOLE_USE_ANSI_ESCAPES=y +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +CONFIG_HWBASE_DEBUG_NULL=y +# end of Console + +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_MONOTONIC_TIMER=y +CONFIG_HAVE_OPTION_TABLE=y +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y + +# +# System tables +# +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +# end of System tables + +# +# Payload +# +CONFIG_PAYLOAD_NONE=y +# end of Payload + +# +# Debugging +# + +# +# CPU Debug Settings +# +# CONFIG_DISPLAY_MTRRS is not set + +# +# BLOB Debug Settings +# + +# +# General Debug Settings +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_CONSOLE_INIT is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_DEBUG_ADA_CODE is not set +# end of Debugging + +CONFIG_RAMSTAGE_ADA=y +CONFIG_RAMSTAGE_LIBHWBASE=y +CONFIG_HWBASE_DYNAMIC_MMIO=y +CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 +CONFIG_HWBASE_DIRECT_PCIDEV=y +CONFIG_DECOMPRESS_OFAST=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_RELOCATABLE_MODULES=y +CONFIG_HAVE_BOOTBLOCK=y +CONFIG_HAVE_ROMSTAGE=y +CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/coreboot/e6400_8mb/board.cfg b/resources/coreboot/e6400_8mb/board.cfg new file mode 100644 index 00000000..ee8ee02d --- /dev/null +++ b/resources/coreboot/e6400_8mb/board.cfg @@ -0,0 +1,8 @@ +cbtree="default" +romtype="8MiB ICH9 IFD NOR flash" +arch="x86_64" +payload_grub="y" +payload_grub_withseabios="y" +payload_seabios="y" +payload_memtest="y" +grub_scan_disk="ahci" diff --git a/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb b/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb new file mode 100644 index 00000000..7fe58c05 --- /dev/null +++ b/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb @@ -0,0 +1,559 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_COREBOOT_BUILD=y +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +CONFIG_ARCH_SUPPORTS_CLANG=y +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_IWYU is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_UTIL_GENPARSER is not set +# CONFIG_OPTION_BACKEND_NONE is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_COLLECT_TIMESTAMPS=y +# CONFIG_TIMESTAMPS_ON_CONSOLE is not set +CONFIG_USE_BLOBS=y +# CONFIG_USE_AMD_BLOBS is not set +# CONFIG_USE_QC_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_UBSAN is not set +CONFIG_HAVE_ASAN_IN_RAMSTAGE=y +# CONFIG_ASAN is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_TSEG_STAGE_CACHE=y +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) +# end of General setup + +# +# Mainboard +# + +# +# Important: Run 'make distclean' before switching boards +# +# CONFIG_VENDOR_51NB is not set +# CONFIG_VENDOR_ACER is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_CAVIUM is not set +# CONFIG_VENDOR_CLEVO is not set +# CONFIG_VENDOR_COMPULAB is not set +CONFIG_VENDOR_DELL=y +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_EXAMPLE is not set +# CONFIG_VENDOR_FACEBOOK is not set +# CONFIG_VENDOR_FOXCONN is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LIBRETREND is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_OCP is not set +# CONFIG_VENDOR_OPENCELLULAR is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PINE64 is not set +# CONFIG_VENDOR_PORTWELL is not set +# CONFIG_VENDOR_PRODRIVE is not set +# CONFIG_VENDOR_PROTECTLI is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RAZER is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SAPPHIRE is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SIFIVE is not set +# CONFIG_VENDOR_STARLABS is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_SYSTEM76 is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_UP is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400" +CONFIG_MAINBOARD_VERSION="1.0" +CONFIG_MAINBOARD_DIR="dell/e6400" +CONFIG_VGA_BIOS_ID="8086,2a42" +CONFIG_DIMM_MAX=4 +CONFIG_DIMM_SPD_SIZE=256 +CONFIG_FMDFILE="" +# CONFIG_NO_POST is not set +CONFIG_MAINBOARD_VENDOR="Dell Inc." +CONFIG_CBFS_SIZE=0x7FD000 +CONFIG_LINEAR_FRAMEBUFFER_MAX_HEIGHT=1600 +CONFIG_LINEAR_FRAMEBUFFER_MAX_WIDTH=2560 +CONFIG_MAX_CPUS=4 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +CONFIG_POST_DEVICE=y +CONFIG_POST_IO=y +CONFIG_DEVICETREE="devicetree.cb" +# CONFIG_VBOOT is not set +CONFIG_OVERRIDE_DEVICETREE="" +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc." +CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt" +CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" +CONFIG_USBDEBUG_HCD_INDEX=1 +CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 +# CONFIG_CONSOLE_POST is not set +CONFIG_BOARD_DELL_E6400=y +# CONFIG_BOARD_DELL_OPTIPLEX_9010 is not set +# CONFIG_BOARD_DELL_PRECISION_T1650 is not set +CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" +CONFIG_DCACHE_RAM_BASE=0xfefc0000 +CONFIG_DCACHE_RAM_SIZE=0x10000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 +CONFIG_DCACHE_BSP_STACK_SIZE=0x2000 +CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_ECAM_MMCONF_BUS_NUMBER=64 +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 +CONFIG_HAVE_INTEL_FIRMWARE=y +CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_DRIVERS_INTEL_WIFI is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" +# CONFIG_HAVE_IFD_BIN is not set +CONFIG_PCIEXP_HOTPLUG_BUSES=8 +CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 +CONFIG_PS2K_EISAID="PNP0303" +CONFIG_PS2M_EISAID="PNP0F13" +CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" +# CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_DRIVERS_UART_8250IO is not set +CONFIG_HEAP_SIZE=0x4000 +CONFIG_EC_GPE_SCI=0x50 +CONFIG_BOARD_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set +CONFIG_COREBOOT_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=8192 +CONFIG_ROM_SIZE=0x00800000 +CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y +CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y +CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y +# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set +# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set +CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 +# end of Mainboard + +CONFIG_SYSTEM_TYPE_LAPTOP=y + +# +# Chipset +# + +# +# SoC +# +CONFIG_CHIPSET_DEVICETREE="" +CONFIG_CBFS_MCACHE_SIZE=0x4000 +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_SMM_RESERVED_SIZE=0x100000 +CONFIG_SMM_MODULE_STACK_SIZE=0x400 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_STACK_SIZE=0x2000 +CONFIG_VBT_DATA_SIZE_KB=8 +CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 +CONFIG_INTEL_GMA_BCLV_WIDTH=16 +CONFIG_INTEL_GMA_BCLM_OFFSET=0x61256 +CONFIG_INTEL_GMA_BCLM_WIDTH=16 +CONFIG_BOOTBLOCK_IN_CBFS=y +CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 +CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 +CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +CONFIG_FIXED_SMBUS_IO_BASE=0x400 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_CBFS_CACHE_ALIGN=8 + +# +# CPU +# +CONFIG_CPU_INTEL_MODEL_6FX=y +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_CPU_INTEL_SOCKET_P=y +CONFIG_CPU_INTEL_COMMON=y +CONFIG_ENABLE_VMX=y +CONFIG_SET_IA32_FC_LOCK_BIT=y +CONFIG_SET_MSR_AESNI_LOCK_BIT=y +CONFIG_CPU_INTEL_COMMON_TIMEBASE=y +CONFIG_CPU_INTEL_COMMON_SMM=y +CONFIG_MICROCODE_UPDATE_PRE_RAM=y +CONFIG_PARALLEL_MP=y +CONFIG_XAPIC_ONLY=y +# CONFIG_X2APIC_ONLY is not set +# CONFIG_X2APIC_RUNTIME is not set +# CONFIG_X2APIC_LATE_WORKAROUND is not set +CONFIG_UDELAY_TSC=y +CONFIG_TSC_MONOTONIC_TIMER=y +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y +CONFIG_HAVE_SMI_HANDLER=y +CONFIG_SMM_TSEG=y +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_AP_STACK_SIZE=0x800 +CONFIG_SMP=y +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SSE2=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y +CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +# CONFIG_CPU_MICROCODE_CBFS_NONE is not set + +# +# Northbridge +# +CONFIG_NORTHBRIDGE_INTEL_GM45=y + +# +# Southbridge +# +CONFIG_PCIEXP_HOTPLUG=y +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y +# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set +CONFIG_TCO_SPACE_NOT_YET_SPLIT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y +CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 +CONFIG_RCBA_LENGTH=0x4000 + +# +# Super I/O +# + +# +# Embedded Controllers +# +CONFIG_EC_DELL_MEC5035=y + +# +# Intel Firmware +# +CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_POSTCAR_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +CONFIG_ARCH_ALL_STAGES_X86_32=y +CONFIG_HAVE_EXP_X86_64_SUPPORT=y +# CONFIG_USE_EXP_X86_64_SUPPORT is not set +CONFIG_AP_IN_SIPI_WAIT=y +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_POSTCAR_STAGE=y +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_COLLECT_TIMESTAMPS_TSC=y +CONFIG_HAVE_CF9_RESET=y +CONFIG_DEBUG_HW_BREAKPOINTS=y +CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y +# end of Chipset + +# +# Devices +# +CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y +CONFIG_HAVE_LINEAR_FRAMEBUFFER=y +CONFIG_MAINBOARD_HAS_LIBGFXINIT=y +CONFIG_MAINBOARD_USE_LIBGFXINIT=y +# CONFIG_VGA_ROM_RUN is not set +# CONFIG_NO_GFX_INIT is not set +CONFIG_NO_EARLY_GFX_INIT=y + +# +# Display +# +# CONFIG_VGA_TEXT_FRAMEBUFFER is not set +CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y +CONFIG_LINEAR_FRAMEBUFFER=y +# CONFIG_BOOTSPLASH is not set +# end of Display + +CONFIG_PCI=y +CONFIG_ECAM_MMCONF_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +CONFIG_AZALIA_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_ECAM_MMCONF_LENGTH=0x04000000 +CONFIG_PCI_ALLOW_BUS_MASTER=y +CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y +CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y +# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set +# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y +# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set +CONFIG_PCIEXP_HOTPLUG_IO=0x2000 +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +CONFIG_INTEL_GMA_HAVE_VBT=y +CONFIG_INTEL_GMA_ADD_VBT=y +# CONFIG_SOFTWARE_I2C is not set +CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 +# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set +CONFIG_NO_DDR5=y +CONFIG_NO_LPDDR4=y +CONFIG_NO_DDR4=y +CONFIG_USE_DDR3=y +CONFIG_USE_DDR2=y +# end of Devices + +# +# Generic Drivers +# +CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 +# CONFIG_ELOG is not set +# CONFIG_SMMSTORE is not set +CONFIG_SPI_FLASH=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +# CONFIG_DRIVERS_UART_OXPCIE is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_USBDEBUG is not set +# CONFIG_VPD is not set +# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set +# CONFIG_DRIVERS_I2C_MAX98396 is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +CONFIG_INTEL_GMA_SSC_ALTERNATE_REF=y +CONFIG_GFX_GMA=y +CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y +CONFIG_INTEL_GMA_OPREGION_2_0=y +CONFIG_GFX_GMA_DYN_CPU=y +CONFIG_GFX_GMA_GENERATION="G45" +CONFIG_GFX_GMA_PCH="No_PCH" +CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" +CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_USE_PC_CMOS_ALTCENTURY is not set +CONFIG_VGA=y +# CONFIG_DRIVERS_SIL_3114 is not set +# end of Generic Drivers + +# +# Security +# + +# +# CBFS verification +# +# CONFIG_CBFS_VERIFICATION is not set +# end of CBFS verification + +# +# Verified Boot (vboot) +# +# end of Verified Boot (vboot) + +# +# Trusted Platform Module +# +CONFIG_NO_TPM=y +# end of Trusted Platform Module + +# +# Memory initialization +# +CONFIG_PLATFORM_HAS_DRAM_CLEAR=y +CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y +# end of Memory initialization + +# CONFIG_STM is not set +CONFIG_BOOTMEDIA_LOCK_NONE=y +# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set +# CONFIG_BOOTMEDIA_LOCK_CHIP is not set +# CONFIG_BOOTMEDIA_SMM_BWP is not set +# end of Security + +CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +CONFIG_ACPI_SOC_NVS=y +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_BOOT_DEVICE_SPI_FLASH=y +CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y +CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y + +# +# Console +# +CONFIG_BOOTBLOCK_CONSOLE=y +CONFIG_POSTCAR_CONSOLE=y +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +# CONFIG_CONSOLE_SPI_FLASH is not set +# CONFIG_CONSOLE_I2C_SMBUS is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=0 +CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y +CONFIG_CONSOLE_USE_ANSI_ESCAPES=y +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +CONFIG_HWBASE_DEBUG_NULL=y +# end of Console + +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_MONOTONIC_TIMER=y +CONFIG_HAVE_OPTION_TABLE=y +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y + +# +# System tables +# +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +# end of System tables + +# +# Payload +# +CONFIG_PAYLOAD_NONE=y +# end of Payload + +# +# Debugging +# + +# +# CPU Debug Settings +# +# CONFIG_DISPLAY_MTRRS is not set + +# +# BLOB Debug Settings +# + +# +# General Debug Settings +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_CONSOLE_INIT is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_DEBUG_ADA_CODE is not set +# end of Debugging + +CONFIG_RAMSTAGE_ADA=y +CONFIG_RAMSTAGE_LIBHWBASE=y +CONFIG_HWBASE_DYNAMIC_MMIO=y +CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 +CONFIG_HWBASE_DIRECT_PCIDEV=y +CONFIG_DECOMPRESS_OFAST=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_RELOCATABLE_MODULES=y +CONFIG_HAVE_BOOTBLOCK=y +CONFIG_HAVE_ROMSTAGE=y +CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode b/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode new file mode 100644 index 00000000..758b5bc5 --- /dev/null +++ b/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode @@ -0,0 +1,555 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_COREBOOT_BUILD=y +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +CONFIG_ARCH_SUPPORTS_CLANG=y +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_IWYU is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_UTIL_GENPARSER is not set +# CONFIG_OPTION_BACKEND_NONE is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_COLLECT_TIMESTAMPS=y +# CONFIG_TIMESTAMPS_ON_CONSOLE is not set +CONFIG_USE_BLOBS=y +# CONFIG_USE_AMD_BLOBS is not set +# CONFIG_USE_QC_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_UBSAN is not set +CONFIG_HAVE_ASAN_IN_RAMSTAGE=y +# CONFIG_ASAN is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_TSEG_STAGE_CACHE=y +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) +# end of General setup + +# +# Mainboard +# + +# +# Important: Run 'make distclean' before switching boards +# +# CONFIG_VENDOR_51NB is not set +# CONFIG_VENDOR_ACER is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_CAVIUM is not set +# CONFIG_VENDOR_CLEVO is not set +# CONFIG_VENDOR_COMPULAB is not set +CONFIG_VENDOR_DELL=y +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_EXAMPLE is not set +# CONFIG_VENDOR_FACEBOOK is not set +# CONFIG_VENDOR_FOXCONN is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LIBRETREND is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_OCP is not set +# CONFIG_VENDOR_OPENCELLULAR is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PINE64 is not set +# CONFIG_VENDOR_PORTWELL is not set +# CONFIG_VENDOR_PRODRIVE is not set +# CONFIG_VENDOR_PROTECTLI is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RAZER is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SAPPHIRE is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SIFIVE is not set +# CONFIG_VENDOR_STARLABS is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_SYSTEM76 is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_UP is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400" +CONFIG_MAINBOARD_VERSION="1.0" +CONFIG_MAINBOARD_DIR="dell/e6400" +CONFIG_VGA_BIOS_ID="8086,2a42" +CONFIG_DIMM_MAX=4 +CONFIG_DIMM_SPD_SIZE=256 +CONFIG_FMDFILE="" +# CONFIG_NO_POST is not set +CONFIG_MAINBOARD_VENDOR="Dell Inc." +CONFIG_CBFS_SIZE=0x7FD000 +CONFIG_MAX_CPUS=4 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +CONFIG_POST_DEVICE=y +CONFIG_POST_IO=y +CONFIG_DEVICETREE="devicetree.cb" +# CONFIG_VBOOT is not set +CONFIG_OVERRIDE_DEVICETREE="" +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc." +CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt" +CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" +CONFIG_USBDEBUG_HCD_INDEX=1 +CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 +# CONFIG_CONSOLE_POST is not set +CONFIG_BOARD_DELL_E6400=y +# CONFIG_BOARD_DELL_OPTIPLEX_9010 is not set +# CONFIG_BOARD_DELL_PRECISION_T1650 is not set +CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" +CONFIG_DCACHE_RAM_BASE=0xfefc0000 +CONFIG_DCACHE_RAM_SIZE=0x10000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 +CONFIG_DCACHE_BSP_STACK_SIZE=0x2000 +CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_ECAM_MMCONF_BUS_NUMBER=64 +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 +CONFIG_HAVE_INTEL_FIRMWARE=y +CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_DRIVERS_INTEL_WIFI is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" +# CONFIG_HAVE_IFD_BIN is not set +CONFIG_PCIEXP_HOTPLUG_BUSES=8 +CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 +CONFIG_PS2K_EISAID="PNP0303" +CONFIG_PS2M_EISAID="PNP0F13" +CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" +# CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_DRIVERS_UART_8250IO is not set +CONFIG_HEAP_SIZE=0x4000 +CONFIG_EC_GPE_SCI=0x50 +CONFIG_BOARD_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set +CONFIG_COREBOOT_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=8192 +CONFIG_ROM_SIZE=0x00800000 +CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y +CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y +CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y +# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set +# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set +CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 +# end of Mainboard + +CONFIG_SYSTEM_TYPE_LAPTOP=y + +# +# Chipset +# + +# +# SoC +# +CONFIG_CHIPSET_DEVICETREE="" +CONFIG_CBFS_MCACHE_SIZE=0x4000 +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_SMM_RESERVED_SIZE=0x100000 +CONFIG_SMM_MODULE_STACK_SIZE=0x400 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_STACK_SIZE=0x2000 +CONFIG_VBT_DATA_SIZE_KB=8 +CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 +CONFIG_INTEL_GMA_BCLV_WIDTH=16 +CONFIG_INTEL_GMA_BCLM_OFFSET=0x61256 +CONFIG_INTEL_GMA_BCLM_WIDTH=16 +CONFIG_BOOTBLOCK_IN_CBFS=y +CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 +CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 +CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +CONFIG_FIXED_SMBUS_IO_BASE=0x400 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_CBFS_CACHE_ALIGN=8 + +# +# CPU +# +CONFIG_CPU_INTEL_MODEL_6FX=y +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_CPU_INTEL_SOCKET_P=y +CONFIG_CPU_INTEL_COMMON=y +CONFIG_ENABLE_VMX=y +CONFIG_SET_IA32_FC_LOCK_BIT=y +CONFIG_SET_MSR_AESNI_LOCK_BIT=y +CONFIG_CPU_INTEL_COMMON_TIMEBASE=y +CONFIG_CPU_INTEL_COMMON_SMM=y +CONFIG_MICROCODE_UPDATE_PRE_RAM=y +CONFIG_PARALLEL_MP=y +CONFIG_XAPIC_ONLY=y +# CONFIG_X2APIC_ONLY is not set +# CONFIG_X2APIC_RUNTIME is not set +# CONFIG_X2APIC_LATE_WORKAROUND is not set +CONFIG_UDELAY_TSC=y +CONFIG_TSC_MONOTONIC_TIMER=y +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y +CONFIG_HAVE_SMI_HANDLER=y +CONFIG_SMM_TSEG=y +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_AP_STACK_SIZE=0x800 +CONFIG_SMP=y +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SSE2=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y +CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +# CONFIG_CPU_MICROCODE_CBFS_NONE is not set + +# +# Northbridge +# +CONFIG_NORTHBRIDGE_INTEL_GM45=y + +# +# Southbridge +# +CONFIG_PCIEXP_HOTPLUG=y +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y +# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set +CONFIG_TCO_SPACE_NOT_YET_SPLIT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y +CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 +CONFIG_RCBA_LENGTH=0x4000 + +# +# Super I/O +# + +# +# Embedded Controllers +# +CONFIG_EC_DELL_MEC5035=y + +# +# Intel Firmware +# +CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_POSTCAR_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +CONFIG_ARCH_ALL_STAGES_X86_32=y +CONFIG_HAVE_EXP_X86_64_SUPPORT=y +# CONFIG_USE_EXP_X86_64_SUPPORT is not set +CONFIG_AP_IN_SIPI_WAIT=y +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_POSTCAR_STAGE=y +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_COLLECT_TIMESTAMPS_TSC=y +CONFIG_HAVE_CF9_RESET=y +CONFIG_DEBUG_HW_BREAKPOINTS=y +CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y +# end of Chipset + +# +# Devices +# +CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y +CONFIG_HAVE_LINEAR_FRAMEBUFFER=y +CONFIG_MAINBOARD_HAS_LIBGFXINIT=y +CONFIG_MAINBOARD_USE_LIBGFXINIT=y +# CONFIG_VGA_ROM_RUN is not set +# CONFIG_NO_GFX_INIT is not set +CONFIG_NO_EARLY_GFX_INIT=y + +# +# Display +# +CONFIG_VGA_TEXT_FRAMEBUFFER=y +# CONFIG_GENERIC_LINEAR_FRAMEBUFFER is not set +# end of Display + +CONFIG_PCI=y +CONFIG_ECAM_MMCONF_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +CONFIG_AZALIA_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_ECAM_MMCONF_LENGTH=0x04000000 +CONFIG_PCI_ALLOW_BUS_MASTER=y +CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y +CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y +# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set +# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y +# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set +CONFIG_PCIEXP_HOTPLUG_IO=0x2000 +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +CONFIG_INTEL_GMA_HAVE_VBT=y +CONFIG_INTEL_GMA_ADD_VBT=y +# CONFIG_SOFTWARE_I2C is not set +CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 +# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set +CONFIG_NO_DDR5=y +CONFIG_NO_LPDDR4=y +CONFIG_NO_DDR4=y +CONFIG_USE_DDR3=y +CONFIG_USE_DDR2=y +# end of Devices + +# +# Generic Drivers +# +CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 +# CONFIG_ELOG is not set +# CONFIG_SMMSTORE is not set +CONFIG_SPI_FLASH=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +# CONFIG_DRIVERS_UART_OXPCIE is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_USBDEBUG is not set +# CONFIG_VPD is not set +# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set +# CONFIG_DRIVERS_I2C_MAX98396 is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +CONFIG_INTEL_GMA_SSC_ALTERNATE_REF=y +CONFIG_GFX_GMA=y +CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y +CONFIG_INTEL_GMA_OPREGION_2_0=y +CONFIG_GFX_GMA_DYN_CPU=y +CONFIG_GFX_GMA_GENERATION="G45" +CONFIG_GFX_GMA_PCH="No_PCH" +CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" +CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_USE_PC_CMOS_ALTCENTURY is not set +CONFIG_VGA=y +# CONFIG_DRIVERS_SIL_3114 is not set +# end of Generic Drivers + +# +# Security +# + +# +# CBFS verification +# +# CONFIG_CBFS_VERIFICATION is not set +# end of CBFS verification + +# +# Verified Boot (vboot) +# +# end of Verified Boot (vboot) + +# +# Trusted Platform Module +# +CONFIG_NO_TPM=y +# end of Trusted Platform Module + +# +# Memory initialization +# +CONFIG_PLATFORM_HAS_DRAM_CLEAR=y +CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y +# end of Memory initialization + +# CONFIG_STM is not set +CONFIG_BOOTMEDIA_LOCK_NONE=y +# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set +# CONFIG_BOOTMEDIA_LOCK_CHIP is not set +# CONFIG_BOOTMEDIA_SMM_BWP is not set +# end of Security + +CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +CONFIG_ACPI_SOC_NVS=y +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_BOOT_DEVICE_SPI_FLASH=y +CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y +CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y + +# +# Console +# +CONFIG_BOOTBLOCK_CONSOLE=y +CONFIG_POSTCAR_CONSOLE=y +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +# CONFIG_CONSOLE_SPI_FLASH is not set +# CONFIG_CONSOLE_I2C_SMBUS is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=0 +CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y +CONFIG_CONSOLE_USE_ANSI_ESCAPES=y +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +CONFIG_HWBASE_DEBUG_NULL=y +# end of Console + +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_MONOTONIC_TIMER=y +CONFIG_HAVE_OPTION_TABLE=y +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y + +# +# System tables +# +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +# end of System tables + +# +# Payload +# +CONFIG_PAYLOAD_NONE=y +# end of Payload + +# +# Debugging +# + +# +# CPU Debug Settings +# +# CONFIG_DISPLAY_MTRRS is not set + +# +# BLOB Debug Settings +# + +# +# General Debug Settings +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_CONSOLE_INIT is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_DEBUG_ADA_CODE is not set +# end of Debugging + +CONFIG_RAMSTAGE_ADA=y +CONFIG_RAMSTAGE_LIBHWBASE=y +CONFIG_HWBASE_DYNAMIC_MMIO=y +CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 +CONFIG_HWBASE_DIRECT_PCIDEV=y +CONFIG_DECOMPRESS_OFAST=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_RELOCATABLE_MODULES=y +CONFIG_HAVE_BOOTBLOCK=y +CONFIG_HAVE_ROMSTAGE=y +CONFIG_HAVE_RAMSTAGE=y From a11f2d2e5e41381e39b689fe57492bdd79def2e0 Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Wed, 19 Apr 2023 00:26:39 -0600 Subject: [PATCH 0009/2290] Add E6400 flash unlock utility Adding it to lbmk for now as it is not yet in coreboot. If it is merged into coreboot we can just reference the one there. The original README will be incorporated into a new page on lbwww, so README.md just points to a placeholder URL that should match the new page. --- util/e6400-flash-unlock/COPYING | 19 +++ util/e6400-flash-unlock/Makefile | 28 +++ util/e6400-flash-unlock/README.md | 4 + util/e6400-flash-unlock/e6400_flash_unlock.c | 169 +++++++++++++++++++ 4 files changed, 220 insertions(+) create mode 100644 util/e6400-flash-unlock/COPYING create mode 100644 util/e6400-flash-unlock/Makefile create mode 100644 util/e6400-flash-unlock/README.md create mode 100644 util/e6400-flash-unlock/e6400_flash_unlock.c diff --git a/util/e6400-flash-unlock/COPYING b/util/e6400-flash-unlock/COPYING new file mode 100644 index 00000000..bf82341a --- /dev/null +++ b/util/e6400-flash-unlock/COPYING @@ -0,0 +1,19 @@ +Copyright (c) 2023 Nicholas Chin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/util/e6400-flash-unlock/Makefile b/util/e6400-flash-unlock/Makefile new file mode 100644 index 00000000..7d350932 --- /dev/null +++ b/util/e6400-flash-unlock/Makefile @@ -0,0 +1,28 @@ +# Copyright (c) 2023 Nicholas Chin +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +CC=cc +CFLAGS=-Wall -Wextra -Werror -O2 -pedantic + +all: e6400_flash_unlock.c + $(CC) $(CFLAGS) e6400_flash_unlock.c -o e6400_flash_unlock + +clean: + rm -f e6400_flash_unlock diff --git a/util/e6400-flash-unlock/README.md b/util/e6400-flash-unlock/README.md new file mode 100644 index 00000000..4100fde1 --- /dev/null +++ b/util/e6400-flash-unlock/README.md @@ -0,0 +1,4 @@ + +This documentation has become part of lbwww. See: + + diff --git a/util/e6400-flash-unlock/e6400_flash_unlock.c b/util/e6400-flash-unlock/e6400_flash_unlock.c new file mode 100644 index 00000000..88ba2e98 --- /dev/null +++ b/util/e6400-flash-unlock/e6400_flash_unlock.c @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2023 Nicholas Chin + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include + +enum +EC_FDO_CMD { + QUERY = 0, + SET_OVERRIDE = 2, + UNSET_OVERRIDE = 3 +}; + +int get_fdo_status(void); +uint8_t ec_fdo_command(enum EC_FDO_CMD arg); +void write_ec_reg(uint8_t index, uint8_t data); +void send_ec_cmd(uint8_t cmd); +void wait_ec(void); +int get_gbl_smi_en(void); +int set_gbl_smi_en(int enable); +/* uint8_t read_ec_reg(uint8_t index); */ + +#define EC_INDEX 0x910 +#define EC_DATA 0x911 +#define PMBASE 0x1000 +#define SMI_EN_REG (PMBASE + 0x30) + +/* Assume this is the same on all vendor BIOS versions */ +#define RCBA 0xfed18000 + +#define RCBA_MMIO_LEN 0x4000 +#define SPIBAR 0x3800 +#define HSFS_REG 0x04 + +volatile uint8_t *rcba_mmio; + +int +main(int argc, char *argv[]) +{ + int devmemfd; + (void)argc; + (void)argv; + + if ((ioperm(EC_INDEX, 2, 1) == -1) || (ioperm(SMI_EN_REG, 4, 1) == -1)) + err(errno, "Could not access IO ports"); + if ((devmemfd = open("/dev/mem", O_RDONLY)) == -1) + err(errno, "/dev/mem"); + + /* FDO pin-strap status bit is in RCBA mmio space */ + rcba_mmio = mmap(0, RCBA_MMIO_LEN, PROT_READ, MAP_SHARED, devmemfd, + RCBA); + if (rcba_mmio == MAP_FAILED) + err(errno, "Could not map RCBA"); + + if (get_fdo_status() == 1) { + ec_fdo_command(SET_OVERRIDE); + printf("Flash Descriptor Override enabled. Shut down now. The " + "EC will auto-boot the system and set the override.\n" + "Upon boot, re-run this utility to unlock flash.\n"); + } else if (get_gbl_smi_en()){ + set_gbl_smi_en(0); + printf("SMIs disabled. Internal flashing should work now.\n" + "After flashing, re-run this utility to enable SMIs.\n" + "(shutdown is buggy when SMIs are disabled)\n"); + } else { + set_gbl_smi_en(1); + printf("SMIs enabled, you can now shutdown the system.\n"); + } + return errno; +} + +int +get_fdo_status(void) +{ + return (*(uint16_t*)(rcba_mmio + SPIBAR + HSFS_REG) >> 13) & 1; +} + +/* + * arg: + * 0 = Query EC FDO status - TODO + * 2 = Enable FDO for next boot + * 3 = Disable FDO for next boot - TODO + */ +uint8_t +ec_fdo_command(enum EC_FDO_CMD arg) +{ + write_ec_reg(0x12, arg); + send_ec_cmd(0xb8); + return 1; +} + +void +write_ec_reg(uint8_t index, uint8_t data) +{ + outb(index, EC_INDEX); + outb(data, EC_DATA); +} + +void +send_ec_cmd(uint8_t cmd) +{ + outb(0, EC_INDEX); + outb(cmd, EC_DATA); + wait_ec(); +} + +void +wait_ec(void) +{ + uint8_t busy; + do { + outb(0, EC_INDEX); + busy = inb(EC_DATA); + } while (busy); +} + +int +get_gbl_smi_en(void) +{ + return inl(SMI_EN_REG) & 1; +} + +int +set_gbl_smi_en(int enable) +{ + uint32_t smi_en = inl(SMI_EN_REG); + if (enable) { + smi_en |= 1; + } else { + smi_en &= ~1; + } + outl(smi_en, SMI_EN_REG); + return (get_gbl_smi_en() == enable); +} + +/* +uint8_t +read_ec_reg(uint8_t index) +{ + outb(index, EC_INDEX); + return inb(EC_DATA); +} +*/ From 7bc4dc32ac3e430e50ace3a2876cf501f647b89f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 19 Apr 2023 17:27:14 +0100 Subject: [PATCH 0010/2290] dell/e6400: disable grub payload ps/2 internal keyboard faulty in grub target i386-coreboot, according to nic3-14159 normal i386-pc grub (bios grub) is fine, booted from seabios it is being investigated --- resources/coreboot/e6400_16mb/board.cfg | 4 ++-- resources/coreboot/e6400_4mb/board.cfg | 4 ++-- resources/coreboot/e6400_8mb/board.cfg | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/coreboot/e6400_16mb/board.cfg b/resources/coreboot/e6400_16mb/board.cfg index c8aed013..35a5f912 100644 --- a/resources/coreboot/e6400_16mb/board.cfg +++ b/resources/coreboot/e6400_16mb/board.cfg @@ -1,8 +1,8 @@ cbtree="default" romtype="16MiB ICH9 IFD NOR flash" arch="x86_64" -payload_grub="y" -payload_grub_withseabios="y" +payload_grub="n" +payload_grub_withseabios="n" payload_seabios="y" payload_memtest="y" grub_scan_disk="ahci" diff --git a/resources/coreboot/e6400_4mb/board.cfg b/resources/coreboot/e6400_4mb/board.cfg index 7332682d..98a9e634 100644 --- a/resources/coreboot/e6400_4mb/board.cfg +++ b/resources/coreboot/e6400_4mb/board.cfg @@ -1,8 +1,8 @@ cbtree="default" romtype="4MiB ICH9 IFD NOR flash" arch="x86_64" -payload_grub="y" -payload_grub_withseabios="y" +payload_grub="n" +payload_grub_withseabios="n" payload_seabios="y" payload_memtest="y" grub_scan_disk="ahci" diff --git a/resources/coreboot/e6400_8mb/board.cfg b/resources/coreboot/e6400_8mb/board.cfg index ee8ee02d..451f6d31 100644 --- a/resources/coreboot/e6400_8mb/board.cfg +++ b/resources/coreboot/e6400_8mb/board.cfg @@ -1,8 +1,8 @@ cbtree="default" romtype="8MiB ICH9 IFD NOR flash" arch="x86_64" -payload_grub="y" -payload_grub_withseabios="y" +payload_grub="n" +payload_grub_withseabios="n" payload_seabios="y" payload_memtest="y" grub_scan_disk="ahci" From eb32e4932738cb2901a5118c9e511c0191382388 Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Wed, 19 Apr 2023 18:37:39 +0100 Subject: [PATCH 0011/2290] util/e6400-flash-unlock: restore README when nicholas added this, he removed the README because it's going on libreboot.org instead. however, i merged a WIP version of his page for now because i want to get the e6400 going in libreboot sooner. so, temp-readding this README. will just link to this on codeberg or something, from the lb docs NOTE: I didn't write this README, hence author field set in the commit. Nicholas wrote it, but I (Leah Rowe) am just adding it. so, git author set to nicholas, not me --- util/e6400-flash-unlock/README.md | 71 ++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/util/e6400-flash-unlock/README.md b/util/e6400-flash-unlock/README.md index 4100fde1..410a807a 100644 --- a/util/e6400-flash-unlock/README.md +++ b/util/e6400-flash-unlock/README.md @@ -1,4 +1,71 @@ +# Dell Latitude E6400 Internal Flashing -This documentation has become part of lbwww. See: +This utility allows you to use flashrom's internal programmer to program the +entire BIOS flash chip from software while still running the original Dell +BIOS, which normally restricts software writes to the flash chip. - +## TL;DR +Run `make` to compile the utility, and then run `sudo ./e6400_flash_unlock` and +follow the directions it outputs. + +## How it works +There are several ways the firmware can protect itself from being overwritten. +One way is the Intel Flash Descriptor (IFD) permissions. On Intel systems, the +flash image is divided into several regions such as the IFD itself, Gigabit +Ethernet (GBE) non-volative memory, Management Engine (ME) firmware, Platform +Data (PD), and the BIOS. The IFD contains a section which specifies the +read/write permissions for each SPI controller (such as the host system) and +each region of the flash, which are enforced by the chipset. + +On the Latitude E6400, the host has read-only access to the IFD, no access to +the ME region, and read-write access to the PD, GBE, and BIOS regions. In order +for flashrom to write to the entire flash internally, the host needs full +permissions to all of these regions. Since the IFD is read only, we cannot +change these permissions unless we directly access the chip using an external +programmer, which defeats the purpose of internal flashing. + +However, Intel chipsets have a pin strap that allows the flash descriptor +permissions to be overridden depending on the value of the pin at power on, +granting RW permissions to all regions. On the ICH9M chipset on the E6400, this +pin is HDA\_DOCK\_EN/GPIO33, which will enable the override if it is sampled +low. This pin happens to be connected to a GPIO controlled by the Embedded +Controller (EC), a small microcontroller on the board which handles things like +the keyboard, touchpad, LEDs, and other system level tasks. Software can send a +certain command to the EC, which tells it to pull GPIO33 low on the next boot. + +Although we now have full access according to the IFD permissions, we still +cannot flash the whole chip, due to another protection the firmware uses. +Before software can update the BIOS, it must change the BIOS Write Enable +(BIOSWE) bit in the chipset from 0 to 1. However, if the BIOS Lock Enable (BLE) +bit is also set to 1, then changing the BIOSWE bit triggers a System Management +Interrupt (SMI). This causes the processor to enter System Management Mode +(SMM), a highly privileged x86 execution state which operates transparently to +the operating system. The code that SMM runs is provided by the BIOS, which +checks the BIOSWE bit and sets it back to 0 before returning control to the OS. +This feature is intended to only allow SMM code to update the system firmware. +As the switch to SMM suspends the execution of the OS, it appears to the OS +that the BIOSWE bit was never set to 1. Unfortunately, the BLE bit cannot be +set back to 0 once it is set to 1, so this functionality cannot be disabled +after it is first enabled by the BIOS. + +Older versions of the E6400 BIOS did not set the BLE bit, allowing flashrom to +flash the entire flash chip internally after only setting the descriptor +override. However, more recent versions do set it, so we may have hit a dead +end unless we force downgrade to an older version (though there is a more +convenient method, as we are about to see). + +What if there was a way to sidestep the BIOS Lock entirely? As it turns out, +there is, and it's called the Global SMI Enable (GBL\_SMI\_EN) bit. If it's set +to 1, then the chipset will generate SMIs, such as when we change BIOSWE with +BLE set. If it's 0, then no SMI will be generated, even with the BLE bit set. +On the E6400, GBL\_SMI\_EN is set to 1, and it can be changed back to 0, unlike +the BLE bit. But there still might be one bit in the way, the SMI\_LOCK bit, +which prevents modifications to GBL\_SMI\_EN when SMI\_LOCK is 1. Like the BLE +bit, it cannot be changed back to 0 once it set to 1. But we are in luck, as +the vendor E6400 BIOS leaves SMI\_LOCK unset at 0, allowing us to clear +GBL\_SMI\_EN and disable SMIs, bypassing the BIOS Lock protections. + +There are other possible protection mechanisms that the firmware can utilize, +such as Protected Range Register settings, which apply access permissions to +address ranges of the flash, similar to the IFD. However, the E6400 vendor +firmware does not utilize these, so they will not be discussed. From 1497ae045104145de677fd151da4de6e92be4e5a Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Wed, 19 Apr 2023 22:15:06 -0600 Subject: [PATCH 0012/2290] Fix GRUB handling of the E6400 keyboard This introduces a patch to grub which disables the coreboot specific handling, allowing PS/2 keyboards to be handled the same as i386-pc. However this alone breaks the keyboard in Linux, requiring coreboot to perform PS/2 initialization. I think GRUB may be restoring the original configuration of the PS/2 controller once it exits, and if coreboot doesn't initialize the controller then it's restored to the default state which Linux doesn't seem to like. I think the emulated keyboard interface provided by the EC on the E6400 behaves in a non-standard way that is incompatible with the old coreboot specific handling. --- .../e6400_16mb/config/libgfxinit_corebootfb | 15 ++++--- .../e6400_16mb/config/libgfxinit_txtmode | 15 ++++--- .../e6400_4mb/config/libgfxinit_corebootfb | 15 ++++--- .../e6400_4mb/config/libgfxinit_txtmode | 15 ++++--- .../e6400_8mb/config/libgfxinit_corebootfb | 15 ++++--- .../e6400_8mb/config/libgfxinit_txtmode | 15 ++++--- ...-Fix-PS-2-scancode-set-inconsistency.patch | 39 +++++++++++++++++++ 7 files changed, 99 insertions(+), 30 deletions(-) create mode 100644 resources/grub/patches/0005-Fix-PS-2-scancode-set-inconsistency.patch diff --git a/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb b/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb index fbf03e20..4649b8ea 100644 --- a/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb +++ b/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb @@ -145,6 +145,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -154,6 +155,7 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -198,8 +200,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_EHCI_BAR=0xfef00000 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -210,7 +212,6 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -239,10 +240,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y -CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -343,7 +344,6 @@ CONFIG_LINEAR_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -415,7 +415,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -441,6 +441,10 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y +CONFIG_PCR_BOOT_MODE=1 +CONFIG_PCR_HWID=1 +CONFIG_PCR_SRTM=2 +CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -460,6 +464,7 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y +CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode b/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode index 4ff5f2f9..c4afe094 100644 --- a/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode +++ b/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode @@ -143,6 +143,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -152,6 +153,7 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -196,8 +198,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_EHCI_BAR=0xfef00000 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -208,7 +210,6 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -237,10 +238,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y -CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -339,7 +340,6 @@ CONFIG_VGA_TEXT_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -411,7 +411,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -437,6 +437,10 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y +CONFIG_PCR_BOOT_MODE=1 +CONFIG_PCR_HWID=1 +CONFIG_PCR_SRTM=2 +CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -456,6 +460,7 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y +CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb b/resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb index bf8d7c77..6db3ce34 100644 --- a/resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb +++ b/resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb @@ -145,6 +145,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -154,6 +155,7 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -198,8 +200,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_EHCI_BAR=0xfef00000 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -210,7 +212,6 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -239,10 +240,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y -CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -343,7 +344,6 @@ CONFIG_LINEAR_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -415,7 +415,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -441,6 +441,10 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y +CONFIG_PCR_BOOT_MODE=1 +CONFIG_PCR_HWID=1 +CONFIG_PCR_SRTM=2 +CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -460,6 +464,7 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y +CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/coreboot/e6400_4mb/config/libgfxinit_txtmode b/resources/coreboot/e6400_4mb/config/libgfxinit_txtmode index 1c8a17ac..090887d1 100644 --- a/resources/coreboot/e6400_4mb/config/libgfxinit_txtmode +++ b/resources/coreboot/e6400_4mb/config/libgfxinit_txtmode @@ -143,6 +143,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -152,6 +153,7 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -196,8 +198,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_EHCI_BAR=0xfef00000 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -208,7 +210,6 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -237,10 +238,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y -CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -339,7 +340,6 @@ CONFIG_VGA_TEXT_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -411,7 +411,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -437,6 +437,10 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y +CONFIG_PCR_BOOT_MODE=1 +CONFIG_PCR_HWID=1 +CONFIG_PCR_SRTM=2 +CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -456,6 +460,7 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y +CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb b/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb index 7fe58c05..7a3b4b55 100644 --- a/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb +++ b/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb @@ -145,6 +145,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -154,6 +155,7 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -198,8 +200,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_EHCI_BAR=0xfef00000 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -210,7 +212,6 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -239,10 +240,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y -CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -343,7 +344,6 @@ CONFIG_LINEAR_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -415,7 +415,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -441,6 +441,10 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y +CONFIG_PCR_BOOT_MODE=1 +CONFIG_PCR_HWID=1 +CONFIG_PCR_SRTM=2 +CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -460,6 +464,7 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y +CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode b/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode index 758b5bc5..caf7467c 100644 --- a/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode +++ b/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode @@ -143,6 +143,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -152,6 +153,7 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -196,8 +198,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_EHCI_BAR=0xfef00000 +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -208,7 +210,6 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -237,10 +238,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y -CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -339,7 +340,6 @@ CONFIG_VGA_TEXT_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -411,7 +411,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -437,6 +437,10 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y +CONFIG_PCR_BOOT_MODE=1 +CONFIG_PCR_HWID=1 +CONFIG_PCR_SRTM=2 +CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -456,6 +460,7 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y +CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/grub/patches/0005-Fix-PS-2-scancode-set-inconsistency.patch b/resources/grub/patches/0005-Fix-PS-2-scancode-set-inconsistency.patch new file mode 100644 index 00000000..33605840 --- /dev/null +++ b/resources/grub/patches/0005-Fix-PS-2-scancode-set-inconsistency.patch @@ -0,0 +1,39 @@ +From 14090113f9e0fd67e46de33dad609c1406373ff0 Mon Sep 17 00:00:00 2001 +From: Nicholas Chin +Date: Wed, 19 Apr 2023 13:59:38 -0600 +Subject: [PATCH] Fix PS/2 scancode set inconsistency + +GRUB seems to be expecting set 2 scancodes when built as a coreboot +payload, but PS/2 controllers outputting using set 1 will lead to an +unusable keyboard. Disable the coreboot specific logic which hard codes +the translated set 2 keyboard configuration and let GRUB handle +keyboard init the same way as i386-pc, which did not have this issue. +--- + grub-core/term/at_keyboard.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c +index 597111077..bb251e222 100644 +--- a/grub-core/term/at_keyboard.c ++++ b/grub-core/term/at_keyboard.c +@@ -87,7 +87,7 @@ grub_keyboard_controller_write (grub_uint8_t c) + grub_outb (c, KEYBOARD_REG_DATA); + } + +-#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) ++#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) + #define USE_SCANCODE_SET 1 + #else + #define USE_SCANCODE_SET 0 +@@ -260,7 +260,7 @@ grub_keyboard_controller_init (void) + #if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) + grub_keyboard_controller_orig = 0; + grub_keyboard_orig_set = 2; +-#elif defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_COREBOOT) ++#elif defined (GRUB_MACHINE_QEMU) + /* *BSD relies on those settings. */ + grub_keyboard_controller_orig = KEYBOARD_AT_TRANSLATE; + grub_keyboard_orig_set = 2; +-- +2.40.0 + From fe2b72035fb58d2c0792daa62aa346da710f04a3 Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Wed, 19 Apr 2023 22:25:46 -0600 Subject: [PATCH 0013/2290] Revert "dell/e6400: disable grub payload" This reverts commit 7bc4dc32ac3e430e50ace3a2876cf501f647b89f. The E6400 keyboard should work in GRUB now so we can reenable it. --- resources/coreboot/e6400_16mb/board.cfg | 4 ++-- resources/coreboot/e6400_4mb/board.cfg | 4 ++-- resources/coreboot/e6400_8mb/board.cfg | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/coreboot/e6400_16mb/board.cfg b/resources/coreboot/e6400_16mb/board.cfg index 35a5f912..c8aed013 100644 --- a/resources/coreboot/e6400_16mb/board.cfg +++ b/resources/coreboot/e6400_16mb/board.cfg @@ -1,8 +1,8 @@ cbtree="default" romtype="16MiB ICH9 IFD NOR flash" arch="x86_64" -payload_grub="n" -payload_grub_withseabios="n" +payload_grub="y" +payload_grub_withseabios="y" payload_seabios="y" payload_memtest="y" grub_scan_disk="ahci" diff --git a/resources/coreboot/e6400_4mb/board.cfg b/resources/coreboot/e6400_4mb/board.cfg index 98a9e634..7332682d 100644 --- a/resources/coreboot/e6400_4mb/board.cfg +++ b/resources/coreboot/e6400_4mb/board.cfg @@ -1,8 +1,8 @@ cbtree="default" romtype="4MiB ICH9 IFD NOR flash" arch="x86_64" -payload_grub="n" -payload_grub_withseabios="n" +payload_grub="y" +payload_grub_withseabios="y" payload_seabios="y" payload_memtest="y" grub_scan_disk="ahci" diff --git a/resources/coreboot/e6400_8mb/board.cfg b/resources/coreboot/e6400_8mb/board.cfg index 451f6d31..ee8ee02d 100644 --- a/resources/coreboot/e6400_8mb/board.cfg +++ b/resources/coreboot/e6400_8mb/board.cfg @@ -1,8 +1,8 @@ cbtree="default" romtype="8MiB ICH9 IFD NOR flash" arch="x86_64" -payload_grub="n" -payload_grub_withseabios="n" +payload_grub="y" +payload_grub_withseabios="y" payload_seabios="y" payload_memtest="y" grub_scan_disk="ahci" From f4e8b7efaa085f51603487fc72d44c11995be70f Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Thu, 20 Apr 2023 12:13:54 -0600 Subject: [PATCH 0014/2290] Revert "Fix GRUB handling of the E6400 keyboard" This reverts commit 1497ae045104145de677fd151da4de6e92be4e5a. The blanket GRUB patch seems to break PS/2 keyboard handling across other platforms, so revert it. --- .../e6400_16mb/config/libgfxinit_corebootfb | 15 +++---- .../e6400_16mb/config/libgfxinit_txtmode | 15 +++---- .../e6400_4mb/config/libgfxinit_corebootfb | 15 +++---- .../e6400_4mb/config/libgfxinit_txtmode | 15 +++---- .../e6400_8mb/config/libgfxinit_corebootfb | 15 +++---- .../e6400_8mb/config/libgfxinit_txtmode | 15 +++---- ...-Fix-PS-2-scancode-set-inconsistency.patch | 39 ------------------- 7 files changed, 30 insertions(+), 99 deletions(-) delete mode 100644 resources/grub/patches/0005-Fix-PS-2-scancode-set-inconsistency.patch diff --git a/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb b/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb index 4649b8ea..fbf03e20 100644 --- a/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb +++ b/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb @@ -145,7 +145,6 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -155,7 +154,6 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -200,8 +198,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_EHCI_BAR=0xfef00000 CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -212,6 +210,7 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -240,10 +239,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y -CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -344,6 +343,7 @@ CONFIG_LINEAR_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -415,7 +415,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -CONFIG_DRIVERS_PS2_KEYBOARD=y +# CONFIG_DRIVERS_PS2_KEYBOARD is not set CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -441,10 +441,6 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y -CONFIG_PCR_BOOT_MODE=1 -CONFIG_PCR_HWID=1 -CONFIG_PCR_SRTM=2 -CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -464,7 +460,6 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y -CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode b/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode index c4afe094..4ff5f2f9 100644 --- a/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode +++ b/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode @@ -143,7 +143,6 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -153,7 +152,6 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -198,8 +196,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_EHCI_BAR=0xfef00000 CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -210,6 +208,7 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -238,10 +237,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y -CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -340,6 +339,7 @@ CONFIG_VGA_TEXT_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -411,7 +411,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -CONFIG_DRIVERS_PS2_KEYBOARD=y +# CONFIG_DRIVERS_PS2_KEYBOARD is not set CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -437,10 +437,6 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y -CONFIG_PCR_BOOT_MODE=1 -CONFIG_PCR_HWID=1 -CONFIG_PCR_SRTM=2 -CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -460,7 +456,6 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y -CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb b/resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb index 6db3ce34..bf8d7c77 100644 --- a/resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb +++ b/resources/coreboot/e6400_4mb/config/libgfxinit_corebootfb @@ -145,7 +145,6 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -155,7 +154,6 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -200,8 +198,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_EHCI_BAR=0xfef00000 CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -212,6 +210,7 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -240,10 +239,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y -CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -344,6 +343,7 @@ CONFIG_LINEAR_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -415,7 +415,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -CONFIG_DRIVERS_PS2_KEYBOARD=y +# CONFIG_DRIVERS_PS2_KEYBOARD is not set CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -441,10 +441,6 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y -CONFIG_PCR_BOOT_MODE=1 -CONFIG_PCR_HWID=1 -CONFIG_PCR_SRTM=2 -CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -464,7 +460,6 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y -CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/coreboot/e6400_4mb/config/libgfxinit_txtmode b/resources/coreboot/e6400_4mb/config/libgfxinit_txtmode index 090887d1..1c8a17ac 100644 --- a/resources/coreboot/e6400_4mb/config/libgfxinit_txtmode +++ b/resources/coreboot/e6400_4mb/config/libgfxinit_txtmode @@ -143,7 +143,6 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -153,7 +152,6 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -198,8 +196,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_EHCI_BAR=0xfef00000 CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -210,6 +208,7 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -238,10 +237,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y -CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -340,6 +339,7 @@ CONFIG_VGA_TEXT_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -411,7 +411,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -CONFIG_DRIVERS_PS2_KEYBOARD=y +# CONFIG_DRIVERS_PS2_KEYBOARD is not set CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -437,10 +437,6 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y -CONFIG_PCR_BOOT_MODE=1 -CONFIG_PCR_HWID=1 -CONFIG_PCR_SRTM=2 -CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -460,7 +456,6 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y -CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb b/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb index 7a3b4b55..7fe58c05 100644 --- a/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb +++ b/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb @@ -145,7 +145,6 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -155,7 +154,6 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -200,8 +198,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_EHCI_BAR=0xfef00000 CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -212,6 +210,7 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -240,10 +239,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y -CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -344,6 +343,7 @@ CONFIG_LINEAR_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -415,7 +415,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -CONFIG_DRIVERS_PS2_KEYBOARD=y +# CONFIG_DRIVERS_PS2_KEYBOARD is not set CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -441,10 +441,6 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y -CONFIG_PCR_BOOT_MODE=1 -CONFIG_PCR_HWID=1 -CONFIG_PCR_SRTM=2 -CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -464,7 +460,6 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y -CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode b/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode index caf7467c..758b5bc5 100644 --- a/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode +++ b/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode @@ -143,7 +143,6 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_DRIVERS_INTEL_WIFI is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 -CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" # CONFIG_HAVE_IFD_BIN is not set CONFIG_PCIEXP_HOTPLUG_BUSES=8 @@ -153,7 +152,6 @@ CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" # CONFIG_DEBUG_SMI is not set -# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_L1_SUB_STATE is not set # CONFIG_PCIEXP_CLK_PM is not set # CONFIG_DRIVERS_UART_8250IO is not set @@ -198,8 +196,8 @@ CONFIG_ROMSTAGE_ADDR=0x2000000 CONFIG_VERSTAGE_ADDR=0x2000000 CONFIG_SMM_RESERVED_SIZE=0x100000 CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_EHCI_BAR=0xfef00000 CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 CONFIG_STACK_SIZE=0x2000 CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 @@ -210,6 +208,7 @@ CONFIG_BOOTBLOCK_IN_CBFS=y CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +# CONFIG_PCIEXP_ASPM is not set # CONFIG_PCIEXP_COMMON_CLOCK is not set CONFIG_FIXED_SMBUS_IO_BASE=0x400 CONFIG_HPET_MIN_TICKS=0x80 @@ -238,10 +237,10 @@ CONFIG_UDELAY_TSC=y CONFIG_TSC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_SETUP_XIP_CACHE=y +CONFIG_LOGICAL_CPUS=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_SMM_TSEG=y CONFIG_SMM_LAPIC_REMAP_MITIGATION=y -CONFIG_SMM_PCI_RESOURCE_STORE_NUM_SLOTS=8 CONFIG_AP_STACK_SIZE=0x800 CONFIG_SMP=y CONFIG_MMX=y @@ -340,6 +339,7 @@ CONFIG_VGA_TEXT_FRAMEBUFFER=y CONFIG_PCI=y CONFIG_ECAM_MMCONF_SUPPORT=y CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_AZALIA_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_ECAM_MMCONF_LENGTH=0x04000000 @@ -411,7 +411,7 @@ CONFIG_GFX_GMA_PCH="No_PCH" CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" # CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -CONFIG_DRIVERS_PS2_KEYBOARD=y +# CONFIG_DRIVERS_PS2_KEYBOARD is not set CONFIG_DRIVERS_MC146818=y # CONFIG_USE_PC_CMOS_ALTCENTURY is not set CONFIG_VGA=y @@ -437,10 +437,6 @@ CONFIG_VGA=y # Trusted Platform Module # CONFIG_NO_TPM=y -CONFIG_PCR_BOOT_MODE=1 -CONFIG_PCR_HWID=1 -CONFIG_PCR_SRTM=2 -CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module # @@ -460,7 +456,6 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y CONFIG_ACPI_HAVE_PCAT_8259=y CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y CONFIG_ACPI_SOC_NVS=y -CONFIG_ACPI_COMMON_MADT_LAPIC=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y diff --git a/resources/grub/patches/0005-Fix-PS-2-scancode-set-inconsistency.patch b/resources/grub/patches/0005-Fix-PS-2-scancode-set-inconsistency.patch deleted file mode 100644 index 33605840..00000000 --- a/resources/grub/patches/0005-Fix-PS-2-scancode-set-inconsistency.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 14090113f9e0fd67e46de33dad609c1406373ff0 Mon Sep 17 00:00:00 2001 -From: Nicholas Chin -Date: Wed, 19 Apr 2023 13:59:38 -0600 -Subject: [PATCH] Fix PS/2 scancode set inconsistency - -GRUB seems to be expecting set 2 scancodes when built as a coreboot -payload, but PS/2 controllers outputting using set 1 will lead to an -unusable keyboard. Disable the coreboot specific logic which hard codes -the translated set 2 keyboard configuration and let GRUB handle -keyboard init the same way as i386-pc, which did not have this issue. ---- - grub-core/term/at_keyboard.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c -index 597111077..bb251e222 100644 ---- a/grub-core/term/at_keyboard.c -+++ b/grub-core/term/at_keyboard.c -@@ -87,7 +87,7 @@ grub_keyboard_controller_write (grub_uint8_t c) - grub_outb (c, KEYBOARD_REG_DATA); - } - --#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) -+#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) - #define USE_SCANCODE_SET 1 - #else - #define USE_SCANCODE_SET 0 -@@ -260,7 +260,7 @@ grub_keyboard_controller_init (void) - #if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) - grub_keyboard_controller_orig = 0; - grub_keyboard_orig_set = 2; --#elif defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_COREBOOT) -+#elif defined (GRUB_MACHINE_QEMU) - /* *BSD relies on those settings. */ - grub_keyboard_controller_orig = KEYBOARD_AT_TRANSLATE; - grub_keyboard_orig_set = 2; --- -2.40.0 - From 967992cc965f3b9d23250bba81d444c6abc04bb7 Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Thu, 20 Apr 2023 12:15:18 -0600 Subject: [PATCH 0015/2290] Re-disable GRUB payload for E6400 This reverts commit fe2b72035fb58d2c0792daa62aa346da710f04a3. The GRUB patch to fix the E6400 broke other systems and has been reverted. As a result, GRUB needs to be disabled again on the E6400 until a better fix has been created. --- resources/coreboot/e6400_16mb/board.cfg | 4 ++-- resources/coreboot/e6400_4mb/board.cfg | 4 ++-- resources/coreboot/e6400_8mb/board.cfg | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/coreboot/e6400_16mb/board.cfg b/resources/coreboot/e6400_16mb/board.cfg index c8aed013..35a5f912 100644 --- a/resources/coreboot/e6400_16mb/board.cfg +++ b/resources/coreboot/e6400_16mb/board.cfg @@ -1,8 +1,8 @@ cbtree="default" romtype="16MiB ICH9 IFD NOR flash" arch="x86_64" -payload_grub="y" -payload_grub_withseabios="y" +payload_grub="n" +payload_grub_withseabios="n" payload_seabios="y" payload_memtest="y" grub_scan_disk="ahci" diff --git a/resources/coreboot/e6400_4mb/board.cfg b/resources/coreboot/e6400_4mb/board.cfg index 7332682d..98a9e634 100644 --- a/resources/coreboot/e6400_4mb/board.cfg +++ b/resources/coreboot/e6400_4mb/board.cfg @@ -1,8 +1,8 @@ cbtree="default" romtype="4MiB ICH9 IFD NOR flash" arch="x86_64" -payload_grub="y" -payload_grub_withseabios="y" +payload_grub="n" +payload_grub_withseabios="n" payload_seabios="y" payload_memtest="y" grub_scan_disk="ahci" diff --git a/resources/coreboot/e6400_8mb/board.cfg b/resources/coreboot/e6400_8mb/board.cfg index ee8ee02d..451f6d31 100644 --- a/resources/coreboot/e6400_8mb/board.cfg +++ b/resources/coreboot/e6400_8mb/board.cfg @@ -1,8 +1,8 @@ cbtree="default" romtype="8MiB ICH9 IFD NOR flash" arch="x86_64" -payload_grub="y" -payload_grub_withseabios="y" +payload_grub="n" +payload_grub_withseabios="n" payload_seabios="y" payload_memtest="y" grub_scan_disk="ahci" From 560642c585b991a24d626227ff9a6956f74477df Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 20 Apr 2023 22:24:11 +0100 Subject: [PATCH 0016/2290] chmod +x on blobutil/download script i downloaded this file from git manually at some point, when rebasing changes (i think it was the ec ones) the logic in the file is correct but i forgot to mark it executable without this commit, lbmk fails utterly, on all the newer intel boards --- resources/scripts/blobs/download | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 resources/scripts/blobs/download diff --git a/resources/scripts/blobs/download b/resources/scripts/blobs/download old mode 100644 new mode 100755 From 5657c7d05b0b15dd01866999c9c868f8725b19a0 Mon Sep 17 00:00:00 2001 From: Riku Viitanen Date: Fri, 21 Apr 2023 22:04:18 +0300 Subject: [PATCH 0017/2290] Add HP EliteBook 2560p --- blobs/hp_sandybridge/gbe.bin | Bin 0 -> 8192 bytes blobs/hp_sandybridge/ifd.bin | Bin 0 -> 4096 bytes resources/blobs/sources | 10 + resources/coreboot/hp2560p_8mb/board.cfg | 8 + .../hp2560p_8mb/config/libgfxinit_corebootfb | 627 ++++++++++++++++++ .../hp2560p_8mb/config/libgfxinit_txtmode | 624 +++++++++++++++++ .../patches/0005-at-keyboard-timeout.patch | 36 + 7 files changed, 1305 insertions(+) create mode 100644 blobs/hp_sandybridge/gbe.bin create mode 100644 blobs/hp_sandybridge/ifd.bin create mode 100644 resources/coreboot/hp2560p_8mb/board.cfg create mode 100644 resources/coreboot/hp2560p_8mb/config/libgfxinit_corebootfb create mode 100644 resources/coreboot/hp2560p_8mb/config/libgfxinit_txtmode create mode 100644 resources/grub/patches/0005-at-keyboard-timeout.patch diff --git a/blobs/hp_sandybridge/gbe.bin b/blobs/hp_sandybridge/gbe.bin new file mode 100644 index 0000000000000000000000000000000000000000..e0179de2e8a4facc8d16e69c6511a707e19ca2db GIT binary patch literal 8192 zcmeH~KTE?v7{;HwC=F6-Bu1o5aTB_vrD`b(fi4ckLBD{w`7KTe&TdYQj{cd&&DBNF z&vQOk3eslkVuw6$;C+raPjb0m;JCLO-0z(}Aol(nEd%EnA4zxTII$TRwh{9B<9?1d z2hFQi(H+OBvDwp`%_8P-(d+IU&Tix2o<0%=@E*n%leAHU_s$25_vU75tE4}t9pu=y zJsb{mY@&xF>IQX4O{gPkM17|2QeS5JI@5O9$K-s(8Tu$LJ6QYLf}`Ryfr~Tz9HhM0 z;g{Akt}n{SRQRi~NFX{{tN`!LYE2apSe8INcOI=;1VlgtL_h>YKm1mU zh%>M%uqqrjop>^MMnER0Gn4X A_W%F@ literal 0 HcmV?d00001 diff --git a/resources/blobs/sources b/resources/blobs/sources index f3a9dcc9..97cf5128 100644 --- a/resources/blobs/sources +++ b/resources/blobs/sources @@ -29,3 +29,13 @@ DL_url_bkup https://web.archive.org/web/20220708171920/https://ftp.ext.hp.com/pub/softpaq/sp96001-96500/sp96026.exe } +{hp2560p}{ + DL_hash fa0f96c8f36646492fb8c57ad3296bf5f647d9c5 + DL_url https://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/83rf46ww.exe + DL_url_bkup https://web.archive.org/web/20220202201637/https://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/83rf46ww.exe + + EC_hash c1b1fb0a525cf90459bf024f407e302314bd981b + EC_url https://ftp.hp.com/pub/softpaq/sp85501-86000/sp85526.exe + EC_url_bkup https://web.archive.org/web/20230416125725/https://ftp.hp.com/pub/softpaq/sp85501-86000/sp85526.exe +} + diff --git a/resources/coreboot/hp2560p_8mb/board.cfg b/resources/coreboot/hp2560p_8mb/board.cfg new file mode 100644 index 00000000..e7626cf1 --- /dev/null +++ b/resources/coreboot/hp2560p_8mb/board.cfg @@ -0,0 +1,8 @@ +cbtree="default" +romtype="normal" +arch="x86_64" +payload_grub="y" +payload_grub_withseabios="y" +payload_seabios="y" +payload_memtest="y" +grub_scan_disk="ahci" diff --git a/resources/coreboot/hp2560p_8mb/config/libgfxinit_corebootfb b/resources/coreboot/hp2560p_8mb/config/libgfxinit_corebootfb new file mode 100644 index 00000000..cd582e32 --- /dev/null +++ b/resources/coreboot/hp2560p_8mb/config/libgfxinit_corebootfb @@ -0,0 +1,627 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_COREBOOT_BUILD=y +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +CONFIG_ARCH_SUPPORTS_CLANG=y +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_IWYU is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_UTIL_GENPARSER is not set +# CONFIG_OPTION_BACKEND_NONE is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_COLLECT_TIMESTAMPS=y +# CONFIG_TIMESTAMPS_ON_CONSOLE is not set +CONFIG_USE_BLOBS=y +# CONFIG_USE_AMD_BLOBS is not set +# CONFIG_USE_QC_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_UBSAN is not set +CONFIG_HAVE_ASAN_IN_RAMSTAGE=y +# CONFIG_ASAN is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_TSEG_STAGE_CACHE=y +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) +# end of General setup + +# +# Mainboard +# + +# +# Important: Run 'make distclean' before switching boards +# +# CONFIG_VENDOR_51NB is not set +# CONFIG_VENDOR_ACER is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_CAVIUM is not set +# CONFIG_VENDOR_CLEVO is not set +# CONFIG_VENDOR_COMPULAB is not set +# CONFIG_VENDOR_DELL is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_EXAMPLE is not set +# CONFIG_VENDOR_FACEBOOK is not set +# CONFIG_VENDOR_FOXCONN is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GOOGLE is not set +CONFIG_VENDOR_HP=y +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LIBRETREND is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_OCP is not set +# CONFIG_VENDOR_OPENCELLULAR is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PINE64 is not set +# CONFIG_VENDOR_PORTWELL is not set +# CONFIG_VENDOR_PRODRIVE is not set +# CONFIG_VENDOR_PROTECTLI is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RAZER is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SAPPHIRE is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SIFIVE is not set +# CONFIG_VENDOR_STARLABS is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_SYSTEM76 is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_UP is not set +CONFIG_MAINBOARD_PART_NUMBER="EliteBook 2560p" +CONFIG_MAINBOARD_VERSION="1.0" +CONFIG_MAINBOARD_DIR="hp/snb_ivb_laptops" +CONFIG_VGA_BIOS_ID="8086,0116" +CONFIG_DIMM_MAX=4 +CONFIG_DIMM_SPD_SIZE=256 +CONFIG_FMDFILE="" +# CONFIG_NO_POST is not set +CONFIG_MAINBOARD_VENDOR="HP" +CONFIG_CBFS_SIZE=0x7E9000 +CONFIG_LINEAR_FRAMEBUFFER_MAX_HEIGHT=1600 +CONFIG_LINEAR_FRAMEBUFFER_MAX_WIDTH=2560 +CONFIG_MAX_CPUS=8 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +CONFIG_POST_DEVICE=y +CONFIG_POST_IO=y +CONFIG_DEVICETREE="devicetree.cb" +# CONFIG_VBOOT is not set +CONFIG_VARIANT_DIR="2560p" +CONFIG_OVERRIDE_DEVICETREE="variants/$(CONFIG_VARIANT_DIR)/overridetree.cb" +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="HP" +CONFIG_DRAM_RESET_GATE_GPIO=60 +CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/data.vbt" +CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" +CONFIG_USBDEBUG_HCD_INDEX=1 +CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 +# CONFIG_CONSOLE_POST is not set +CONFIG_TPM_PIRQ=0x0 +CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" +CONFIG_DCACHE_RAM_BASE=0xfefe0000 +CONFIG_DCACHE_RAM_SIZE=0x20000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 +CONFIG_DCACHE_BSP_STACK_SIZE=0x10000 +CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_ECAM_MMCONF_BUS_NUMBER=64 +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 +CONFIG_HAVE_INTEL_FIRMWARE=y +CONFIG_MRC_SETTINGS_CACHE_SIZE=0x10000 +CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_DRIVERS_INTEL_WIFI is not set +CONFIG_IFD_BIN_PATH="../../blobs/hp_sandybridge/ifd.bin" +CONFIG_ME_BIN_PATH="../../blobs/hp_sandybridge/me.bin" +CONFIG_GBE_BIN_PATH="../../blobs/hp_sandybridge/gbe.bin" +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_BOARD_HP_280_G2 is not set +# CONFIG_BOARD_HP_COMPAQ_8200_ELITE_SFF_PC is not set +# CONFIG_BOARD_HP_FOLIO_9480M is not set +CONFIG_BOARD_HP_2560P=y +# CONFIG_BOARD_HP_2570P is not set +# CONFIG_BOARD_HP_2760P is not set +# CONFIG_BOARD_HP_8460P is not set +# CONFIG_BOARD_HP_8470P is not set +# CONFIG_BOARD_HP_8770W is not set +# CONFIG_BOARD_HP_FOLIO_9470M is not set +# CONFIG_BOARD_HP_PROBOOK_6360B is not set +# CONFIG_BOARD_HP_REVOLVE_810_G1 is not set +# CONFIG_BOARD_HP_Z220_CMT_WORKSTATION is not set +# CONFIG_BOARD_HP_Z220_SFF_WORKSTATION is not set +CONFIG_EC_HP_KBC1126_ECFW_IN_CBFS=y +CONFIG_EC_HP_KBC1126_GPE=0x16 +CONFIG_BOARD_HP_SNB_IVB_LAPTOPS_COMMON=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="EliteBook 2560p" +CONFIG_HAVE_IFD_BIN=y +CONFIG_PCIEXP_HOTPLUG_BUSES=8 +CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 +CONFIG_PS2K_EISAID="PNP0303" +CONFIG_PS2M_EISAID="PNP0F13" +CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" +# CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_DRIVERS_UART_8250IO is not set +CONFIG_HEAP_SIZE=0x4000 +CONFIG_EC_GPE_SCI=0x50 +# CONFIG_TPM_MEASURED_BOOT is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set +CONFIG_COREBOOT_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=8192 +CONFIG_ROM_SIZE=0x00800000 +CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y +CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y +CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y +# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set +# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set +CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 +# end of Mainboard + +CONFIG_SYSTEM_TYPE_LAPTOP=y + +# +# Chipset +# + +# +# SoC +# +CONFIG_CHIPSET_DEVICETREE="northbridge/intel/sandybridge/chipset.cb" +CONFIG_CBFS_MCACHE_SIZE=0x4000 +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_SMM_TSEG_SIZE=0x800000 +CONFIG_SMM_RESERVED_SIZE=0x100000 +CONFIG_SMM_MODULE_STACK_SIZE=0x400 +CONFIG_SERIRQ_CONTINUOUS_MODE=y +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_STACK_SIZE=0x2000 +CONFIG_CPU_SPECIFIC_OPTIONS=y +CONFIG_IED_REGION_SIZE=0x400000 +CONFIG_VBT_DATA_SIZE_KB=8 +CONFIG_INTEL_GMA_BCLV_OFFSET=0x48254 +CONFIG_INTEL_GMA_BCLV_WIDTH=16 +CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256 +CONFIG_INTEL_GMA_BCLM_WIDTH=16 +CONFIG_BOOTBLOCK_IN_CBFS=y +CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x0 +CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed10000 +CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 +CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +CONFIG_PCIEXP_ASPM=y +CONFIG_PCIEXP_COMMON_CLOCK=y +CONFIG_FIXED_SMBUS_IO_BASE=0x400 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_CBFS_CACHE_ALIGN=8 + +# +# CPU +# +CONFIG_CPU_INTEL_MODEL_206AX=y +CONFIG_CPU_INTEL_COMMON=y +CONFIG_ENABLE_VMX=y +CONFIG_SET_IA32_FC_LOCK_BIT=y +CONFIG_SET_MSR_AESNI_LOCK_BIT=y +CONFIG_CPU_INTEL_COMMON_TIMEBASE=y +CONFIG_CPU_INTEL_COMMON_SMM=y +CONFIG_MICROCODE_UPDATE_PRE_RAM=y +CONFIG_PARALLEL_MP=y +CONFIG_XAPIC_ONLY=y +# CONFIG_X2APIC_ONLY is not set +# CONFIG_X2APIC_RUNTIME is not set +# CONFIG_X2APIC_LATE_WORKAROUND is not set +CONFIG_UDELAY_TSC=y +CONFIG_TSC_MONOTONIC_TIMER=y +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_LOGICAL_CPUS=y +CONFIG_HAVE_SMI_HANDLER=y +CONFIG_SMM_TSEG=y +CONFIG_AP_STACK_SIZE=0x800 +CONFIG_SMP=y +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SSE2=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y +CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +# CONFIG_CPU_MICROCODE_CBFS_NONE is not set + +# +# Northbridge +# +CONFIG_USE_NATIVE_RAMINIT=y +CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y +# CONFIG_NATIVE_RAMINIT_IGNORE_MAX_MEM_FUSES is not set +# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_MAX_DIMMS is not set +# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_REQUESTED_VOLTAGE is not set +# CONFIG_RAMINIT_ALWAYS_ALLOW_DLL_OFF is not set +CONFIG_RAMINIT_ENABLE_ECC=y + +# +# Southbridge +# +CONFIG_SOUTHBRIDGE_INTEL_BD82X6X=y +CONFIG_SOUTH_BRIDGE_OPTIONS=y +CONFIG_HIDE_MEI_ON_ERROR=y +CONFIG_PCIEXP_HOTPLUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_REQUIRED=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_ME=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y +CONFIG_HAVE_INTEL_CHIPSET_LOCKDOWN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_ACPI_MADT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_FINALIZE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y +# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set +CONFIG_INTEL_CHIPSET_LOCKDOWN=y +CONFIG_TCO_SPACE_NOT_YET_SPLIT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y +CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 +CONFIG_RCBA_LENGTH=0x4000 + +# +# Super I/O +# + +# +# Embedded Controllers +# +CONFIG_EC_HP_KBC1126=y + +# +# Please select the following otherwise your laptop cannot be powered on. +# +CONFIG_KBC1126_FIRMWARE=y +CONFIG_ECFW_PTR_ADDR=0xffffff00 +CONFIG_ECFW_PTR_SIZE=8 +CONFIG_KBC1126_FW1="../../ec/hp2560p/ec.bin.fw1" +CONFIG_KBC1126_FW1_OFFSET=0xfffe8000 +CONFIG_KBC1126_FW2="../../ec/hp2560p/ec.bin.fw2" +CONFIG_KBC1126_FW2_OFFSET=0xfffd0000 + +# +# Intel Firmware +# +CONFIG_HAVE_ME_BIN=y +# CONFIG_STITCH_ME_BIN is not set +# CONFIG_CHECK_ME is not set +# CONFIG_ME_REGION_ALLOW_CPU_READ_ACCESS is not set +# CONFIG_USE_ME_CLEANER is not set +CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y +CONFIG_HAVE_GBE_BIN=y +# CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION is not set +# CONFIG_LOCK_MANAGEMENT_ENGINE is not set +CONFIG_UNLOCK_FLASH_REGIONS=y +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_POSTCAR_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +CONFIG_ARCH_ALL_STAGES_X86_32=y +CONFIG_HAVE_EXP_X86_64_SUPPORT=y +# CONFIG_USE_EXP_X86_64_SUPPORT is not set +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_POSTCAR_STAGE=y +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_COLLECT_TIMESTAMPS_TSC=y +CONFIG_HAVE_CF9_RESET=y +CONFIG_DEBUG_HW_BREAKPOINTS=y +CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y +# end of Chipset + +# +# Devices +# +CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y +CONFIG_HAVE_LINEAR_FRAMEBUFFER=y +CONFIG_MAINBOARD_HAS_LIBGFXINIT=y +CONFIG_MAINBOARD_USE_LIBGFXINIT=y +# CONFIG_VGA_ROM_RUN is not set +# CONFIG_NO_GFX_INIT is not set +CONFIG_NO_EARLY_GFX_INIT=y + +# +# Display +# +# CONFIG_VGA_TEXT_FRAMEBUFFER is not set +CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y +CONFIG_LINEAR_FRAMEBUFFER=y +# CONFIG_BOOTSPLASH is not set +# end of Display + +CONFIG_PCI=y +CONFIG_ECAM_MMCONF_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +CONFIG_AZALIA_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_ECAM_MMCONF_LENGTH=0x04000000 +CONFIG_PCI_ALLOW_BUS_MASTER=y +CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y +CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y +# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set +# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y +# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set +CONFIG_PCIEXP_HOTPLUG_IO=0x2000 +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +CONFIG_INTEL_GMA_HAVE_VBT=y +CONFIG_INTEL_GMA_ADD_VBT=y +# CONFIG_SOFTWARE_I2C is not set +CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 +# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set +CONFIG_NO_DDR5=y +CONFIG_NO_LPDDR4=y +CONFIG_NO_DDR4=y +CONFIG_NO_DDR2=y +CONFIG_USE_DDR3=y +# end of Devices + +# +# Generic Drivers +# +CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 +# CONFIG_ELOG is not set +CONFIG_CACHE_MRC_SETTINGS=y +# CONFIG_MRC_SETTINGS_PROTECT is not set +# CONFIG_SMMSTORE is not set +CONFIG_SPI_FLASH=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +CONFIG_TPM_INIT_RAMSTAGE=y +# CONFIG_TPM_PPI is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_USBDEBUG is not set +# CONFIG_VPD is not set +# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set +# CONFIG_DRIVERS_I2C_MAX98396 is not set +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +CONFIG_GFX_GMA=y +CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y +CONFIG_INTEL_GMA_OPREGION_2_0=y +CONFIG_GFX_GMA_DYN_CPU=y +CONFIG_GFX_GMA_GENERATION="Ironlake" +CONFIG_GFX_GMA_PCH="Cougar_Point" +CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" +CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_USE_PC_CMOS_ALTCENTURY is not set +CONFIG_MEMORY_MAPPED_TPM=y +CONFIG_TPM_TIS_BASE_ADDRESS=0xfed40000 +# CONFIG_DRIVERS_SIL_3114 is not set +# end of Generic Drivers + +# +# Security +# + +# +# CBFS verification +# +# CONFIG_CBFS_VERIFICATION is not set +# end of CBFS verification + +# +# Verified Boot (vboot) +# +# end of Verified Boot (vboot) + +# +# Trusted Platform Module +# +# CONFIG_NO_TPM is not set +CONFIG_TPM1=y +CONFIG_TPM=y +CONFIG_MAINBOARD_HAS_TPM1=y +# CONFIG_TPM_DEACTIVATE is not set +# CONFIG_DEBUG_TPM is not set +# CONFIG_TPM_RDRESP_NEED_DELAY is not set +# end of Trusted Platform Module + +# +# Memory initialization +# +CONFIG_PLATFORM_HAS_DRAM_CLEAR=y +CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y +# end of Memory initialization + +# CONFIG_INTEL_TXT is not set +# CONFIG_STM is not set +CONFIG_BOOTMEDIA_LOCK_NONE=y +# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set +# CONFIG_BOOTMEDIA_LOCK_CHIP is not set +# CONFIG_BOOTMEDIA_SMM_BWP is not set +# end of Security + +CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +CONFIG_ACPI_SOC_NVS=y +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_BOOT_DEVICE_SPI_FLASH=y +CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y +CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y +CONFIG_RTC=y + +# +# Console +# +CONFIG_BOOTBLOCK_CONSOLE=y +CONFIG_POSTCAR_CONSOLE=y +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +# CONFIG_CONSOLE_SPI_FLASH is not set +# CONFIG_CONSOLE_I2C_SMBUS is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=7 +CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y +CONFIG_CONSOLE_USE_ANSI_ESCAPES=y +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +CONFIG_HWBASE_DEBUG_CB=y +# end of Console + +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_MONOTONIC_TIMER=y +CONFIG_HAVE_OPTION_TABLE=y +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y + +# +# System tables +# +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +# end of System tables + +# +# Payload +# +CONFIG_PAYLOAD_NONE=y +# end of Payload + +# +# Debugging +# + +# +# CPU Debug Settings +# +# CONFIG_DISPLAY_MTRRS is not set + +# +# BLOB Debug Settings +# + +# +# General Debug Settings +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_CONSOLE_INIT is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_DEBUG_ADA_CODE is not set +CONFIG_HAVE_EM100_SUPPORT=y +# CONFIG_EM100 is not set +# end of Debugging + +CONFIG_RAMSTAGE_ADA=y +CONFIG_RAMSTAGE_LIBHWBASE=y +CONFIG_HWBASE_DYNAMIC_MMIO=y +CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 +CONFIG_HWBASE_DIRECT_PCIDEV=y +CONFIG_DECOMPRESS_OFAST=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_RELOCATABLE_MODULES=y +CONFIG_HAVE_BOOTBLOCK=y +CONFIG_HAVE_ROMSTAGE=y +CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/coreboot/hp2560p_8mb/config/libgfxinit_txtmode b/resources/coreboot/hp2560p_8mb/config/libgfxinit_txtmode new file mode 100644 index 00000000..a1f7a4f1 --- /dev/null +++ b/resources/coreboot/hp2560p_8mb/config/libgfxinit_txtmode @@ -0,0 +1,624 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_COREBOOT_BUILD=y +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +CONFIG_ARCH_SUPPORTS_CLANG=y +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_IWYU is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_UTIL_GENPARSER is not set +# CONFIG_OPTION_BACKEND_NONE is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_COLLECT_TIMESTAMPS=y +# CONFIG_TIMESTAMPS_ON_CONSOLE is not set +CONFIG_USE_BLOBS=y +# CONFIG_USE_AMD_BLOBS is not set +# CONFIG_USE_QC_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_UBSAN is not set +CONFIG_HAVE_ASAN_IN_RAMSTAGE=y +# CONFIG_ASAN is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_TSEG_STAGE_CACHE=y +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) +# end of General setup + +# +# Mainboard +# + +# +# Important: Run 'make distclean' before switching boards +# +# CONFIG_VENDOR_51NB is not set +# CONFIG_VENDOR_ACER is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_CAVIUM is not set +# CONFIG_VENDOR_CLEVO is not set +# CONFIG_VENDOR_COMPULAB is not set +# CONFIG_VENDOR_DELL is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_EXAMPLE is not set +# CONFIG_VENDOR_FACEBOOK is not set +# CONFIG_VENDOR_FOXCONN is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GOOGLE is not set +CONFIG_VENDOR_HP=y +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LIBRETREND is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_OCP is not set +# CONFIG_VENDOR_OPENCELLULAR is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PINE64 is not set +# CONFIG_VENDOR_PORTWELL is not set +# CONFIG_VENDOR_PRODRIVE is not set +# CONFIG_VENDOR_PROTECTLI is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RAZER is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SAPPHIRE is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SIFIVE is not set +# CONFIG_VENDOR_STARLABS is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_SYSTEM76 is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_UP is not set +CONFIG_MAINBOARD_PART_NUMBER="EliteBook 2560p" +CONFIG_MAINBOARD_VERSION="1.0" +CONFIG_MAINBOARD_DIR="hp/snb_ivb_laptops" +CONFIG_VGA_BIOS_ID="8086,0116" +CONFIG_DIMM_MAX=4 +CONFIG_DIMM_SPD_SIZE=256 +CONFIG_FMDFILE="" +# CONFIG_NO_POST is not set +CONFIG_MAINBOARD_VENDOR="HP" +CONFIG_CBFS_SIZE=0x7E9000 +CONFIG_MAX_CPUS=8 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +CONFIG_POST_DEVICE=y +CONFIG_POST_IO=y +CONFIG_DEVICETREE="devicetree.cb" +# CONFIG_VBOOT is not set +CONFIG_VARIANT_DIR="2560p" +CONFIG_OVERRIDE_DEVICETREE="variants/$(CONFIG_VARIANT_DIR)/overridetree.cb" +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="HP" +CONFIG_DRAM_RESET_GATE_GPIO=60 +CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/data.vbt" +CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" +CONFIG_USBDEBUG_HCD_INDEX=1 +CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 +# CONFIG_CONSOLE_POST is not set +CONFIG_TPM_PIRQ=0x0 +CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" +CONFIG_DCACHE_RAM_BASE=0xfefe0000 +CONFIG_DCACHE_RAM_SIZE=0x20000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 +CONFIG_DCACHE_BSP_STACK_SIZE=0x10000 +CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_ECAM_MMCONF_BUS_NUMBER=64 +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 +CONFIG_HAVE_INTEL_FIRMWARE=y +CONFIG_MRC_SETTINGS_CACHE_SIZE=0x10000 +CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_DRIVERS_INTEL_WIFI is not set +CONFIG_IFD_BIN_PATH="../../blobs/hp_sandybridge/ifd.bin" +CONFIG_ME_BIN_PATH="../../blobs/hp_sandybridge/me.bin" +CONFIG_GBE_BIN_PATH="../../blobs/hp_sandybridge/gbe.bin" +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_BOARD_HP_280_G2 is not set +# CONFIG_BOARD_HP_COMPAQ_8200_ELITE_SFF_PC is not set +# CONFIG_BOARD_HP_FOLIO_9480M is not set +CONFIG_BOARD_HP_2560P=y +# CONFIG_BOARD_HP_2570P is not set +# CONFIG_BOARD_HP_2760P is not set +# CONFIG_BOARD_HP_8460P is not set +# CONFIG_BOARD_HP_8470P is not set +# CONFIG_BOARD_HP_8770W is not set +# CONFIG_BOARD_HP_FOLIO_9470M is not set +# CONFIG_BOARD_HP_PROBOOK_6360B is not set +# CONFIG_BOARD_HP_REVOLVE_810_G1 is not set +# CONFIG_BOARD_HP_Z220_CMT_WORKSTATION is not set +# CONFIG_BOARD_HP_Z220_SFF_WORKSTATION is not set +CONFIG_EC_HP_KBC1126_ECFW_IN_CBFS=y +CONFIG_EC_HP_KBC1126_GPE=0x16 +CONFIG_BOARD_HP_SNB_IVB_LAPTOPS_COMMON=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="EliteBook 2560p" +CONFIG_HAVE_IFD_BIN=y +CONFIG_PCIEXP_HOTPLUG_BUSES=8 +CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 +CONFIG_PS2K_EISAID="PNP0303" +CONFIG_PS2M_EISAID="PNP0F13" +CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" +# CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_DRIVERS_UART_8250IO is not set +CONFIG_HEAP_SIZE=0x4000 +CONFIG_EC_GPE_SCI=0x50 +# CONFIG_TPM_MEASURED_BOOT is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set +CONFIG_COREBOOT_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=8192 +CONFIG_ROM_SIZE=0x00800000 +CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y +CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y +CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y +# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set +# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set +CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 +# end of Mainboard + +CONFIG_SYSTEM_TYPE_LAPTOP=y + +# +# Chipset +# + +# +# SoC +# +CONFIG_CHIPSET_DEVICETREE="northbridge/intel/sandybridge/chipset.cb" +CONFIG_CBFS_MCACHE_SIZE=0x4000 +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_SMM_TSEG_SIZE=0x800000 +CONFIG_SMM_RESERVED_SIZE=0x100000 +CONFIG_SMM_MODULE_STACK_SIZE=0x400 +CONFIG_SERIRQ_CONTINUOUS_MODE=y +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_STACK_SIZE=0x2000 +CONFIG_CPU_SPECIFIC_OPTIONS=y +CONFIG_IED_REGION_SIZE=0x400000 +CONFIG_VBT_DATA_SIZE_KB=8 +CONFIG_INTEL_GMA_BCLV_OFFSET=0x48254 +CONFIG_INTEL_GMA_BCLV_WIDTH=16 +CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256 +CONFIG_INTEL_GMA_BCLM_WIDTH=16 +CONFIG_BOOTBLOCK_IN_CBFS=y +CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x0 +CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed10000 +CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 +CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +CONFIG_PCIEXP_ASPM=y +CONFIG_PCIEXP_COMMON_CLOCK=y +CONFIG_FIXED_SMBUS_IO_BASE=0x400 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_CBFS_CACHE_ALIGN=8 + +# +# CPU +# +CONFIG_CPU_INTEL_MODEL_206AX=y +CONFIG_CPU_INTEL_COMMON=y +CONFIG_ENABLE_VMX=y +CONFIG_SET_IA32_FC_LOCK_BIT=y +CONFIG_SET_MSR_AESNI_LOCK_BIT=y +CONFIG_CPU_INTEL_COMMON_TIMEBASE=y +CONFIG_CPU_INTEL_COMMON_SMM=y +CONFIG_MICROCODE_UPDATE_PRE_RAM=y +CONFIG_PARALLEL_MP=y +CONFIG_XAPIC_ONLY=y +# CONFIG_X2APIC_ONLY is not set +# CONFIG_X2APIC_RUNTIME is not set +# CONFIG_X2APIC_LATE_WORKAROUND is not set +CONFIG_UDELAY_TSC=y +CONFIG_TSC_MONOTONIC_TIMER=y +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_LOGICAL_CPUS=y +CONFIG_HAVE_SMI_HANDLER=y +CONFIG_SMM_TSEG=y +CONFIG_AP_STACK_SIZE=0x800 +CONFIG_SMP=y +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SSE2=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y +CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +# CONFIG_CPU_MICROCODE_CBFS_NONE is not set + +# +# Northbridge +# +CONFIG_USE_NATIVE_RAMINIT=y +CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y +# CONFIG_NATIVE_RAMINIT_IGNORE_MAX_MEM_FUSES is not set +# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_MAX_DIMMS is not set +# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_REQUESTED_VOLTAGE is not set +# CONFIG_RAMINIT_ALWAYS_ALLOW_DLL_OFF is not set +CONFIG_RAMINIT_ENABLE_ECC=y + +# +# Southbridge +# +CONFIG_SOUTHBRIDGE_INTEL_BD82X6X=y +CONFIG_SOUTH_BRIDGE_OPTIONS=y +CONFIG_HIDE_MEI_ON_ERROR=y +CONFIG_PCIEXP_HOTPLUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_REQUIRED=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_ME=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y +CONFIG_HAVE_INTEL_CHIPSET_LOCKDOWN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_ACPI_MADT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_FINALIZE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y +# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set +CONFIG_INTEL_CHIPSET_LOCKDOWN=y +CONFIG_TCO_SPACE_NOT_YET_SPLIT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y +CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 +CONFIG_RCBA_LENGTH=0x4000 + +# +# Super I/O +# + +# +# Embedded Controllers +# +CONFIG_EC_HP_KBC1126=y + +# +# Please select the following otherwise your laptop cannot be powered on. +# +CONFIG_KBC1126_FIRMWARE=y +CONFIG_ECFW_PTR_ADDR=0xffffff00 +CONFIG_ECFW_PTR_SIZE=8 +CONFIG_KBC1126_FW1="../../ec/hp2560p/ec.bin.fw1" +CONFIG_KBC1126_FW1_OFFSET=0xfffe8000 +CONFIG_KBC1126_FW2="../../ec/hp2560p/ec.bin.fw2" +CONFIG_KBC1126_FW2_OFFSET=0xfffd0000 + +# +# Intel Firmware +# +CONFIG_HAVE_ME_BIN=y +# CONFIG_STITCH_ME_BIN is not set +# CONFIG_CHECK_ME is not set +# CONFIG_ME_REGION_ALLOW_CPU_READ_ACCESS is not set +# CONFIG_USE_ME_CLEANER is not set +CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y +CONFIG_HAVE_GBE_BIN=y +# CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION is not set +# CONFIG_LOCK_MANAGEMENT_ENGINE is not set +CONFIG_UNLOCK_FLASH_REGIONS=y +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_POSTCAR_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +CONFIG_ARCH_ALL_STAGES_X86_32=y +CONFIG_HAVE_EXP_X86_64_SUPPORT=y +# CONFIG_USE_EXP_X86_64_SUPPORT is not set +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_POSTCAR_STAGE=y +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_COLLECT_TIMESTAMPS_TSC=y +CONFIG_HAVE_CF9_RESET=y +CONFIG_DEBUG_HW_BREAKPOINTS=y +CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y +# end of Chipset + +# +# Devices +# +CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y +CONFIG_HAVE_LINEAR_FRAMEBUFFER=y +CONFIG_MAINBOARD_HAS_LIBGFXINIT=y +CONFIG_MAINBOARD_USE_LIBGFXINIT=y +# CONFIG_VGA_ROM_RUN is not set +# CONFIG_NO_GFX_INIT is not set +CONFIG_NO_EARLY_GFX_INIT=y + +# +# Display +# +CONFIG_VGA_TEXT_FRAMEBUFFER=y +# CONFIG_GENERIC_LINEAR_FRAMEBUFFER is not set +# end of Display + +CONFIG_PCI=y +CONFIG_ECAM_MMCONF_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +CONFIG_AZALIA_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_ECAM_MMCONF_LENGTH=0x04000000 +CONFIG_PCI_ALLOW_BUS_MASTER=y +CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y +CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y +# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set +# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y +# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set +CONFIG_PCIEXP_HOTPLUG_IO=0x2000 +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +CONFIG_INTEL_GMA_HAVE_VBT=y +CONFIG_INTEL_GMA_ADD_VBT=y +# CONFIG_SOFTWARE_I2C is not set +CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 +# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set +CONFIG_NO_DDR5=y +CONFIG_NO_LPDDR4=y +CONFIG_NO_DDR4=y +CONFIG_NO_DDR2=y +CONFIG_USE_DDR3=y +# end of Devices + +# +# Generic Drivers +# +CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 +# CONFIG_ELOG is not set +CONFIG_CACHE_MRC_SETTINGS=y +# CONFIG_MRC_SETTINGS_PROTECT is not set +# CONFIG_SMMSTORE is not set +CONFIG_SPI_FLASH=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +CONFIG_TPM_INIT_RAMSTAGE=y +# CONFIG_TPM_PPI is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_USBDEBUG is not set +# CONFIG_VPD is not set +# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set +# CONFIG_DRIVERS_I2C_MAX98396 is not set +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +CONFIG_GFX_GMA=y +CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y +CONFIG_INTEL_GMA_OPREGION_2_0=y +CONFIG_GFX_GMA_DYN_CPU=y +CONFIG_GFX_GMA_GENERATION="Ironlake" +CONFIG_GFX_GMA_PCH="Cougar_Point" +CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" +CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_USE_PC_CMOS_ALTCENTURY is not set +CONFIG_MEMORY_MAPPED_TPM=y +CONFIG_TPM_TIS_BASE_ADDRESS=0xfed40000 +CONFIG_VGA=y +# CONFIG_DRIVERS_SIL_3114 is not set +# end of Generic Drivers + +# +# Security +# + +# +# CBFS verification +# +# CONFIG_CBFS_VERIFICATION is not set +# end of CBFS verification + +# +# Verified Boot (vboot) +# +# end of Verified Boot (vboot) + +# +# Trusted Platform Module +# +# CONFIG_NO_TPM is not set +CONFIG_TPM1=y +CONFIG_TPM=y +CONFIG_MAINBOARD_HAS_TPM1=y +# CONFIG_TPM_DEACTIVATE is not set +# CONFIG_DEBUG_TPM is not set +# CONFIG_TPM_RDRESP_NEED_DELAY is not set +# end of Trusted Platform Module + +# +# Memory initialization +# +CONFIG_PLATFORM_HAS_DRAM_CLEAR=y +CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y +# end of Memory initialization + +# CONFIG_INTEL_TXT is not set +# CONFIG_STM is not set +CONFIG_BOOTMEDIA_LOCK_NONE=y +# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set +# CONFIG_BOOTMEDIA_LOCK_CHIP is not set +# CONFIG_BOOTMEDIA_SMM_BWP is not set +# end of Security + +CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +CONFIG_ACPI_SOC_NVS=y +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_BOOT_DEVICE_SPI_FLASH=y +CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y +CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y +CONFIG_RTC=y + +# +# Console +# +CONFIG_BOOTBLOCK_CONSOLE=y +CONFIG_POSTCAR_CONSOLE=y +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +# CONFIG_CONSOLE_SPI_FLASH is not set +# CONFIG_CONSOLE_I2C_SMBUS is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=7 +CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y +CONFIG_CONSOLE_USE_ANSI_ESCAPES=y +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +CONFIG_HWBASE_DEBUG_CB=y +# end of Console + +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_MONOTONIC_TIMER=y +CONFIG_HAVE_OPTION_TABLE=y +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y + +# +# System tables +# +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +# end of System tables + +# +# Payload +# +CONFIG_PAYLOAD_NONE=y +# end of Payload + +# +# Debugging +# + +# +# CPU Debug Settings +# +# CONFIG_DISPLAY_MTRRS is not set + +# +# BLOB Debug Settings +# + +# +# General Debug Settings +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_CONSOLE_INIT is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_DEBUG_ADA_CODE is not set +CONFIG_HAVE_EM100_SUPPORT=y +# CONFIG_EM100 is not set +# end of Debugging + +CONFIG_RAMSTAGE_ADA=y +CONFIG_RAMSTAGE_LIBHWBASE=y +CONFIG_HWBASE_DYNAMIC_MMIO=y +CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 +CONFIG_HWBASE_DIRECT_PCIDEV=y +CONFIG_DECOMPRESS_OFAST=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_RELOCATABLE_MODULES=y +CONFIG_HAVE_BOOTBLOCK=y +CONFIG_HAVE_ROMSTAGE=y +CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/grub/patches/0005-at-keyboard-timeout.patch b/resources/grub/patches/0005-at-keyboard-timeout.patch new file mode 100644 index 00000000..bdc2955c --- /dev/null +++ b/resources/grub/patches/0005-at-keyboard-timeout.patch @@ -0,0 +1,36 @@ +From 674002256247a01f4969a3795a5aceca68792a55 Mon Sep 17 00:00:00 2001 +From: Riku Viitanen +Date: Fri, 21 Apr 2023 21:41:07 +0300 +Subject: [PATCH] at_keyboard.c: add timeout to fix hang on hp elitebooks + +This fixes GRUB on Coreboot on HP EliteBooks by implementing +a 200ms timeout. GRUB used to hang. see: https://ticket.coreboot.org/issues/141 +--- + grub-core/term/at_keyboard.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c +index 597111077..28d1d0a77 100644 +--- a/grub-core/term/at_keyboard.c ++++ b/grub-core/term/at_keyboard.c +@@ -42,7 +42,16 @@ keyboard_controller_wait_until_ready (void) + { + /* 50 us would be enough but our current time resolution is 1ms. */ + grub_millisleep (1); +- while (! KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS))); ++ ++ unsigned i = 200; ++ while (! KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS))) { ++ grub_millisleep (1); ++ ++ /* Timeout */ ++ if (! i--) { ++ break; ++ } ++ } + } + + static grub_uint8_t +-- +2.40.0 + From 6ff0284a510e8d7a8721dd769ba6a773610c2cad Mon Sep 17 00:00:00 2001 From: Riku Viitanen Date: Sat, 22 Apr 2023 04:04:37 +0300 Subject: [PATCH 0018/2290] Add HP EliteBook Folio 9470m --- blobs/hp_ivybridge/gbe.bin | Bin 0 -> 8192 bytes blobs/hp_ivybridge/ifd.bin | Bin 0 -> 4096 bytes resources/blobs/sources | 9 + resources/coreboot/hp9470m_16mb/board.cfg | 8 + .../hp9470m_16mb/config/libgfxinit_corebootfb | 627 ++++++++++++++++++ .../hp9470m_16mb/config/libgfxinit_txtmode | 624 +++++++++++++++++ resources/scripts/blobs/download | 5 + 7 files changed, 1273 insertions(+) create mode 100644 blobs/hp_ivybridge/gbe.bin create mode 100644 blobs/hp_ivybridge/ifd.bin create mode 100644 resources/coreboot/hp9470m_16mb/board.cfg create mode 100644 resources/coreboot/hp9470m_16mb/config/libgfxinit_corebootfb create mode 100644 resources/coreboot/hp9470m_16mb/config/libgfxinit_txtmode diff --git a/blobs/hp_ivybridge/gbe.bin b/blobs/hp_ivybridge/gbe.bin new file mode 100644 index 0000000000000000000000000000000000000000..aa9556f0e3867e7f40cb958c1d615197247f065c GIT binary patch literal 8192 zcmX>X{!eK2aR!e6|GzNgGcq*%2ZF-__a$rum_!+XfQcPMvM$vyV2}bbc#`-Ww4FJG z8JR@a?qU*U29h8MQaho6!LJRZm;tN>%=-VIfsx4}UYOkhWG*UTVEq4o=`pY}3<9B& z$;5y`gvpS>%))?ypTUs997uBkX$v4N0Hm#eG&7K12c#u{^m-`00ZL1?7%}(+SpjV@ zVsJ>1XJEM~$j|_!8O{hWG;oMATs0L2%E>bzY#dpv%-|MgMvU+u6+jOGW?OU-28KO6 zm|~+Mqai?Q2#l-}XVkZ&Aut*OqaiRF0;3@?8UmvsFd6~_83N}<`~Se^`e^^3)IQ5d rQ$O1OA89d8KmQJ7`9Es+Xb6mkz-S1JhQMeDjE2By2#kin$O-`f?__F< literal 0 HcmV?d00001 diff --git a/blobs/hp_ivybridge/ifd.bin b/blobs/hp_ivybridge/ifd.bin new file mode 100644 index 0000000000000000000000000000000000000000..cc11e46659edb57c0632e9d56089099c34348a2f GIT binary patch literal 4096 zcmezW9~DF`{lL%6z{1SNBp{@~sK}toz`%g4LX}~H3Q!0PK;j^VG{b+O9w`P!1}298 z@~G-TJP?*(zpAx zCLlFf{6nfcKt3Q<y*5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=Cp%DV|?hFi~3Ze?{ i9mE+}6<8G%c1eKgLkbZ3y#s_E8or^-mG`+u`#u2o#8N>3 literal 0 HcmV?d00001 diff --git a/resources/blobs/sources b/resources/blobs/sources index 97cf5128..e0b912ba 100644 --- a/resources/blobs/sources +++ b/resources/blobs/sources @@ -39,3 +39,12 @@ EC_url_bkup https://web.archive.org/web/20230416125725/https://ftp.hp.com/pub/softpaq/sp85501-86000/sp85526.exe } +{hp9470m}{ + DL_hash 039c89c6d44ae11ae2510cbd5fed756e97ed9a31 + DL_url https://download.lenovo.com/pccbbs/mobiles/g1rg24ww.exe + DL_url_bkup https://web.archive.org/web/20210706183911/https://download.lenovo.com/pccbbs/mobiles/g1rg24ww.exe + + EC_hash 1a03e985552060a9dfe7c40b5ea97ecfb2794583 + EC_url https://ftp.hp.com/pub/softpaq/sp96001-96500/sp96090.exe + EC_url_bkup http://web.archive.org/web/20220504072602/https://ftp.ext.hp.com/pub/softpaq/sp96001-96500/sp96090.exe +} diff --git a/resources/coreboot/hp9470m_16mb/board.cfg b/resources/coreboot/hp9470m_16mb/board.cfg new file mode 100644 index 00000000..e7626cf1 --- /dev/null +++ b/resources/coreboot/hp9470m_16mb/board.cfg @@ -0,0 +1,8 @@ +cbtree="default" +romtype="normal" +arch="x86_64" +payload_grub="y" +payload_grub_withseabios="y" +payload_seabios="y" +payload_memtest="y" +grub_scan_disk="ahci" diff --git a/resources/coreboot/hp9470m_16mb/config/libgfxinit_corebootfb b/resources/coreboot/hp9470m_16mb/config/libgfxinit_corebootfb new file mode 100644 index 00000000..07f57c64 --- /dev/null +++ b/resources/coreboot/hp9470m_16mb/config/libgfxinit_corebootfb @@ -0,0 +1,627 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_COREBOOT_BUILD=y +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +CONFIG_ARCH_SUPPORTS_CLANG=y +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_IWYU is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_UTIL_GENPARSER is not set +# CONFIG_OPTION_BACKEND_NONE is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_COLLECT_TIMESTAMPS=y +# CONFIG_TIMESTAMPS_ON_CONSOLE is not set +CONFIG_USE_BLOBS=y +# CONFIG_USE_AMD_BLOBS is not set +# CONFIG_USE_QC_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_UBSAN is not set +CONFIG_HAVE_ASAN_IN_RAMSTAGE=y +# CONFIG_ASAN is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_TSEG_STAGE_CACHE=y +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) +# end of General setup + +# +# Mainboard +# + +# +# Important: Run 'make distclean' before switching boards +# +# CONFIG_VENDOR_51NB is not set +# CONFIG_VENDOR_ACER is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_CAVIUM is not set +# CONFIG_VENDOR_CLEVO is not set +# CONFIG_VENDOR_COMPULAB is not set +# CONFIG_VENDOR_DELL is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_EXAMPLE is not set +# CONFIG_VENDOR_FACEBOOK is not set +# CONFIG_VENDOR_FOXCONN is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GOOGLE is not set +CONFIG_VENDOR_HP=y +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LIBRETREND is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_OCP is not set +# CONFIG_VENDOR_OPENCELLULAR is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PINE64 is not set +# CONFIG_VENDOR_PORTWELL is not set +# CONFIG_VENDOR_PRODRIVE is not set +# CONFIG_VENDOR_PROTECTLI is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RAZER is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SAPPHIRE is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SIFIVE is not set +# CONFIG_VENDOR_STARLABS is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_SYSTEM76 is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_UP is not set +CONFIG_MAINBOARD_PART_NUMBER="EliteBook Folio 9470m" +CONFIG_MAINBOARD_VERSION="1.0" +CONFIG_MAINBOARD_DIR="hp/snb_ivb_laptops" +CONFIG_VGA_BIOS_ID="8086,0166" +CONFIG_DIMM_MAX=4 +CONFIG_DIMM_SPD_SIZE=256 +CONFIG_FMDFILE="" +# CONFIG_NO_POST is not set +CONFIG_MAINBOARD_VENDOR="HP" +CONFIG_CBFS_SIZE=0xFE5000 +CONFIG_LINEAR_FRAMEBUFFER_MAX_HEIGHT=1600 +CONFIG_LINEAR_FRAMEBUFFER_MAX_WIDTH=2560 +CONFIG_MAX_CPUS=8 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +CONFIG_POST_DEVICE=y +CONFIG_POST_IO=y +CONFIG_DEVICETREE="devicetree.cb" +# CONFIG_VBOOT is not set +CONFIG_VARIANT_DIR="folio_9470m" +CONFIG_OVERRIDE_DEVICETREE="variants/$(CONFIG_VARIANT_DIR)/overridetree.cb" +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="HP" +CONFIG_DRAM_RESET_GATE_GPIO=60 +CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/data.vbt" +CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" +CONFIG_USBDEBUG_HCD_INDEX=0 +CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 +# CONFIG_CONSOLE_POST is not set +CONFIG_TPM_PIRQ=0x0 +CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" +CONFIG_DCACHE_RAM_BASE=0xfefe0000 +CONFIG_DCACHE_RAM_SIZE=0x20000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 +CONFIG_DCACHE_BSP_STACK_SIZE=0x10000 +CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_ECAM_MMCONF_BUS_NUMBER=64 +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 +CONFIG_HAVE_INTEL_FIRMWARE=y +CONFIG_MRC_SETTINGS_CACHE_SIZE=0x10000 +CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_DRIVERS_INTEL_WIFI is not set +CONFIG_IFD_BIN_PATH="../../blobs/hp_ivybridge/ifd.bin" +CONFIG_ME_BIN_PATH="../../blobs/hp_ivybridge/me.bin" +CONFIG_GBE_BIN_PATH="../../blobs/hp_ivybridge/gbe.bin" +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_BOARD_HP_280_G2 is not set +# CONFIG_BOARD_HP_COMPAQ_8200_ELITE_SFF_PC is not set +# CONFIG_BOARD_HP_FOLIO_9480M is not set +# CONFIG_BOARD_HP_2560P is not set +# CONFIG_BOARD_HP_2570P is not set +# CONFIG_BOARD_HP_2760P is not set +# CONFIG_BOARD_HP_8460P is not set +# CONFIG_BOARD_HP_8470P is not set +# CONFIG_BOARD_HP_8770W is not set +CONFIG_BOARD_HP_FOLIO_9470M=y +# CONFIG_BOARD_HP_PROBOOK_6360B is not set +# CONFIG_BOARD_HP_REVOLVE_810_G1 is not set +# CONFIG_BOARD_HP_Z220_CMT_WORKSTATION is not set +# CONFIG_BOARD_HP_Z220_SFF_WORKSTATION is not set +CONFIG_EC_HP_KBC1126_ECFW_IN_CBFS=y +CONFIG_EC_HP_KBC1126_GPE=0x16 +CONFIG_BOARD_HP_SNB_IVB_LAPTOPS_COMMON=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="EliteBook 2560p" +CONFIG_HAVE_IFD_BIN=y +CONFIG_PCIEXP_HOTPLUG_BUSES=8 +CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 +CONFIG_PS2K_EISAID="PNP0303" +CONFIG_PS2M_EISAID="PNP0F13" +CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" +# CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_DRIVERS_UART_8250IO is not set +CONFIG_HEAP_SIZE=0x4000 +CONFIG_EC_GPE_SCI=0x50 +# CONFIG_TPM_MEASURED_BOOT is not set +CONFIG_BOARD_ROMSIZE_KB_16384=y +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +CONFIG_COREBOOT_ROMSIZE_KB_16384=y +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=16384 +CONFIG_ROM_SIZE=0x01000000 +CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y +CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y +CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y +# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set +# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set +CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 +# end of Mainboard + +CONFIG_SYSTEM_TYPE_LAPTOP=y + +# +# Chipset +# + +# +# SoC +# +CONFIG_CHIPSET_DEVICETREE="northbridge/intel/sandybridge/chipset.cb" +CONFIG_CBFS_MCACHE_SIZE=0x4000 +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_SMM_TSEG_SIZE=0x800000 +CONFIG_SMM_RESERVED_SIZE=0x100000 +CONFIG_SMM_MODULE_STACK_SIZE=0x400 +CONFIG_SERIRQ_CONTINUOUS_MODE=y +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_STACK_SIZE=0x2000 +CONFIG_CPU_SPECIFIC_OPTIONS=y +CONFIG_IED_REGION_SIZE=0x400000 +CONFIG_VBT_DATA_SIZE_KB=8 +CONFIG_INTEL_GMA_BCLV_OFFSET=0x48254 +CONFIG_INTEL_GMA_BCLV_WIDTH=16 +CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256 +CONFIG_INTEL_GMA_BCLM_WIDTH=16 +CONFIG_BOOTBLOCK_IN_CBFS=y +CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x0 +CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed10000 +CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 +CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +CONFIG_PCIEXP_ASPM=y +CONFIG_PCIEXP_COMMON_CLOCK=y +CONFIG_FIXED_SMBUS_IO_BASE=0x400 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_CBFS_CACHE_ALIGN=8 + +# +# CPU +# +CONFIG_CPU_INTEL_MODEL_206AX=y +CONFIG_CPU_INTEL_COMMON=y +CONFIG_ENABLE_VMX=y +CONFIG_SET_IA32_FC_LOCK_BIT=y +CONFIG_SET_MSR_AESNI_LOCK_BIT=y +CONFIG_CPU_INTEL_COMMON_TIMEBASE=y +CONFIG_CPU_INTEL_COMMON_SMM=y +CONFIG_MICROCODE_UPDATE_PRE_RAM=y +CONFIG_PARALLEL_MP=y +CONFIG_XAPIC_ONLY=y +# CONFIG_X2APIC_ONLY is not set +# CONFIG_X2APIC_RUNTIME is not set +# CONFIG_X2APIC_LATE_WORKAROUND is not set +CONFIG_UDELAY_TSC=y +CONFIG_TSC_MONOTONIC_TIMER=y +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_LOGICAL_CPUS=y +CONFIG_HAVE_SMI_HANDLER=y +CONFIG_SMM_TSEG=y +CONFIG_AP_STACK_SIZE=0x800 +CONFIG_SMP=y +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SSE2=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y +CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +# CONFIG_CPU_MICROCODE_CBFS_NONE is not set + +# +# Northbridge +# +CONFIG_USE_NATIVE_RAMINIT=y +CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y +# CONFIG_NATIVE_RAMINIT_IGNORE_MAX_MEM_FUSES is not set +# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_MAX_DIMMS is not set +# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_REQUESTED_VOLTAGE is not set +# CONFIG_RAMINIT_ALWAYS_ALLOW_DLL_OFF is not set +CONFIG_RAMINIT_ENABLE_ECC=y + +# +# Southbridge +# +CONFIG_SOUTHBRIDGE_INTEL_C216=y +CONFIG_SOUTH_BRIDGE_OPTIONS=y +CONFIG_HIDE_MEI_ON_ERROR=y +CONFIG_PCIEXP_HOTPLUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_REQUIRED=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_ME=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y +CONFIG_HAVE_INTEL_CHIPSET_LOCKDOWN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_ACPI_MADT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_FINALIZE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y +# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set +CONFIG_INTEL_CHIPSET_LOCKDOWN=y +CONFIG_TCO_SPACE_NOT_YET_SPLIT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y +CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 +CONFIG_RCBA_LENGTH=0x4000 + +# +# Super I/O +# + +# +# Embedded Controllers +# +CONFIG_EC_HP_KBC1126=y + +# +# Please select the following otherwise your laptop cannot be powered on. +# +CONFIG_KBC1126_FIRMWARE=y +CONFIG_ECFW_PTR_ADDR=0xffffff00 +CONFIG_ECFW_PTR_SIZE=8 +CONFIG_KBC1126_FW1="../../ec/hp9470m/ec.bin.fw1" +CONFIG_KBC1126_FW1_OFFSET=0xfffe8000 +CONFIG_KBC1126_FW2="../../ec/hp9470m/ec.bin.fw2" +CONFIG_KBC1126_FW2_OFFSET=0xfffd0000 + +# +# Intel Firmware +# +CONFIG_HAVE_ME_BIN=y +# CONFIG_STITCH_ME_BIN is not set +# CONFIG_CHECK_ME is not set +# CONFIG_ME_REGION_ALLOW_CPU_READ_ACCESS is not set +# CONFIG_USE_ME_CLEANER is not set +CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y +CONFIG_HAVE_GBE_BIN=y +# CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION is not set +# CONFIG_LOCK_MANAGEMENT_ENGINE is not set +CONFIG_UNLOCK_FLASH_REGIONS=y +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_POSTCAR_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +CONFIG_ARCH_ALL_STAGES_X86_32=y +CONFIG_HAVE_EXP_X86_64_SUPPORT=y +# CONFIG_USE_EXP_X86_64_SUPPORT is not set +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_POSTCAR_STAGE=y +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_COLLECT_TIMESTAMPS_TSC=y +CONFIG_HAVE_CF9_RESET=y +CONFIG_DEBUG_HW_BREAKPOINTS=y +CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y +# end of Chipset + +# +# Devices +# +CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y +CONFIG_HAVE_LINEAR_FRAMEBUFFER=y +CONFIG_MAINBOARD_HAS_LIBGFXINIT=y +CONFIG_MAINBOARD_USE_LIBGFXINIT=y +# CONFIG_VGA_ROM_RUN is not set +# CONFIG_NO_GFX_INIT is not set +CONFIG_NO_EARLY_GFX_INIT=y + +# +# Display +# +# CONFIG_VGA_TEXT_FRAMEBUFFER is not set +CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y +CONFIG_LINEAR_FRAMEBUFFER=y +# CONFIG_BOOTSPLASH is not set +# end of Display + +CONFIG_PCI=y +CONFIG_ECAM_MMCONF_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +CONFIG_AZALIA_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_ECAM_MMCONF_LENGTH=0x04000000 +CONFIG_PCI_ALLOW_BUS_MASTER=y +CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y +CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y +# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set +# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y +# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set +CONFIG_PCIEXP_HOTPLUG_IO=0x2000 +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +CONFIG_INTEL_GMA_HAVE_VBT=y +CONFIG_INTEL_GMA_ADD_VBT=y +# CONFIG_SOFTWARE_I2C is not set +CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 +# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set +CONFIG_NO_DDR5=y +CONFIG_NO_LPDDR4=y +CONFIG_NO_DDR4=y +CONFIG_NO_DDR2=y +CONFIG_USE_DDR3=y +# end of Devices + +# +# Generic Drivers +# +CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 +# CONFIG_ELOG is not set +CONFIG_CACHE_MRC_SETTINGS=y +# CONFIG_MRC_SETTINGS_PROTECT is not set +# CONFIG_SMMSTORE is not set +CONFIG_SPI_FLASH=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +CONFIG_TPM_INIT_RAMSTAGE=y +# CONFIG_TPM_PPI is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_USBDEBUG is not set +# CONFIG_VPD is not set +# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set +# CONFIG_DRIVERS_I2C_MAX98396 is not set +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +CONFIG_GFX_GMA=y +CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y +CONFIG_INTEL_GMA_OPREGION_2_0=y +CONFIG_GFX_GMA_DYN_CPU=y +CONFIG_GFX_GMA_GENERATION="Ironlake" +CONFIG_GFX_GMA_PCH="Cougar_Point" +CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" +CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_USE_PC_CMOS_ALTCENTURY is not set +CONFIG_MEMORY_MAPPED_TPM=y +CONFIG_TPM_TIS_BASE_ADDRESS=0xfed40000 +# CONFIG_DRIVERS_SIL_3114 is not set +# end of Generic Drivers + +# +# Security +# + +# +# CBFS verification +# +# CONFIG_CBFS_VERIFICATION is not set +# end of CBFS verification + +# +# Verified Boot (vboot) +# +# end of Verified Boot (vboot) + +# +# Trusted Platform Module +# +# CONFIG_NO_TPM is not set +CONFIG_TPM1=y +CONFIG_TPM=y +CONFIG_MAINBOARD_HAS_TPM1=y +# CONFIG_TPM_DEACTIVATE is not set +# CONFIG_DEBUG_TPM is not set +# CONFIG_TPM_RDRESP_NEED_DELAY is not set +# end of Trusted Platform Module + +# +# Memory initialization +# +CONFIG_PLATFORM_HAS_DRAM_CLEAR=y +CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y +# end of Memory initialization + +# CONFIG_INTEL_TXT is not set +# CONFIG_STM is not set +CONFIG_BOOTMEDIA_LOCK_NONE=y +# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set +# CONFIG_BOOTMEDIA_LOCK_CHIP is not set +# CONFIG_BOOTMEDIA_SMM_BWP is not set +# end of Security + +CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +CONFIG_ACPI_SOC_NVS=y +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_BOOT_DEVICE_SPI_FLASH=y +CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y +CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y +CONFIG_RTC=y + +# +# Console +# +CONFIG_BOOTBLOCK_CONSOLE=y +CONFIG_POSTCAR_CONSOLE=y +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +# CONFIG_CONSOLE_SPI_FLASH is not set +# CONFIG_CONSOLE_I2C_SMBUS is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=7 +CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y +CONFIG_CONSOLE_USE_ANSI_ESCAPES=y +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +CONFIG_HWBASE_DEBUG_CB=y +# end of Console + +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_MONOTONIC_TIMER=y +CONFIG_HAVE_OPTION_TABLE=y +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y + +# +# System tables +# +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +# end of System tables + +# +# Payload +# +CONFIG_PAYLOAD_NONE=y +# end of Payload + +# +# Debugging +# + +# +# CPU Debug Settings +# +# CONFIG_DISPLAY_MTRRS is not set + +# +# BLOB Debug Settings +# + +# +# General Debug Settings +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_CONSOLE_INIT is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_DEBUG_ADA_CODE is not set +CONFIG_HAVE_EM100_SUPPORT=y +# CONFIG_EM100 is not set +# end of Debugging + +CONFIG_RAMSTAGE_ADA=y +CONFIG_RAMSTAGE_LIBHWBASE=y +CONFIG_HWBASE_DYNAMIC_MMIO=y +CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 +CONFIG_HWBASE_DIRECT_PCIDEV=y +CONFIG_DECOMPRESS_OFAST=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_RELOCATABLE_MODULES=y +CONFIG_HAVE_BOOTBLOCK=y +CONFIG_HAVE_ROMSTAGE=y +CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/coreboot/hp9470m_16mb/config/libgfxinit_txtmode b/resources/coreboot/hp9470m_16mb/config/libgfxinit_txtmode new file mode 100644 index 00000000..4ea78ffb --- /dev/null +++ b/resources/coreboot/hp9470m_16mb/config/libgfxinit_txtmode @@ -0,0 +1,624 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_COREBOOT_BUILD=y +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +CONFIG_ARCH_SUPPORTS_CLANG=y +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_IWYU is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_UTIL_GENPARSER is not set +# CONFIG_OPTION_BACKEND_NONE is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_COLLECT_TIMESTAMPS=y +# CONFIG_TIMESTAMPS_ON_CONSOLE is not set +CONFIG_USE_BLOBS=y +# CONFIG_USE_AMD_BLOBS is not set +# CONFIG_USE_QC_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_UBSAN is not set +CONFIG_HAVE_ASAN_IN_RAMSTAGE=y +# CONFIG_ASAN is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_TSEG_STAGE_CACHE=y +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) +# end of General setup + +# +# Mainboard +# + +# +# Important: Run 'make distclean' before switching boards +# +# CONFIG_VENDOR_51NB is not set +# CONFIG_VENDOR_ACER is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_CAVIUM is not set +# CONFIG_VENDOR_CLEVO is not set +# CONFIG_VENDOR_COMPULAB is not set +# CONFIG_VENDOR_DELL is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_EXAMPLE is not set +# CONFIG_VENDOR_FACEBOOK is not set +# CONFIG_VENDOR_FOXCONN is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GOOGLE is not set +CONFIG_VENDOR_HP=y +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LIBRETREND is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_OCP is not set +# CONFIG_VENDOR_OPENCELLULAR is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PINE64 is not set +# CONFIG_VENDOR_PORTWELL is not set +# CONFIG_VENDOR_PRODRIVE is not set +# CONFIG_VENDOR_PROTECTLI is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RAZER is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SAPPHIRE is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SIFIVE is not set +# CONFIG_VENDOR_STARLABS is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_SYSTEM76 is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_UP is not set +CONFIG_MAINBOARD_PART_NUMBER="EliteBook Folio 9470m" +CONFIG_MAINBOARD_VERSION="1.0" +CONFIG_MAINBOARD_DIR="hp/snb_ivb_laptops" +CONFIG_VGA_BIOS_ID="8086,0166" +CONFIG_DIMM_MAX=4 +CONFIG_DIMM_SPD_SIZE=256 +CONFIG_FMDFILE="" +# CONFIG_NO_POST is not set +CONFIG_MAINBOARD_VENDOR="HP" +CONFIG_CBFS_SIZE=0xFE5000 +CONFIG_MAX_CPUS=8 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +CONFIG_POST_DEVICE=y +CONFIG_POST_IO=y +CONFIG_DEVICETREE="devicetree.cb" +# CONFIG_VBOOT is not set +CONFIG_VARIANT_DIR="folio_9470m" +CONFIG_OVERRIDE_DEVICETREE="variants/$(CONFIG_VARIANT_DIR)/overridetree.cb" +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="HP" +CONFIG_DRAM_RESET_GATE_GPIO=60 +CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/data.vbt" +CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" +CONFIG_USBDEBUG_HCD_INDEX=0 +CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 +# CONFIG_CONSOLE_POST is not set +CONFIG_TPM_PIRQ=0x0 +CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" +CONFIG_DCACHE_RAM_BASE=0xfefe0000 +CONFIG_DCACHE_RAM_SIZE=0x20000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 +CONFIG_DCACHE_BSP_STACK_SIZE=0x10000 +CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_ECAM_MMCONF_BUS_NUMBER=64 +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 +CONFIG_HAVE_INTEL_FIRMWARE=y +CONFIG_MRC_SETTINGS_CACHE_SIZE=0x10000 +CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_DRIVERS_INTEL_WIFI is not set +CONFIG_IFD_BIN_PATH="../../blobs/hp_ivybridge/ifd.bin" +CONFIG_ME_BIN_PATH="../../blobs/hp_ivybridge/me.bin" +CONFIG_GBE_BIN_PATH="../../blobs/hp_ivybridge/gbe.bin" +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_BOARD_HP_280_G2 is not set +# CONFIG_BOARD_HP_COMPAQ_8200_ELITE_SFF_PC is not set +# CONFIG_BOARD_HP_FOLIO_9480M is not set +# CONFIG_BOARD_HP_2560P is not set +# CONFIG_BOARD_HP_2570P is not set +# CONFIG_BOARD_HP_2760P is not set +# CONFIG_BOARD_HP_8460P is not set +# CONFIG_BOARD_HP_8470P is not set +# CONFIG_BOARD_HP_8770W is not set +CONFIG_BOARD_HP_FOLIO_9470M=y +# CONFIG_BOARD_HP_PROBOOK_6360B is not set +# CONFIG_BOARD_HP_REVOLVE_810_G1 is not set +# CONFIG_BOARD_HP_Z220_CMT_WORKSTATION is not set +# CONFIG_BOARD_HP_Z220_SFF_WORKSTATION is not set +CONFIG_EC_HP_KBC1126_ECFW_IN_CBFS=y +CONFIG_EC_HP_KBC1126_GPE=0x16 +CONFIG_BOARD_HP_SNB_IVB_LAPTOPS_COMMON=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="EliteBook 2560p" +CONFIG_HAVE_IFD_BIN=y +CONFIG_PCIEXP_HOTPLUG_BUSES=8 +CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 +CONFIG_PS2K_EISAID="PNP0303" +CONFIG_PS2M_EISAID="PNP0F13" +CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" +# CONFIG_DEBUG_SMI is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_DRIVERS_UART_8250IO is not set +CONFIG_HEAP_SIZE=0x4000 +CONFIG_EC_GPE_SCI=0x50 +# CONFIG_TPM_MEASURED_BOOT is not set +CONFIG_BOARD_ROMSIZE_KB_16384=y +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +CONFIG_COREBOOT_ROMSIZE_KB_16384=y +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=16384 +CONFIG_ROM_SIZE=0x01000000 +CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y +CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y +CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y +# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set +# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set +CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 +# end of Mainboard + +CONFIG_SYSTEM_TYPE_LAPTOP=y + +# +# Chipset +# + +# +# SoC +# +CONFIG_CHIPSET_DEVICETREE="northbridge/intel/sandybridge/chipset.cb" +CONFIG_CBFS_MCACHE_SIZE=0x4000 +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_SMM_TSEG_SIZE=0x800000 +CONFIG_SMM_RESERVED_SIZE=0x100000 +CONFIG_SMM_MODULE_STACK_SIZE=0x400 +CONFIG_SERIRQ_CONTINUOUS_MODE=y +CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_STACK_SIZE=0x2000 +CONFIG_CPU_SPECIFIC_OPTIONS=y +CONFIG_IED_REGION_SIZE=0x400000 +CONFIG_VBT_DATA_SIZE_KB=8 +CONFIG_INTEL_GMA_BCLV_OFFSET=0x48254 +CONFIG_INTEL_GMA_BCLV_WIDTH=16 +CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256 +CONFIG_INTEL_GMA_BCLM_WIDTH=16 +CONFIG_BOOTBLOCK_IN_CBFS=y +CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x0 +CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed10000 +CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 +CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 +CONFIG_PCIEXP_ASPM=y +CONFIG_PCIEXP_COMMON_CLOCK=y +CONFIG_FIXED_SMBUS_IO_BASE=0x400 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_CBFS_CACHE_ALIGN=8 + +# +# CPU +# +CONFIG_CPU_INTEL_MODEL_206AX=y +CONFIG_CPU_INTEL_COMMON=y +CONFIG_ENABLE_VMX=y +CONFIG_SET_IA32_FC_LOCK_BIT=y +CONFIG_SET_MSR_AESNI_LOCK_BIT=y +CONFIG_CPU_INTEL_COMMON_TIMEBASE=y +CONFIG_CPU_INTEL_COMMON_SMM=y +CONFIG_MICROCODE_UPDATE_PRE_RAM=y +CONFIG_PARALLEL_MP=y +CONFIG_XAPIC_ONLY=y +# CONFIG_X2APIC_ONLY is not set +# CONFIG_X2APIC_RUNTIME is not set +# CONFIG_X2APIC_LATE_WORKAROUND is not set +CONFIG_UDELAY_TSC=y +CONFIG_TSC_MONOTONIC_TIMER=y +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_LOGICAL_CPUS=y +CONFIG_HAVE_SMI_HANDLER=y +CONFIG_SMM_TSEG=y +CONFIG_AP_STACK_SIZE=0x800 +CONFIG_SMP=y +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SSE2=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y +CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +# CONFIG_CPU_MICROCODE_CBFS_NONE is not set + +# +# Northbridge +# +CONFIG_USE_NATIVE_RAMINIT=y +CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y +# CONFIG_NATIVE_RAMINIT_IGNORE_MAX_MEM_FUSES is not set +# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_MAX_DIMMS is not set +# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_REQUESTED_VOLTAGE is not set +# CONFIG_RAMINIT_ALWAYS_ALLOW_DLL_OFF is not set +CONFIG_RAMINIT_ENABLE_ECC=y + +# +# Southbridge +# +CONFIG_SOUTHBRIDGE_INTEL_C216=y +CONFIG_SOUTH_BRIDGE_OPTIONS=y +CONFIG_HIDE_MEI_ON_ERROR=y +CONFIG_PCIEXP_HOTPLUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_REQUIRED=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_ME=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y +CONFIG_HAVE_INTEL_CHIPSET_LOCKDOWN=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_ACPI_MADT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_FINALIZE=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y +CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y +# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set +CONFIG_INTEL_CHIPSET_LOCKDOWN=y +CONFIG_TCO_SPACE_NOT_YET_SPLIT=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y +CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 +CONFIG_RCBA_LENGTH=0x4000 + +# +# Super I/O +# + +# +# Embedded Controllers +# +CONFIG_EC_HP_KBC1126=y + +# +# Please select the following otherwise your laptop cannot be powered on. +# +CONFIG_KBC1126_FIRMWARE=y +CONFIG_ECFW_PTR_ADDR=0xffffff00 +CONFIG_ECFW_PTR_SIZE=8 +CONFIG_KBC1126_FW1="../../ec/hp9470m/ec.bin.fw1" +CONFIG_KBC1126_FW1_OFFSET=0xfffe8000 +CONFIG_KBC1126_FW2="../../ec/hp9470m/ec.bin.fw2" +CONFIG_KBC1126_FW2_OFFSET=0xfffd0000 + +# +# Intel Firmware +# +CONFIG_HAVE_ME_BIN=y +# CONFIG_STITCH_ME_BIN is not set +# CONFIG_CHECK_ME is not set +# CONFIG_ME_REGION_ALLOW_CPU_READ_ACCESS is not set +# CONFIG_USE_ME_CLEANER is not set +CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y +CONFIG_HAVE_GBE_BIN=y +# CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION is not set +# CONFIG_LOCK_MANAGEMENT_ENGINE is not set +CONFIG_UNLOCK_FLASH_REGIONS=y +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_POSTCAR_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +CONFIG_ARCH_ALL_STAGES_X86_32=y +CONFIG_HAVE_EXP_X86_64_SUPPORT=y +# CONFIG_USE_EXP_X86_64_SUPPORT is not set +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_POSTCAR_STAGE=y +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_COLLECT_TIMESTAMPS_TSC=y +CONFIG_HAVE_CF9_RESET=y +CONFIG_DEBUG_HW_BREAKPOINTS=y +CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y +# end of Chipset + +# +# Devices +# +CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y +CONFIG_HAVE_LINEAR_FRAMEBUFFER=y +CONFIG_MAINBOARD_HAS_LIBGFXINIT=y +CONFIG_MAINBOARD_USE_LIBGFXINIT=y +# CONFIG_VGA_ROM_RUN is not set +# CONFIG_NO_GFX_INIT is not set +CONFIG_NO_EARLY_GFX_INIT=y + +# +# Display +# +CONFIG_VGA_TEXT_FRAMEBUFFER=y +# CONFIG_GENERIC_LINEAR_FRAMEBUFFER is not set +# end of Display + +CONFIG_PCI=y +CONFIG_ECAM_MMCONF_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +CONFIG_AZALIA_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_ECAM_MMCONF_LENGTH=0x04000000 +CONFIG_PCI_ALLOW_BUS_MASTER=y +CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y +CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y +# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set +# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set +CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y +# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set +CONFIG_PCIEXP_HOTPLUG_IO=0x2000 +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +CONFIG_INTEL_GMA_HAVE_VBT=y +CONFIG_INTEL_GMA_ADD_VBT=y +# CONFIG_SOFTWARE_I2C is not set +CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 +# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set +CONFIG_NO_DDR5=y +CONFIG_NO_LPDDR4=y +CONFIG_NO_DDR4=y +CONFIG_NO_DDR2=y +CONFIG_USE_DDR3=y +# end of Devices + +# +# Generic Drivers +# +CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 +# CONFIG_ELOG is not set +CONFIG_CACHE_MRC_SETTINGS=y +# CONFIG_MRC_SETTINGS_PROTECT is not set +# CONFIG_SMMSTORE is not set +CONFIG_SPI_FLASH=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y +CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +CONFIG_TPM_INIT_RAMSTAGE=y +# CONFIG_TPM_PPI is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_USBDEBUG is not set +# CONFIG_VPD is not set +# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set +# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set +# CONFIG_DRIVERS_I2C_MAX98396 is not set +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +CONFIG_GFX_GMA=y +CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y +CONFIG_INTEL_GMA_OPREGION_2_0=y +CONFIG_GFX_GMA_DYN_CPU=y +CONFIG_GFX_GMA_GENERATION="Ironlake" +CONFIG_GFX_GMA_PCH="Cougar_Point" +CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" +CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_USE_PC_CMOS_ALTCENTURY is not set +CONFIG_MEMORY_MAPPED_TPM=y +CONFIG_TPM_TIS_BASE_ADDRESS=0xfed40000 +CONFIG_VGA=y +# CONFIG_DRIVERS_SIL_3114 is not set +# end of Generic Drivers + +# +# Security +# + +# +# CBFS verification +# +# CONFIG_CBFS_VERIFICATION is not set +# end of CBFS verification + +# +# Verified Boot (vboot) +# +# end of Verified Boot (vboot) + +# +# Trusted Platform Module +# +# CONFIG_NO_TPM is not set +CONFIG_TPM1=y +CONFIG_TPM=y +CONFIG_MAINBOARD_HAS_TPM1=y +# CONFIG_TPM_DEACTIVATE is not set +# CONFIG_DEBUG_TPM is not set +# CONFIG_TPM_RDRESP_NEED_DELAY is not set +# end of Trusted Platform Module + +# +# Memory initialization +# +CONFIG_PLATFORM_HAS_DRAM_CLEAR=y +CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y +# end of Memory initialization + +# CONFIG_INTEL_TXT is not set +# CONFIG_STM is not set +CONFIG_BOOTMEDIA_LOCK_NONE=y +# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set +# CONFIG_BOOTMEDIA_LOCK_CHIP is not set +# CONFIG_BOOTMEDIA_SMM_BWP is not set +# end of Security + +CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +CONFIG_ACPI_SOC_NVS=y +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_BOOT_DEVICE_SPI_FLASH=y +CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y +CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y +CONFIG_RTC=y + +# +# Console +# +CONFIG_BOOTBLOCK_CONSOLE=y +CONFIG_POSTCAR_CONSOLE=y +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +# CONFIG_CONSOLE_SPI_FLASH is not set +# CONFIG_CONSOLE_I2C_SMBUS is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=7 +CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y +CONFIG_CONSOLE_USE_ANSI_ESCAPES=y +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +CONFIG_HWBASE_DEBUG_CB=y +# end of Console + +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_MONOTONIC_TIMER=y +CONFIG_HAVE_OPTION_TABLE=y +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y + +# +# System tables +# +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +# end of System tables + +# +# Payload +# +CONFIG_PAYLOAD_NONE=y +# end of Payload + +# +# Debugging +# + +# +# CPU Debug Settings +# +# CONFIG_DISPLAY_MTRRS is not set + +# +# BLOB Debug Settings +# + +# +# General Debug Settings +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_CONSOLE_INIT is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_DEBUG_ADA_CODE is not set +CONFIG_HAVE_EM100_SUPPORT=y +# CONFIG_EM100 is not set +# end of Debugging + +CONFIG_RAMSTAGE_ADA=y +CONFIG_RAMSTAGE_LIBHWBASE=y +CONFIG_HWBASE_DYNAMIC_MMIO=y +CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 +CONFIG_HWBASE_DIRECT_PCIDEV=y +CONFIG_DECOMPRESS_OFAST=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_RELOCATABLE_MODULES=y +CONFIG_HAVE_BOOTBLOCK=y +CONFIG_HAVE_ROMSTAGE=y +CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/scripts/blobs/download b/resources/scripts/blobs/download index 8d7edac0..d1f5138e 100755 --- a/resources/scripts/blobs/download +++ b/resources/scripts/blobs/download @@ -265,6 +265,11 @@ Extract_ec() { cd "${appdir}/${dl_path##*/}" mv Rompaq/68*.BIN ec.bin + if [ ! -f ec.bin ]; then + unar -D ROM.CAB Rom.bin + mv Rom.bin ec.bin + fi + "${kbc1126_ec_dump}" ec.bin ) From 46ec14afa8c9fbd813f6494de9521ad348e5c3ad Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 23 Apr 2023 05:52:16 +0100 Subject: [PATCH 0019/2290] blobutil/inject: handle HP KBC1126 EC firmware --- resources/scripts/blobs/inject | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index 99cfc569..6951f3b6 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -2,6 +2,7 @@ # SPDX-FileCopyrightText: 2022 Caleb La Grange # SPDX-FileCopyrightText: 2022 Ferass El Hafidi +# SPDX-FileCopyrightText: 2023 Leah Rowe # SPDX-License-Identifier: GPL-3.0-only Fail(){ @@ -93,6 +94,33 @@ set -- "resources/coreboot/${board}/config/*" ./coreboot/default/util/ifdtool/ifdtool -i me:${_me_location} ${rom} -O ${rom} || exit 1 fi + if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then + _ec1_location="${CONFIG_KBC1126_FW1#../../}" + _ec1_offset="${CONFIG_KBC1126_FW1_OFFSET}" + _ec2_location="${CONFIG_KBC1126_FW2#../../}" + _ec2_offset="${CONFIG_KBC1126_FW2_OFFSET}" + printf "adding hp kbc1126 ec firmware\n" + if [ "${_ec1_offset}" = "" ] || [ "${_ec1_offset}" = "" ]; + then + printf "EC offsets not declared for board: %s\n" \ + "${board}" + exit 1 + fi + if [ "${_ec1_location}" = "" ] || [ "${_ec2_location}" = "" ]; + then + printf "EC firmware path not declared for board: %s\n" \ + "${board}" + fi + if [ ! -f "${_ec1_location}" ] || [ ! -f "${_ec2_location}" ]; + then + printf "EC firmware not downloaded for board: %s\n" \ + "${board}" + exit 1 + fi + ./coreboot/default/util/cbfstool/cbfstool "${rom}" add -f ${_ec1_location} -n ecfw1.bin -b ${_ec1_offset} -t raw || exit 1 + ./coreboot/default/util/cbfstool/cbfstool "${rom}" add -f ${_ec2_location} -n ecfw2.bin -b ${_ec2_offset} -t raw || exit 1 + fi + if [ "${modifygbe}" = "true" ] && ! [ "${release}" = "true" ]; then Modify_gbe ${rom} fi From 826d3685a1558dbf15b4ebcebc9635f8318a65b3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 23 Apr 2023 05:55:16 +0100 Subject: [PATCH 0020/2290] blobutil/inject: fix bad removal pattern --- resources/scripts/blobs/inject | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index 6951f3b6..e96fface 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -44,7 +44,7 @@ Modify_gbe(){ listboards() { for boarddir in resources/coreboot/*; do if [ ! -d "${boarddir}" ]; then continue; fi - board="${boarddir/##resources/coreboot/}" + board="${boarddir##resources/coreboot/}" board="${board%/}" printf '%s\n' "${board##*/}" done From 0c0d8fe89da36ac4d2e50afb93b1d398a4c2192b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 23 Apr 2023 06:11:09 +0100 Subject: [PATCH 0021/2290] build/release roms: scrub kbc1126 ec firmware --- resources/scripts/build/release/roms | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/resources/scripts/build/release/roms b/resources/scripts/build/release/roms index 5802b4db..29d651b5 100755 --- a/resources/scripts/build/release/roms +++ b/resources/scripts/build/release/roms @@ -3,7 +3,7 @@ # # helper script: generate release archive (ROM images) # -# Copyright (C) 2020,2021,2022 Leah Rowe +# Copyright (C) 2020,2021,2022,2023 Leah Rowe # # 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 @@ -62,10 +62,11 @@ for romdir in bin/*; do CONFIG_HAVE_MRC="y" CONFIG_HAVE_ME_BIN="y" + CONFIG_KBC1126_FIRMWARE="y" grep "CONFIG_HAVE_ME_BIN=y" "resources/coreboot/${target}/config/"* || CONFIG_HAVE_ME_BIN="n" grep "CONFIG_HAVE_MRC=y" "resources/coreboot/${target}/config/"* || CONFIG_HAVE_MRC="n" - - # remove ME/MRC from ROM images + grep "CONFIG_KBC1126_FIRMWARE=y" "resources/coreboot/${target}/config"/* || CONFIG_KBC1126_FIRMWARE="n" + # remove ME/MRC/EC firmware from ROM images if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then if [ ! -d coreboot/default ]; then ./download coreboot default || exit 1 @@ -112,7 +113,11 @@ for romdir in bin/*; do ${cbfstool} "${romfile}" remove -n mrc.bin || exit 1 ${cbfstool} "${romfile}" print fi - + + if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then + ${cbfstool} "${romfile}" remove -n ecfw1.bin || exit 1 + ${cbfstool} "${romfile}" remove -n ecfw2.bin || exit 1 + fi done fi From 20192c08488104f5cacc1f3842ae8e0ee74c44ef Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 23 Apr 2023 06:42:43 +0100 Subject: [PATCH 0022/2290] build/release/src: update blobutil target dirs --- resources/scripts/build/release/src | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/scripts/build/release/src b/resources/scripts/build/release/src index e29cce86..6ca1859d 100755 --- a/resources/scripts/build/release/src +++ b/resources/scripts/build/release/src @@ -69,7 +69,7 @@ done mkdir -p "${srcdir}"/blobs # do not copy intel ME etc, but do copy ifd/gbe files -for i in t440p w541 xx20 xx30; do +for i in t440p xx20 xx30 hp8200sff hp_ivybridge hp_sandybridge; do for j in ifd gbe 16_ifd; do if [ -f "blobs/${i}/${j}.bin" ]; then if [ ! -e "${srcdir}/blobs/${i}" ]; then From 6588be675f34436cfef7d41e630e47fda995fa14 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 24 Apr 2023 13:14:23 +0100 Subject: [PATCH 0023/2290] don't force console mode in grub the deleted patch (in this commit) was written to fix an issue theoretically; it hasn't been fully tested, and some people have reported strange issues since this patch was merged - there is no proof that this patch causes them, but removing this patch is the correct thing to do regardless --- ...orce-terminal_output-to-console-mode.patch | 34 ------------------- util/e6400-flash-unlock/e6400_flash_unlock.c | 5 ++- 2 files changed, 2 insertions(+), 37 deletions(-) delete mode 100644 resources/grub/patches/0004-force-terminal_output-to-console-mode.patch diff --git a/resources/grub/patches/0004-force-terminal_output-to-console-mode.patch b/resources/grub/patches/0004-force-terminal_output-to-console-mode.patch deleted file mode 100644 index 1f72a439..00000000 --- a/resources/grub/patches/0004-force-terminal_output-to-console-mode.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 1969f8ff40ac1190a3a2e406d835f7abb098eb9e Mon Sep 17 00:00:00 2001 -From: Leah Rowe -Date: Sun, 5 Mar 2023 20:04:20 +0000 -Subject: [PATCH 1/1] force terminal_output to console mode - ---- - grub-core/lib/legacy_parse.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/grub-core/lib/legacy_parse.c b/grub-core/lib/legacy_parse.c -index fa0131a1e..5c2473130 100644 ---- a/grub-core/lib/legacy_parse.c -+++ b/grub-core/lib/legacy_parse.c -@@ -579,6 +579,9 @@ grub_legacy_parse (const char *buf, char **entryname, char **suffix) - } - } - -+ console = 1; /* force console mode, for coreboot purposes, and -+ the old code below is disabled by commenting */ -+/* - if (grub_memcmp (ptr, "console", sizeof ("console") - 1) == 0) - console = 1; - -@@ -588,6 +591,7 @@ grub_legacy_parse (const char *buf, char **entryname, char **suffix) - hercules = 1; - if (grub_memcmp (ptr, "graphics", sizeof ("graphics") - 1) == 0) - graphics = 1; -+*/ - while (*ptr && !grub_isspace (*ptr)) - ptr++; - while (*ptr && grub_isspace (*ptr)) --- -2.39.2 - diff --git a/util/e6400-flash-unlock/e6400_flash_unlock.c b/util/e6400-flash-unlock/e6400_flash_unlock.c index 88ba2e98..0bffef6d 100644 --- a/util/e6400-flash-unlock/e6400_flash_unlock.c +++ b/util/e6400-flash-unlock/e6400_flash_unlock.c @@ -63,9 +63,7 @@ volatile uint8_t *rcba_mmio; int main(int argc, char *argv[]) { - int devmemfd; - (void)argc; - (void)argv; + int devmemfd; (void)argc; (void)argv; if ((ioperm(EC_INDEX, 2, 1) == -1) || (ioperm(SMI_EN_REG, 4, 1) == -1)) err(errno, "Could not access IO ports"); @@ -92,6 +90,7 @@ main(int argc, char *argv[]) set_gbl_smi_en(1); printf("SMIs enabled, you can now shutdown the system.\n"); } + return errno; } From f49eccee72973c7b582fbd623545af2a58493f61 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 30 Apr 2023 14:07:02 +0100 Subject: [PATCH 0024/2290] util/e6400-flash-unlock: do void on ec_fdo_command the return value was never used --- util/e6400-flash-unlock/e6400_flash_unlock.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/util/e6400-flash-unlock/e6400_flash_unlock.c b/util/e6400-flash-unlock/e6400_flash_unlock.c index 0bffef6d..9302d099 100644 --- a/util/e6400-flash-unlock/e6400_flash_unlock.c +++ b/util/e6400-flash-unlock/e6400_flash_unlock.c @@ -38,7 +38,7 @@ EC_FDO_CMD { }; int get_fdo_status(void); -uint8_t ec_fdo_command(enum EC_FDO_CMD arg); +void ec_fdo_command(enum EC_FDO_CMD arg); void write_ec_reg(uint8_t index, uint8_t data); void send_ec_cmd(uint8_t cmd); void wait_ec(void); @@ -106,12 +106,11 @@ get_fdo_status(void) * 2 = Enable FDO for next boot * 3 = Disable FDO for next boot - TODO */ -uint8_t +void ec_fdo_command(enum EC_FDO_CMD arg) { write_ec_reg(0x12, arg); send_ec_cmd(0xb8); - return 1; } void From bc85118c51117c1c33eb29bdf22d6b3ebd4611c5 Mon Sep 17 00:00:00 2001 From: Arthegor Date: Thu, 4 May 2023 12:15:47 +0200 Subject: [PATCH 0025/2290] add fedora 38 unifont dependencies --- resources/scripts/build/dependencies/{fedora35 => fedora38} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename resources/scripts/build/dependencies/{fedora35 => fedora38} (93%) diff --git a/resources/scripts/build/dependencies/fedora35 b/resources/scripts/build/dependencies/fedora38 similarity index 93% rename from resources/scripts/build/dependencies/fedora35 rename to resources/scripts/build/dependencies/fedora38 index 41f5430d..78af0c8a 100755 --- a/resources/scripts/build/dependencies/fedora35 +++ b/resources/scripts/build/dependencies/fedora38 @@ -77,7 +77,7 @@ dnf -y install gcc-gnat ncurses-devel doxygen acpica-tools gdb flex bison gcc gi # GRUB build dependencies (also requires build-essential, bison and flex) # ------------------------------------------------------------ -dnf -y install unifont-fonts autogen help2man gcc bison flex dejavu-fonts-all texinfo rsync python3 libusb xz gawk device-mapper fuse gettext freetype-devel intltool libselinux-devel +dnf -y install 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 # BucTS build dependencies (external script) # ------------------------------------------------------------ From f820e3049a7eb11be5d0ab5176c0c85bef52782a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 6 May 2023 07:23:45 +0100 Subject: [PATCH 0026/2290] add e6400_flash_unlock binary to .gitignore only src should be in git --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e55b2616..665158b0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *~ *.o +/util/e6400-flash-unlock/e6400_flash_unlock /util/ich9utils/*.bin /util/ich9utils/demefactory /util/ich9utils/ich9deblob From 6d0ff0286451dc43d32428a44a68d07bc13c058a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 6 May 2023 17:15:14 +0100 Subject: [PATCH 0027/2290] Import new util: bios_extract --- .gitignore | 1 + gitclone | 2 ++ resources/git/revisions | 6 ++++ resources/scripts/build/clean/bios_extract | 28 +++++++++++++++++ resources/scripts/build/module/bios_extract | 33 +++++++++++++++++++++ resources/scripts/build/release/src | 2 +- resources/scripts/download/bios_extract | 22 ++++++++++++++ 7 files changed, 93 insertions(+), 1 deletion(-) create mode 100755 resources/scripts/build/clean/bios_extract create mode 100755 resources/scripts/build/module/bios_extract create mode 100755 resources/scripts/download/bios_extract diff --git a/.gitignore b/.gitignore index 665158b0..ad508acc 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ /util/ich9utils/ich9show /util/ich9utils/ich9gen /TODO +/bios_extract/ /ec/ /tmp/ /payload/ diff --git a/gitclone b/gitclone index 380279e2..6a0079a2 100755 --- a/gitclone +++ b/gitclone @@ -4,6 +4,8 @@ # SPDX-FileCopyrightText: 2022 Ferass El Hafidi # SPDX-License-Identifier: GPL-3.0-only +name="" + Print_help(){ cat <<- EOF Usage: ./gitclone [name] diff --git a/resources/git/revisions b/resources/git/revisions index 21d75089..1658beb7 100644 --- a/resources/git/revisions +++ b/resources/git/revisions @@ -43,3 +43,9 @@ loc: flashrom url: https://review.coreboot.org/flashrom.git } + +{bios_extract}{ + rev: effb120babde7e351c253f7c485848c8ce455dc0 + loc: bios_extract + url: https://review.coreboot.org/bios_extract +} diff --git a/resources/scripts/build/clean/bios_extract b/resources/scripts/build/clean/bios_extract new file mode 100755 index 00000000..65493f78 --- /dev/null +++ b/resources/scripts/build/clean/bios_extract @@ -0,0 +1,28 @@ +#!/usr/bin/env sh + +# helper script: run make clean on bios_extract +# +# Copyright (C) 2023 Leah Rowe +# +# 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 . +# + +[ "x${DEBUG+set}" = 'xset' ] && set -v +set -u -e + +printf "Cleaning the previous build of bios_extract\n" + +[ ! -d "bios_extract/" ] && exit 0 + +make clean -BC bios_extract || exit 1 diff --git a/resources/scripts/build/module/bios_extract b/resources/scripts/build/module/bios_extract new file mode 100755 index 00000000..77677fa1 --- /dev/null +++ b/resources/scripts/build/module/bios_extract @@ -0,0 +1,33 @@ +#!/usr/bin/env sh + +# helper script: builds bios_extract source code +# +# Copyright (C) 2023 Leah Rowe +# +# 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 . +# + +[ "x${DEBUG+set}" = 'xset' ] && set -v +set -u -e + +# Build "flashrom" (utility for flashing/dumping ROMs) +# -------------------------------------------------------------------- + +if [ ! -d "bios_extract/" ]; then + ./download bios_extract +fi + +printf "Building bios_extract\n" + +make -BC bios_extract diff --git a/resources/scripts/build/release/src b/resources/scripts/build/release/src index 6ca1859d..65456ab7 100755 --- a/resources/scripts/build/release/src +++ b/resources/scripts/build/release/src @@ -53,7 +53,7 @@ mkdir -p "${srcdir}/" printf "%s" "${version}" > "${srcdir}"/version -modlist="coreboot flashrom grub memtest86plus seabios me_cleaner u-boot" +modlist="coreboot flashrom grub memtest86plus seabios me_cleaner u-boot bios_extract" dirlist="resources util" # do not add blobs directory here. it is handled below filelist="blobutil modify download build README.md COPYING Makefile update version versiondate projectname .gitcheck gitclone" diff --git a/resources/scripts/download/bios_extract b/resources/scripts/download/bios_extract new file mode 100755 index 00000000..1688aabe --- /dev/null +++ b/resources/scripts/download/bios_extract @@ -0,0 +1,22 @@ +#!/usr/bin/env sh +# +# Copyright (C) 2023 Leah Rowe +# +# 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 . +# + +[ "x${DEBUG+set}" = 'xset' ] && set -v +set -u -e + +./gitclone bios_extract From f5150f26a8c310746a267ce8090ccca9d0fceaf1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 6 May 2023 18:27:31 +0100 Subject: [PATCH 0028/2290] remove e6400_8mb and e6400_16mb (keep e6400_4mb) nobody will bother to upgrade the flash on those machines not much point maintaining the 8/16mb versions might aswell do just the _4mb version --- resources/coreboot/e6400_16mb/board.cfg | 8 - .../e6400_16mb/config/libgfxinit_corebootfb | 559 ------------------ .../e6400_16mb/config/libgfxinit_txtmode | 555 ----------------- resources/coreboot/e6400_8mb/board.cfg | 8 - .../e6400_8mb/config/libgfxinit_corebootfb | 559 ------------------ .../e6400_8mb/config/libgfxinit_txtmode | 555 ----------------- 6 files changed, 2244 deletions(-) delete mode 100644 resources/coreboot/e6400_16mb/board.cfg delete mode 100644 resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb delete mode 100644 resources/coreboot/e6400_16mb/config/libgfxinit_txtmode delete mode 100644 resources/coreboot/e6400_8mb/board.cfg delete mode 100644 resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb delete mode 100644 resources/coreboot/e6400_8mb/config/libgfxinit_txtmode diff --git a/resources/coreboot/e6400_16mb/board.cfg b/resources/coreboot/e6400_16mb/board.cfg deleted file mode 100644 index 35a5f912..00000000 --- a/resources/coreboot/e6400_16mb/board.cfg +++ /dev/null @@ -1,8 +0,0 @@ -cbtree="default" -romtype="16MiB ICH9 IFD NOR flash" -arch="x86_64" -payload_grub="n" -payload_grub_withseabios="n" -payload_seabios="y" -payload_memtest="y" -grub_scan_disk="ahci" diff --git a/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb b/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb deleted file mode 100644 index fbf03e20..00000000 --- a/resources/coreboot/e6400_16mb/config/libgfxinit_corebootfb +++ /dev/null @@ -1,559 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# coreboot configuration -# - -# -# General setup -# -CONFIG_COREBOOT_BUILD=y -CONFIG_LOCALVERSION="" -CONFIG_CBFS_PREFIX="fallback" -CONFIG_COMPILER_GCC=y -# CONFIG_COMPILER_LLVM_CLANG is not set -CONFIG_ARCH_SUPPORTS_CLANG=y -# CONFIG_ANY_TOOLCHAIN is not set -# CONFIG_CCACHE is not set -# CONFIG_IWYU is not set -# CONFIG_FMD_GENPARSER is not set -# CONFIG_UTIL_GENPARSER is not set -# CONFIG_OPTION_BACKEND_NONE is not set -CONFIG_USE_OPTION_TABLE=y -CONFIG_STATIC_OPTION_TABLE=y -CONFIG_COMPRESS_RAMSTAGE_LZMA=y -# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set -CONFIG_INCLUDE_CONFIG_FILE=y -CONFIG_COLLECT_TIMESTAMPS=y -# CONFIG_TIMESTAMPS_ON_CONSOLE is not set -CONFIG_USE_BLOBS=y -# CONFIG_USE_AMD_BLOBS is not set -# CONFIG_USE_QC_BLOBS is not set -# CONFIG_COVERAGE is not set -# CONFIG_UBSAN is not set -CONFIG_HAVE_ASAN_IN_RAMSTAGE=y -# CONFIG_ASAN is not set -# CONFIG_NO_STAGE_CACHE is not set -CONFIG_TSEG_STAGE_CACHE=y -# CONFIG_UPDATE_IMAGE is not set -# CONFIG_BOOTSPLASH_IMAGE is not set -# CONFIG_FW_CONFIG is not set - -# -# Software Bill Of Materials (SBOM) -# -# CONFIG_SBOM is not set -# end of Software Bill Of Materials (SBOM) -# end of General setup - -# -# Mainboard -# - -# -# Important: Run 'make distclean' before switching boards -# -# CONFIG_VENDOR_51NB is not set -# CONFIG_VENDOR_ACER is not set -# CONFIG_VENDOR_ADLINK is not set -# CONFIG_VENDOR_AMD is not set -# CONFIG_VENDOR_AOPEN is not set -# CONFIG_VENDOR_APPLE is not set -# CONFIG_VENDOR_ASROCK is not set -# CONFIG_VENDOR_ASUS is not set -# CONFIG_VENDOR_BIOSTAR is not set -# CONFIG_VENDOR_BOSTENTECH is not set -# CONFIG_VENDOR_CAVIUM is not set -# CONFIG_VENDOR_CLEVO is not set -# CONFIG_VENDOR_COMPULAB is not set -CONFIG_VENDOR_DELL=y -# CONFIG_VENDOR_EMULATION is not set -# CONFIG_VENDOR_EXAMPLE is not set -# CONFIG_VENDOR_FACEBOOK is not set -# CONFIG_VENDOR_FOXCONN is not set -# CONFIG_VENDOR_GETAC is not set -# CONFIG_VENDOR_GIGABYTE is not set -# CONFIG_VENDOR_GOOGLE is not set -# CONFIG_VENDOR_HP is not set -# CONFIG_VENDOR_IBASE is not set -# CONFIG_VENDOR_INTEL is not set -# CONFIG_VENDOR_KONTRON is not set -# CONFIG_VENDOR_LENOVO is not set -# CONFIG_VENDOR_LIBRETREND is not set -# CONFIG_VENDOR_MSI is not set -# CONFIG_VENDOR_OCP is not set -# CONFIG_VENDOR_OPENCELLULAR is not set -# CONFIG_VENDOR_PACKARDBELL is not set -# CONFIG_VENDOR_PCENGINES is not set -# CONFIG_VENDOR_PINE64 is not set -# CONFIG_VENDOR_PORTWELL is not set -# CONFIG_VENDOR_PRODRIVE is not set -# CONFIG_VENDOR_PROTECTLI is not set -# CONFIG_VENDOR_PURISM is not set -# CONFIG_VENDOR_RAZER is not set -# CONFIG_VENDOR_RODA is not set -# CONFIG_VENDOR_SAMSUNG is not set -# CONFIG_VENDOR_SAPPHIRE is not set -# CONFIG_VENDOR_SIEMENS is not set -# CONFIG_VENDOR_SIFIVE is not set -# CONFIG_VENDOR_STARLABS is not set -# CONFIG_VENDOR_SUPERMICRO is not set -# CONFIG_VENDOR_SYSTEM76 is not set -# CONFIG_VENDOR_TI is not set -# CONFIG_VENDOR_UP is not set -CONFIG_BOARD_SPECIFIC_OPTIONS=y -CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400" -CONFIG_MAINBOARD_VERSION="1.0" -CONFIG_MAINBOARD_DIR="dell/e6400" -CONFIG_VGA_BIOS_ID="8086,2a42" -CONFIG_DIMM_MAX=4 -CONFIG_DIMM_SPD_SIZE=256 -CONFIG_FMDFILE="" -# CONFIG_NO_POST is not set -CONFIG_MAINBOARD_VENDOR="Dell Inc." -CONFIG_CBFS_SIZE=0xFFD000 -CONFIG_LINEAR_FRAMEBUFFER_MAX_HEIGHT=1600 -CONFIG_LINEAR_FRAMEBUFFER_MAX_WIDTH=2560 -CONFIG_MAX_CPUS=4 -# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set -CONFIG_POST_DEVICE=y -CONFIG_POST_IO=y -CONFIG_DEVICETREE="devicetree.cb" -# CONFIG_VBOOT is not set -CONFIG_OVERRIDE_DEVICETREE="" -# CONFIG_VGA_BIOS is not set -CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc." -CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt" -CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 -CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" -CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" -CONFIG_USBDEBUG_HCD_INDEX=1 -CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 -# CONFIG_CONSOLE_POST is not set -CONFIG_BOARD_DELL_E6400=y -# CONFIG_BOARD_DELL_OPTIPLEX_9010 is not set -# CONFIG_BOARD_DELL_PRECISION_T1650 is not set -CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" -CONFIG_DCACHE_RAM_BASE=0xfefc0000 -CONFIG_DCACHE_RAM_SIZE=0x10000 -CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 -CONFIG_DCACHE_BSP_STACK_SIZE=0x2000 -CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 -CONFIG_ECAM_MMCONF_BUS_NUMBER=64 -CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 -CONFIG_HAVE_INTEL_FIRMWARE=y -CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y -CONFIG_SPI_FLASH_WINBOND=y -# CONFIG_DRIVERS_INTEL_WIFI is not set -CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 -CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" -# CONFIG_HAVE_IFD_BIN is not set -CONFIG_PCIEXP_HOTPLUG_BUSES=8 -CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 -CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 -CONFIG_PS2K_EISAID="PNP0303" -CONFIG_PS2M_EISAID="PNP0F13" -CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" -# CONFIG_DEBUG_SMI is not set -# CONFIG_PCIEXP_L1_SUB_STATE is not set -# CONFIG_PCIEXP_CLK_PM is not set -# CONFIG_DRIVERS_UART_8250IO is not set -CONFIG_HEAP_SIZE=0x4000 -CONFIG_EC_GPE_SCI=0x50 -CONFIG_BOARD_ROMSIZE_KB_4096=y -# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set -CONFIG_COREBOOT_ROMSIZE_KB_16384=y -# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set -CONFIG_COREBOOT_ROMSIZE_KB=16384 -CONFIG_ROM_SIZE=0x01000000 -CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y -CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y -CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y -# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set -# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set -CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 -# end of Mainboard - -CONFIG_SYSTEM_TYPE_LAPTOP=y - -# -# Chipset -# - -# -# SoC -# -CONFIG_CHIPSET_DEVICETREE="" -CONFIG_CBFS_MCACHE_SIZE=0x4000 -CONFIG_ROMSTAGE_ADDR=0x2000000 -CONFIG_VERSTAGE_ADDR=0x2000000 -CONFIG_SMM_RESERVED_SIZE=0x100000 -CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" -CONFIG_EHCI_BAR=0xfef00000 -CONFIG_STACK_SIZE=0x2000 -CONFIG_VBT_DATA_SIZE_KB=8 -CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 -CONFIG_INTEL_GMA_BCLV_WIDTH=16 -CONFIG_INTEL_GMA_BCLM_OFFSET=0x61256 -CONFIG_INTEL_GMA_BCLM_WIDTH=16 -CONFIG_BOOTBLOCK_IN_CBFS=y -CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 -CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 -CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 -# CONFIG_PCIEXP_ASPM is not set -# CONFIG_PCIEXP_COMMON_CLOCK is not set -CONFIG_FIXED_SMBUS_IO_BASE=0x400 -CONFIG_HPET_MIN_TICKS=0x80 -CONFIG_CBFS_CACHE_ALIGN=8 - -# -# CPU -# -CONFIG_CPU_INTEL_MODEL_6FX=y -CONFIG_CPU_INTEL_MODEL_1067X=y -CONFIG_SOCKET_SPECIFIC_OPTIONS=y -CONFIG_CPU_INTEL_SOCKET_P=y -CONFIG_CPU_INTEL_COMMON=y -CONFIG_ENABLE_VMX=y -CONFIG_SET_IA32_FC_LOCK_BIT=y -CONFIG_SET_MSR_AESNI_LOCK_BIT=y -CONFIG_CPU_INTEL_COMMON_TIMEBASE=y -CONFIG_CPU_INTEL_COMMON_SMM=y -CONFIG_MICROCODE_UPDATE_PRE_RAM=y -CONFIG_PARALLEL_MP=y -CONFIG_XAPIC_ONLY=y -# CONFIG_X2APIC_ONLY is not set -# CONFIG_X2APIC_RUNTIME is not set -# CONFIG_X2APIC_LATE_WORKAROUND is not set -CONFIG_UDELAY_TSC=y -CONFIG_TSC_MONOTONIC_TIMER=y -CONFIG_TSC_SYNC_MFENCE=y -CONFIG_SETUP_XIP_CACHE=y -CONFIG_LOGICAL_CPUS=y -CONFIG_HAVE_SMI_HANDLER=y -CONFIG_SMM_TSEG=y -CONFIG_SMM_LAPIC_REMAP_MITIGATION=y -CONFIG_AP_STACK_SIZE=0x800 -CONFIG_SMP=y -CONFIG_MMX=y -CONFIG_SSE=y -CONFIG_SSE2=y -CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y -CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y -CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y -# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set -# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set -# CONFIG_CPU_MICROCODE_CBFS_NONE is not set - -# -# Northbridge -# -CONFIG_NORTHBRIDGE_INTEL_GM45=y - -# -# Southbridge -# -CONFIG_PCIEXP_HOTPLUG=y -CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y -CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y -# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set -CONFIG_TCO_SPACE_NOT_YET_SPLIT=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y -CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 -CONFIG_RCBA_LENGTH=0x4000 - -# -# Super I/O -# - -# -# Embedded Controllers -# -CONFIG_EC_DELL_MEC5035=y - -# -# Intel Firmware -# -CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y -CONFIG_ARCH_X86=y -CONFIG_ARCH_BOOTBLOCK_X86_32=y -CONFIG_ARCH_VERSTAGE_X86_32=y -CONFIG_ARCH_ROMSTAGE_X86_32=y -CONFIG_ARCH_POSTCAR_X86_32=y -CONFIG_ARCH_RAMSTAGE_X86_32=y -CONFIG_ARCH_ALL_STAGES_X86_32=y -CONFIG_HAVE_EXP_X86_64_SUPPORT=y -# CONFIG_USE_EXP_X86_64_SUPPORT is not set -CONFIG_AP_IN_SIPI_WAIT=y -CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y -CONFIG_PC80_SYSTEM=y -CONFIG_HAVE_CMOS_DEFAULT=y -CONFIG_POSTCAR_STAGE=y -CONFIG_BOOTBLOCK_SIMPLE=y -# CONFIG_BOOTBLOCK_NORMAL is not set -CONFIG_COLLECT_TIMESTAMPS_TSC=y -CONFIG_HAVE_CF9_RESET=y -CONFIG_DEBUG_HW_BREAKPOINTS=y -CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y -# end of Chipset - -# -# Devices -# -CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y -CONFIG_HAVE_LINEAR_FRAMEBUFFER=y -CONFIG_MAINBOARD_HAS_LIBGFXINIT=y -CONFIG_MAINBOARD_USE_LIBGFXINIT=y -# CONFIG_VGA_ROM_RUN is not set -# CONFIG_NO_GFX_INIT is not set -CONFIG_NO_EARLY_GFX_INIT=y - -# -# Display -# -# CONFIG_VGA_TEXT_FRAMEBUFFER is not set -CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y -CONFIG_LINEAR_FRAMEBUFFER=y -# CONFIG_BOOTSPLASH is not set -# end of Display - -CONFIG_PCI=y -CONFIG_ECAM_MMCONF_SUPPORT=y -CONFIG_PCIX_PLUGIN_SUPPORT=y -CONFIG_CARDBUS_PLUGIN_SUPPORT=y -CONFIG_AZALIA_PLUGIN_SUPPORT=y -CONFIG_PCIEXP_PLUGIN_SUPPORT=y -CONFIG_ECAM_MMCONF_LENGTH=0x04000000 -CONFIG_PCI_ALLOW_BUS_MASTER=y -CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y -CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y -# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set -# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set -CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y -# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set -CONFIG_PCIEXP_HOTPLUG_IO=0x2000 -CONFIG_FIRMWARE_CONNECTION_MANAGER=y -# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set -# CONFIG_EARLY_PCI_BRIDGE is not set -CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 -CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 -CONFIG_INTEL_GMA_HAVE_VBT=y -CONFIG_INTEL_GMA_ADD_VBT=y -# CONFIG_SOFTWARE_I2C is not set -CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 -# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set -CONFIG_NO_DDR5=y -CONFIG_NO_LPDDR4=y -CONFIG_NO_DDR4=y -CONFIG_USE_DDR3=y -CONFIG_USE_DDR2=y -# end of Devices - -# -# Generic Drivers -# -CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 -# CONFIG_ELOG is not set -# CONFIG_SMMSTORE is not set -CONFIG_SPI_FLASH=y -CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y -CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y -# CONFIG_SPI_FLASH_NO_FAST_READ is not set -CONFIG_SPI_FLASH_ADESTO=y -CONFIG_SPI_FLASH_AMIC=y -CONFIG_SPI_FLASH_ATMEL=y -CONFIG_SPI_FLASH_EON=y -CONFIG_SPI_FLASH_GIGADEVICE=y -CONFIG_SPI_FLASH_MACRONIX=y -CONFIG_SPI_FLASH_SPANSION=y -CONFIG_SPI_FLASH_SST=y -CONFIG_SPI_FLASH_STMICRO=y -# CONFIG_DRIVERS_UART_OXPCIE is not set -CONFIG_HAVE_USBDEBUG=y -CONFIG_HAVE_USBDEBUG_OPTIONS=y -# CONFIG_USBDEBUG is not set -# CONFIG_VPD is not set -# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set -# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set -# CONFIG_DRIVERS_I2C_MAX98396 is not set -CONFIG_INTEL_EDID=y -CONFIG_INTEL_INT15=y -CONFIG_INTEL_GMA_ACPI=y -CONFIG_INTEL_GMA_SSC_ALTERNATE_REF=y -CONFIG_GFX_GMA=y -CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y -CONFIG_INTEL_GMA_OPREGION_2_0=y -CONFIG_GFX_GMA_DYN_CPU=y -CONFIG_GFX_GMA_GENERATION="G45" -CONFIG_GFX_GMA_PCH="No_PCH" -CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" -CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" -# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -# CONFIG_DRIVERS_PS2_KEYBOARD is not set -CONFIG_DRIVERS_MC146818=y -# CONFIG_USE_PC_CMOS_ALTCENTURY is not set -CONFIG_VGA=y -# CONFIG_DRIVERS_SIL_3114 is not set -# end of Generic Drivers - -# -# Security -# - -# -# CBFS verification -# -# CONFIG_CBFS_VERIFICATION is not set -# end of CBFS verification - -# -# Verified Boot (vboot) -# -# end of Verified Boot (vboot) - -# -# Trusted Platform Module -# -CONFIG_NO_TPM=y -# end of Trusted Platform Module - -# -# Memory initialization -# -CONFIG_PLATFORM_HAS_DRAM_CLEAR=y -CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y -# end of Memory initialization - -# CONFIG_STM is not set -CONFIG_BOOTMEDIA_LOCK_NONE=y -# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set -# CONFIG_BOOTMEDIA_LOCK_CHIP is not set -# CONFIG_BOOTMEDIA_SMM_BWP is not set -# end of Security - -CONFIG_ACPI_HAVE_PCAT_8259=y -CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y -CONFIG_ACPI_SOC_NVS=y -CONFIG_HAVE_ACPI_TABLES=y -CONFIG_BOOT_DEVICE_SPI_FLASH=y -CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y -CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y - -# -# Console -# -CONFIG_BOOTBLOCK_CONSOLE=y -CONFIG_POSTCAR_CONSOLE=y -CONFIG_SQUELCH_EARLY_SMP=y -# CONFIG_SPKMODEM is not set -# CONFIG_CONSOLE_NE2K is not set -CONFIG_CONSOLE_CBMEM=y -# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set -# CONFIG_CONSOLE_SPI_FLASH is not set -# CONFIG_CONSOLE_I2C_SMBUS is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set -CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y -CONFIG_DEFAULT_CONSOLE_LOGLEVEL=0 -CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y -CONFIG_CONSOLE_USE_ANSI_ESCAPES=y -# CONFIG_CMOS_POST is not set -CONFIG_POST_DEVICE_NONE=y -# CONFIG_POST_DEVICE_LPC is not set -# CONFIG_POST_DEVICE_PCI_PCIE is not set -CONFIG_POST_IO_PORT=0x80 -CONFIG_HWBASE_DEBUG_NULL=y -# end of Console - -CONFIG_HAVE_ACPI_RESUME=y -CONFIG_RESUME_PATH_SAME_AS_BOOT=y -CONFIG_HAVE_MONOTONIC_TIMER=y -CONFIG_HAVE_OPTION_TABLE=y -CONFIG_IOAPIC=y -CONFIG_USE_WATCHDOG_ON_BOOT=y - -# -# System tables -# -CONFIG_GENERATE_SMBIOS_TABLES=y -CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" -# end of System tables - -# -# Payload -# -CONFIG_PAYLOAD_NONE=y -# end of Payload - -# -# Debugging -# - -# -# CPU Debug Settings -# -# CONFIG_DISPLAY_MTRRS is not set - -# -# BLOB Debug Settings -# - -# -# General Debug Settings -# -# CONFIG_FATAL_ASSERTS is not set -# CONFIG_DEBUG_CBFS is not set -CONFIG_HAVE_DEBUG_RAM_SETUP=y -# CONFIG_DEBUG_RAM_SETUP is not set -CONFIG_HAVE_DEBUG_SMBUS=y -# CONFIG_DEBUG_SMBUS is not set -# CONFIG_DEBUG_CONSOLE_INIT is not set -# CONFIG_DEBUG_SPI_FLASH is not set -# CONFIG_DEBUG_BOOT_STATE is not set -# CONFIG_DEBUG_ADA_CODE is not set -# end of Debugging - -CONFIG_RAMSTAGE_ADA=y -CONFIG_RAMSTAGE_LIBHWBASE=y -CONFIG_HWBASE_DYNAMIC_MMIO=y -CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 -CONFIG_HWBASE_DIRECT_PCIDEV=y -CONFIG_DECOMPRESS_OFAST=y -CONFIG_WARNINGS_ARE_ERRORS=y -CONFIG_MAX_REBOOT_CNT=3 -CONFIG_RELOCATABLE_MODULES=y -CONFIG_HAVE_BOOTBLOCK=y -CONFIG_HAVE_ROMSTAGE=y -CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode b/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode deleted file mode 100644 index 4ff5f2f9..00000000 --- a/resources/coreboot/e6400_16mb/config/libgfxinit_txtmode +++ /dev/null @@ -1,555 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# coreboot configuration -# - -# -# General setup -# -CONFIG_COREBOOT_BUILD=y -CONFIG_LOCALVERSION="" -CONFIG_CBFS_PREFIX="fallback" -CONFIG_COMPILER_GCC=y -# CONFIG_COMPILER_LLVM_CLANG is not set -CONFIG_ARCH_SUPPORTS_CLANG=y -# CONFIG_ANY_TOOLCHAIN is not set -# CONFIG_CCACHE is not set -# CONFIG_IWYU is not set -# CONFIG_FMD_GENPARSER is not set -# CONFIG_UTIL_GENPARSER is not set -# CONFIG_OPTION_BACKEND_NONE is not set -CONFIG_USE_OPTION_TABLE=y -CONFIG_STATIC_OPTION_TABLE=y -CONFIG_COMPRESS_RAMSTAGE_LZMA=y -# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set -CONFIG_INCLUDE_CONFIG_FILE=y -CONFIG_COLLECT_TIMESTAMPS=y -# CONFIG_TIMESTAMPS_ON_CONSOLE is not set -CONFIG_USE_BLOBS=y -# CONFIG_USE_AMD_BLOBS is not set -# CONFIG_USE_QC_BLOBS is not set -# CONFIG_COVERAGE is not set -# CONFIG_UBSAN is not set -CONFIG_HAVE_ASAN_IN_RAMSTAGE=y -# CONFIG_ASAN is not set -# CONFIG_NO_STAGE_CACHE is not set -CONFIG_TSEG_STAGE_CACHE=y -# CONFIG_UPDATE_IMAGE is not set -# CONFIG_BOOTSPLASH_IMAGE is not set -# CONFIG_FW_CONFIG is not set - -# -# Software Bill Of Materials (SBOM) -# -# CONFIG_SBOM is not set -# end of Software Bill Of Materials (SBOM) -# end of General setup - -# -# Mainboard -# - -# -# Important: Run 'make distclean' before switching boards -# -# CONFIG_VENDOR_51NB is not set -# CONFIG_VENDOR_ACER is not set -# CONFIG_VENDOR_ADLINK is not set -# CONFIG_VENDOR_AMD is not set -# CONFIG_VENDOR_AOPEN is not set -# CONFIG_VENDOR_APPLE is not set -# CONFIG_VENDOR_ASROCK is not set -# CONFIG_VENDOR_ASUS is not set -# CONFIG_VENDOR_BIOSTAR is not set -# CONFIG_VENDOR_BOSTENTECH is not set -# CONFIG_VENDOR_CAVIUM is not set -# CONFIG_VENDOR_CLEVO is not set -# CONFIG_VENDOR_COMPULAB is not set -CONFIG_VENDOR_DELL=y -# CONFIG_VENDOR_EMULATION is not set -# CONFIG_VENDOR_EXAMPLE is not set -# CONFIG_VENDOR_FACEBOOK is not set -# CONFIG_VENDOR_FOXCONN is not set -# CONFIG_VENDOR_GETAC is not set -# CONFIG_VENDOR_GIGABYTE is not set -# CONFIG_VENDOR_GOOGLE is not set -# CONFIG_VENDOR_HP is not set -# CONFIG_VENDOR_IBASE is not set -# CONFIG_VENDOR_INTEL is not set -# CONFIG_VENDOR_KONTRON is not set -# CONFIG_VENDOR_LENOVO is not set -# CONFIG_VENDOR_LIBRETREND is not set -# CONFIG_VENDOR_MSI is not set -# CONFIG_VENDOR_OCP is not set -# CONFIG_VENDOR_OPENCELLULAR is not set -# CONFIG_VENDOR_PACKARDBELL is not set -# CONFIG_VENDOR_PCENGINES is not set -# CONFIG_VENDOR_PINE64 is not set -# CONFIG_VENDOR_PORTWELL is not set -# CONFIG_VENDOR_PRODRIVE is not set -# CONFIG_VENDOR_PROTECTLI is not set -# CONFIG_VENDOR_PURISM is not set -# CONFIG_VENDOR_RAZER is not set -# CONFIG_VENDOR_RODA is not set -# CONFIG_VENDOR_SAMSUNG is not set -# CONFIG_VENDOR_SAPPHIRE is not set -# CONFIG_VENDOR_SIEMENS is not set -# CONFIG_VENDOR_SIFIVE is not set -# CONFIG_VENDOR_STARLABS is not set -# CONFIG_VENDOR_SUPERMICRO is not set -# CONFIG_VENDOR_SYSTEM76 is not set -# CONFIG_VENDOR_TI is not set -# CONFIG_VENDOR_UP is not set -CONFIG_BOARD_SPECIFIC_OPTIONS=y -CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400" -CONFIG_MAINBOARD_VERSION="1.0" -CONFIG_MAINBOARD_DIR="dell/e6400" -CONFIG_VGA_BIOS_ID="8086,2a42" -CONFIG_DIMM_MAX=4 -CONFIG_DIMM_SPD_SIZE=256 -CONFIG_FMDFILE="" -# CONFIG_NO_POST is not set -CONFIG_MAINBOARD_VENDOR="Dell Inc." -CONFIG_CBFS_SIZE=0xFFD000 -CONFIG_MAX_CPUS=4 -# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set -CONFIG_POST_DEVICE=y -CONFIG_POST_IO=y -CONFIG_DEVICETREE="devicetree.cb" -# CONFIG_VBOOT is not set -CONFIG_OVERRIDE_DEVICETREE="" -# CONFIG_VGA_BIOS is not set -CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc." -CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt" -CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 -CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" -CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" -CONFIG_USBDEBUG_HCD_INDEX=1 -CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 -# CONFIG_CONSOLE_POST is not set -CONFIG_BOARD_DELL_E6400=y -# CONFIG_BOARD_DELL_OPTIPLEX_9010 is not set -# CONFIG_BOARD_DELL_PRECISION_T1650 is not set -CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" -CONFIG_DCACHE_RAM_BASE=0xfefc0000 -CONFIG_DCACHE_RAM_SIZE=0x10000 -CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 -CONFIG_DCACHE_BSP_STACK_SIZE=0x2000 -CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 -CONFIG_ECAM_MMCONF_BUS_NUMBER=64 -CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 -CONFIG_HAVE_INTEL_FIRMWARE=y -CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y -CONFIG_SPI_FLASH_WINBOND=y -# CONFIG_DRIVERS_INTEL_WIFI is not set -CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 -CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" -# CONFIG_HAVE_IFD_BIN is not set -CONFIG_PCIEXP_HOTPLUG_BUSES=8 -CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 -CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 -CONFIG_PS2K_EISAID="PNP0303" -CONFIG_PS2M_EISAID="PNP0F13" -CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" -# CONFIG_DEBUG_SMI is not set -# CONFIG_PCIEXP_L1_SUB_STATE is not set -# CONFIG_PCIEXP_CLK_PM is not set -# CONFIG_DRIVERS_UART_8250IO is not set -CONFIG_HEAP_SIZE=0x4000 -CONFIG_EC_GPE_SCI=0x50 -CONFIG_BOARD_ROMSIZE_KB_4096=y -# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set -CONFIG_COREBOOT_ROMSIZE_KB_16384=y -# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set -CONFIG_COREBOOT_ROMSIZE_KB=16384 -CONFIG_ROM_SIZE=0x01000000 -CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y -CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y -CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y -# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set -# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set -CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 -# end of Mainboard - -CONFIG_SYSTEM_TYPE_LAPTOP=y - -# -# Chipset -# - -# -# SoC -# -CONFIG_CHIPSET_DEVICETREE="" -CONFIG_CBFS_MCACHE_SIZE=0x4000 -CONFIG_ROMSTAGE_ADDR=0x2000000 -CONFIG_VERSTAGE_ADDR=0x2000000 -CONFIG_SMM_RESERVED_SIZE=0x100000 -CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" -CONFIG_EHCI_BAR=0xfef00000 -CONFIG_STACK_SIZE=0x2000 -CONFIG_VBT_DATA_SIZE_KB=8 -CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 -CONFIG_INTEL_GMA_BCLV_WIDTH=16 -CONFIG_INTEL_GMA_BCLM_OFFSET=0x61256 -CONFIG_INTEL_GMA_BCLM_WIDTH=16 -CONFIG_BOOTBLOCK_IN_CBFS=y -CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 -CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 -CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 -# CONFIG_PCIEXP_ASPM is not set -# CONFIG_PCIEXP_COMMON_CLOCK is not set -CONFIG_FIXED_SMBUS_IO_BASE=0x400 -CONFIG_HPET_MIN_TICKS=0x80 -CONFIG_CBFS_CACHE_ALIGN=8 - -# -# CPU -# -CONFIG_CPU_INTEL_MODEL_6FX=y -CONFIG_CPU_INTEL_MODEL_1067X=y -CONFIG_SOCKET_SPECIFIC_OPTIONS=y -CONFIG_CPU_INTEL_SOCKET_P=y -CONFIG_CPU_INTEL_COMMON=y -CONFIG_ENABLE_VMX=y -CONFIG_SET_IA32_FC_LOCK_BIT=y -CONFIG_SET_MSR_AESNI_LOCK_BIT=y -CONFIG_CPU_INTEL_COMMON_TIMEBASE=y -CONFIG_CPU_INTEL_COMMON_SMM=y -CONFIG_MICROCODE_UPDATE_PRE_RAM=y -CONFIG_PARALLEL_MP=y -CONFIG_XAPIC_ONLY=y -# CONFIG_X2APIC_ONLY is not set -# CONFIG_X2APIC_RUNTIME is not set -# CONFIG_X2APIC_LATE_WORKAROUND is not set -CONFIG_UDELAY_TSC=y -CONFIG_TSC_MONOTONIC_TIMER=y -CONFIG_TSC_SYNC_MFENCE=y -CONFIG_SETUP_XIP_CACHE=y -CONFIG_LOGICAL_CPUS=y -CONFIG_HAVE_SMI_HANDLER=y -CONFIG_SMM_TSEG=y -CONFIG_SMM_LAPIC_REMAP_MITIGATION=y -CONFIG_AP_STACK_SIZE=0x800 -CONFIG_SMP=y -CONFIG_MMX=y -CONFIG_SSE=y -CONFIG_SSE2=y -CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y -CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y -CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y -# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set -# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set -# CONFIG_CPU_MICROCODE_CBFS_NONE is not set - -# -# Northbridge -# -CONFIG_NORTHBRIDGE_INTEL_GM45=y - -# -# Southbridge -# -CONFIG_PCIEXP_HOTPLUG=y -CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y -CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y -# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set -CONFIG_TCO_SPACE_NOT_YET_SPLIT=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y -CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 -CONFIG_RCBA_LENGTH=0x4000 - -# -# Super I/O -# - -# -# Embedded Controllers -# -CONFIG_EC_DELL_MEC5035=y - -# -# Intel Firmware -# -CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y -CONFIG_ARCH_X86=y -CONFIG_ARCH_BOOTBLOCK_X86_32=y -CONFIG_ARCH_VERSTAGE_X86_32=y -CONFIG_ARCH_ROMSTAGE_X86_32=y -CONFIG_ARCH_POSTCAR_X86_32=y -CONFIG_ARCH_RAMSTAGE_X86_32=y -CONFIG_ARCH_ALL_STAGES_X86_32=y -CONFIG_HAVE_EXP_X86_64_SUPPORT=y -# CONFIG_USE_EXP_X86_64_SUPPORT is not set -CONFIG_AP_IN_SIPI_WAIT=y -CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y -CONFIG_PC80_SYSTEM=y -CONFIG_HAVE_CMOS_DEFAULT=y -CONFIG_POSTCAR_STAGE=y -CONFIG_BOOTBLOCK_SIMPLE=y -# CONFIG_BOOTBLOCK_NORMAL is not set -CONFIG_COLLECT_TIMESTAMPS_TSC=y -CONFIG_HAVE_CF9_RESET=y -CONFIG_DEBUG_HW_BREAKPOINTS=y -CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y -# end of Chipset - -# -# Devices -# -CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y -CONFIG_HAVE_LINEAR_FRAMEBUFFER=y -CONFIG_MAINBOARD_HAS_LIBGFXINIT=y -CONFIG_MAINBOARD_USE_LIBGFXINIT=y -# CONFIG_VGA_ROM_RUN is not set -# CONFIG_NO_GFX_INIT is not set -CONFIG_NO_EARLY_GFX_INIT=y - -# -# Display -# -CONFIG_VGA_TEXT_FRAMEBUFFER=y -# CONFIG_GENERIC_LINEAR_FRAMEBUFFER is not set -# end of Display - -CONFIG_PCI=y -CONFIG_ECAM_MMCONF_SUPPORT=y -CONFIG_PCIX_PLUGIN_SUPPORT=y -CONFIG_CARDBUS_PLUGIN_SUPPORT=y -CONFIG_AZALIA_PLUGIN_SUPPORT=y -CONFIG_PCIEXP_PLUGIN_SUPPORT=y -CONFIG_ECAM_MMCONF_LENGTH=0x04000000 -CONFIG_PCI_ALLOW_BUS_MASTER=y -CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y -CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y -# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set -# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set -CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y -# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set -CONFIG_PCIEXP_HOTPLUG_IO=0x2000 -CONFIG_FIRMWARE_CONNECTION_MANAGER=y -# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set -# CONFIG_EARLY_PCI_BRIDGE is not set -CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 -CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 -CONFIG_INTEL_GMA_HAVE_VBT=y -CONFIG_INTEL_GMA_ADD_VBT=y -# CONFIG_SOFTWARE_I2C is not set -CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 -# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set -CONFIG_NO_DDR5=y -CONFIG_NO_LPDDR4=y -CONFIG_NO_DDR4=y -CONFIG_USE_DDR3=y -CONFIG_USE_DDR2=y -# end of Devices - -# -# Generic Drivers -# -CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 -# CONFIG_ELOG is not set -# CONFIG_SMMSTORE is not set -CONFIG_SPI_FLASH=y -CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y -CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y -# CONFIG_SPI_FLASH_NO_FAST_READ is not set -CONFIG_SPI_FLASH_ADESTO=y -CONFIG_SPI_FLASH_AMIC=y -CONFIG_SPI_FLASH_ATMEL=y -CONFIG_SPI_FLASH_EON=y -CONFIG_SPI_FLASH_GIGADEVICE=y -CONFIG_SPI_FLASH_MACRONIX=y -CONFIG_SPI_FLASH_SPANSION=y -CONFIG_SPI_FLASH_SST=y -CONFIG_SPI_FLASH_STMICRO=y -# CONFIG_DRIVERS_UART_OXPCIE is not set -CONFIG_HAVE_USBDEBUG=y -CONFIG_HAVE_USBDEBUG_OPTIONS=y -# CONFIG_USBDEBUG is not set -# CONFIG_VPD is not set -# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set -# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set -# CONFIG_DRIVERS_I2C_MAX98396 is not set -CONFIG_INTEL_EDID=y -CONFIG_INTEL_INT15=y -CONFIG_INTEL_GMA_ACPI=y -CONFIG_INTEL_GMA_SSC_ALTERNATE_REF=y -CONFIG_GFX_GMA=y -CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y -CONFIG_INTEL_GMA_OPREGION_2_0=y -CONFIG_GFX_GMA_DYN_CPU=y -CONFIG_GFX_GMA_GENERATION="G45" -CONFIG_GFX_GMA_PCH="No_PCH" -CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" -CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" -# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -# CONFIG_DRIVERS_PS2_KEYBOARD is not set -CONFIG_DRIVERS_MC146818=y -# CONFIG_USE_PC_CMOS_ALTCENTURY is not set -CONFIG_VGA=y -# CONFIG_DRIVERS_SIL_3114 is not set -# end of Generic Drivers - -# -# Security -# - -# -# CBFS verification -# -# CONFIG_CBFS_VERIFICATION is not set -# end of CBFS verification - -# -# Verified Boot (vboot) -# -# end of Verified Boot (vboot) - -# -# Trusted Platform Module -# -CONFIG_NO_TPM=y -# end of Trusted Platform Module - -# -# Memory initialization -# -CONFIG_PLATFORM_HAS_DRAM_CLEAR=y -CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y -# end of Memory initialization - -# CONFIG_STM is not set -CONFIG_BOOTMEDIA_LOCK_NONE=y -# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set -# CONFIG_BOOTMEDIA_LOCK_CHIP is not set -# CONFIG_BOOTMEDIA_SMM_BWP is not set -# end of Security - -CONFIG_ACPI_HAVE_PCAT_8259=y -CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y -CONFIG_ACPI_SOC_NVS=y -CONFIG_HAVE_ACPI_TABLES=y -CONFIG_BOOT_DEVICE_SPI_FLASH=y -CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y -CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y - -# -# Console -# -CONFIG_BOOTBLOCK_CONSOLE=y -CONFIG_POSTCAR_CONSOLE=y -CONFIG_SQUELCH_EARLY_SMP=y -# CONFIG_SPKMODEM is not set -# CONFIG_CONSOLE_NE2K is not set -CONFIG_CONSOLE_CBMEM=y -# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set -# CONFIG_CONSOLE_SPI_FLASH is not set -# CONFIG_CONSOLE_I2C_SMBUS is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set -CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y -CONFIG_DEFAULT_CONSOLE_LOGLEVEL=0 -CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y -CONFIG_CONSOLE_USE_ANSI_ESCAPES=y -# CONFIG_CMOS_POST is not set -CONFIG_POST_DEVICE_NONE=y -# CONFIG_POST_DEVICE_LPC is not set -# CONFIG_POST_DEVICE_PCI_PCIE is not set -CONFIG_POST_IO_PORT=0x80 -CONFIG_HWBASE_DEBUG_NULL=y -# end of Console - -CONFIG_HAVE_ACPI_RESUME=y -CONFIG_RESUME_PATH_SAME_AS_BOOT=y -CONFIG_HAVE_MONOTONIC_TIMER=y -CONFIG_HAVE_OPTION_TABLE=y -CONFIG_IOAPIC=y -CONFIG_USE_WATCHDOG_ON_BOOT=y - -# -# System tables -# -CONFIG_GENERATE_SMBIOS_TABLES=y -CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" -# end of System tables - -# -# Payload -# -CONFIG_PAYLOAD_NONE=y -# end of Payload - -# -# Debugging -# - -# -# CPU Debug Settings -# -# CONFIG_DISPLAY_MTRRS is not set - -# -# BLOB Debug Settings -# - -# -# General Debug Settings -# -# CONFIG_FATAL_ASSERTS is not set -# CONFIG_DEBUG_CBFS is not set -CONFIG_HAVE_DEBUG_RAM_SETUP=y -# CONFIG_DEBUG_RAM_SETUP is not set -CONFIG_HAVE_DEBUG_SMBUS=y -# CONFIG_DEBUG_SMBUS is not set -# CONFIG_DEBUG_CONSOLE_INIT is not set -# CONFIG_DEBUG_SPI_FLASH is not set -# CONFIG_DEBUG_BOOT_STATE is not set -# CONFIG_DEBUG_ADA_CODE is not set -# end of Debugging - -CONFIG_RAMSTAGE_ADA=y -CONFIG_RAMSTAGE_LIBHWBASE=y -CONFIG_HWBASE_DYNAMIC_MMIO=y -CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 -CONFIG_HWBASE_DIRECT_PCIDEV=y -CONFIG_DECOMPRESS_OFAST=y -CONFIG_WARNINGS_ARE_ERRORS=y -CONFIG_MAX_REBOOT_CNT=3 -CONFIG_RELOCATABLE_MODULES=y -CONFIG_HAVE_BOOTBLOCK=y -CONFIG_HAVE_ROMSTAGE=y -CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/coreboot/e6400_8mb/board.cfg b/resources/coreboot/e6400_8mb/board.cfg deleted file mode 100644 index 451f6d31..00000000 --- a/resources/coreboot/e6400_8mb/board.cfg +++ /dev/null @@ -1,8 +0,0 @@ -cbtree="default" -romtype="8MiB ICH9 IFD NOR flash" -arch="x86_64" -payload_grub="n" -payload_grub_withseabios="n" -payload_seabios="y" -payload_memtest="y" -grub_scan_disk="ahci" diff --git a/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb b/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb deleted file mode 100644 index 7fe58c05..00000000 --- a/resources/coreboot/e6400_8mb/config/libgfxinit_corebootfb +++ /dev/null @@ -1,559 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# coreboot configuration -# - -# -# General setup -# -CONFIG_COREBOOT_BUILD=y -CONFIG_LOCALVERSION="" -CONFIG_CBFS_PREFIX="fallback" -CONFIG_COMPILER_GCC=y -# CONFIG_COMPILER_LLVM_CLANG is not set -CONFIG_ARCH_SUPPORTS_CLANG=y -# CONFIG_ANY_TOOLCHAIN is not set -# CONFIG_CCACHE is not set -# CONFIG_IWYU is not set -# CONFIG_FMD_GENPARSER is not set -# CONFIG_UTIL_GENPARSER is not set -# CONFIG_OPTION_BACKEND_NONE is not set -CONFIG_USE_OPTION_TABLE=y -CONFIG_STATIC_OPTION_TABLE=y -CONFIG_COMPRESS_RAMSTAGE_LZMA=y -# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set -CONFIG_INCLUDE_CONFIG_FILE=y -CONFIG_COLLECT_TIMESTAMPS=y -# CONFIG_TIMESTAMPS_ON_CONSOLE is not set -CONFIG_USE_BLOBS=y -# CONFIG_USE_AMD_BLOBS is not set -# CONFIG_USE_QC_BLOBS is not set -# CONFIG_COVERAGE is not set -# CONFIG_UBSAN is not set -CONFIG_HAVE_ASAN_IN_RAMSTAGE=y -# CONFIG_ASAN is not set -# CONFIG_NO_STAGE_CACHE is not set -CONFIG_TSEG_STAGE_CACHE=y -# CONFIG_UPDATE_IMAGE is not set -# CONFIG_BOOTSPLASH_IMAGE is not set -# CONFIG_FW_CONFIG is not set - -# -# Software Bill Of Materials (SBOM) -# -# CONFIG_SBOM is not set -# end of Software Bill Of Materials (SBOM) -# end of General setup - -# -# Mainboard -# - -# -# Important: Run 'make distclean' before switching boards -# -# CONFIG_VENDOR_51NB is not set -# CONFIG_VENDOR_ACER is not set -# CONFIG_VENDOR_ADLINK is not set -# CONFIG_VENDOR_AMD is not set -# CONFIG_VENDOR_AOPEN is not set -# CONFIG_VENDOR_APPLE is not set -# CONFIG_VENDOR_ASROCK is not set -# CONFIG_VENDOR_ASUS is not set -# CONFIG_VENDOR_BIOSTAR is not set -# CONFIG_VENDOR_BOSTENTECH is not set -# CONFIG_VENDOR_CAVIUM is not set -# CONFIG_VENDOR_CLEVO is not set -# CONFIG_VENDOR_COMPULAB is not set -CONFIG_VENDOR_DELL=y -# CONFIG_VENDOR_EMULATION is not set -# CONFIG_VENDOR_EXAMPLE is not set -# CONFIG_VENDOR_FACEBOOK is not set -# CONFIG_VENDOR_FOXCONN is not set -# CONFIG_VENDOR_GETAC is not set -# CONFIG_VENDOR_GIGABYTE is not set -# CONFIG_VENDOR_GOOGLE is not set -# CONFIG_VENDOR_HP is not set -# CONFIG_VENDOR_IBASE is not set -# CONFIG_VENDOR_INTEL is not set -# CONFIG_VENDOR_KONTRON is not set -# CONFIG_VENDOR_LENOVO is not set -# CONFIG_VENDOR_LIBRETREND is not set -# CONFIG_VENDOR_MSI is not set -# CONFIG_VENDOR_OCP is not set -# CONFIG_VENDOR_OPENCELLULAR is not set -# CONFIG_VENDOR_PACKARDBELL is not set -# CONFIG_VENDOR_PCENGINES is not set -# CONFIG_VENDOR_PINE64 is not set -# CONFIG_VENDOR_PORTWELL is not set -# CONFIG_VENDOR_PRODRIVE is not set -# CONFIG_VENDOR_PROTECTLI is not set -# CONFIG_VENDOR_PURISM is not set -# CONFIG_VENDOR_RAZER is not set -# CONFIG_VENDOR_RODA is not set -# CONFIG_VENDOR_SAMSUNG is not set -# CONFIG_VENDOR_SAPPHIRE is not set -# CONFIG_VENDOR_SIEMENS is not set -# CONFIG_VENDOR_SIFIVE is not set -# CONFIG_VENDOR_STARLABS is not set -# CONFIG_VENDOR_SUPERMICRO is not set -# CONFIG_VENDOR_SYSTEM76 is not set -# CONFIG_VENDOR_TI is not set -# CONFIG_VENDOR_UP is not set -CONFIG_BOARD_SPECIFIC_OPTIONS=y -CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400" -CONFIG_MAINBOARD_VERSION="1.0" -CONFIG_MAINBOARD_DIR="dell/e6400" -CONFIG_VGA_BIOS_ID="8086,2a42" -CONFIG_DIMM_MAX=4 -CONFIG_DIMM_SPD_SIZE=256 -CONFIG_FMDFILE="" -# CONFIG_NO_POST is not set -CONFIG_MAINBOARD_VENDOR="Dell Inc." -CONFIG_CBFS_SIZE=0x7FD000 -CONFIG_LINEAR_FRAMEBUFFER_MAX_HEIGHT=1600 -CONFIG_LINEAR_FRAMEBUFFER_MAX_WIDTH=2560 -CONFIG_MAX_CPUS=4 -# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set -CONFIG_POST_DEVICE=y -CONFIG_POST_IO=y -CONFIG_DEVICETREE="devicetree.cb" -# CONFIG_VBOOT is not set -CONFIG_OVERRIDE_DEVICETREE="" -# CONFIG_VGA_BIOS is not set -CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc." -CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt" -CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 -CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" -CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" -CONFIG_USBDEBUG_HCD_INDEX=1 -CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 -# CONFIG_CONSOLE_POST is not set -CONFIG_BOARD_DELL_E6400=y -# CONFIG_BOARD_DELL_OPTIPLEX_9010 is not set -# CONFIG_BOARD_DELL_PRECISION_T1650 is not set -CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" -CONFIG_DCACHE_RAM_BASE=0xfefc0000 -CONFIG_DCACHE_RAM_SIZE=0x10000 -CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 -CONFIG_DCACHE_BSP_STACK_SIZE=0x2000 -CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 -CONFIG_ECAM_MMCONF_BUS_NUMBER=64 -CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 -CONFIG_HAVE_INTEL_FIRMWARE=y -CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y -CONFIG_SPI_FLASH_WINBOND=y -# CONFIG_DRIVERS_INTEL_WIFI is not set -CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 -CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" -# CONFIG_HAVE_IFD_BIN is not set -CONFIG_PCIEXP_HOTPLUG_BUSES=8 -CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 -CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 -CONFIG_PS2K_EISAID="PNP0303" -CONFIG_PS2M_EISAID="PNP0F13" -CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" -# CONFIG_DEBUG_SMI is not set -# CONFIG_PCIEXP_L1_SUB_STATE is not set -# CONFIG_PCIEXP_CLK_PM is not set -# CONFIG_DRIVERS_UART_8250IO is not set -CONFIG_HEAP_SIZE=0x4000 -CONFIG_EC_GPE_SCI=0x50 -CONFIG_BOARD_ROMSIZE_KB_4096=y -# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set -CONFIG_COREBOOT_ROMSIZE_KB_8192=y -# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set -CONFIG_COREBOOT_ROMSIZE_KB=8192 -CONFIG_ROM_SIZE=0x00800000 -CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y -CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y -CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y -# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set -# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set -CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 -# end of Mainboard - -CONFIG_SYSTEM_TYPE_LAPTOP=y - -# -# Chipset -# - -# -# SoC -# -CONFIG_CHIPSET_DEVICETREE="" -CONFIG_CBFS_MCACHE_SIZE=0x4000 -CONFIG_ROMSTAGE_ADDR=0x2000000 -CONFIG_VERSTAGE_ADDR=0x2000000 -CONFIG_SMM_RESERVED_SIZE=0x100000 -CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" -CONFIG_EHCI_BAR=0xfef00000 -CONFIG_STACK_SIZE=0x2000 -CONFIG_VBT_DATA_SIZE_KB=8 -CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 -CONFIG_INTEL_GMA_BCLV_WIDTH=16 -CONFIG_INTEL_GMA_BCLM_OFFSET=0x61256 -CONFIG_INTEL_GMA_BCLM_WIDTH=16 -CONFIG_BOOTBLOCK_IN_CBFS=y -CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 -CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 -CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 -# CONFIG_PCIEXP_ASPM is not set -# CONFIG_PCIEXP_COMMON_CLOCK is not set -CONFIG_FIXED_SMBUS_IO_BASE=0x400 -CONFIG_HPET_MIN_TICKS=0x80 -CONFIG_CBFS_CACHE_ALIGN=8 - -# -# CPU -# -CONFIG_CPU_INTEL_MODEL_6FX=y -CONFIG_CPU_INTEL_MODEL_1067X=y -CONFIG_SOCKET_SPECIFIC_OPTIONS=y -CONFIG_CPU_INTEL_SOCKET_P=y -CONFIG_CPU_INTEL_COMMON=y -CONFIG_ENABLE_VMX=y -CONFIG_SET_IA32_FC_LOCK_BIT=y -CONFIG_SET_MSR_AESNI_LOCK_BIT=y -CONFIG_CPU_INTEL_COMMON_TIMEBASE=y -CONFIG_CPU_INTEL_COMMON_SMM=y -CONFIG_MICROCODE_UPDATE_PRE_RAM=y -CONFIG_PARALLEL_MP=y -CONFIG_XAPIC_ONLY=y -# CONFIG_X2APIC_ONLY is not set -# CONFIG_X2APIC_RUNTIME is not set -# CONFIG_X2APIC_LATE_WORKAROUND is not set -CONFIG_UDELAY_TSC=y -CONFIG_TSC_MONOTONIC_TIMER=y -CONFIG_TSC_SYNC_MFENCE=y -CONFIG_SETUP_XIP_CACHE=y -CONFIG_LOGICAL_CPUS=y -CONFIG_HAVE_SMI_HANDLER=y -CONFIG_SMM_TSEG=y -CONFIG_SMM_LAPIC_REMAP_MITIGATION=y -CONFIG_AP_STACK_SIZE=0x800 -CONFIG_SMP=y -CONFIG_MMX=y -CONFIG_SSE=y -CONFIG_SSE2=y -CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y -CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y -CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y -# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set -# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set -# CONFIG_CPU_MICROCODE_CBFS_NONE is not set - -# -# Northbridge -# -CONFIG_NORTHBRIDGE_INTEL_GM45=y - -# -# Southbridge -# -CONFIG_PCIEXP_HOTPLUG=y -CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y -CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y -# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set -CONFIG_TCO_SPACE_NOT_YET_SPLIT=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y -CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 -CONFIG_RCBA_LENGTH=0x4000 - -# -# Super I/O -# - -# -# Embedded Controllers -# -CONFIG_EC_DELL_MEC5035=y - -# -# Intel Firmware -# -CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y -CONFIG_ARCH_X86=y -CONFIG_ARCH_BOOTBLOCK_X86_32=y -CONFIG_ARCH_VERSTAGE_X86_32=y -CONFIG_ARCH_ROMSTAGE_X86_32=y -CONFIG_ARCH_POSTCAR_X86_32=y -CONFIG_ARCH_RAMSTAGE_X86_32=y -CONFIG_ARCH_ALL_STAGES_X86_32=y -CONFIG_HAVE_EXP_X86_64_SUPPORT=y -# CONFIG_USE_EXP_X86_64_SUPPORT is not set -CONFIG_AP_IN_SIPI_WAIT=y -CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y -CONFIG_PC80_SYSTEM=y -CONFIG_HAVE_CMOS_DEFAULT=y -CONFIG_POSTCAR_STAGE=y -CONFIG_BOOTBLOCK_SIMPLE=y -# CONFIG_BOOTBLOCK_NORMAL is not set -CONFIG_COLLECT_TIMESTAMPS_TSC=y -CONFIG_HAVE_CF9_RESET=y -CONFIG_DEBUG_HW_BREAKPOINTS=y -CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y -# end of Chipset - -# -# Devices -# -CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y -CONFIG_HAVE_LINEAR_FRAMEBUFFER=y -CONFIG_MAINBOARD_HAS_LIBGFXINIT=y -CONFIG_MAINBOARD_USE_LIBGFXINIT=y -# CONFIG_VGA_ROM_RUN is not set -# CONFIG_NO_GFX_INIT is not set -CONFIG_NO_EARLY_GFX_INIT=y - -# -# Display -# -# CONFIG_VGA_TEXT_FRAMEBUFFER is not set -CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y -CONFIG_LINEAR_FRAMEBUFFER=y -# CONFIG_BOOTSPLASH is not set -# end of Display - -CONFIG_PCI=y -CONFIG_ECAM_MMCONF_SUPPORT=y -CONFIG_PCIX_PLUGIN_SUPPORT=y -CONFIG_CARDBUS_PLUGIN_SUPPORT=y -CONFIG_AZALIA_PLUGIN_SUPPORT=y -CONFIG_PCIEXP_PLUGIN_SUPPORT=y -CONFIG_ECAM_MMCONF_LENGTH=0x04000000 -CONFIG_PCI_ALLOW_BUS_MASTER=y -CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y -CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y -# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set -# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set -CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y -# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set -CONFIG_PCIEXP_HOTPLUG_IO=0x2000 -CONFIG_FIRMWARE_CONNECTION_MANAGER=y -# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set -# CONFIG_EARLY_PCI_BRIDGE is not set -CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 -CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 -CONFIG_INTEL_GMA_HAVE_VBT=y -CONFIG_INTEL_GMA_ADD_VBT=y -# CONFIG_SOFTWARE_I2C is not set -CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 -# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set -CONFIG_NO_DDR5=y -CONFIG_NO_LPDDR4=y -CONFIG_NO_DDR4=y -CONFIG_USE_DDR3=y -CONFIG_USE_DDR2=y -# end of Devices - -# -# Generic Drivers -# -CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 -# CONFIG_ELOG is not set -# CONFIG_SMMSTORE is not set -CONFIG_SPI_FLASH=y -CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y -CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y -# CONFIG_SPI_FLASH_NO_FAST_READ is not set -CONFIG_SPI_FLASH_ADESTO=y -CONFIG_SPI_FLASH_AMIC=y -CONFIG_SPI_FLASH_ATMEL=y -CONFIG_SPI_FLASH_EON=y -CONFIG_SPI_FLASH_GIGADEVICE=y -CONFIG_SPI_FLASH_MACRONIX=y -CONFIG_SPI_FLASH_SPANSION=y -CONFIG_SPI_FLASH_SST=y -CONFIG_SPI_FLASH_STMICRO=y -# CONFIG_DRIVERS_UART_OXPCIE is not set -CONFIG_HAVE_USBDEBUG=y -CONFIG_HAVE_USBDEBUG_OPTIONS=y -# CONFIG_USBDEBUG is not set -# CONFIG_VPD is not set -# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set -# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set -# CONFIG_DRIVERS_I2C_MAX98396 is not set -CONFIG_INTEL_EDID=y -CONFIG_INTEL_INT15=y -CONFIG_INTEL_GMA_ACPI=y -CONFIG_INTEL_GMA_SSC_ALTERNATE_REF=y -CONFIG_GFX_GMA=y -CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y -CONFIG_INTEL_GMA_OPREGION_2_0=y -CONFIG_GFX_GMA_DYN_CPU=y -CONFIG_GFX_GMA_GENERATION="G45" -CONFIG_GFX_GMA_PCH="No_PCH" -CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" -CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" -# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -# CONFIG_DRIVERS_PS2_KEYBOARD is not set -CONFIG_DRIVERS_MC146818=y -# CONFIG_USE_PC_CMOS_ALTCENTURY is not set -CONFIG_VGA=y -# CONFIG_DRIVERS_SIL_3114 is not set -# end of Generic Drivers - -# -# Security -# - -# -# CBFS verification -# -# CONFIG_CBFS_VERIFICATION is not set -# end of CBFS verification - -# -# Verified Boot (vboot) -# -# end of Verified Boot (vboot) - -# -# Trusted Platform Module -# -CONFIG_NO_TPM=y -# end of Trusted Platform Module - -# -# Memory initialization -# -CONFIG_PLATFORM_HAS_DRAM_CLEAR=y -CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y -# end of Memory initialization - -# CONFIG_STM is not set -CONFIG_BOOTMEDIA_LOCK_NONE=y -# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set -# CONFIG_BOOTMEDIA_LOCK_CHIP is not set -# CONFIG_BOOTMEDIA_SMM_BWP is not set -# end of Security - -CONFIG_ACPI_HAVE_PCAT_8259=y -CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y -CONFIG_ACPI_SOC_NVS=y -CONFIG_HAVE_ACPI_TABLES=y -CONFIG_BOOT_DEVICE_SPI_FLASH=y -CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y -CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y - -# -# Console -# -CONFIG_BOOTBLOCK_CONSOLE=y -CONFIG_POSTCAR_CONSOLE=y -CONFIG_SQUELCH_EARLY_SMP=y -# CONFIG_SPKMODEM is not set -# CONFIG_CONSOLE_NE2K is not set -CONFIG_CONSOLE_CBMEM=y -# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set -# CONFIG_CONSOLE_SPI_FLASH is not set -# CONFIG_CONSOLE_I2C_SMBUS is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set -CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y -CONFIG_DEFAULT_CONSOLE_LOGLEVEL=0 -CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y -CONFIG_CONSOLE_USE_ANSI_ESCAPES=y -# CONFIG_CMOS_POST is not set -CONFIG_POST_DEVICE_NONE=y -# CONFIG_POST_DEVICE_LPC is not set -# CONFIG_POST_DEVICE_PCI_PCIE is not set -CONFIG_POST_IO_PORT=0x80 -CONFIG_HWBASE_DEBUG_NULL=y -# end of Console - -CONFIG_HAVE_ACPI_RESUME=y -CONFIG_RESUME_PATH_SAME_AS_BOOT=y -CONFIG_HAVE_MONOTONIC_TIMER=y -CONFIG_HAVE_OPTION_TABLE=y -CONFIG_IOAPIC=y -CONFIG_USE_WATCHDOG_ON_BOOT=y - -# -# System tables -# -CONFIG_GENERATE_SMBIOS_TABLES=y -CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" -# end of System tables - -# -# Payload -# -CONFIG_PAYLOAD_NONE=y -# end of Payload - -# -# Debugging -# - -# -# CPU Debug Settings -# -# CONFIG_DISPLAY_MTRRS is not set - -# -# BLOB Debug Settings -# - -# -# General Debug Settings -# -# CONFIG_FATAL_ASSERTS is not set -# CONFIG_DEBUG_CBFS is not set -CONFIG_HAVE_DEBUG_RAM_SETUP=y -# CONFIG_DEBUG_RAM_SETUP is not set -CONFIG_HAVE_DEBUG_SMBUS=y -# CONFIG_DEBUG_SMBUS is not set -# CONFIG_DEBUG_CONSOLE_INIT is not set -# CONFIG_DEBUG_SPI_FLASH is not set -# CONFIG_DEBUG_BOOT_STATE is not set -# CONFIG_DEBUG_ADA_CODE is not set -# end of Debugging - -CONFIG_RAMSTAGE_ADA=y -CONFIG_RAMSTAGE_LIBHWBASE=y -CONFIG_HWBASE_DYNAMIC_MMIO=y -CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 -CONFIG_HWBASE_DIRECT_PCIDEV=y -CONFIG_DECOMPRESS_OFAST=y -CONFIG_WARNINGS_ARE_ERRORS=y -CONFIG_MAX_REBOOT_CNT=3 -CONFIG_RELOCATABLE_MODULES=y -CONFIG_HAVE_BOOTBLOCK=y -CONFIG_HAVE_ROMSTAGE=y -CONFIG_HAVE_RAMSTAGE=y diff --git a/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode b/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode deleted file mode 100644 index 758b5bc5..00000000 --- a/resources/coreboot/e6400_8mb/config/libgfxinit_txtmode +++ /dev/null @@ -1,555 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# coreboot configuration -# - -# -# General setup -# -CONFIG_COREBOOT_BUILD=y -CONFIG_LOCALVERSION="" -CONFIG_CBFS_PREFIX="fallback" -CONFIG_COMPILER_GCC=y -# CONFIG_COMPILER_LLVM_CLANG is not set -CONFIG_ARCH_SUPPORTS_CLANG=y -# CONFIG_ANY_TOOLCHAIN is not set -# CONFIG_CCACHE is not set -# CONFIG_IWYU is not set -# CONFIG_FMD_GENPARSER is not set -# CONFIG_UTIL_GENPARSER is not set -# CONFIG_OPTION_BACKEND_NONE is not set -CONFIG_USE_OPTION_TABLE=y -CONFIG_STATIC_OPTION_TABLE=y -CONFIG_COMPRESS_RAMSTAGE_LZMA=y -# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set -CONFIG_INCLUDE_CONFIG_FILE=y -CONFIG_COLLECT_TIMESTAMPS=y -# CONFIG_TIMESTAMPS_ON_CONSOLE is not set -CONFIG_USE_BLOBS=y -# CONFIG_USE_AMD_BLOBS is not set -# CONFIG_USE_QC_BLOBS is not set -# CONFIG_COVERAGE is not set -# CONFIG_UBSAN is not set -CONFIG_HAVE_ASAN_IN_RAMSTAGE=y -# CONFIG_ASAN is not set -# CONFIG_NO_STAGE_CACHE is not set -CONFIG_TSEG_STAGE_CACHE=y -# CONFIG_UPDATE_IMAGE is not set -# CONFIG_BOOTSPLASH_IMAGE is not set -# CONFIG_FW_CONFIG is not set - -# -# Software Bill Of Materials (SBOM) -# -# CONFIG_SBOM is not set -# end of Software Bill Of Materials (SBOM) -# end of General setup - -# -# Mainboard -# - -# -# Important: Run 'make distclean' before switching boards -# -# CONFIG_VENDOR_51NB is not set -# CONFIG_VENDOR_ACER is not set -# CONFIG_VENDOR_ADLINK is not set -# CONFIG_VENDOR_AMD is not set -# CONFIG_VENDOR_AOPEN is not set -# CONFIG_VENDOR_APPLE is not set -# CONFIG_VENDOR_ASROCK is not set -# CONFIG_VENDOR_ASUS is not set -# CONFIG_VENDOR_BIOSTAR is not set -# CONFIG_VENDOR_BOSTENTECH is not set -# CONFIG_VENDOR_CAVIUM is not set -# CONFIG_VENDOR_CLEVO is not set -# CONFIG_VENDOR_COMPULAB is not set -CONFIG_VENDOR_DELL=y -# CONFIG_VENDOR_EMULATION is not set -# CONFIG_VENDOR_EXAMPLE is not set -# CONFIG_VENDOR_FACEBOOK is not set -# CONFIG_VENDOR_FOXCONN is not set -# CONFIG_VENDOR_GETAC is not set -# CONFIG_VENDOR_GIGABYTE is not set -# CONFIG_VENDOR_GOOGLE is not set -# CONFIG_VENDOR_HP is not set -# CONFIG_VENDOR_IBASE is not set -# CONFIG_VENDOR_INTEL is not set -# CONFIG_VENDOR_KONTRON is not set -# CONFIG_VENDOR_LENOVO is not set -# CONFIG_VENDOR_LIBRETREND is not set -# CONFIG_VENDOR_MSI is not set -# CONFIG_VENDOR_OCP is not set -# CONFIG_VENDOR_OPENCELLULAR is not set -# CONFIG_VENDOR_PACKARDBELL is not set -# CONFIG_VENDOR_PCENGINES is not set -# CONFIG_VENDOR_PINE64 is not set -# CONFIG_VENDOR_PORTWELL is not set -# CONFIG_VENDOR_PRODRIVE is not set -# CONFIG_VENDOR_PROTECTLI is not set -# CONFIG_VENDOR_PURISM is not set -# CONFIG_VENDOR_RAZER is not set -# CONFIG_VENDOR_RODA is not set -# CONFIG_VENDOR_SAMSUNG is not set -# CONFIG_VENDOR_SAPPHIRE is not set -# CONFIG_VENDOR_SIEMENS is not set -# CONFIG_VENDOR_SIFIVE is not set -# CONFIG_VENDOR_STARLABS is not set -# CONFIG_VENDOR_SUPERMICRO is not set -# CONFIG_VENDOR_SYSTEM76 is not set -# CONFIG_VENDOR_TI is not set -# CONFIG_VENDOR_UP is not set -CONFIG_BOARD_SPECIFIC_OPTIONS=y -CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400" -CONFIG_MAINBOARD_VERSION="1.0" -CONFIG_MAINBOARD_DIR="dell/e6400" -CONFIG_VGA_BIOS_ID="8086,2a42" -CONFIG_DIMM_MAX=4 -CONFIG_DIMM_SPD_SIZE=256 -CONFIG_FMDFILE="" -# CONFIG_NO_POST is not set -CONFIG_MAINBOARD_VENDOR="Dell Inc." -CONFIG_CBFS_SIZE=0x7FD000 -CONFIG_MAX_CPUS=4 -# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set -CONFIG_POST_DEVICE=y -CONFIG_POST_IO=y -CONFIG_DEVICETREE="devicetree.cb" -# CONFIG_VBOOT is not set -CONFIG_OVERRIDE_DEVICETREE="" -# CONFIG_VGA_BIOS is not set -CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc." -CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt" -CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 -CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" -CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" -CONFIG_USBDEBUG_HCD_INDEX=1 -CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 -# CONFIG_CONSOLE_POST is not set -CONFIG_BOARD_DELL_E6400=y -# CONFIG_BOARD_DELL_OPTIPLEX_9010 is not set -# CONFIG_BOARD_DELL_PRECISION_T1650 is not set -CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" -CONFIG_DCACHE_RAM_BASE=0xfefc0000 -CONFIG_DCACHE_RAM_SIZE=0x10000 -CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 -CONFIG_DCACHE_BSP_STACK_SIZE=0x2000 -CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xf0000000 -CONFIG_ECAM_MMCONF_BUS_NUMBER=64 -CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 -CONFIG_HAVE_INTEL_FIRMWARE=y -CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y -CONFIG_SPI_FLASH_WINBOND=y -# CONFIG_DRIVERS_INTEL_WIFI is not set -CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 -CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Latitude E6400" -# CONFIG_HAVE_IFD_BIN is not set -CONFIG_PCIEXP_HOTPLUG_BUSES=8 -CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 -CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 -CONFIG_PS2K_EISAID="PNP0303" -CONFIG_PS2M_EISAID="PNP0F13" -CONFIG_GFX_GMA_PANEL_1_PORT="LVDS" -# CONFIG_DEBUG_SMI is not set -# CONFIG_PCIEXP_L1_SUB_STATE is not set -# CONFIG_PCIEXP_CLK_PM is not set -# CONFIG_DRIVERS_UART_8250IO is not set -CONFIG_HEAP_SIZE=0x4000 -CONFIG_EC_GPE_SCI=0x50 -CONFIG_BOARD_ROMSIZE_KB_4096=y -# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set -CONFIG_COREBOOT_ROMSIZE_KB_8192=y -# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set -CONFIG_COREBOOT_ROMSIZE_KB=8192 -CONFIG_ROM_SIZE=0x00800000 -CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y -CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y -CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y -# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set -# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set -CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 -# end of Mainboard - -CONFIG_SYSTEM_TYPE_LAPTOP=y - -# -# Chipset -# - -# -# SoC -# -CONFIG_CHIPSET_DEVICETREE="" -CONFIG_CBFS_MCACHE_SIZE=0x4000 -CONFIG_ROMSTAGE_ADDR=0x2000000 -CONFIG_VERSTAGE_ADDR=0x2000000 -CONFIG_SMM_RESERVED_SIZE=0x100000 -CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" -CONFIG_EHCI_BAR=0xfef00000 -CONFIG_STACK_SIZE=0x2000 -CONFIG_VBT_DATA_SIZE_KB=8 -CONFIG_INTEL_GMA_BCLV_OFFSET=0x61254 -CONFIG_INTEL_GMA_BCLV_WIDTH=16 -CONFIG_INTEL_GMA_BCLM_OFFSET=0x61256 -CONFIG_INTEL_GMA_BCLM_WIDTH=16 -CONFIG_BOOTBLOCK_IN_CBFS=y -CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 -CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 -CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 -# CONFIG_PCIEXP_ASPM is not set -# CONFIG_PCIEXP_COMMON_CLOCK is not set -CONFIG_FIXED_SMBUS_IO_BASE=0x400 -CONFIG_HPET_MIN_TICKS=0x80 -CONFIG_CBFS_CACHE_ALIGN=8 - -# -# CPU -# -CONFIG_CPU_INTEL_MODEL_6FX=y -CONFIG_CPU_INTEL_MODEL_1067X=y -CONFIG_SOCKET_SPECIFIC_OPTIONS=y -CONFIG_CPU_INTEL_SOCKET_P=y -CONFIG_CPU_INTEL_COMMON=y -CONFIG_ENABLE_VMX=y -CONFIG_SET_IA32_FC_LOCK_BIT=y -CONFIG_SET_MSR_AESNI_LOCK_BIT=y -CONFIG_CPU_INTEL_COMMON_TIMEBASE=y -CONFIG_CPU_INTEL_COMMON_SMM=y -CONFIG_MICROCODE_UPDATE_PRE_RAM=y -CONFIG_PARALLEL_MP=y -CONFIG_XAPIC_ONLY=y -# CONFIG_X2APIC_ONLY is not set -# CONFIG_X2APIC_RUNTIME is not set -# CONFIG_X2APIC_LATE_WORKAROUND is not set -CONFIG_UDELAY_TSC=y -CONFIG_TSC_MONOTONIC_TIMER=y -CONFIG_TSC_SYNC_MFENCE=y -CONFIG_SETUP_XIP_CACHE=y -CONFIG_LOGICAL_CPUS=y -CONFIG_HAVE_SMI_HANDLER=y -CONFIG_SMM_TSEG=y -CONFIG_SMM_LAPIC_REMAP_MITIGATION=y -CONFIG_AP_STACK_SIZE=0x800 -CONFIG_SMP=y -CONFIG_MMX=y -CONFIG_SSE=y -CONFIG_SSE2=y -CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y -CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y -CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y -# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set -# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set -# CONFIG_CPU_MICROCODE_CBFS_NONE is not set - -# -# Northbridge -# -CONFIG_NORTHBRIDGE_INTEL_GM45=y - -# -# Southbridge -# -CONFIG_PCIEXP_HOTPLUG=y -CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y -CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y -# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set -CONFIG_TCO_SPACE_NOT_YET_SPLIT=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y -CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 -CONFIG_RCBA_LENGTH=0x4000 - -# -# Super I/O -# - -# -# Embedded Controllers -# -CONFIG_EC_DELL_MEC5035=y - -# -# Intel Firmware -# -CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y -CONFIG_ARCH_X86=y -CONFIG_ARCH_BOOTBLOCK_X86_32=y -CONFIG_ARCH_VERSTAGE_X86_32=y -CONFIG_ARCH_ROMSTAGE_X86_32=y -CONFIG_ARCH_POSTCAR_X86_32=y -CONFIG_ARCH_RAMSTAGE_X86_32=y -CONFIG_ARCH_ALL_STAGES_X86_32=y -CONFIG_HAVE_EXP_X86_64_SUPPORT=y -# CONFIG_USE_EXP_X86_64_SUPPORT is not set -CONFIG_AP_IN_SIPI_WAIT=y -CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y -CONFIG_PC80_SYSTEM=y -CONFIG_HAVE_CMOS_DEFAULT=y -CONFIG_POSTCAR_STAGE=y -CONFIG_BOOTBLOCK_SIMPLE=y -# CONFIG_BOOTBLOCK_NORMAL is not set -CONFIG_COLLECT_TIMESTAMPS_TSC=y -CONFIG_HAVE_CF9_RESET=y -CONFIG_DEBUG_HW_BREAKPOINTS=y -CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y -# end of Chipset - -# -# Devices -# -CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y -CONFIG_HAVE_LINEAR_FRAMEBUFFER=y -CONFIG_MAINBOARD_HAS_LIBGFXINIT=y -CONFIG_MAINBOARD_USE_LIBGFXINIT=y -# CONFIG_VGA_ROM_RUN is not set -# CONFIG_NO_GFX_INIT is not set -CONFIG_NO_EARLY_GFX_INIT=y - -# -# Display -# -CONFIG_VGA_TEXT_FRAMEBUFFER=y -# CONFIG_GENERIC_LINEAR_FRAMEBUFFER is not set -# end of Display - -CONFIG_PCI=y -CONFIG_ECAM_MMCONF_SUPPORT=y -CONFIG_PCIX_PLUGIN_SUPPORT=y -CONFIG_CARDBUS_PLUGIN_SUPPORT=y -CONFIG_AZALIA_PLUGIN_SUPPORT=y -CONFIG_PCIEXP_PLUGIN_SUPPORT=y -CONFIG_ECAM_MMCONF_LENGTH=0x04000000 -CONFIG_PCI_ALLOW_BUS_MASTER=y -CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y -CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y -# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set -# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set -CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y -# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set -CONFIG_PCIEXP_HOTPLUG_IO=0x2000 -CONFIG_FIRMWARE_CONNECTION_MANAGER=y -# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set -# CONFIG_EARLY_PCI_BRIDGE is not set -CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 -CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 -CONFIG_INTEL_GMA_HAVE_VBT=y -CONFIG_INTEL_GMA_ADD_VBT=y -# CONFIG_SOFTWARE_I2C is not set -CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 -# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set -CONFIG_NO_DDR5=y -CONFIG_NO_LPDDR4=y -CONFIG_NO_DDR4=y -CONFIG_USE_DDR3=y -CONFIG_USE_DDR2=y -# end of Devices - -# -# Generic Drivers -# -CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 -# CONFIG_ELOG is not set -# CONFIG_SMMSTORE is not set -CONFIG_SPI_FLASH=y -CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y -CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY=y -# CONFIG_SPI_FLASH_NO_FAST_READ is not set -CONFIG_SPI_FLASH_ADESTO=y -CONFIG_SPI_FLASH_AMIC=y -CONFIG_SPI_FLASH_ATMEL=y -CONFIG_SPI_FLASH_EON=y -CONFIG_SPI_FLASH_GIGADEVICE=y -CONFIG_SPI_FLASH_MACRONIX=y -CONFIG_SPI_FLASH_SPANSION=y -CONFIG_SPI_FLASH_SST=y -CONFIG_SPI_FLASH_STMICRO=y -# CONFIG_DRIVERS_UART_OXPCIE is not set -CONFIG_HAVE_USBDEBUG=y -CONFIG_HAVE_USBDEBUG_OPTIONS=y -# CONFIG_USBDEBUG is not set -# CONFIG_VPD is not set -# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set -# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set -# CONFIG_DRIVERS_I2C_MAX98396 is not set -CONFIG_INTEL_EDID=y -CONFIG_INTEL_INT15=y -CONFIG_INTEL_GMA_ACPI=y -CONFIG_INTEL_GMA_SSC_ALTERNATE_REF=y -CONFIG_GFX_GMA=y -CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y -CONFIG_INTEL_GMA_OPREGION_2_0=y -CONFIG_GFX_GMA_DYN_CPU=y -CONFIG_GFX_GMA_GENERATION="G45" -CONFIG_GFX_GMA_PCH="No_PCH" -CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" -CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" -# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -# CONFIG_DRIVERS_PS2_KEYBOARD is not set -CONFIG_DRIVERS_MC146818=y -# CONFIG_USE_PC_CMOS_ALTCENTURY is not set -CONFIG_VGA=y -# CONFIG_DRIVERS_SIL_3114 is not set -# end of Generic Drivers - -# -# Security -# - -# -# CBFS verification -# -# CONFIG_CBFS_VERIFICATION is not set -# end of CBFS verification - -# -# Verified Boot (vboot) -# -# end of Verified Boot (vboot) - -# -# Trusted Platform Module -# -CONFIG_NO_TPM=y -# end of Trusted Platform Module - -# -# Memory initialization -# -CONFIG_PLATFORM_HAS_DRAM_CLEAR=y -CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y -# end of Memory initialization - -# CONFIG_STM is not set -CONFIG_BOOTMEDIA_LOCK_NONE=y -# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set -# CONFIG_BOOTMEDIA_LOCK_CHIP is not set -# CONFIG_BOOTMEDIA_SMM_BWP is not set -# end of Security - -CONFIG_ACPI_HAVE_PCAT_8259=y -CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y -CONFIG_ACPI_SOC_NVS=y -CONFIG_HAVE_ACPI_TABLES=y -CONFIG_BOOT_DEVICE_SPI_FLASH=y -CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y -CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y - -# -# Console -# -CONFIG_BOOTBLOCK_CONSOLE=y -CONFIG_POSTCAR_CONSOLE=y -CONFIG_SQUELCH_EARLY_SMP=y -# CONFIG_SPKMODEM is not set -# CONFIG_CONSOLE_NE2K is not set -CONFIG_CONSOLE_CBMEM=y -# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set -# CONFIG_CONSOLE_SPI_FLASH is not set -# CONFIG_CONSOLE_I2C_SMBUS is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set -CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y -CONFIG_DEFAULT_CONSOLE_LOGLEVEL=0 -CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y -CONFIG_CONSOLE_USE_ANSI_ESCAPES=y -# CONFIG_CMOS_POST is not set -CONFIG_POST_DEVICE_NONE=y -# CONFIG_POST_DEVICE_LPC is not set -# CONFIG_POST_DEVICE_PCI_PCIE is not set -CONFIG_POST_IO_PORT=0x80 -CONFIG_HWBASE_DEBUG_NULL=y -# end of Console - -CONFIG_HAVE_ACPI_RESUME=y -CONFIG_RESUME_PATH_SAME_AS_BOOT=y -CONFIG_HAVE_MONOTONIC_TIMER=y -CONFIG_HAVE_OPTION_TABLE=y -CONFIG_IOAPIC=y -CONFIG_USE_WATCHDOG_ON_BOOT=y - -# -# System tables -# -CONFIG_GENERATE_SMBIOS_TABLES=y -CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" -# end of System tables - -# -# Payload -# -CONFIG_PAYLOAD_NONE=y -# end of Payload - -# -# Debugging -# - -# -# CPU Debug Settings -# -# CONFIG_DISPLAY_MTRRS is not set - -# -# BLOB Debug Settings -# - -# -# General Debug Settings -# -# CONFIG_FATAL_ASSERTS is not set -# CONFIG_DEBUG_CBFS is not set -CONFIG_HAVE_DEBUG_RAM_SETUP=y -# CONFIG_DEBUG_RAM_SETUP is not set -CONFIG_HAVE_DEBUG_SMBUS=y -# CONFIG_DEBUG_SMBUS is not set -# CONFIG_DEBUG_CONSOLE_INIT is not set -# CONFIG_DEBUG_SPI_FLASH is not set -# CONFIG_DEBUG_BOOT_STATE is not set -# CONFIG_DEBUG_ADA_CODE is not set -# end of Debugging - -CONFIG_RAMSTAGE_ADA=y -CONFIG_RAMSTAGE_LIBHWBASE=y -CONFIG_HWBASE_DYNAMIC_MMIO=y -CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000 -CONFIG_HWBASE_DIRECT_PCIDEV=y -CONFIG_DECOMPRESS_OFAST=y -CONFIG_WARNINGS_ARE_ERRORS=y -CONFIG_MAX_REBOOT_CNT=3 -CONFIG_RELOCATABLE_MODULES=y -CONFIG_HAVE_BOOTBLOCK=y -CONFIG_HAVE_ROMSTAGE=y -CONFIG_HAVE_RAMSTAGE=y From 2e64f6397556b7e6fff8a7a305a5eaa1095acfc1 Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Sat, 6 May 2023 12:16:38 -0600 Subject: [PATCH 0029/2290] Add patches for bios_extract This updates the dell_inspiron_1100.py script from Python 2 to 3 for better compatibility (some distros have dropped Python 2), and adds special handling so that it works with the Latitude E6400 BIOS. These have also been sent upstream, so these patches can be dropped once they are merged: https://review.coreboot.org/c/bios_extract/+/74975/ https://review.coreboot.org/c/bios_extract/+/74976/ https://review.coreboot.org/c/bios_extract/+/74977/ --- ...1100_unpacker-Fix-minor-style-issues.patch | 132 ++++++++++++++++++ ...00_unpacker-Convert-from-python-2-to.patch | 105 ++++++++++++++ ...n_1100_unpacker-Add-module-type-0x52.patch | 50 +++++++ 3 files changed, 287 insertions(+) create mode 100644 resources/bios_extract/patches/0001-dell_inspiron_1100_unpacker-Fix-minor-style-issues.patch create mode 100644 resources/bios_extract/patches/0002-dell_inspiron_1100_unpacker-Convert-from-python-2-to.patch create mode 100644 resources/bios_extract/patches/0003-dell_inspiron_1100_unpacker-Add-module-type-0x52.patch diff --git a/resources/bios_extract/patches/0001-dell_inspiron_1100_unpacker-Fix-minor-style-issues.patch b/resources/bios_extract/patches/0001-dell_inspiron_1100_unpacker-Fix-minor-style-issues.patch new file mode 100644 index 00000000..e00379bf --- /dev/null +++ b/resources/bios_extract/patches/0001-dell_inspiron_1100_unpacker-Fix-minor-style-issues.patch @@ -0,0 +1,132 @@ +From d187ceefacc4909c4a3fdb8098878cb9bcd2c198 Mon Sep 17 00:00:00 2001 +From: Nicholas Chin +Date: Fri, 5 May 2023 19:34:29 -0600 +Subject: [PATCH 1/3] dell_inspiron_1100_unpacker: Fix minor style issues + +- Make indent width consistent +- Use spaces around -= operator +- Rename variable type to type_id to avoid shadowing the type method, + though that method isn't ever used in this program + +Signed-off-by: Nicholas Chin +Change-Id: I2d47501845591e228b6c5d61c36ca2edce91d36a +--- + dell_inspiron_1100_unpacker.py | 84 +++++++++++++++++----------------- + 1 file changed, 42 insertions(+), 42 deletions(-) + +diff --git a/dell_inspiron_1100_unpacker.py b/dell_inspiron_1100_unpacker.py +index 3d5adf5..b12059b 100755 +--- a/dell_inspiron_1100_unpacker.py ++++ b/dell_inspiron_1100_unpacker.py +@@ -19,7 +19,7 @@ def memcpy(arr1, off1, arr2, off2, count): + raise Exception("Trying to write out of bounds") + off1 += 1 + off2 += 1 +- count -=1 ++ count -= 1 + + # looks like some lzss variation + def dell_unpack(indata): +@@ -64,58 +64,58 @@ def dell_unpack(indata): + return dst.tostring() + + mod_types = { +- 0x01: "Main ROM", +- 0x0C: "Microcode update", ++ 0x01: "Main ROM", ++ 0x0C: "Microcode update", + } + + print "Dell/Phoenix ROM BIOS PLUS unpacker" + if len(sys.argv) < 2: +- print "Usage: dell_unpack.py bios.bin [offset]" +- sys.exit(1) ++ print "Usage: dell_unpack.py bios.bin [offset]" ++ sys.exit(1) + fname = sys.argv[1] + offs = 0 + f = open(fname, "rb").read() + if len(sys.argv) > 2: +- offs = int(sys.argv[2], 16) ++ offs = int(sys.argv[2], 16) + else: +- offs = f.find("\xF0\x00Copyright 1985-\x02\x04\xF0\x0F8 Phoenix Technologies Ltd.") +- if offs == -1: +- print "Does not look like a Dell/Phoenix ROM BIOS PLUS" +- sys.exit(2) +- if f[offs-5] == '\x01': +- hlen = 5 # 32-bit length +- offs -= 5 +- fmt = " 0: + fn = "EC.bin" + print "%08X EC code, %08X %s" % (0, offs, fn) + open(fn, "wb").write(f[:offs]) + while True: +- type, leng = struct.unpack(fmt, f[offs:offs+hlen]) +- print "%08X type %02X" % (offs, type), +- offs += hlen +- if type == 0xFF: +- print "" +- break +- data = f[offs:offs+leng] +- offs += leng +- if type != 0xC: +- odata = dell_unpack(data) +- else: +- odata = data +- print " %08X -> %08X" % (leng, len(odata)), +- fn = "mod_%02X.bin" % type +- print " %s" % fn, +- if type in mod_types: +- print "(%s)" % mod_types[type] +- else: +- print "" +- open(fn, "wb").write(odata) ++ type_id, leng = struct.unpack(fmt, f[offs:offs+hlen]) ++ print "%08X type %02X" % (offs, type_id), ++ offs += hlen ++ if type_id == 0xFF: ++ print "" ++ break ++ data = f[offs:offs+leng] ++ offs += leng ++ if type_id != 0xC: ++ odata = dell_unpack(data) ++ else: ++ odata = data ++ print " %08X -> %08X" % (leng, len(odata)), ++ fn = "mod_%02X.bin" % type_id ++ print " %s" % fn, ++ if type_id in mod_types: ++ print "(%s)" % mod_types[type_id] ++ else: ++ print "" ++ open(fn, "wb").write(odata) +-- +2.40.1 + diff --git a/resources/bios_extract/patches/0002-dell_inspiron_1100_unpacker-Convert-from-python-2-to.patch b/resources/bios_extract/patches/0002-dell_inspiron_1100_unpacker-Convert-from-python-2-to.patch new file mode 100644 index 00000000..f49c8dbd --- /dev/null +++ b/resources/bios_extract/patches/0002-dell_inspiron_1100_unpacker-Convert-from-python-2-to.patch @@ -0,0 +1,105 @@ +From 34ecbda8cc75eecb747004520c9e0bd6de3c7723 Mon Sep 17 00:00:00 2001 +From: Nicholas Chin +Date: Fri, 5 May 2023 19:35:45 -0600 +Subject: [PATCH 2/3] dell_inspiron_1100_unpacker: Convert from python 2 to 3 + +TEST: The output of the script is the same as the python 2 version when +run against the Inspiron 1100 BIOS + +Signed-off-by: Nicholas Chin +Change-Id: I2ab9a72bc65121b1106e9867b7d58d1eefb0eb3d +--- + dell_inspiron_1100_unpacker.py | 34 +++++++++++++++++----------------- + 1 file changed, 17 insertions(+), 17 deletions(-) + +diff --git a/dell_inspiron_1100_unpacker.py b/dell_inspiron_1100_unpacker.py +index b12059b..5e43813 100755 +--- a/dell_inspiron_1100_unpacker.py ++++ b/dell_inspiron_1100_unpacker.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python2 ++#!/usr/bin/env python3 + # Dell/Phoenix ROM BIOS PLUS unpacker + # 2012-09-12 version 0.1 + # 2012-10-10 version 0.2 added support for older BIOSes with 16-bit length (Dell Inspiron 1100) +@@ -61,16 +61,16 @@ def dell_unpack(indata): + dstoff += count + srcoff += count + +- return dst.tostring() ++ return dst + + mod_types = { + 0x01: "Main ROM", + 0x0C: "Microcode update", + } + +-print "Dell/Phoenix ROM BIOS PLUS unpacker" ++print("Dell/Phoenix ROM BIOS PLUS unpacker") + if len(sys.argv) < 2: +- print "Usage: dell_unpack.py bios.bin [offset]" ++ print("Usage: dell_unpack.py bios.bin [offset]") + sys.exit(1) + fname = sys.argv[1] + offs = 0 +@@ -78,32 +78,32 @@ f = open(fname, "rb").read() + if len(sys.argv) > 2: + offs = int(sys.argv[2], 16) + else: +- offs = f.find("\xF0\x00Copyright 1985-\x02\x04\xF0\x0F8 Phoenix Technologies Ltd.") ++ offs = f.find(b"\xF0\x00Copyright 1985-\x02\x04\xF0\x0F8 Phoenix Technologies Ltd.") + if offs == -1: +- print "Does not look like a Dell/Phoenix ROM BIOS PLUS" ++ print("Does not look like a Dell/Phoenix ROM BIOS PLUS") + sys.exit(2) +- if f[offs-5] == '\x01': ++ if f[offs-5] == 0x01: + hlen = 5 # 32-bit length + offs -= 5 + fmt = " 0: + fn = "EC.bin" +- print "%08X EC code, %08X %s" % (0, offs, fn) ++ print("%08X EC code, %08X %s" % (0, offs, fn)) + open(fn, "wb").write(f[:offs]) + while True: + type_id, leng = struct.unpack(fmt, f[offs:offs+hlen]) +- print "%08X type %02X" % (offs, type_id), ++ print("%08X type %02X" % (offs, type_id), end=" ") + offs += hlen + if type_id == 0xFF: +- print "" ++ print("") + break + data = f[offs:offs+leng] + offs += leng +@@ -111,11 +111,11 @@ while True: + odata = dell_unpack(data) + else: + odata = data +- print " %08X -> %08X" % (leng, len(odata)), ++ print(" %08X -> %08X" % (leng, len(odata)), end=" ") + fn = "mod_%02X.bin" % type_id +- print " %s" % fn, ++ print(" %s" % fn, end=" ") + if type_id in mod_types: +- print "(%s)" % mod_types[type_id] ++ print("(%s)" % mod_types[type_id]) + else: +- print "" ++ print("") + open(fn, "wb").write(odata) +-- +2.40.1 + diff --git a/resources/bios_extract/patches/0003-dell_inspiron_1100_unpacker-Add-module-type-0x52.patch b/resources/bios_extract/patches/0003-dell_inspiron_1100_unpacker-Add-module-type-0x52.patch new file mode 100644 index 00000000..6de392be --- /dev/null +++ b/resources/bios_extract/patches/0003-dell_inspiron_1100_unpacker-Add-module-type-0x52.patch @@ -0,0 +1,50 @@ +From b3868ed71a390f925eb22b926b9c735f7b84b383 Mon Sep 17 00:00:00 2001 +From: Nicholas Chin +Date: Sat, 6 May 2023 11:14:45 -0600 +Subject: [PATCH 3/3] dell_inspiron_1100_unpacker: Add module type 0x52 + +The module with type 0x52 in the Latitude E6400 BIOS is the EC firmware, +and is not compressed. The current behavior tries to decompress this +module leading to an index out of bounds error at runtime, so add a new +condition to avoid decompressing it. This assumes type 0x52 is always +used for EC firmware. + +The current behavior also assumes all the data before the first module +is EC firmware, which was probably true for the Inspiron 1100, but for +the E6400 the EC firmware is in module 0x52. However, for simplicity an +exception is not made for this behavior, so the extracted EC.bin should +just be treated as spurious data for the E6400. + +TEST: Inspiron 1100 BIOS is still unpacked correctly, Latitude E6400 +BIOS unpacks without runtime errors. + +Signed-off-by: Nicholas Chin +Change-Id: I3152150b7dea4d79840c61683692c65b1311cce2 +--- + dell_inspiron_1100_unpacker.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/dell_inspiron_1100_unpacker.py b/dell_inspiron_1100_unpacker.py +index 5e43813..3589550 100755 +--- a/dell_inspiron_1100_unpacker.py ++++ b/dell_inspiron_1100_unpacker.py +@@ -66,6 +66,7 @@ def dell_unpack(indata): + mod_types = { + 0x01: "Main ROM", + 0x0C: "Microcode update", ++ 0x52: "EC firmware" + } + + print("Dell/Phoenix ROM BIOS PLUS unpacker") +@@ -107,7 +108,7 @@ while True: + break + data = f[offs:offs+leng] + offs += leng +- if type_id != 0xC: ++ if type_id != 0xC and type_id != 0x52: + odata = dell_unpack(data) + else: + odata = data +-- +2.40.1 + From 5a197b4ff160a348179a3350af266c6b87a3aa04 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 6 May 2023 21:21:42 +0100 Subject: [PATCH 0030/2290] blobutil: support downloading E6400 VGA ROM For Nvidia GPU models of Dell Latitude E6400 --- .gitignore | 1 + resources/blobs/sources | 10 +++ resources/scripts/blobs/download | 107 ++++++++++++++++++++++++++- resources/scripts/blobs/inject | 20 +++++ resources/scripts/build/release/roms | 21 ++++-- 5 files changed, 150 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index ad508acc..436984a9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *~ *.o +/pciroms/ /util/e6400-flash-unlock/e6400_flash_unlock /util/ich9utils/*.bin /util/ich9utils/demefactory diff --git a/resources/blobs/sources b/resources/blobs/sources index e0b912ba..aa55d0c0 100644 --- a/resources/blobs/sources +++ b/resources/blobs/sources @@ -48,3 +48,13 @@ EC_url https://ftp.hp.com/pub/softpaq/sp96001-96500/sp96090.exe EC_url_bkup http://web.archive.org/web/20220504072602/https://ftp.ext.hp.com/pub/softpaq/sp96001-96500/sp96090.exe } + +# nvidia vga option rom for dgpu models of Dell Latitude E6400 +# for downloading the nvidia rom to pciroms/pci0x10de,0x06eb.rom +{e6400nvidia}{ + E6400_VGA_DL_hash a24ed919e80287b281e407d525af31f307746250 + E6400_VGA_DL_url https://dl.dell.com/FOLDER01530530M/1/E6400A34.exe + E6400_VGA_DL_url_bkup https://web.archive.org/web/20230506014903/https://dl.dell.com/FOLDER01530530M/1/E6400A34.exe + E6400_VGA_offset 274451 + E6400_VGA_romname mod_21.bin +} diff --git a/resources/scripts/blobs/download b/resources/scripts/blobs/download index d1f5138e..f8b72265 100755 --- a/resources/scripts/blobs/download +++ b/resources/scripts/blobs/download @@ -9,11 +9,18 @@ ec_url="" ec_url_bkup="" ec_hash="" +e6400_vga_dl_hash="" +e6400_vga_dl_url="" +e6400_vga_dl_url_bkup="" +e6400_vga_offset="" +e6400_vga_romname="" + blobdir="blobs" dl_path="${blobdir}/vendorupdate" appdir="${blobdir}/app" _7ztest="a" mecleaner="$(pwd)/me_cleaner/me_cleaner.py" +e6400_unpack="$(pwd)/bios_extract/dell_inspiron_1100_unpacker.py" me7updateparser="$(pwd)/resources/blobs/me7_update_parser.py" kbc1126_ec_dump="$(pwd)/coreboot/default/util/kbc1126/kbc1126_ec_dump" board="${1}" @@ -49,6 +56,12 @@ if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then needs="${needs} EC" fi +if [ "${CONFIG_BOARD_DELL_E6400}" = "y" ] \ + && [ "${CONFIG_VGA_BIOS_FILE}" != "" ]; then + printf "Dell E6400 with Nvidia GPU detected, downloading VGA ROM\n" + needs="${needs} E6400VGA" +fi + # Quickly exit without wasting more time if there are no blobs needed (GM45) if [ -z ${needs+x} ]; then printf 'No binary blobs needed for this board\n' @@ -81,6 +94,26 @@ while read -r line ; do set ${line} dl_url_bkup=${2} ;; + E6400_VGA_DL_hash*) + set ${line} + e6400_vga_dl_hash=${2} + ;; + E6400_VGA_DL_url*) + set ${line} + e6400_vga_dl_url=${2} + ;; + E6400_VGA_DL_url_bkup*) + set ${line} + e6400_vga_dl_url_bkup=${2} + ;; + E6400_VGA_offset*) + set ${line} + e6400_vga_offset=${2} + ;; + E6400_VGA_romname*) + set ${line} + e6400_vga_romname=${2} + ;; esac done << EOF $(eval "awk ' /\{.*${board_short}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }' resources/blobs/sources") @@ -107,6 +140,11 @@ Build_deps(){ ./download coreboot default || Fail 'could not download coreboot' fi + if [ ! -d bios_extract ]; then + printf "downloading bios_extract\n" + ./download bios_extract || Fail 'could not download bios_extract' + fi + if [ ! -f coreboot/default/util/kbc1126/kbc1126_ec_dump ]; then printf "Building kbc1126_ec_dump from coreboot\n" make -BC coreboot/default/util/kbc1126 || Fail \ @@ -131,6 +169,9 @@ Download_needed(){ *EC*) Download_ec || _failed="${_failed} ec" ;; + *E6400VGA*) + Download_e6400vga || _failed="${_failed} e6400vga" + ;; esac done @@ -286,6 +327,62 @@ Extract_ec() { cp "${appdir}/${dl_path##*/}"/ec.bin.fw* "${_ec_destination%/*}/" } +Download_e6400vga() { + printf "Downloading Nvidia VGA ROM for Dell Latitude E6400\n" + + Fetch_update e6400vga || return 1 + Extract_e6400vga || return 1 + + return 0 +} + +Extract_e6400vga() { + printf "Extracting Nvidia VGA ROM for ${board}\n" + + _vga_destination=${CONFIG_VGA_BIOS_FILE#../../} + + if [ -f "${_vga_destination}" ]; then + printf 'vga rom already downloaded\n' + return 0 + fi + + if [ ! -d "${_vga_destination%/*}" ]; then + mkdir -p ${_vga_destination%/*} + fi + if [ -d "${appdir}" ]; then + rm -r ${appdir} + fi + mkdir -p "${appdir}" + mv "${dl_path}" "${appdir}" + + if [ "${e6400_vga_offset}" = "" ]; then + printf "E6400 VGA offset not defined\n" + return 1 + fi + if [ "${e6400_vga_romname}" = "" ]; then + printf "E6400 VGA ROM name not defined\n" + return 1 + fi + + ( + cd "${appdir}" + tail -c +${e6400_vga_offset} "${dl_path##*/}" \ + | gunzip > bios.bin + if [ ! -f "bios.bin" ]; then + Fail 'Could not extract bios.bin from Dell E6400 update' + fi + "${e6400_unpack}" bios.bin || printf "TODO: fix dell extract util\n" + if [ ! -f "${e6400_vga_romname}" ]; then + Fail 'Could not extract VGA ROM from Dell E6400 BIOS update' + fi + ) + + cp "${appdir}"/"${e6400_vga_romname}" "${_vga_destination}" + + printf "E6400 Nvidia ROM saved to: %s\n" "${_vga_destination}" + return 0 +} + Fetch_update() { printf "Fetching vendor update for board: %s\n" ${board} @@ -301,18 +398,22 @@ Fetch_update() { dl=${ec_url} dl_bkup=${ec_url_bkup} dlsum=${ec_hash} + elif [ "${fw_type}" = "e6400vga" ]; then + dl=${e6400_vga_dl_url} + dl_bkup=${e6400_vga_dl_url_bkup} + dlsum=${e6400_vga_dl_hash} else printf "Unsupported download type: %s\n" ${fw_type} return 1 fi - if [ -z "${dl_url+x}" ]; then + if [ -z "${dl_url+x}" ] && [ "${fw_type}" != "e6400vga" ]; then printf "No vendor update specified for board: %s\n" ${board} return 1 fi Vendor_checksum ${dlsum} || \ - curl ${dl} > ${dl_path} || curl ${dl_bkup} > ${dl_path} + wget ${dl} -O ${dl_path} || wget ${dl_bkup} -O ${dl_path} Vendor_checksum ${dlsum} || Fail \ "Cannot guarantee intergity of vendor update for board: ${board}" @@ -329,7 +430,7 @@ Vendor_checksum() { fi if [ "$(sha1sum ${dl_path} | awk '{print $1}')" != "${sha1}" ]; then printf "Bad checksum on vendor update for board: %s\n" ${board} - rm ${dl_path} +# rm ${dl_path} return 1 fi return 0 diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index e96fface..2e4e7a7c 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -121,6 +121,26 @@ set -- "resources/coreboot/${board}/config/*" ./coreboot/default/util/cbfstool/cbfstool "${rom}" add -f ${_ec2_location} -n ecfw2.bin -b ${_ec2_offset} -t raw || exit 1 fi + if [ "${CONFIG_VGA_BIOS_FILE}" != "" ] \ + && [ "${CONFIG_VGA_BIOS_ID}" != "" ]; then + _vga_location="${CONFIG_VGA_BIOS_FILE#../../}" + _vga_dir="${_vga_location%/*}" + _vga_filename="${_vga_location##*/}" + printf "adding pci option rom\n" + if [ "${_vga_dir}" != "pciroms" ]; then + printf "Invalid PCI ROM directory: %s\n" ${_vga_dir} + exit 1 + fi + if [ ! -f "${_vga_location}" ]; then + printf "No such file exists: %s\n" ${_vga_location} + exit 1 + fi + ./coreboot/default/util/cbfstool/cbfstool ${rom} \ + add -f "${_vga_location}" \ + -n "pci${CONFIG_VGA_BIOS_ID}.rom" \ + -t optionrom || exit 1 + fi + if [ "${modifygbe}" = "true" ] && ! [ "${release}" = "true" ]; then Modify_gbe ${rom} fi diff --git a/resources/scripts/build/release/roms b/resources/scripts/build/release/roms index 29d651b5..81949130 100755 --- a/resources/scripts/build/release/roms +++ b/resources/scripts/build/release/roms @@ -66,8 +66,9 @@ for romdir in bin/*; do grep "CONFIG_HAVE_ME_BIN=y" "resources/coreboot/${target}/config/"* || CONFIG_HAVE_ME_BIN="n" grep "CONFIG_HAVE_MRC=y" "resources/coreboot/${target}/config/"* || CONFIG_HAVE_MRC="n" grep "CONFIG_KBC1126_FIRMWARE=y" "resources/coreboot/${target}/config"/* || CONFIG_KBC1126_FIRMWARE="n" + # remove ME/MRC/EC firmware from ROM images - if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then + if [ "${CONFIG_HAVE_ME_BIN}" = "y" ] || [ "${target}" = "e6400nvidia_4mb" ]; then if [ ! -d coreboot/default ]; then ./download coreboot default || exit 1 fi @@ -99,14 +100,15 @@ for romdir in bin/*; do for romfile in "${romdir}"/*.rom do - if [ ! -f "${romfile}" ] - then + if [ ! -f "${romfile}" ]; then continue fi - ${ifdtool} --nuke me "${romfile}" || exit 1 - mv "${romfile}" "${romdir}_tmp"/ - mv "${romfile}.new" "${romfile}" + if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then + ${ifdtool} --nuke me "${romfile}" || exit 1 + mv "${romfile}" "${romdir}_tmp"/ + mv "${romfile}.new" "${romfile}" + fi if [ "${CONFIG_HAVE_MRC}" = "y" ] then @@ -118,6 +120,13 @@ for romdir in bin/*; do ${cbfstool} "${romfile}" remove -n ecfw1.bin || exit 1 ${cbfstool} "${romfile}" remove -n ecfw2.bin || exit 1 fi + + # TODO: replace this board-specific hack + if [ "${target}" = "e6400nvidia_4mb" ]; then + ${cbfstool} "${romfile}" remove \ + -n "pci10de,06eb.rom" \ + || exit 1 + fi done fi From ee46c04295c35fab6c59a5ee6d190483d28df7f5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 7 May 2023 03:56:48 +0100 Subject: [PATCH 0031/2290] update the makefile the makefile is a meme, but it should still be properly maintained --- Makefile | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index dad9ab28..e4fbb0d9 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,12 @@ # -# Makefile for compatibility purposes -# You can use this, but it's recommended to run build system commands directly +# Makefile for meme purposes +# You can use this, but it just runs lbmk commands. # -# See docs/maintain/ and docs/git/ for information about the build system +# See docs/maintain/ and docs/git/ for information about the build system: +# https://libreboot.org/docs/maintain/ +# https://libreboot.org/docs/build/ # -# Copyright (C) 2020, 2021 Leah Rowe +# Copyright (C) 2020, 2021, 2023 Leah Rowe # Copyright (C) 2022 Ferass El Hafidi # # This program is free software: you can redistribute it and/or modify @@ -26,7 +28,8 @@ #.PHONY: all check download modules ich9m-descriptors payloads roms release \ # clean crossgcc-clean install-dependencies-ubuntu \ # install-dependencies-debian install-dependencies-arch \ -# install-dependencies-void +# install-dependencies-void install-dependencies-fedora38 \ +# install-dependencies-parabola all: roms @@ -58,6 +61,8 @@ clean: ./build clean grub ./build clean memtest86plus ./build clean rom_images + ./build clean u-boot + ./build clean bios_extract crossgcc-clean: ./build clean crossgcc @@ -73,3 +78,9 @@ install-dependencies-arch: install-dependencies-void: ./build dependencies void + +install-dependencies-fedora38: + ./build dependencies fedora38 + +install-dependencies-parabola: + ./build dependencies parabola From 15ad5a00d1384037a55e590803345eb362226b3f Mon Sep 17 00:00:00 2001 From: Riku Viitanen Date: Tue, 9 May 2023 21:39:18 +0300 Subject: [PATCH 0032/2290] hp9470m: fix board name in smbios --- resources/coreboot/hp9470m_16mb/config/libgfxinit_corebootfb | 2 +- resources/coreboot/hp9470m_16mb/config/libgfxinit_txtmode | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/coreboot/hp9470m_16mb/config/libgfxinit_corebootfb b/resources/coreboot/hp9470m_16mb/config/libgfxinit_corebootfb index 07f57c64..88f9e744 100644 --- a/resources/coreboot/hp9470m_16mb/config/libgfxinit_corebootfb +++ b/resources/coreboot/hp9470m_16mb/config/libgfxinit_corebootfb @@ -165,7 +165,7 @@ CONFIG_BOARD_HP_FOLIO_9470M=y CONFIG_EC_HP_KBC1126_ECFW_IN_CBFS=y CONFIG_EC_HP_KBC1126_GPE=0x16 CONFIG_BOARD_HP_SNB_IVB_LAPTOPS_COMMON=y -CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="EliteBook 2560p" +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="EliteBook Folio 9470m" CONFIG_HAVE_IFD_BIN=y CONFIG_PCIEXP_HOTPLUG_BUSES=8 CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 diff --git a/resources/coreboot/hp9470m_16mb/config/libgfxinit_txtmode b/resources/coreboot/hp9470m_16mb/config/libgfxinit_txtmode index 4ea78ffb..ffa67f4c 100644 --- a/resources/coreboot/hp9470m_16mb/config/libgfxinit_txtmode +++ b/resources/coreboot/hp9470m_16mb/config/libgfxinit_txtmode @@ -163,7 +163,7 @@ CONFIG_BOARD_HP_FOLIO_9470M=y CONFIG_EC_HP_KBC1126_ECFW_IN_CBFS=y CONFIG_EC_HP_KBC1126_GPE=0x16 CONFIG_BOARD_HP_SNB_IVB_LAPTOPS_COMMON=y -CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="EliteBook 2560p" +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="EliteBook Folio 9470m" CONFIG_HAVE_IFD_BIN=y CONFIG_PCIEXP_HOTPLUG_BUSES=8 CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 From 3f1ee01507444335bda531b394bcdf36b5a47495 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 8 May 2023 19:45:32 +0100 Subject: [PATCH 0033/2290] seabios: do normal config, disable oprom in vgarom previously, "normal" initmode relied on the vgarom-based seabios config, which enables option roms, but then lbmk would insert pci-optionrom-exec 0 for vgarom, and 2 for normal in libreboot, coreboot roms with "vgarom" in the filename do pci option rom execution from coreboot, and "normal" roms do execution from seabios(where seabios is the only payload provided on normal setups) this is because payloads like grub can also be used, on vgarom setups, where coreboot must handle oprom execution --- resources/scripts/build/boot/roms_helper | 14 ++-- resources/scripts/build/payload/seabios | 10 ++- resources/seabios/config/normal | 91 ++++++++++++++++++++++++ resources/seabios/config/vgarom | 3 +- 4 files changed, 105 insertions(+), 13 deletions(-) create mode 100644 resources/seabios/config/normal diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 9bcc6933..dd4a3b19 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -217,7 +217,8 @@ fi if [ ! -f "${seavgabiosrom}" ] \ || [ ! -f payload/seabios/seabios_libgfxinit.elf ] \ - || [ ! -f payload/seabios/seabios_vgarom.elf ]; then + || [ ! -f payload/seabios/seabios_vgarom.elf ] \ + || [ ! -f payload/seabios/seabios_normal.elf ]; then if [ "${payload_seabios}" = "y" ]; then ./build payload seabios elif [ "${payload_grub}" = "y" ] \ @@ -361,14 +362,7 @@ make_seabios_rom() { target_opromloadonly="${3}" # 0 or 1. if 1, only load but don't execute oproms target_initmode="${4}" # e.g. libgfxinit - if [ "${target_initmode}" = "normal" ]; then - target_seabioself="payload/seabios/seabios_vgarom.elf" - # if normal, etc/pci-optionrom-exec will be set to 2 - else - target_seabioself="payload/seabios/seabios_${target_initmode}.elf" - # if libgfxinit, etc/pci-optionrom-exec will be set to 2 - # if vgarom, etc/pci-optionrom-exec will be set to 0 - fi + target_seabioself="payload/seabios/seabios_${target_initmode}.elf" target_seavgabios_rom="payload/seabios/seavgabios.bin" tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) @@ -378,7 +372,7 @@ make_seabios_rom() { "${cbfstool}" "${tmprom}" add-int -i 3000 -n etc/ps2-keyboard-spinup || exit 1 if [ "${target_initmode}" = "normal" ] || [ "${target_initmode}" = "libgfxinit" ]; then "${cbfstool}" "${tmprom}" add-int -i 2 -n etc/pci-optionrom-exec || exit 1 - elif [ "${target_initmode}" = "vgarom" ]; then + elif [ "${target_initmode}" = "vgarom" ]; then # coreboot executes the rom "${cbfstool}" "${tmprom}" add-int -i 0 -n etc/pci-optionrom-exec || exit 1 fi # for undefined modes, don't add this integer. rely on SeaBIOS defaults "${cbfstool}" "${tmprom}" add-int -i 0 -n etc/optionroms-checksum || exit 1 diff --git a/resources/scripts/build/payload/seabios b/resources/scripts/build/payload/seabios index af2840d8..4a7ba626 100755 --- a/resources/scripts/build/payload/seabios +++ b/resources/scripts/build/payload/seabios @@ -2,7 +2,7 @@ # helper script: builds SeaBIOS source code # -# Copyright (C) 2020, 2021 Leah Rowe +# Copyright (C) 2020, 2021, 2023 Leah Rowe # Copyright (C) 2022 Ferass El Hafidi # # This program is free software: you can redistribute it and/or modify @@ -55,6 +55,14 @@ make -j$(nproc) mv out/bios.bin.elf ../payload/seabios/seabios_vgarom.elf rm .config +# for normal setup: +[ -f Makefile ] && make distclean +cp ../resources/seabios/config/normal .config +make silentoldconfig -j$(nproc) +make -j$(nproc) +mv out/bios.bin.elf ../payload/seabios/seabios_normal.elf +rm .config + # clean it again. gotta keep it clean! [ -f Makefile ] && make distclean diff --git a/resources/seabios/config/normal b/resources/seabios/config/normal new file mode 100644 index 00000000..92b9c56c --- /dev/null +++ b/resources/seabios/config/normal @@ -0,0 +1,91 @@ +# +# Automatically generated file; DO NOT EDIT. +# SeaBIOS Configuration +# + +# +# General Features +# +CONFIG_COREBOOT=y +# CONFIG_QEMU is not set +# CONFIG_CSM is not set +# CONFIG_QEMU_HARDWARE is not set +CONFIG_THREADS=y +CONFIG_RELOCATE_INIT=y +CONFIG_BOOTMENU=y +CONFIG_BOOTSPLASH=y +CONFIG_BOOTORDER=y +CONFIG_HOST_BIOS_GEOMETRY=y +CONFIG_COREBOOT_FLASH=y +CONFIG_LZMA=y +CONFIG_CBFS_LOCATION=0 +CONFIG_MULTIBOOT=y +CONFIG_ENTRY_EXTRASTACK=y +CONFIG_MALLOC_UPPERMEMORY=y +CONFIG_ROM_SIZE=0 + +# +# Hardware support +# +CONFIG_ATA=y +CONFIG_ATA_DMA=y +# CONFIG_ATA_PIO32 is not set +CONFIG_AHCI=y +CONFIG_SDCARD=y +CONFIG_MEGASAS=y +CONFIG_FLOPPY=y +CONFIG_FLASH_FLOPPY=y +CONFIG_NVME=y +CONFIG_PS2PORT=y +CONFIG_USB=y +CONFIG_USB_UHCI=y +CONFIG_USB_OHCI=y +CONFIG_USB_EHCI=y +CONFIG_USB_XHCI=y +CONFIG_USB_MSC=y +CONFIG_USB_UAS=y +CONFIG_USB_HUB=y +CONFIG_USB_KEYBOARD=y +CONFIG_USB_MOUSE=y +CONFIG_SERIAL=y +CONFIG_SERCON=y +CONFIG_LPT=y +CONFIG_RTC_TIMER=y +CONFIG_HARDWARE_IRQ=y +CONFIG_PMTIMER=y +CONFIG_TSC_TIMER=y + +# +# BIOS interfaces +# +CONFIG_DRIVES=y +CONFIG_CDROM_BOOT=y +CONFIG_CDROM_EMU=y +CONFIG_PCIBIOS=y +CONFIG_APMBIOS=y +CONFIG_PNPBIOS=y +CONFIG_OPTIONROMS=y +CONFIG_PMM=y +CONFIG_BOOT=y +CONFIG_KEYBOARD=y +CONFIG_KBD_CALL_INT15_4F=y +CONFIG_MOUSE=y +CONFIG_S3_RESUME=y +CONFIG_VGAHOOKS=y +# CONFIG_DISABLE_A20 is not set +CONFIG_TCGBIOS=y + +# +# VGA ROM +# +CONFIG_NO_VGABIOS=y +# CONFIG_VGA_GEODEGX2 is not set +# CONFIG_VGA_GEODELX is not set +# CONFIG_VGA_COREBOOT is not set +# CONFIG_BUILD_VGABIOS is not set +CONFIG_VGA_EXTRA_STACK_SIZE=512 + +# +# Debugging +# +CONFIG_DEBUG_LEVEL=0 diff --git a/resources/seabios/config/vgarom b/resources/seabios/config/vgarom index 92b9c56c..9f543cea 100644 --- a/resources/seabios/config/vgarom +++ b/resources/seabios/config/vgarom @@ -64,8 +64,7 @@ CONFIG_CDROM_EMU=y CONFIG_PCIBIOS=y CONFIG_APMBIOS=y CONFIG_PNPBIOS=y -CONFIG_OPTIONROMS=y -CONFIG_PMM=y +# CONFIG_OPTIONROMS is not set CONFIG_BOOT=y CONFIG_KEYBOARD=y CONFIG_KBD_CALL_INT15_4F=y From 79939f2f1c8de368a6c16603100946e64a80cf88 Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Sat, 6 May 2023 15:58:10 -0600 Subject: [PATCH 0034/2290] Add devicetree patch for E6400 with Nvidia GPU --- ...able-01.0-device-in-devicetree-for-d.patch | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 resources/coreboot/default/patches/0021-mb-dell-e6400-Enable-01.0-device-in-devicetree-for-d.patch diff --git a/resources/coreboot/default/patches/0021-mb-dell-e6400-Enable-01.0-device-in-devicetree-for-d.patch b/resources/coreboot/default/patches/0021-mb-dell-e6400-Enable-01.0-device-in-devicetree-for-d.patch new file mode 100644 index 00000000..b03f2750 --- /dev/null +++ b/resources/coreboot/default/patches/0021-mb-dell-e6400-Enable-01.0-device-in-devicetree-for-d.patch @@ -0,0 +1,28 @@ +From 521a2edd13050fa39c896bf4f481ff0021c9213e Mon Sep 17 00:00:00 2001 +From: Nicholas Chin +Date: Sat, 6 May 2023 15:53:41 -0600 +Subject: [PATCH] mb/dell/e6400: Enable 01.0 device in devicetree for dGPU + models + +Change-Id: I9b8e5d3cd1e1f64dc87b682b1e045b6342924aed +Signed-off-by: Nicholas Chin +--- + src/mainboard/dell/e6400/devicetree.cb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/mainboard/dell/e6400/devicetree.cb b/src/mainboard/dell/e6400/devicetree.cb +index bb954cbd7b..e9f3915d17 100644 +--- a/src/mainboard/dell/e6400/devicetree.cb ++++ b/src/mainboard/dell/e6400/devicetree.cb +@@ -19,7 +19,7 @@ chip northbridge/intel/gm45 + ops gm45_pci_domain_ops + + device pci 00.0 on end # host bridge +- device pci 01.0 off end ++ device pci 01.0 on end + device pci 02.0 on end # VGA + device pci 02.1 on end # Display + device pci 03.0 on end # ME +-- +2.40.1 + From 67a607b88cb19619a39f60d8b665a1bd0b4a1285 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 10 May 2023 02:48:34 +0100 Subject: [PATCH 0035/2290] build/boot/roms*: RFC 2646 compliance No more than 80 characters per line. --- resources/scripts/build/boot/roms | 22 +- resources/scripts/build/boot/roms_helper | 311 +++++++++++++++-------- 2 files changed, 215 insertions(+), 118 deletions(-) diff --git a/resources/scripts/build/boot/roms b/resources/scripts/build/boot/roms index 4a34f619..e02ac1b7 100755 --- a/resources/scripts/build/boot/roms +++ b/resources/scripts/build/boot/roms @@ -3,7 +3,8 @@ # # helper script: build coreboot images with various payloads # -# Copyright (C) 2014, 2015, 2016, 2020, 2021 Leah Rowe +# Copyright (C) 2014,2015,2016,2020,2021,2023 Leah Rowe +# # Copyright (C) 2015 Klemens Nanni # Copyright (C) 2022 Caleb La Grange # Copyright (C) 2022 Ferass El Hafidi @@ -51,9 +52,10 @@ help() { -p: payload -k: keyboard layout - Example: ./build boot roms x60 - Example: ./build boot roms x200_8mb x60 - Example: ./build boot roms x230_12mb -p grub -d corebootfb -k usqwerty + Example commands: + ./build boot roms x60 + ./build boot roms x200_8mb x60 + ./build boot roms x60 -p grub -d corebootfb -k usqwerty possible values for 'boardname': $(listboards) @@ -71,13 +73,15 @@ die() { buildrom() { board="$1" - # Start by building blobs and placing them in the coreboot tree only for boards that need them + # Start by building blobs and placing them in the + # coreboot tree only for boards that need them ./blobutil download ${board} || exit 1 if [ -d "resources/coreboot/${board}/" ]; then ./build boot roms_helper "${board}${opts}" else - die "\nbuild/roms: target not defined in the build system: %s\n" "${board}" + printf "\nbuild/roms: target not defined: %s\n" ${board} + die "Run: ./build boot roms list" fi } @@ -118,11 +122,11 @@ fi if [ "${firstoption}" = "all" ]; then for boardname in $(listboards); do - buildrom "${boardname}" || die "build/roms: something went wrong" + buildrom "${boardname}" || die "build/roms: error" done else for board in ${boards}; do - buildrom "${board}" || die "build/roms: something went wrong" + buildrom "${board}" || die "build/roms: error" done fi else @@ -130,6 +134,4 @@ else exit 1 fi - printf "\n\nDone! Your ROMs are in bin/\n\n" - diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index dd4a3b19..cdf89c82 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -2,8 +2,9 @@ # helper script: create ROM images for a given mainboard # -# Copyright (C) 2020,2021 Leah Rowe -# Copyright (C) 2021,2022 Ferass El Hafidi +# Copyright (C) 2020,2021,2023 Leah Rowe +# Copyright (C) 2021,2022 Ferass El Hafidi +# # Copyright (C) 2022 Caleb La Grange # Copyright (C) 2022 Alper Nebi Yasak # @@ -30,6 +31,7 @@ set -u -e projectname="$(cat projectname)" +kmapdir="resources/grub/keymap" displaymodes="" payloads="" keyboard_layouts="" @@ -50,30 +52,31 @@ while [ $# -gt 0 ]; do shift done -echo "board is $board , kb is ${keyboard_layouts} , displaymode is ${displaymodes} , payloads is ${payloads}" +printf "board is %s , kb is %s , displaymode is %s , payloads is %s\n" \ + ${board} ${keyboard_layouts} ${displaymodes} ${payloads} + if [ ! -d "resources/coreboot/${board}" ]; then - printf "build/roms: Target %s does not exist in the %s build system. Skipping build.\n" "${projectname}" "${board}" + printf "build/roms: Target not defined: %s\n" ${board} exit 1 fi if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then - printf "build/roms: Target %s does not have a board.cfg. Skipping build.\n" "${board}" + printf "build/roms: Missing board.cfg for target: %s\n" ${board} exit 1 fi -# Workaround to grub's slow boot -grub_scan_disk="undefined" # both: scan ata and ahci (slow), there is ata and ahci too - # as an option +grub_scan_disk="undefined" cbtree="undefined" romtype="normal" # optional parameter in board.cfg. "normal" is default arch="undefined" + # Disable all payloads by default. # board.cfg files have to specifically enable [a] payload(s) payload_grub="n" payload_grub_withseabios="n" # seabios chainloaded from grub payload_seabios="n" -payload_seabios_withgrub="n" # i386-coreboot grub accessible from SeaBIOS boot menu +payload_seabios_withgrub="n" # i386-coreboot grub from SeaBIOS boot menu seabios_opromloadonly="0" payload_memtest="n" payload_uboot="n" @@ -82,24 +85,32 @@ uboot_config="undefined" . "resources/coreboot/${board}/board.cfg" if [ "${grub_scan_disk}" = "undefined" ]; then - printf "build/roms: Target %s does not define grub_scan_disk. Defaulting to 'both'.\n" "${board}" + printf "build/roms: Target '%s' does not define grub_scan_disk. " \ + ${board} + printf "Defaulting to 'both'.\n" grub_scan_disk="both" fi if [ "${grub_scan_disk}" != "both" ] && \ [ "${grub_scan_disk}" != "ata" ] && \ [ "${grub_scan_disk}" != "ahci" ]; then - printf "build/roms: Target %s defines an invalid grub_scan_disk setting. Defaulting to 'both'.\n" "${board}" + printf "build/roms: Target '%s' defines bad grub_scan_disk option. " \ + ${board} + printf "Defaulting to 'both'.\n" grub_scan_disk="both" # erroring out would be silly. just use the default fi if [ "${cbtree}" = "undefined" ]; then - printf "build/roms: Target %s does not define a coreboot tree. Skipping build.\n" "${board}" + printf "build/roms: Target '%s' does not define a coreboot tree. " \ + ${board} + printf "Skipping build.\n" exit 1 fi if [ "${arch}" = "undefined" ]; then - printf "build/roms: Target %s does not define a CPU type. Skipping build.\n" "${board}" + printf "build/roms: Target '%s' does not define a CPU type. " \ + ${board} + printf "Skipping build.\n" exit 1 fi @@ -116,23 +127,24 @@ if [ "${payload_grub_withseabios}" = "y" ]; then fi if [ "${payload_grub_withseabios}" = "y" ]; then payload_seabios="y" - payload_seabios_withgrub="y" # if grub-first works, then seabios-with-grub will also work + payload_seabios_withgrub="y" fi if [ "${payload_seabios_withgrub}" = "y" ]; then - payload_seabios="y" # if seabios-with-grub works, then SeaBIOS-alone should also work + payload_seabios="y" fi -# NOTE: reverse logic must not be applied. If SeaBIOS-with-GRUB works, that doesn't -# necessarily mean GRUB-with-SeaBIOS will work nicely. for example, the board might -# only have an add-on GPU available, where it's recommended to boot SeaBIOS first -if [ "${payload_grub}" != "y" ] && [ "${payload_seabios}" != "y" ] && [ "${payload_uboot}" != "y" ]; then - while true; do - for configfile in "resources/coreboot/${board}/config/"*; do - if [ -f "${configfile}" ]; then - printf "ERROR build/roms: Target '%s' does not define a payload. Exiting.\n" "${board}" - exit 1 - fi - done - break +# NOTE: reverse logic must NOT be applied. If SeaBIOS-with-GRUB works, that +# doesn't necessarily mean GRUb-with-SeaBIOS will. For example, the board +# might have an external GPU, where it's recommended to boot SeaBIOS first +if [ "${payload_grub}" != "y" ] && [ "${payload_seabios}" != "y" ] \ + && [ "${payload_uboot}" != "y" ]; then + for configfile in "resources/coreboot/${board}/config/"*; do + if [ ! -e "${configfile}" ]; then + continue + fi + printf "ERROR build/roms: Target '%s' defines no payload. " \ + ${board} + printf "Exiting.\n" + exit 1 done fi @@ -152,7 +164,7 @@ if [ ! -z ${payloads} ]; then payload_grub="n" payload_grub_withseabios="n" # seabios chainloaded from grub payload_seabios="n" - payload_seabios_withgrub="n" # i386-coreboot grub accessible from SeaBIOS boot menu + payload_seabios_withgrub="n" # i386-coreboot grub from SeaBIOS menu payload_uboot="n" seabios_opromloadonly="0" payload_memtest="n" @@ -236,10 +248,15 @@ fi [ -d "${romdir}/" ] || mkdir -p "${romdir}/" rm -f "${romdir}"/* -if [ "${payload_grub}" = "y" ] || [ "${payload_seabios_withgrub}" = "y" ]; then +if [ "${payload_grub}" = "y" ] \ + || [ "${payload_seabios_withgrub}" = "y" ]; then if [ -f "payload/grub/grub_usqwerty.cfg" ]; then - grubrefchecksum="$(sha1sum resources/grub/config/grub.cfg | awk '{print $1}')" - grubbuildchecksum="$(sha1sum payload/grub/grub_usqwerty.cfg | awk '{print $1}')" + sha1sumcmd="sha1sum resources/grub/config/grub.cfg" + grubrefchecksum="$(${sha1sumcmd} | awk '{print $1}')" + + sha1sumcmd="sha1sum payload/grub/grub_usqwerty.cfg" + grubbuildchecksum="$(${sha1sumcmd} | awk '{print $1}')" + if [ "${grubrefchecksum}" != "${grubbuildchecksum}" ]; then rm -Rf payload/grub/ printf "Changes detected to GRUB. Re-building now:\n" @@ -248,7 +265,7 @@ if [ "${payload_grub}" = "y" ] || [ "${payload_seabios_withgrub}" = "y" ]; then printf "Required GRUB payloads not yet built. Building now:\n" rm -Rf payload/grub/ # just in case fi - for keymapfile in resources/grub/keymap/*; do + for keymapfile in ${kmapdir}/*; do if [ ! -f "${keymapfile}" ]; then continue @@ -280,7 +297,7 @@ if [ "${payload_uboot}" = "y" ]; then elif [ -f "${ubdir}/u-boot" ]; then ubootelf="${ubdir}/u-boot" else - printf "Required U-Boot payloads not yet built. Building now:\n" + printf "Required U-Boot payload not yet built. Building now\n" rm -Rf "payload/u-boot/${board}" # just in case ./build payload u-boot "${board}" fi @@ -296,43 +313,56 @@ moverom() { printf "\nCreating new ROM image: %s\n" "${newrompath}" if [ "${cuttype}" = "4MiB IFD BIOS region" ]; then - dd if=${rompath} of=${newrompath} bs=1 skip=$(($(stat -c %s ${rompath}) - 0x400000)) count=4194304 + dd if=${rompath} of=${newrompath} bs=1 \ + skip=$(($(stat -c %s ${rompath}) - 0x400000)) \ + count=4194304 else cp ${rompath} ${newrompath} fi for romsize in 4 8 16; do + ifdgbe="descriptors/ich9m/ich9fdgbe_${romsize}m.bin" if [ "${cuttype}" = "${romsize}MiB ICH9 IFD NOR flash" ]; then - if [ ! -f "descriptors/ich9m/ich9fdgbe_${romsize}m.bin" ]; then + if [ ! -f "${ifdgbe}" ]; then ./build descriptors ich9m fi - dd if=descriptors/ich9m/ich9fdgbe_${romsize}m.bin of=${newrompath} bs=1 count=12k conv=notrunc + dd if=${ifdgbe} of=${newrompath} bs=1 count=12k \ + conv=notrunc + fi + cmpstr="${romsize}MiB ICH9 IFD NOGBE NOR flash" + ifdgbe="descriptors/ich9m/ich9fdnogbe_${romsize}m.bin" + if [ "${cuttype}" = "${cmpstr}" ]; then + if [ ! -f "${ifdgbe}" ]; then + ./build descriptors ich9m fi - if [ "${cuttype}" = "${romsize}MiB ICH9 IFD NOGBE NOR flash" ]; then - if [ ! -f "descriptors/ich9m/ich9fdnogbe_${romsize}m.bin" ]; then - ./build descriptors ich9m - fi - dd if=descriptors/ich9m/ich9fdnogbe_${romsize}m.bin of=${newrompath} bs=1 count=4k conv=notrunc - fi - done + dd if=${ifdgbe} of=${newrompath} bs=1 count=4k \ + conv=notrunc + fi + done - if [ "${cuttype}" = "i945 laptop" ]; then - dd if=${newrompath} of=top64k.bin bs=1 skip=$(($(stat -c %s ${newrompath}) - 0x10000)) count=64k - dd if=top64k.bin of=${newrompath} bs=1 seek=$(($(stat -c %s ${newrompath}) - 0x20000)) count=64k conv=notrunc - rm -f top64k.bin - fi - } + if [ "${cuttype}" = "i945 laptop" ]; then + dd if=${newrompath} of=top64k.bin bs=1 \ + skip=$(($(stat -c %s ${newrompath}) - 0x10000)) \ + count=64k + dd if=top64k.bin of=${newrompath} bs=1 \ + seek=$(($(stat -c %s ${newrompath}) - 0x20000)) \ + count=64k conv=notrunc + rm -f top64k.bin + fi +} # expected: configs must not specify a payload mkCoreboot() { - cbdir="${1}" # e.g. coreboot/default - cbcfgpath="${2}" # e.g. resources/coreboot/x200_8mb/config/libgfxinit_txtmode + cbdir="${1}" # eg. coreboot/default + cbcfgpath="${2}" # eg. resources/coreboot/e6400nvidia_4mb/config/normal if [ ! -f "${cbcfgpath}" ]; then - printf "\nmkCoreboot: Coreboot config '%s' does not exist. Skipping build.\n" \ - "${cbcfgpath}" + printf "\nmkCoreboot: coreboot config '%s' does not exist. " \ + ${cbcfgpath} + printf "Skipping build.\n" return 0 fi - printf "%s-%s\n" "$(cat projectname)" "$(cat version)" > "${cbdir}/.coreboot-version" + printf "%s-%s\n" "$(cat projectname)" "$(cat version)" \ + > "${cbdir}/.coreboot-version" ( if [ -f "${cbfstool}" ]; then mv "${cbfstool}" "${cbdir}/cbfstool" @@ -355,11 +385,11 @@ mkCoreboot() { } # make a rom in /tmp/ and then print the path of that ROM -make_seabios_rom() { - target_cbrom="${1}" # rom to insert seabios in. this rom won't be touched - # a tmpfile will be made instead +mkSeabiosRom() { + target_cbrom="${1}" # rom to insert seabios in. will not be touched + # (a tmpfile will be made instead) target_seabios_cbfs_path="${2}" # e.g. fallback/payload - target_opromloadonly="${3}" # 0 or 1. if 1, only load but don't execute oproms + target_opromloadonly="${3}" # TODO: purge (useless setting) target_initmode="${4}" # e.g. libgfxinit target_seabioself="payload/seabios/seabios_${target_initmode}.elf" @@ -368,27 +398,40 @@ make_seabios_rom() { tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) cp "${target_cbrom}" "${tmprom}" - "${cbfstool}" "${tmprom}" add-payload -f "${target_seabioself}" -n ${target_seabios_cbfs_path} -c lzma || exit 1 - "${cbfstool}" "${tmprom}" add-int -i 3000 -n etc/ps2-keyboard-spinup || exit 1 - if [ "${target_initmode}" = "normal" ] || [ "${target_initmode}" = "libgfxinit" ]; then - "${cbfstool}" "${tmprom}" add-int -i 2 -n etc/pci-optionrom-exec || exit 1 - elif [ "${target_initmode}" = "vgarom" ]; then # coreboot executes the rom - "${cbfstool}" "${tmprom}" add-int -i 0 -n etc/pci-optionrom-exec || exit 1 - fi # for undefined modes, don't add this integer. rely on SeaBIOS defaults - "${cbfstool}" "${tmprom}" add-int -i 0 -n etc/optionroms-checksum || exit 1 - "${cbfstool}" "${tmprom}" add-int -i ${target_opromloadonly} -n etc/only-load-option-roms || exit 1 + + "${cbfstool}" "${tmprom}" add-payload -f "${target_seabioself}" \ + -n ${target_seabios_cbfs_path} -c lzma || exit 1 + + "${cbfstool}" "${tmprom}" add-int -i 3000 -n etc/ps2-keyboard-spinup \ + || exit 1 + + if [ "${target_initmode}" = "normal" ] \ + || [ "${target_initmode}" = "libgfxinit" ]; then + "${cbfstool}" "${tmprom}" add-int -i 2 \ + -n etc/pci-optionrom-exec || exit 1 + elif [ "${target_initmode}" = "vgarom" ]; then # coreboot executes it + "${cbfstool}" "${tmprom}" add-int -i 0 \ + -n etc/pci-optionrom-exec || exit 1 + fi # for undefined modes, don't add this integer. use SeaBIOS defaults + + "${cbfstool}" "${tmprom}" add-int -i 0 -n etc/optionroms-checksum \ + || exit 1 + + "${cbfstool}" "${tmprom}" add-int -i ${target_opromloadonly} \ + -n etc/only-load-option-roms || exit 1 if [ "${target_initmode}" = "libgfxinit" ]; then - "${cbfstool}" "${tmprom}" add -f "${target_seavgabios_rom}" -n vgaroms/seavgabios.bin -t raw || exit 1 + "${cbfstool}" "${tmprom}" add -f "${target_seavgabios_rom}" \ + -n vgaroms/seavgabios.bin -t raw || exit 1 fi printf "%s\n" "${tmprom}" } # make a rom in /tmp/ and then print the path of that ROM -make_uboot_payload_rom() { - target_cbrom="${1}" # rom to insert u-boot in. this rom won't be touched - # a tmpfile will be made instead +mkUbootRom() { + target_cbrom="${1}" # rom to insert u-boot in. it won't be touched + # (a tmpfile will be made instead) target_uboot_cbfs_path="${2}" # e.g. fallback/payload target_uboot_config="${3}" cbfstool_path="${4}" @@ -408,13 +451,14 @@ make_uboot_payload_rom() { tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) cp "${target_cbrom}" "${tmprom}" - "${cbfstool}" "${tmprom}" add-payload -f "${target_ubootelf}" -n ${target_uboot_cbfs_path} -c lzma || exit 1 + "${cbfstool}" "${tmprom}" add-payload -f "${target_ubootelf}" \ + -n ${target_uboot_cbfs_path} -c lzma || exit 1 printf "%s\n" "${tmprom}" } # make a rom in /tmp/ and then print the path of that ROM -make_grubrom_from_keymap() { +mkGrubRom() { target_keymap="${1}" target_cbrom="${2}" target_grubelf_cbfs_path="${3}" # e.g. fallback/payload @@ -426,31 +470,45 @@ make_grubrom_from_keymap() { tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) || exit 1 cp "${target_cbrom}" "${tmprom}" || exit 1 - "${cbfstool}" "${tmprom}" add-payload -f "${grubelf}" -n ${target_grubelf_cbfs_path} -c lzma || exit 1 + "${cbfstool}" "${tmprom}" add-payload -f "${grubelf}" \ + -n ${target_grubelf_cbfs_path} -c lzma || exit 1 tmpgrubcfg=$(mktemp -t grub.cfg.XXXXXXXXXX) tmpgrubtestcfg=$(mktemp -t grubtest.cfg.XXXXXXXXXX) if [ "${grub_scan_disk}" = "ahci" ]; then - sed 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ahci\"/' "${grubcfg}" > "${tmpgrubcfg}" - sed 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ahci\"/' "${grubtestcfg}" > "${tmpgrubtestcfg}" + sed \ + 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ahci\"/' \ + "${grubcfg}" > "${tmpgrubcfg}" + sed \ + 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ahci\"/' \ + "${grubtestcfg}" > "${tmpgrubtestcfg}" elif [ "${grub_scan_disk}" = "ata" ]; then - sed 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ata\"/' "${grubcfg}" > "${tmpgrubcfg}" - sed 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ata\"/' "${grubtestcfg}" > "${tmpgrubtestcfg}" + sed \ + 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ata\"/' \ + "${grubcfg}" > "${tmpgrubcfg}" + sed \ + 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ata\"/' \ + "${grubtestcfg}" > "${tmpgrubtestcfg}" else cp "${grubcfg}" "${tmpgrubcfg}" cp "${grubtestcfg}" "${tmpgrubtestcfg}" fi - "${cbfstool}" "${tmprom}" add -f "${tmpgrubcfg}" -n grub.cfg -t raw || exit 1 - "${cbfstool}" "${tmprom}" add -f "${tmpgrubtestcfg}" -n grubtest.cfg -t raw || exit 1 + + "${cbfstool}" "${tmprom}" add -f "${tmpgrubcfg}" -n grub.cfg -t raw \ + || exit 1 + + "${cbfstool}" "${tmprom}" add -f "${tmpgrubtestcfg}" -n grubtest.cfg \ + -t raw || exit 1 rm -f "${tmpgrubcfg}" "${tmpgrubtestcfg}" backgroundfile="background1280x800.png" if [ "${board}" = "x60" ] || [ "${board}" = "t60_intelgpu" ]; then - # TODO: don't hardcode this check. do it in board.cfg per board + # TODO: don't hardcode this. do it in board.cfg per board backgroundfile="background1024x768.png" fi backgroundfile="resources/grub/background/${backgroundfile}" - "${cbfstool}" "${tmprom}" add -f ${backgroundfile} -n background.png -t raw || exit 1 + "${cbfstool}" "${tmprom}" add -f ${backgroundfile} -n background.png \ + -t raw || exit 1 printf "%s\n" "${tmprom}" } @@ -462,18 +520,25 @@ mkRomsWithGrub() { displaymode="${3}" firstpayloadname="${4}" # allow values: grub, seabios, seabios_withgrub - if [ "${payload_grub_withseabios}" = "y" ] && [ "${firstpayloadname}" = "grub" ]; then - mv "$(make_seabios_rom "${tmprompath}" "seabios.elf" "${seabios_opromloadonly}" "${initmode}")" "${tmprompath}" - elif [ "${payload_seabios_withgrub}" ] && [ "${firstpayloadname}" != "grub" ]; then - mv "$(make_seabios_rom "${tmprompath}" "fallback/payload" "${seabios_opromloadonly}" "${initmode}")" "${tmprompath}" + x=${tmprompath} + y=${seabios_opromloadonly} + z=${initmode} + if [ "${payload_grub_withseabios}" = "y" ] \ + && [ "${firstpayloadname}" = "grub" ]; then + mv "$(mkSeabiosRom "${x}" "seabios.elf" "${y}" "${z}")" \ + "${tmprompath}" + elif [ "${payload_seabios_withgrub}" ] \ + && [ "${firstpayloadname}" != "grub" ]; then + mv "$(mkSeabiosRom "${x}" "fallback/payload" "$y" "$z")" \ + "${tmprompath}" fi keymaps="" if [ -z ${keyboard_layouts} ]; then - keymaps="resources/grub/keymap/*" + keymaps="${kmapdir}/*" else for keymapname in ${keyboard_layouts}; do - keymaps="${keymaps} resources/grub/keymap/${keymapname}.gkb" + keymaps="${keymaps} ${kmapdir}/${keymapname}.gkb" done fi for keymapfile in ${keymaps}; do @@ -491,11 +556,20 @@ mkRomsWithGrub() { grub_path_in_cbfs="img/grub2" fi - tmpgrubrom="$(make_grubrom_from_keymap "${keymap}" "${tmprompath}" "${grub_path_in_cbfs}")" + # evil bofh rfc 2646 compliance hack + x=${keymap} + y=${tmprompath} + z=${grub_path_in_cbfs} + + tmpgrubrom="$(mkGrubRom "${x}" "${y}" "${z}")" + if [ "${initmode}" = "normal" ]; then - newrompath="${romdir}/${firstpayloadname}_${board}_${initmode}_${keymap}.rom" + newrompath="${romdir}/${firstpayloadname}_${board}_" + newrompath="${newrompath}${initmode}_${keymap}.rom" else - newrompath="${romdir}/${firstpayloadname}_${board}_${initmode}_${displaymode}_${keymap}.rom" + newrompath="${romdir}/${firstpayloadname}_${board}_" + newrompath="${newrompath}${initmode}_${displaymode}_" + newrompath="${newrompath}${keymap}.rom" fi moverom "${tmpgrubrom}" "${newrompath}" "${romtype}" rm -f "${tmpgrubrom}" @@ -510,45 +584,62 @@ mkRoms() { if [ ! -f "${cbcfgpath}" ]; then printf "'%s' does not exist. Skipping build for %s %s %s\n" \ - "${cbcfgpath}" "${board}" "${displaymode}" "${initmode}" + ${cbcfgpath} ${board} \ + ${displaymode} ${initmode} return 0 fi mkCoreboot "${cbdir}" "${cbcfgpath}" - if [ "${displaymode}" = "txtmode" ] && [ "${payload_memtest}" = "y" ]; then - "${cbfstool}" "${corebootrom}" add-payload -f memtest86plus/memtest -n img/memtest -c lzma || exit 1 + if [ "${displaymode}" = "txtmode" ] \ + && [ "${payload_memtest}" = "y" ]; then + "${cbfstool}" "${corebootrom}" add-payload \ + -f memtest86plus/memtest -n img/memtest \ + -c lzma || exit 1 fi if [ "${payload_seabios}" = "y" ]; then if [ "${payload_seabios_withgrub}" = "n" ]; then - tmpseabiosrom="$(make_seabios_rom "${corebootrom}" "fallback/payload" "${seabios_opromloadonly}" "${initmode}")" + x=${corebootrom} + y=${seabios_opromloadonly} + z=${initmode} + t=$(mkSeabiosRom "$x" "fallback/payload" "$y" "$z") if [ "${initmode}" = "normal" ]; then - newrompath="${romdir}/seabios_${board}_${initmode}.rom" + newrompath="${romdir}/seabios_${board}_" + newrompath="${newrompath}${initmode}.rom" else - newrompath="${romdir}/seabios_${board}_${initmode}_${displaymode}.rom" + newrompath="${romdir}/seabios_${board}_" + newrompath="${newrompath}${initmode}_" + newrompath="${newrompath}${displaymode}.rom" fi - moverom "${tmpseabiosrom}" "${newrompath}" "${romtype}" - rm -f "${tmpseabiosrom}" + moverom "${t}" "${newrompath}" "${romtype}" + rm -f "${t}" else tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) cp "${corebootrom}" "${tmprom}" - mkRomsWithGrub "${tmprom}" "${initmode}" "${displaymode}" "seabios_withgrub" + mkRomsWithGrub "${tmprom}" "${initmode}" \ + "${displaymode}" "seabios_withgrub" rm -f "${tmprom}" fi fi if [ "${payload_grub}" = "y" ]; then - mkRomsWithGrub "${corebootrom}" "${initmode}" "${displaymode}" "grub" + mkRomsWithGrub "${corebootrom}" "${initmode}" \ + "${displaymode}" "grub" fi if [ "${payload_uboot}" = "y" ]; then - tmpubootrom="$(make_uboot_payload_rom "${corebootrom}" "fallback/payload" "${uboot_config}" "${cbfstool}")" + x=${corebootrom} + y=${uboot_config} + z=${cbfstool} + tmpubootrom="$(mkUbootRom "$x" "fallback/payload" "$y" "$z")" if [ "${initmode}" = "normal" ]; then - newrompath="${romdir}/uboot_payload_${board}_${initmode}.rom" + newrompath="${romdir}/uboot_payload_${board}_" + newrompath="${newrompath}${initmode}.rom" else - newrompath="${romdir}/uboot_payload_${board}_${initmode}_${displaymode}.rom" + newrompath="${romdir}/uboot_payload_${board}_" + newrompath="${newrompath}${initmode}_${displaymode}.rom" fi moverom "${tmpubootrom}" "${newrompath}" "${romtype}" rm -f "${tmpubootrom}" @@ -558,13 +649,15 @@ mkRoms() { if [ -z ${displaymodes} ]; then initmode="libgfxinit" for displaymode in corebootfb txtmode; do - cbcfgpath="resources/coreboot/${board}/config/${initmode}_${displaymode}" + cbcfgpath="resources/coreboot/${board}/config/${initmode}_" + cbcfgpath="${cbcfgpath}${displaymode}" mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" done initmode="vgarom" for displaymode in vesafb txtmode; do - cbcfgpath="resources/coreboot/${board}/config/${initmode}_${displaymode}" + cbcfgpath="resources/coreboot/${board}/config/${initmode}_" + cbcfgpath="${cbcfgpath}${displaymode}" mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" done @@ -577,13 +670,15 @@ else echo "special displaymode defined as $displaymodes" initmode="libgfxinit" for displaymode in ${displaymodes}; do - cbcfgpath="resources/coreboot/${board}/config/${initmode}_${displaymode}" + cbcfgpath="resources/coreboot/${board}/config/${initmode}_" + cbcfgpath="${cbcfgpath}${displaymode}" mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" done initmode="vgarom" for displaymode in ${displaymodes}; do - cbcfgpath="resources/coreboot/${board}/config/${initmode}_${displaymode}" + cbcfgpath="resources/coreboot/${board}/config/${initmode}_" + cbcfgpath="${cbcfgpath}${displaymode}" mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" done fi From d521fca7efa633698b75c81af9e0e15b4427376f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 10 May 2023 04:40:48 +0100 Subject: [PATCH 0036/2290] build/roms: fix faulty keymap list expansion --- resources/scripts/build/boot/roms_helper | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index cdf89c82..90cde2ed 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -535,7 +535,10 @@ mkRomsWithGrub() { keymaps="" if [ -z ${keyboard_layouts} ]; then - keymaps="${kmapdir}/*" + for kmapfile in "${kmapdir}"/* + do + keymaps="${keymaps} ${kmapfile}" + done else for keymapname in ${keyboard_layouts}; do keymaps="${keymaps} ${kmapdir}/${keymapname}.gkb" From 5f44556f471f6ad9e880ce96605422ae8c8577c4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 10 May 2023 05:09:10 +0100 Subject: [PATCH 0037/2290] build/roms: general code style cleanup --- resources/scripts/build/boot/roms_helper | 106 +++++++++++------------ 1 file changed, 50 insertions(+), 56 deletions(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 90cde2ed..92799801 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -86,14 +86,14 @@ uboot_config="undefined" if [ "${grub_scan_disk}" = "undefined" ]; then printf "build/roms: Target '%s' does not define grub_scan_disk. " \ - ${board} + ${board} printf "Defaulting to 'both'.\n" grub_scan_disk="both" fi if [ "${grub_scan_disk}" != "both" ] && \ - [ "${grub_scan_disk}" != "ata" ] && \ - [ "${grub_scan_disk}" != "ahci" ]; then + [ "${grub_scan_disk}" != "ata" ] && \ + [ "${grub_scan_disk}" != "ahci" ]; then printf "build/roms: Target '%s' defines bad grub_scan_disk option. " \ ${board} printf "Defaulting to 'both'.\n" @@ -266,7 +266,6 @@ if [ "${payload_grub}" = "y" ] \ rm -Rf payload/grub/ # just in case fi for keymapfile in ${kmapdir}/*; do - if [ ! -f "${keymapfile}" ]; then continue fi @@ -305,19 +304,20 @@ fi # it is assumed that no other work will be done on the ROM # after calling this function. therefore this function is "final" -moverom() { +moverom() +{ rompath="$1" - newrompath="$2" + _newrom="$2" cuttype="$3" - printf "\nCreating new ROM image: %s\n" "${newrompath}" + printf "\nCreating new ROM image: %s\n" "${_newrom}" if [ "${cuttype}" = "4MiB IFD BIOS region" ]; then - dd if=${rompath} of=${newrompath} bs=1 \ + dd if=${rompath} of=${_newrom} bs=1 \ skip=$(($(stat -c %s ${rompath}) - 0x400000)) \ count=4194304 else - cp ${rompath} ${newrompath} + cp ${rompath} ${_newrom} fi for romsize in 4 8 16; do @@ -326,7 +326,7 @@ moverom() { if [ ! -f "${ifdgbe}" ]; then ./build descriptors ich9m fi - dd if=${ifdgbe} of=${newrompath} bs=1 count=12k \ + dd if=${ifdgbe} of=${_newrom} bs=1 count=12k \ conv=notrunc fi cmpstr="${romsize}MiB ICH9 IFD NOGBE NOR flash" @@ -335,24 +335,25 @@ moverom() { if [ ! -f "${ifdgbe}" ]; then ./build descriptors ich9m fi - dd if=${ifdgbe} of=${newrompath} bs=1 count=4k \ + dd if=${ifdgbe} of=${_newrom} bs=1 count=4k \ conv=notrunc fi done if [ "${cuttype}" = "i945 laptop" ]; then - dd if=${newrompath} of=top64k.bin bs=1 \ - skip=$(($(stat -c %s ${newrompath}) - 0x10000)) \ - count=64k - dd if=top64k.bin of=${newrompath} bs=1 \ - seek=$(($(stat -c %s ${newrompath}) - 0x20000)) \ - count=64k conv=notrunc + dd if=${_newrom} of=top64k.bin bs=1 \ + skip=$(($(stat -c %s ${_newrom}) - 0x10000)) \ + count=64k + dd if=top64k.bin of=${_newrom} bs=1 \ + seek=$(($(stat -c %s ${_newrom}) - 0x20000)) \ + count=64k conv=notrunc rm -f top64k.bin fi } # expected: configs must not specify a payload -mkCoreboot() { +mkCoreboot() +{ cbdir="${1}" # eg. coreboot/default cbcfgpath="${2}" # eg. resources/coreboot/e6400nvidia_4mb/config/normal if [ ! -f "${cbcfgpath}" ]; then @@ -385,7 +386,8 @@ mkCoreboot() { } # make a rom in /tmp/ and then print the path of that ROM -mkSeabiosRom() { +mkSeabiosRom() +{ target_cbrom="${1}" # rom to insert seabios in. will not be touched # (a tmpfile will be made instead) target_seabios_cbfs_path="${2}" # e.g. fallback/payload @@ -401,24 +403,22 @@ mkSeabiosRom() { "${cbfstool}" "${tmprom}" add-payload -f "${target_seabioself}" \ -n ${target_seabios_cbfs_path} -c lzma || exit 1 - "${cbfstool}" "${tmprom}" add-int -i 3000 -n etc/ps2-keyboard-spinup \ || exit 1 if [ "${target_initmode}" = "normal" ] \ || [ "${target_initmode}" = "libgfxinit" ]; then "${cbfstool}" "${tmprom}" add-int -i 2 \ - -n etc/pci-optionrom-exec || exit 1 + -n etc/pci-optionrom-exec || exit 1 elif [ "${target_initmode}" = "vgarom" ]; then # coreboot executes it "${cbfstool}" "${tmprom}" add-int -i 0 \ - -n etc/pci-optionrom-exec || exit 1 + -n etc/pci-optionrom-exec || exit 1 fi # for undefined modes, don't add this integer. use SeaBIOS defaults "${cbfstool}" "${tmprom}" add-int -i 0 -n etc/optionroms-checksum \ - || exit 1 - + || exit 1 "${cbfstool}" "${tmprom}" add-int -i ${target_opromloadonly} \ - -n etc/only-load-option-roms || exit 1 + -n etc/only-load-option-roms || exit 1 if [ "${target_initmode}" = "libgfxinit" ]; then "${cbfstool}" "${tmprom}" add -f "${target_seavgabios_rom}" \ @@ -429,7 +429,8 @@ mkSeabiosRom() { } # make a rom in /tmp/ and then print the path of that ROM -mkUbootRom() { +mkUbootRom() +{ target_cbrom="${1}" # rom to insert u-boot in. it won't be touched # (a tmpfile will be made instead) target_uboot_cbfs_path="${2}" # e.g. fallback/payload @@ -458,7 +459,8 @@ mkUbootRom() { } # make a rom in /tmp/ and then print the path of that ROM -mkGrubRom() { +mkGrubRom() +{ target_keymap="${1}" target_cbrom="${2}" target_grubelf_cbfs_path="${3}" # e.g. fallback/payload @@ -496,7 +498,6 @@ mkGrubRom() { "${cbfstool}" "${tmprom}" add -f "${tmpgrubcfg}" -n grub.cfg -t raw \ || exit 1 - "${cbfstool}" "${tmprom}" add -f "${tmpgrubtestcfg}" -n grubtest.cfg \ -t raw || exit 1 rm -f "${tmpgrubcfg}" "${tmpgrubtestcfg}" @@ -514,7 +515,8 @@ mkGrubRom() { } # Make separate ROM images with GRUB payload, for each supported keymap -mkRomsWithGrub() { +mkRomsWithGrub() +{ tmprompath="${1}" initmode="${2}" displaymode="${3}" @@ -524,19 +526,18 @@ mkRomsWithGrub() { y=${seabios_opromloadonly} z=${initmode} if [ "${payload_grub_withseabios}" = "y" ] \ - && [ "${firstpayloadname}" = "grub" ]; then + && [ "${firstpayloadname}" = "grub" ]; then mv "$(mkSeabiosRom "${x}" "seabios.elf" "${y}" "${z}")" \ "${tmprompath}" elif [ "${payload_seabios_withgrub}" ] \ - && [ "${firstpayloadname}" != "grub" ]; then + && [ "${firstpayloadname}" != "grub" ]; then mv "$(mkSeabiosRom "${x}" "fallback/payload" "$y" "$z")" \ "${tmprompath}" fi keymaps="" if [ -z ${keyboard_layouts} ]; then - for kmapfile in "${kmapdir}"/* - do + for kmapfile in "${kmapdir}"/*; do keymaps="${keymaps} ${kmapfile}" done else @@ -545,8 +546,6 @@ mkRomsWithGrub() { done fi for keymapfile in ${keymaps}; do - echo "keymaps is $keymaps, keymapfile is $keymapfile" - if [ ! -f "${keymapfile}" ]; then continue fi @@ -563,24 +562,22 @@ mkRomsWithGrub() { x=${keymap} y=${tmprompath} z=${grub_path_in_cbfs} - tmpgrubrom="$(mkGrubRom "${x}" "${y}" "${z}")" + _newrom="${romdir}/${firstpayloadname}_${board}_${initmode}_" if [ "${initmode}" = "normal" ]; then - newrompath="${romdir}/${firstpayloadname}_${board}_" - newrompath="${newrompath}${initmode}_${keymap}.rom" + _newrom="${_newrom}${keymap}.rom" else - newrompath="${romdir}/${firstpayloadname}_${board}_" - newrompath="${newrompath}${initmode}_${displaymode}_" - newrompath="${newrompath}${keymap}.rom" + _newrom="${_newrom}${displaymode}_${keymap}.rom" fi - moverom "${tmpgrubrom}" "${newrompath}" "${romtype}" + moverom "${tmpgrubrom}" "${_newrom}" "${romtype}" rm -f "${tmpgrubrom}" done } # Main ROM building function. This calls all other functions -mkRoms() { +mkRoms() +{ cbcfgpath="${1}" displaymode="${2}" initmode="${3}" @@ -607,16 +604,13 @@ mkRoms() { y=${seabios_opromloadonly} z=${initmode} t=$(mkSeabiosRom "$x" "fallback/payload" "$y" "$z") - if [ "${initmode}" = "normal" ]; then - newrompath="${romdir}/seabios_${board}_" - newrompath="${newrompath}${initmode}.rom" - else - newrompath="${romdir}/seabios_${board}_" - newrompath="${newrompath}${initmode}_" - newrompath="${newrompath}${displaymode}.rom" + + _newrom="${romdir}/seabios_${board}_${initmode}.rom" + if [ "${initmode}" != "normal" ]; then + _newrom="${_newrom%.rom}_${displaymode}.rom" fi - moverom "${t}" "${newrompath}" "${romtype}" + moverom "${t}" "${_newrom}" "${romtype}" rm -f "${t}" else tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) @@ -638,13 +632,13 @@ mkRoms() { z=${cbfstool} tmpubootrom="$(mkUbootRom "$x" "fallback/payload" "$y" "$z")" if [ "${initmode}" = "normal" ]; then - newrompath="${romdir}/uboot_payload_${board}_" - newrompath="${newrompath}${initmode}.rom" + _newrom="${romdir}/uboot_payload_${board}_" + _newrom="${_newrom}${initmode}.rom" else - newrompath="${romdir}/uboot_payload_${board}_" - newrompath="${newrompath}${initmode}_${displaymode}.rom" + _newrom="${romdir}/uboot_payload_${board}_" + _newrom="${_newrom}${initmode}_${displaymode}.rom" fi - moverom "${tmpubootrom}" "${newrompath}" "${romtype}" + moverom "${tmpubootrom}" "${_newrom}" "${romtype}" rm -f "${tmpubootrom}" fi } From 722c844ea76b7645b1a16612b201707110f3fd50 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 10 May 2023 05:39:11 +0100 Subject: [PATCH 0038/2290] build/boot/roms: top-down function order --- resources/scripts/build/boot/roms | 129 ++++++++++++++++-------------- 1 file changed, 70 insertions(+), 59 deletions(-) diff --git a/resources/scripts/build/boot/roms b/resources/scripts/build/boot/roms index e02ac1b7..92bcc4c4 100755 --- a/resources/scripts/build/boot/roms +++ b/resources/scripts/build/boot/roms @@ -31,17 +31,65 @@ set -u -e projectname="$(cat projectname)" opts="" +boards= +firstoption="${1}" -listboards() { - for boarddir in resources/coreboot/*; do - if [ ! -d "${boarddir}" ]; then continue; fi - board="${boarddir##resources/coreboot/}" - board="${board%/}" - printf '%s\n' "${board##*/}" - done +main() +{ + if [ $# -gt 0 ]; then + if [ "${firstoption}" = "help" ]; then + usage + exit 0 + fi + if [ "${firstoption}" = "list" ]; then + listboards + exit 0 + fi + + while [ $# -gt 0 ]; do + case ${1} in + -d) + opts="${opts} -d ${2}" + shift ;; + -p) + opts="${opts} -p ${2}" + shift ;; + -k) + opts="${opts} -k ${2}" + shift ;; + *) + boards="${boards} ${1} " ;; + esac + shift + done + + if [ -z ${opts+x} ]; then + opts="" + fi + + printf "Building %s ROM images\n" "${projectname}" + + if [ "${firstoption}" = "all" ]; then + for boardname in $(listboards); do + buildrom "${boardname}" \ + || die "build/roms: error" + done + else + for board in ${boards}; do + buildrom "${board}" \ + || die "build/roms: error" + done + fi + else + usage + exit 1 + fi + + printf "\n\nDone! Your ROMs are in bin/\n\n" } -help() { +usage() +{ cat <<- EOF USAGE: ./build boot roms boardname To build *all* boards, do this: ./build boot roms all @@ -64,9 +112,16 @@ help() { EOF } -die() { - printf 'Error: %s\n' "${@}" 1>&2 - exit 1 +listboards() +{ + for boarddir in resources/coreboot/*; do + if [ ! -d "${boarddir}" ]; then + continue + fi + board="${boarddir##resources/coreboot/}" + board="${board%/}" + printf '%s\n' "${board##*/}" + done } # Build ROM images for supported boards @@ -85,53 +140,9 @@ buildrom() { fi } -if [ $# -gt 0 ]; then - boards= - firstoption="${1}" - if [ "${firstoption}" = "help" ]; then - help - exit 0 - fi - if [ "${firstoption}" = "list" ]; then - listboards - exit 0 - fi - - while [ $# -gt 0 ]; do - case ${1} in - -d) - opts="${opts} -d ${2}" - shift ;; - -p) - opts="${opts} -p ${2}" - shift ;; - -k) - opts="${opts} -k ${2}" - shift ;; - *) - boards="${boards} ${1} " ;; - esac - shift - done - -if [ -z ${opts+x} ]; then - opts="" -fi - - printf "Building %s ROM images\n" "${projectname}" - - if [ "${firstoption}" = "all" ]; then - for boardname in $(listboards); do - buildrom "${boardname}" || die "build/roms: error" - done - else - for board in ${boards}; do - buildrom "${board}" || die "build/roms: error" - done - fi -else - help +die() { + printf 'Error: %s\n' "${@}" 1>&2 exit 1 -fi +} -printf "\n\nDone! Your ROMs are in bin/\n\n" +main $@ From 6290f999e2a85c0102a19087c9c925c621e14146 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 10 May 2023 20:22:17 +0100 Subject: [PATCH 0039/2290] build/boot/roms_helper: further cleanup consolidated some for loops removed errant code --- resources/scripts/build/boot/roms_helper | 60 +++++++++--------------- 1 file changed, 21 insertions(+), 39 deletions(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 92799801..115763ff 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -31,6 +31,7 @@ set -u -e projectname="$(cat projectname)" +cbcfgdir="resources/coreboot" kmapdir="resources/grub/keymap" displaymodes="" payloads="" @@ -55,12 +56,12 @@ done printf "board is %s , kb is %s , displaymode is %s , payloads is %s\n" \ ${board} ${keyboard_layouts} ${displaymodes} ${payloads} -if [ ! -d "resources/coreboot/${board}" ]; then +if [ ! -d "${cbcfgdir}/${board}" ]; then printf "build/roms: Target not defined: %s\n" ${board} exit 1 fi -if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then +if [ ! -f "${cbcfgdir}/${board}/board.cfg" ]; then printf "build/roms: Missing board.cfg for target: %s\n" ${board} exit 1 fi @@ -77,12 +78,11 @@ payload_grub="n" payload_grub_withseabios="n" # seabios chainloaded from grub payload_seabios="n" payload_seabios_withgrub="n" # i386-coreboot grub from SeaBIOS boot menu -seabios_opromloadonly="0" payload_memtest="n" payload_uboot="n" uboot_config="undefined" # Override the above defaults using board.cfg -. "resources/coreboot/${board}/board.cfg" +. "${cbcfgdir}/${board}/board.cfg" if [ "${grub_scan_disk}" = "undefined" ]; then printf "build/roms: Target '%s' does not define grub_scan_disk. " \ @@ -114,10 +114,6 @@ if [ "${arch}" = "undefined" ]; then exit 1 fi -if [ "${seabios_opromloadonly}" != "0" ] && \ - [ "${seabios_opromloadonly}" != "1" ]; then - seabios_opromloadonly="0" -fi if [ "${payload_memtest}" != "n" ] && \ [ "${payload_memtest}" != "y" ]; then payload_memtest="n" @@ -137,7 +133,7 @@ fi # might have an external GPU, where it's recommended to boot SeaBIOS first if [ "${payload_grub}" != "y" ] && [ "${payload_seabios}" != "y" ] \ && [ "${payload_uboot}" != "y" ]; then - for configfile in "resources/coreboot/${board}/config/"*; do + for configfile in "${cbcfgdir}/${board}/config/"*; do if [ ! -e "${configfile}" ]; then continue fi @@ -166,7 +162,6 @@ if [ ! -z ${payloads} ]; then payload_seabios="n" payload_seabios_withgrub="n" # i386-coreboot grub from SeaBIOS menu payload_uboot="n" - seabios_opromloadonly="0" payload_memtest="n" for payload in ${payloads} ; do @@ -355,7 +350,7 @@ moverom() mkCoreboot() { cbdir="${1}" # eg. coreboot/default - cbcfgpath="${2}" # eg. resources/coreboot/e6400nvidia_4mb/config/normal + cbcfgpath="${2}" # eg. ${cbcfgdir}/e6400nvidia_4mb/config/normal if [ ! -f "${cbcfgpath}" ]; then printf "\nmkCoreboot: coreboot config '%s' does not exist. " \ ${cbcfgpath} @@ -391,8 +386,7 @@ mkSeabiosRom() target_cbrom="${1}" # rom to insert seabios in. will not be touched # (a tmpfile will be made instead) target_seabios_cbfs_path="${2}" # e.g. fallback/payload - target_opromloadonly="${3}" # TODO: purge (useless setting) - target_initmode="${4}" # e.g. libgfxinit + target_initmode="${3}" # e.g. libgfxinit target_seabioself="payload/seabios/seabios_${target_initmode}.elf" target_seavgabios_rom="payload/seabios/seavgabios.bin" @@ -417,8 +411,6 @@ mkSeabiosRom() "${cbfstool}" "${tmprom}" add-int -i 0 -n etc/optionroms-checksum \ || exit 1 - "${cbfstool}" "${tmprom}" add-int -i ${target_opromloadonly} \ - -n etc/only-load-option-roms || exit 1 if [ "${target_initmode}" = "libgfxinit" ]; then "${cbfstool}" "${tmprom}" add -f "${target_seavgabios_rom}" \ @@ -523,15 +515,14 @@ mkRomsWithGrub() firstpayloadname="${4}" # allow values: grub, seabios, seabios_withgrub x=${tmprompath} - y=${seabios_opromloadonly} - z=${initmode} + y=${initmode} if [ "${payload_grub_withseabios}" = "y" ] \ && [ "${firstpayloadname}" = "grub" ]; then - mv "$(mkSeabiosRom "${x}" "seabios.elf" "${y}" "${z}")" \ + mv "$(mkSeabiosRom "${x}" "seabios.elf" "${y}")" \ "${tmprompath}" elif [ "${payload_seabios_withgrub}" ] \ && [ "${firstpayloadname}" != "grub" ]; then - mv "$(mkSeabiosRom "${x}" "fallback/payload" "$y" "$z")" \ + mv "$(mkSeabiosRom "${x}" "fallback/payload" "${y}")" \ "${tmprompath}" fi @@ -601,9 +592,8 @@ mkRoms() if [ "${payload_seabios}" = "y" ]; then if [ "${payload_seabios_withgrub}" = "n" ]; then x=${corebootrom} - y=${seabios_opromloadonly} - z=${initmode} - t=$(mkSeabiosRom "$x" "fallback/payload" "$y" "$z") + y=${initmode} + t=$(mkSeabiosRom "$x" "fallback/payload" "$y") _newrom="${romdir}/seabios_${board}_${initmode}.rom" if [ "${initmode}" != "normal" ]; then @@ -646,37 +636,29 @@ mkRoms() if [ -z ${displaymodes} ]; then initmode="libgfxinit" for displaymode in corebootfb txtmode; do - cbcfgpath="resources/coreboot/${board}/config/${initmode}_" - cbcfgpath="${cbcfgpath}${displaymode}" + cbcfgpath="${cbcfgdir}/${board}/config/${initmode}_$displaymode" mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" done initmode="vgarom" for displaymode in vesafb txtmode; do - cbcfgpath="resources/coreboot/${board}/config/${initmode}_" - cbcfgpath="${cbcfgpath}${displaymode}" + cbcfgpath="${cbcfgdir}/${board}/config/${initmode}_$displaymode" mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" done initmode="normal" displaymode="txtmode" - cbcfgpath="resources/coreboot/${board}/config/${initmode}" + cbcfgpath="${cbcfgdir}/${board}/config/${initmode}" mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" else echo "special displaymode defined as $displaymodes" - initmode="libgfxinit" - for displaymode in ${displaymodes}; do - cbcfgpath="resources/coreboot/${board}/config/${initmode}_" - cbcfgpath="${cbcfgpath}${displaymode}" - mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" - done - - initmode="vgarom" - for displaymode in ${displaymodes}; do - cbcfgpath="resources/coreboot/${board}/config/${initmode}_" - cbcfgpath="${cbcfgpath}${displaymode}" - mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" + for initmode in vgarom libgfxinit; do + for displaymode in ${displaymodes}; do + cbcfgpath="${cbcfgdir}/${board}/config/${initmode}_" + cbcfgpath="${cbcfgpath}${displaymode}" + mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" + done done fi From 3da0ee4f73117edc1daaca6cb1ed9cb9484996a2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 11 May 2023 10:21:48 +0100 Subject: [PATCH 0040/2290] remove python3 patches python 3 is default now, in all the distros specifically calling "python3" often doesn't work anymore python2 is obsolete let python2 die --- ...-specifically-use-python3-in-scripts.patch | 36 ------------------- ...-specifically-use-python3-in-scripts.patch | 36 ------------------- ...pecifically-use-python3-in-gentpl.py.patch | 22 ------------ ...cifically-call-python3-in-me_cleaner.patch | 35 ------------------ ...-use-python3-specifically-in-scripts.patch | 35 ------------------ 5 files changed, 164 deletions(-) delete mode 100644 resources/coreboot/default/patches/0013-specifically-use-python3-in-scripts.patch delete mode 100644 resources/coreboot/haswell/patches/0026-specifically-use-python3-in-scripts.patch delete mode 100644 resources/grub/patches/0003-specifically-use-python3-in-gentpl.py.patch delete mode 100644 resources/me_cleaner/patches/0001-specifically-call-python3-in-me_cleaner.patch delete mode 100644 resources/seabios/patches/0001-use-python3-specifically-in-scripts.patch diff --git a/resources/coreboot/default/patches/0013-specifically-use-python3-in-scripts.patch b/resources/coreboot/default/patches/0013-specifically-use-python3-in-scripts.patch deleted file mode 100644 index 2197de36..00000000 --- a/resources/coreboot/default/patches/0013-specifically-use-python3-in-scripts.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 52acb9071bda297e9520107a0d0f996e9cba28fb Mon Sep 17 00:00:00 2001 -From: Leah Rowe -Date: Sun, 13 Mar 2022 18:04:55 +0000 -Subject: [PATCH 13/18] specifically use python3, in scripts - ---- - src/drivers/intel/fsp2_0/Makefile.inc | 2 +- - util/spdtool/spdtool.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/drivers/intel/fsp2_0/Makefile.inc b/src/drivers/intel/fsp2_0/Makefile.inc -index f11ebee102..e4b151b524 100644 ---- a/src/drivers/intel/fsp2_0/Makefile.inc -+++ b/src/drivers/intel/fsp2_0/Makefile.inc -@@ -88,7 +88,7 @@ endif - - ifeq ($(CONFIG_FSP_FULL_FD),y) - $(obj)/Fsp_M.fd: $(call strip_quotes,$(CONFIG_FSP_FD_PATH)) $(DOTCONFIG) -- python 3rdparty/fsp/Tools/SplitFspBin.py split -f $(CONFIG_FSP_FD_PATH) -o "$(obj)" -n "Fsp.fd" -+ python3 3rdparty/fsp/Tools/SplitFspBin.py split -f $(CONFIG_FSP_FD_PATH) -o "$(obj)" -n "Fsp.fd" - - $(obj)/Fsp_S.fd: $(call strip_quotes,$(CONFIG_FSP_FD_PATH)) $(obj)/Fsp_M.fd - true -diff --git a/util/spdtool/spdtool.py b/util/spdtool/spdtool.py -index 89976eac59..2cd7027377 100644 ---- a/util/spdtool/spdtool.py -+++ b/util/spdtool/spdtool.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # spdtool - Tool for partial deblobbing of UEFI firmware images - # SPDX-License-Identifier: GPL-3.0-or-later - # --- -2.39.2 - diff --git a/resources/coreboot/haswell/patches/0026-specifically-use-python3-in-scripts.patch b/resources/coreboot/haswell/patches/0026-specifically-use-python3-in-scripts.patch deleted file mode 100644 index 8f957cb9..00000000 --- a/resources/coreboot/haswell/patches/0026-specifically-use-python3-in-scripts.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 9a65c1e4ca8a0f0089fd8e8ee9c8690aefce2133 Mon Sep 17 00:00:00 2001 -From: Leah Rowe -Date: Sun, 13 Mar 2022 18:04:55 +0000 -Subject: [PATCH 26/26] specifically use python3, in scripts - ---- - src/drivers/intel/fsp2_0/Makefile.inc | 2 +- - util/spdtool/spdtool.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/drivers/intel/fsp2_0/Makefile.inc b/src/drivers/intel/fsp2_0/Makefile.inc -index f5641ac182..d807320f29 100644 ---- a/src/drivers/intel/fsp2_0/Makefile.inc -+++ b/src/drivers/intel/fsp2_0/Makefile.inc -@@ -87,7 +87,7 @@ endif - - ifeq ($(CONFIG_FSP_FULL_FD),y) - $(obj)/Fsp_M.fd: $(call strip_quotes,$(CONFIG_FSP_FD_PATH)) $(DOTCONFIG) -- python 3rdparty/fsp/Tools/SplitFspBin.py split -f $(CONFIG_FSP_FD_PATH) -o "$(obj)" -n "Fsp.fd" -+ python3 3rdparty/fsp/Tools/SplitFspBin.py split -f $(CONFIG_FSP_FD_PATH) -o "$(obj)" -n "Fsp.fd" - - $(obj)/Fsp_S.fd: $(call strip_quotes,$(CONFIG_FSP_FD_PATH)) $(obj)/Fsp_M.fd - true -diff --git a/util/spdtool/spdtool.py b/util/spdtool/spdtool.py -index 89976eac59..2cd7027377 100644 ---- a/util/spdtool/spdtool.py -+++ b/util/spdtool/spdtool.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # spdtool - Tool for partial deblobbing of UEFI firmware images - # SPDX-License-Identifier: GPL-3.0-or-later - # --- -2.39.2 - diff --git a/resources/grub/patches/0003-specifically-use-python3-in-gentpl.py.patch b/resources/grub/patches/0003-specifically-use-python3-in-gentpl.py.patch deleted file mode 100644 index c50f057b..00000000 --- a/resources/grub/patches/0003-specifically-use-python3-in-gentpl.py.patch +++ /dev/null @@ -1,22 +0,0 @@ -From d30654becf183e14e5c5c8d8216ee52a6437f233 Mon Sep 17 00:00:00 2001 -From: Leah Rowe -Date: Sun, 13 Mar 2022 18:08:57 +0000 -Subject: [PATCH 3/3] specifically use python3 in gentpl.py - ---- - gentpl.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gentpl.py b/gentpl.py -index 9f51e4fb6..22cf4439c 100644 ---- a/gentpl.py -+++ b/gentpl.py -@@ -1,4 +1,4 @@ --#! /usr/bin/python -+#! /usr/bin/python3 - # GRUB -- GRand Unified Bootloader - # Copyright (C) 2010,2011,2012,2013 Free Software Foundation, Inc. - # --- -2.25.1 - diff --git a/resources/me_cleaner/patches/0001-specifically-call-python3-in-me_cleaner.patch b/resources/me_cleaner/patches/0001-specifically-call-python3-in-me_cleaner.patch deleted file mode 100644 index 024a2438..00000000 --- a/resources/me_cleaner/patches/0001-specifically-call-python3-in-me_cleaner.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 8d613d45f6fc0f9464bc5f6e5893b5945500c286 Mon Sep 17 00:00:00 2001 -From: Leah Rowe -Date: Sun, 13 Mar 2022 18:48:29 +0000 -Subject: [PATCH 1/1] specifically call python3 in me_cleaner - -it was referencing "python" which is ambiguous. this causes -problems on some setups ---- - me_cleaner.py | 2 +- - setup.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/me_cleaner.py b/me_cleaner.py -index c2adf0e..d74b16b 100755 ---- a/me_cleaner.py -+++ b/me_cleaner.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/env python3 - - # me_cleaner - Tool for partial deblobbing of Intel ME/TXE firmware images - # Copyright (C) 2016-2018 Nicola Corna -diff --git a/setup.py b/setup.py -index 9928e5d..f04e336 100755 ---- a/setup.py -+++ b/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/env python3 - - from setuptools import setup - --- -2.25.1 - diff --git a/resources/seabios/patches/0001-use-python3-specifically-in-scripts.patch b/resources/seabios/patches/0001-use-python3-specifically-in-scripts.patch deleted file mode 100644 index 9680835b..00000000 --- a/resources/seabios/patches/0001-use-python3-specifically-in-scripts.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a21f175947d7186e0b5554826e1ae51880a6cfb8 Mon Sep 17 00:00:00 2001 -From: Leah Rowe -Date: Sun, 13 Mar 2022 18:02:26 +0000 -Subject: [PATCH 1/1] use python3 specifically, in scripts - -some systems don't have a python binary anymore, only python2 and -python3 binaries, without creating a symlink to either of them ---- - scripts/acpi_extract.py | 2 +- - scripts/acpi_extract_preprocess.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/scripts/acpi_extract.py b/scripts/acpi_extract.py -index 3ed863b..eb910f3 100755 ---- a/scripts/acpi_extract.py -+++ b/scripts/acpi_extract.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # Copyright (C) 2011 Red Hat, Inc., Michael S. Tsirkin - # - # This file may be distributed under the terms of the GNU GPLv3 license. -diff --git a/scripts/acpi_extract_preprocess.py b/scripts/acpi_extract_preprocess.py -index 2698118..6963847 100755 ---- a/scripts/acpi_extract_preprocess.py -+++ b/scripts/acpi_extract_preprocess.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # Copyright (C) 2011 Red Hat, Inc., Michael S. Tsirkin - # - # This file may be distributed under the terms of the GNU GPLv3 license. --- -2.25.1 - From df611f9bc1c4517612ecb5d93de8c9227f237b0c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 12 May 2023 05:10:08 +0100 Subject: [PATCH 0041/2290] remove ga-g41m-es2l board for now users reported it doesn't boot in recent releases, with the february 2023 coreboot revision update i have one in the lab, i'll just re-test it and fix whatever's wrong for a future release --- resources/coreboot/ga-g41m-es2l/board.cfg | 7 - .../ga-g41m-es2l/config/libgfxinit_txtmode | 566 ------------------ 2 files changed, 573 deletions(-) delete mode 100644 resources/coreboot/ga-g41m-es2l/board.cfg delete mode 100644 resources/coreboot/ga-g41m-es2l/config/libgfxinit_txtmode diff --git a/resources/coreboot/ga-g41m-es2l/board.cfg b/resources/coreboot/ga-g41m-es2l/board.cfg deleted file mode 100644 index 6e7d140d..00000000 --- a/resources/coreboot/ga-g41m-es2l/board.cfg +++ /dev/null @@ -1,7 +0,0 @@ -cbtree="default" -romtype="normal" -arch="x86_64" -payload_grub="n" -payload_grub_withseabios="n" -payload_seabios="y" -grub_scan_disk="ata" diff --git a/resources/coreboot/ga-g41m-es2l/config/libgfxinit_txtmode b/resources/coreboot/ga-g41m-es2l/config/libgfxinit_txtmode deleted file mode 100644 index 11ca1be0..00000000 --- a/resources/coreboot/ga-g41m-es2l/config/libgfxinit_txtmode +++ /dev/null @@ -1,566 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# coreboot configuration -# - -# -# General setup -# -CONFIG_COREBOOT_BUILD=y -CONFIG_LOCALVERSION="" -CONFIG_CBFS_PREFIX="fallback" -CONFIG_COMPILER_GCC=y -# CONFIG_COMPILER_LLVM_CLANG is not set -CONFIG_ARCH_SUPPORTS_CLANG=y -# CONFIG_ANY_TOOLCHAIN is not set -# CONFIG_CCACHE is not set -# CONFIG_IWYU is not set -# CONFIG_FMD_GENPARSER is not set -# CONFIG_UTIL_GENPARSER is not set -# CONFIG_OPTION_BACKEND_NONE is not set -CONFIG_USE_OPTION_TABLE=y -CONFIG_STATIC_OPTION_TABLE=y -CONFIG_COMPRESS_RAMSTAGE_LZMA=y -# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set -CONFIG_INCLUDE_CONFIG_FILE=y -CONFIG_COLLECT_TIMESTAMPS=y -# CONFIG_TIMESTAMPS_ON_CONSOLE is not set -CONFIG_USE_BLOBS=y -# CONFIG_USE_AMD_BLOBS is not set -# CONFIG_USE_QC_BLOBS is not set -# CONFIG_COVERAGE is not set -# CONFIG_UBSAN is not set -CONFIG_HAVE_ASAN_IN_RAMSTAGE=y -# CONFIG_ASAN is not set -# CONFIG_NO_STAGE_CACHE is not set -CONFIG_TSEG_STAGE_CACHE=y -# CONFIG_UPDATE_IMAGE is not set -# CONFIG_BOOTSPLASH_IMAGE is not set -# CONFIG_FW_CONFIG is not set - -# -# Software Bill Of Materials (SBOM) -# -# CONFIG_SBOM is not set -# end of Software Bill Of Materials (SBOM) -# end of General setup - -# -# Mainboard -# - -# -# Important: Run 'make distclean' before switching boards -# -# CONFIG_VENDOR_51NB is not set -# CONFIG_VENDOR_ACER is not set -# CONFIG_VENDOR_ADLINK is not set -# CONFIG_VENDOR_AMD is not set -# CONFIG_VENDOR_AOPEN is not set -# CONFIG_VENDOR_APPLE is not set -# CONFIG_VENDOR_ASROCK is not set -# CONFIG_VENDOR_ASUS is not set -# CONFIG_VENDOR_BIOSTAR is not set -# CONFIG_VENDOR_BOSTENTECH is not set -# CONFIG_VENDOR_CAVIUM is not set -# CONFIG_VENDOR_CLEVO is not set -# CONFIG_VENDOR_COMPULAB is not set -# CONFIG_VENDOR_DELL is not set -# CONFIG_VENDOR_EMULATION is not set -# CONFIG_VENDOR_EXAMPLE is not set -# CONFIG_VENDOR_FACEBOOK is not set -# CONFIG_VENDOR_FOXCONN is not set -# CONFIG_VENDOR_GETAC is not set -CONFIG_VENDOR_GIGABYTE=y -# CONFIG_VENDOR_GOOGLE is not set -# CONFIG_VENDOR_HP is not set -# CONFIG_VENDOR_IBASE is not set -# CONFIG_VENDOR_INTEL is not set -# CONFIG_VENDOR_KONTRON is not set -# CONFIG_VENDOR_LENOVO is not set -# CONFIG_VENDOR_LIBRETREND is not set -# CONFIG_VENDOR_MSI is not set -# CONFIG_VENDOR_OCP is not set -# CONFIG_VENDOR_OPENCELLULAR is not set -# CONFIG_VENDOR_PACKARDBELL is not set -# CONFIG_VENDOR_PCENGINES is not set -# CONFIG_VENDOR_PINE64 is not set -# CONFIG_VENDOR_PORTWELL is not set -# CONFIG_VENDOR_PRODRIVE is not set -# CONFIG_VENDOR_PROTECTLI is not set -# CONFIG_VENDOR_PURISM is not set -# CONFIG_VENDOR_RAZER is not set -# CONFIG_VENDOR_RODA is not set -# CONFIG_VENDOR_SAMSUNG is not set -# CONFIG_VENDOR_SAPPHIRE is not set -# CONFIG_VENDOR_SIEMENS is not set -# CONFIG_VENDOR_SIFIVE is not set -# CONFIG_VENDOR_STARLABS is not set -# CONFIG_VENDOR_SUPERMICRO is not set -# CONFIG_VENDOR_SYSTEM76 is not set -# CONFIG_VENDOR_TI is not set -# CONFIG_VENDOR_UP is not set -CONFIG_BOARD_SPECIFIC_OPTIONS=y -CONFIG_MAINBOARD_PART_NUMBER="GA-G41M-ES2L" -CONFIG_MAINBOARD_VERSION="1.0" -CONFIG_MAINBOARD_DIR="gigabyte/ga-g41m-es2l" -CONFIG_VGA_BIOS_ID="8086,2e32" -CONFIG_DIMM_MAX=4 -CONFIG_DIMM_SPD_SIZE=256 -CONFIG_FMDFILE="" -# CONFIG_NO_POST is not set -CONFIG_MAINBOARD_VENDOR="GIGABYTE" -CONFIG_CBFS_SIZE=0x00100000 -CONFIG_MAX_CPUS=4 -# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set -CONFIG_POST_DEVICE=y -CONFIG_POST_IO=y -CONFIG_DEVICETREE="devicetree.cb" -# CONFIG_VBOOT is not set -CONFIG_OVERRIDE_DEVICETREE="" -# CONFIG_VGA_BIOS is not set -CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="GIGABYTE" -CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt" -CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 -CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" -CONFIG_CMOS_LAYOUT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.layout" -CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 -# CONFIG_CONSOLE_POST is not set -CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld" -CONFIG_DCACHE_RAM_BASE=0xfeff8000 -CONFIG_DCACHE_RAM_SIZE=0x8000 -CONFIG_C_ENV_BOOTBLOCK_SIZE=0x40000 -CONFIG_DCACHE_BSP_STACK_SIZE=0x2000 -CONFIG_ECAM_MMCONF_BASE_ADDRESS=0xe0000000 -CONFIG_ECAM_MMCONF_BUS_NUMBER=256 -CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 -CONFIG_MRC_SETTINGS_CACHE_SIZE=0x10000 -CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y -CONFIG_SPI_FLASH_WINBOND=y -# CONFIG_DRIVERS_INTEL_WIFI is not set -# CONFIG_BOARD_GIGABYTE_GA_945GCM_S2L is not set -# CONFIG_BOARD_GIGABYTE_GA_945GCM_S2C is not set -# CONFIG_BOARD_GIGABYTE_GA_B75M_D3H is not set -# CONFIG_BOARD_GIGABYTE_GA_B75M_D3V is not set -# CONFIG_BOARD_GIGABYTE_GA_B75_D3V is not set -# CONFIG_BOARD_GIGABYTE_GA_D510UD is not set -CONFIG_BOARD_GIGABYTE_GA_G41M_ES2L=y -# CONFIG_BOARD_GIGABYTE_GA_H61M_S2PV is not set -# CONFIG_BOARD_GIGABYTE_GA_H61M_DS2 is not set -# CONFIG_BOARD_GIGABYTE_GA_H61M_DS2V is not set -# CONFIG_BOARD_GIGABYTE_GA_H61MA_D3V is not set -CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 -CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="GA-G41M-ES2L" -CONFIG_PCIEXP_HOTPLUG_BUSES=32 -CONFIG_PCIEXP_HOTPLUG_MEM=0x800000 -CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM=0x10000000 -CONFIG_PS2K_EISAID="PNP0303" -CONFIG_PS2M_EISAID="PNP0F13" -CONFIG_GFX_GMA_PANEL_1_PORT="eDP" -# CONFIG_DEBUG_SMI is not set -CONFIG_PCIEXP_L1_SUB_STATE=y -CONFIG_PCIEXP_CLK_PM=y -# CONFIG_DRIVERS_UART_8250IO is not set -CONFIG_HEAP_SIZE=0x4000 -CONFIG_EC_GPE_SCI=0x50 -CONFIG_BOARD_ROMSIZE_KB_1024=y -# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set -CONFIG_COREBOOT_ROMSIZE_KB_1024=y -# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set -# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set -CONFIG_COREBOOT_ROMSIZE_KB=1024 -CONFIG_ROM_SIZE=0x00100000 -CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y -CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y -CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y -# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set -# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set -CONFIG_MAINBOARD_POWER_FAILURE_STATE=0 -# end of Mainboard - -# -# Chipset -# - -# -# SoC -# -CONFIG_CHIPSET_DEVICETREE="" -CONFIG_CBFS_MCACHE_SIZE=0x4000 -CONFIG_ROMSTAGE_ADDR=0x2000000 -CONFIG_VERSTAGE_ADDR=0x2000000 -CONFIG_SMM_RESERVED_SIZE=0x100000 -CONFIG_SMM_MODULE_STACK_SIZE=0x400 -CONFIG_ACPI_CPU_STRING="\\_SB.CP%02X" -CONFIG_EHCI_BAR=0xfef00000 -CONFIG_STACK_SIZE=0x2000 -CONFIG_VBT_DATA_SIZE_KB=8 -CONFIG_INTEL_GMA_BCLV_OFFSET=0xc8254 -CONFIG_INTEL_GMA_BCLV_WIDTH=16 -CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256 -CONFIG_INTEL_GMA_BCLM_WIDTH=16 -CONFIG_BOOTBLOCK_IN_CBFS=y -CONFIG_FIXED_MCHBAR_MMIO_BASE=0xfed14000 -CONFIG_FIXED_DMIBAR_MMIO_BASE=0xfed18000 -CONFIG_FIXED_EPBAR_MMIO_BASE=0xfed19000 -CONFIG_PCIEXP_ASPM=y -# CONFIG_PCIEXP_COMMON_CLOCK is not set -CONFIG_FIXED_SMBUS_IO_BASE=0x400 -CONFIG_HPET_MIN_TICKS=0x80 -CONFIG_CBFS_CACHE_ALIGN=8 -CONFIG_INTEL_HAS_TOP_SWAP=y -# CONFIG_INTEL_ADD_TOP_SWAP_BOOTBLOCK is not set -CONFIG_INTEL_TOP_SWAP_BOOTBLOCK_SIZE=0x10000 - -# -# CPU -# -CONFIG_CPU_INTEL_MODEL_6FX=y -CONFIG_CPU_INTEL_MODEL_1067X=y -CONFIG_CPU_INTEL_MODEL_F3X=y -CONFIG_CPU_INTEL_MODEL_F4X=y -CONFIG_SOCKET_SPECIFIC_OPTIONS=y -CONFIG_CPU_INTEL_SOCKET_LGA775=y -CONFIG_CPU_INTEL_COMMON=y -CONFIG_ENABLE_VMX=y -CONFIG_SET_IA32_FC_LOCK_BIT=y -CONFIG_SET_MSR_AESNI_LOCK_BIT=y -CONFIG_CPU_INTEL_COMMON_TIMEBASE=y -CONFIG_CPU_INTEL_COMMON_SMM=y -CONFIG_MICROCODE_UPDATE_PRE_RAM=y -CONFIG_PARALLEL_MP=y -CONFIG_XAPIC_ONLY=y -# CONFIG_X2APIC_ONLY is not set -# CONFIG_X2APIC_RUNTIME is not set -# CONFIG_X2APIC_LATE_WORKAROUND is not set -CONFIG_UDELAY_TSC=y -CONFIG_TSC_MONOTONIC_TIMER=y -CONFIG_TSC_SYNC_MFENCE=y -CONFIG_SETUP_XIP_CACHE=y -CONFIG_LOGICAL_CPUS=y -CONFIG_HAVE_SMI_HANDLER=y -CONFIG_SMM_TSEG=y -CONFIG_SMM_LAPIC_REMAP_MITIGATION=y -CONFIG_AP_STACK_SIZE=0x800 -CONFIG_SMP=y -CONFIG_MMX=y -CONFIG_SSE=y -CONFIG_SSE2=y -CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y -CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y -CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y -# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set -# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set -# CONFIG_CPU_MICROCODE_CBFS_NONE is not set - -# -# Northbridge -# -CONFIG_NORTHBRIDGE_INTEL_X4X=y - -# -# Southbridge -# -CONFIG_PCIEXP_HOTPLUG=y -CONFIG_SOUTHBRIDGE_INTEL_I82801GX=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_HPET=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH7=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y -CONFIG_HAVE_INTEL_CHIPSET_LOCKDOWN=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y -CONFIG_INTEL_CHIPSET_LOCKDOWN=y -CONFIG_TCO_SPACE_NOT_YET_SPLIT=y -CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y -CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000 -CONFIG_RCBA_LENGTH=0x4000 - -# -# Super I/O -# -CONFIG_SUPERIO_ITE_COMMON_PRE_RAM=y -CONFIG_SUPERIO_ITE_ENV_CTRL=y -CONFIG_SUPERIO_ITE_ENV_CTRL_FAN16_CONFIG=y -CONFIG_SUPERIO_ITE_ENV_CTRL_PWM_FREQ2=y -CONFIG_SUPERIO_ITE_IT8718F=y - -# -# Embedded Controllers -# -CONFIG_ARCH_X86=y -CONFIG_ARCH_BOOTBLOCK_X86_32=y -CONFIG_ARCH_VERSTAGE_X86_32=y -CONFIG_ARCH_ROMSTAGE_X86_32=y -CONFIG_ARCH_POSTCAR_X86_32=y -CONFIG_ARCH_RAMSTAGE_X86_32=y -CONFIG_ARCH_ALL_STAGES_X86_32=y -CONFIG_HAVE_EXP_X86_64_SUPPORT=y -# CONFIG_USE_EXP_X86_64_SUPPORT is not set -CONFIG_AP_IN_SIPI_WAIT=y -CONFIG_SIPI_VECTOR_IN_ROM=y -CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y -CONFIG_PC80_SYSTEM=y -CONFIG_HAVE_CMOS_DEFAULT=y -CONFIG_POSTCAR_STAGE=y -CONFIG_BOOTBLOCK_SIMPLE=y -# CONFIG_BOOTBLOCK_NORMAL is not set -CONFIG_COLLECT_TIMESTAMPS_TSC=y -CONFIG_HAVE_CF9_RESET=y -CONFIG_DEBUG_HW_BREAKPOINTS=y -CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y -# end of Chipset - -# -# Devices -# -CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y -CONFIG_HAVE_LINEAR_FRAMEBUFFER=y -CONFIG_MAINBOARD_HAS_LIBGFXINIT=y -CONFIG_MAINBOARD_USE_LIBGFXINIT=y -# CONFIG_VGA_ROM_RUN is not set -# CONFIG_NO_GFX_INIT is not set -CONFIG_NO_EARLY_GFX_INIT=y - -# -# Display -# -CONFIG_VGA_TEXT_FRAMEBUFFER=y -# CONFIG_GENERIC_LINEAR_FRAMEBUFFER is not set -# end of Display - -CONFIG_PCI=y -CONFIG_ECAM_MMCONF_SUPPORT=y -CONFIG_PCIX_PLUGIN_SUPPORT=y -CONFIG_CARDBUS_PLUGIN_SUPPORT=y -CONFIG_AZALIA_PLUGIN_SUPPORT=y -CONFIG_PCIEXP_PLUGIN_SUPPORT=y -CONFIG_ECAM_MMCONF_LENGTH=0x10000000 -CONFIG_PCI_ALLOW_BUS_MASTER=y -CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y -CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y -# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set -# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set -CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G=y -# CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G is not set -CONFIG_PCIEXP_HOTPLUG_IO=0x2000 -CONFIG_FIRMWARE_CONNECTION_MANAGER=y -# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set -# CONFIG_EARLY_PCI_BRIDGE is not set -CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 -CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 -CONFIG_INTEL_GMA_HAVE_VBT=y -CONFIG_INTEL_GMA_ADD_VBT=y -# CONFIG_SOFTWARE_I2C is not set -CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 -# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set -CONFIG_NO_DDR5=y -CONFIG_NO_LPDDR4=y -CONFIG_NO_DDR4=y -CONFIG_USE_DDR3=y -CONFIG_USE_DDR2=y -# end of Devices - -# -# Generic Drivers -# -CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 -# CONFIG_ELOG is not set -CONFIG_CACHE_MRC_SETTINGS=y -# CONFIG_MRC_SETTINGS_PROTECT is not set -CONFIG_MRC_STASH_TO_CBMEM=y -CONFIG_REALTEK_8168_RESET=y -CONFIG_REALTEK_8168_MACADDRESS="00:e0:4c:00:c0:b0" -# CONFIG_SMMSTORE is not set -CONFIG_SPI_FLASH=y -CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y -CONFIG_BOOT_DEVICE_SPI_FLASH_NO_EARLY_WRITES=y -# CONFIG_SPI_FLASH_NO_FAST_READ is not set -CONFIG_SPI_FLASH_ADESTO=y -CONFIG_SPI_FLASH_AMIC=y -CONFIG_SPI_FLASH_ATMEL=y -CONFIG_SPI_FLASH_EON=y -CONFIG_SPI_FLASH_GIGADEVICE=y -CONFIG_SPI_FLASH_MACRONIX=y -CONFIG_SPI_FLASH_SPANSION=y -CONFIG_SPI_FLASH_SST=y -CONFIG_SPI_FLASH_STMICRO=y -# CONFIG_DRIVERS_UART_OXPCIE is not set -CONFIG_HAVE_USBDEBUG=y -# CONFIG_USBDEBUG is not set -# CONFIG_VPD is not set -# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set -# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set -# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set -# CONFIG_DRIVERS_I2C_MAX98396 is not set -CONFIG_INTEL_GMA_ACPI=y -CONFIG_GFX_GMA=y -CONFIG_GFX_GMA_PANEL_1_ON_EDP=y -CONFIG_INTEL_GMA_OPREGION_2_0=y -CONFIG_GFX_GMA_DYN_CPU=y -CONFIG_GFX_GMA_GENERATION="G45" -CONFIG_GFX_GMA_PCH="No_PCH" -CONFIG_GFX_GMA_PANEL_2_PORT="Disabled" -CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC" -# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set -# CONFIG_DRIVERS_PS2_KEYBOARD is not set -CONFIG_DRIVERS_MC146818=y -# CONFIG_USE_PC_CMOS_ALTCENTURY is not set -CONFIG_VGA=y -# CONFIG_DRIVERS_SIL_3114 is not set -# end of Generic Drivers - -# -# Security -# - -# -# CBFS verification -# -# CONFIG_CBFS_VERIFICATION is not set -# end of CBFS verification - -# -# Verified Boot (vboot) -# -# end of Verified Boot (vboot) - -# -# Trusted Platform Module -# -CONFIG_NO_TPM=y -# end of Trusted Platform Module - -# -# Memory initialization -# -CONFIG_PLATFORM_HAS_DRAM_CLEAR=y -CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y -# end of Memory initialization - -# CONFIG_STM is not set -CONFIG_BOOTMEDIA_LOCK_NONE=y -# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set -# CONFIG_BOOTMEDIA_LOCK_CHIP is not set -# CONFIG_BOOTMEDIA_SMM_BWP is not set -# end of Security - -CONFIG_ACPI_HAVE_PCAT_8259=y -CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y -CONFIG_ACPI_SOC_NVS=y -CONFIG_HAVE_ACPI_TABLES=y -CONFIG_BOOT_DEVICE_SPI_FLASH=y -CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y -CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y - -# -# Console -# -CONFIG_BOOTBLOCK_CONSOLE=y -CONFIG_POSTCAR_CONSOLE=y -CONFIG_SQUELCH_EARLY_SMP=y -# CONFIG_SPKMODEM is not set -# CONFIG_CONSOLE_NE2K is not set -CONFIG_CONSOLE_CBMEM=y -# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set -# CONFIG_CONSOLE_SPI_FLASH is not set -# CONFIG_CONSOLE_I2C_SMBUS is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set -# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set -CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y -CONFIG_DEFAULT_CONSOLE_LOGLEVEL=0 -CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y -CONFIG_CONSOLE_USE_ANSI_ESCAPES=y -# CONFIG_CMOS_POST is not set -CONFIG_POST_DEVICE_NONE=y -# CONFIG_POST_DEVICE_LPC is not set -# CONFIG_POST_DEVICE_PCI_PCIE is not set -CONFIG_POST_IO_PORT=0x80 -CONFIG_HWBASE_DEBUG_NULL=y -# end of Console - -CONFIG_HAVE_ACPI_RESUME=y -CONFIG_RESUME_PATH_SAME_AS_BOOT=y -CONFIG_HAVE_MONOTONIC_TIMER=y -CONFIG_HAVE_OPTION_TABLE=y -CONFIG_IOAPIC=y -CONFIG_USE_WATCHDOG_ON_BOOT=y - -# -# System tables -# -CONFIG_GENERATE_SMBIOS_TABLES=y -CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" -# end of System tables - -# -# Payload -# -CONFIG_PAYLOAD_NONE=y -# end of Payload - -# -# Debugging -# - -# -# CPU Debug Settings -# -# CONFIG_DISPLAY_MTRRS is not set - -# -# BLOB Debug Settings -# - -# -# General Debug Settings -# -# CONFIG_FATAL_ASSERTS is not set -# CONFIG_DEBUG_CBFS is not set -CONFIG_HAVE_DEBUG_RAM_SETUP=y -# CONFIG_DEBUG_RAM_SETUP is not set -CONFIG_HAVE_DEBUG_SMBUS=y -# CONFIG_DEBUG_SMBUS is not set -# CONFIG_DEBUG_CONSOLE_INIT is not set -# CONFIG_DEBUG_SPI_FLASH is not set -# CONFIG_DEBUG_BOOT_STATE is not set -# CONFIG_DEBUG_ADA_CODE is not set -# end of Debugging - -CONFIG_RAMSTAGE_ADA=y -CONFIG_RAMSTAGE_LIBHWBASE=y -CONFIG_HWBASE_DYNAMIC_MMIO=y -CONFIG_HWBASE_DEFAULT_MMCONF=0xe0000000 -CONFIG_HWBASE_DIRECT_PCIDEV=y -CONFIG_DECOMPRESS_OFAST=y -CONFIG_WARNINGS_ARE_ERRORS=y -CONFIG_MAX_REBOOT_CNT=3 -CONFIG_RELOCATABLE_MODULES=y -CONFIG_HAVE_BOOTBLOCK=y -CONFIG_HAVE_ROMSTAGE=y -CONFIG_HAVE_RAMSTAGE=y From bceb5f2eb47c9b00d8c0be52adca621588f180d0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 12 May 2023 16:55:45 +0100 Subject: [PATCH 0042/2290] build/roms_helper: move logic into main() logic will be split from main into smaller functions, in follow-up commits --- resources/scripts/build/boot/roms_helper | 550 ++++++++++++----------- 1 file changed, 283 insertions(+), 267 deletions(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 115763ff..c0cf6123 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -36,36 +36,7 @@ kmapdir="resources/grub/keymap" displaymodes="" payloads="" keyboard_layouts="" -while [ $# -gt 0 ]; do - case ${1} in - -d) - displaymodes="${displaymodes}${2}" - shift ;; - -p) - payloads="${payloads}${2}" - shift ;; - -k) - keyboard_layouts="${keyboard_layouts}${2}" - shift ;; - *) - board=${1} ;; - esac - shift -done - -printf "board is %s , kb is %s , displaymode is %s , payloads is %s\n" \ - ${board} ${keyboard_layouts} ${displaymodes} ${payloads} - -if [ ! -d "${cbcfgdir}/${board}" ]; then - printf "build/roms: Target not defined: %s\n" ${board} - exit 1 -fi - -if [ ! -f "${cbcfgdir}/${board}/board.cfg" ]; then - printf "build/roms: Missing board.cfg for target: %s\n" ${board} - exit 1 -fi - +board="" grub_scan_disk="undefined" cbtree="undefined" @@ -75,227 +46,304 @@ arch="undefined" # Disable all payloads by default. # board.cfg files have to specifically enable [a] payload(s) payload_grub="n" -payload_grub_withseabios="n" # seabios chainloaded from grub +payload_grub_wseabios="n" # seabios chainloaded from grub payload_seabios="n" -payload_seabios_withgrub="n" # i386-coreboot grub from SeaBIOS boot menu +payload_seabios_wgrub="n" # i386-coreboot grub from SeaBIOS boot menu payload_memtest="n" payload_uboot="n" uboot_config="undefined" -# Override the above defaults using board.cfg -. "${cbcfgdir}/${board}/board.cfg" -if [ "${grub_scan_disk}" = "undefined" ]; then - printf "build/roms: Target '%s' does not define grub_scan_disk. " \ - ${board} - printf "Defaulting to 'both'.\n" - grub_scan_disk="both" -fi +romdir="" +cbdir="" +cbfstool="" +corebootrom="" +seavgabiosrom="" -if [ "${grub_scan_disk}" != "both" ] && \ - [ "${grub_scan_disk}" != "ata" ] && \ - [ "${grub_scan_disk}" != "ahci" ]; then - printf "build/roms: Target '%s' defines bad grub_scan_disk option. " \ - ${board} - printf "Defaulting to 'both'.\n" - grub_scan_disk="both" - # erroring out would be silly. just use the default -fi +CROSS_COMPILE="" -if [ "${cbtree}" = "undefined" ]; then - printf "build/roms: Target '%s' does not define a coreboot tree. " \ - ${board} - printf "Skipping build.\n" - exit 1 -fi -if [ "${arch}" = "undefined" ]; then - printf "build/roms: Target '%s' does not define a CPU type. " \ - ${board} - printf "Skipping build.\n" - exit 1 -fi +main() +{ + while [ $# -gt 0 ]; do + case ${1} in + -d) + displaymodes="${displaymodes}${2}" + shift ;; + -p) + payloads="${payloads}${2}" + shift ;; + -k) + keyboard_layouts="${keyboard_layouts}${2}" + shift ;; + *) + board=${1} ;; + esac + shift + done -if [ "${payload_memtest}" != "n" ] && \ - [ "${payload_memtest}" != "y" ]; then - payload_memtest="n" -fi -if [ "${payload_grub_withseabios}" = "y" ]; then - payload_grub="y" -fi -if [ "${payload_grub_withseabios}" = "y" ]; then - payload_seabios="y" - payload_seabios_withgrub="y" -fi -if [ "${payload_seabios_withgrub}" = "y" ]; then - payload_seabios="y" -fi -# NOTE: reverse logic must NOT be applied. If SeaBIOS-with-GRUB works, that -# doesn't necessarily mean GRUb-with-SeaBIOS will. For example, the board -# might have an external GPU, where it's recommended to boot SeaBIOS first -if [ "${payload_grub}" != "y" ] && [ "${payload_seabios}" != "y" ] \ - && [ "${payload_uboot}" != "y" ]; then - for configfile in "${cbcfgdir}/${board}/config/"*; do - if [ ! -e "${configfile}" ]; then - continue - fi - printf "ERROR build/roms: Target '%s' defines no payload. " \ - ${board} - printf "Exiting.\n" + printf "board %s , kb %s , displaymode %s , payloads %s\n" \ + ${board} ${keyboard_layouts} ${displaymodes} \ + ${payloads} + + if [ "${board}" = "" ]; then + printf "build/roms: undefined board. Exiting\n" exit 1 - done -fi - -if [ "${payload_uboot}" != "n" ] && \ - [ "${payload_uboot}" != "y" ]; then - payload_uboot="n" -fi - -if [ "${payload_uboot}" = "y" ] && \ - [ "${uboot_config}" = "undefined" ]; then - uboot_config="default" -fi - -# Override all payload directives with cmdline args -if [ ! -z ${payloads} ]; then - echo "setting payloads $payloads" - payload_grub="n" - payload_grub_withseabios="n" # seabios chainloaded from grub - payload_seabios="n" - payload_seabios_withgrub="n" # i386-coreboot grub from SeaBIOS menu - payload_uboot="n" - payload_memtest="n" - - for payload in ${payloads} ; do - eval "payload_${payload}=y" - done -fi - -romdir="bin/${board}" -cbdir="coreboot/${board}" -if [ "${board}" != "${cbtree}" ]; then - cbdir="coreboot/${cbtree}" -fi -cbfstool="${cbdir}/util/cbfstool/cbfstool" -corebootrom="${cbdir}/build/coreboot.rom" -seavgabiosrom="payload/seabios/seavgabios.bin" - -if [ ! -d "${cbdir}" ]; then - ./download coreboot ${cbtree} -fi - -cat version > "${cbdir}/.coreboot-version" - -if [ "${arch}" = "x86_32" ] || [ "${arch}" = "x86_64" ]; then - if [ ! -d "${cbdir}/util/crossgcc/xgcc/i386-elf/" ]; then - # Even for 64-bit machines, coreboot builds 32-bit ROM - # images, so we only need to worry about i386-elf - make -C "${cbdir}" crossgcc-i386 CPUS=$(nproc) fi - case "$(uname -m)" in - x86*|i*86|amd64) : ;; - *) export CROSS_COMPILE=i386-elf- ;; - esac -elif [ "${arch}" = "ARMv7" ]; then - if [ ! -d "${cbdir}/util/crossgcc/xgcc/arm-eabi/" ]; then - make -C "${cbdir}" crossgcc-arm CPUS=$(nproc) + if [ ! -d "${cbcfgdir}/${board}" ]; then + printf "build/roms: Target not defined: %s\n" ${board} + exit 1 fi - case "$(uname -m)" in - arm|arm32|armv6*|armv7*) : ;; - *) export CROSS_COMPILE=arm-eabi- ;; - esac -elif [ "${arch}" = "AArch64" ]; then - if [ ! -d "${cbdir}/util/crossgcc/xgcc/aarch64-elf/" ]; then - make -C "${cbdir}" crossgcc-aarch64 CPUS=$(nproc) + if [ ! -f "${cbcfgdir}/${board}/board.cfg" ]; then + printf "build/roms %s: Missing board.cfg\n" ${board} + exit 1 fi - # aarch64 also needs armv7 toolchain for arm-trusted-firmware - if [ ! -d "${cbdir}/util/crossgcc/xgcc/arm-eabi/" ]; then - make -C "${cbdir}" crossgcc-arm CPUS=$(nproc) + + # Override the above defaults using board.cfg + . "${cbcfgdir}/${board}/board.cfg" + + if [ "${grub_scan_disk}" = "undefined" ]; then + printf "build/roms '%s': grub_scan_disk is undefined. " \ + ${board} + printf "Defaulting to 'both'.\n" + grub_scan_disk="both" fi - case "$(uname -m)" in - arm64|aarch64) : ;; - *) export CROSS_COMPILE=aarch64-elf- ;; - esac -fi - -export PATH="$(pwd)/${cbdir}/util/crossgcc/xgcc/bin:$PATH" - -if [ ! -f "${cbfstool}" ]; then - ./build module cbutils ${cbtree} || exit 1 -fi - -if [ ! -f "${seavgabiosrom}" ] \ - || [ ! -f payload/seabios/seabios_libgfxinit.elf ] \ - || [ ! -f payload/seabios/seabios_vgarom.elf ] \ - || [ ! -f payload/seabios/seabios_normal.elf ]; then - if [ "${payload_seabios}" = "y" ]; then - ./build payload seabios - elif [ "${payload_grub}" = "y" ] \ - && [ "${payload_grub_withseabios}" = "y" ]; then - ./build payload seabios + if [ "${grub_scan_disk}" != "both" ] && \ + [ "${grub_scan_disk}" != "ata" ] && \ + [ "${grub_scan_disk}" != "ahci" ]; then + printf "build/roms '%s': invalid grub_scan_disk config. " \ + ${board} + printf "Defaulting to 'both'.\n" + grub_scan_disk="both" + # erroring out would be silly. just use the default fi -fi -if [ "${payload_memtest}" = "y" ]; then - if [ ! -f "memtest86plus/memtest" ]; then - ./build module memtest86plus + if [ "${cbtree}" = "undefined" ]; then + printf "build/roms '%s': undefined coreboot tree. " \ + ${board} + printf "Skipping build.\n" + exit 1 + fi + if [ "${arch}" = "undefined" ]; then + printf "build/roms '%s': undefined CPU type. " \ + ${board} + printf "Skipping build.\n" + exit 1 fi -fi -[ -d "${romdir}/" ] || mkdir -p "${romdir}/" -rm -f "${romdir}"/* + if [ "${payload_memtest}" != "n" ] && \ + [ "${payload_memtest}" != "y" ]; then + payload_memtest="n" + fi + if [ "${payload_grub_wseabios}" = "y" ]; then + payload_grub="y" + fi + if [ "${payload_grub_wseabios}" = "y" ]; then + payload_seabios="y" + payload_seabios_wgrub="y" + fi + if [ "${payload_seabios_wgrub}" = "y" ]; then + payload_seabios="y" + fi + # NOTE: reverse logic must NOT be applied. If SeaBIOS-with-GRUB works, + # that doesn't mean GRUB-with-SeaBIOS will. For example, the board + # might have an external GPU, where SeaBIOS should be booted first + if [ "${payload_grub}" != "y" ] && [ "${payload_seabios}" != "y" ] \ + && [ "${payload_uboot}" != "y" ]; then + for configfile in "${cbcfgdir}/${board}/config/"*; do + if [ ! -e "${configfile}" ]; then + continue + fi + printf "build/roms %s: Payload undefined. Exiting.\n" \ + ${board} + exit 1 + done + fi + if [ "${payload_uboot}" != "n" ] && \ + [ "${payload_uboot}" != "y" ]; then + payload_uboot="n" + fi + if [ "${payload_uboot}" = "y" ] && \ + [ "${uboot_config}" = "undefined" ]; then + uboot_config="default" + fi + # Override all payload directives with cmdline args + if [ ! -z ${payloads} ]; then + echo "setting payloads $payloads" + payload_grub="n" + payload_grub_wseabios="n" # seabios chainloaded from grub + payload_seabios="n" + payload_seabios_wgrub="n" # grub from SeaBIOS menu + payload_uboot="n" + payload_memtest="n" -if [ "${payload_grub}" = "y" ] \ - || [ "${payload_seabios_withgrub}" = "y" ]; then - if [ -f "payload/grub/grub_usqwerty.cfg" ]; then - sha1sumcmd="sha1sum resources/grub/config/grub.cfg" - grubrefchecksum="$(${sha1sumcmd} | awk '{print $1}')" + for payload in ${payloads} ; do + eval "payload_${payload}=y" + done + fi - sha1sumcmd="sha1sum payload/grub/grub_usqwerty.cfg" - grubbuildchecksum="$(${sha1sumcmd} | awk '{print $1}')" + romdir="bin/${board}" + cbdir="coreboot/${board}" + if [ "${board}" != "${cbtree}" ]; then + cbdir="coreboot/${cbtree}" + fi + cbfstool="${cbdir}/util/cbfstool/cbfstool" + corebootrom="${cbdir}/build/coreboot.rom" + seavgabiosrom="payload/seabios/seavgabios.bin" - if [ "${grubrefchecksum}" != "${grubbuildchecksum}" ]; then - rm -Rf payload/grub/ - printf "Changes detected to GRUB. Re-building now:\n" + if [ ! -d "${cbdir}" ]; then + ./download coreboot ${cbtree} + fi + cat version > "${cbdir}/.coreboot-version" + + if [ "${arch}" = "x86_32" ] || [ "${arch}" = "x86_64" ]; then + if [ ! -d "${cbdir}/util/crossgcc/xgcc/i386-elf/" ]; then + # Even for 64-bit machines, coreboot builds 32-bit ROM + # images, so we only need to worry about i386-elf + make -C "${cbdir}" crossgcc-i386 CPUS=$(nproc) fi - else - printf "Required GRUB payloads not yet built. Building now:\n" - rm -Rf payload/grub/ # just in case + case "$(uname -m)" in + x86*|i*86|amd64) : ;; + *) export CROSS_COMPILE=i386-elf- ;; + esac + elif [ "${arch}" = "ARMv7" ]; then + if [ ! -d "${cbdir}/util/crossgcc/xgcc/arm-eabi/" ]; then + make -C "${cbdir}" crossgcc-arm CPUS=$(nproc) + fi + case "$(uname -m)" in + arm|arm32|armv6*|armv7*) : ;; + *) export CROSS_COMPILE=arm-eabi- ;; + esac + elif [ "${arch}" = "AArch64" ]; then + if [ ! -d "${cbdir}/util/crossgcc/xgcc/aarch64-elf/" ]; then + make -C "${cbdir}" crossgcc-aarch64 CPUS=$(nproc) + fi + # aarch64 also needs armv7 toolchain for arm-trusted-firmware + if [ ! -d "${cbdir}/util/crossgcc/xgcc/arm-eabi/" ]; then + make -C "${cbdir}" crossgcc-arm CPUS=$(nproc) + fi + case "$(uname -m)" in + arm64|aarch64) : ;; + *) export CROSS_COMPILE=aarch64-elf- ;; + esac fi - for keymapfile in ${kmapdir}/*; do - if [ ! -f "${keymapfile}" ]; then - continue + + export PATH="$(pwd)/${cbdir}/util/crossgcc/xgcc/bin:$PATH" + + if [ ! -f "${cbfstool}" ]; then + ./build module cbutils ${cbtree} || exit 1 + fi + if [ ! -f "${seavgabiosrom}" ] \ + || [ ! -f payload/seabios/seabios_libgfxinit.elf ] \ + || [ ! -f payload/seabios/seabios_vgarom.elf ] \ + || [ ! -f payload/seabios/seabios_normal.elf ]; then + if [ "${payload_seabios}" = "y" ]; then + ./build payload seabios + elif [ "${payload_grub}" = "y" ] \ + && [ "${payload_grub_wseabios}" = "y" ] + then + ./build payload seabios + fi + fi + if [ "${payload_memtest}" = "y" ]; then + if [ ! -f "memtest86plus/memtest" ]; then + ./build module memtest86plus + fi + fi + + [ -d "${romdir}/" ] || mkdir -p "${romdir}/" + rm -f "${romdir}"/* + + if [ "${payload_grub}" = "y" ] \ + || [ "${payload_seabios_wgrub}" = "y" ]; then + if [ -f "payload/grub/grub_usqwerty.cfg" ]; then + sha1cmd="sha1sum resources/grub/config/grub.cfg" + grubrefchecksum="$(${sha1cmd} | awk '{print $1}')" + + sha1cmd="sha1sum payload/grub/grub_usqwerty.cfg" + grubsha1="$(${sha1cmd} | awk '{print $1}')" + + if [ "${grubrefchecksum}" != "${grubsha1}" ]; then + rm -Rf payload/grub/ + printf "GRUB change detected. Rebuilding:\n" + fi + else + printf "GRUB payloads needed. Building:\n" + rm -Rf payload/grub/ # just in case + fi + for keymapfile in ${kmapdir}/*; do + if [ ! -f "${keymapfile}" ]; then + continue + fi + + keymap="${keymapfile##*/}" + keymap="${keymap%.gkb}" + + grubelf="payload/grub/grub_${keymap}.elf" + grubcfg="payload/grub/grub_${keymap}.cfg" + grubtestcfg="payload/grub/grub_${keymap}_test.cfg" + + if [ ! -f "${grubelf}" ] || [ ! -f "${grubcfg}" ] || \ + [ ! -f "${grubtestcfg}" ]; then + ./build payload grub + fi + done + fi + + if [ "${payload_uboot}" = "y" ]; then + ubdir="" + if [ "${uboot_config}" = "default" ]; then + ubdir="payload/u-boot/${board}" + else + ubdir="payload/u-boot/${board}/${uboot_config}" fi - keymap="${keymapfile##*/}" - keymap="${keymap%.gkb}" - - grubelf="payload/grub/grub_${keymap}.elf" - grubcfg="payload/grub/grub_${keymap}.cfg" - grubtestcfg="payload/grub/grub_${keymap}_test.cfg" - - if [ ! -f "${grubelf}" ] || [ ! -f "${grubcfg}" ] || \ - [ ! -f "${grubtestcfg}" ]; then - ./build payload grub + if [ -f "${ubdir}/u-boot.elf" ]; then + ubootelf="${ubdir}/u-boot.elf" + elif [ -f "${ubdir}/u-boot" ]; then + ubootelf="${ubdir}/u-boot" + else + printf "U-Boot needed. Building:\n" + rm -Rf "payload/u-boot/${board}" # just in case + ./build payload u-boot "${board}" fi - done -fi - -if [ "${payload_uboot}" = "y" ]; then - if [ "${uboot_config}" = "default" ]; then - ubdir="payload/u-boot/${board}" - else - ubdir="payload/u-boot/${board}/${uboot_config}" fi - if [ -f "${ubdir}/u-boot.elf" ]; then - ubootelf="${ubdir}/u-boot.elf" - elif [ -f "${ubdir}/u-boot" ]; then - ubootelf="${ubdir}/u-boot" + if [ -z ${displaymodes} ]; then + initmode="libgfxinit" + for displaymode in corebootfb txtmode; do + _cbcfg="${cbcfgdir}/${board}/config/${initmode}" + _cbcfg="${_cbcfg}_${displaymode}" + mkRoms "${_cbcfg}" "${displaymode}" "${initmode}" + done + + initmode="vgarom" + for displaymode in vesafb txtmode; do + _cbcfg="${cbcfgdir}/${board}/config/${initmode}" + _cbcfg="${_cbcfg}_${displaymode}" + mkRoms "${_cbcfg}" "${displaymode}" "${initmode}" + done + + initmode="normal" + displaymode="txtmode" + _cbcfg="${cbcfgdir}/${board}/config/${initmode}" + mkRoms "${_cbcfg}" "${displaymode}" "${initmode}" + else - printf "Required U-Boot payload not yet built. Building now\n" - rm -Rf "payload/u-boot/${board}" # just in case - ./build payload u-boot "${board}" + echo "special displaymode defined as $displaymodes" + for initmode in vgarom libgfxinit; do + for displaymode in ${displaymodes}; do + _cbcfg="${cbcfgdir}/${board}/config/" + _cbcfg="${_cbcfg}${initmode}_${displaymode}" + mkRoms "${_cbcfg}" "${displaymode}" \ + "${initmode}" + done + done fi -fi + + ( + cd "${cbdir}" + make distclean # TODO: do make clean instead (avoid re-building utils) + ) +} # it is assumed that no other work will be done on the ROM # after calling this function. therefore this function is "final" @@ -350,10 +398,10 @@ moverom() mkCoreboot() { cbdir="${1}" # eg. coreboot/default - cbcfgpath="${2}" # eg. ${cbcfgdir}/e6400nvidia_4mb/config/normal - if [ ! -f "${cbcfgpath}" ]; then + _cbcfg="${2}" # eg. ${cbcfgdir}/e6400nvidia_4mb/config/normal + if [ ! -f "${_cbcfg}" ]; then printf "\nmkCoreboot: coreboot config '%s' does not exist. " \ - ${cbcfgpath} + ${_cbcfg} printf "Skipping build.\n" return 0 fi @@ -372,7 +420,7 @@ mkCoreboot() mv "${cbdir}/cbfstool" "${cbfstool}" fi ) - cp "${cbcfgpath}" "${cbdir}"/.config + cp "${_cbcfg}" "${cbdir}"/.config ./build module cbutils ${cbdir#coreboot/} || exit 1 ( cd "${cbdir}" @@ -512,15 +560,15 @@ mkRomsWithGrub() tmprompath="${1}" initmode="${2}" displaymode="${3}" - firstpayloadname="${4}" # allow values: grub, seabios, seabios_withgrub + firstpayloadname="${4}" # allow values: grub, seabios, seabios_wgrub x=${tmprompath} y=${initmode} - if [ "${payload_grub_withseabios}" = "y" ] \ + if [ "${payload_grub_wseabios}" = "y" ] \ && [ "${firstpayloadname}" = "grub" ]; then mv "$(mkSeabiosRom "${x}" "seabios.elf" "${y}")" \ "${tmprompath}" - elif [ "${payload_seabios_withgrub}" ] \ + elif [ "${payload_seabios_wgrub}" ] \ && [ "${firstpayloadname}" != "grub" ]; then mv "$(mkSeabiosRom "${x}" "fallback/payload" "${y}")" \ "${tmprompath}" @@ -569,18 +617,18 @@ mkRomsWithGrub() # Main ROM building function. This calls all other functions mkRoms() { - cbcfgpath="${1}" + _cbcfg="${1}" displaymode="${2}" initmode="${3}" - if [ ! -f "${cbcfgpath}" ]; then + if [ ! -f "${_cbcfg}" ]; then printf "'%s' does not exist. Skipping build for %s %s %s\n" \ - ${cbcfgpath} ${board} \ + ${_cbcfg} ${board} \ ${displaymode} ${initmode} return 0 fi - mkCoreboot "${cbdir}" "${cbcfgpath}" + mkCoreboot "${cbdir}" "${_cbcfg}" if [ "${displaymode}" = "txtmode" ] \ && [ "${payload_memtest}" = "y" ]; then @@ -590,7 +638,7 @@ mkRoms() fi if [ "${payload_seabios}" = "y" ]; then - if [ "${payload_seabios_withgrub}" = "n" ]; then + if [ "${payload_seabios_wgrub}" = "n" ]; then x=${corebootrom} y=${initmode} t=$(mkSeabiosRom "$x" "fallback/payload" "$y") @@ -633,36 +681,4 @@ mkRoms() fi } -if [ -z ${displaymodes} ]; then - initmode="libgfxinit" - for displaymode in corebootfb txtmode; do - cbcfgpath="${cbcfgdir}/${board}/config/${initmode}_$displaymode" - mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" - done - - initmode="vgarom" - for displaymode in vesafb txtmode; do - cbcfgpath="${cbcfgdir}/${board}/config/${initmode}_$displaymode" - mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" - done - - initmode="normal" - displaymode="txtmode" - cbcfgpath="${cbcfgdir}/${board}/config/${initmode}" - mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" - -else - echo "special displaymode defined as $displaymodes" - for initmode in vgarom libgfxinit; do - for displaymode in ${displaymodes}; do - cbcfgpath="${cbcfgdir}/${board}/config/${initmode}_" - cbcfgpath="${cbcfgpath}${displaymode}" - mkRoms "${cbcfgpath}" "${displaymode}" "${initmode}" - done - done -fi - -( -cd "${cbdir}" -make distclean -) +main $@ From 9eee0fb483e2abf9698ffc3a946304166ec9b1e9 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 12 May 2023 21:53:06 +0100 Subject: [PATCH 0043/2290] build/boot/roms: split main() to topdown functions the logic can now more or less be read chronologically --- resources/scripts/build/boot/roms_helper | 726 ++++++++++++----------- 1 file changed, 394 insertions(+), 332 deletions(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index c0cf6123..92fc2e4a 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -32,6 +32,7 @@ set -u -e projectname="$(cat projectname)" cbcfgdir="resources/coreboot" +boardcfgdir="" kmapdir="resources/grub/keymap" displaymodes="" payloads="" @@ -46,9 +47,9 @@ arch="undefined" # Disable all payloads by default. # board.cfg files have to specifically enable [a] payload(s) payload_grub="n" -payload_grub_wseabios="n" # seabios chainloaded from grub +payload_grub_withseabios="n" # seabios chainloaded from grub payload_seabios="n" -payload_seabios_wgrub="n" # i386-coreboot grub from SeaBIOS boot menu +payload_seabios_withgrub="n" # i386-coreboot grub from SeaBIOS boot menu payload_memtest="n" payload_uboot="n" uboot_config="undefined" @@ -88,17 +89,37 @@ main() printf "build/roms: undefined board. Exiting\n" exit 1 fi - if [ ! -d "${cbcfgdir}/${board}" ]; then + + load_config + build_dependencies + build_rom_images +} + +load_config() +{ + boardcfgdir="${cbcfgdir}/${board}" + + if [ ! -d "${boardcfgdir}" ]; then printf "build/roms: Target not defined: %s\n" ${board} exit 1 fi - if [ ! -f "${cbcfgdir}/${board}/board.cfg" ]; then + if [ ! -f "${boardcfgdir}/board.cfg" ]; then printf "build/roms %s: Missing board.cfg\n" ${board} exit 1 fi - # Override the above defaults using board.cfg - . "${cbcfgdir}/${board}/board.cfg" + . "${boardcfgdir}/board.cfg" + + if [ "${board}" != "${cbtree}" ]; then + cbdir="coreboot/${cbtree}" + else + cbdir="coreboot/${board}" + fi + + romdir="bin/${board}" + cbfstool="${cbdir}/util/cbfstool/cbfstool" + seavgabiosrom="payload/seabios/seavgabios.bin" + corebootrom="${cbdir}/build/coreboot.rom" if [ "${grub_scan_disk}" = "undefined" ]; then printf "build/roms '%s': grub_scan_disk is undefined. " \ @@ -133,30 +154,16 @@ main() [ "${payload_memtest}" != "y" ]; then payload_memtest="n" fi - if [ "${payload_grub_wseabios}" = "y" ]; then + if [ "${payload_grub_withseabios}" = "y" ]; then payload_grub="y" fi - if [ "${payload_grub_wseabios}" = "y" ]; then + if [ "${payload_grub_withseabios}" = "y" ]; then payload_seabios="y" - payload_seabios_wgrub="y" + payload_seabios_withgrub="y" fi - if [ "${payload_seabios_wgrub}" = "y" ]; then + if [ "${payload_seabios_withgrub}" = "y" ]; then payload_seabios="y" fi - # NOTE: reverse logic must NOT be applied. If SeaBIOS-with-GRUB works, - # that doesn't mean GRUB-with-SeaBIOS will. For example, the board - # might have an external GPU, where SeaBIOS should be booted first - if [ "${payload_grub}" != "y" ] && [ "${payload_seabios}" != "y" ] \ - && [ "${payload_uboot}" != "y" ]; then - for configfile in "${cbcfgdir}/${board}/config/"*; do - if [ ! -e "${configfile}" ]; then - continue - fi - printf "build/roms %s: Payload undefined. Exiting.\n" \ - ${board} - exit 1 - done - fi if [ "${payload_uboot}" != "n" ] && \ [ "${payload_uboot}" != "y" ]; then payload_uboot="n" @@ -165,13 +172,20 @@ main() [ "${uboot_config}" = "undefined" ]; then uboot_config="default" fi + + load_config_overrides + die_if_cbconfig_and_nopayload +} + +load_config_overrides() +{ # Override all payload directives with cmdline args if [ ! -z ${payloads} ]; then echo "setting payloads $payloads" payload_grub="n" - payload_grub_wseabios="n" # seabios chainloaded from grub + payload_grub_withseabios="n" # seabios chainloaded from grub payload_seabios="n" - payload_seabios_wgrub="n" # grub from SeaBIOS menu + payload_seabios_withgrub="n" # grub from SeaBIOS menu payload_uboot="n" payload_memtest="n" @@ -179,21 +193,46 @@ main() eval "payload_${payload}=y" done fi +} - romdir="bin/${board}" - cbdir="coreboot/${board}" - if [ "${board}" != "${cbtree}" ]; then - cbdir="coreboot/${cbtree}" +die_if_cbconfig_and_nopayload() +{ + # if a coreboot config exists, and payloads are not + # defined in the lbmk config, exit with error + # if no configs exist, this won't fail. this way, cbtrees + # like "default" can exist which just contain patches + if [ "${payload_grub}" != "y" ] && [ "${payload_seabios}" != "y" ] \ + && [ "${payload_uboot}" != "y" ]; then + for configfile in "${boardcfgdir}/config/"*; do + if [ ! -e "${configfile}" ]; then + continue + fi + printf "build/roms %s: Payload undefined. Exiting.\n" \ + ${board} + exit 1 + done fi - cbfstool="${cbdir}/util/cbfstool/cbfstool" - corebootrom="${cbdir}/build/coreboot.rom" - seavgabiosrom="payload/seabios/seavgabios.bin" +} +build_dependencies() +{ if [ ! -d "${cbdir}" ]; then ./download coreboot ${cbtree} fi + if [ ! -f "${cbfstool}" ]; then + ./build module cbutils ${cbtree} || exit 1 + fi cat version > "${cbdir}/.coreboot-version" + build_dependency_crossgcc + + build_dependency_seabios + build_dependency_grub + build_dependency_uboot +} + +build_dependency_crossgcc() +{ if [ "${arch}" = "x86_32" ] || [ "${arch}" = "x86_64" ]; then if [ ! -d "${cbdir}/util/crossgcc/xgcc/i386-elf/" ]; then # Even for 64-bit machines, coreboot builds 32-bit ROM @@ -227,10 +266,10 @@ main() fi export PATH="$(pwd)/${cbdir}/util/crossgcc/xgcc/bin:$PATH" +} - if [ ! -f "${cbfstool}" ]; then - ./build module cbutils ${cbtree} || exit 1 - fi +build_dependency_seabios() +{ if [ ! -f "${seavgabiosrom}" ] \ || [ ! -f payload/seabios/seabios_libgfxinit.elf ] \ || [ ! -f payload/seabios/seabios_vgarom.elf ] \ @@ -238,7 +277,7 @@ main() if [ "${payload_seabios}" = "y" ]; then ./build payload seabios elif [ "${payload_grub}" = "y" ] \ - && [ "${payload_grub_wseabios}" = "y" ] + && [ "${payload_grub_withseabios}" = "y" ] then ./build payload seabios fi @@ -248,12 +287,13 @@ main() ./build module memtest86plus fi fi +} - [ -d "${romdir}/" ] || mkdir -p "${romdir}/" - rm -f "${romdir}"/* - +build_dependency_grub() +{ if [ "${payload_grub}" = "y" ] \ - || [ "${payload_seabios_wgrub}" = "y" ]; then + || [ "${payload_seabios_withgrub}" = "y" ] + then if [ -f "payload/grub/grub_usqwerty.cfg" ]; then sha1cmd="sha1sum resources/grub/config/grub.cfg" grubrefchecksum="$(${sha1cmd} | awk '{print $1}')" @@ -287,7 +327,10 @@ main() fi done fi +} +build_dependency_uboot() +{ if [ "${payload_uboot}" = "y" ]; then ubdir="" if [ "${uboot_config}" = "default" ]; then @@ -306,32 +349,38 @@ main() ./build payload u-boot "${board}" fi fi +} + +build_rom_images() +{ + [ -d "${romdir}/" ] || mkdir -p "${romdir}/" + rm -f "${romdir}"/* if [ -z ${displaymodes} ]; then initmode="libgfxinit" for displaymode in corebootfb txtmode; do - _cbcfg="${cbcfgdir}/${board}/config/${initmode}" + _cbcfg="${boardcfgdir}/config/${initmode}" _cbcfg="${_cbcfg}_${displaymode}" mkRoms "${_cbcfg}" "${displaymode}" "${initmode}" done initmode="vgarom" for displaymode in vesafb txtmode; do - _cbcfg="${cbcfgdir}/${board}/config/${initmode}" + _cbcfg="${boardcfgdir}/config/${initmode}" _cbcfg="${_cbcfg}_${displaymode}" mkRoms "${_cbcfg}" "${displaymode}" "${initmode}" done initmode="normal" displaymode="txtmode" - _cbcfg="${cbcfgdir}/${board}/config/${initmode}" + _cbcfg="${boardcfgdir}/config/${initmode}" mkRoms "${_cbcfg}" "${displaymode}" "${initmode}" else echo "special displaymode defined as $displaymodes" for initmode in vgarom libgfxinit; do for displaymode in ${displaymodes}; do - _cbcfg="${cbcfgdir}/${board}/config/" + _cbcfg="${boardcfgdir}/config/" _cbcfg="${_cbcfg}${initmode}_${displaymode}" mkRoms "${_cbcfg}" "${displaymode}" \ "${initmode}" @@ -345,6 +394,306 @@ main() ) } +# Main ROM building function. This calls all other functions +mkRoms() +{ + _cbcfg="${1}" + displaymode="${2}" + initmode="${3}" + + if [ ! -f "${_cbcfg}" ]; then + printf "'%s' does not exist. Skipping build for %s %s %s\n" \ + ${_cbcfg} ${board} \ + ${displaymode} ${initmode} + return 0 + fi + + # make coreboot ROM without a payload in it + mkCoreboot "${cbdir}" "${_cbcfg}" + + # now add payloads, per user config: + + if [ "${displaymode}" = "txtmode" ] \ + && [ "${payload_memtest}" = "y" ]; then + "${cbfstool}" "${corebootrom}" add-payload \ + -f memtest86plus/memtest -n img/memtest \ + -c lzma || exit 1 + fi + + if [ "${payload_seabios}" = "y" ]; then + if [ "${payload_seabios_withgrub}" = "n" ]; then + x=${corebootrom} + y=${initmode} + t=$(mkSeabiosRom "$x" "fallback/payload" "$y") + + _newrom="${romdir}/seabios_${board}_${initmode}.rom" + if [ "${initmode}" != "normal" ]; then + _newrom="${_newrom%.rom}_${displaymode}.rom" + fi + + # rom image ready to be flashed: + moverom "${t}" "${_newrom}" "${romtype}" + rm -f "${t}" + else + tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) + cp "${corebootrom}" "${tmprom}" + mkRomsWithGrub "${tmprom}" "${initmode}" \ + "${displaymode}" "seabios_withgrub" + rm -f "${tmprom}" + fi + fi + + if [ "${payload_grub}" = "y" ]; then + mkRomsWithGrub "${corebootrom}" "${initmode}" \ + "${displaymode}" "grub" + fi + + if [ "${payload_uboot}" = "y" ]; then + x=${corebootrom} + y=${uboot_config} + z=${cbfstool} + tmpubootrom="$(mkUbootRom "$x" "fallback/payload" "$y" "$z")" + if [ "${initmode}" = "normal" ]; then + _newrom="${romdir}/uboot_payload_${board}_" + _newrom="${_newrom}${initmode}.rom" + else + _newrom="${romdir}/uboot_payload_${board}_" + _newrom="${_newrom}${initmode}_${displaymode}.rom" + fi + + # rom image ready to be flashed: + moverom "${tmpubootrom}" "${_newrom}" "${romtype}" + rm -f "${tmpubootrom}" + fi +} + +# expected: configs must not specify a payload +mkCoreboot() +{ + cbdir="${1}" # eg. coreboot/default + _cbcfg="${2}" # eg. resources/coreboot/e6400nvidia_4mb/config/normal + + if [ ! -f "${_cbcfg}" ]; then + printf "\nmkCoreboot: coreboot config '%s' does not exist. " \ + ${_cbcfg} + printf "Skipping build.\n" + return 0 + fi + + printf "%s-%s\n" "$(cat projectname)" "$(cat version)" \ + > "${cbdir}/.coreboot-version" + + ( + if [ -f "${cbfstool}" ]; then + mv "${cbfstool}" "${cbdir}/cbfstool" + fi + cd "${cbdir}" + make distclean + cd - + + if [ -f "${cbdir}/cbfstool" ]; then + mv "${cbdir}/cbfstool" "${cbfstool}" + fi + ) + + cp "${_cbcfg}" "${cbdir}"/.config + ./build module cbutils ${cbdir#coreboot/} || exit 1 + + ( + cd "${cbdir}" + make -j$(nproc) + ) +} + +# make a rom in /tmp/ and then print the path of that ROM +mkSeabiosRom() +{ + target_cbrom="${1}" # rom to insert seabios in. will not be touched + # (a tmpfile will be made instead) + target_seabios_cbfs_path="${2}" # e.g. fallback/payload + target_initmode="${3}" # e.g. libgfxinit + + target_seabioself="payload/seabios/seabios_${target_initmode}.elf" + target_seavgabios_rom="payload/seabios/seavgabios.bin" + + tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) + + cp "${target_cbrom}" "${tmprom}" + + "${cbfstool}" "${tmprom}" add-payload -f "${target_seabioself}" \ + -n ${target_seabios_cbfs_path} -c lzma || exit 1 + "${cbfstool}" "${tmprom}" add-int -i 3000 -n etc/ps2-keyboard-spinup \ + || exit 1 + + if [ "${target_initmode}" = "normal" ] \ + || [ "${target_initmode}" = "libgfxinit" ]; then + "${cbfstool}" "${tmprom}" add-int -i 2 \ + -n etc/pci-optionrom-exec || exit 1 + elif [ "${target_initmode}" = "vgarom" ]; then # coreboot executes it + "${cbfstool}" "${tmprom}" add-int -i 0 \ + -n etc/pci-optionrom-exec || exit 1 + fi # for undefined modes, don't add this integer. use SeaBIOS defaults + + "${cbfstool}" "${tmprom}" add-int -i 0 -n etc/optionroms-checksum \ + || exit 1 + + if [ "${target_initmode}" = "libgfxinit" ]; then + "${cbfstool}" "${tmprom}" add -f "${target_seavgabios_rom}" \ + -n vgaroms/seavgabios.bin -t raw || exit 1 + fi + + printf "%s\n" "${tmprom}" +} + +# Make separate ROM images with GRUB payload, for each supported keymap +mkRomsWithGrub() +{ + tmprompath="${1}" + initmode="${2}" + displaymode="${3}" + firstpayloadname="${4}" # allow values: grub, seabios, seabios_withgrub + + x=${tmprompath} + y=${initmode} + if [ "${payload_grub_withseabios}" = "y" ] \ + && [ "${firstpayloadname}" = "grub" ]; then + mv "$(mkSeabiosRom "${x}" "seabios.elf" "${y}")" \ + "${tmprompath}" + elif [ "${payload_seabios_withgrub}" ] \ + && [ "${firstpayloadname}" != "grub" ]; then + mv "$(mkSeabiosRom "${x}" "fallback/payload" "${y}")" \ + "${tmprompath}" + fi + + keymaps="" + if [ -z ${keyboard_layouts} ]; then + for kmapfile in "${kmapdir}"/*; do + keymaps="${keymaps} ${kmapfile}" + done + else + for keymapname in ${keyboard_layouts}; do + keymaps="${keymaps} ${kmapdir}/${keymapname}.gkb" + done + fi + for keymapfile in ${keymaps}; do + if [ ! -f "${keymapfile}" ]; then + continue + fi + + keymap="${keymapfile##*/}" + keymap="${keymap%.gkb}" + + grub_path_in_cbfs="fallback/payload" + if [ "${firstpayloadname}" != "grub" ]; then + grub_path_in_cbfs="img/grub2" + fi + + # evil bofh rfc 2646 compliance hack + x=${keymap} + y=${tmprompath} + z=${grub_path_in_cbfs} + tmpgrubrom="$(mkGrubRom "${x}" "${y}" "${z}")" + + _newrom="${romdir}/${firstpayloadname}_${board}_${initmode}_" + if [ "${initmode}" = "normal" ]; then + _newrom="${_newrom}${keymap}.rom" + else + _newrom="${_newrom}${displaymode}_${keymap}.rom" + fi + + # rom image ready to be flashed: + moverom "${tmpgrubrom}" "${_newrom}" "${romtype}" + rm -f "${tmpgrubrom}" + done +} + +# make a rom in /tmp/ and then print the path of that ROM +mkGrubRom() +{ + target_keymap="${1}" + target_cbrom="${2}" + target_grubelf_cbfs_path="${3}" # e.g. fallback/payload + + grubelf="payload/grub/grub_${target_keymap}.elf" + grubcfg="payload/grub/grub_${target_keymap}.cfg" + grubtestcfg="payload/grub/grub_${target_keymap}_test.cfg" + + tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) || exit 1 + + cp "${target_cbrom}" "${tmprom}" || exit 1 + + "${cbfstool}" "${tmprom}" add-payload -f "${grubelf}" \ + -n ${target_grubelf_cbfs_path} -c lzma || exit 1 + + tmpgrubcfg=$(mktemp -t grub.cfg.XXXXXXXXXX) + tmpgrubtestcfg=$(mktemp -t grubtest.cfg.XXXXXXXXXX) + if [ "${grub_scan_disk}" = "ahci" ]; then + sed \ + 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ahci\"/' \ + "${grubcfg}" > "${tmpgrubcfg}" + sed \ + 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ahci\"/' \ + "${grubtestcfg}" > "${tmpgrubtestcfg}" + elif [ "${grub_scan_disk}" = "ata" ]; then + sed \ + 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ata\"/' \ + "${grubcfg}" > "${tmpgrubcfg}" + sed \ + 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ata\"/' \ + "${grubtestcfg}" > "${tmpgrubtestcfg}" + else + cp "${grubcfg}" "${tmpgrubcfg}" + cp "${grubtestcfg}" "${tmpgrubtestcfg}" + fi + + "${cbfstool}" "${tmprom}" add -f "${tmpgrubcfg}" -n grub.cfg -t raw \ + || exit 1 + "${cbfstool}" "${tmprom}" add -f "${tmpgrubtestcfg}" -n grubtest.cfg \ + -t raw || exit 1 + rm -f "${tmpgrubcfg}" "${tmpgrubtestcfg}" + + backgroundfile="background1280x800.png" + if [ "${board}" = "x60" ] || [ "${board}" = "t60_intelgpu" ]; then + # TODO: don't hardcode this. do it in board.cfg per board + backgroundfile="background1024x768.png" + fi + backgroundfile="resources/grub/background/${backgroundfile}" + "${cbfstool}" "${tmprom}" add -f ${backgroundfile} -n background.png \ + -t raw || exit 1 + + printf "%s\n" "${tmprom}" +} + +# make a rom in /tmp/ and then print the path of that ROM +mkUbootRom() +{ + target_cbrom="${1}" # rom to insert u-boot in. it won't be touched + # (a tmpfile will be made instead) + target_uboot_cbfs_path="${2}" # e.g. fallback/payload + target_uboot_config="${3}" + cbfstool_path="${4}" + + if [ "${target_uboot_config}" = "default" ]; then + target_ubdir="payload/u-boot/${board}" + else + target_ubdir="payload/u-boot/${board}/${target_uboot_config}" + fi + + if [ -f "${target_ubdir}/u-boot.elf" ]; then + target_ubootelf="${target_ubdir}/u-boot.elf" + elif [ -f "${target_ubdir}/u-boot" ]; then + target_ubootelf="${target_ubdir}/u-boot" + fi + + tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) + + cp "${target_cbrom}" "${tmprom}" + "${cbfstool}" "${tmprom}" add-payload -f "${target_ubootelf}" \ + -n ${target_uboot_cbfs_path} -c lzma || exit 1 + + printf "%s\n" "${tmprom}" +} + # it is assumed that no other work will be done on the ROM # after calling this function. therefore this function is "final" moverom() @@ -394,291 +743,4 @@ moverom() fi } -# expected: configs must not specify a payload -mkCoreboot() -{ - cbdir="${1}" # eg. coreboot/default - _cbcfg="${2}" # eg. ${cbcfgdir}/e6400nvidia_4mb/config/normal - if [ ! -f "${_cbcfg}" ]; then - printf "\nmkCoreboot: coreboot config '%s' does not exist. " \ - ${_cbcfg} - printf "Skipping build.\n" - return 0 - fi - printf "%s-%s\n" "$(cat projectname)" "$(cat version)" \ - > "${cbdir}/.coreboot-version" - ( - if [ -f "${cbfstool}" ]; then - mv "${cbfstool}" "${cbdir}/cbfstool" - fi - - cd "${cbdir}" - make distclean - cd - - - if [ -f "${cbdir}/cbfstool" ]; then - mv "${cbdir}/cbfstool" "${cbfstool}" - fi - ) - cp "${_cbcfg}" "${cbdir}"/.config - ./build module cbutils ${cbdir#coreboot/} || exit 1 - ( - cd "${cbdir}" - make -j$(nproc) - ) -} - -# make a rom in /tmp/ and then print the path of that ROM -mkSeabiosRom() -{ - target_cbrom="${1}" # rom to insert seabios in. will not be touched - # (a tmpfile will be made instead) - target_seabios_cbfs_path="${2}" # e.g. fallback/payload - target_initmode="${3}" # e.g. libgfxinit - - target_seabioself="payload/seabios/seabios_${target_initmode}.elf" - target_seavgabios_rom="payload/seabios/seavgabios.bin" - - tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) - - cp "${target_cbrom}" "${tmprom}" - - "${cbfstool}" "${tmprom}" add-payload -f "${target_seabioself}" \ - -n ${target_seabios_cbfs_path} -c lzma || exit 1 - "${cbfstool}" "${tmprom}" add-int -i 3000 -n etc/ps2-keyboard-spinup \ - || exit 1 - - if [ "${target_initmode}" = "normal" ] \ - || [ "${target_initmode}" = "libgfxinit" ]; then - "${cbfstool}" "${tmprom}" add-int -i 2 \ - -n etc/pci-optionrom-exec || exit 1 - elif [ "${target_initmode}" = "vgarom" ]; then # coreboot executes it - "${cbfstool}" "${tmprom}" add-int -i 0 \ - -n etc/pci-optionrom-exec || exit 1 - fi # for undefined modes, don't add this integer. use SeaBIOS defaults - - "${cbfstool}" "${tmprom}" add-int -i 0 -n etc/optionroms-checksum \ - || exit 1 - - if [ "${target_initmode}" = "libgfxinit" ]; then - "${cbfstool}" "${tmprom}" add -f "${target_seavgabios_rom}" \ - -n vgaroms/seavgabios.bin -t raw || exit 1 - fi - - printf "%s\n" "${tmprom}" -} - -# make a rom in /tmp/ and then print the path of that ROM -mkUbootRom() -{ - target_cbrom="${1}" # rom to insert u-boot in. it won't be touched - # (a tmpfile will be made instead) - target_uboot_cbfs_path="${2}" # e.g. fallback/payload - target_uboot_config="${3}" - cbfstool_path="${4}" - - if [ "${target_uboot_config}" = "default" ]; then - target_ubdir="payload/u-boot/${board}" - else - target_ubdir="payload/u-boot/${board}/${target_uboot_config}" - fi - - if [ -f "${target_ubdir}/u-boot.elf" ]; then - target_ubootelf="${target_ubdir}/u-boot.elf" - elif [ -f "${target_ubdir}/u-boot" ]; then - target_ubootelf="${target_ubdir}/u-boot" - fi - - tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) - - cp "${target_cbrom}" "${tmprom}" - "${cbfstool}" "${tmprom}" add-payload -f "${target_ubootelf}" \ - -n ${target_uboot_cbfs_path} -c lzma || exit 1 - - printf "%s\n" "${tmprom}" -} - -# make a rom in /tmp/ and then print the path of that ROM -mkGrubRom() -{ - target_keymap="${1}" - target_cbrom="${2}" - target_grubelf_cbfs_path="${3}" # e.g. fallback/payload - - grubelf="payload/grub/grub_${target_keymap}.elf" - grubcfg="payload/grub/grub_${target_keymap}.cfg" - grubtestcfg="payload/grub/grub_${target_keymap}_test.cfg" - - tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) || exit 1 - cp "${target_cbrom}" "${tmprom}" || exit 1 - - "${cbfstool}" "${tmprom}" add-payload -f "${grubelf}" \ - -n ${target_grubelf_cbfs_path} -c lzma || exit 1 - - tmpgrubcfg=$(mktemp -t grub.cfg.XXXXXXXXXX) - tmpgrubtestcfg=$(mktemp -t grubtest.cfg.XXXXXXXXXX) - if [ "${grub_scan_disk}" = "ahci" ]; then - sed \ - 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ahci\"/' \ - "${grubcfg}" > "${tmpgrubcfg}" - sed \ - 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ahci\"/' \ - "${grubtestcfg}" > "${tmpgrubtestcfg}" - elif [ "${grub_scan_disk}" = "ata" ]; then - sed \ - 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ata\"/' \ - "${grubcfg}" > "${tmpgrubcfg}" - sed \ - 's/set\ grub_scan_disk=\"both\"/set\ grub_scan_disk=\"ata\"/' \ - "${grubtestcfg}" > "${tmpgrubtestcfg}" - else - cp "${grubcfg}" "${tmpgrubcfg}" - cp "${grubtestcfg}" "${tmpgrubtestcfg}" - fi - - "${cbfstool}" "${tmprom}" add -f "${tmpgrubcfg}" -n grub.cfg -t raw \ - || exit 1 - "${cbfstool}" "${tmprom}" add -f "${tmpgrubtestcfg}" -n grubtest.cfg \ - -t raw || exit 1 - rm -f "${tmpgrubcfg}" "${tmpgrubtestcfg}" - - backgroundfile="background1280x800.png" - if [ "${board}" = "x60" ] || [ "${board}" = "t60_intelgpu" ]; then - # TODO: don't hardcode this. do it in board.cfg per board - backgroundfile="background1024x768.png" - fi - backgroundfile="resources/grub/background/${backgroundfile}" - "${cbfstool}" "${tmprom}" add -f ${backgroundfile} -n background.png \ - -t raw || exit 1 - - printf "%s\n" "${tmprom}" -} - -# Make separate ROM images with GRUB payload, for each supported keymap -mkRomsWithGrub() -{ - tmprompath="${1}" - initmode="${2}" - displaymode="${3}" - firstpayloadname="${4}" # allow values: grub, seabios, seabios_wgrub - - x=${tmprompath} - y=${initmode} - if [ "${payload_grub_wseabios}" = "y" ] \ - && [ "${firstpayloadname}" = "grub" ]; then - mv "$(mkSeabiosRom "${x}" "seabios.elf" "${y}")" \ - "${tmprompath}" - elif [ "${payload_seabios_wgrub}" ] \ - && [ "${firstpayloadname}" != "grub" ]; then - mv "$(mkSeabiosRom "${x}" "fallback/payload" "${y}")" \ - "${tmprompath}" - fi - - keymaps="" - if [ -z ${keyboard_layouts} ]; then - for kmapfile in "${kmapdir}"/*; do - keymaps="${keymaps} ${kmapfile}" - done - else - for keymapname in ${keyboard_layouts}; do - keymaps="${keymaps} ${kmapdir}/${keymapname}.gkb" - done - fi - for keymapfile in ${keymaps}; do - if [ ! -f "${keymapfile}" ]; then - continue - fi - - keymap="${keymapfile##*/}" - keymap="${keymap%.gkb}" - - grub_path_in_cbfs="fallback/payload" - if [ "${firstpayloadname}" != "grub" ]; then - grub_path_in_cbfs="img/grub2" - fi - - # evil bofh rfc 2646 compliance hack - x=${keymap} - y=${tmprompath} - z=${grub_path_in_cbfs} - tmpgrubrom="$(mkGrubRom "${x}" "${y}" "${z}")" - - _newrom="${romdir}/${firstpayloadname}_${board}_${initmode}_" - if [ "${initmode}" = "normal" ]; then - _newrom="${_newrom}${keymap}.rom" - else - _newrom="${_newrom}${displaymode}_${keymap}.rom" - fi - moverom "${tmpgrubrom}" "${_newrom}" "${romtype}" - rm -f "${tmpgrubrom}" - done -} - -# Main ROM building function. This calls all other functions -mkRoms() -{ - _cbcfg="${1}" - displaymode="${2}" - initmode="${3}" - - if [ ! -f "${_cbcfg}" ]; then - printf "'%s' does not exist. Skipping build for %s %s %s\n" \ - ${_cbcfg} ${board} \ - ${displaymode} ${initmode} - return 0 - fi - - mkCoreboot "${cbdir}" "${_cbcfg}" - - if [ "${displaymode}" = "txtmode" ] \ - && [ "${payload_memtest}" = "y" ]; then - "${cbfstool}" "${corebootrom}" add-payload \ - -f memtest86plus/memtest -n img/memtest \ - -c lzma || exit 1 - fi - - if [ "${payload_seabios}" = "y" ]; then - if [ "${payload_seabios_wgrub}" = "n" ]; then - x=${corebootrom} - y=${initmode} - t=$(mkSeabiosRom "$x" "fallback/payload" "$y") - - _newrom="${romdir}/seabios_${board}_${initmode}.rom" - if [ "${initmode}" != "normal" ]; then - _newrom="${_newrom%.rom}_${displaymode}.rom" - fi - - moverom "${t}" "${_newrom}" "${romtype}" - rm -f "${t}" - else - tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) - cp "${corebootrom}" "${tmprom}" - mkRomsWithGrub "${tmprom}" "${initmode}" \ - "${displaymode}" "seabios_withgrub" - rm -f "${tmprom}" - fi - fi - - if [ "${payload_grub}" = "y" ]; then - mkRomsWithGrub "${corebootrom}" "${initmode}" \ - "${displaymode}" "grub" - fi - - if [ "${payload_uboot}" = "y" ]; then - x=${corebootrom} - y=${uboot_config} - z=${cbfstool} - tmpubootrom="$(mkUbootRom "$x" "fallback/payload" "$y" "$z")" - if [ "${initmode}" = "normal" ]; then - _newrom="${romdir}/uboot_payload_${board}_" - _newrom="${_newrom}${initmode}.rom" - else - _newrom="${romdir}/uboot_payload_${board}_" - _newrom="${_newrom}${initmode}_${displaymode}.rom" - fi - moverom "${tmpubootrom}" "${_newrom}" "${romtype}" - rm -f "${tmpubootrom}" - fi -} - main $@ From 3bd82b7679ae9af99caf4da1a81e4fde85f56a42 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 00:13:54 +0100 Subject: [PATCH 0044/2290] build/boot/roms: reduced code indentation --- resources/scripts/build/boot/roms | 78 +++++------ resources/scripts/build/boot/roms_helper | 161 ++++++++++++----------- 2 files changed, 123 insertions(+), 116 deletions(-) diff --git a/resources/scripts/build/boot/roms b/resources/scripts/build/boot/roms index 92bcc4c4..f0398273 100755 --- a/resources/scripts/build/boot/roms +++ b/resources/scripts/build/boot/roms @@ -36,53 +36,53 @@ firstoption="${1}" main() { - if [ $# -gt 0 ]; then - if [ "${firstoption}" = "help" ]; then - usage - exit 0 - fi - if [ "${firstoption}" = "list" ]; then - listboards - exit 0 - fi + if [ $# -lt 1 ]; then + usage + exit 1 + fi - while [ $# -gt 0 ]; do - case ${1} in - -d) - opts="${opts} -d ${2}" - shift ;; - -p) - opts="${opts} -p ${2}" - shift ;; - -k) - opts="${opts} -k ${2}" - shift ;; - *) - boards="${boards} ${1} " ;; - esac - shift - done + if [ "${firstoption}" = "help" ]; then + usage + exit 0 + fi + if [ "${firstoption}" = "list" ]; then + listboards + exit 0 + fi + + while [ $# -gt 0 ]; do + case ${1} in + -d) + opts="${opts} -d ${2}" + shift ;; + -p) + opts="${opts} -p ${2}" + shift ;; + -k) + opts="${opts} -k ${2}" + shift ;; + *) + boards="${boards} ${1} " ;; + esac + shift + done if [ -z ${opts+x} ]; then opts="" fi - printf "Building %s ROM images\n" "${projectname}" + printf "Building %s ROM images\n" "${projectname}" - if [ "${firstoption}" = "all" ]; then - for boardname in $(listboards); do - buildrom "${boardname}" \ - || die "build/roms: error" - done - else - for board in ${boards}; do - buildrom "${board}" \ - || die "build/roms: error" - done - fi + if [ "${firstoption}" = "all" ]; then + for boardname in $(listboards); do + buildrom "${boardname}" \ + || die "build/roms: error" + done else - usage - exit 1 + for board in ${boards}; do + buildrom "${board}" \ + || die "build/roms: error" + done fi printf "\n\nDone! Your ROMs are in bin/\n\n" diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 92fc2e4a..d1a80335 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -180,19 +180,21 @@ load_config() load_config_overrides() { # Override all payload directives with cmdline args - if [ ! -z ${payloads} ]; then - echo "setting payloads $payloads" - payload_grub="n" - payload_grub_withseabios="n" # seabios chainloaded from grub - payload_seabios="n" - payload_seabios_withgrub="n" # grub from SeaBIOS menu - payload_uboot="n" - payload_memtest="n" + if [ -z ${payloads} ]; then + return 0 + fi - for payload in ${payloads} ; do - eval "payload_${payload}=y" - done - fi + echo "setting payloads $payloads" + payload_grub="n" + payload_grub_withseabios="n" # seabios chainloaded from grub + payload_seabios="n" + payload_seabios_withgrub="n" # grub from SeaBIOS menu + payload_uboot="n" + payload_memtest="n" + + for payload in ${payloads} ; do + eval "payload_${payload}=y" + done } die_if_cbconfig_and_nopayload() @@ -201,17 +203,20 @@ die_if_cbconfig_and_nopayload() # defined in the lbmk config, exit with error # if no configs exist, this won't fail. this way, cbtrees # like "default" can exist which just contain patches - if [ "${payload_grub}" != "y" ] && [ "${payload_seabios}" != "y" ] \ - && [ "${payload_uboot}" != "y" ]; then - for configfile in "${boardcfgdir}/config/"*; do - if [ ! -e "${configfile}" ]; then - continue - fi - printf "build/roms %s: Payload undefined. Exiting.\n" \ - ${board} - exit 1 - done + + if [ "${payload_grub}" = "y" ] || [ "${payload_seabios}" = "y" ] \ + || [ "${payload_uboot}" = "y" ]; then + return 0 fi + + for configfile in "${boardcfgdir}/config/"*; do + if [ ! -e "${configfile}" ]; then + continue + fi + printf "build/roms %s: Payload undefined. Exiting.\n" \ + ${board} + exit 1 + done } build_dependencies() @@ -282,72 +287,74 @@ build_dependency_seabios() ./build payload seabios fi fi - if [ "${payload_memtest}" = "y" ]; then - if [ ! -f "memtest86plus/memtest" ]; then - ./build module memtest86plus - fi + if [ "${payload_memtest}" = "y" ] && [ ! -f "memtest86plus/memtest" ] + then + ./build module memtest86plus fi } build_dependency_grub() { - if [ "${payload_grub}" = "y" ] \ - || [ "${payload_seabios_withgrub}" = "y" ] - then - if [ -f "payload/grub/grub_usqwerty.cfg" ]; then - sha1cmd="sha1sum resources/grub/config/grub.cfg" - grubrefchecksum="$(${sha1cmd} | awk '{print $1}')" - - sha1cmd="sha1sum payload/grub/grub_usqwerty.cfg" - grubsha1="$(${sha1cmd} | awk '{print $1}')" - - if [ "${grubrefchecksum}" != "${grubsha1}" ]; then - rm -Rf payload/grub/ - printf "GRUB change detected. Rebuilding:\n" - fi - else - printf "GRUB payloads needed. Building:\n" - rm -Rf payload/grub/ # just in case - fi - for keymapfile in ${kmapdir}/*; do - if [ ! -f "${keymapfile}" ]; then - continue - fi - - keymap="${keymapfile##*/}" - keymap="${keymap%.gkb}" - - grubelf="payload/grub/grub_${keymap}.elf" - grubcfg="payload/grub/grub_${keymap}.cfg" - grubtestcfg="payload/grub/grub_${keymap}_test.cfg" - - if [ ! -f "${grubelf}" ] || [ ! -f "${grubcfg}" ] || \ - [ ! -f "${grubtestcfg}" ]; then - ./build payload grub - fi - done + if [ "${payload_grub}" != "y" ] \ + && [ "${payload_seabios_withgrub}" != "y" ]; then + return 0 fi + + if [ -f "payload/grub/grub_usqwerty.cfg" ]; then + sha1cmd="sha1sum resources/grub/config/grub.cfg" + grubrefchecksum="$(${sha1cmd} | awk '{print $1}')" + + sha1cmd="sha1sum payload/grub/grub_usqwerty.cfg" + grubsha1="$(${sha1cmd} | awk '{print $1}')" + + if [ "${grubrefchecksum}" != "${grubsha1}" ]; then + rm -Rf payload/grub/ + printf "GRUB change detected. Rebuilding:\n" + fi + else + printf "GRUB payloads needed. Building:\n" + rm -Rf payload/grub/ # just in case + fi + for keymapfile in ${kmapdir}/*; do + if [ ! -f "${keymapfile}" ]; then + continue + fi + + keymap="${keymapfile##*/}" + keymap="${keymap%.gkb}" + + grubelf="payload/grub/grub_${keymap}.elf" + grubcfg="payload/grub/grub_${keymap}.cfg" + grubtestcfg="payload/grub/grub_${keymap}_test.cfg" + + if [ ! -f "${grubelf}" ] || [ ! -f "${grubcfg}" ] || \ + [ ! -f "${grubtestcfg}" ]; then + ./build payload grub + fi + done } build_dependency_uboot() { - if [ "${payload_uboot}" = "y" ]; then - ubdir="" - if [ "${uboot_config}" = "default" ]; then - ubdir="payload/u-boot/${board}" - else - ubdir="payload/u-boot/${board}/${uboot_config}" - fi + if [ "${payload_uboot}" != "y" ]; then + return 0 + fi - if [ -f "${ubdir}/u-boot.elf" ]; then - ubootelf="${ubdir}/u-boot.elf" - elif [ -f "${ubdir}/u-boot" ]; then - ubootelf="${ubdir}/u-boot" - else - printf "U-Boot needed. Building:\n" - rm -Rf "payload/u-boot/${board}" # just in case - ./build payload u-boot "${board}" - fi + ubdir="" + if [ "${uboot_config}" = "default" ]; then + ubdir="payload/u-boot/${board}" + else + ubdir="payload/u-boot/${board}/${uboot_config}" + fi + + if [ -f "${ubdir}/u-boot.elf" ]; then + ubootelf="${ubdir}/u-boot.elf" + elif [ -f "${ubdir}/u-boot" ]; then + ubootelf="${ubdir}/u-boot" + else + printf "U-Boot needed. Building:\n" + rm -Rf "payload/u-boot/${board}" # just in case + ./build payload u-boot "${board}" fi } From 5811e53e828504c0cdf6583d6d2dd1e82585b15d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 01:07:53 +0100 Subject: [PATCH 0045/2290] build/boot/roms: remove unused legacy code this cuttype is no longer used lbmk creates truncated me setups now, on ifd platforms --- resources/scripts/build/boot/roms_helper | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index d1a80335..0c0b16eb 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -711,13 +711,7 @@ moverom() printf "\nCreating new ROM image: %s\n" "${_newrom}" - if [ "${cuttype}" = "4MiB IFD BIOS region" ]; then - dd if=${rompath} of=${_newrom} bs=1 \ - skip=$(($(stat -c %s ${rompath}) - 0x400000)) \ - count=4194304 - else - cp ${rompath} ${_newrom} - fi + cp ${rompath} ${_newrom} for romsize in 4 8 16; do ifdgbe="descriptors/ich9m/ich9fdgbe_${romsize}m.bin" From 1e9ed989d32877103babbdc273e40a42a72ef7fb Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 01:27:00 +0100 Subject: [PATCH 0046/2290] build/boot/roms: simplify moverom() --- resources/scripts/build/boot/roms_helper | 39 ++++++++++++------------ 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 0c0b16eb..1a5c84e2 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -713,26 +713,6 @@ moverom() cp ${rompath} ${_newrom} - for romsize in 4 8 16; do - ifdgbe="descriptors/ich9m/ich9fdgbe_${romsize}m.bin" - if [ "${cuttype}" = "${romsize}MiB ICH9 IFD NOR flash" ]; then - if [ ! -f "${ifdgbe}" ]; then - ./build descriptors ich9m - fi - dd if=${ifdgbe} of=${_newrom} bs=1 count=12k \ - conv=notrunc - fi - cmpstr="${romsize}MiB ICH9 IFD NOGBE NOR flash" - ifdgbe="descriptors/ich9m/ich9fdnogbe_${romsize}m.bin" - if [ "${cuttype}" = "${cmpstr}" ]; then - if [ ! -f "${ifdgbe}" ]; then - ./build descriptors ich9m - fi - dd if=${ifdgbe} of=${_newrom} bs=1 count=4k \ - conv=notrunc - fi - done - if [ "${cuttype}" = "i945 laptop" ]; then dd if=${_newrom} of=top64k.bin bs=1 \ skip=$(($(stat -c %s ${_newrom}) - 0x10000)) \ @@ -741,7 +721,26 @@ moverom() seek=$(($(stat -c %s ${_newrom}) - 0x20000)) \ count=64k conv=notrunc rm -f top64k.bin + return 0 fi + + for romsize in 4 8 16; do + for x in "IFD" "IFD NOGBE"; do + if [ "${romsize}MiB ICH9 ${x} NOR flash" \ + != "${cuttype}" ]; then + continue + fi + c=4 + ifdgbe="descriptors/ich9m/ich9fdnogbe_${romsize}m.bin" + if [ "${x}" = "IFD" ]; then + c=12 + ifdgbe="descriptors/ich9m/ich9fdgbe_${romsize}m.bin" + fi + ./build descriptors ich9m + dd if=${ifdgbe} of=${_newrom} bs=1 count=${c}k \ + conv=notrunc + done + done } main $@ From 6a4ce66f6ebee362b5207fb134582d3aaedd0eab Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 01:34:29 +0100 Subject: [PATCH 0047/2290] build/boot/roms: don't run ich9gen twice --- resources/scripts/build/boot/roms_helper | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 1a5c84e2..852964d0 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -736,7 +736,9 @@ moverom() c=12 ifdgbe="descriptors/ich9m/ich9fdgbe_${romsize}m.bin" fi - ./build descriptors ich9m + if [ ! -f "${ifdgbe}" ]; then + ./build descriptors ich9m + fi dd if=${ifdgbe} of=${_newrom} bs=1 count=${c}k \ conv=notrunc done From 65dfdd56daea5f40f34873bc5eff0ded618620bc Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 01:38:59 +0100 Subject: [PATCH 0048/2290] build/boot/roms: use fast dd command for ich9m ifd bs 12k and count 1, rather than bs 1 and count 12k --- resources/scripts/build/boot/roms_helper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 852964d0..ad2ada26 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -739,7 +739,7 @@ moverom() if [ ! -f "${ifdgbe}" ]; then ./build descriptors ich9m fi - dd if=${ifdgbe} of=${_newrom} bs=1 count=${c}k \ + dd if=${ifdgbe} of=${_newrom} bs=${c}k count=1 \ conv=notrunc done done From 39c143989c5ade350cd3528530dab7fa1148ece2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 02:21:57 +0100 Subject: [PATCH 0049/2290] build/boot/roms: simplify build_rom_images() --- resources/scripts/build/boot/roms_helper | 52 ++++++++++-------------- 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index ad2ada26..35f9eec7 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -363,37 +363,29 @@ build_rom_images() [ -d "${romdir}/" ] || mkdir -p "${romdir}/" rm -f "${romdir}"/* - if [ -z ${displaymodes} ]; then - initmode="libgfxinit" - for displaymode in corebootfb txtmode; do - _cbcfg="${boardcfgdir}/config/${initmode}" - _cbcfg="${_cbcfg}_${displaymode}" - mkRoms "${_cbcfg}" "${displaymode}" "${initmode}" + for initmode in "normal" "vgarom" "libgfxinit"; do + hmode="vesafb" + if [ "${initmode}" != "vgarom" ]; then + hmode="corebootfb" + fi + modes="${hmode} txtmode" + if [ ! -z ${displaymodes} ]; then + modes="${displaymodes}" + fi + echo "MODES: ${modes}" + for displaymode in ${modes}; do + if [ "${initmode}" = "normal" ] \ + && [ "$displaymode" != "txtmode" ]; then + continue + fi + cbcfg="${boardcfgdir}/config/${initmode}" + cbcfg="${cbcfg}_${displaymode}" + if [ "${initmode}" = "normal" ]; then + cbcfg="${cbcfg%_*}" + fi + mkRoms "${cbcfg}" "${displaymode}" "${initmode}" done - - initmode="vgarom" - for displaymode in vesafb txtmode; do - _cbcfg="${boardcfgdir}/config/${initmode}" - _cbcfg="${_cbcfg}_${displaymode}" - mkRoms "${_cbcfg}" "${displaymode}" "${initmode}" - done - - initmode="normal" - displaymode="txtmode" - _cbcfg="${boardcfgdir}/config/${initmode}" - mkRoms "${_cbcfg}" "${displaymode}" "${initmode}" - - else - echo "special displaymode defined as $displaymodes" - for initmode in vgarom libgfxinit; do - for displaymode in ${displaymodes}; do - _cbcfg="${boardcfgdir}/config/" - _cbcfg="${_cbcfg}${initmode}_${displaymode}" - mkRoms "${_cbcfg}" "${displaymode}" \ - "${initmode}" - done - done - fi + done ( cd "${cbdir}" From 834be77c1d2c1e4271f534262380b68db369c929 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 02:36:09 +0100 Subject: [PATCH 0050/2290] build/boot/roms: remove errant debug line i added this in the last revision it was put there to debug something that i fixed before pushing --- resources/scripts/build/boot/roms_helper | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 35f9eec7..1eb90a8a 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -372,7 +372,6 @@ build_rom_images() if [ ! -z ${displaymodes} ]; then modes="${displaymodes}" fi - echo "MODES: ${modes}" for displaymode in ${modes}; do if [ "${initmode}" = "normal" ] \ && [ "$displaymode" != "txtmode" ]; then From d8a8a1c62269b09f1ffc8cfd1ee8f3ff6b8f1724 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 02:52:42 +0100 Subject: [PATCH 0051/2290] build/boot/roms: don't use subshells frivilously use make -BC instead of cd --- resources/scripts/build/boot/roms_helper | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 1eb90a8a..7e60ee6a 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -386,10 +386,7 @@ build_rom_images() done done - ( - cd "${cbdir}" - make distclean # TODO: do make clean instead (avoid re-building utils) - ) + make distclean -BC "${cbdir}" } # Main ROM building function. This calls all other functions @@ -481,26 +478,19 @@ mkCoreboot() printf "%s-%s\n" "$(cat projectname)" "$(cat version)" \ > "${cbdir}/.coreboot-version" - ( if [ -f "${cbfstool}" ]; then mv "${cbfstool}" "${cbdir}/cbfstool" fi - cd "${cbdir}" - make distclean - cd - + make clean -BC "${cbdir}" if [ -f "${cbdir}/cbfstool" ]; then mv "${cbdir}/cbfstool" "${cbfstool}" fi - ) cp "${_cbcfg}" "${cbdir}"/.config ./build module cbutils ${cbdir#coreboot/} || exit 1 - ( - cd "${cbdir}" - make -j$(nproc) - ) + make -j$(nproc) -BC "${cbdir}" } # make a rom in /tmp/ and then print the path of that ROM From fdc9e4448f7f440888928cc3e7b965c0572dd91b Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Fri, 12 May 2023 20:06:36 -0600 Subject: [PATCH 0052/2290] Remove warning for coreboot images build without a payload I added this in upstream to prevent people from accidentally flashing roms without a payload resulting in a no boot situation, but in libreboot lbmk handles the payload and thus this warning always comes up. This has caused confusion and concern so just patch it out. --- ...or-coreboot-images-built-without-a-p.patch | 38 +++++++++++++++++++ ...or-coreboot-images-built-without-a-p.patch | 38 +++++++++++++++++++ ...or-coreboot-images-built-without-a-p.patch | 38 +++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 resources/coreboot/cros/patches/0002-Remove-warning-for-coreboot-images-built-without-a-p.patch create mode 100644 resources/coreboot/default/patches/0022-Remove-warning-for-coreboot-images-built-without-a-p.patch create mode 100644 resources/coreboot/haswell/patches/0026-Remove-warning-for-coreboot-images-built-without-a-p.patch diff --git a/resources/coreboot/cros/patches/0002-Remove-warning-for-coreboot-images-built-without-a-p.patch b/resources/coreboot/cros/patches/0002-Remove-warning-for-coreboot-images-built-without-a-p.patch new file mode 100644 index 00000000..547c6392 --- /dev/null +++ b/resources/coreboot/cros/patches/0002-Remove-warning-for-coreboot-images-built-without-a-p.patch @@ -0,0 +1,38 @@ +From 1ce4f118b024a6367382b46016781f30fe622e3e Mon Sep 17 00:00:00 2001 +From: Nicholas Chin +Date: Fri, 12 May 2023 19:55:15 -0600 +Subject: [PATCH] Remove warning for coreboot images built without a payload + +I added this in upstream to prevent people from accidentally flashing +roms without a payload resulting in a no boot situation, but in +libreboot lbmk handles the payload and thus this warning always comes +up. This has caused confusion and concern so just patch it out. +--- + payloads/Makefile.inc | 13 +------------ + 1 file changed, 1 insertion(+), 12 deletions(-) + +diff --git a/payloads/Makefile.inc b/payloads/Makefile.inc +index e735443a76..4f1692a873 100644 +--- a/payloads/Makefile.inc ++++ b/payloads/Makefile.inc +@@ -49,16 +49,5 @@ distclean-payloads: + print-repo-info-payloads: + -$(foreach payload, $(PAYLOADS_LIST), $(MAKE) -C $(payload) print-repo-info 2>/dev/null; ) + +-ifeq ($(CONFIG_PAYLOAD_NONE),y) +-files_added:: warn_no_payload +-endif +- +-warn_no_payload: +- printf "\n\t** WARNING **\n" +- printf "coreboot has been built without a payload. Writing\n" +- printf "a coreboot image without a payload to your board's\n" +- printf "flash chip will result in a non-booting system. You\n" +- printf "can use cbfstool to add a payload to the image.\n\n" +- + .PHONY: force-payload coreinfo nvramcui +-.PHONY: clean-payloads distclean-payloads print-repo-info-payloads warn_no_payload ++.PHONY: clean-payloads distclean-payloads print-repo-info-payloads +-- +2.40.1 + diff --git a/resources/coreboot/default/patches/0022-Remove-warning-for-coreboot-images-built-without-a-p.patch b/resources/coreboot/default/patches/0022-Remove-warning-for-coreboot-images-built-without-a-p.patch new file mode 100644 index 00000000..547c6392 --- /dev/null +++ b/resources/coreboot/default/patches/0022-Remove-warning-for-coreboot-images-built-without-a-p.patch @@ -0,0 +1,38 @@ +From 1ce4f118b024a6367382b46016781f30fe622e3e Mon Sep 17 00:00:00 2001 +From: Nicholas Chin +Date: Fri, 12 May 2023 19:55:15 -0600 +Subject: [PATCH] Remove warning for coreboot images built without a payload + +I added this in upstream to prevent people from accidentally flashing +roms without a payload resulting in a no boot situation, but in +libreboot lbmk handles the payload and thus this warning always comes +up. This has caused confusion and concern so just patch it out. +--- + payloads/Makefile.inc | 13 +------------ + 1 file changed, 1 insertion(+), 12 deletions(-) + +diff --git a/payloads/Makefile.inc b/payloads/Makefile.inc +index e735443a76..4f1692a873 100644 +--- a/payloads/Makefile.inc ++++ b/payloads/Makefile.inc +@@ -49,16 +49,5 @@ distclean-payloads: + print-repo-info-payloads: + -$(foreach payload, $(PAYLOADS_LIST), $(MAKE) -C $(payload) print-repo-info 2>/dev/null; ) + +-ifeq ($(CONFIG_PAYLOAD_NONE),y) +-files_added:: warn_no_payload +-endif +- +-warn_no_payload: +- printf "\n\t** WARNING **\n" +- printf "coreboot has been built without a payload. Writing\n" +- printf "a coreboot image without a payload to your board's\n" +- printf "flash chip will result in a non-booting system. You\n" +- printf "can use cbfstool to add a payload to the image.\n\n" +- + .PHONY: force-payload coreinfo nvramcui +-.PHONY: clean-payloads distclean-payloads print-repo-info-payloads warn_no_payload ++.PHONY: clean-payloads distclean-payloads print-repo-info-payloads +-- +2.40.1 + diff --git a/resources/coreboot/haswell/patches/0026-Remove-warning-for-coreboot-images-built-without-a-p.patch b/resources/coreboot/haswell/patches/0026-Remove-warning-for-coreboot-images-built-without-a-p.patch new file mode 100644 index 00000000..547c6392 --- /dev/null +++ b/resources/coreboot/haswell/patches/0026-Remove-warning-for-coreboot-images-built-without-a-p.patch @@ -0,0 +1,38 @@ +From 1ce4f118b024a6367382b46016781f30fe622e3e Mon Sep 17 00:00:00 2001 +From: Nicholas Chin +Date: Fri, 12 May 2023 19:55:15 -0600 +Subject: [PATCH] Remove warning for coreboot images built without a payload + +I added this in upstream to prevent people from accidentally flashing +roms without a payload resulting in a no boot situation, but in +libreboot lbmk handles the payload and thus this warning always comes +up. This has caused confusion and concern so just patch it out. +--- + payloads/Makefile.inc | 13 +------------ + 1 file changed, 1 insertion(+), 12 deletions(-) + +diff --git a/payloads/Makefile.inc b/payloads/Makefile.inc +index e735443a76..4f1692a873 100644 +--- a/payloads/Makefile.inc ++++ b/payloads/Makefile.inc +@@ -49,16 +49,5 @@ distclean-payloads: + print-repo-info-payloads: + -$(foreach payload, $(PAYLOADS_LIST), $(MAKE) -C $(payload) print-repo-info 2>/dev/null; ) + +-ifeq ($(CONFIG_PAYLOAD_NONE),y) +-files_added:: warn_no_payload +-endif +- +-warn_no_payload: +- printf "\n\t** WARNING **\n" +- printf "coreboot has been built without a payload. Writing\n" +- printf "a coreboot image without a payload to your board's\n" +- printf "flash chip will result in a non-booting system. You\n" +- printf "can use cbfstool to add a payload to the image.\n\n" +- + .PHONY: force-payload coreinfo nvramcui +-.PHONY: clean-payloads distclean-payloads print-repo-info-payloads warn_no_payload ++.PHONY: clean-payloads distclean-payloads print-repo-info-payloads +-- +2.40.1 + From c8dfc3ccaadd4fce39dbc437880b7db8630110fd Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 03:06:55 +0100 Subject: [PATCH 0053/2290] build/build/roms: simplify mkCoreboot() arguments --- resources/scripts/build/boot/roms_helper | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 7e60ee6a..02d8f61f 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -404,7 +404,7 @@ mkRoms() fi # make coreboot ROM without a payload in it - mkCoreboot "${cbdir}" "${_cbcfg}" + mkCoreboot "${_cbcfg}" # now add payloads, per user config: @@ -465,8 +465,7 @@ mkRoms() # expected: configs must not specify a payload mkCoreboot() { - cbdir="${1}" # eg. coreboot/default - _cbcfg="${2}" # eg. resources/coreboot/e6400nvidia_4mb/config/normal + _cbcfg="${1}" # eg. resources/coreboot/e6400nvidia_4mb/config/normal if [ ! -f "${_cbcfg}" ]; then printf "\nmkCoreboot: coreboot config '%s' does not exist. " \ From 174d3af7a663c186811b99a6d2d903839ee022f1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 03:50:27 +0100 Subject: [PATCH 0054/2290] modify/seabios: cleaner coding style same as build/boot/roms --- resources/scripts/modify/seabios/configs | 72 +++++++++++------------- 1 file changed, 32 insertions(+), 40 deletions(-) diff --git a/resources/scripts/modify/seabios/configs b/resources/scripts/modify/seabios/configs index e05a46bf..614a4371 100755 --- a/resources/scripts/modify/seabios/configs +++ b/resources/scripts/modify/seabios/configs @@ -1,9 +1,8 @@ #!/usr/bin/env sh -# # helper script: modify coreboot configs (run make menuconfig) # -# Copyright (C) 2021 Leah Rowe +# Copyright (C) 2021, 2023 Leah Rowe # # 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 @@ -17,48 +16,41 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# - -# This script assumes that the working directory is the root -# of git or release archive [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e -printf "Updating seabios configs\n" +main() +{ + printf "Updating seabios configs\n" + download_seabios + modify_configs +} -if [ ! -d "seabios" ]; then - ./download seabios -fi +download_seabios() +{ + if [ ! -d "seabios" ]; then + ./download seabios + fi + if [ ! -d "seabios" ]; then + printf "error: Failed to download SeaBIOS. " + printf "Check internet connection?\n" + exit 1 + fi +} -if [ ! -d "seabios" ]; then - printf "error: Failed to download SeaBIOS. check internet connection?\n" - exit 1 -fi - -for config in resources/seabios/config/*; do - - if [ ! -f "${config}" ]; then continue; fi - - ( - cd seabios - make distclean - ) - - mv "${config}" seabios/.config - ( - cd seabios - make menuconfig - ) - - cp seabios/.config "${config}" - - ( - cd seabios - make distclean - ) - -done - -printf "\n\n" +modify_configs() +{ + for config in resources/seabios/config/*; do + if [ ! -f "${config}" ]; then + continue + fi + make distclean -BC seabios + mv "${config}" seabios/.config + make menuconfig -BC seabios + cp seabios/.config "${config}" + make distclean -BC seabios + done +} +main $@ From 71cac86634d9f8bc977d2503373944ad08e4e9df Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 04:09:06 +0100 Subject: [PATCH 0055/2290] modify/coreboot: cleaner coding style similar to the previous revision --- resources/scripts/modify/coreboot/configs | 120 ++++++++++------------ 1 file changed, 56 insertions(+), 64 deletions(-) diff --git a/resources/scripts/modify/coreboot/configs b/resources/scripts/modify/coreboot/configs index 434014c9..665ee091 100755 --- a/resources/scripts/modify/coreboot/configs +++ b/resources/scripts/modify/coreboot/configs @@ -1,83 +1,75 @@ #!/usr/bin/env sh -# # helper script: modify coreboot configs (run make menuconfig) # -# Copyright (C) 2021 Leah Rowe +# Copyright (C) 2021, 2023 Leah Rowe # Copyright (C) 2022 Ferass El Hafidi # -# 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 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. +# 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 . +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -# This script assumes that the working directory is the root -# of git or release archive - [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e -printf "Modifying coreboot configs\n" +main() +{ + printf "Modifying coreboot configs\n" + + if [ $# -gt 0 ]; then + for board in ${@}; do + modifyconf "${board}" + done + else + for board in resources/coreboot/*; do + if [ ! -d "${board}" ]; then + continue + fi + modifyconf "${board##*/}" + done + fi +} # Build ROM images for supported boards modifyconf() { board="$1" - if [ -f "resources/coreboot/${board}/board.cfg" ]; then - cbtree="undefined" - . "resources/coreboot/${board}/board.cfg" # source - if [ "${cbtree}" = "undefined" ]; then - return 0 - fi - if [ ! -d "coreboot/${cbtree}" ]; then - ./download coreboot ${cbtree} - fi - for cbcfg in resources/coreboot/${board}/config/*; do - if [ ! -f ${cbcfg} ]; then - continue - fi - ( - cd coreboot/${cbtree}/ - rm -f .config* - make distclean - ) - mv $cbcfg coreboot/${cbtree}/.config - ( - cd coreboot/${cbtree}/ - make menuconfig - ) - mv coreboot/${cbtree}/.config $cbcfg - rm -f coreboot/${cbtree}/.config* - ( - cd coreboot/${cbtree}/ - make distclean - ) - done - else - printf "\nmodify/config/coreboot: no board.cfg for: %s\n" "${board}" - fi + + if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then + printf "\nmodify/config/coreboot: no board.cfg for: %s\n" \ + "${board}" + fi + + cbtree="" + . "resources/coreboot/${board}/board.cfg" # source + + if [ -z ${cbtree} ]; then + return 0 + fi + cbdir="coreboot/${cbtree}" + if [ ! -d "${cbdir}" ]; then + ./download coreboot ${cbtree} + fi + + for cbcfg in resources/coreboot/${board}/config/*; do + if [ ! -f ${cbcfg} ]; then + continue + fi + make distclean -BC "${cbdir}" + mv "${cbcfg}" "${cbdir}/.config" + make menuconfig -BC "${cbdir}" + mv "${cbdir}/.config" "${cbcfg}" + make distclean -BC "${cbdir}" + done } -if [ $# -gt 0 ]; then - for board in "${@}"; do - modifyconf "${board}" - done -else - for board in resources/coreboot/*; do - if [ ! -d "${board}" ]; then - continue - fi - modifyconf "${board##*/}" - done -fi - -printf "\n\n" - +main $@ From f2e3176708b8df59b17574ee717ec59c6e18f9b5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 13 May 2023 04:22:34 +0100 Subject: [PATCH 0056/2290] modify/u-boot: cleaner coding style similar to the previous revision --- resources/scripts/modify/u-boot/configs | 124 +++++++++++------------- 1 file changed, 59 insertions(+), 65 deletions(-) diff --git a/resources/scripts/modify/u-boot/configs b/resources/scripts/modify/u-boot/configs index 60dfdd8f..9572a5b8 100755 --- a/resources/scripts/modify/u-boot/configs +++ b/resources/scripts/modify/u-boot/configs @@ -1,83 +1,77 @@ #!/usr/bin/env sh -# # helper script: modify U-Boot configs (run make menuconfig) # # Copyright (C) 2022 Alper Nebi Yasak # Copyright (C) 2022 Ferass El Hafidi +# Copyright (C) 2023 Leah Rowe # -# 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 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. +# 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 . -# - -# This script assumes that the working directory is the root -# of git or release archive +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e -printf "Modifying U-Boot configs\n" +main() +{ + printf "Modifying U-Boot configs\n" -# Build ROM images for supported boards -modifyconf() { - board="$1" - if [ -f "resources/u-boot/${board}/board.cfg" ]; then - ubtree="undefined" - . "resources/u-boot/${board}/board.cfg" # source - if [ "${ubtree}" = "undefined" ]; then - return 0 - fi - if [ ! -d "u-boot/${ubtree}" ]; then - ./download u-boot ${ubtree} - fi - for ubcfg in resources/u-boot/${board}/config/*; do - if [ ! -f ${ubcfg} ]; then - continue - fi - ( - cd u-boot/${ubtree}/ - rm -f .config* - make distclean - ) - mv $ubcfg u-boot/${ubtree}/.config - ( - cd u-boot/${ubtree}/ - make menuconfig - ) - mv u-boot/${ubtree}/.config $ubcfg - rm -f u-boot/${ubtree}/.config* - ( - cd u-boot/${ubtree}/ - make distclean - ) - done - else - printf "\nmodify/config/u-boot: no board.cfg for: %s\n" "${board}" - fi + if [ $# -gt 0 ]; then + for board in "${@}"; do + modifyconf "${board}" + done + else + for board in resources/u-boot/*; do + if [ ! -d "${board}" ]; then + continue + fi + modifyconf "${board##*/}" + done + fi } -if [ $# -gt 0 ]; then - for board in "${@}"; do - modifyconf "${board}" - done -else - for board in resources/u-boot/*; do - if [ ! -d "${board}" ]; then - continue - fi - modifyconf "${board##*/}" - done -fi +# Build ROM images for supported boards +modifyconf() +{ + board="$1" + if [ ! -f "resources/u-boot/${board}/board.cfg" ]; then + printf "\nmodify/config/u-boot: no board.cfg for: %s\n" \ + "${board}" + return 0 + fi -printf "\n\n" + ubtree="undefined" + . "resources/u-boot/${board}/board.cfg" # source + if [ "${ubtree}" = "undefined" ]; then + return 0 + fi + ubdir="u-boot/${ubtree}" + + if [ ! -d "${ubdir}" ]; then + ./download u-boot ${ubtree} + fi + + for ubcfg in resources/u-boot/${board}/config/*; do + if [ ! -f ${ubcfg} ]; then + continue + fi + make distclean -BC "${ubdir}" + mv "${ubcfg}" "${ubdir}/.config" + make menuconfig -BC "${ubdir}" + mv "${ubdir}/.config" "${ubcfg}" + make distclean -BC "${ubdir}" + done +} + +main $@ From ee0b200fbef5400bd2f225a248847de70f9d39b0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 05:42:59 +0100 Subject: [PATCH 0057/2290] blobutil/inject: massively improved coding style top-down function order, with specific functions for each type of blob. startup logic moved into main(), also split into smaller functions "write one program that does one thing well" blobutil is like that, and has this added philosophy: "write one function that does one thing well" during the course of this re-factoring, several bugs and issues were found, that are pre-existing. these will be corrected in follow-up revisions --- resources/scripts/blobs/inject | 457 ++++++++++++++++++++------------- 1 file changed, 281 insertions(+), 176 deletions(-) diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index 2e4e7a7c..3142355b 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -5,54 +5,107 @@ # SPDX-FileCopyrightText: 2023 Leah Rowe # SPDX-License-Identifier: GPL-3.0-only -Fail(){ - if [ ! -z ${@+x} ]; then - printf "\nERROR: ${@}\n" +archive="" +_filetype="" +rom="" +board="" +modifygbe="" +new_mac="" +release="" +releasearchive="" + +cbdir="coreboot/default" +cbcfgsdir="resources/coreboot" +ifdtool="${cbdir}/util/ifdtool/ifdtool" +cbfstool="${cbdir}/util/cbfstool/cbfstool" +nvmutil="util/nvmutil/nvm" +boarddir="" +pciromsdir="pciroms" + +CONFIG_HAVE_MRC="" +CONFIG_HAVE_ME_BIN="" +CONFIG_ME_BIN_PATH="" +CONFIG_KBC1126_FIRMWARE="" +CONFIG_KBC1126_FW1="" +CONFIG_KBC1126_FW1_OFFSET="" +CONFIG_KBC1126_FW2="" +CONFIG_KBC1126_FW2_OFFSET="" +CONFIG_VGA_BIOS_FILE="" +CONFIG_VGA_BIOS_ID="" +CONFIG_GBE_BIN_PATH="" + +main() +{ + if [ $# -lt 1 ]; then + fail "No options specified." + elif [ "${1}" = "listboards" ]; then + listboards + exit 0 fi - cat <<- EOF - USAGE: ./blobutil inject -r [/path/to/rom] -b [boardname] -m [macaddress] - Example: ./blobutil inject -r x230_12mb.rom -b x230_12mb + archive="${1}" + echo "TEST: $archive" - Adding a macadress to the gbe is optional. - If the [-m] parameter is left blank, the gbe will not be touched. - - Type './blobutil inject listboards' to get a list of valid boards - EOF - - exit 1 -} - -Modify_gbe(){ - rom=${1} - printf "changing mac address in gbe to ${new_mac}\n" - _gbe_location=${CONFIG_GBE_BIN_PATH#../../} - - if [ ! -f util/nvmutil/nvm ]; then - make -C util/nvmutil || Fail 'failed to build nvmutil' - fi - - _gbe_tmp=$(mktemp -t gbeXXXX.bin) - cp ${_gbe_location} ${_gbe_tmp} - ./util/nvmutil/nvm ${_gbe_tmp} setmac ${new_mac} || Fail 'failed to modify mac address\nmake sure the mac address in the correct format' - - ./coreboot/default/util/ifdtool/ifdtool -i GbE:${_gbe_tmp} ${rom} -O ${rom} || exit 1 - - rm ${_gbe_tmp} -} - -listboards() { - for boarddir in resources/coreboot/*; do - if [ ! -d "${boarddir}" ]; then continue; fi - board="${boarddir##resources/coreboot/}" - board="${board%/}" - printf '%s\n' "${board##*/}" + while getopts r:b:m: option + do + case "${option}" + in + r)rom=${OPTARG};; + b)board=${OPTARG};; + m) + modifygbe=true + new_mac=${OPTARG} + ;; + esac done + + check_board + build_dependencies + inject_blobs +} + +check_board() +{ + if ! check_release ${archive} ; then + if [ ! -f "${rom}" ]; then + fail "${rom} is not a valid path" + elif [ -z ${rom+x} ]; then + fail 'no rom specified' + elif [ -z ${board+x} ]; then + board=$(detect_board ${rom}) \ + || fail 'no board specified' + fi + else + release=true + releasearchive="${archive}" + board=$(detect_board ${archive}) \ + || fail 'Could not detect board type' + fi + + boarddir="${cbcfgsdir}/${board}" + if [ ! -d "${boarddir}" ]; then + fail "board ${board} not found" + fi +} + +check_release() +{ + if [ ! -f "${archive}" ]; then + return 1 + fi + + if [ "${archive##*.}" = "xz" ]; then + printf "%s\n" "Release archive ${archive} detected" + return 0 + else + return 1 + fi } # This function tries to determine the board from the filename of the rom. # It will only succeed if the filename is not changed from the build/download -Detect_board(){ +detect_board() +{ path=${1} filename=$(basename ${path}) case ${filename} in @@ -70,102 +123,69 @@ Detect_board(){ return 1 esac - if [ -d "resources/coreboot/${board}/" ]; then + if [ -d "${boarddir}/" ]; then printf '%s\n' "${board}" + return 0 else return 1 fi } -Patch(){ -rom="${1}" -set -- "resources/coreboot/${board}/config/*" -. ${1} 2>/dev/null -. "resources/coreboot/${board}/board.cfg" - - if [ "$CONFIG_HAVE_MRC" = "y" ]; then - printf 'adding mrc\n' - ./coreboot/default/util/cbfstool/cbfstool ${rom} add -f mrc/haswell/mrc.bin -n mrc.bin -t mrc -b 0x78fe00 || exit 1 +build_dependencies() +{ + if [ ! -d ${cbdir} ]; then + printf "downloading coreboot\n" + ./download coreboot default fi - if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then - _me_location=${CONFIG_ME_BIN_PATH#../../} - printf 'adding intel management engine\n' - ./coreboot/default/util/ifdtool/ifdtool -i me:${_me_location} ${rom} -O ${rom} || exit 1 + if [ ! -f "${ifdtool}" ]; then + printf "building ifdtool from coreboot\n" + ./build module cbutils default \ + || fail 'could not build ifdtool' fi - if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then - _ec1_location="${CONFIG_KBC1126_FW1#../../}" - _ec1_offset="${CONFIG_KBC1126_FW1_OFFSET}" - _ec2_location="${CONFIG_KBC1126_FW2#../../}" - _ec2_offset="${CONFIG_KBC1126_FW2_OFFSET}" - printf "adding hp kbc1126 ec firmware\n" - if [ "${_ec1_offset}" = "" ] || [ "${_ec1_offset}" = "" ]; - then - printf "EC offsets not declared for board: %s\n" \ - "${board}" - exit 1 - fi - if [ "${_ec1_location}" = "" ] || [ "${_ec2_location}" = "" ]; - then - printf "EC firmware path not declared for board: %s\n" \ - "${board}" - fi - if [ ! -f "${_ec1_location}" ] || [ ! -f "${_ec2_location}" ]; - then - printf "EC firmware not downloaded for board: %s\n" \ - "${board}" - exit 1 - fi - ./coreboot/default/util/cbfstool/cbfstool "${rom}" add -f ${_ec1_location} -n ecfw1.bin -b ${_ec1_offset} -t raw || exit 1 - ./coreboot/default/util/cbfstool/cbfstool "${rom}" add -f ${_ec2_location} -n ecfw2.bin -b ${_ec2_offset} -t raw || exit 1 + if [ ! -f "${cbfstool}" ]; then + printf "building cbfstool from coreboot\n" + ./build module cbutils default \ + || fail 'could not build cbfstool' fi - if [ "${CONFIG_VGA_BIOS_FILE}" != "" ] \ - && [ "${CONFIG_VGA_BIOS_ID}" != "" ]; then - _vga_location="${CONFIG_VGA_BIOS_FILE#../../}" - _vga_dir="${_vga_location%/*}" - _vga_filename="${_vga_location##*/}" - printf "adding pci option rom\n" - if [ "${_vga_dir}" != "pciroms" ]; then - printf "Invalid PCI ROM directory: %s\n" ${_vga_dir} - exit 1 - fi - if [ ! -f "${_vga_location}" ]; then - printf "No such file exists: %s\n" ${_vga_location} - exit 1 - fi - ./coreboot/default/util/cbfstool/cbfstool ${rom} \ - add -f "${_vga_location}" \ - -n "pci${CONFIG_VGA_BIOS_ID}.rom" \ - -t optionrom || exit 1 - fi + ./blobutil download ${board} || \ + fail "Could not download blobs for ${board}" +} - if [ "${modifygbe}" = "true" ] && ! [ "${release}" = "true" ]; then - Modify_gbe ${rom} +inject_blobs() +{ + if [ "${release}" = "true" ]; then + echo 'patching release file' + patch_release_roms + else + patch_rom ${rom} fi } -Patch_release(){ +patch_release_roms() +{ _tmpdir=$(mktemp -d "/tmp/${board}_tmpXXXX") tar xf "${releasearchive}" -C "${_tmpdir}" || \ - Fail 'could not extract release archive' - - for rom in ${_tmpdir}/bin/*/*.rom ; do - echo "patching rom $rom" - Patch ${rom} || \ - Fail "could not patch ${rom}" + fail 'could not extract release archive' + + for x in ${_tmpdir}/bin/*/*.rom ; do + echo "TEST" + echo "patching rom $x" + patch_rom ${x} || fail "could not patch ${x}" + echo "FOO" done - ( cd ${_tmpdir}/bin/* + ( + cd ${_tmpdir}/bin/* sha1sum --status -c blobhashes || \ - Fail 'ROMs did not match expected hashes' + fail 'ROMs did not match expected hashes' ) - if [ "${modifygbe}" = "true" ]; then - for rom in ${_tmpdir}/bin/*/*.rom ; do - Modify_gbe ${rom} + for x in ${_tmpdir}/bin/*/*.rom ; do + modify_gbe ${x} done fi @@ -179,83 +199,168 @@ Patch_release(){ rm -r "${_tmpdir}" } -Check_release(){ -if ! [ -f ${1} ]; then - return 1 -fi +patch_rom() +{ + rom="${1}" -_filetype=$(file -b "${1}") + set -- "${boarddir}/config/"* + . ${1} 2>/dev/null + . "${boarddir}/board.cfg" -if [ "${_filetype%%,*}" = "XZ compressed data" ]; then - printf "%s\n" "Release archive ${1} detected" -else - return 1 -fi + if [ "$CONFIG_HAVE_MRC" = "y" ]; then + inject_blob_intel_mrc "${rom}" + fi + + if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then + inject_blob_intel_me "${rom}" + fi + + if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then + inject_blob_hp_kbc1126_ec "${rom}" + fi + + if [ "${CONFIG_VGA_BIOS_FILE}" != "" ] \ + && [ "${CONFIG_VGA_BIOS_ID}" != "" ]; then + inject_blob_dell_e6400_vgarom_nvidia + fi + + if [ "${modifygbe}" = "true" ] && ! [ "${release}" = "true" ]; then + modify_gbe ${rom} + fi } -if [ "${1}" = "listboards" ]; then - listboards - exit 0 -fi +inject_blob_intel_mrc() +{ + rom="${1}" -# Implementing parameter parsing now so more options can be added later -while getopts r:b:m: option -do - case "${option}" - in - r)rom=${OPTARG};; - b)board=${OPTARG};; - m) - modifygbe=true - new_mac=${OPTARG} - ;; - esac -done + printf 'adding mrc\n' + # TODO: use offset defined in coreboot configs (don't hardcode) + ${cbfstool} ${rom} add -f mrc/haswell/mrc.bin -n mrc.bin -t mrc \ + -b 0x78fe00 || exit 1 +} +inject_blob_intel_me() +{ + rom="${1}" -if ! Check_release ${1} ; then - if [ ! -f "${rom}" ]; then - Fail "${rom} is not a valid path" - elif [ -z ${rom+x} ]; then - Fail 'no rom specified' - elif [ -z ${board+x} ]; then - board=$(Detect_board ${rom}) || \ - Fail 'no board specified' + # TODO: check if CONFIG_ME_BIN_PATH is empty + _me_location=${CONFIG_ME_BIN_PATH#../../} + printf 'adding intel management engine\n' + ${ifdtool} -i me:${_me_location} ${rom} -O ${rom} || exit 1 +} + +inject_blob_hp_kbc1126_ec() +{ + rom="${1}" + + _ec1_location="${CONFIG_KBC1126_FW1#../../}" + _ec1_offset="${CONFIG_KBC1126_FW1_OFFSET}" + _ec2_location="${CONFIG_KBC1126_FW2#../../}" + _ec2_offset="${CONFIG_KBC1126_FW2_OFFSET}" + + printf "adding hp kbc1126 ec firmware\n" + + if [ "${_ec1_offset}" = "" ] || [ "${_ec1_offset}" = "" ]; then + printf "EC offsets not declared for board: %s\n" \ + "${board}" + exit 1 + fi + if [ "${_ec1_location}" = "" ] || [ "${_ec2_location}" = "" ]; then + printf "EC firmware path not declared for board: %s\n" \ + "${board}" + fi + if [ ! -f "${_ec1_location}" ] || [ ! -f "${_ec2_location}" ]; then + printf "EC firmware not downloaded for board: %s\n" \ + "${board}" + exit 1 fi -else - release=true - releasearchive="${1}" - board=$(Detect_board ${1}) || \ - Fail 'Could not detect board type' -fi + ${cbfstool} "${rom}" add -f ${_ec1_location} -n ecfw1.bin \ + -b ${_ec1_offset} -t raw || exit 1 + ${cbfstool} "${rom}" add -f ${_ec2_location} -n ecfw2.bin \ + -b ${_ec2_offset} -t raw || exit 1 +} -if [ ! -d "resources/coreboot/${board}/" ]; then - Fail "board ${board} not found" -fi +inject_blob_dell_e6400_vgarom_nvidia() +{ + rom="${1}" -if [ ! -d coreboot/default ]; then - printf "downloading coreboot\n" - ./download coreboot default -fi + _vga_location="${CONFIG_VGA_BIOS_FILE#../../}" + _vga_dir="${_vga_location%/*}" + _vga_filename="${_vga_location##*/}" -if [ ! -f "coreboot/default/util/ifdtool/ifdtool" ]; then -printf "building ifdtool from coreboot\n" - ./build module cbutils default || Fail 'could not build ifdtool' -fi + printf "adding pci option rom\n" -if [ ! -f "coreboot/default/util/cbfstool/cbfstool" ]; then -printf "building cbfstool from coreboot\n" -./build module cbutils default || Fail 'could not build cbfstool' -fi + if [ "${_vga_dir}" != "${pciromsdir}" ]; then + printf "Invalid PCI ROM directory: %s\n" ${_vga_dir} + exit 1 + fi + if [ ! -f "${_vga_location}" ]; then + printf "No such file exists: %s\n" ${_vga_location} + exit 1 + fi -./blobutil download ${board} || \ -Fail "Could not download blobs for ${board}, check network connection" + ${cbfstool} ${rom} add -f "${_vga_location}" \ + -n "pci${CONFIG_VGA_BIOS_ID}.rom" \ + -t optionrom || exit 1 +} -if [ "${release}" = "true" ]; then - echo 'patching release file' - Patch_release -else - Patch ${rom} -fi +modify_gbe() +{ + printf "changing mac address in gbe to ${new_mac}\n" + + rom=${1} + # TODO: check if CONFIG_GBE_BIN_PATH is empty + # TODO: check that the gbe file actually exists + _gbe_location=${CONFIG_GBE_BIN_PATH#../../} + + if [ ! -f ${nvmutil} ]; then + make -C util/nvmutil || fail 'failed to build nvmutil' + fi + + _gbe_tmp=$(mktemp -t gbeXXXX.bin) + cp ${_gbe_location} ${_gbe_tmp} + ${nvmutil} "${_gbe_tmp}" setmac ${new_mac} \ + || fail 'failed to modify mac address' + + ${ifdtool} -i GbE:${_gbe_tmp} "${rom}" \ + -O "${rom}" || exit 1 + + rm -f ${_gbe_tmp} +} + +listboards() +{ + for boarddir in ${cbcfgsdir}/*; do + if [ ! -d "${boarddir}" ]; then continue; fi + board="${boarddir##${cbcfgsdir}/}" + board="${board%/}" + printf '%s\n' "${board##*/}" + done +} + +fail() +{ + if [ ! -z ${@+x} ]; then + printf "\nERROR: ${@}\n" + fi + + usage + exit 1 +} + +usage() +{ + cat <<- EOF + USAGE: ./blobutil inject -r [rom path] -b [boardname] -m [macaddress] + Example: ./blobutil 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 './blobutil inject listboards' to get a list of valid boards + EOF +} + +main $@ From 174297885820a8500997cce87a79090059059604 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 06:36:21 +0100 Subject: [PATCH 0058/2290] remove errant code lines from last commit --- resources/scripts/blobs/inject | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index 3142355b..511ac7fc 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -44,7 +44,6 @@ main() fi archive="${1}" - echo "TEST: $archive" while getopts r:b:m: option do @@ -174,7 +173,6 @@ patch_release_roms() echo "TEST" echo "patching rom $x" patch_rom ${x} || fail "could not patch ${x}" - echo "FOO" done ( From 70e337afd08e6034f70cefbf8949a48dfbf5ec4a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 08:16:12 +0100 Subject: [PATCH 0059/2290] blobutil/inject: use x86 top-aligned mrc offset the old code was specifing an absolute offset for insertion of mrc.bin - cbfstool interprets anything above 0x80000000 as top-aligned memory address in x86, and anything below as an obsolute offset in the flash, like with the old number where a top-aligned address is provided to cbfstool, the absolute position is calculated for the flash, and cbfstool inserts it in the correct rom location the benefit of this change is that the absolute offset is now calculated automatically, which means that the code will be correct even if the flash size changes. for example, if 16MB flash is used whereas 12MB is currently the default an support haswell hardware coreboot does not provide anything readably like Kconfig, for extracting this value. it's baked into the source code of coreboot, so you have to find it. the correct location is hardcoded for each platform, and always the same on each platform, regardless of mainboard --- resources/scripts/blobs/inject | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index 511ac7fc..bbd6acec 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -233,9 +233,26 @@ inject_blob_intel_mrc() printf 'adding mrc\n' - # TODO: use offset defined in coreboot configs (don't hardcode) + # mrc.bin must be inserted at a specific offset. the only + # libreboot platform that needs it, at present, is haswell + + # in cbfstool, -b values above 0x80000000 are interpreted as + # top-aligned x86 memory locations. this is converted into an + # absolute offset within the flash, and inserted accordingly + # at that offset into the ROM image file + + # coreboot's own build system hardcodes the mrc.bin offset + # because there is only one correct location in memory, but + # it would be useful for lbmk if it could be easily scanned + # from Kconfig, with the option to change it where in practise + # it is not changed + + # the hardcoded offset below is based upon reading of the coreboot + # source code, and it is *always* correct for haswell platform. + # TODO: this logic should be tweaked to handle more platforms + ${cbfstool} ${rom} add -f mrc/haswell/mrc.bin -n mrc.bin -t mrc \ - -b 0x78fe00 || exit 1 + -b 0xfffa0000 || exit 1 } inject_blob_intel_me() From 5da7554a3b55994071c5a036965035a2d14f89b7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 08:27:39 +0100 Subject: [PATCH 0060/2290] blobutil/inject: remove errant debug message i left this here by accident when testing something during work on a prior revision --- resources/scripts/blobs/inject | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index bbd6acec..0664d96a 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -170,7 +170,6 @@ patch_release_roms() fail 'could not extract release archive' for x in ${_tmpdir}/bin/*/*.rom ; do - echo "TEST" echo "patching rom $x" patch_rom ${x} || fail "could not patch ${x}" done From d34f381301279deb8e50a1fb1b08391ddf329ee0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 08:30:21 +0100 Subject: [PATCH 0061/2290] blobutil/inject: check me path --- resources/scripts/blobs/inject | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index 0664d96a..b8fe1c9b 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -258,7 +258,9 @@ inject_blob_intel_me() { rom="${1}" - # TODO: check if CONFIG_ME_BIN_PATH is empty + if [ -z ${CONFIG_ME_BIN_PATH} ]; then + fail "CONFIG_ME_BIN_PATH not set" + fi _me_location=${CONFIG_ME_BIN_PATH#../../} printf 'adding intel management engine\n' ${ifdtool} -i me:${_me_location} ${rom} -O ${rom} || exit 1 From 54f8a45325daf718cef772584bc7b60aa2114d85 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 08:31:59 +0100 Subject: [PATCH 0062/2290] blobutil/inject: check that me.bin exists --- resources/scripts/blobs/inject | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index b8fe1c9b..805db0db 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -256,13 +256,20 @@ inject_blob_intel_mrc() inject_blob_intel_me() { + printf 'adding intel management engine\n' + rom="${1}" if [ -z ${CONFIG_ME_BIN_PATH} ]; then fail "CONFIG_ME_BIN_PATH not set" fi + _me_location=${CONFIG_ME_BIN_PATH#../../} - printf 'adding intel management engine\n' + + if [ ! -f "${_me_location}" ]; then + fail "CONFIG_ME_BIN_PATH points to missing file" + fi + ${ifdtool} -i me:${_me_location} ${rom} -O ${rom} || exit 1 } From 6289eeb55e8939bf4d5e52f8ebff386fa4b7b9e0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 08:35:34 +0100 Subject: [PATCH 0063/2290] blobutil/inject: fail if gbe.bin doesn't exist --- resources/scripts/blobs/inject | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index 805db0db..ca43dd77 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -334,10 +334,17 @@ modify_gbe() printf "changing mac address in gbe to ${new_mac}\n" rom=${1} - # TODO: check if CONFIG_GBE_BIN_PATH is empty - # TODO: check that the gbe file actually exists + + if [ -z ${CONFIG_GBE_BIN_PATH} ]; then + fail "CONFIG_GBE_BIN_PATH not set" + fi + _gbe_location=${CONFIG_GBE_BIN_PATH#../../} + if [ ! -f "${_gbe_location}" ]; then + fail "CONFIG_GBE_BIN_PATH points to missing file" + fi + if [ ! -f ${nvmutil} ]; then make -C util/nvmutil || fail 'failed to build nvmutil' fi From 26dfda0c014381e4db9ac9a79a2c8fea48d32014 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 08:54:58 +0100 Subject: [PATCH 0064/2290] blobutil/inject: print script path on error --- resources/scripts/blobs/inject | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index ca43dd77..ca8aae4c 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -5,6 +5,7 @@ # SPDX-FileCopyrightText: 2023 Leah Rowe # SPDX-License-Identifier: GPL-3.0-only +sname="" archive="" _filetype="" rom="" @@ -36,6 +37,8 @@ CONFIG_GBE_BIN_PATH="" main() { + sname="${0}" + if [ $# -lt 1 ]; then fail "No options specified." elif [ "${1}" = "listboards" ]; then @@ -373,7 +376,7 @@ listboards() fail() { if [ ! -z ${@+x} ]; then - printf "\nERROR: ${@}\n" + printf "\n%s: ERROR: ${@}\n" ${sname} fi usage From 423e2033991c5249019510aba1171678d666374b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 09:09:14 +0100 Subject: [PATCH 0065/2290] blobutil/extract: RFC 2646 compliance (80 chars) --- resources/scripts/blobs/extract | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/resources/scripts/blobs/extract b/resources/scripts/blobs/extract index 9080207e..a7294f58 100755 --- a/resources/scripts/blobs/extract +++ b/resources/scripts/blobs/extract @@ -2,6 +2,7 @@ # script to automate extracting blobs from an existing vendor bios # SPDX-FileCopyrightText: 2022 Caleb La Grange +# SPDX-FileCopyrightText: 2023 Leah Rowe # SPDX-License-Identifier: GPL-3.0-only board="${1}" @@ -29,7 +30,8 @@ Build_deps(){ if [ ! -d coreboot/default ]; then printf "downloading coreboot\n" - ./download coreboot default || Fail 'could not download coreboot' + ./download coreboot default \ + || Fail "could not download coreboot" else printf "coreboot already downloaded. Skipping.\n" printf "run ./download coreboot to manually overwrite\n" @@ -37,20 +39,21 @@ Build_deps(){ if ! [ -f coreboot/default/util/ifdtool/ifdtool ]; then printf "building ifdtool from coreboot\n" - make -C coreboot/default/util/ifdtool || Fail 'could not build ifdtool' + make -C coreboot/default/util/ifdtool \ + || Fail "could not build ifdtool" fi } Extract_blobs(){ # TODO: find a better way to know which coreboot config to source - set -- "resources/coreboot/${board}/config/*" + set -- "resources/coreboot/${board}/config/"* . ${1} 2>/dev/null . "resources/coreboot/${board}/board.cfg" if [ "$CONFIG_HAVE_MRC" = "y" ]; then printf 'haswell board detected, downloading mrc\n' - ./download mrc || Fail 'could not download mrc, check network connection' + ./download mrc || Fail "could not download mrc" fi _me_destination=${CONFIG_ME_BIN_PATH#../../} @@ -58,13 +61,16 @@ Extract_blobs(){ _ifd_destination=${CONFIG_IFD_BIN_PATH#../../} printf "extracting clean ime and modified ifd\n" - ./me_cleaner/me_cleaner.py -D ${_ifd_destination} -M ${_me_destination} ${vendor_rom} -t -r -S \ - || ./resources/blobs/me7_update_parser.py -O ${_me_destination} ${vendor_rom} \ - || Fail 'me_cleaner failed to extract blobs from rom' + ./me_cleaner/me_cleaner.py -D ${_ifd_destination} \ + -M ${_me_destination} ${vendor_rom} -t -r -S || \ + ./resources/blobs/me7_update_parser.py + -O ${_me_destination} ${vendor_rom} \ + || Fail 'me_cleaner failed to extract blobs from rom' printf "extracting gigabit ethernet firmware" ./coreboot/default/util/ifdtool/ifdtool -x ${vendor_rom} - mv flashregion*gbe.bin ${_gbe_destination} || Fail 'could not extract gbe' + mv flashregion*gbe.bin ${_gbe_destination} \ + || Fail 'could not extract gbe' # Cleans up other files extracted with ifdtool rm flashregion*.bin 2> /dev/null @@ -72,7 +78,8 @@ Extract_blobs(){ if [ -f ${_ifd_destination} ]; then printf "gbe, ifd, and me extracted to ${_me_destination%/*}\n" else - printf "WARNING: Intel firmware descriptor could not be extracted with modified me\n" + printf "WARNING: Intel firmware descriptor could not " + printf "be extracted with modified me\n" fi } @@ -83,13 +90,14 @@ fi if [ ! -d "resources/coreboot/${board}" ]; then Print_help - printf "build/roms: Target %s does not exist in the %s build system. Skipping build.\n" "${projectname}" "${board}" + printf "build/roms %s: target not defined. Skipping extraction.\n" \ + "${projectname}" ${board} exit 1 fi if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then Print_help - printf "build/roms: Target %s does not have a board.cfg. Skipping build.\n" "${board}" + printf "build/roms %s: missing board.cfg. Skipping build.\n" ${board} exit 1 fi From 1ffb32b78fb144d032ad5805bb9a767707a8922e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 09:19:44 +0100 Subject: [PATCH 0066/2290] blobutil/extract: top-down logic --- resources/scripts/blobs/extract | 73 ++++++++++++++++++++------------- 1 file changed, 44 insertions(+), 29 deletions(-) diff --git a/resources/scripts/blobs/extract b/resources/scripts/blobs/extract index a7294f58..eb8fa7f9 100755 --- a/resources/scripts/blobs/extract +++ b/resources/scripts/blobs/extract @@ -5,18 +5,40 @@ # SPDX-FileCopyrightText: 2023 Leah Rowe # SPDX-License-Identifier: GPL-3.0-only -board="${1}" -vendor_rom="${2}" +sname="" +board="" +vendor_rom="" -Print_help(){ - printf "Usage: ./blobutil extract {boardname} {path/to/vendor_rom}\n" - printf "Example: ./blobutil extract x230 12mb_flash.bin\n" - printf "\nYou need to specify exactly 2 arguments\n" -} +main() +{ + sname=${0} + if [ $# -lt 2 ]; then + Fail "Missing arguments (less than two)." + fi -Fail(){ - printf "\nERROR: $@\n" - exit 1 + board="${1}" + vendor_rom="${2}" + + if [ ! -f "${vendor_rom}" ] ; then + Print_help + exit 1 + fi + + if [ ! -d "resources/coreboot/${board}" ]; then + Print_help + printf "build/roms %s: target not defined.\n" \ + "${projectname}" ${board} + exit 1 + fi + + if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then + Print_help + printf "build/roms %s: missing board.cfg.\n" ${board} + exit 1 + fi + + Build_deps + Extract_blobs } Build_deps(){ @@ -44,8 +66,9 @@ Build_deps(){ fi } - Extract_blobs(){ + printf "extracting blobs for %s from %s\n" ${board} ${vendor_rom} + # TODO: find a better way to know which coreboot config to source set -- "resources/coreboot/${board}/config/"* . ${1} 2>/dev/null @@ -83,24 +106,16 @@ Extract_blobs(){ fi } -if [ ! -f "${vendor_rom}" ] ; then - Print_help - exit 1 -fi +Print_help(){ + printf "Usage: ./blobutil extract {boardname} {path/to/vendor_rom}\n" + printf "Example: ./blobutil extract x230 12mb_flash.bin\n" + printf "\nYou need to specify exactly 2 arguments\n" +} -if [ ! -d "resources/coreboot/${board}" ]; then +Fail(){ Print_help - printf "build/roms %s: target not defined. Skipping extraction.\n" \ - "${projectname}" ${board} - exit 1 -fi + printf "\n%s: ERROR: %s\n" ${sname} $@ + exit 1 +} -if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then - Print_help - printf "build/roms %s: missing board.cfg. Skipping build.\n" ${board} - exit 1 -fi - -printf "extracting blobs for ${board} from ${vendor_rom}\n" -Build_deps -Extract_blobs +main $@ From 1f8ad1e46ae561126f8fb196a3c677117f786f43 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 09:24:31 +0100 Subject: [PATCH 0067/2290] blobutil/extract: simplified main() --- resources/scripts/blobs/extract | 42 ++++++++++++++------------------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/resources/scripts/blobs/extract b/resources/scripts/blobs/extract index eb8fa7f9..0f1e1f3a 100755 --- a/resources/scripts/blobs/extract +++ b/resources/scripts/blobs/extract @@ -19,28 +19,22 @@ main() board="${1}" vendor_rom="${2}" - if [ ! -f "${vendor_rom}" ] ; then - Print_help - exit 1 - fi - - if [ ! -d "resources/coreboot/${board}" ]; then - Print_help - printf "build/roms %s: target not defined.\n" \ - "${projectname}" ${board} - exit 1 - fi - - if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then - Print_help - printf "build/roms %s: missing board.cfg.\n" ${board} - exit 1 - fi - + Check_board Build_deps Extract_blobs } +Check_board() +{ + if [ ! -f "${vendor_rom}" ] ; then + Fail "file does not exist: ${vendor_rom}" + elif [ ! -d "resources/coreboot/${board}" ]; then + Fail "build/roms ${board}: target not defined" + elif [ ! -f "resources/coreboot/${board}/board.cfg" ]; then + Fail "build/roms ${board}: missing board.cfg" + fi +} + Build_deps(){ if [ ! -d me_cleaner ]; then printf "downloading me_cleaner\n" @@ -106,16 +100,16 @@ Extract_blobs(){ fi } -Print_help(){ - printf "Usage: ./blobutil extract {boardname} {path/to/vendor_rom}\n" - printf "Example: ./blobutil extract x230 12mb_flash.bin\n" - printf "\nYou need to specify exactly 2 arguments\n" -} - Fail(){ Print_help printf "\n%s: ERROR: %s\n" ${sname} $@ exit 1 } +Print_help(){ + printf "Usage: ./blobutil extract {boardname} {path/to/vendor_rom}\n" + printf "Example: ./blobutil extract x230 12mb_flash.bin\n" + printf "\nYou need to specify exactly 2 arguments\n" +} + main $@ From fd3936cc59277a6b9ba261ca88ab0258eb8e9302 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 09:39:25 +0100 Subject: [PATCH 0068/2290] blobutil/extract: cleaner coding style removed hardcoded strings, put them in variables use easier to read lowercase for function names --- resources/scripts/blobs/extract | 68 +++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 28 deletions(-) diff --git a/resources/scripts/blobs/extract b/resources/scripts/blobs/extract index 0f1e1f3a..d648d090 100755 --- a/resources/scripts/blobs/extract +++ b/resources/scripts/blobs/extract @@ -9,68 +9,77 @@ sname="" board="" vendor_rom="" +cbdir="coreboot/default" +cbcfgsdir="resources/coreboot" +ifdtool="${cbdir}/util/ifdtool/ifdtool" +boarddir="" + main() { sname=${0} if [ $# -lt 2 ]; then - Fail "Missing arguments (less than two)." + fail "Missing arguments (less than two)." fi board="${1}" vendor_rom="${2}" - Check_board - Build_deps - Extract_blobs + boarddir="${cbcfgsdir}/${board}" + + check_board + build_dependencies + extract_blobs } -Check_board() +check_board() { if [ ! -f "${vendor_rom}" ] ; then - Fail "file does not exist: ${vendor_rom}" - elif [ ! -d "resources/coreboot/${board}" ]; then - Fail "build/roms ${board}: target not defined" - elif [ ! -f "resources/coreboot/${board}/board.cfg" ]; then - Fail "build/roms ${board}: missing board.cfg" + 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" fi } -Build_deps(){ +build_dependencies() +{ if [ ! -d me_cleaner ]; then printf "downloading me_cleaner\n" - ./download me_cleaner || Fail 'could not download me_cleaner' + ./download me_cleaner || fail 'could not download me_cleaner' else printf "me_cleaner already downloaded. Skipping.\n" printf "run ./download me_cleaner to manually overwrite\n" fi - if [ ! -d coreboot/default ]; then + if [ ! -d ${cbdir} ]; then printf "downloading coreboot\n" ./download coreboot default \ - || Fail "could not download coreboot" + || fail "could not download coreboot" else printf "coreboot already downloaded. Skipping.\n" printf "run ./download coreboot to manually overwrite\n" fi - if ! [ -f coreboot/default/util/ifdtool/ifdtool ]; then + if ! [ -f ${ifdtool} ]; then printf "building ifdtool from coreboot\n" - make -C coreboot/default/util/ifdtool \ - || Fail "could not build ifdtool" + make -C "${ifdtool%/ifdtool}" \ + || fail "could not build ifdtool" fi } -Extract_blobs(){ +extract_blobs() +{ + # TODO: split up this function, it's a mess printf "extracting blobs for %s from %s\n" ${board} ${vendor_rom} - # TODO: find a better way to know which coreboot config to source - set -- "resources/coreboot/${board}/config/"* + set -- "${boarddir}/config/"* . ${1} 2>/dev/null - . "resources/coreboot/${board}/board.cfg" + . "${boarddir}/board.cfg" if [ "$CONFIG_HAVE_MRC" = "y" ]; then printf 'haswell board detected, downloading mrc\n' - ./download mrc || Fail "could not download mrc" + ./download mrc || fail "could not download mrc" fi _me_destination=${CONFIG_ME_BIN_PATH#../../} @@ -82,12 +91,12 @@ Extract_blobs(){ -M ${_me_destination} ${vendor_rom} -t -r -S || \ ./resources/blobs/me7_update_parser.py -O ${_me_destination} ${vendor_rom} \ - || Fail 'me_cleaner failed to extract blobs from rom' + || fail 'me_cleaner failed to extract blobs from rom' printf "extracting gigabit ethernet firmware" - ./coreboot/default/util/ifdtool/ifdtool -x ${vendor_rom} + ./${ifdtool} -x ${vendor_rom} mv flashregion*gbe.bin ${_gbe_destination} \ - || Fail 'could not extract gbe' + || fail 'could not extract gbe' # Cleans up other files extracted with ifdtool rm flashregion*.bin 2> /dev/null @@ -100,13 +109,16 @@ Extract_blobs(){ fi } -Fail(){ - Print_help +fail() +{ + print_help + printf "\n%s: ERROR: %s\n" ${sname} $@ exit 1 } -Print_help(){ +print_help() +{ printf "Usage: ./blobutil extract {boardname} {path/to/vendor_rom}\n" printf "Example: ./blobutil extract x230 12mb_flash.bin\n" printf "\nYou need to specify exactly 2 arguments\n" From 009bf3b67f71f86ad5331afe0cd68efc578dfb90 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 09:50:48 +0100 Subject: [PATCH 0069/2290] blobutil/extract: split up extract_blobs() --- resources/scripts/blobs/extract | 43 +++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/resources/scripts/blobs/extract b/resources/scripts/blobs/extract index d648d090..ad15d44f 100755 --- a/resources/scripts/blobs/extract +++ b/resources/scripts/blobs/extract @@ -14,6 +14,15 @@ cbcfgsdir="resources/coreboot" ifdtool="${cbdir}/util/ifdtool/ifdtool" boarddir="" +CONFIG_HAVE_MRC="" +CONFIG_ME_BIN_PATH="" +CONFIG_GBE_BIN_PATH="" +CONFIG_IFD_BIN_PATH="" + +_me_destination="" +_gbe_destination="" +_ifd_destination="" + main() { sname=${0} @@ -70,7 +79,6 @@ build_dependencies() extract_blobs() { - # TODO: split up this function, it's a mess printf "extracting blobs for %s from %s\n" ${board} ${vendor_rom} set -- "${boarddir}/config/"* @@ -86,20 +94,11 @@ extract_blobs() _gbe_destination=${CONFIG_GBE_BIN_PATH#../../} _ifd_destination=${CONFIG_IFD_BIN_PATH#../../} - printf "extracting clean ime and modified ifd\n" - ./me_cleaner/me_cleaner.py -D ${_ifd_destination} \ - -M ${_me_destination} ${vendor_rom} -t -r -S || \ - ./resources/blobs/me7_update_parser.py - -O ${_me_destination} ${vendor_rom} \ - || fail 'me_cleaner failed to extract blobs from rom' + extract_blob_intel_me + extract_blob_intel_gbe_nvm - printf "extracting gigabit ethernet firmware" - ./${ifdtool} -x ${vendor_rom} - mv flashregion*gbe.bin ${_gbe_destination} \ - || fail 'could not extract gbe' - # Cleans up other files extracted with ifdtool - rm flashregion*.bin 2> /dev/null + rm -f flashregion*.bin 2> /dev/null if [ -f ${_ifd_destination} ]; then printf "gbe, ifd, and me extracted to ${_me_destination%/*}\n" @@ -109,6 +108,24 @@ extract_blobs() fi } +extract_blob_intel_me() +{ + printf "extracting clean ime and modified ifd\n" + ./me_cleaner/me_cleaner.py -D ${_ifd_destination} \ + -M ${_me_destination} ${vendor_rom} -t -r -S || \ + ./resources/blobs/me7_update_parser.py + -O ${_me_destination} ${vendor_rom} \ + || fail 'me_cleaner failed to extract blobs from rom' +} + +extract_blob_intel_gbe_nvm() +{ + printf "extracting gigabit ethernet firmware" + ./${ifdtool} -x ${vendor_rom} + mv flashregion*gbe.bin ${_gbe_destination} \ + || fail 'could not extract gbe' +} + fail() { print_help From a35f0b650a9aa1958f645e933c078eda87183889 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 09:57:34 +0100 Subject: [PATCH 0070/2290] blobutil/extract: minor code style cleanup --- resources/scripts/blobs/extract | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/resources/scripts/blobs/extract b/resources/scripts/blobs/extract index ad15d44f..b32ec0ea 100755 --- a/resources/scripts/blobs/extract +++ b/resources/scripts/blobs/extract @@ -12,6 +12,9 @@ vendor_rom="" cbdir="coreboot/default" cbcfgsdir="resources/coreboot" ifdtool="${cbdir}/util/ifdtool/ifdtool" +mecleaner="me_cleaner/me_cleaner.py" +me7updateparser="resources/blobs/me7_update_parser.py" + boarddir="" CONFIG_HAVE_MRC="" @@ -101,7 +104,8 @@ extract_blobs() rm -f flashregion*.bin 2> /dev/null if [ -f ${_ifd_destination} ]; then - printf "gbe, ifd, and me extracted to ${_me_destination%/*}\n" + printf "gbe, ifd, and me extracted to %s\n" \ + ${_me_destination%/*} else printf "WARNING: Intel firmware descriptor could not " printf "be extracted with modified me\n" @@ -111,11 +115,13 @@ extract_blobs() extract_blob_intel_me() { printf "extracting clean ime and modified ifd\n" - ./me_cleaner/me_cleaner.py -D ${_ifd_destination} \ - -M ${_me_destination} ${vendor_rom} -t -r -S || \ - ./resources/blobs/me7_update_parser.py - -O ${_me_destination} ${vendor_rom} \ - || fail 'me_cleaner failed to extract blobs from rom' + + ${mecleaner} -D ${_ifd_destination} \ + -M ${_me_destination} ${vendor_rom} -t -r -S \ + || ${me7updateparser} \ + -O ${_me_destination} ${vendor_rom} \ + || fail \ + "me_cleaner failed to extract blobs from rom" } extract_blob_intel_gbe_nvm() From 48bda9e051746d2c1d71d661dd825b743b7b833e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 10:20:18 +0100 Subject: [PATCH 0071/2290] update/coreboot: top-down coding style also moved hardcoded strings into variables --- resources/scripts/update/coreboot/configs | 119 +++++++++++----------- 1 file changed, 59 insertions(+), 60 deletions(-) diff --git a/resources/scripts/update/coreboot/configs b/resources/scripts/update/coreboot/configs index d7f13e9c..cd5299b3 100755 --- a/resources/scripts/update/coreboot/configs +++ b/resources/scripts/update/coreboot/configs @@ -6,18 +6,18 @@ # Copyright (C) 2021 Leah Rowe # Copyright (C) 2022 Ferass El Hafidi # -# 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 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. +# 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 . +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # # This script assumes that the working directory is the root @@ -26,58 +26,57 @@ [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e -printf "Updating coreboot configs\n" +cbcfgsdir="resources/coreboot" -# Build ROM images for supported boards -updateconf() { - board="$1" - if [ -f "resources/coreboot/${board}/board.cfg" ]; then - cbtree="undefined" - . "resources/coreboot/${board}/board.cfg" # source - if [ "${cbtree}" = "undefined" ]; then - return 0 - fi - if [ ! -d "coreboot/${cbtree}" ]; then - ./download coreboot ${cbtree} - fi - for cbcfg in resources/coreboot/${board}/config/*; do - if [ ! -f ${cbcfg} ]; then - continue - fi - ( - cd coreboot/${cbtree}/ - rm -f .config* - make distclean - ) - mv $cbcfg coreboot/${cbtree}/.config - ( - cd coreboot/${cbtree}/ - make oldconfig - ) - mv coreboot/${cbtree}/.config $cbcfg - rm -f coreboot/${cbtree}/.config* - ( - cd coreboot/${cbtree}/ - make distclean - ) - done - else - printf "\nupdate/config/coreboot: no board.cfg for: %s\n" "${board}" - fi +main() +{ + printf "Updating coreboot configs\n" + + if [ $# -gt 0 ]; then + for board in "${@}"; do + updateconf "${board}" + done + else + for board in ${cbcfgsdir}/*; do + if [ ! -d "${board}" ]; then + continue + fi + updateconf "${board##*/}" + done + fi } -if [ $# -gt 0 ]; then - for board in "${@}"; do - updateconf "${board}" - done -else - for board in resources/coreboot/*; do - if [ ! -d "${board}" ]; then - continue - fi - updateconf "${board##*/}" - done -fi +# Build ROM images for supported boards +updateconf() +{ + board=${1} -printf "\n\n" + boarddir="${cbcfgsdir}/${board}" + if [ -f "${boarddir}/board.cfg" ]; then + cbtree="undefined" + . "${boarddir}/board.cfg" # source + if [ "${cbtree}" = "undefined" ]; then + return 0 + fi + cbdir="coreboot/${cbtree}" + if [ ! -d "${cbdir}" ]; then + ./download coreboot ${cbtree} + fi + for cbcfg in "${boarddir}/config/"*; do + if [ ! -f "${cbcfg}" ]; then + continue + fi + make distclean -BC "${cbdir}" + mv $cbcfg ${cbdir}/.config + make oldconfig -BC "${cbdir}" + mv ${cbdir}/.config $cbcfg + make distclean -BC "${cbdir}" + done + else + printf "\nupdate/config/coreboot: no board.cfg for: %s\n" \ + ${board} + fi +} + +main $@ From d90dfb0a08bcc82200227afd7ab3c0b2ab72a91e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 10:33:35 +0100 Subject: [PATCH 0072/2290] build/dependencies/*: RFC 2646 compliance --- resources/scripts/build/dependencies/arch | 10 +++++++--- resources/scripts/build/dependencies/debian | 20 +++++++++++++++---- resources/scripts/build/dependencies/fedora38 | 8 ++++++-- resources/scripts/build/dependencies/parabola | 10 +++++++--- .../scripts/build/dependencies/ubuntu2004 | 13 +++++++++--- resources/scripts/build/dependencies/void | 7 +++++-- 6 files changed, 51 insertions(+), 17 deletions(-) diff --git a/resources/scripts/build/dependencies/arch b/resources/scripts/build/dependencies/arch index 9f3b8a43..c20a1faf 100644 --- a/resources/scripts/build/dependencies/arch +++ b/resources/scripts/build/dependencies/arch @@ -68,12 +68,15 @@ pacman -S --needed --noconfirm base-devel perl # Coreboot build dependencies (also requires build-essential and git) # ------------------------------------------------------------ -pacman -S --needed --noconfirm ncurses doxygen acpica gdb flex bison base-devel git openssl gcc-ada +pacman -S --needed --noconfirm ncurses doxygen acpica gdb flex bison \ + base-devel git openssl gcc-ada # GRUB build dependencies (also requires build-essential, bison and flex) # ------------------------------------------------------------ -pacman -S --needed --noconfirm autogen help2man base-devel bison flex ttf-dejavu texinfo rsync python libusb xz gawk device-mapper fuse2 gettext freetype2 +pacman -S --needed --noconfirm autogen help2man base-devel bison flex \ + ttf-dejavu texinfo rsync python libusb xz gawk device-mapper \ + fuse2 gettext freetype2 # BucTS build dependencies (external script) # ------------------------------------------------------------ @@ -83,7 +86,8 @@ pacman -S --needed --noconfirm base-devel # Flashrom build dependencies (also requires build-essential) # ------------------------------------------------------------ -pacman -S --needed --noconfirm libpciaccess pciutils zlib libftdi base-devel libusb +pacman -S --needed --noconfirm libpciaccess pciutils zlib libftdi \ + base-devel libusb # Management engine extraction dependencies # ------------------------------------------------------------ diff --git a/resources/scripts/build/dependencies/debian b/resources/scripts/build/dependencies/debian index f2654497..fb0ae248 100755 --- a/resources/scripts/build/dependencies/debian +++ b/resources/scripts/build/dependencies/debian @@ -85,7 +85,8 @@ apt-get -y install python3-setuptools # Coreboot build dependencies (also requires build-essential and git) # ------------------------------------------------------------ -apt-get -y install libncurses5-dev doxygen iasl gdb flex bison build-essential git libssl-dev gnat python-is-python3 +apt-get -y install libncurses5-dev doxygen iasl gdb flex bison \ + build-essential git libssl-dev gnat python-is-python3 # For cross-compiling i686 target on x86_64 host. [ "${arch}" -eq 0 ] && apt-get -y install lib32ncurses5-dev @@ -93,14 +94,23 @@ apt-get -y install libncurses5-dev doxygen iasl gdb flex bison build-essential g # GRUB build dependencies (also requires build-essential, bison and flex) # ------------------------------------------------------------ -apt-get -y install 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 +apt-get -y install 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 apt-get -y install unifont # U-Boot build dependencies # ------------------------- -apt-get -y install 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 +apt-get -y install 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 # BucTS build dependencies (external script) # ------------------------------------------------------------ @@ -110,7 +120,9 @@ apt-get -y install build-essential # Flashrom build dependencies (also requires build-essential) # ------------------------------------------------------------ -apt-get -y install libpci-dev pciutils zlib1g-dev libftdi-dev build-essential libusb-1.0-0-dev libusb-1.0 libusb-1.0-0-dev libusb-dev +apt-get -y install libpci-dev pciutils zlib1g-dev libftdi-dev \ + build-essential libusb-1.0-0-dev libusb-1.0 \ + libusb-1.0-0-dev libusb-dev # For cross-compiling i686 target on x86_64 host. [ "${arch}" -eq 0 ] && apt-get -y install lib32z1-dev diff --git a/resources/scripts/build/dependencies/fedora38 b/resources/scripts/build/dependencies/fedora38 index 78af0c8a..2389b806 100755 --- a/resources/scripts/build/dependencies/fedora38 +++ b/resources/scripts/build/dependencies/fedora38 @@ -72,12 +72,16 @@ dnf -y install gcc perl # Coreboot build dependencies (also requires build-essential and git) # ------------------------------------------------------------ -dnf -y install gcc-gnat ncurses-devel doxygen acpica-tools gdb flex bison gcc git openssl-devel gprbuild bzip2 +dnf -y install gcc-gnat ncurses-devel doxygen acpica-tools gdb flex bison \ + gcc git openssl-devel gprbuild bzip2 # GRUB build dependencies (also requires build-essential, bison and flex) # ------------------------------------------------------------ -dnf -y install 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 +dnf -y install 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 # BucTS build dependencies (external script) # ------------------------------------------------------------ diff --git a/resources/scripts/build/dependencies/parabola b/resources/scripts/build/dependencies/parabola index a2002f43..da284bed 100755 --- a/resources/scripts/build/dependencies/parabola +++ b/resources/scripts/build/dependencies/parabola @@ -70,12 +70,15 @@ pacman -S --needed --noconfirm base-devel perl # Coreboot build dependencies (also requires build-essential and git) # ------------------------------------------------------------ -pacman -S --needed --noconfirm ncurses doxygen acpica gdb flex bison base-devel git openssl gcc-ada +pacman -S --needed --noconfirm ncurses doxygen acpica gdb flex bison \ + base-devel git openssl gcc-ada # GRUB build dependencies (also requires build-essential, bison and flex) # ------------------------------------------------------------ -pacman -S --needed --noconfirm autogen help2man base-devel bison flex ttf-dejavu texinfo rsync python libusb xz gawk device-mapper fuse2 gettext freetype2 +pacman -S --needed --noconfirm autogen help2man base-devel bison flex \ + ttf-dejavu texinfo rsync python libusb xz gawk \ + device-mapper fuse2 gettext freetype2 # BucTS build dependencies (external script) # ------------------------------------------------------------ @@ -85,7 +88,8 @@ pacman -S --needed --noconfirm base-devel # Flashrom build dependencies (also requires build-essential) # ------------------------------------------------------------ -pacman -S --needed --noconfirm libpciaccess pciutils zlib libftdi base-devel libusb +pacman -S --needed --noconfirm libpciaccess pciutils zlib \ + libftdi base-devel libusb # Management engine extraction dependencies # diff --git a/resources/scripts/build/dependencies/ubuntu2004 b/resources/scripts/build/dependencies/ubuntu2004 index 8b317349..14a1d8c2 100755 --- a/resources/scripts/build/dependencies/ubuntu2004 +++ b/resources/scripts/build/dependencies/ubuntu2004 @@ -79,7 +79,8 @@ apt-get -y install build-essential perl # Coreboot build dependencies (also requires build-essential and git) # ------------------------------------------------------------ -apt-get -y install libncurses5-dev doxygen iasl gdb flex bison build-essential git libssl-dev gnat +apt-get -y install libncurses5-dev doxygen iasl gdb flex bison \ + build-essential git libssl-dev gnat # For cross-compiling i686 target on x86_64 host. [ "${arch}" -eq 0 ] && apt-get -y install lib32ncurses5-dev @@ -87,7 +88,11 @@ apt-get -y install libncurses5-dev doxygen iasl gdb flex bison build-essential g # GRUB build dependencies (also requires build-essential, bison and flex) # ------------------------------------------------------------ -apt-get -y install 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 +apt-get -y install 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 # BucTS build dependencies (external script) # ------------------------------------------------------------ @@ -97,7 +102,9 @@ apt-get -y install build-essential # Flashrom build dependencies (also requires build-essential) # ------------------------------------------------------------ -apt-get -y install libpci-dev pciutils zlib1g-dev libftdi-dev build-essential libusb-1.0-0-dev libusb-1.0 libusb-1.0-0-dev libusb-dev +apt-get -y install libpci-dev pciutils zlib1g-dev libftdi-dev \ + build-essential libusb-1.0-0-dev libusb-1.0 \ + libusb-1.0-0-dev libusb-dev # For cross-compiling i686 target on x86_64 host. [ "${arch}" -eq 0 ] && apt-get -y install lib32z1-dev diff --git a/resources/scripts/build/dependencies/void b/resources/scripts/build/dependencies/void index bea80595..e46cd5ee 100755 --- a/resources/scripts/build/dependencies/void +++ b/resources/scripts/build/dependencies/void @@ -65,12 +65,15 @@ xbps-install -y base-devel perl # Coreboot build dependencies (also requires build-essential and git) # ------------------------------------------------------------ -xbps-install -y ncurses doxygen acpica-utils gdb flex bison base-devel git openssl gcc-ada ncurses-devel +xbps-install -y ncurses doxygen acpica-utils gdb flex bison base-devel git \ + openssl gcc-ada ncurses-devel # GRUB build dependencies (also requires build-essential, bison and flex) # ------------------------------------------------------------ -xbps-install -y 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 +xbps-install -y 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 # BucTS build dependencies (external script) # ------------------------------------------------------------ From db3c1d9ccf64127e64f0bbce843c624c993a8eed Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 11:21:56 +0100 Subject: [PATCH 0073/2290] download/grub: delete grub if gnulib cloning fails for our purposes, grub and gnulib are one in the same if one fails, both have failed exit with non-zero status if gnulib fails the script sets -e so it will fail if grub fails to download, which is tried before gnulib, and if that happens, the grub directory is not created --- resources/scripts/download/grub | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/resources/scripts/download/grub b/resources/scripts/download/grub index 5d0c1aad..ff1ce55c 100755 --- a/resources/scripts/download/grub +++ b/resources/scripts/download/grub @@ -2,7 +2,8 @@ # helper script: Downloads GRUB and patches it. # -# Copyright (C) 2014, 2015, 2016, 2020, 2021 Leah Rowe +# Copyright (C) 2014,2015,2016,2020,2021,2023 Leah Rowe +# # # 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 @@ -22,4 +23,10 @@ set -u -e ./gitclone grub -./gitclone gnulib +./gitclone gnulib || rm -Rf grub/ +if [ ! -d grub ]; then + printf "%s: Could not download grub and gnulib\n" ${0} + exit 1 +else + exit 0 +fi From d89585fb718a4d499c877102f0b2aed7d2222b14 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 11:33:50 +0100 Subject: [PATCH 0074/2290] gitclone: check for invalid patch filename where the asterisk is used, it can sometimes literally try to patch with a file named "*", which of course does not exist this change fixes an lbmk error when running: ./download seabios this was caused recently, because all patches were seabios were removed (lbmk currently uses stock seabios, without patching it) --- gitclone | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gitclone b/gitclone index 6a0079a2..46d0306f 100755 --- a/gitclone +++ b/gitclone @@ -35,6 +35,9 @@ Check_vars(){ Patch(){ for patchfile in ${PWD}/${patchdir}/*.patch ; do + if [ ! -f "${patchfile}" ]; then + continue + fi ( cd ${tmp_dir} git am ${patchfile} || return 1 ) From 963b524722c016c05be5d68d570aa9e8623b55c5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 14:10:51 +0100 Subject: [PATCH 0075/2290] download/mrc: use cleaner coding style top-down order for all logic, and shorter code lines, conforming to rfc 2646 (no more than 80 characters) the 80-character rule is violated for variables containing long strings, such as wayback machine urls (can't be helped) a few bugs were discovered, which will be fixed in follow-up revisions, such as: * exit status not handled inside subshell * in general, exit status should be handled more explicitly, rather than relying on -e --- resources/scripts/download/mrc | 183 +++++++++++++++++---------------- 1 file changed, 95 insertions(+), 88 deletions(-) diff --git a/resources/scripts/download/mrc b/resources/scripts/download/mrc index 49657fec..69c9eff2 100755 --- a/resources/scripts/download/mrc +++ b/resources/scripts/download/mrc @@ -15,18 +15,100 @@ # along with this program. If not, see . # -# This script assumes that the working directory is the -# root of osboot_src or osboot git. - -# This file is forked from util/chromeos/crosfirmware.sh in coreboot cfc26ce278 -# Changes to it in osboot are copyright 2021 Leah Rowe - [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e - -# On some systems, `parted` and `debugfs` are located in /sbin. export PATH="${PATH}:/sbin" +# This file is forked from util/chromeos/crosfirmware.sh in coreboot cfc26ce278 +# Changes to it in *this version* are copyright 2021 and 2023 Leah Rowe, under +# the same license as above. + +# use updated manifest from wayback machine, when updating mrc.bin, +# and update the other variables below accordingly. current manifest used: +# https://web.archive.org/web/20210211071412/https://dl.google.com/dl/edgedl/chromeos/recovery/recovery.conf + +# the wayback machine is used so that we get the same manifest. google +# does not seem to version the manifest, but archives are available + +# variables taken from that manifest: + +_board="peppy" +_file="chromeos_12239.92.0_peppy_recovery_stable-channel_mp-v3.bin" +_url="https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_12239.92.0_peppy_recovery_stable-channel_mp-v3.bin.zip" +_url2="https://web.archive.org/web/20200516070928/https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_12239.92.0_peppy_recovery_stable-channel_mp-v3.bin.zip" +_sha1sum="cd5917cbe7f821ad769bf0fd87046898f9e175c8" +_mrc_complete_hash="d18de1e3d52c0815b82ea406ca07897c56c65696" +_mrc_complete="mrc/haswell/mrc.bin" + +cbdir="coreboot/default" +cbfstool="${cbdir}/util/cbfstool/cbfstool" + +main() +{ + printf "Downloading Intel MRC blobs\n" + + check_existing && exit 0 + build_dependencies + fetch_mrc +} + +check_existing() +{ + if [ ! -f ${_mrc_complete} ]; then + return 1 + fi + printf 'found existing mrc.bin, checking its hash\n' + if [ "$(sha1sum ${_mrc_complete} | awk '{print $1}')" \ + = "${_mrc_complete_hash}" ]; then + printf 'checksums matched, skipping downloading\n' + return 0 + else + printf 'hashes did not match, starting over\n' + return 1 + fi +} + +build_dependencies() +{ + if [ ! -d "${cbdir}/" ]; then + ./download coreboot default + fi + if [ ! -f "${cbfstool}" ]; then + ./build module cbutils default + fi +} + +fetch_mrc() +{ + mkdir -p mrc/haswell/ + + ( + cd mrc/haswell/ + + download_image ${_url} ${_file} ${_sha1sum} + if [ ! -f ${_file} ]; then + download_image ${_url2} ${_file} ${_sha1sum} + fi + if [ ! -f $_file ]; then + printf "%s not downloaded / verification failed. Exiting.\n" \ + ${_file} + exit 1 + fi + + extract_partition ROOT-A ${_file} root-a.ext2 + extract_shellball root-a.ext2 chromeos-firmwareupdate-${_board} + + extract_coreboot chromeos-firmwareupdate-${_board} + + ../../${cbfstool} coreboot-*.bin extract -f mrc.bin \ + -n mrc.bin -r RO_SECTION + rm -f "chromeos-firmwareupdate-${_board}" coreboot-*.bin \ + "${_file}" "root-a.ext2" + + printf "\n\nmrc.bin saved to ${_mrc_complete}\n\n" + ) +} + download_image() { _url=${1} @@ -35,7 +117,8 @@ download_image() echo "Downloading recovery image" curl "$_url" > "$_file.zip" - if [ "$(sha1sum ${_file}.zip | awk '{print $1}')" = "${_sha1sum}" ]; then + if [ "$(sha1sum ${_file}.zip | awk '{print $1}')" = "${_sha1sum}" ] + then unzip -q "${_file}.zip" rm "${_file}.zip" echo "Checksum verification passed for recovery image." @@ -71,8 +154,8 @@ extract_shellball() SHELLBALL=${2} echo "Extracting chromeos-firmwareupdate" - printf "cd /usr/sbin\ndump chromeos-firmwareupdate ${SHELLBALL}\nquit" | \ - debugfs ${ROOTFS} > /dev/null 2>&1 + printf "cd /usr/sbin\ndump chromeos-firmwareupdate ${SHELLBALL}\nquit" \ + | debugfs ${ROOTFS} > /dev/null 2>&1 } extract_coreboot() @@ -90,80 +173,4 @@ extract_coreboot() rm -r "${_unpacked}" } -check_existing() -{ - _mrc_complete_hash="d18de1e3d52c0815b82ea406ca07897c56c65696" - if [ -f mrc/haswell/mrc.bin ]; then - printf 'found existing mrc.bin, checking its hash\n' - if [ "$(sha1sum mrc/haswell/mrc.bin | awk '{print $1}')" = "${_mrc_complete_hash}" ]; then - printf 'checksums matched, skipping redownloading image\n' - return 0 - else - printf 'hashes did not match, starting over\n' - return 1 - fi - - else - return 1 - fi -} - -# Skips redownloading every time the script runs -check_existing && exit 0 - -if [ ! -d "coreboot/default/" ]; then - ./download coreboot default -fi - -if [ ! -f "coreboot/default/util/cbfstool/cbfstool" ]; then - ./build module cbutils default -fi - -# Remove the old version that may still exist -# ------------------------------------------------------------------------------ - -printf "Downloading Intel MRC blobs\n" - - -#rm -Rf "mrc/" - -mkdir -p mrc/haswell/ - -( - -cd mrc/haswell/ - -# https://web.archive.org/web/20210211071412/https://dl.google.com/dl/edgedl/chromeos/recovery/recovery.conf -# peppy image used as defined here, mrc.bin extracted from that. -# when wanting to use an updated version later on, just change the url and -# sha1sums and such, in this script, based on a newer version on archive.org. - -# For haswell mrc.bin, used on ThinkPad T440p and W541 -_board="peppy" -_file="chromeos_12239.92.0_peppy_recovery_stable-channel_mp-v3.bin" -_url="https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_12239.92.0_peppy_recovery_stable-channel_mp-v3.bin.zip" -_url2="https://web.archive.org/web/20200516070928/https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_12239.92.0_peppy_recovery_stable-channel_mp-v3.bin.zip" -_sha1sum="cd5917cbe7f821ad769bf0fd87046898f9e175c8" - -download_image ${_url} ${_file} ${_sha1sum} -if [ ! -f ${_file} ]; then - download_image ${_url2} ${_file} ${_sha1sum} -fi -if [ ! -f $_file ]; then - echo "${_file} was not downloaded, or verification failed. Exiting" - exit 1 -fi - -extract_partition ROOT-A ${_file} root-a.ext2 -extract_shellball root-a.ext2 chromeos-firmwareupdate-${_board} - -extract_coreboot chromeos-firmwareupdate-${_board} - -../../coreboot/default/util/cbfstool/cbfstool coreboot-*.bin extract -f mrc.bin -n mrc.bin -r RO_SECTION -rm -f "chromeos-firmwareupdate-${_board}" coreboot-*.bin "${_file}" "root-a.ext2" - -printf "\n\nHaswell mrc.bin file (for T440p and W541) downloaded to mrc/haswell/mrc.bin\n\n" - -) - -exit 0 +main $@ From 7b36ffc1e586664f06637b1a1bd07233d18ddb9e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 14:33:21 +0100 Subject: [PATCH 0076/2290] download/mrc: handle exit status within subshell the previous code merely exited from the subshell, but the intended behaviour is for the entire script to halt execution, and exit with non-zero status. this patch fixes that bug. --- resources/scripts/download/mrc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/resources/scripts/download/mrc b/resources/scripts/download/mrc index 69c9eff2..63ec0100 100755 --- a/resources/scripts/download/mrc +++ b/resources/scripts/download/mrc @@ -43,8 +43,11 @@ _mrc_complete="mrc/haswell/mrc.bin" cbdir="coreboot/default" cbfstool="${cbdir}/util/cbfstool/cbfstool" +sname="" + main() { + sname=${0} printf "Downloading Intel MRC blobs\n" check_existing && exit 0 @@ -90,9 +93,7 @@ fetch_mrc() download_image ${_url2} ${_file} ${_sha1sum} fi if [ ! -f $_file ]; then - printf "%s not downloaded / verification failed. Exiting.\n" \ - ${_file} - exit 1 + fail "%{_file} not downloaded / verification failed." fi extract_partition ROOT-A ${_file} root-a.ext2 @@ -173,4 +174,11 @@ extract_coreboot() rm -r "${_unpacked}" } +fail() +{ + printf "%s: ERROR: %s\n" + ${sname} ${1} + exit 1 +} + main $@ From 557272fa39e10e8cf6154f723913ab5c494c6101 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 14:44:00 +0100 Subject: [PATCH 0077/2290] download/mrc: stricter error handling the cbfstool command within subshell now also exits with non-zero status, if it fails (most likely because extraction failed, for some reason, of the coreboot rom image for running through it) --- resources/scripts/download/mrc | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/resources/scripts/download/mrc b/resources/scripts/download/mrc index 63ec0100..ed0b38f3 100755 --- a/resources/scripts/download/mrc +++ b/resources/scripts/download/mrc @@ -51,8 +51,8 @@ main() printf "Downloading Intel MRC blobs\n" check_existing && exit 0 - build_dependencies - fetch_mrc + build_dependencies || fail "could not build dependencies" + fetch_mrc || fail "could not fetch mrc.bin" } check_existing() @@ -74,16 +74,17 @@ check_existing() build_dependencies() { if [ ! -d "${cbdir}/" ]; then - ./download coreboot default + ./download coreboot default || return 1 fi if [ ! -f "${cbfstool}" ]; then - ./build module cbutils default + ./build module cbutils default || return 1 fi + return 0 } fetch_mrc() { - mkdir -p mrc/haswell/ + mkdir -p mrc/haswell/ || return 1 ( cd mrc/haswell/ @@ -102,22 +103,25 @@ fetch_mrc() extract_coreboot chromeos-firmwareupdate-${_board} ../../${cbfstool} coreboot-*.bin extract -f mrc.bin \ - -n mrc.bin -r RO_SECTION + -n mrc.bin -r RO_SECTION \ + || fail "Could not fetch mrc.bin" rm -f "chromeos-firmwareupdate-${_board}" coreboot-*.bin \ "${_file}" "root-a.ext2" printf "\n\nmrc.bin saved to ${_mrc_complete}\n\n" ) + + return 0 } download_image() { - _url=${1} + url=${1} _file=${2} _sha1sum=${3} echo "Downloading recovery image" - curl "$_url" > "$_file.zip" + curl "$url" > "$_file.zip" if [ "$(sha1sum ${_file}.zip | awk '{print $1}')" = "${_sha1sum}" ] then unzip -q "${_file}.zip" From b74e407806f47d4eb7e2a4de244686ca95916d95 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 20:06:03 +0100 Subject: [PATCH 0078/2290] blobutil/download: cleaner coding style consistent indentation, and 80-line character limit (RFC 2646) top-down order, a main() is introduced, split into more functions non-zero-status exit (with message) now, when a non- defined target is provided, e.g. nonexistentboard_4mb puffy! --- resources/scripts/blobs/download | 347 +++++++++++++++++-------------- 1 file changed, 196 insertions(+), 151 deletions(-) diff --git a/resources/scripts/blobs/download b/resources/scripts/blobs/download index f8b72265..8ee1e3e0 100755 --- a/resources/scripts/blobs/download +++ b/resources/scripts/blobs/download @@ -8,13 +8,18 @@ ec_url="" ec_url_bkup="" ec_hash="" - +dl_hash="" +dl_url="" +dl_url_bkup="" e6400_vga_dl_hash="" e6400_vga_dl_url="" e6400_vga_dl_url_bkup="" e6400_vga_offset="" e6400_vga_romname="" +cbdir="coreboot/default" +cbcfgsdir="resources/coreboot" +boarddir="" blobdir="blobs" dl_path="${blobdir}/vendorupdate" appdir="${blobdir}/app" @@ -22,174 +27,196 @@ _7ztest="a" mecleaner="$(pwd)/me_cleaner/me_cleaner.py" e6400_unpack="$(pwd)/bios_extract/dell_inspiron_1100_unpacker.py" me7updateparser="$(pwd)/resources/blobs/me7_update_parser.py" -kbc1126_ec_dump="$(pwd)/coreboot/default/util/kbc1126/kbc1126_ec_dump" -board="${1}" -# A shorthand for each board, to avoid duplicating configs per flash size -board_short=${board%%_*mb} +kbc1126_ec_dump="$(pwd)/${cbdir}/util/kbc1126/kbc1126_ec_dump" +board="" +_b="" # board shorthand without e.g. _4mb (avoid duplication per flash size) -set -- "resources/coreboot/${board}/config/*" -. ${1} 2>/dev/null -. "resources/coreboot/${board}/board.cfg" +CONFIG_HAVE_MRC="" +CONFIG_HAVE_IFD_BIN="" +CONFIG_HAVE_ME_BIN="" +CONFIG_HAVE_GBE_BIN="" +CONFIG_KBC1126_FIRMWARE="" +CONFIG_BOARD_DELL_E6400="" +CONFIG_VGA_BIOS_FILE="" -if [ "${CONFIG_HAVE_MRC}" = "y" ]; then - printf 'haswell board detected, downloading mrc\n' - needs="${needs} MRC" -fi +main() +{ + board="${1}" + boarddir="${cbcfgsdir}/${board}" -if [ "${CONFIG_HAVE_IFD_BIN}" = "y" ]; then - printf 'board needs intel firmware descriptor\n' - needs="${needs} IFD" -fi + if [ ! -d "${boarddir}" ]; then + fail "Target not defined" + elif [ ! -f "${boarddir}/board.cfg" ]; then + fail "Target missing board.cfg" + fi + + detect_firmware || exit 0 + scan_sources_config -if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then - printf 'board needs intel management engine\n' - needs="${needs} ME" -fi + build_dependencies + download_blobs +} -if [ "${CONFIG_HAVE_GBE_BIN}" = "y" ]; then - printf 'board needs gigabit ethernet firmware\n' - needs="${needs} GBE" -fi +detect_firmware() +{ + set -- "${boarddir}/config/"* + . ${1} 2>/dev/null + . "${boarddir}/board.cfg" -if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then - printf "HP board with KBC1126 EC detected, downloading ec\n" - needs="${needs} EC" -fi - -if [ "${CONFIG_BOARD_DELL_E6400}" = "y" ] \ + if [ "${CONFIG_HAVE_MRC}" = "y" ]; then + needs="${needs} MRC" + fi + if [ "${CONFIG_HAVE_IFD_BIN}" = "y" ]; then + needs="${needs} IFD" + fi + if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then + needs="${needs} ME" + fi + if [ "${CONFIG_HAVE_GBE_BIN}" = "y" ]; then + needs="${needs} GBE" + fi + if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then + needs="${needs} EC" + fi + if [ "${CONFIG_BOARD_DELL_E6400}" = "y" ] \ && [ "${CONFIG_VGA_BIOS_FILE}" != "" ]; then - printf "Dell E6400 with Nvidia GPU detected, downloading VGA ROM\n" - needs="${needs} E6400VGA" -fi + needs="${needs} E6400VGA" + fi + if [ -z ${needs+x} ]; then + printf 'No binary blobs needed for this board\n' + return 1 + fi + printf "Firmware needed for board %s: %s\n" ${board} ${needs} + return 0 +} -# Quickly exit without wasting more time if there are no blobs needed (GM45) -if [ -z ${needs+x} ]; then - printf 'No binary blobs needed for this board\n' - exit 0 -fi +scan_sources_config() +{ + # Shorthand (avoid duplicating configs per flash size) + _b=${board%%_*mb} -while read -r line ; do - case ${line} in + awkstr=" /\{.*${_b}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }" + + while read -r line ; do + case ${line} in EC_url*) - set ${line} - ec_url=${2} - ;; + set ${line} + ec_url=${2} + ;; EC_url_bkup*) - set ${line} - ec_url_bkup=${2} - ;; + set ${line} + ec_url_bkup=${2} + ;; EC_hash*) - set ${line} - ec_hash=${2} - ;; + set ${line} + ec_hash=${2} + ;; DL_hash*) - set ${line} - dl_hash=${2} - ;; + set ${line} + dl_hash=${2} + ;; DL_url*) - set ${line} - dl_url=${2} - ;; + set ${line} + dl_url=${2} + ;; DL_url_bkup*) - set ${line} - dl_url_bkup=${2} - ;; + set ${line} + dl_url_bkup=${2} + ;; E6400_VGA_DL_hash*) - set ${line} - e6400_vga_dl_hash=${2} - ;; + set ${line} + e6400_vga_dl_hash=${2} + ;; E6400_VGA_DL_url*) - set ${line} - e6400_vga_dl_url=${2} - ;; + set ${line} + e6400_vga_dl_url=${2} + ;; E6400_VGA_DL_url_bkup*) - set ${line} - e6400_vga_dl_url_bkup=${2} - ;; + set ${line} + e6400_vga_dl_url_bkup=${2} + ;; E6400_VGA_offset*) - set ${line} - e6400_vga_offset=${2} - ;; + set ${line} + e6400_vga_offset=${2} + ;; E6400_VGA_romname*) - set ${line} - e6400_vga_romname=${2} - ;; - esac -done << EOF -$(eval "awk ' /\{.*${board_short}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }' resources/blobs/sources") + set ${line} + e6400_vga_romname=${2} + ;; + esac + done << EOF + $(eval "awk '${awkstr}' resources/blobs/sources") EOF - -Main() { - Build_deps - Download_needed } -Fail(){ - printf "\nERROR: $@\n" - exit 1 -} - -Build_deps(){ +build_dependencies() +{ if [ ! -d me_cleaner ]; then printf "downloading me_cleaner\n" - ./download me_cleaner || Fail 'could not download me_cleaner' + ./download me_cleaner || fail "could not download me_cleaner" fi - if [ ! -d coreboot/default ]; then + if [ ! -d ${cbdir} ]; then printf "downloading coreboot\n" - ./download coreboot default || Fail 'could not download coreboot' + ./download coreboot default \ + || fail "could not download coreboot" fi if [ ! -d bios_extract ]; then printf "downloading bios_extract\n" - ./download bios_extract || Fail 'could not download bios_extract' + ./download bios_extract \ + || fail "could not download bios_extract" fi - if [ ! -f coreboot/default/util/kbc1126/kbc1126_ec_dump ]; then + if [ ! -f ${cbdir}/util/kbc1126/kbc1126_ec_dump ]; then printf "Building kbc1126_ec_dump from coreboot\n" - make -BC coreboot/default/util/kbc1126 || Fail \ - "could not build kbc1126_ec_dump" + make -BC ${cbdir}/util/kbc1126 \ + || fail "could not build kbc1126_ec_dump" fi - if [ ! -f "coreboot/default/util/ifdtool/ifdtool" ]; then + if [ ! -f "${cbdir}/util/ifdtool/ifdtool" ]; then printf "building ifdtool from coreboot\n" - make -C coreboot/default/util/ifdtool || Fail 'could not build ifdtool' + make -C ${cbdir}/util/ifdtool \ + || fail 'could not build ifdtool' fi } -Download_needed(){ +download_blobs() +{ for need in ${needs}; do case ${need} in - *ME*) - Download_me || _failed="${_failed} me" - ;; - *MRC*) - ./download mrc || _failed="${_failed} mrc" - ;; - *EC*) - Download_ec || _failed="${_failed} ec" - ;; - *E6400VGA*) - Download_e6400vga || _failed="${_failed} e6400vga" - ;; - esac + *ME*) + download_blob_intel_me || _failed="${_failed} me" + ;; + *EC*) + download_ec || _failed="${_failed} ec" + ;; + *E6400VGA*) + download_e6400vga || _failed="${_failed} e6400vga" + ;; + *MRC*) + ./download mrc || _failed="${_failed} mrc" + ;; + esac done if [ ! -z ${_failed+x} ]; then - Fail "failed to obtain ${_failed}\nYou may try manually extracting blobs with './blobutil extract'" + fail "failed to obtain ${_failed}\nTry manual extraction?" fi } -Download_me() { +download_blob_intel_me() +{ printf "Downloading neutered ME for board: %s\n" ${board} - Fetch_update me || return 1 - Extract_me || return 1 + fetch_update me || return 1 + extract_blob_intel_me || return 1 return 0 } -Extract_me(){ +extract_blob_intel_me() +{ printf "Extracting neutered ME for ${board}\n" _me_destination=${CONFIG_ME_BIN_PATH#../../} @@ -207,20 +234,23 @@ Extract_me(){ return 0 fi - printf 'extracting and stripping intel management engine\n' - innoextract ${dl_path} -d ${blobdir} \ - || 7z x ${dl_path} -o${appdir} \ - || Fail 'could not extract me executable with innoextract' + printf "Extracting and stripping Intel ME firmware\n" - Bruteforce_extract_me "$(pwd)/${_me_destination}" "$(pwd)/${appdir}" \ - || return 1 + innoextract ${dl_path} -d ${blobdir} \ + || 7z x ${dl_path} -o${appdir} \ + || fail 'Could not extract vendor update' + + bruteforce_extract_blob_intel_me "$(pwd)/${_me_destination}" \ + "$(pwd)/${appdir}" \ + || fail "Could not extract Intel ME firmware" printf "Truncated and cleaned me output to ${_me_destination}\n" return 0 } # cursed, carcinogenic code. TODO rewrite it better -Bruteforce_extract_me() { +bruteforce_extract_blob_intel_me() +{ _me_destination="${1}" cdir="${2}" # must be an absolute path, not relative @@ -242,19 +272,22 @@ Bruteforce_extract_me() { # symlinks are a security risk, in this context continue elif [ -f "${i}" ]; then - "${mecleaner}" -r -t -O "${sdir}/vendorfile" -M "${_me_destination}" "${i}" \ + "${mecleaner}" -r -t -O "${sdir}/vendorfile" \ + -M "${_me_destination}" "${i}" \ && break # (we found me.bin) "${mecleaner}" -r -t -O "${_me_destination}" "${i}" \ && break # (we found me.bin) "${me7updateparser}" -O ${_me_destination} "${i}" \ - && break + && break # (we found me.bin) _7ztest="${_7ztest}a" 7z x "${i}" -o${_7ztest} || continue - Bruteforce_extract_me "${_me_destination}" "${cdir}/${_7ztest}" + bruteforce_extract_blob_intel_me "${_me_destination}" \ + "${cdir}/${_7ztest}" cdir="${1}" cd "${cdir}" elif [ -d "$i" ]; then - Bruteforce_extract_me "${_me_destination}" "${cdir}/${i}" + bruteforce_extract_blob_intel_me "${_me_destination}" \ + "${cdir}/${i}" cdir="${1}" cd "${cdir}" else @@ -266,23 +299,25 @@ Bruteforce_extract_me() { rm -Rf "${sdir}" if [ ! -f "${_me_destination}" ]; then - printf "me.bin not found in vendor update for board: %s\n" ${board} + printf "me.bin not found in vendor update for: %s\n" ${board} return 1 else return 0 fi } -Download_ec() { +download_ec() +{ printf "Downloading KBC1126 EC firmware for HP laptop\n" - Fetch_update ec || return 1 - Extract_ec || return 1 + fetch_update ec || return 1 + extract_ec || return 1 return 0 } -Extract_ec() { +extract_ec() +{ printf "Extracting KBC1126 EC firmware for board: %s\n" ${board} _ec_destination=${CONFIG_KBC1126_FW1#../../} @@ -315,28 +350,31 @@ Extract_ec() { ) for i in 1 2; do - if [ ! -f "${appdir}/${dl_path##*/}/ec.bin.fw${i}" ]; then - printf "Not found: %s/%s/ec.bin.fw%s\n" \ - ${appdir} ${dl_path##*/} ${i} - printf "Could not extract EC firmware for board: %s\n" \ - ${board} - return 1 + if [ -f "${appdir}/${dl_path##*/}/ec.bin.fw${i}" ]; then + continue fi + printf "Not found: %s/%s/ec.bin.fw%s\n" \ + ${appdir} ${dl_path##*/} ${i} + printf "Could not extract EC firmware for: %s\n" \ + ${board} + return 1 done cp "${appdir}/${dl_path##*/}"/ec.bin.fw* "${_ec_destination%/*}/" } -Download_e6400vga() { +download_e6400vga() +{ printf "Downloading Nvidia VGA ROM for Dell Latitude E6400\n" - Fetch_update e6400vga || return 1 - Extract_e6400vga || return 1 + fetch_update e6400vga || return 1 + extract_e6400vga || return 1 return 0 } -Extract_e6400vga() { +extract_e6400vga() +{ printf "Extracting Nvidia VGA ROM for ${board}\n" _vga_destination=${CONFIG_VGA_BIOS_FILE#../../} @@ -369,11 +407,11 @@ Extract_e6400vga() { tail -c +${e6400_vga_offset} "${dl_path##*/}" \ | gunzip > bios.bin if [ ! -f "bios.bin" ]; then - Fail 'Could not extract bios.bin from Dell E6400 update' + fail 'Could not extract bios.bin from Dell E6400 update' fi "${e6400_unpack}" bios.bin || printf "TODO: fix dell extract util\n" if [ ! -f "${e6400_vga_romname}" ]; then - Fail 'Could not extract VGA ROM from Dell E6400 BIOS update' + fail 'Could not extract VGA ROM from Dell E6400 BIOS update' fi ) @@ -383,7 +421,8 @@ Extract_e6400vga() { return 0 } -Fetch_update() { +fetch_update() +{ printf "Fetching vendor update for board: %s\n" ${board} fw_type="${1}" @@ -412,28 +451,34 @@ Fetch_update() { return 1 fi - Vendor_checksum ${dlsum} || \ + vendor_checksum ${dlsum} || \ wget ${dl} -O ${dl_path} || wget ${dl_bkup} -O ${dl_path} - Vendor_checksum ${dlsum} || Fail \ - "Cannot guarantee intergity of vendor update for board: ${board}" + vendor_checksum ${dlsum} || fail \ + "Cannot guarantee intergity of vendor update for: ${board}" return 0 } -Vendor_checksum() { +vendor_checksum() +{ sha1=$1 if [ ! -f "${dl_path}" ]; then - printf "Vendor update not found on disk for board: %s\n" ${board} + printf "Vendor update not found on disk for: %s\n" ${board} return 1 fi if [ "$(sha1sum ${dl_path} | awk '{print $1}')" != "${sha1}" ]; then - printf "Bad checksum on vendor update for board: %s\n" ${board} -# rm ${dl_path} + printf "Bad checksum on vendor update for: %s\n" ${board} return 1 fi return 0 } -Main +fail() +{ + printf "\nERROR: $@\n" + exit 1 +} + +main $@ From ddad8f00c628ce9cb301fe550a2b516e6009a98e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 21:20:20 +0100 Subject: [PATCH 0079/2290] build/seabios: simplify. stricter error handling --- resources/scripts/build/payload/seabios | 66 ++++++++++--------------- 1 file changed, 26 insertions(+), 40 deletions(-) diff --git a/resources/scripts/build/payload/seabios b/resources/scripts/build/payload/seabios index 4a7ba626..7cff55c7 100755 --- a/resources/scripts/build/payload/seabios +++ b/resources/scripts/build/payload/seabios @@ -22,53 +22,39 @@ [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e -# Build SeaBIOS -# --------------------------------------------------------------------- - printf "Building SeaBIOS payloads and SeaVGABIOS\n" -[ ! -d "payload/" ] && mkdir -p payload/ -[ ! -d "payload/seabios" ] && mkdir -p payload/seabios/ - -rm -f payload/seabios/* - -if [ ! -d "seabios/" ]; then - ./download seabios +if [ ! -d "payload/seabios" ]; then + mkdir -p payload/seabios/ || exit 1 fi -cd seabios/ +rm -f payload/seabios/* || exit 1 -# for libgfxinit setup: -[ -f Makefile ] && make distclean -cp ../resources/seabios/config/libgfxinit .config -make silentoldconfig -j$(nproc) -make -j$(nproc) -mv out/bios.bin.elf ../payload/seabios/seabios_libgfxinit.elf -mv out/vgabios.bin ../payload/seabios/seavgabios.bin -rm .config +if [ ! -d "seabios/" ]; then + ./download seabios || exit 1 +fi -# for vgarom setup: -[ -f Makefile ] && make distclean -cp ../resources/seabios/config/vgarom .config -make silentoldconfig -j$(nproc) -make -j$(nproc) -mv out/bios.bin.elf ../payload/seabios/seabios_vgarom.elf -rm .config - -# for normal setup: -[ -f Makefile ] && make distclean -cp ../resources/seabios/config/normal .config -make silentoldconfig -j$(nproc) -make -j$(nproc) -mv out/bios.bin.elf ../payload/seabios/seabios_normal.elf -rm .config +for x in normal vgarom libgfxinit; do + if [ ! -f seabios/Makefile ]; then + printf "SeaBIOS not properly downloaded.\n" + exit 1 + fi + make distclean -BC seabios || exit 1 + cp "resources/seabios/config/${x}" seabios/.config + make silentoldconfig -j$(nproc) -BC seabios || exit 1 + make -j$(nproc) -BC seabios || exit 1 + cp seabios/out/bios.bin.elf "payload/seabios/seabios_${x}.elf" \ + || exit 1 + if [ "${x}" = "libgfxinit" ]; then + cp seabios/out/vgabios.bin payload/seabios/seavgabios.bin \ + || exit 1 + fi + rm -f seabios/.config || exit 1 +done # clean it again. gotta keep it clean! -[ -f Makefile ] && make distclean +if [ -f seabios/Makefile ]; then + make distclean -BC seabios || exit 1 +fi printf "Done! SeaBIOS files are in payload/seabios/\n\n" - -# done. go back to main directory -cd ../ - -# ------------------- DONE ---------------------- From 1388cccbc730bb6240ccd3f2b8e9c30996f6b864 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 21:33:19 +0100 Subject: [PATCH 0080/2290] build/seabios: cleaner coding style top-down logic, main() on top moved some hardcoded strings to variables --- resources/scripts/build/payload/seabios | 80 ++++++++++++++++--------- 1 file changed, 51 insertions(+), 29 deletions(-) diff --git a/resources/scripts/build/payload/seabios b/resources/scripts/build/payload/seabios index 7cff55c7..c05b1b11 100755 --- a/resources/scripts/build/payload/seabios +++ b/resources/scripts/build/payload/seabios @@ -22,39 +22,61 @@ [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e -printf "Building SeaBIOS payloads and SeaVGABIOS\n" +payloaddir="payload/seabios" +seabios_elf="seabios/out/bios.bin.elf" +seavgabios="seabios/out/vgabios.bin" -if [ ! -d "payload/seabios" ]; then - mkdir -p payload/seabios/ || exit 1 -fi +main() +{ + printf "Building SeaBIOS payloads and SeaVGABIOS\n" -rm -f payload/seabios/* || exit 1 + check_dependencies + build_seabios_payloads -if [ ! -d "seabios/" ]; then - ./download seabios || exit 1 -fi - -for x in normal vgarom libgfxinit; do - if [ ! -f seabios/Makefile ]; then - printf "SeaBIOS not properly downloaded.\n" - exit 1 + # clean it again. gotta keep it clean! + if [ -f seabios/Makefile ]; then + make distclean -BC seabios || exit 1 fi - make distclean -BC seabios || exit 1 - cp "resources/seabios/config/${x}" seabios/.config - make silentoldconfig -j$(nproc) -BC seabios || exit 1 - make -j$(nproc) -BC seabios || exit 1 - cp seabios/out/bios.bin.elf "payload/seabios/seabios_${x}.elf" \ - || exit 1 - if [ "${x}" = "libgfxinit" ]; then - cp seabios/out/vgabios.bin payload/seabios/seavgabios.bin \ - || exit 1 + + printf "Done! SeaBIOS files are in %s/\n\n" ${payloaddir} +} + +check_dependencies() +{ + if [ ! -d "${payloaddir}" ]; then + mkdir -p ${payloaddir}/ || exit 1 fi - rm -f seabios/.config || exit 1 -done -# clean it again. gotta keep it clean! -if [ -f seabios/Makefile ]; then - make distclean -BC seabios || exit 1 -fi + rm -f ${payloaddir}/* || exit 1 -printf "Done! SeaBIOS files are in payload/seabios/\n\n" + if [ ! -d "seabios/" ]; then + ./download seabios || exit 1 + fi +} + +build_seabios_payloads() +{ + for x in normal vgarom libgfxinit; do + if [ ! -f seabios/Makefile ]; then + printf "SeaBIOS not properly downloaded.\n" + exit 1 + fi + + make distclean -BC seabios || exit 1 + + cp "resources/seabios/config/${x}" seabios/.config + make silentoldconfig -j$(nproc) -BC seabios || exit 1 + make -j$(nproc) -BC seabios || exit 1 + + seabios_elf_dst="${payloaddir}/seabios_${x}.elf" + cp ${seabios_elf} "${seabios_elf_dst}" || exit 1 + + if [ "${x}" = "libgfxinit" ]; then + cp ${seavgabios} ${payloaddir}/seavgabios.bin \ + || exit 1 + fi + rm -f seabios/.config || exit 1 + done +} + +main $@ From 8b4c1c165236b529b488e50960277b3e949fc13e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 14 May 2023 22:43:36 +0100 Subject: [PATCH 0081/2290] download/coreboot: consistent tab indentation --- resources/scripts/download/coreboot | 30 ++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 821ee321..f1998958 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -34,21 +34,21 @@ usage() { progname="./download coreboot" printf "Usage:\n" - printf "\t%s # %s\n" \ - "${progname}" \ - "Download coreboot for all the boards" + printf "\t%s\t\t\t# %s\n" \ + "${progname}" \ + "Download coreboot for all the boards" printf "\t%s [board [board] ...] # %s\n" \ - "${progname}" \ - "Download coreboot for the given boards" - printf "\t%s --list-boards # %s\n" \ - "${progname}" \ - "Prints this help" - printf "\t%s --help # %s\n" \ - "${progname}" \ - "List supported boards" - printf "\t%s --help # %s\n" \ - "${progname}" \ - "Prints this help" + "${progname}" \ + "Download coreboot for the given boards" + printf "\t%s --list-boards\t# %s\n" \ + "${progname}" \ + "Prints this help" + printf "\t%s --help\t\t# %s\n" \ + "${progname}" \ + "List supported boards" + printf "\t%s --help\t\t# %s\n" \ + "${progname}" \ + "Prints this help" } # In this script, set -u is used to check for undefined variables, and @@ -197,7 +197,7 @@ downloadfor() { # extra.sh on a per-board basis # In fact, extra.sh can be used for anything you want. if [ -f "../../resources/coreboot/${board}/extra.sh" ]; then - "../../resources/coreboot/${board}/extra.sh" || touch ../../build_error + "../../resources/coreboot/${board}/extra.sh" || touch ../../build_error if [ -f ../../build_error ]; then cd ../../; return 1 fi From 2871db159d5619e87054eaff019e1ecea25bb239 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 00:03:56 +0100 Subject: [PATCH 0082/2290] download/coreboot: RFC 2646 compliance yes, i know 3676 supersedes 2646 i still say 2646 saying 2646 is still technically valid, for my purposes --- resources/scripts/download/coreboot | 119 ++++++++++++++++++---------- 1 file changed, 75 insertions(+), 44 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index f1998958..b5825892 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -2,7 +2,8 @@ # helper script: download coreboot # -# Copyright (C) 2014, 2015, 2016, 2020, 2021 Leah Rowe +# Copyright (C) 2014,2015,2016,2020,2021,2023 Leah Rowe +# # Copyright (C) 2022 Alper Nebi Yasak # Copyright (C) 2022 Ferass El Hafidi # @@ -20,6 +21,8 @@ # along with this program. If not, see . # +# TODO: purge this entire file. it's terrible. re-write it more cleanly. + [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e @@ -34,21 +37,12 @@ usage() { progname="./download coreboot" printf "Usage:\n" - printf "\t%s\t\t\t# %s\n" \ - "${progname}" \ - "Download coreboot for all the boards" - printf "\t%s [board [board] ...] # %s\n" \ - "${progname}" \ - "Download coreboot for the given boards" - printf "\t%s --list-boards\t# %s\n" \ - "${progname}" \ - "Prints this help" - printf "\t%s --help\t\t# %s\n" \ - "${progname}" \ - "List supported boards" - printf "\t%s --help\t\t# %s\n" \ - "${progname}" \ - "Prints this help" + printf "\t%s\t\t\t# Clone coreboot for all boards\n" "${progname}" + printf "\t%s [board [board] ...] # Clone coreboot for given boards\n" \ + ${progname} + printf "\t%s --list-boards\t# Prints this help\n" ${progname} + printf "\t%s --help\t\t# List supported boards\n" ${progname} + printf "\t%s --help\t\t# Prints this help\n" ${progname} } # In this script, set -u is used to check for undefined variables, and @@ -74,26 +68,35 @@ downloadfor() { cbrevision="undefined" # 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) + # such that a tree referencing a tree that references another + # tree is possible (and so on and so forth) + while true; do cbrevision="undefined" cbtree="undefined" if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then - printf "ERROR: download/coreboot: board.cfg does not exist for '%s'\n" "${board}" + printf "ERROR: download/coreboot: board.cfg does not" + printf " exist for '%s'\n" ${board} return 1 fi if [ -f "resources/coreboot/${board}/seen" ]; then - printf "ERROR: download/coreboot: logical loop; '%s' board.cfg refers to another tree, which ultimately refers back to '%s'.\n" "${board}" "${board}" + 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 # This is to override $cbrevision and $cbtree - . "resources/coreboot/${board}/board.cfg" || touch ../build_error + . "resources/coreboot/${board}/board.cfg" \ + || touch ../build_error + if [ -f build_error ]; then - printf "ERROR: download/coreboot: problem sourcing %s/board.cfg\n" "${board}" + printf "ERROR: download/coreboot:" + printf " problem sourcing %s/board.cfg\n" "${board}" return 1 fi touch "resources/coreboot/${board}/seen" @@ -102,12 +105,16 @@ downloadfor() { board="${cbtree}" else if [ "${cbtree}" = "undefined" ]; then - printf "ERROR: download/coreboot: tree name undefined for '%s\n'" "${board}" + printf "ERROR: download/coreboot:" + printf " tree name undefined for '%s\n'" \ + ${board} return 1 fi if [ "${cbrevision}" = "undefined" ]; then - printf "ERROR: download/coreboot: commit ID undefined for '%s'\n" "${board}" + printf "ERROR: download/coreboot:" + printf " commit ID undefined for '%s'\n" \ + ${board} return 1 fi break @@ -117,7 +124,8 @@ downloadfor() { rm -f resources/coreboot/*/seen if [ -d "coreboot/${cbtree}" ]; then - printf "REMARK: download/coreboot: directory for '%s' already exists. Skipping setup.\n" "${cbtree}" + printf "REMARK: download/coreboot %s: exists. Skipping.\n" \ + ${cbtree} if [ "${cbtree}" != "${1}" ]; then printf "(for board: '${1}')\n" fi @@ -128,7 +136,8 @@ downloadfor() { mkdir "coreboot/" fi if [ ! -d coreboot ]; then - printf "ERROR: download/coreboot: directory not created. Check file system permissions\n" + printf "ERROR: download/coreboot: directory not created." + printf " Check file system permissions\n" return 1 fi @@ -140,42 +149,56 @@ downloadfor() { if [ ! -d coreboot ]; then printf "Download coreboot from upstream:\n" - git clone https://review.coreboot.org/coreboot || rm -Rf coreboot + git clone https://review.coreboot.org/coreboot \ + || rm -Rf coreboot if [ ! -d coreboot ]; then - printf "WARNING: Upstream failed. Trying backup github repository:\n" - git clone https://github.com/coreboot/coreboot.git || rm -Rf coreboot + printf "WARNING: Upstream failed. Trying backup:\n" + git clone https://github.com/coreboot/coreboot.git \ + || rm -Rf coreboot fi if [ ! -d coreboot ]; then - printf "ERROR: download/coreboot: Problem with git-clone. Network issue?\n" - cd ../; return 1 + printf "ERROR: download/coreboot:" + printf " Problem with git-clone. Network issue?\n" + cd ../ + return 1 fi else ( cd coreboot/; git pull || touch ../build_error ) if [ -f ../build_error ]; then - printf "ERROR: download/coreboot: Problem with git-pull. Network issue?\n" - cd ../; return 1 + printf "ERROR: download/coreboot:" + printf " Problem with git-pull. Network issue?\n" + cd ../ + return 1 fi fi cp -R coreboot "${cbtree}" || touch ../build_error if [ -d ../build_error ]; then - printf "ERROR: download/coreboot: Unable to copy directory. Check file system permissions or free space.\n" + printf "ERROR: download/coreboot: Unable to copy directory." + printf " Check file system permissions or free space.\n" rm -Rf "${cbtree}/" - cd ../; return 1 + cd ../ + return 1 fi cd ${cbtree}/ git reset --hard ${cbrevision} || touch ../../build_error if [ -f ../../build_error ]; then - printf "ERROR: download/coreboot: Unable to reset to commit ID/tag '%s' for board '%s' on tree '%s'\n" "${cbrevision}" "${1}" "${cbtree}" - cd ../../; return 1 + printf "ERROR: download/coreboot: Unable to reset to commit" + printf " ID/tag '%s' for board '%s' on tree '%s'\n" \ + ${cbrevision} ${1} ${cbtree} + cd ../../ + return 1 fi git submodule update --init --checkout || touch ../../build_error if [ -f ../../build_error ]; then - printf "ERROR: download/coreboot: Unable to update submodules for tree '%s'\n" "${cbtree}" - cd ../../; return 1 + printf "ERROR: download/coreboot:" + printf " Unable to update submodules for tree '%s'\n" \ + ${cbtree} + cd ../../ + return 1 fi for patch in ../../resources/coreboot/${cbtree}/patches/*.patch; do @@ -185,9 +208,12 @@ downloadfor() { git am "${patch}" || touch ../../build_error if [ -f ../../build_error ]; then - printf "ERROR: download/coreboot: Unable to apply patch '%s' for board '%s' on tree '%s'" "${patch}" "${1}" "${cbtree}" + printf "ERROR: download/coreboot: Unable to apply" + printf " patch '%s' for board '%s' on tree '%s'" \ + ${patch} ${1} ${cbtree} git am --abort - cd ../../; return 1 + cd ../../ + return 1 fi done @@ -197,7 +223,8 @@ downloadfor() { # extra.sh on a per-board basis # In fact, extra.sh can be used for anything you want. if [ -f "../../resources/coreboot/${board}/extra.sh" ]; then - "../../resources/coreboot/${board}/extra.sh" || touch ../../build_error + "../../resources/coreboot/${board}/extra.sh" \ + || touch ../../build_error if [ -f ../../build_error ]; then cd ../../; return 1 fi @@ -214,7 +241,9 @@ if [ $# -gt 0 ]; then for board in "${@}"; do rm -f resources/coreboot/*/seen downloadfor "${board}" - if [ -f build_error ]; then break; fi + if [ -f build_error ]; then + break + fi done else for board in resources/coreboot/*; do @@ -223,7 +252,9 @@ else continue fi downloadfor "${board##*/}" - if [ -f build_error ]; then break; fi + if [ -f build_error ]; then + break + fi done fi From b24fbc74c36bfd5089d44e0ec3983a3fe9ef50fa Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 00:10:19 +0100 Subject: [PATCH 0083/2290] download/coreboot: move initial logic to main() --- resources/scripts/download/coreboot | 93 +++++++++++++++-------------- 1 file changed, 49 insertions(+), 44 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index b5825892..1a596fd0 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -26,6 +26,54 @@ [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e +main() +{ + # In this script, set -u is used to check for undefined variables, and + # the test command doesn't do any lazy evaluation, so we can't use + # a syntax like that: [ $# -eq 1 -a "$1" = "--help" ]. + + if [ $# -eq 1 ] && [ "$1" = "--help" ] ; then + usage + exit 0 + elif [ $# -eq 1 ] && [ "$1" = "--list-boards" ] ; then + list_supported_boards + exit 0 + fi + + [ -f build_error ] && rm -f build_error + + rm -f resources/coreboot/*/seen + + printf "Downloading coreboot and (if available) applying patches\n" + + if [ $# -gt 0 ]; then + for board in "${@}"; do + rm -f resources/coreboot/*/seen + downloadfor "${board}" + if [ -f build_error ]; then + break + fi + done + else + for board in resources/coreboot/*; do + rm -f resources/coreboot/*/seen + if [ ! -d "${board}/" ]; then + continue + fi + downloadfor "${board##*/}" + if [ -f build_error ]; then + break + fi + done + fi + + rm -f resources/coreboot/*/seen + + rm -f "build_error" + printf "\n\n" + exit 0 +} + list_supported_boards() { for board in resources/coreboot/*; do @@ -45,22 +93,6 @@ usage() printf "\t%s --help\t\t# Prints this help\n" ${progname} } -# In this script, set -u is used to check for undefined variables, and -# the test command doesn't do any lazy evaluation, so we can't use -# a syntax like that: [ $# -eq 1 -a "$1" = "--help" ]. - -if [ $# -eq 1 ] && [ "$1" = "--help" ] ; then - usage - exit 0 -elif [ $# -eq 1 ] && [ "$1" = "--list-boards" ] ; then - list_supported_boards - exit 0 -fi - -[ -f build_error ] && rm -f build_error - -rm -f resources/coreboot/*/seen - downloadfor() { board="${1}" @@ -235,31 +267,4 @@ downloadfor() { fi } -printf "Downloading coreboot and (if exist in build system) applying patches\n" - -if [ $# -gt 0 ]; then - for board in "${@}"; do - rm -f resources/coreboot/*/seen - downloadfor "${board}" - if [ -f build_error ]; then - break - fi - done -else - for board in resources/coreboot/*; do - rm -f resources/coreboot/*/seen - if [ ! -d "${board}/" ]; then - continue - fi - downloadfor "${board##*/}" - if [ -f build_error ]; then - break - fi - done -fi - -rm -f resources/coreboot/*/seen - -rm -f "build_error" -printf "\n\n" -exit 0 +main $@ From fd8b8084ee8b6785c342d16db9f49c059672e8f0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 00:17:05 +0100 Subject: [PATCH 0084/2290] download/coreboot: simplified for loops --- resources/scripts/download/coreboot | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 1a596fd0..f9f6bcbe 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -46,26 +46,20 @@ main() printf "Downloading coreboot and (if available) applying patches\n" + boards="" if [ $# -gt 0 ]; then - for board in "${@}"; do - rm -f resources/coreboot/*/seen - downloadfor "${board}" - if [ -f build_error ]; then - break - fi - done + boards=$@ else for board in resources/coreboot/*; do - rm -f resources/coreboot/*/seen - if [ ! -d "${board}/" ]; then - continue - fi - downloadfor "${board##*/}" - if [ -f build_error ]; then - break - fi + [ ! -d "${board}" ] && continue + boards="${boards} ${board}" done fi + for board in ${boards}; do + rm -f resources/coreboot/*/seen + downloadfor "${board}" + [ -f build_error ] && break + done rm -f resources/coreboot/*/seen @@ -234,9 +228,7 @@ downloadfor() { fi for patch in ../../resources/coreboot/${cbtree}/patches/*.patch; do - if [ ! -f "${patch}" ]; then - continue - fi + [ ! -f "${patch}" ] && continue git am "${patch}" || touch ../../build_error if [ -f ../../build_error ]; then From 7a6f40fcbf01607714b92cca025a40ec6798a055 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 00:22:54 +0100 Subject: [PATCH 0085/2290] download/coreboot: top-down re-ordering main first usage last --- resources/scripts/download/coreboot | 38 ++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index f9f6bcbe..514e6f38 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -68,25 +68,6 @@ main() exit 0 } -list_supported_boards() -{ - for board in resources/coreboot/*; do - echo $board | sed 's#resources/coreboot/##' - done -} - -usage() -{ - progname="./download coreboot" - printf "Usage:\n" - printf "\t%s\t\t\t# Clone coreboot for all boards\n" "${progname}" - printf "\t%s [board [board] ...] # Clone coreboot for given boards\n" \ - ${progname} - printf "\t%s --list-boards\t# Prints this help\n" ${progname} - printf "\t%s --help\t\t# List supported boards\n" ${progname} - printf "\t%s --help\t\t# Prints this help\n" ${progname} -} - downloadfor() { board="${1}" @@ -259,4 +240,23 @@ downloadfor() { fi } +usage() +{ + progname="./download coreboot" + printf "Usage:\n" + printf "\t%s\t\t\t# Clone coreboot for all boards\n" "${progname}" + printf "\t%s [board [board] ...] # Clone coreboot for given boards\n" \ + ${progname} + printf "\t%s --list-boards\t# Prints this help\n" ${progname} + printf "\t%s --help\t\t# List supported boards\n" ${progname} + printf "\t%s --help\t\t# Prints this help\n" ${progname} +} + +list_supported_boards() +{ + for board in resources/coreboot/*; do + echo $board | sed 's#resources/coreboot/##' + done +} + main $@ From 4c2cff5e7c13ac14b76552dcc46feb4d3608a0ed Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 00:27:08 +0100 Subject: [PATCH 0086/2290] download/coreboot functions: rename board variable --- resources/scripts/download/coreboot | 32 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 514e6f38..2690afe0 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -70,7 +70,7 @@ main() downloadfor() { - board="${1}" + _board="${1}" cbtree="undefined" cbrevision="undefined" @@ -82,46 +82,46 @@ downloadfor() { cbrevision="undefined" cbtree="undefined" - if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then + if [ ! -f "resources/coreboot/${_board}/board.cfg" ]; then printf "ERROR: download/coreboot: board.cfg does not" - printf " exist for '%s'\n" ${board} + printf " exist for '%s'\n" ${_board} return 1 fi - if [ -f "resources/coreboot/${board}/seen" ]; then + if [ -f "resources/coreboot/${_board}/seen" ]; then printf "ERROR: download/coreboot: logical loop:" printf " '%s' board.cfg refers to another tree," \ - ${board} + ${_board} printf " which ultimately refers back to '%s'." \ - ${board} + ${_board} return 1 fi # This is to override $cbrevision and $cbtree - . "resources/coreboot/${board}/board.cfg" \ + . "resources/coreboot/${_board}/board.cfg" \ || touch ../build_error if [ -f build_error ]; then printf "ERROR: download/coreboot:" - printf " problem sourcing %s/board.cfg\n" "${board}" + printf " problem sourcing %s/board.cfg\n" ${_board} return 1 fi - touch "resources/coreboot/${board}/seen" + touch "resources/coreboot/${_board}/seen" - if [ "${board}" != "${cbtree}" ]; then + if [ "${_board}" != "${cbtree}" ]; then board="${cbtree}" else if [ "${cbtree}" = "undefined" ]; then printf "ERROR: download/coreboot:" printf " tree name undefined for '%s\n'" \ - ${board} + ${_board} return 1 fi if [ "${cbrevision}" = "undefined" ]; then printf "ERROR: download/coreboot:" printf " commit ID undefined for '%s'\n" \ - ${board} + ${_board} return 1 fi break @@ -227,8 +227,8 @@ downloadfor() { # 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/coreboot/${board}/extra.sh" ]; then - "../../resources/coreboot/${board}/extra.sh" \ + if [ -f "../../resources/coreboot/${_board}/extra.sh" ]; then + "../../resources/coreboot/${_board}/extra.sh" \ || touch ../../build_error if [ -f ../../build_error ]; then cd ../../; return 1 @@ -254,8 +254,8 @@ usage() list_supported_boards() { - for board in resources/coreboot/*; do - echo $board | sed 's#resources/coreboot/##' + for _board in resources/coreboot/*; do + echo ${_board} | sed 's#resources/coreboot/##' done } From 31d8fcd3fdc57af09072cf1fca71b7c7fc2ef49e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 00:40:54 +0100 Subject: [PATCH 0087/2290] download/coreboot: split main() --- resources/scripts/download/coreboot | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 2690afe0..d7f7a82a 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -39,9 +39,17 @@ main() list_supported_boards exit 0 fi - [ -f build_error ] && rm -f build_error + fetch_coreboot_trees + + rm -f "build_error" + printf "\n\n" + exit 0 +} + +fetch_coreboot_trees() +{ rm -f resources/coreboot/*/seen printf "Downloading coreboot and (if available) applying patches\n" @@ -62,10 +70,6 @@ main() done rm -f resources/coreboot/*/seen - - rm -f "build_error" - printf "\n\n" - exit 0 } downloadfor() { From e47aaa8ff0f4ccd6fdb50055a50b4a9affd0a81e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 00:42:36 +0100 Subject: [PATCH 0088/2290] download/coreboot: prune errant comments --- resources/scripts/download/coreboot | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index d7f7a82a..5b2284d8 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -28,10 +28,6 @@ set -u -e main() { - # In this script, set -u is used to check for undefined variables, and - # the test command doesn't do any lazy evaluation, so we can't use - # a syntax like that: [ $# -eq 1 -a "$1" = "--help" ]. - if [ $# -eq 1 ] && [ "$1" = "--help" ] ; then usage exit 0 @@ -78,10 +74,6 @@ downloadfor() { cbtree="undefined" cbrevision="undefined" - # 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 and so forth) - while true; do cbrevision="undefined" cbtree="undefined" @@ -226,11 +218,8 @@ downloadfor() { 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. + # extra.sh can be used for anything + # but should *only* be a last resort if [ -f "../../resources/coreboot/${_board}/extra.sh" ]; then "../../resources/coreboot/${_board}/extra.sh" \ || touch ../../build_error From c32ae5979fbd2c32e9712be067a2a967365512e1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 00:43:55 +0100 Subject: [PATCH 0089/2290] download/coreboot: rename function for clarity --- resources/scripts/download/coreboot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 5b2284d8..bcf9c3cd 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -61,14 +61,14 @@ fetch_coreboot_trees() fi for board in ${boards}; do rm -f resources/coreboot/*/seen - downloadfor "${board}" + download_for_board "${board}" [ -f build_error ] && break done rm -f resources/coreboot/*/seen } -downloadfor() { +download_for_board() { _board="${1}" cbtree="undefined" From 342e846f28553b56a9d303eeb0510071ea7fbdd8 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 00:44:26 +0100 Subject: [PATCH 0090/2290] download/coreboot: consistent function declaration --- resources/scripts/download/coreboot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index bcf9c3cd..04d2c09d 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -68,8 +68,8 @@ fetch_coreboot_trees() rm -f resources/coreboot/*/seen } -download_for_board() { - +download_for_board() +{ _board="${1}" cbtree="undefined" cbrevision="undefined" From 62038f1d03d3626854b405b5e42f17c82053c12f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 00:47:31 +0100 Subject: [PATCH 0091/2290] download/coreboot: fix misnamed variable --- resources/scripts/download/coreboot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 04d2c09d..6e4b0d44 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -105,7 +105,7 @@ download_for_board() touch "resources/coreboot/${_board}/seen" if [ "${_board}" != "${cbtree}" ]; then - board="${cbtree}" + _board="${cbtree}" else if [ "${cbtree}" = "undefined" ]; then printf "ERROR: download/coreboot:" From a33e5c67f3be27eb236c7046db8a459ae9dee5c1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 01:07:32 +0100 Subject: [PATCH 0092/2290] download/coreboot: split config check to function --- resources/scripts/download/coreboot | 33 +++++++++++++++-------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 6e4b0d44..87f38987 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -78,31 +78,16 @@ download_for_board() cbrevision="undefined" cbtree="undefined" - if [ ! -f "resources/coreboot/${_board}/board.cfg" ]; then - printf "ERROR: download/coreboot: board.cfg does not" - printf " exist for '%s'\n" ${_board} - return 1 - fi - - if [ -f "resources/coreboot/${_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 + check_config_for_board "${_board}" || return 1 # This is to override $cbrevision and $cbtree . "resources/coreboot/${_board}/board.cfg" \ || touch ../build_error - if [ -f build_error ]; then printf "ERROR: download/coreboot:" printf " problem sourcing %s/board.cfg\n" ${_board} return 1 fi - touch "resources/coreboot/${_board}/seen" if [ "${_board}" != "${cbtree}" ]; then _board="${cbtree}" @@ -233,6 +218,22 @@ download_for_board() fi } +check_config_for_board() +{ + if [ ! -f "resources/coreboot/${1}/board.cfg" ]; then + printf "ERROR: download/coreboot: board.cfg does not" + printf " exist for '%s'\n" ${1} + return 1 + elif [ -f "resources/coreboot/${1}/seen" ]; then + printf "ERROR: download/coreboot: logical loop:" + printf " '%s' board.cfg refers to another tree," ${1} + printf " which ultimately refers back to '%s'." ${1} + return 1 + fi + touch "resources/coreboot/${1}/seen" + return 0 +} + usage() { progname="./download coreboot" From f858baea93ee8ca5aa37d7458826f9a69ec84dee Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 01:12:37 +0100 Subject: [PATCH 0093/2290] download/coreboot allow downloading specific trees this fixes a regression caused in previous (recent) revisions. this script is a beast, and requires a lot of taming, which is the purpose of my audit --- resources/scripts/download/coreboot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 87f38987..7aa8d916 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -37,7 +37,7 @@ main() fi [ -f build_error ] && rm -f build_error - fetch_coreboot_trees + fetch_coreboot_trees $@ rm -f "build_error" printf "\n\n" From ee79d8ba95ae19cc8e99919d244a4ed108697518 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 01:21:20 +0100 Subject: [PATCH 0094/2290] download/coreboot: reduce indentation in loop --- resources/scripts/download/coreboot | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 7aa8d916..72bd28d2 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -87,24 +87,20 @@ download_for_board() printf "ERROR: download/coreboot:" printf " problem sourcing %s/board.cfg\n" ${_board} return 1 - fi - - if [ "${_board}" != "${cbtree}" ]; then + elif [ "${_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 - if [ "${cbtree}" = "undefined" ]; then - printf "ERROR: download/coreboot:" - printf " tree name undefined for '%s\n'" \ - ${_board} - return 1 - fi - - if [ "${cbrevision}" = "undefined" ]; then - printf "ERROR: download/coreboot:" - printf " commit ID undefined for '%s'\n" \ - ${_board} - return 1 - fi break fi done From 56b80c0a4c806d97a3e6103378d03563c4164525 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 01:24:24 +0100 Subject: [PATCH 0095/2290] download/coreboot: rename function for clarity --- resources/scripts/download/coreboot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 72bd28d2..45af272a 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -61,14 +61,14 @@ fetch_coreboot_trees() fi for board in ${boards}; do rm -f resources/coreboot/*/seen - download_for_board "${board}" + download_coreboot_for_board "${board}" [ -f build_error ] && break done rm -f resources/coreboot/*/seen } -download_for_board() +download_coreboot_for_board() { _board="${1}" cbtree="undefined" From 162f4bf5ddd5edb584c2821cad16230e0fee2ed0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 02:17:39 +0100 Subject: [PATCH 0096/2290] download/coreboot: use global variables i'm going to move the config recursion check into a separate function, and global variables make it easier to handle --- resources/scripts/download/coreboot | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 45af272a..ec99a26f 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -26,6 +26,10 @@ [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e +_board="" +cbtree="" +cbrevision="" + main() { if [ $# -eq 1 ] && [ "$1" = "--help" ] ; then From d28584f3d039adc3753e0051081f68b96f1ecadd Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 02:30:14 +0100 Subject: [PATCH 0097/2290] download/coreboot: fetch config in new function --- resources/scripts/download/coreboot | 69 ++++++++++++++++------------- 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index ec99a26f..e0c55c9c 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -78,38 +78,8 @@ download_coreboot_for_board() cbtree="undefined" cbrevision="undefined" - while true; do - cbrevision="undefined" - cbtree="undefined" - - check_config_for_board "${_board}" || return 1 - - # This is to override $cbrevision and $cbtree - . "resources/coreboot/${_board}/board.cfg" \ - || touch ../build_error - if [ -f build_error ]; then - printf "ERROR: download/coreboot:" - printf " problem sourcing %s/board.cfg\n" ${_board} - return 1 - elif [ "${_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 - - rm -f resources/coreboot/*/seen + fetch_coreboot_config "${_board}"; rm -f resources/coreboot/*/seen + [ -f build_error ] && return 1 if [ -d "coreboot/${cbtree}" ]; then printf "REMARK: download/coreboot %s: exists. Skipping.\n" \ @@ -218,6 +188,41 @@ download_coreboot_for_board() fi } +fetch_coreboot_coreboot() +{ + while true; do + cbrevision="undefined" + cbtree="undefined" + + check_config_for_board "${_board}" || return 1 + + # This is to override $cbrevision and $cbtree + . "resources/coreboot/${_board}/board.cfg" \ + || touch ../build_error + if [ -f build_error ]; then + printf "ERROR: download/coreboot:" + printf " problem sourcing %s/board.cfg\n" ${_board} + return 1 + elif [ "${_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 + return 0 +} + check_config_for_board() { if [ ! -f "resources/coreboot/${1}/board.cfg" ]; then From 86512e84bea014a9b9e71b1a5adee93810cba411 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 02:38:22 +0100 Subject: [PATCH 0098/2290] download/coreboot: simplify small if statements --- resources/scripts/download/coreboot | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index e0c55c9c..d8b44ab3 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -84,26 +84,21 @@ download_coreboot_for_board() if [ -d "coreboot/${cbtree}" ]; then printf "REMARK: download/coreboot %s: exists. Skipping.\n" \ ${cbtree} - if [ "${cbtree}" != "${1}" ]; then - printf "(for board: '${1}')\n" - fi + [ "${cbtree}" != "${1}" ] && \ + printf "(for board: '%s}')\n" ${1} return 0 fi - if [ ! -d coreboot ]; then + [ ! -d coreboot ] && \ mkdir "coreboot/" - fi - if [ ! -d coreboot ]; then - printf "ERROR: download/coreboot: directory not created." - printf " Check file system permissions\n" + [ ! -d coreboot ] && \ + printf "ERROR: download/coreboot: directory not created\n" && \ return 1 - fi cd "coreboot/" - if [ ! -d coreboot/.git ] && [ -d coreboot ]; then + [ ! -d coreboot/.git ] && [ -d coreboot ] && \ rm -Rf coreboot/ - fi if [ ! -d coreboot ]; then printf "Download coreboot from upstream:\n" From 00cafd7022045f123dbf433a4b2cdac7699ec585 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 02:39:29 +0100 Subject: [PATCH 0099/2290] download/coreboot: fix misnamed function --- resources/scripts/download/coreboot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index d8b44ab3..8b64b767 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -183,7 +183,7 @@ download_coreboot_for_board() fi } -fetch_coreboot_coreboot() +fetch_coreboot_config() { while true; do cbrevision="undefined" From c17423e475802da6919edbabaad894117ae4b7e8 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 02:51:15 +0100 Subject: [PATCH 0100/2290] download/coreboot: simplify check --- resources/scripts/download/coreboot | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 8b64b767..88692e53 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -89,11 +89,8 @@ download_coreboot_for_board() return 0 fi - [ ! -d coreboot ] && \ - mkdir "coreboot/" - [ ! -d coreboot ] && \ - printf "ERROR: download/coreboot: directory not created\n" && \ - return 1 + [ ! -d coreboot ] && mkdir "coreboot/" + [ ! -d coreboot ] && return 1 cd "coreboot/" From 2d69072a09d7041bf3c8566a1151f92d56b8c87e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 03:24:19 +0100 Subject: [PATCH 0101/2290] download/coreboot: clone upstream via ./gitclone coreboot trees/patching is still handled specifically by "./download coreboot" command now available in lbmk: ./gitclone coreboot this *only* creates the directory at: coreboot/coreboot this directory is never used in builds. it is only used by download/coreboot to create patched trees for each mainboard --- resources/git/revisions | 7 +++++ resources/scripts/download/coreboot | 40 ++++++++--------------------- 2 files changed, 17 insertions(+), 30 deletions(-) diff --git a/resources/git/revisions b/resources/git/revisions index 1658beb7..09857823 100644 --- a/resources/git/revisions +++ b/resources/git/revisions @@ -6,6 +6,13 @@ # gitclone script. Each entry must include: revision 'rev', location # 'loc', and the git url 'url'. Bkup_url is optional. +{coreboot}{ + rev: HEAD + loc: coreboot/coreboot + url: https://review.coreboot.org/coreboot + bkup_url: https://github.com/coreboot/coreboot.git +} + {grub}{ rev: f7564844f82b57078d601befadc438b5bc1fa01b loc: grub diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 88692e53..2410880a 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -89,39 +89,19 @@ download_coreboot_for_board() return 0 fi - [ ! -d coreboot ] && mkdir "coreboot/" - [ ! -d coreboot ] && return 1 + [ ! -d coreboot ] && \ + mkdir -p coreboot + [ ! -d coreboot ] && \ + exit 1 + [ -d coreboot/coreboot ] && \ + rm -Rf coreboot/coreboot + [ -d coreboot/coreboot ] && \ + exit 1 + ./gitclone coreboot || \ + exit 1 cd "coreboot/" - [ ! -d coreboot/.git ] && [ -d coreboot ] && \ - rm -Rf coreboot/ - - if [ ! -d coreboot ]; then - printf "Download coreboot from upstream:\n" - git clone https://review.coreboot.org/coreboot \ - || rm -Rf coreboot - if [ ! -d coreboot ]; then - printf "WARNING: Upstream failed. Trying backup:\n" - git clone https://github.com/coreboot/coreboot.git \ - || rm -Rf coreboot - fi - if [ ! -d coreboot ]; then - printf "ERROR: download/coreboot:" - printf " Problem with git-clone. Network issue?\n" - cd ../ - return 1 - fi - else - ( cd coreboot/; git pull || touch ../build_error ) - if [ -f ../build_error ]; then - printf "ERROR: download/coreboot:" - printf " Problem with git-pull. Network issue?\n" - cd ../ - return 1 - fi - fi - cp -R coreboot "${cbtree}" || touch ../build_error if [ -d ../build_error ]; then printf "ERROR: download/coreboot: Unable to copy directory." From bea67353950d1e6972ff5bf362807ab4a767224a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 04:05:27 +0100 Subject: [PATCH 0102/2290] download/coreboot: much cleaner coding style top-down order, and *still* rfc 3676 compliant i finished simplifying the logic, and i split everything into smaller functions there is still more more polishing to do final touches will be done in new revisions --- resources/scripts/download/coreboot | 120 ++++++++++++---------------- 1 file changed, 52 insertions(+), 68 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 2410880a..fa36fd75 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -89,75 +89,10 @@ download_coreboot_for_board() return 0 fi - [ ! -d coreboot ] && \ - mkdir -p coreboot - [ ! -d coreboot ] && \ - exit 1 - [ -d coreboot/coreboot ] && \ - rm -Rf coreboot/coreboot - [ -d coreboot/coreboot ] && \ - exit 1 - ./gitclone coreboot || \ - exit 1 + gitclone_coreboot_from_upstream || exit 1 - cd "coreboot/" - - cp -R coreboot "${cbtree}" || touch ../build_error - if [ -d ../build_error ]; then - printf "ERROR: download/coreboot: Unable to copy directory." - printf " Check file system permissions or free space.\n" - rm -Rf "${cbtree}/" - cd ../ - return 1 - fi - - cd ${cbtree}/ - - git reset --hard ${cbrevision} || touch ../../build_error - if [ -f ../../build_error ]; then - printf "ERROR: download/coreboot: Unable to reset to commit" - printf " ID/tag '%s' for board '%s' on tree '%s'\n" \ - ${cbrevision} ${1} ${cbtree} - cd ../../ - return 1 - fi - - git submodule update --init --checkout || touch ../../build_error - if [ -f ../../build_error ]; then - printf "ERROR: download/coreboot:" - printf " Unable to update submodules for tree '%s'\n" \ - ${cbtree} - cd ../../ - return 1 - fi - - for patch in ../../resources/coreboot/${cbtree}/patches/*.patch; do - [ ! -f "${patch}" ] && continue - - git am "${patch}" || touch ../../build_error - if [ -f ../../build_error ]; then - printf "ERROR: download/coreboot: Unable to apply" - printf " patch '%s' for board '%s' on tree '%s'" \ - ${patch} ${1} ${cbtree} - git am --abort - cd ../../ - return 1 - fi - done - - # extra.sh can be used for anything - # but should *only* be a last resort - if [ -f "../../resources/coreboot/${_board}/extra.sh" ]; then - "../../resources/coreboot/${_board}/extra.sh" \ - || touch ../../build_error - if [ -f ../../build_error ]; then - cd ../../; return 1 - fi - return 0 - else - cd ../../ - return 0 - fi + prepare_new_coreboot_tree "${1}" "${cbtree}" "${cbrevision}" \ + || exit 1 } fetch_coreboot_config() @@ -211,6 +146,55 @@ check_config_for_board() return 0 } +gitclone_coreboot_from_upstream() +{ + [ ! -d coreboot ] && \ + mkdir -p coreboot + [ ! -d coreboot ] && \ + return 1 + [ -d coreboot/coreboot ] && \ + rm -Rf coreboot/coreboot + [ -d coreboot/coreboot ] && \ + return 1 + ./gitclone coreboot || \ + return 1 + return 0 +} + +prepare_new_coreboot_tree() +{ + board=${1} + cbtree=${2} + cbrevision=${3} + + printf "Preparing coreboot tree: %s\n" ${cbtree} + [ "${cbtree}" != "${board}" ] && \ + printf "(for board: %s)\n" "${board}" + + cp -R coreboot/coreboot "coreboot/${cbtree}" || exit 1 + ( + cd "coreboot/${cbtree}" || exit 1 + git reset --hard ${cbrevision} || exit 1 + git submodule update --init --checkout || exit 1 + + for patch in ../../resources/coreboot/${cbtree}/patches/*.patch; do + [ ! -f "${patch}" ] && \ + continue + if ! git am "${patch}"; then + git am --abort + exit 1 + fi + done + + # extra.sh can be used for anything + # but should *only* be a last resort + if [ -f "../../resources/coreboot/${_board}/extra.sh" ]; then + "../../resources/coreboot/${_board}/extra.sh" || \ + exit 1 + fi + ) +} + usage() { progname="./download coreboot" From 0e1e9c1773734c38426529ba8cda2f5b9e5b8f9b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 04:11:10 +0100 Subject: [PATCH 0103/2290] download/coreboot: fix downloads without argument this should download all trees: ./download coreboot without this patch, it doesn't with this patch, it works i overlooked this during earlier refactoring. auditing revealed it. --- resources/scripts/download/coreboot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index fa36fd75..f120270c 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -60,7 +60,7 @@ fetch_coreboot_trees() else for board in resources/coreboot/*; do [ ! -d "${board}" ] && continue - boards="${boards} ${board}" + boards="${boards} ${board##*/}" done fi for board in ${boards}; do From c4b0825c5e70697bac187a0a953cf9b8d122162c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 04:14:50 +0100 Subject: [PATCH 0104/2290] download/coreboot: avoid variable conflict the "board" variable in prepare_new_coreboot_tree() is also declared in fetch_coreboot_trees for the one in prepare_new_coreboot_tree, it's passed as an argument to the function, so give it a new name i learned that some shells have a global scope, when using variables of the same name between functions --- resources/scripts/download/coreboot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index f120270c..4f9855dc 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -163,13 +163,13 @@ gitclone_coreboot_from_upstream() prepare_new_coreboot_tree() { - board=${1} + target=${1} cbtree=${2} cbrevision=${3} printf "Preparing coreboot tree: %s\n" ${cbtree} - [ "${cbtree}" != "${board}" ] && \ - printf "(for board: %s)\n" "${board}" + [ "${cbtree}" != "${target}" ] && \ + printf "(for board: %s)\n" "${target}" cp -R coreboot/coreboot "coreboot/${cbtree}" || exit 1 ( From 66d06afd6c96b24be08436c0b6343a34b1d06027 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 04:17:50 +0100 Subject: [PATCH 0105/2290] download/coreboot: run extra.sh from cbtree to my knowledge, this feature has never been used, but lbmk permits resources/coreboot/boardname/extra.sh to execute, as provided by the maintainer, with working directory set to: coreboot/boardname this could be used to extend lbmk in a number of ways for example, it could be used to patch 3rdparty/ it could also be used to break coreboot in creative and novel ways. hint hint. --- resources/scripts/download/coreboot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 4f9855dc..91284557 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -188,8 +188,8 @@ prepare_new_coreboot_tree() # extra.sh can be used for anything # but should *only* be a last resort - if [ -f "../../resources/coreboot/${_board}/extra.sh" ]; then - "../../resources/coreboot/${_board}/extra.sh" || \ + if [ -f "../../resources/coreboot/${cbtree}/extra.sh" ]; then + "../../resources/coreboot/${cbtree}/extra.sh" || \ exit 1 fi ) From bd82d90faf82fa1ebdd18df7b1fda4da40a01aa4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 04:44:47 +0100 Subject: [PATCH 0106/2290] download/coreboot: tidy up variable names --- resources/scripts/download/coreboot | 42 ++++++++++++++++------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 91284557..e6265d3e 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -21,8 +21,6 @@ # along with this program. If not, see . # -# TODO: purge this entire file. it's terrible. re-write it more cleanly. - [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e @@ -30,6 +28,8 @@ _board="" cbtree="" cbrevision="" +cbcfgsdir="resources/coreboot" + main() { if [ $# -eq 1 ] && [ "$1" = "--help" ] ; then @@ -50,7 +50,7 @@ main() fetch_coreboot_trees() { - rm -f resources/coreboot/*/seen + rm -f ${cbcfgsdir}/*/seen printf "Downloading coreboot and (if available) applying patches\n" @@ -58,18 +58,18 @@ fetch_coreboot_trees() if [ $# -gt 0 ]; then boards=$@ else - for board in resources/coreboot/*; do + for board in ${cbcfgsdir}/*; do [ ! -d "${board}" ] && continue boards="${boards} ${board##*/}" done fi for board in ${boards}; do - rm -f resources/coreboot/*/seen + rm -f ${cbcfgsdir}/*/seen download_coreboot_for_board "${board}" [ -f build_error ] && break done - rm -f resources/coreboot/*/seen + rm -f ${cbcfgsdir}/*/seen } download_coreboot_for_board() @@ -78,7 +78,7 @@ download_coreboot_for_board() cbtree="undefined" cbrevision="undefined" - fetch_coreboot_config "${_board}"; rm -f resources/coreboot/*/seen + fetch_coreboot_config "${_board}"; rm -f ${cbcfgsdir}/*/seen [ -f build_error ] && return 1 if [ -d "coreboot/${cbtree}" ]; then @@ -97,6 +97,8 @@ download_coreboot_for_board() fetch_coreboot_config() { + _board=${1} + while true; do cbrevision="undefined" cbtree="undefined" @@ -104,7 +106,7 @@ fetch_coreboot_config() check_config_for_board "${_board}" || return 1 # This is to override $cbrevision and $cbtree - . "resources/coreboot/${_board}/board.cfg" \ + . "${cbcfgsdir}/${_board}/board.cfg" \ || touch ../build_error if [ -f build_error ]; then printf "ERROR: download/coreboot:" @@ -132,17 +134,19 @@ fetch_coreboot_config() check_config_for_board() { - if [ ! -f "resources/coreboot/${1}/board.cfg" ]; then + _board=${1} + + if [ ! -f "${cbcfgsdir}/${_board}/board.cfg" ]; then printf "ERROR: download/coreboot: board.cfg does not" - printf " exist for '%s'\n" ${1} + printf " exist for '%s'\n" ${_board} return 1 - elif [ -f "resources/coreboot/${1}/seen" ]; then + elif [ -f "${cbcfgsdir}/${_board}/seen" ]; then printf "ERROR: download/coreboot: logical loop:" - printf " '%s' board.cfg refers to another tree," ${1} - printf " which ultimately refers back to '%s'." ${1} + printf " '%s' board.cfg refers to another tree," ${_board} + printf " which ultimately refers back to '%s'." ${_board} return 1 fi - touch "resources/coreboot/${1}/seen" + touch "${cbcfgsdir}/${_board}/seen" return 0 } @@ -177,7 +181,7 @@ prepare_new_coreboot_tree() git reset --hard ${cbrevision} || exit 1 git submodule update --init --checkout || exit 1 - for patch in ../../resources/coreboot/${cbtree}/patches/*.patch; do + for patch in ../../${cbcfgsdir}/${cbtree}/patches/*.patch; do [ ! -f "${patch}" ] && \ continue if ! git am "${patch}"; then @@ -188,8 +192,8 @@ prepare_new_coreboot_tree() # extra.sh can be used for anything # but should *only* be a last resort - if [ -f "../../resources/coreboot/${cbtree}/extra.sh" ]; then - "../../resources/coreboot/${cbtree}/extra.sh" || \ + if [ -f "../../${cbcfgsdir}/${cbtree}/extra.sh" ]; then + "../../${cbcfgsdir}/${cbtree}/extra.sh" || \ exit 1 fi ) @@ -209,8 +213,8 @@ usage() list_supported_boards() { - for _board in resources/coreboot/*; do - echo ${_board} | sed 's#resources/coreboot/##' + for _board in ${cbcfgsdir}/*; do + echo ${_board} | sed 's#${cbcfgsdir}/##' done } From 7bd206b9e735c0b8bd799f70ac9eccb14b2783e6 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 04:52:27 +0100 Subject: [PATCH 0107/2290] download/coreboot: remove errant code the build_error file is obsolete --- resources/scripts/download/coreboot | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index e6265d3e..2523d7d9 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -39,11 +39,9 @@ main() list_supported_boards exit 0 fi - [ -f build_error ] && rm -f build_error fetch_coreboot_trees $@ - rm -f "build_error" printf "\n\n" exit 0 } @@ -66,7 +64,6 @@ fetch_coreboot_trees() for board in ${boards}; do rm -f ${cbcfgsdir}/*/seen download_coreboot_for_board "${board}" - [ -f build_error ] && break done rm -f ${cbcfgsdir}/*/seen @@ -78,8 +75,9 @@ download_coreboot_for_board() cbtree="undefined" cbrevision="undefined" - fetch_coreboot_config "${_board}"; rm -f ${cbcfgsdir}/*/seen - [ -f build_error ] && return 1 + fetch_coreboot_config "${_board}" || exit 1 + + rm -f ${cbcfgsdir}/*/seen if [ -d "coreboot/${cbtree}" ]; then printf "REMARK: download/coreboot %s: exists. Skipping.\n" \ @@ -106,13 +104,9 @@ fetch_coreboot_config() check_config_for_board "${_board}" || return 1 # This is to override $cbrevision and $cbtree - . "${cbcfgsdir}/${_board}/board.cfg" \ - || touch ../build_error - if [ -f build_error ]; then - printf "ERROR: download/coreboot:" - printf " problem sourcing %s/board.cfg\n" ${_board} - return 1 - elif [ "${_board}" != "${cbtree}" ]; then + . "${cbcfgsdir}/${_board}/board.cfg" || exit 1 + + if [ "${_board}" != "${cbtree}" ]; then _board="${cbtree}" continue elif [ "${cbtree}" = "undefined" ]; then From 52d87f5f086041c94340d460d74d77a2253e9d7f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 15 May 2023 05:01:48 +0100 Subject: [PATCH 0108/2290] download/coreboot: minor code cleanup i'm pretty much finished now there might be a few more changes later, like stricter error handling, more verbose error messages, etc right now, it relies on -e to kill lbmk on error, and uses the exit command another planned change it to support other upstreams besides coreboot.org, such as the dasharo codebase the latter is *why* i refactored this download script, for asus kgped-d16 --- resources/scripts/download/coreboot | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 2523d7d9..512616dd 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -38,12 +38,9 @@ main() elif [ $# -eq 1 ] && [ "$1" = "--list-boards" ] ; then list_supported_boards exit 0 + else + fetch_coreboot_trees $@ fi - - fetch_coreboot_trees $@ - - printf "\n\n" - exit 0 } fetch_coreboot_trees() From b496ead7b30b1025595f624c71b5d59756ea9fb4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 22:44:25 +0100 Subject: [PATCH 0109/2290] util/spkmodem_recv: Import from coreboot Imported from util/spkmodem_recv at coreboot revision: e70bc423f9a2e1d13827f2703efe1f9c72549f20 This is a client for spkmodem, to allow serial console via PC speaker. I've decided to import it in lbmk, because I heavily modified it. The patches will be applied next. Signed-off-by: Leah Rowe --- util/spkmodem_recv/.gitignore | 1 + util/spkmodem_recv/Makefile | 9 +++ util/spkmodem_recv/description.md | 1 + util/spkmodem_recv/spkmodem-recv.c | 100 +++++++++++++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 util/spkmodem_recv/.gitignore create mode 100644 util/spkmodem_recv/Makefile create mode 100644 util/spkmodem_recv/description.md create mode 100644 util/spkmodem_recv/spkmodem-recv.c diff --git a/util/spkmodem_recv/.gitignore b/util/spkmodem_recv/.gitignore new file mode 100644 index 00000000..2f5c946c --- /dev/null +++ b/util/spkmodem_recv/.gitignore @@ -0,0 +1 @@ +spkmodem-recv diff --git a/util/spkmodem_recv/Makefile b/util/spkmodem_recv/Makefile new file mode 100644 index 00000000..92a3bfe9 --- /dev/null +++ b/util/spkmodem_recv/Makefile @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +PREFIX ?= /usr/local +INSTALL ?= install + +spkmodem-recv: + $(CC) -o $@ $@.c +install: spkmodem-recv + $(INSTALL) -d $(DESTDIR)$(PREFIX)/bin/ + $(INSTALL) $< -t $(DESTDIR)$(PREFIX)/bin/ diff --git a/util/spkmodem_recv/description.md b/util/spkmodem_recv/description.md new file mode 100644 index 00000000..fe62f169 --- /dev/null +++ b/util/spkmodem_recv/description.md @@ -0,0 +1 @@ +Decode spkmodem signals `C` diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c new file mode 100644 index 00000000..cd7bd483 --- /dev/null +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -0,0 +1,100 @@ +/* spkmodem-recv.c - decode spkmodem signals */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include +#include +#include + +/* Compilation: gcc -o spkmodem-recv spkmodem-recv */ +/* Usage: parec --channels=1 --rate=48000 --format=s16le | ./spkmodem-recv */ + +#define SAMPLES_PER_TRAME 240 +#define FREQ_SEP_MIN 5 +#define FREQ_SEP_MAX 15 +#define FREQ_DATA_MIN 15 +#define FREQ_DATA_THRESHOLD 25 +#define FREQ_DATA_MAX 60 +#define THRESHOLD 500 + +#define DEBUG 0 +#define FLUSH_TIMEOUT 1 + +static signed short trame[2 * SAMPLES_PER_TRAME]; +static signed short pulse[2 * SAMPLES_PER_TRAME]; +static int ringpos = 0; +static int pos, f1, f2; +static int amplitude = 0; +static int lp = 0; + +static void +read_sample (void) +{ + amplitude -= abs (trame[ringpos]); + f1 -= pulse[ringpos]; + f1 += pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; + f2 -= pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; + fread (trame + ringpos, 1, sizeof (trame[0]), stdin); + amplitude += abs (trame[ringpos]); + + if (pos ? (trame[ringpos] < -THRESHOLD) + : (trame[ringpos] > +THRESHOLD)) + { + pulse[ringpos] = 1; + pos = !pos; + f2++; + } + else + pulse[ringpos] = 0; + ringpos++; + ringpos %= 2 * SAMPLES_PER_TRAME; + lp++; +} + +int +main () +{ + int bitn = 7; + char c = 0; + int i; + int llp = 0; + while (!feof (stdin)) + { + if (lp > 3 * SAMPLES_PER_TRAME) + { + bitn = 7; + c = 0; + lp = 0; + llp++; + } + if (llp == FLUSH_TIMEOUT) + fflush (stdout); + if (f2 > FREQ_SEP_MIN && f2 < FREQ_SEP_MAX + && f1 > FREQ_DATA_MIN && f1 < FREQ_DATA_MAX) + { +#if DEBUG + printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, + ftell (stdin) - sizeof (trame)); +#endif + if (f1 < FREQ_DATA_THRESHOLD) + c |= (1 << bitn); + bitn--; + if (bitn < 0) + { +#if DEBUG + printf ("<%c, %x>", c, c); +#else + printf ("%c", c); +#endif + bitn = 7; + c = 0; + } + lp = 0; + llp = 0; + for (i = 0; i < SAMPLES_PER_TRAME; i++) + read_sample (); + continue; + } + read_sample (); + } + return 0; +} From f2887e9b4576f03ba4ec68cfad6beb161597f7cc Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 07:35:53 +0100 Subject: [PATCH 0110/2290] util/spkmodem_recv: Add strict CFLAGS Signed-off-by: Leah Rowe --- util/spkmodem_recv/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/util/spkmodem_recv/Makefile b/util/spkmodem_recv/Makefile index 92a3bfe9..c436b509 100644 --- a/util/spkmodem_recv/Makefile +++ b/util/spkmodem_recv/Makefile @@ -1,9 +1,10 @@ # SPDX-License-Identifier: GPL-2.0-or-later PREFIX ?= /usr/local INSTALL ?= install +CFLAGS ?= -Os -Wall -Wextra -Werror -pedantic spkmodem-recv: - $(CC) -o $@ $@.c + $(CC) $(CFLAGS) -o $@ $@.c install: spkmodem-recv $(INSTALL) -d $(DESTDIR)$(PREFIX)/bin/ $(INSTALL) $< -t $(DESTDIR)$(PREFIX)/bin/ From 754410f2af14a18f3504b1662e271e56c544ba5b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 07:38:05 +0100 Subject: [PATCH 0111/2290] util/spkmodem_recv: Define CC in the Makefile Signed-off-by: Leah Rowe --- util/spkmodem_recv/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/util/spkmodem_recv/Makefile b/util/spkmodem_recv/Makefile index c436b509..3c1bc0e5 100644 --- a/util/spkmodem_recv/Makefile +++ b/util/spkmodem_recv/Makefile @@ -1,4 +1,5 @@ # SPDX-License-Identifier: GPL-2.0-or-later +CC ?= cc PREFIX ?= /usr/local INSTALL ?= install CFLAGS ?= -Os -Wall -Wextra -Werror -pedantic From 9152d0f939ee3e25406c2604ad97b718dfa63993 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 07:39:20 +0100 Subject: [PATCH 0112/2290] util/spkmodem_recv: Add clean to the Makefile Signed-off-by: Leah Rowe --- util/spkmodem_recv/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/util/spkmodem_recv/Makefile b/util/spkmodem_recv/Makefile index 3c1bc0e5..1bba727c 100644 --- a/util/spkmodem_recv/Makefile +++ b/util/spkmodem_recv/Makefile @@ -9,3 +9,5 @@ spkmodem-recv: install: spkmodem-recv $(INSTALL) -d $(DESTDIR)$(PREFIX)/bin/ $(INSTALL) $< -t $(DESTDIR)$(PREFIX)/bin/ +clean: + rm -f spkmodem-recv From 22633e0dc06a6d46306832230e874af49a2bbf34 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 07:53:23 +0100 Subject: [PATCH 0113/2290] util/spkmodem_recv: Use tabs for indentation The GNU indentation style is hard to read. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 111 ++++++++++++++--------------- 1 file changed, 54 insertions(+), 57 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index cd7bd483..d31e6f8c 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -5,7 +5,7 @@ #include #include -/* Compilation: gcc -o spkmodem-recv spkmodem-recv */ +/* Compilation: gcc -o spkmodem-recv spkmodem-recv */ /* Usage: parec --channels=1 --rate=48000 --format=s16le | ./spkmodem-recv */ #define SAMPLES_PER_TRAME 240 @@ -29,72 +29,69 @@ static int lp = 0; static void read_sample (void) { - amplitude -= abs (trame[ringpos]); - f1 -= pulse[ringpos]; - f1 += pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; - f2 -= pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; - fread (trame + ringpos, 1, sizeof (trame[0]), stdin); - amplitude += abs (trame[ringpos]); + amplitude -= abs (trame[ringpos]); + f1 -= pulse[ringpos]; + f1 += pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; + f2 -= pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; + fread (trame + ringpos, 1, sizeof (trame[0]), stdin); + amplitude += abs (trame[ringpos]); - if (pos ? (trame[ringpos] < -THRESHOLD) - : (trame[ringpos] > +THRESHOLD)) - { - pulse[ringpos] = 1; - pos = !pos; - f2++; - } - else - pulse[ringpos] = 0; - ringpos++; - ringpos %= 2 * SAMPLES_PER_TRAME; - lp++; + if (pos ? (trame[ringpos] < -THRESHOLD) + : (trame[ringpos] > +THRESHOLD)) { + pulse[ringpos] = 1; + pos = !pos; + f2++; + } else { + pulse[ringpos] = 0; + } + + ringpos++; + ringpos %= 2 * SAMPLES_PER_TRAME; + lp++; } int main () { - int bitn = 7; - char c = 0; - int i; - int llp = 0; - while (!feof (stdin)) - { - if (lp > 3 * SAMPLES_PER_TRAME) - { - bitn = 7; - c = 0; - lp = 0; - llp++; - } - if (llp == FLUSH_TIMEOUT) - fflush (stdout); - if (f2 > FREQ_SEP_MIN && f2 < FREQ_SEP_MAX - && f1 > FREQ_DATA_MIN && f1 < FREQ_DATA_MAX) - { + int bitn = 7; + char c = 0; + int i; + int llp = 0; + while (!feof (stdin)) { + if (lp > 3 * SAMPLES_PER_TRAME) { + bitn = 7; + c = 0; + lp = 0; + llp++; + } + if (llp == FLUSH_TIMEOUT) + fflush (stdout); + + if (f2 > FREQ_SEP_MIN && f2 < FREQ_SEP_MAX + && f1 > FREQ_DATA_MIN && f1 < FREQ_DATA_MAX) { #if DEBUG - printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, - ftell (stdin) - sizeof (trame)); + printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, + ftell (stdin) - sizeof (trame)); #endif - if (f1 < FREQ_DATA_THRESHOLD) - c |= (1 << bitn); - bitn--; - if (bitn < 0) - { + if (f1 < FREQ_DATA_THRESHOLD) + c |= (1 << bitn); + bitn--; + if (bitn < 0) { #if DEBUG - printf ("<%c, %x>", c, c); + printf ("<%c, %x>", c, c); #else - printf ("%c", c); + printf ("%c", c); #endif - bitn = 7; - c = 0; - } - lp = 0; - llp = 0; - for (i = 0; i < SAMPLES_PER_TRAME; i++) - read_sample (); - continue; + bitn = 7; + c = 0; + } + lp = 0; + llp = 0; + for (i = 0; i < SAMPLES_PER_TRAME; i++) + read_sample (); + continue; + } + read_sample (); } - read_sample (); - } - return 0; + return 0; } From 83b34e2f4808d38e82abcd8d4a5f161eba7e8c24 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 07:58:58 +0100 Subject: [PATCH 0114/2290] util/spkmodem_recv: Reduced indentation in loop Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 46 +++++++++++++++--------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index d31e6f8c..a910b054 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -67,31 +67,31 @@ main () if (llp == FLUSH_TIMEOUT) fflush (stdout); - if (f2 > FREQ_SEP_MIN && f2 < FREQ_SEP_MAX - && f1 > FREQ_DATA_MIN && f1 < FREQ_DATA_MAX) { -#if DEBUG - printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, - ftell (stdin) - sizeof (trame)); -#endif - if (f1 < FREQ_DATA_THRESHOLD) - c |= (1 << bitn); - bitn--; - if (bitn < 0) { -#if DEBUG - printf ("<%c, %x>", c, c); -#else - printf ("%c", c); -#endif - bitn = 7; - c = 0; - } - lp = 0; - llp = 0; - for (i = 0; i < SAMPLES_PER_TRAME; i++) - read_sample (); + if (f2 <= FREQ_SEP_MIN || f2 >= FREQ_SEP_MAX + || f1 <= FREQ_DATA_MIN || f1 >= FREQ_DATA_MAX) { + read_sample (); continue; } - read_sample (); +#if DEBUG + printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, + ftell (stdin) - sizeof (trame)); +#endif + if (f1 < FREQ_DATA_THRESHOLD) + c |= (1 << bitn); + bitn--; + if (bitn < 0) { +#if DEBUG + printf ("<%c, %x>", c, c); +#else + printf ("%c", c); +#endif + bitn = 7; + c = 0; + } + lp = 0; + llp = 0; + for (i = 0; i < SAMPLES_PER_TRAME; i++) + read_sample (); } return 0; } From 88683b767b0da6c3f311d34991e0388a5c1d5299 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 08:05:23 +0100 Subject: [PATCH 0115/2290] util/spkmodem_recv: Define argc/argv in main Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index a910b054..ecee6fbb 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -51,12 +51,15 @@ read_sample (void) } int -main () +main (int argc, char *argv[]) { int bitn = 7; char c = 0; int i; int llp = 0; + + (void)argc; (void)argv; + while (!feof (stdin)) { if (lp > 3 * SAMPLES_PER_TRAME) { bitn = 7; From 3722c1e67a2193d4e74106060183f80a92bd66fe Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 08:13:46 +0100 Subject: [PATCH 0116/2290] util/spkmodem_recv: simplified pulse check Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index ecee6fbb..5efa25a7 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -36,8 +36,7 @@ read_sample (void) fread (trame + ringpos, 1, sizeof (trame[0]), stdin); amplitude += abs (trame[ringpos]); - if (pos ? (trame[ringpos] < -THRESHOLD) - : (trame[ringpos] > +THRESHOLD)) { + if (abs(trame[ringpos]) > THRESHOLD) { /* rising/falling edge(pulse) */ pulse[ringpos] = 1; pos = !pos; f2++; From e2864704320e9fdde78ea34088256d99df9d5931 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 08:17:29 +0100 Subject: [PATCH 0117/2290] util/spkmodem_recv: Top-down logic (main on top) Add the appropriate prototype. Top-down function order is easier to read. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 46 ++++++++++++++++-------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 5efa25a7..d543d32e 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -26,28 +26,7 @@ static int pos, f1, f2; static int amplitude = 0; static int lp = 0; -static void -read_sample (void) -{ - amplitude -= abs (trame[ringpos]); - f1 -= pulse[ringpos]; - f1 += pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; - f2 -= pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; - fread (trame + ringpos, 1, sizeof (trame[0]), stdin); - amplitude += abs (trame[ringpos]); - - if (abs(trame[ringpos]) > THRESHOLD) { /* rising/falling edge(pulse) */ - pulse[ringpos] = 1; - pos = !pos; - f2++; - } else { - pulse[ringpos] = 0; - } - - ringpos++; - ringpos %= 2 * SAMPLES_PER_TRAME; - lp++; -} +static void read_sample (void); int main (int argc, char *argv[]) @@ -97,3 +76,26 @@ main (int argc, char *argv[]) } return 0; } + +static void +read_sample (void) +{ + amplitude -= abs (trame[ringpos]); + f1 -= pulse[ringpos]; + f1 += pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; + f2 -= pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; + fread (trame + ringpos, 1, sizeof (trame[0]), stdin); + amplitude += abs (trame[ringpos]); + + if (abs(trame[ringpos]) > THRESHOLD) { /* rising/falling edge(pulse) */ + pulse[ringpos] = 1; + pos = !pos; + f2++; + } else { + pulse[ringpos] = 0; + } + + ringpos++; + ringpos %= 2 * SAMPLES_PER_TRAME; + lp++; +} From abc5cfd38cf52461bee5d2f71f3320a76b15d3a3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 08:23:19 +0100 Subject: [PATCH 0118/2290] util/spkmodem_recv: Say frame in English Source code should be written in English. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index d543d32e..12595f98 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -8,7 +8,7 @@ /* Compilation: gcc -o spkmodem-recv spkmodem-recv */ /* Usage: parec --channels=1 --rate=48000 --format=s16le | ./spkmodem-recv */ -#define SAMPLES_PER_TRAME 240 +#define SAMPLES_PER_FRAME 240 #define FREQ_SEP_MIN 5 #define FREQ_SEP_MAX 15 #define FREQ_DATA_MIN 15 @@ -19,8 +19,8 @@ #define DEBUG 0 #define FLUSH_TIMEOUT 1 -static signed short trame[2 * SAMPLES_PER_TRAME]; -static signed short pulse[2 * SAMPLES_PER_TRAME]; +static signed short frame[2 * SAMPLES_PER_FRAME]; +static signed short pulse[2 * SAMPLES_PER_FRAME]; static int ringpos = 0; static int pos, f1, f2; static int amplitude = 0; @@ -39,7 +39,7 @@ main (int argc, char *argv[]) (void)argc; (void)argv; while (!feof (stdin)) { - if (lp > 3 * SAMPLES_PER_TRAME) { + if (lp > 3 * SAMPLES_PER_FRAME) { bitn = 7; c = 0; lp = 0; @@ -55,7 +55,7 @@ main (int argc, char *argv[]) } #if DEBUG printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, - ftell (stdin) - sizeof (trame)); + ftell (stdin) - sizeof (frame)); #endif if (f1 < FREQ_DATA_THRESHOLD) c |= (1 << bitn); @@ -71,7 +71,7 @@ main (int argc, char *argv[]) } lp = 0; llp = 0; - for (i = 0; i < SAMPLES_PER_TRAME; i++) + for (i = 0; i < SAMPLES_PER_FRAME; i++) read_sample (); } return 0; @@ -80,14 +80,14 @@ main (int argc, char *argv[]) static void read_sample (void) { - amplitude -= abs (trame[ringpos]); + amplitude -= abs (frame[ringpos]); f1 -= pulse[ringpos]; - f1 += pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; - f2 -= pulse[(ringpos + SAMPLES_PER_TRAME) % (2 * SAMPLES_PER_TRAME)]; - fread (trame + ringpos, 1, sizeof (trame[0]), stdin); - amplitude += abs (trame[ringpos]); + f1 += pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)]; + f2 -= pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)]; + fread (frame + ringpos, 1, sizeof (frame[0]), stdin); + amplitude += abs (frame[ringpos]); - if (abs(trame[ringpos]) > THRESHOLD) { /* rising/falling edge(pulse) */ + if (abs(frame[ringpos]) > THRESHOLD) { /* rising/falling edge(pulse) */ pulse[ringpos] = 1; pos = !pos; f2++; @@ -96,6 +96,6 @@ read_sample (void) } ringpos++; - ringpos %= 2 * SAMPLES_PER_TRAME; + ringpos %= 2 * SAMPLES_PER_FRAME; lp++; } From 5b6f5cb06b0827fc025219224fe4d63abeb951af Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 08:30:24 +0100 Subject: [PATCH 0119/2290] util/spkmodem_recv: Remove space in function calls Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 12595f98..dc2a5bcc 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -26,10 +26,10 @@ static int pos, f1, f2; static int amplitude = 0; static int lp = 0; -static void read_sample (void); +static void read_sample(void); int -main (int argc, char *argv[]) +main(int argc, char *argv[]) { int bitn = 7; char c = 0; @@ -38,7 +38,7 @@ main (int argc, char *argv[]) (void)argc; (void)argv; - while (!feof (stdin)) { + while (!feof(stdin)) { if (lp > 3 * SAMPLES_PER_FRAME) { bitn = 7; c = 0; @@ -46,25 +46,25 @@ main (int argc, char *argv[]) llp++; } if (llp == FLUSH_TIMEOUT) - fflush (stdout); + fflush(stdout); if (f2 <= FREQ_SEP_MIN || f2 >= FREQ_SEP_MAX || f1 <= FREQ_DATA_MIN || f1 >= FREQ_DATA_MAX) { - read_sample (); + read_sample(); continue; } #if DEBUG printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, - ftell (stdin) - sizeof (frame)); + ftell(stdin) - sizeof(frame)); #endif if (f1 < FREQ_DATA_THRESHOLD) c |= (1 << bitn); bitn--; if (bitn < 0) { #if DEBUG - printf ("<%c, %x>", c, c); + printf("<%c, %x>", c, c); #else - printf ("%c", c); + printf("%c", c); #endif bitn = 7; c = 0; @@ -72,20 +72,20 @@ main (int argc, char *argv[]) lp = 0; llp = 0; for (i = 0; i < SAMPLES_PER_FRAME; i++) - read_sample (); + read_sample(); } return 0; } static void -read_sample (void) +read_sample(void) { - amplitude -= abs (frame[ringpos]); + amplitude -= abs(frame[ringpos]); f1 -= pulse[ringpos]; f1 += pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)]; f2 -= pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)]; - fread (frame + ringpos, 1, sizeof (frame[0]), stdin); - amplitude += abs (frame[ringpos]); + fread(frame + ringpos, 1, sizeof(frame[0]), stdin); + amplitude += abs(frame[ringpos]); if (abs(frame[ringpos]) > THRESHOLD) { /* rising/falling edge(pulse) */ pulse[ringpos] = 1; From 2c12e70cfe5e6fd636e399b3306e311ca8e9196b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 08:40:02 +0100 Subject: [PATCH 0120/2290] util/spkmodem_recv: Rename variable for clarity Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index dc2a5bcc..bbd0dea8 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -32,7 +32,7 @@ int main(int argc, char *argv[]) { int bitn = 7; - char c = 0; + char ascii = 0; int i; int llp = 0; @@ -41,7 +41,7 @@ main(int argc, char *argv[]) while (!feof(stdin)) { if (lp > 3 * SAMPLES_PER_FRAME) { bitn = 7; - c = 0; + ascii = 0; lp = 0; llp++; } @@ -58,16 +58,16 @@ main(int argc, char *argv[]) ftell(stdin) - sizeof(frame)); #endif if (f1 < FREQ_DATA_THRESHOLD) - c |= (1 << bitn); + ascii |= (1 << bitn); bitn--; if (bitn < 0) { #if DEBUG - printf("<%c, %x>", c, c); + printf("<%c, %x>", ascii, ascii); #else - printf("%c", c); + printf("%c", ascii); #endif bitn = 7; - c = 0; + ascii = 0; } lp = 0; llp = 0; From 697ae5e2cac9d4be13a1e140a04e4873d96f3325 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 08:42:07 +0100 Subject: [PATCH 0121/2290] util/spkmodem_recv: Remove use of static keyword It is entirely superfluous in this program. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index bbd0dea8..702ea394 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -19,14 +19,14 @@ #define DEBUG 0 #define FLUSH_TIMEOUT 1 -static signed short frame[2 * SAMPLES_PER_FRAME]; -static signed short pulse[2 * SAMPLES_PER_FRAME]; -static int ringpos = 0; -static int pos, f1, f2; -static int amplitude = 0; -static int lp = 0; +signed short frame[2 * SAMPLES_PER_FRAME]; +signed short pulse[2 * SAMPLES_PER_FRAME]; +int ringpos = 0; +int pos, f1, f2; +int amplitude = 0; +int lp = 0; -static void read_sample(void); +void read_sample(void); int main(int argc, char *argv[]) @@ -77,7 +77,7 @@ main(int argc, char *argv[]) return 0; } -static void +void read_sample(void) { amplitude -= abs(frame[ringpos]); From 3d5542944339dda7da74b1fdf3f08a28c834ad17 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 08:50:59 +0100 Subject: [PATCH 0122/2290] util/spkmodem_recv: Rename variable for clarity Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 702ea394..0e98d884 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -31,7 +31,7 @@ void read_sample(void); int main(int argc, char *argv[]) { - int bitn = 7; + int ascii_bit = 7; char ascii = 0; int i; int llp = 0; @@ -40,7 +40,7 @@ main(int argc, char *argv[]) while (!feof(stdin)) { if (lp > 3 * SAMPLES_PER_FRAME) { - bitn = 7; + ascii_bit = 7; ascii = 0; lp = 0; llp++; @@ -58,15 +58,15 @@ main(int argc, char *argv[]) ftell(stdin) - sizeof(frame)); #endif if (f1 < FREQ_DATA_THRESHOLD) - ascii |= (1 << bitn); - bitn--; - if (bitn < 0) { + ascii |= (1 << ascii_bit); + ascii_bit--; + if (ascii_bit < 0) { #if DEBUG printf("<%c, %x>", ascii, ascii); #else printf("%c", ascii); #endif - bitn = 7; + ascii_bit = 7; ascii = 0; } lp = 0; From 179323819b009278b9655d9c1359304205fba5f2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 10:50:35 +0100 Subject: [PATCH 0123/2290] util/spkmodem_recv: Move logic out of main Main should only be a skeletal structure. Actual logic should always be handled externally. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 86 ++++++++++++++++-------------- 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 0e98d884..ae0b03d5 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -27,56 +27,62 @@ int amplitude = 0; int lp = 0; void read_sample(void); +void print_chars(void); int main(int argc, char *argv[]) { - int ascii_bit = 7; - char ascii = 0; - int i; - int llp = 0; - (void)argc; (void)argv; - while (!feof(stdin)) { - if (lp > 3 * SAMPLES_PER_FRAME) { - ascii_bit = 7; - ascii = 0; - lp = 0; - llp++; - } - if (llp == FLUSH_TIMEOUT) - fflush(stdout); + while (!feof(stdin)) + print_chars(); - if (f2 <= FREQ_SEP_MIN || f2 >= FREQ_SEP_MAX - || f1 <= FREQ_DATA_MIN || f1 >= FREQ_DATA_MAX) { - read_sample(); - continue; - } -#if DEBUG - printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, - ftell(stdin) - sizeof(frame)); -#endif - if (f1 < FREQ_DATA_THRESHOLD) - ascii |= (1 << ascii_bit); - ascii_bit--; - if (ascii_bit < 0) { -#if DEBUG - printf("<%c, %x>", ascii, ascii); -#else - printf("%c", ascii); -#endif - ascii_bit = 7; - ascii = 0; - } - lp = 0; - llp = 0; - for (i = 0; i < SAMPLES_PER_FRAME; i++) - read_sample(); - } return 0; } +void +print_chars(void) +{ + static int ascii_bit = 7; + static char ascii = 0; + static int llp = 0; + + if (lp > 3 * SAMPLES_PER_FRAME) { + ascii_bit = 7; + ascii = 0; + lp = 0; + llp++; + } + if (llp == FLUSH_TIMEOUT) + fflush(stdout); + + if (f2 <= FREQ_SEP_MIN || f2 >= FREQ_SEP_MAX + || f1 <= FREQ_DATA_MIN || f1 >= FREQ_DATA_MAX) { + read_sample(); + return; + } +#if DEBUG + printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, + ftell(stdin) - sizeof(frame)); +#endif + if (f1 < FREQ_DATA_THRESHOLD) + ascii |= (1 << ascii_bit); + ascii_bit--; + if (ascii_bit < 0) { +#if DEBUG + printf("<%c, %x>", ascii, ascii); +#else + printf("%c", ascii); +#endif + ascii_bit = 7; + ascii = 0; + } + lp = 0; + llp = 0; + for (int i = 0; i < SAMPLES_PER_FRAME; i++) + read_sample(); +} + void read_sample(void) { From 0cc23b23637620f03fe71562f8859371661d0bef Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 11:31:49 +0100 Subject: [PATCH 0124/2290] util/spkmodem_recv: Add error handling There was literally no error handling before. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index ae0b03d5..6d37ff44 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -1,6 +1,8 @@ /* spkmodem-recv.c - decode spkmodem signals */ /* SPDX-License-Identifier: GPL-2.0-or-later */ +#include +#include #include #include #include @@ -54,7 +56,8 @@ print_chars(void) llp++; } if (llp == FLUSH_TIMEOUT) - fflush(stdout); + if (fflush(stdout) == EOF) + err(errno, NULL); if (f2 <= FREQ_SEP_MIN || f2 >= FREQ_SEP_MAX || f1 <= FREQ_DATA_MIN || f1 >= FREQ_DATA_MAX) { @@ -62,8 +65,11 @@ print_chars(void) return; } #if DEBUG + long stdin_pos = 0; + if ((stdin_pos = ftell(stdin)) == -1) + err(errno, NULL); printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, - ftell(stdin) - sizeof(frame)); + stdin_pos - sizeof(frame)); #endif if (f1 < FREQ_DATA_THRESHOLD) ascii |= (1 << ascii_bit); @@ -90,7 +96,9 @@ read_sample(void) f1 -= pulse[ringpos]; f1 += pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)]; f2 -= pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)]; - fread(frame + ringpos, 1, sizeof(frame[0]), stdin); + if (fread(frame + ringpos, 1, sizeof(frame[0]), stdin) + != sizeof(frame[0])) + err(errno = ECANCELED, "Could not read frame."); amplitude += abs(frame[ringpos]); if (abs(frame[ringpos]) > THRESHOLD) { /* rising/falling edge(pulse) */ From c23806e1f6aa197aba32d51d59461e4ace3e92ec Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 11:36:26 +0100 Subject: [PATCH 0125/2290] util/spkmodem_recv: Use correct printf specifier Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 6d37ff44..05729d11 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -68,7 +68,7 @@ print_chars(void) long stdin_pos = 0; if ((stdin_pos = ftell(stdin)) == -1) err(errno, NULL); - printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, + printf ("%d %d %d @%ld\n", f1, f2, FREQ_DATA_THRESHOLD, stdin_pos - sizeof(frame)); #endif if (f1 < FREQ_DATA_THRESHOLD) From 6c1bf756d341be3560274bebe46b7d2715991dd9 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 11:37:44 +0100 Subject: [PATCH 0126/2290] util/spkmodem_recv: Return errno in main This is a good general practise, to catch errors. Any errors found can then be handled in code. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 05729d11..d239e9c1 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -39,7 +39,7 @@ main(int argc, char *argv[]) while (!feof(stdin)) print_chars(); - return 0; + return errno; } void From 8b851258e240c1dfb7f738f82cbd139dc2612700 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 11:53:23 +0100 Subject: [PATCH 0127/2290] util/spkmodem_recv: Rename functions for clarity Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index d239e9c1..1ba402ca 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -28,8 +28,8 @@ int pos, f1, f2; int amplitude = 0; int lp = 0; -void read_sample(void); -void print_chars(void); +void fetch_sample(void); +void handle_audio(void); int main(int argc, char *argv[]) @@ -37,13 +37,13 @@ main(int argc, char *argv[]) (void)argc; (void)argv; while (!feof(stdin)) - print_chars(); + handle_audio(); return errno; } void -print_chars(void) +handle_audio(void) { static int ascii_bit = 7; static char ascii = 0; @@ -61,7 +61,7 @@ print_chars(void) if (f2 <= FREQ_SEP_MIN || f2 >= FREQ_SEP_MAX || f1 <= FREQ_DATA_MIN || f1 >= FREQ_DATA_MAX) { - read_sample(); + fetch_sample(); return; } #if DEBUG @@ -86,11 +86,11 @@ print_chars(void) lp = 0; llp = 0; for (int i = 0; i < SAMPLES_PER_FRAME; i++) - read_sample(); + fetch_sample(); } void -read_sample(void) +fetch_sample(void) { amplitude -= abs(frame[ringpos]); f1 -= pulse[ringpos]; From 27866e65fbc2f9eb2564f774a5139aeec7fcba89 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 11:53:51 +0100 Subject: [PATCH 0128/2290] util/spkmodem_recv: Re-order prototypes Put them in the same order as declared. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 1ba402ca..b7805954 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -28,8 +28,8 @@ int pos, f1, f2; int amplitude = 0; int lp = 0; -void fetch_sample(void); void handle_audio(void); +void fetch_sample(void); int main(int argc, char *argv[]) From 93cc66425473a3ab8911220d0a6eb9ea27ae3c75 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 11:57:53 +0100 Subject: [PATCH 0129/2290] util/spkmodem_recv: Handle output in new function Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index b7805954..82b71343 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -27,8 +27,11 @@ int ringpos = 0; int pos, f1, f2; int amplitude = 0; int lp = 0; +int ascii_bit = 7; +char ascii = 0; void handle_audio(void); +void print_char(void); void fetch_sample(void); int @@ -45,8 +48,6 @@ main(int argc, char *argv[]) void handle_audio(void) { - static int ascii_bit = 7; - static char ascii = 0; static int llp = 0; if (lp > 3 * SAMPLES_PER_FRAME) { @@ -64,6 +65,18 @@ handle_audio(void) fetch_sample(); return; } + + print_char(); + + lp = 0; + llp = 0; + for (int i = 0; i < SAMPLES_PER_FRAME; i++) + fetch_sample(); +} + +void +print_char(void) +{ #if DEBUG long stdin_pos = 0; if ((stdin_pos = ftell(stdin)) == -1) @@ -83,10 +96,6 @@ handle_audio(void) ascii_bit = 7; ascii = 0; } - lp = 0; - llp = 0; - for (int i = 0; i < SAMPLES_PER_FRAME; i++) - fetch_sample(); } void From a0abcb9f53f805dc7200c81efe2fab14fd58c7e8 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 13:22:09 +0100 Subject: [PATCH 0130/2290] util/spkmodem_recv: Re-order functions for clarity print_char() is referenced last, so declare it last. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 48 +++++++++++++++--------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 82b71343..94a0069e 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -74,30 +74,6 @@ handle_audio(void) fetch_sample(); } -void -print_char(void) -{ -#if DEBUG - long stdin_pos = 0; - if ((stdin_pos = ftell(stdin)) == -1) - err(errno, NULL); - printf ("%d %d %d @%ld\n", f1, f2, FREQ_DATA_THRESHOLD, - stdin_pos - sizeof(frame)); -#endif - if (f1 < FREQ_DATA_THRESHOLD) - ascii |= (1 << ascii_bit); - ascii_bit--; - if (ascii_bit < 0) { -#if DEBUG - printf("<%c, %x>", ascii, ascii); -#else - printf("%c", ascii); -#endif - ascii_bit = 7; - ascii = 0; - } -} - void fetch_sample(void) { @@ -122,3 +98,27 @@ fetch_sample(void) ringpos %= 2 * SAMPLES_PER_FRAME; lp++; } + +void +print_char(void) +{ +#if DEBUG + long stdin_pos = 0; + if ((stdin_pos = ftell(stdin)) == -1) + err(errno, NULL); + printf ("%d %d %d @%ld\n", f1, f2, FREQ_DATA_THRESHOLD, + stdin_pos - sizeof(frame)); +#endif + if (f1 < FREQ_DATA_THRESHOLD) + ascii |= (1 << ascii_bit); + ascii_bit--; + if (ascii_bit < 0) { +#if DEBUG + printf("<%c, %x>", ascii, ascii); +#else + printf("%c", ascii); +#endif + ascii_bit = 7; + ascii = 0; + } +} From 63e43819b30c68c59b26c6b1d883545154bad987 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 13:30:55 +0100 Subject: [PATCH 0131/2290] util/spkmodem_recv: Remove unused variable: pos Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 94a0069e..5f06b3b7 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -24,7 +24,7 @@ signed short frame[2 * SAMPLES_PER_FRAME]; signed short pulse[2 * SAMPLES_PER_FRAME]; int ringpos = 0; -int pos, f1, f2; +int f1, f2; int amplitude = 0; int lp = 0; int ascii_bit = 7; @@ -88,7 +88,6 @@ fetch_sample(void) if (abs(frame[ringpos]) > THRESHOLD) { /* rising/falling edge(pulse) */ pulse[ringpos] = 1; - pos = !pos; f2++; } else { pulse[ringpos] = 0; From 5d03598b990a638a12ede0f08467bcfda43647d7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 13:33:00 +0100 Subject: [PATCH 0132/2290] util/spkmodem_recv: Purge unused global: amplitude Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 5f06b3b7..0614d103 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -23,9 +23,7 @@ signed short frame[2 * SAMPLES_PER_FRAME]; signed short pulse[2 * SAMPLES_PER_FRAME]; -int ringpos = 0; int f1, f2; -int amplitude = 0; int lp = 0; int ascii_bit = 7; char ascii = 0; @@ -77,14 +75,14 @@ handle_audio(void) void fetch_sample(void) { - amplitude -= abs(frame[ringpos]); + static int ringpos = 0; + f1 -= pulse[ringpos]; f1 += pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)]; f2 -= pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)]; if (fread(frame + ringpos, 1, sizeof(frame[0]), stdin) != sizeof(frame[0])) err(errno = ECANCELED, "Could not read frame."); - amplitude += abs(frame[ringpos]); if (abs(frame[ringpos]) > THRESHOLD) { /* rising/falling edge(pulse) */ pulse[ringpos] = 1; From c0f2bf307723cf91a2a9274f616fd72f4bf8bc94 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 13:35:37 +0100 Subject: [PATCH 0133/2290] util/spkmodem_recv: Move global variable: pulse It is only used by a single function. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 0614d103..2f2ff684 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -22,7 +22,6 @@ #define FLUSH_TIMEOUT 1 signed short frame[2 * SAMPLES_PER_FRAME]; -signed short pulse[2 * SAMPLES_PER_FRAME]; int f1, f2; int lp = 0; int ascii_bit = 7; @@ -76,6 +75,7 @@ void fetch_sample(void) { static int ringpos = 0; + static signed short pulse[2 * SAMPLES_PER_FRAME]; f1 -= pulse[ringpos]; f1 += pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)]; From 14190de9e8fc58e370b9ffa05206b7ce5e377833 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 13:42:35 +0100 Subject: [PATCH 0134/2290] util/spkmodem_recv: Use parentheses on comparisons Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 2f2ff684..836363f0 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -47,7 +47,7 @@ handle_audio(void) { static int llp = 0; - if (lp > 3 * SAMPLES_PER_FRAME) { + if (lp > (3 * SAMPLES_PER_FRAME)) { ascii_bit = 7; ascii = 0; lp = 0; @@ -57,8 +57,8 @@ handle_audio(void) if (fflush(stdout) == EOF) err(errno, NULL); - if (f2 <= FREQ_SEP_MIN || f2 >= FREQ_SEP_MAX - || f1 <= FREQ_DATA_MIN || f1 >= FREQ_DATA_MAX) { + if ((f2 <= FREQ_SEP_MIN) || (f2 >= FREQ_SEP_MAX) + || (f1 <= FREQ_DATA_MIN) || (f1 >= FREQ_DATA_MAX)) { fetch_sample(); return; } From 50b35939ded374c4a387a0dd81ac48d92026a98d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 14:11:28 +0100 Subject: [PATCH 0135/2290] util/spkmodem_recv: Make pulse variable global Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index 836363f0..be0aa27e 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -22,6 +22,7 @@ #define FLUSH_TIMEOUT 1 signed short frame[2 * SAMPLES_PER_FRAME]; +signed short pulse[2 * SAMPLES_PER_FRAME]; int f1, f2; int lp = 0; int ascii_bit = 7; @@ -75,7 +76,6 @@ void fetch_sample(void) { static int ringpos = 0; - static signed short pulse[2 * SAMPLES_PER_FRAME]; f1 -= pulse[ringpos]; f1 += pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)]; From 01fdfa3ab67ebe6124acd38dcf789cb86bee77b5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 14:23:03 +0100 Subject: [PATCH 0136/2290] util/spkmodem_recv: Tidy up global variables They do not need to be initialised zero, because global variables are always zero by default, unless set differently by the programmer. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index be0aa27e..b4179d80 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -23,9 +23,7 @@ signed short frame[2 * SAMPLES_PER_FRAME]; signed short pulse[2 * SAMPLES_PER_FRAME]; -int f1, f2; -int lp = 0; -int ascii_bit = 7; +int f1, f2, lp, ascii_bit = 7; char ascii = 0; void handle_audio(void); From 25241ae22242eb7d178f4a76f2761987a5022d36 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 14:53:45 +0100 Subject: [PATCH 0137/2290] util/spkmodem_recv: Add -u flag (no line buffer) printf outputs to stdout, which is line buffered by default. Adding a -u option to disable buffering. Exit when a non-support flag is given, but adhere to current behaviour when no flag is given. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index b4179d80..efc690ba 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -6,6 +6,7 @@ #include #include #include +#include /* Compilation: gcc -o spkmodem-recv spkmodem-recv */ /* Usage: parec --channels=1 --rate=48000 --format=s16le | ./spkmodem-recv */ @@ -33,7 +34,17 @@ void fetch_sample(void); int main(int argc, char *argv[]) { - (void)argc; (void)argv; + int c; + + while ((c = getopt(argc, argv, "u")) != -1) { + switch (c) { + case 'u': + setvbuf(stdout, NULL, _IONBF, 0); + break; + default: + err(errno = EINVAL, NULL); + } + } while (!feof(stdin)) handle_audio(); From 5b5949092847307f60293b50ed5388f265568581 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 16 May 2023 15:09:33 +0100 Subject: [PATCH 0138/2290] util/spkmodem_recv: Use pledge but only on OpenBSD It will only be used on OpenBSD. Other operating systems will behave in the same way. Pledge is feature specific to OpenBSD that restricts system operations, for security: https://man.openbsd.org/pledge.2 Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index efc690ba..30e13d8a 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -36,6 +36,11 @@ main(int argc, char *argv[]) { int c; +#ifdef HAVE_PLEDGE + if (pledge("stdio", NULL) == -1) + err(errno, "pledge"); +#endif + while ((c = getopt(argc, argv, "u")) != -1) { switch (c) { case 'u': From 62c88dfb6e41a51330c294e6a5da4d39ebb5a885 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:09:26 +0100 Subject: [PATCH 0139/2290] download script: improved coding style introduce main() cleaned up the if/else block Signed-off-by: Leah Rowe --- download | 85 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 45 insertions(+), 40 deletions(-) diff --git a/download b/download index ef8ada11..b166b6e1 100755 --- a/download +++ b/download @@ -2,7 +2,7 @@ # Generic script for downloading programs used by the build system # -# Copyright (C) 2014, 2015, 2020, 2021 Leah Rowe +# Copyright (C) 2014,2015,2020,2021,2023 Leah Rowe # Copyright (C) 2015 Patrick "P. J." McDermott # Copyright (C) 2015, 2016 Klemens Nanni # Copyright (C) 2022 Caleb La Grange @@ -27,16 +27,42 @@ [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e -./resources/scripts/misc/versioncheck - -rm -f "build_error" - download=resources/scripts/download +program="" -listprograms() { - for program in "${download}"/*; do - printf '%s\n' "${program##*/}" - done +main() +{ + ./resources/scripts/misc/versioncheck + rm -f "build_error" + + if [ $# -lt 1 ]; then + help + die "Please specify arguments." + fi + + program="${1}" + shift 1 + + if [ "${program}" = help ]; then + help + exit 0 + elif [ "${program}" = "all" ]; then + for downloadProgram in ${download}/*; do + "${downloadProgram}" + done + exit 0 + elif [ ! -f "${download}/${program}" ]; then + help + die "Invalid argument '${program}'. See: './download help'." + elif [ $# -lt 1 ]; then + "${download}/${program}" + else + "${download}/${program}" $@ + fi + + exit 0 + + ./.gitcheck clean } help() { @@ -54,9 +80,9 @@ help() { Example: ./download coreboot x60 Each program download script should work without extra paramaters, but - they can use them. For instance, './download coreboot' will download all - coreboot trees by default, but './download coreboot x60' will only download - the coreboot tree required for the target: x60 + they can be used. For example, './download coreboot' will download all + coreboot trees by default, but './download coreboot x60' will only + download the coreboot tree required for the target: x60 Each program download script should also accept the --help parameter to display the usage of the script. @@ -65,36 +91,15 @@ help() { EOF } +listprograms() { + for program in "${download}"/*; do + printf '%s\n' "${program##*/}" + done +} + die() { printf 'Error: %s\n' "${@}" 1>&2 exit 1 } -if [ $# -lt 1 ]; then - help - die "Please specify arguments." -fi - -program="${1}" -shift 1 -[ "${program}" = help ] && help && exit 0 - -if [ "${program}" = "all" ]; then - for downloadProgram in ${download}/*; do - "${downloadProgram}" - done - exit 0 -elif [ ! -f "${download}/${program}" ]; then - help - die "Invalid argument '${program}'. See: './download help'." -fi - -if [ $# -lt 1 ]; then - "${download}/${program}" -else - "${download}/${program}" $@ -fi - -exit 0 - -./.gitcheck clean +main $@ From b4f1804e48148176ca7ad20bd2d39b86b7538844 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:12:27 +0100 Subject: [PATCH 0140/2290] download script: bugfix: gitcheck clean didn't run the "placeholder" git credentials were not being wiped, which sometimes overwrites the user's git credentials permanently, when working on lbmk (permanently, until manually reset by the user) Signed-off-by: Leah Rowe --- download | 2 -- 1 file changed, 2 deletions(-) diff --git a/download b/download index b166b6e1..9ff3a5d5 100755 --- a/download +++ b/download @@ -60,8 +60,6 @@ main() "${download}/${program}" $@ fi - exit 0 - ./.gitcheck clean } From a232f9c575c427e82a9f4ea191142cbfcbdefd9e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:16:50 +0100 Subject: [PATCH 0141/2290] download: check for non-existent script in loop Signed-off-by: Leah Rowe --- download | 3 +++ 1 file changed, 3 insertions(+) diff --git a/download b/download index 9ff3a5d5..609feaac 100755 --- a/download +++ b/download @@ -48,6 +48,9 @@ main() exit 0 elif [ "${program}" = "all" ]; then for downloadProgram in ${download}/*; do + if [ ! -f "${downloadProgram}" ]; then + continue + fi "${downloadProgram}" done exit 0 From 8782bff8ef6f4411145eccc525c5bb5d9f6bff36 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:18:42 +0100 Subject: [PATCH 0142/2290] download: code cleanup Signed-off-by: Leah Rowe --- download | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/download b/download index 609feaac..26c0f673 100755 --- a/download +++ b/download @@ -22,8 +22,6 @@ # along with this program. If not, see . # -./.gitcheck - [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e @@ -32,7 +30,9 @@ program="" main() { - ./resources/scripts/misc/versioncheck + ./.gitcheck + ./resources/scripts/misc/versioncheck + rm -f "build_error" if [ $# -lt 1 ]; then From 6ce77652c6bbb2b2e93f62e21b4ed96c68bd3e74 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:23:23 +0100 Subject: [PATCH 0143/2290] .gitcheck: actually *run* gitcheck-clean Run() is called, but without argument. This patch fixes that. Signed-off-by: Leah Rowe --- .gitcheck | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitcheck b/.gitcheck index 3467a80b..c73c6b16 100755 --- a/.gitcheck +++ b/.gitcheck @@ -35,4 +35,4 @@ else fi } -Run >/dev/null +Run $@ >/dev/null From 83235fb96bd2a426c5d40ce2ad1ccc18049b91bd Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:25:25 +0100 Subject: [PATCH 0144/2290] .gitcheck: check argv when running gitcheck-clean Signed-off-by: Leah Rowe --- .gitcheck | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitcheck b/.gitcheck index c73c6b16..6dfdb362 100755 --- a/.gitcheck +++ b/.gitcheck @@ -21,8 +21,10 @@ Clean(){ } Run(){ -if [ "${1}" = "clean" ]; then - Clean +if [ $# -gt 0 ]; then + if [ "${1}" = "clean" ]; then + Clean + fi else Set_placeholder From 52bc07bc848e993eacd30d555206d623af2d5839 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:35:26 +0100 Subject: [PATCH 0145/2290] .gitcheck: improved coding style main() on top top-down order of logic Signed-off-by: Leah Rowe --- .gitcheck | 61 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/.gitcheck b/.gitcheck index 6dfdb362..3fc20b6c 100755 --- a/.gitcheck +++ b/.gitcheck @@ -1,40 +1,49 @@ #!/bin/sh # SPDX-FileCopyrightText: 2022 Caleb La Grange +# SPDX-FileCopyrightText: 2023 Leah Rowe # SPDX-License-Identifier: GPL-3.0-only -Set_placeholder(){ - # Check if username and or email is set. - if ! git config user.name || git config user.email ; then - git config user.name || git config user.name 'lbmkplaceholder' - git config user.email || git config user.email 'placeholder@lbmkplaceholder.com' +git_name="lbmkplaceholder" +git_email="placeholder@lbmkplaceholder.com" + +main() +{ + if [ $# -gt 0 ]; then + if [ "${1}" = "clean" ]; then + clean + fi + else + set_placeholder + + # Check coreboot as well to prevent errors during building + if [ -d coreboot ]; then + cd coreboot + set_placeholder + cd - + fi fi } -Clean(){ - if [ "$(git config user.name)" = "lbmkplaceholder" ]; then +set_placeholder() +{ + # Check if username and or email is set. + if ! git config user.name || git config user.email ; then + git config user.name \ + || git config user.name "${git_name}" + git config user.email \ + || git config user.email "${git_email}" + fi +} + +clean() +{ + if [ "$(git config user.name)" = "${git_name}" ]; then git config --unset user.name fi - if [ "$(git config user.email)" = "placeholder@lbmkplaceholder.com" ]; then + if [ "$(git config user.email)" = "${git_email}" ]; then git config --unset user.email fi } -Run(){ -if [ $# -gt 0 ]; then - if [ "${1}" = "clean" ]; then - Clean - fi -else - Set_placeholder - - # Check coreboot as well to prevent errors during building - if [ -d coreboot ]; then - cd coreboot - Set_placeholder - cd - - fi -fi -} - -Run $@ >/dev/null +main $@ From 829bc02bf28543de25682bd9cd5fe07aa74dc11f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:38:20 +0100 Subject: [PATCH 0146/2290] .gitcheck: *actually* check coreboot directories --- .gitcheck | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitcheck b/.gitcheck index 3fc20b6c..0bc64fbc 100755 --- a/.gitcheck +++ b/.gitcheck @@ -17,9 +17,14 @@ main() # Check coreboot as well to prevent errors during building if [ -d coreboot ]; then - cd coreboot - set_placeholder - cd - + for x in coreboot/*; do + if [ ! -d "${x}" ]; then + continue + fi + cd "${x}" + set_placeholder + cd - + done fi fi } From ecd7f1d11ee6a6b061e49d1402ce6056cca93cb1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:41:00 +0100 Subject: [PATCH 0147/2290] .gitcheck: move logic out of main() Signed-off-by: Leah Rowe --- .gitcheck | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/.gitcheck b/.gitcheck index 0bc64fbc..451c516d 100755 --- a/.gitcheck +++ b/.gitcheck @@ -13,23 +13,28 @@ main() clean fi else - set_placeholder - - # Check coreboot as well to prevent errors during building - if [ -d coreboot ]; then - for x in coreboot/*; do - if [ ! -d "${x}" ]; then - continue - fi - cd "${x}" - set_placeholder - cd - - done - fi + set_placeholders fi } -set_placeholder() +set_placeholders() +{ + set_git_credentials + + # Check coreboot as well to prevent errors during building + if [ -d coreboot ]; then + for x in coreboot/*; do + if [ ! -d "${x}" ]; then + continue + fi + cd "${x}" + set_git_credentials + cd - + done + fi +} + +set_git_credentials() { # Check if username and or email is set. if ! git config user.name || git config user.email ; then From 0f3c3ca60001ff9536d8c4746d47900cd36dd16e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:42:06 +0100 Subject: [PATCH 0148/2290] .gitcheck: reduce indentation level for loop Signed-off-by: Leah Rowe --- .gitcheck | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.gitcheck b/.gitcheck index 451c516d..a13eb0ae 100755 --- a/.gitcheck +++ b/.gitcheck @@ -22,16 +22,17 @@ set_placeholders() set_git_credentials # Check coreboot as well to prevent errors during building - if [ -d coreboot ]; then - for x in coreboot/*; do - if [ ! -d "${x}" ]; then - continue - fi - cd "${x}" - set_git_credentials - cd - - done + if [ ! -d coreboot ]; then + return fi + for x in coreboot/*; do + if [ ! -d "${x}" ]; then + continue + fi + cd "${x}" + set_git_credentials + cd - + done } set_git_credentials() From 82c4d7b280f9f38c7e46afc4bfa26365d0083e21 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:44:11 +0100 Subject: [PATCH 0149/2290] .gitcheck clean: clean coreboot directories too Signed-off-by: Leah Rowe --- .gitcheck | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.gitcheck b/.gitcheck index a13eb0ae..f5db1f20 100755 --- a/.gitcheck +++ b/.gitcheck @@ -47,6 +47,23 @@ set_git_credentials() } clean() +{ + unset_placeholders + + if [ ! -d coreboot ]; then + return + fi + for x in coreboot/*; do + if [ ! -d "${x}" ]; then + continue + fi + cd "${x}" + unset_placeholders + cd - + done +} + +unset_placeholders() { if [ "$(git config user.name)" = "${git_name}" ]; then git config --unset user.name From dd8fb524df765dc000991b19d18bd2dec44a9d5e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:47:44 +0100 Subject: [PATCH 0150/2290] .gitcheck: re-add redirection to /dev/null Signed-off-by: Leah Rowe --- .gitcheck | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitcheck b/.gitcheck index f5db1f20..2973342c 100755 --- a/.gitcheck +++ b/.gitcheck @@ -74,4 +74,4 @@ unset_placeholders() fi } -main $@ +main $@ > /dev/null 2> /dev/null From c51225577b077401de0b5e79d8b288019e5bb44d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:49:26 +0100 Subject: [PATCH 0151/2290] .gitcheck: use subshells where appropriate Signed-off-by: Leah Rowe --- .gitcheck | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitcheck b/.gitcheck index 2973342c..d2868b63 100755 --- a/.gitcheck +++ b/.gitcheck @@ -29,9 +29,10 @@ set_placeholders() if [ ! -d "${x}" ]; then continue fi + ( cd "${x}" set_git_credentials - cd - + ) done } @@ -57,9 +58,10 @@ clean() if [ ! -d "${x}" ]; then continue fi + ( cd "${x}" unset_placeholders - cd - + ) done } From c08e3258cbada3f192c19349cd7d8afb62025c8f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 09:55:40 +0100 Subject: [PATCH 0152/2290] .gitcheck: exit 1 if unsupported argument given Signed-off-by: Leah Rowe --- .gitcheck | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitcheck b/.gitcheck index d2868b63..195b925a 100755 --- a/.gitcheck +++ b/.gitcheck @@ -10,10 +10,13 @@ main() { if [ $# -gt 0 ]; then if [ "${1}" = "clean" ]; then - clean + clean > /dev/null 2> /dev/null + else + printf "%s: Unsupported argument\n" $0 + exit 1 fi else - set_placeholders + set_placeholders > /dev/null 2> /dev/null fi } @@ -76,4 +79,4 @@ unset_placeholders() fi } -main $@ > /dev/null 2> /dev/null +main $@ From e62215718ca4aa8df13c101690f58619e82b9b73 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 10:09:15 +0100 Subject: [PATCH 0153/2290] blobutil: cleaner coding style reduced indentation main() on top top-down logic Signed-off-by: Leah Rowe --- blobutil | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/blobutil b/blobutil index 4f00b27f..eb3a23e9 100755 --- a/blobutil +++ b/blobutil @@ -1,13 +1,37 @@ #!/bin/sh # SPDX-FileCopyrightText: 2022 Caleb La Grange +# SPDX-FileCopyrightText: 2023 Leah Rowe # SPDX-License-Identifier: GPL-3.0-only -./.gitcheck - script_dir="resources/scripts/blobs" modes=$(ls -1 ${script_dir}) -Print_help(){ +main() +{ + if [ $# -lt 1 ]; then + printf "%s: Error: you must specify a mode\n" $0 + usage + exit 1 + fi + + ./.gitcheck + + mode=${1} + shift + args=$@ + + if [ ! -f "${script_dir}/${mode}" ]; then + printf "Error: No mode ${mode}\n" + usage + exit 1 + fi + + ./${script_dir}/${mode} ${args} + + ./.gitcheck clean +} + +usage(){ cat <<- EOF Usage: ./blobutil [mode] Example: ./blobutil download x230_12mb @@ -22,23 +46,4 @@ Print_help(){ EOF } - -if [ $# -gt 0 ]; then - mode="${1}" - shift - args="$@" - - if [ ! -f "${script_dir}/${mode}" ]; then - printf "Error: No mode ${mode}\n" - Print_help - exit 1 - else - ./${script_dir}/${mode} ${args} - fi - -else - printf 'Error: You must specify a mode\n' - Print_help -fi - -./.gitcheck clean +main $@ From a212a5bec8c7cc95bc836695f8973c17cb30dba4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 10:11:32 +0100 Subject: [PATCH 0154/2290] blobutil: exit 1 if a called script fails Signed-off-by: Leah Rowe --- blobutil | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blobutil b/blobutil index eb3a23e9..d67d151e 100755 --- a/blobutil +++ b/blobutil @@ -26,7 +26,7 @@ main() exit 1 fi - ./${script_dir}/${mode} ${args} + ./${script_dir}/${mode} ${args} || exit 1 ./.gitcheck clean } From 1a062bb62810ba555351a01bb17f74e3beb992a8 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 10:21:54 +0100 Subject: [PATCH 0155/2290] build: reduce code to less than 80 chars per line Signed-off-by: Leah Rowe --- build | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/build b/build index d050a48c..1eb39216 100755 --- a/build +++ b/build @@ -2,7 +2,7 @@ # generic build script, for building components (all of them) # -# Copyright (C) 2014, 2015, 2020, 2021 Leah Rowe +# Copyright (C) 2014,2015,2020,2021,2023 Leah Rowe # Copyright (C) 2015 Patrick "P. J." McDermott # Copyright (C) 2015, 2016 Klemens Nanni # Copyright (C) 2022, Caleb La Grange @@ -54,7 +54,7 @@ help() { Example: ./build roms withgrub Example: ./build clean all - Refer to the ${projectname} documentation for more information. + Refer to ${projectname} documentation for more info. EOF } @@ -64,7 +64,7 @@ die() { } if [ $# -lt 1 ]; then - die "Wrong number of arguments specified. See './build help'." + die "Wrong argument count. Run: ./build help" fi mode="${1}" @@ -81,27 +81,27 @@ if [ $# -gt 1 ]; then shift 2 case "${option}" in - list) - printf "Available options for mode '%s':\n\n" "${mode}" - listoptions "${mode}" - ;; - all) - for option in $(listoptions "${mode}"); do - "${build}"/"${mode}"/"${option}" $@ - done - ;; - *) - if [ -d "${build}"/"${mode}"/ ]; then - if [ -f "${build}"/"${mode}"/"${option}" ]; then - "${build}"/"${mode}"/"${option}" $@ - else - help - die "Invalid option for '${mode}'. See './build ${mode} list'." - fi - else - help - die "Invalid mode '${mode}'. See './build help'." - fi + list) + printf "Options for mode '%s':\n\n" ${mode} + listoptions "${mode}" + ;; + all) + for option in $(listoptions "${mode}"); do + "${build}"/"${mode}"/"${option}" $@ + done + ;; + *) + if [ ! -d "${build}"/"${mode}"/ ]; then + help + die "Invalid mode '${mode}'. Run: ./build help" + fi + if [ -f "${build}"/"${mode}"/"${option}" ]; then + "${build}"/"${mode}"/"${option}" $@ + else + help + printf "Invalid option for '%s'." ${mode} + die "Run: ./build ${mode} list'." + fi esac else help From 34df727c989d78430e5968fc6aeba7a5a108130a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 18 May 2023 10:41:30 +0100 Subject: [PATCH 0156/2290] build: cleaner coding style main() on top top-down logic reduced indentation Signed-off-by: Leah Rowe --- build | 123 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 65 insertions(+), 58 deletions(-) diff --git a/build b/build index 1eb39216..4e1689a0 100755 --- a/build +++ b/build @@ -20,29 +20,73 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # -./.gitcheck [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e projectname="$(cat projectname)" - build=./resources/scripts/build +mode="" +option="" -listmodes() { - for mode in "${build}"/*; do - printf '%s\n' "${mode##*/}" - done +main() +{ + if [ $# -lt 1 ]; then + die "Wrong argument count. Run: ./build help" + fi + mode="${1}" + + ./.gitcheck + + if [ "${mode}" != "dependencies" ]; then + ./resources/scripts/misc/versioncheck + fi + if [ "${mode}" = help ]; then + usage + exit 0 + elif [ $# -lt 2 ]; then + usage + exit 0 + fi + + option="${2}" + shift 2 + + case "${option}" in + list) + printf "Options for mode '%s':\n\n" ${mode} + listoptions "${mode}" + ;; + all) + for option in $(listoptions "${mode}"); do + "${build}/${mode}/${option}" $@ + done + ;; + *) + if [ ! -d "${build}/${mode}" ]; then + usage + die "Invalid mode '${mode}'. Run: ./build help" + elif [ ! -f "${build}/${mode}/${option}" ]; then + usage + printf "Invalid option for '%s'." ${mode} + die "Run: ./build ${mode} list'." + fi + "${build}/${mode}/${option}" $@ + esac + + ./.gitcheck clean } # Takes exactly one mode as parameter -listoptions() { - for option in "${build}"/"${1}"/*; do - printf '%s\n' "${option##*/}" +listoptions() +{ + for option in "${build}/${1}/"*; do + printf '%s\n' ${option##*/} done } -help() { +usage() +{ cat <<- EOF USAGE: ./build