mirror of
https://github.com/linuxboot/heads.git
synced 2024-12-21 05:53:14 +00:00
Merge branch 'master' of https://github.com/osresearch/heads into tlaurion/x230-fbwhiptail
This commit is contained in:
commit
7b57db976f
195
Makefile
195
Makefile
@ -1,6 +1,12 @@
|
|||||||
all:
|
all:
|
||||||
-include .config
|
-include .config
|
||||||
|
|
||||||
|
ifneq "$(TOOLCHAIN)" ""
|
||||||
|
$(info Using $(TOOLCHAIN) for cross compiler and packages)
|
||||||
|
packages := $(TOOLCHAIN)/packages
|
||||||
|
CROSS := $(TOOLCHAIN)/crossgcc/x86_64-linux-musl/bin/x86_64-linux-musl-
|
||||||
|
endif
|
||||||
|
|
||||||
modules-y :=
|
modules-y :=
|
||||||
pwd := $(shell pwd)
|
pwd := $(shell pwd)
|
||||||
packages ?= $(pwd)/packages
|
packages ?= $(pwd)/packages
|
||||||
@ -17,10 +23,11 @@ CPUS := $(shell nproc)
|
|||||||
BUILD_LOG := $(shell mkdir -p "$(log_dir)" )
|
BUILD_LOG := $(shell mkdir -p "$(log_dir)" )
|
||||||
|
|
||||||
# Check that we have a correct version of make
|
# Check that we have a correct version of make
|
||||||
|
# that matches at least the major version
|
||||||
LOCAL_MAKE_VERSION := $(shell $(MAKE) --version | head -1 | cut -d' ' -f3)
|
LOCAL_MAKE_VERSION := $(shell $(MAKE) --version | head -1 | cut -d' ' -f3)
|
||||||
include modules/make
|
include modules/make
|
||||||
|
|
||||||
ifeq "$(LOCAL_MAKE_VERSION)" "$(make_version)"
|
ifneq "" "$(filter $(make_version)%,$(LOCAL_MAKE_VERSION))"
|
||||||
|
|
||||||
# This is the correct version of Make
|
# This is the correct version of Make
|
||||||
|
|
||||||
@ -42,6 +49,12 @@ CONFIG_HEADS ?= y
|
|||||||
# Some things want usernames, we use the current checkout
|
# Some things want usernames, we use the current checkout
|
||||||
# so that they are reproducible
|
# so that they are reproducible
|
||||||
GIT_HASH := $(shell git rev-parse HEAD)
|
GIT_HASH := $(shell git rev-parse HEAD)
|
||||||
|
GIT_STATUS := $(shell \
|
||||||
|
if git diff --exit-code >/dev/null ; then \
|
||||||
|
echo clean ; \
|
||||||
|
else \
|
||||||
|
echo dirty ; \
|
||||||
|
fi)
|
||||||
|
|
||||||
# Timestamps should be in ISO format
|
# Timestamps should be in ISO format
|
||||||
DATE=`date --rfc-3339=seconds`
|
DATE=`date --rfc-3339=seconds`
|
||||||
@ -65,9 +78,11 @@ endif
|
|||||||
|
|
||||||
|
|
||||||
# Create a temporary directory for the initrd
|
# Create a temporary directory for the initrd
|
||||||
initrd_dir := $(shell mktemp -d)
|
initrd_dir := $(BOARD)
|
||||||
initrd_lib_dir := $(initrd_dir)/lib
|
initrd_tmp_dir := $(shell mktemp -d)
|
||||||
initrd_bin_dir := $(initrd_dir)/bin
|
initrd_lib_dir := $(initrd_tmp_dir)/lib
|
||||||
|
initrd_bin_dir := $(initrd_tmp_dir)/bin
|
||||||
|
modules-y += initrd
|
||||||
|
|
||||||
$(shell mkdir -p "$(initrd_lib_dir)" "$(initrd_bin_dir)")
|
$(shell mkdir -p "$(initrd_lib_dir)" "$(initrd_bin_dir)")
|
||||||
|
|
||||||
@ -112,11 +127,8 @@ else
|
|||||||
$(error "$(BOARD): neither CONFIG_COREBOOT nor CONFIG_LINUXBOOT is set?")
|
$(error "$(BOARD): neither CONFIG_COREBOOT nor CONFIG_LINUXBOOT is set?")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# helpful targets for common uses
|
|
||||||
linux: $(build)/$(BOARD)/bzImage
|
|
||||||
cpio: $(build)/$(BOARD)/initrd.cpio.xz
|
|
||||||
|
|
||||||
# Disable all built in rules
|
# Disable all built in rules
|
||||||
|
.INTERMEDIATE:
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
FORCE:
|
FORCE:
|
||||||
|
|
||||||
@ -133,10 +145,6 @@ endef
|
|||||||
# as part of creating the Heads firmware image.
|
# as part of creating the Heads firmware image.
|
||||||
include modules/*
|
include modules/*
|
||||||
|
|
||||||
# These will be built via their intermediate targets
|
|
||||||
# This increases the build time, so it is commented out for now
|
|
||||||
#all: $(foreach m,$(modules-y),$m.intermediate)
|
|
||||||
|
|
||||||
define bins =
|
define bins =
|
||||||
$(foreach m,$1,$(call prefix,$(build)/$($m_dir)/,$($m_output)))
|
$(foreach m,$1,$(call prefix,$(build)/$($m_dir)/,$($m_output)))
|
||||||
endef
|
endef
|
||||||
@ -155,7 +163,7 @@ endef
|
|||||||
# Build a cpio from a directory
|
# Build a cpio from a directory
|
||||||
#
|
#
|
||||||
define do-cpio =
|
define do-cpio =
|
||||||
$(call do,CPIO,$1,\
|
$(call do,CPIO ,$1,\
|
||||||
( cd "$2"; \
|
( cd "$2"; \
|
||||||
find . \
|
find . \
|
||||||
| cpio \
|
| cpio \
|
||||||
@ -169,17 +177,19 @@ define do-cpio =
|
|||||||
@if ! cmp --quiet "$1.tmp" "$1" ; then \
|
@if ! cmp --quiet "$1.tmp" "$1" ; then \
|
||||||
mv "$1.tmp" "$1" ; \
|
mv "$1.tmp" "$1" ; \
|
||||||
else \
|
else \
|
||||||
|
echo "$(DATE) UNCHANGED $(1:$(pwd)/%=%)" ; \
|
||||||
rm "$1.tmp" ; \
|
rm "$1.tmp" ; \
|
||||||
fi
|
fi
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define do-copy =
|
define do-copy =
|
||||||
$(call do,COPY,$1 => $2',\
|
$(call do,INSTALL ,$1 => $2,\
|
||||||
sha256sum "$(1:$(pwd)/%=%)" ; \
|
if cmp --quiet "$1" "$2" ; then \
|
||||||
if ! cmp --quiet "$1" "$2" ; then \
|
echo "$(DATE) UNCHANGED $(1:$(pwd)/%=%)" ; \
|
||||||
cp -a "$1" "$2"; \
|
fi ; \
|
||||||
fi
|
cp -a "$1" "$2" ; \
|
||||||
)
|
)
|
||||||
|
@sha256sum "$(2:$(pwd)/%=%)"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
||||||
@ -190,21 +200,25 @@ endef
|
|||||||
# expansion during the first evaluation.
|
# expansion during the first evaluation.
|
||||||
#
|
#
|
||||||
define define_module =
|
define define_module =
|
||||||
|
# if they have not defined a separate base dir, define it
|
||||||
|
# as the same as their build dir.
|
||||||
|
$(eval $1_base_dir = $(or $($1_base_dir),$($1_dir)))
|
||||||
|
|
||||||
ifneq ("$($1_repo)","")
|
ifneq ("$($1_repo)","")
|
||||||
# Checkout the tree instead and touch the canary file so that we know
|
# Checkout the tree instead and touch the canary file so that we know
|
||||||
# that the files are all present. No signature hashes are checked in
|
# that the files are all present. No signature hashes are checked in
|
||||||
# this case, since we don't have a stable version to compare against.
|
# this case, since we don't have a stable version to compare against.
|
||||||
$(build)/$($1_dir)/.canary:
|
$(build)/$($1_base_dir)/.canary:
|
||||||
git clone $($1_repo) "$(build)/$($1_dir)"
|
git clone $($1_repo) "$(build)/$($1_base_dir)"
|
||||||
if [ -r patches/$1.patch ]; then \
|
if [ -r patches/$1.patch ]; then \
|
||||||
( cd $(build)/$($1_dir) ; patch -p1 ) \
|
( cd $(build)/$($1_base_dir) ; patch -p1 ) \
|
||||||
< patches/$1.patch; \
|
< patches/$1.patch; \
|
||||||
fi
|
fi
|
||||||
if [ -d patches/$1 ] && \
|
if [ -d patches/$1 ] && \
|
||||||
[ -r patches/$1 ] ; then \
|
[ -r patches/$1 ] ; then \
|
||||||
for patch in patches/$1/*.patch ; do \
|
for patch in patches/$1/*.patch ; do \
|
||||||
echo "Applying patch file : $$$$patch " ; \
|
echo "Applying patch file : $$$$patch " ; \
|
||||||
( cd $(build)/$($1_dir) ; patch -p1 ) \
|
( cd $(build)/$($1_base_dir) ; patch -p1 ) \
|
||||||
< $$$$patch ; \
|
< $$$$patch ; \
|
||||||
done ; \
|
done ; \
|
||||||
fi
|
fi
|
||||||
@ -219,17 +233,17 @@ define define_module =
|
|||||||
|
|
||||||
# Unpack the tar file and touch the canary so that we know
|
# Unpack the tar file and touch the canary so that we know
|
||||||
# that the files are all present
|
# that the files are all present
|
||||||
$(build)/$($1_dir)/.canary: $(packages)/.$1-$($1_version)_verify
|
$(build)/$($1_base_dir)/.canary: $(packages)/.$1-$($1_version)_verify
|
||||||
tar -xf "$(packages)/$($1_tar)" -C "$(build)"
|
tar -xf "$(packages)/$($1_tar)" -C "$(build)"
|
||||||
if [ -r patches/$1-$($1_version).patch ]; then \
|
if [ -r patches/$1-$($1_version).patch ]; then \
|
||||||
( cd $(build)/$($1_dir) ; patch -p1 ) \
|
( cd $(build)/$($1_base_dir) ; patch -p1 ) \
|
||||||
< patches/$1-$($1_version).patch; \
|
< patches/$1-$($1_version).patch; \
|
||||||
fi
|
fi
|
||||||
if [ -d patches/$1-$($1_version) ] && \
|
if [ -d patches/$1-$($1_version) ] && \
|
||||||
[ -r patches/$1-$($1_version) ] ; then \
|
[ -r patches/$1-$($1_version) ] ; then \
|
||||||
for patch in patches/$1-$($1_version)/*.patch ; do \
|
for patch in patches/$1-$($1_version)/*.patch ; do \
|
||||||
echo "Applying patch file : $$$$patch " ; \
|
echo "Applying patch file : $$$$patch " ; \
|
||||||
( cd $(build)/$($1_dir) ; patch -p1 ) \
|
( cd $(build)/$($1_base_dir) ; patch -p1 ) \
|
||||||
< $$$$patch ; \
|
< $$$$patch ; \
|
||||||
done ; \
|
done ; \
|
||||||
fi
|
fi
|
||||||
@ -242,21 +256,29 @@ define define_module =
|
|||||||
|
|
||||||
ifeq "$($1_config)" ""
|
ifeq "$($1_config)" ""
|
||||||
# There is no official .config file
|
# There is no official .config file
|
||||||
$($1_config_file_path): $(build)/$($1_dir)/.canary
|
$($1_config_file_path): $(build)/$($1_base_dir)/.canary
|
||||||
@mkdir -p $$(dir $$@)
|
@mkdir -p $$(dir $$@)
|
||||||
@touch "$$@"
|
@touch "$$@"
|
||||||
else
|
else
|
||||||
# Copy the stored config file into the unpacked directory
|
# Copy the stored config file into the unpacked directory
|
||||||
$($1_config_file_path): $($1_config) $(build)/$($1_dir)/.canary
|
$($1_config_file_path): $($1_config) $(build)/$($1_base_dir)/.canary
|
||||||
@mkdir -p $$(dir $$@)
|
@mkdir -p $$(dir $$@)
|
||||||
$(call do-copy,$($1_config),$$@)
|
$(call do-copy,$($1_config),$$@)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# The first time we have to wait for all the dependencies to be built
|
||||||
|
# before we can configure the target. Once the dep has been built,
|
||||||
|
# we only depend on it for a rebuild.
|
||||||
|
$(eval $1_config_wait := $(foreach d,$($1_depends),\
|
||||||
|
$(shell [ -r $(build)/$($d_dir)/.build ] || echo $d)))
|
||||||
|
|
||||||
# Use the module's configure variable to build itself
|
# Use the module's configure variable to build itself
|
||||||
|
# this has to wait for the dependencies to be built since
|
||||||
|
# cross compilers and libraries might be messed up
|
||||||
$(dir $($1_config_file_path)).configured: \
|
$(dir $($1_config_file_path)).configured: \
|
||||||
$(build)/$($1_dir)/.canary \
|
$(build)/$($1_base_dir)/.canary \
|
||||||
|
$(foreach d,$($1_config_wait),$(build)/$($d_dir)/.build) \
|
||||||
$($1_config_file_path) \
|
$($1_config_file_path) \
|
||||||
$(foreach d,$($1_depends),$(call outputs,$d)) \
|
|
||||||
modules/$1
|
modules/$1
|
||||||
@echo "$(DATE) CONFIG $1"
|
@echo "$(DATE) CONFIG $1"
|
||||||
@( \
|
@( \
|
||||||
@ -270,16 +292,23 @@ define define_module =
|
|||||||
$(VERBOSE_REDIRECT)
|
$(VERBOSE_REDIRECT)
|
||||||
@touch "$$@"
|
@touch "$$@"
|
||||||
|
|
||||||
# All of the outputs should result from building the intermediate target
|
# Short hand for our module build target
|
||||||
$(call outputs,$1): $1.intermediate
|
$1: \
|
||||||
|
$(build)/$($1_dir)/.build \
|
||||||
# Short hand target for the module
|
$(call outputs,$1) \
|
||||||
#$1: $(call outputs,$1)
|
|
||||||
|
|
||||||
# Target for all of the outputs, which depend on their dependent modules
|
# Target for all of the outputs, which depend on their dependent modules
|
||||||
$1.intermediate: \
|
# being built, as well as this module being configured
|
||||||
$(foreach d,$($1_depends),$d.intermediate) \
|
$(call outputs,$1): $(build)/$($1_dir)/.build
|
||||||
$(foreach d,$($1_depends),$(call outputs,$d)) \
|
|
||||||
|
# If any of the outputs are missing, we should force a rebuild
|
||||||
|
# of the entire module
|
||||||
|
$(eval $1.force = $(shell \
|
||||||
|
stat $(call outputs,$1) >/dev/null 2>/dev/null || echo FORCE \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(build)/$($1_dir)/.build: $($1.force) \
|
||||||
|
$(foreach d,$($1_depends),$(build)/$($d_dir)/.build) \
|
||||||
$(dir $($1_config_file_path)).configured \
|
$(dir $($1_config_file_path)).configured \
|
||||||
|
|
||||||
@echo "$(DATE) MAKE $1"
|
@echo "$(DATE) MAKE $1"
|
||||||
@ -301,7 +330,11 @@ define define_module =
|
|||||||
tail -20 "$(log_dir)/$1.log"; \
|
tail -20 "$(log_dir)/$1.log"; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
)
|
)
|
||||||
@echo "$(DATE) DONE $1"
|
$(call do,DONE,$1,\
|
||||||
|
touch $(build)/$($1_dir)/.build \
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$1.clean:
|
$1.clean:
|
||||||
-$(RM) "$(build)/$($1_dir)/.configured"
|
-$(RM) "$(build)/$($1_dir)/.configured"
|
||||||
@ -312,7 +345,7 @@ endef
|
|||||||
$(call map, define_module, $(modules-y))
|
$(call map, define_module, $(modules-y))
|
||||||
|
|
||||||
# hack to force musl-cross to be built before musl
|
# hack to force musl-cross to be built before musl
|
||||||
#$(build)/$(musl_dir)/.configured: $(build)/$(musl-cross_dir)/../../crossgcc/x86_64-linux-musl/bin/x86_64-linux-musl-gcc
|
#$(build)/$(musl_dir)/.configured: $(build)/$(musl-cross_dir)/../../crossgcc/x86_64-linux-musl/bin/x86_64-musl-linux-gcc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Install a file into the initrd, if it changed from
|
# Install a file into the initrd, if it changed from
|
||||||
@ -366,27 +399,12 @@ $(foreach m, $(modules-y), \
|
|||||||
$(call map,initrd_lib_add,$(call libs,$m)) \
|
$(call map,initrd_lib_add,$(call libs,$m)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
# hack to install busybox into the initrd if busybox is configured
|
|
||||||
ifeq "$(CONFIG_BUSYBOX)" "y"
|
|
||||||
$(build)/$(BOARD)/heads.cpio: busybox.intermediate
|
|
||||||
initrd_bins += $(initrd_bin_dir)/busybox
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(initrd_bin_dir)/busybox: $(build)/$(busybox_dir)/busybox
|
|
||||||
$(do,SYMLINK,$@,$(MAKE) \
|
|
||||||
-C $(build)/$(busybox_dir) \
|
|
||||||
CC="$(heads_cc)" \
|
|
||||||
CONFIG_PREFIX="$(pwd)/initrd" \
|
|
||||||
$(MAKE_JOBS) \
|
|
||||||
install \
|
|
||||||
)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# hack to build cbmem from coreboot
|
# hack to build cbmem from coreboot
|
||||||
# this must be built *AFTER* musl, but since coreboot depends on other things
|
# this must be built *AFTER* musl, but since coreboot depends on other things
|
||||||
# that depend on musl it should be ok.
|
# that depend on musl it should be ok.
|
||||||
#
|
#
|
||||||
COREBOOT_UTIL_DIR=$(build)/$(coreboot_dir)/util
|
COREBOOT_UTIL_DIR=$(build)/$(coreboot_base_dir)/util
|
||||||
ifeq ($(CONFIG_COREBOOT),y)
|
ifeq ($(CONFIG_COREBOOT),y)
|
||||||
$(eval $(call initrd_bin_add,$(COREBOOT_UTIL_DIR)/cbmem/cbmem))
|
$(eval $(call initrd_bin_add,$(COREBOOT_UTIL_DIR)/cbmem/cbmem))
|
||||||
#$(eval $(call initrd_bin_add,$(COREBOOT_UTIL_DIR)/superiotool/superiotool))
|
#$(eval $(call initrd_bin_add,$(COREBOOT_UTIL_DIR)/superiotool/superiotool))
|
||||||
@ -396,14 +414,16 @@ endif
|
|||||||
$(COREBOOT_UTIL_DIR)/cbmem/cbmem \
|
$(COREBOOT_UTIL_DIR)/cbmem/cbmem \
|
||||||
$(COREBOOT_UTIL_DIR)/superiotool/superiotool \
|
$(COREBOOT_UTIL_DIR)/superiotool/superiotool \
|
||||||
$(COREBOOT_UTIL_DIR)/inteltool/inteltool \
|
$(COREBOOT_UTIL_DIR)/inteltool/inteltool \
|
||||||
: $(build)/$(coreboot_dir)/.canary \
|
: $(build)/$(coreboot_base_dir)/.canary \
|
||||||
musl.intermediate
|
$(build)/$(musl_dir)/.build
|
||||||
+$(call do,MAKE,$(notdir $@),\
|
+$(call do,MAKE,$(notdir $@),\
|
||||||
$(MAKE) -C "$(dir $@)" $(CROSS_TOOLS) \
|
$(MAKE) -C "$(dir $@)" $(CROSS_TOOLS) \
|
||||||
)
|
)
|
||||||
|
|
||||||
# superio depends on zlib and pciutils
|
# superio depends on zlib and pciutils
|
||||||
$(COREBOOT_UTIL_DIR)/superiotool/superiotool: zlib.intermediate pciutils.intermediate
|
$(COREBOOT_UTIL_DIR)/superiotool/superiotool: \
|
||||||
|
$(build)/$(zlib_dir)/.build \
|
||||||
|
$(build)/$(pciutils_dir)/.build \
|
||||||
|
|
||||||
#
|
#
|
||||||
# initrd image creation
|
# initrd image creation
|
||||||
@ -423,28 +443,35 @@ $(COREBOOT_UTIL_DIR)/superiotool/superiotool: zlib.intermediate pciutils.interme
|
|||||||
#
|
#
|
||||||
|
|
||||||
initrd-y += $(pwd)/blobs/dev.cpio
|
initrd-y += $(pwd)/blobs/dev.cpio
|
||||||
initrd-y += $(build)/$(BOARD)/modules.cpio
|
initrd-y += $(build)/$(initrd_dir)/modules.cpio
|
||||||
initrd-y += $(build)/$(BOARD)/tools.cpio
|
initrd-y += $(build)/$(initrd_dir)/tools.cpio
|
||||||
initrd-$(CONFIG_HEADS) += $(build)/$(BOARD)/heads.cpio
|
initrd-$(CONFIG_HEADS) += $(build)/$(initrd_dir)/heads.cpio
|
||||||
|
|
||||||
initrd.intermediate: $(build)/$(BOARD)/initrd.cpio.xz
|
#$(build)/$(initrd_dir)/.build: $(build)/$(initrd_dir)/initrd.cpio.xz
|
||||||
$(build)/$(BOARD)/initrd.cpio.xz: $(initrd-y)
|
|
||||||
$(call do,CPIO-CLEAN,$@,\
|
$(build)/$(initrd_dir)/initrd.cpio.xz: $(initrd-y)
|
||||||
|
$(call do,CPIO-XZ ,$@,\
|
||||||
$(pwd)/bin/cpio-clean \
|
$(pwd)/bin/cpio-clean \
|
||||||
$^ \
|
$^ \
|
||||||
| xz \
|
| xz \
|
||||||
--check=crc32 \
|
--check=crc32 \
|
||||||
--lzma2=dict=1MiB \
|
--lzma2=dict=1MiB \
|
||||||
-9 \
|
-9 \
|
||||||
| dd bs=512 conv=sync > "$@" \
|
| dd bs=512 conv=sync status=none > "$@.tmp" \
|
||||||
)
|
)
|
||||||
@sha256sum "$(@:$(pwd)/%=%)"
|
@if ! cmp --quiet "$@.tmp" "$@" ; then \
|
||||||
|
mv "$@.tmp" "$@" ; \
|
||||||
|
sha256sum "$(@:$(pwd)/%=%)" ; \
|
||||||
|
else \
|
||||||
|
echo "$(DATE) UNCHANGED $(@:$(pwd)/%=%)" ; \
|
||||||
|
rm "$@.tmp" ; \
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# The heads.cpio is built from the initrd directory in the
|
# The heads.cpio is built from the initrd directory in the
|
||||||
# Heads tree.
|
# Heads tree.
|
||||||
#
|
#
|
||||||
$(build)/$(BOARD)/heads.cpio: FORCE
|
$(build)/$(initrd_dir)/heads.cpio: FORCE
|
||||||
$(call do-cpio,$@,$(pwd)/initrd)
|
$(call do-cpio,$@,$(pwd)/initrd)
|
||||||
|
|
||||||
|
|
||||||
@ -452,29 +479,35 @@ $(build)/$(BOARD)/heads.cpio: FORCE
|
|||||||
# The tools initrd is made from all of the things that we've
|
# The tools initrd is made from all of the things that we've
|
||||||
# created during the submodule build.
|
# created during the submodule build.
|
||||||
#
|
#
|
||||||
$(build)/$(BOARD)/tools.cpio: \
|
$(build)/$(initrd_dir)/tools.cpio: \
|
||||||
$(initrd_bins) \
|
$(initrd_bins) \
|
||||||
$(initrd_libs) \
|
$(initrd_libs) \
|
||||||
|
$(initrd_tmp_dir)/etc/config \
|
||||||
|
|
||||||
|
$(call do-cpio,$@,$(initrd_tmp_dir))
|
||||||
|
@$(RM) -rf "$(initrd_tmp_dir)"
|
||||||
|
|
||||||
|
$(initrd_tmp_dir)/etc/config: FORCE
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
$(call do,INSTALL,$(CONFIG), \
|
$(call do,INSTALL,$(CONFIG), \
|
||||||
mkdir -p "$(initrd_dir)/etc" ; \
|
|
||||||
export \
|
export \
|
||||||
| grep ' CONFIG_' \
|
| grep ' CONFIG_' \
|
||||||
| sed -e 's/^declare -x /export /' \
|
| sed -e 's/^declare -x /export /' \
|
||||||
-e 's/\\\"//g' \
|
-e 's/\\\"//g' \
|
||||||
> "$(initrd_dir)/etc/config" \
|
> $@ \
|
||||||
|
)
|
||||||
|
$(call do,HASH,$(GIT_HASH) $(GIT_STATUS), \
|
||||||
|
echo export GIT_HASH=\'$(GIT_HASH)\' \
|
||||||
|
>> $@ ; \
|
||||||
|
echo export GIT_STATUS=$(GIT_STATUS) \
|
||||||
|
>> $@ ; \
|
||||||
)
|
)
|
||||||
$(call do-cpio,$@,$(initrd_dir))
|
|
||||||
@$(RM) -rf "$(initrd_dir)"
|
|
||||||
|
|
||||||
|
# Ensure that the initrd depends on all of the modules that produce
|
||||||
|
# binaries for it
|
||||||
|
$(build)/$(initrd_dir)/tools.cpio: $(foreach d,$(bin_modules-y),$(build)/$($d_dir)/.build)
|
||||||
|
|
||||||
|
|
||||||
# This produces a ROM image that is written with the flashrom program
|
|
||||||
$(build)/$(BOARD)/coreboot.rom: $(build)/$(coreboot_dir)/$(BOARD)/coreboot.rom
|
|
||||||
"$(build)/$(coreboot_dir)/$(BOARD)/cbfstool" "$<" print
|
|
||||||
$(call do,EXTRACT,$@,mv "$<" "$@")
|
|
||||||
@sha256sum "$(@:$(pwd)/%=%)"
|
|
||||||
|
|
||||||
# List of all modules, excluding the slow to-build modules
|
# List of all modules, excluding the slow to-build modules
|
||||||
modules-slow := musl musl-cross kernel_headers
|
modules-slow := musl musl-cross kernel_headers
|
||||||
module_dirs := $(foreach m,$(filter-out $(modules-slow),$(modules-y)),$($m_dir))
|
module_dirs := $(foreach m,$(filter-out $(modules-slow),$(modules-y)),$($m_dir))
|
||||||
@ -501,10 +534,6 @@ real.clean:
|
|||||||
done
|
done
|
||||||
rm -rf ./install
|
rm -rf ./install
|
||||||
|
|
||||||
bootstrap:
|
|
||||||
+$(MAKE) \
|
|
||||||
musl-cross.intermediate \
|
|
||||||
$(build)/$(coreboot_dir)/util/crossgcc/xgcc/bin/i386-elf-gcc \
|
|
||||||
|
|
||||||
else
|
else
|
||||||
# Wrong make version detected -- build our local version
|
# Wrong make version detected -- build our local version
|
||||||
@ -515,7 +544,7 @@ HEADS_MAKE := $(build)/$(make_dir)/make
|
|||||||
# Once we have a proper Make, we can just pass arguments into it
|
# Once we have a proper Make, we can just pass arguments into it
|
||||||
all bootstrap linux cpio: $(HEADS_MAKE)
|
all bootstrap linux cpio: $(HEADS_MAKE)
|
||||||
LANG=C MAKE=$(HEADS_MAKE) $(HEADS_MAKE) $(MAKE_JOBS) $@
|
LANG=C MAKE=$(HEADS_MAKE) $(HEADS_MAKE) $(MAKE_JOBS) $@
|
||||||
%.clean %.intermediate %.vol: $(HEADS_MAKE)
|
%.clean %.vol: $(HEADS_MAKE)
|
||||||
LANG=C MAKE=$(HEADS_MAKE) $(HEADS_MAKE) $@
|
LANG=C MAKE=$(HEADS_MAKE) $(HEADS_MAKE) $@
|
||||||
|
|
||||||
# How to download and build the correct version of make
|
# How to download and build the correct version of make
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Configuration for a kgpe-d16 running non-Qubes
|
# Configuration for a kgpe-d16 running non-Qubes
|
||||||
CONFIG_COREBOOT=y
|
export CONFIG_COREBOOT=y
|
||||||
CONFIG_COREBOOT_CONFIG=config/coreboot-kgpe-d16.config
|
CONFIG_COREBOOT_CONFIG=config/coreboot-kgpe-d16.config
|
||||||
CONFIG_LINUX_CONFIG=config/linux-kgpe-d16.config
|
CONFIG_LINUX_CONFIG=config/linux-kgpe-d16.config
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
CONFIG_LINUX_CONFIG=config/linux-librem13v2.config
|
CONFIG_LINUX_CONFIG=config/linux-librem13v2.config
|
||||||
CONFIG_COREBOOT_CONFIG=config/coreboot-librem13v2.config
|
CONFIG_COREBOOT_CONFIG=config/coreboot-librem13v2.config
|
||||||
|
|
||||||
CONFIG_COREBOOT=y
|
export CONFIG_COREBOOT=y
|
||||||
CONFIG_CRYPTSETUP=y
|
CONFIG_CRYPTSETUP=y
|
||||||
CONFIG_FLASHROM=y
|
CONFIG_FLASHROM=y
|
||||||
CONFIG_FLASHTOOLS=y
|
CONFIG_FLASHTOOLS=y
|
||||||
@ -32,3 +32,5 @@ export CONFIG_BOOT_KERNEL_REMOVE=""
|
|||||||
export CONFIG_BOOT_DEV="/dev/sda1"
|
export CONFIG_BOOT_DEV="/dev/sda1"
|
||||||
export CONFIG_BOOT_GUI_MENU_NAME="Purism Librem 13v2 Heads Boot Menu"
|
export CONFIG_BOOT_GUI_MENU_NAME="Purism Librem 13v2 Heads Boot Menu"
|
||||||
export CONFIG_USB_BOOT_DEV="/dev/sdb1"
|
export CONFIG_USB_BOOT_DEV="/dev/sdb1"
|
||||||
|
export CONFIG_WARNING_BG_COLOR="--background-gradient 0 0 0 150 125 0"
|
||||||
|
export CONFIG_ERROR_BG_COLOR="--background-gradient 0 0 0 150 0 0"
|
||||||
|
36
boards/librem15v3/librem15v3.config
Normal file
36
boards/librem15v3/librem15v3.config
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# Configuration for a librem15v3
|
||||||
|
|
||||||
|
# The L15v3 Linux config is the same as the L13v2 linux config
|
||||||
|
CONFIG_LINUX_CONFIG=config/linux-librem13v2.config
|
||||||
|
CONFIG_COREBOOT_CONFIG=config/coreboot-librem15v3.config
|
||||||
|
|
||||||
|
export CONFIG_COREBOOT=y
|
||||||
|
CONFIG_CRYPTSETUP=y
|
||||||
|
CONFIG_FLASHROM=y
|
||||||
|
CONFIG_FLASHTOOLS=y
|
||||||
|
CONFIG_GPG=y
|
||||||
|
CONFIG_KEXEC=y
|
||||||
|
CONFIG_UTIL_LINUX=y
|
||||||
|
CONFIG_LVM2=y
|
||||||
|
CONFIG_MBEDTLS=y
|
||||||
|
CONFIG_PCIUTILS=y
|
||||||
|
CONFIG_POPT=y
|
||||||
|
CONFIG_QRENCODE=y
|
||||||
|
CONFIG_TPMTOTP=y
|
||||||
|
|
||||||
|
#CONFIG_SLANG=y
|
||||||
|
#CONFIG_NEWT=y
|
||||||
|
CONFIG_CAIRO=y
|
||||||
|
CONFIG_FBWHIPTAIL=y
|
||||||
|
|
||||||
|
CONFIG_LINUX_USB=y
|
||||||
|
|
||||||
|
export CONFIG_TPM=y
|
||||||
|
export CONFIG_BOOTSCRIPT=/bin/gui-init
|
||||||
|
export CONFIG_BOOT_REQ_HASH=n
|
||||||
|
export CONFIG_BOOT_REQ_ROLLBACK=n
|
||||||
|
export CONFIG_BOOT_KERNEL_ADD="iommu=pt"
|
||||||
|
export CONFIG_BOOT_KERNEL_REMOVE=""
|
||||||
|
export CONFIG_BOOT_DEV="/dev/sda1"
|
||||||
|
export CONFIG_BOOT_GUI_MENU_NAME="Purism Librem 15v3 Heads Boot Menu"
|
||||||
|
export CONFIG_USB_BOOT_DEV="/dev/sdb1"
|
@ -1,7 +1,7 @@
|
|||||||
# Configuration for building a coreboot ROM that works in the.
|
# Configuration for building a coreboot ROM that works in the.
|
||||||
# the qemu emulator. Note that the TPM does not work, so this
|
# the qemu emulator. Note that the TPM does not work, so this
|
||||||
# will just drop into the recovery shell.
|
# will just drop into the recovery shell.
|
||||||
CONFIG_COREBOOT=y
|
export CONFIG_COREBOOT=y
|
||||||
CONFIG_COREBOOT_CONFIG=config/coreboot-qemu.config
|
CONFIG_COREBOOT_CONFIG=config/coreboot-qemu.config
|
||||||
CONFIG_LINUX_CONFIG=config/linux-qemu.config
|
CONFIG_LINUX_CONFIG=config/linux-qemu.config
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Configuration for emulating LinuxBoot+Heads with qemu
|
# Configuration for emulating LinuxBoot+Heads with qemu
|
||||||
#
|
#
|
||||||
CONFIG_LINUXBOOT=y
|
export CONFIG_LINUXBOOT=y
|
||||||
CONFIG_LINUXBOOT_BOARD=qemu
|
CONFIG_LINUXBOOT_BOARD=qemu
|
||||||
CONFIG_LINUX_CONFIG=config/linux-linuxboot.config
|
CONFIG_LINUX_CONFIG=config/linux-linuxboot.config
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ CONFIG_QRENCODE=y
|
|||||||
CONFIG_TPMTOTP=y
|
CONFIG_TPMTOTP=y
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#CONFIG_FLASHROM=y
|
CONFIG_FLASHROM=y
|
||||||
CONFIG_FLASHTOOLS=y
|
CONFIG_FLASHTOOLS=y
|
||||||
CONFIG_GPG=y
|
CONFIG_GPG=y
|
||||||
CONFIG_KEXEC=y
|
CONFIG_KEXEC=y
|
||||||
|
@ -14,14 +14,14 @@ CONFIG_ZLIB=n
|
|||||||
CONFIG_MUSL=n
|
CONFIG_MUSL=n
|
||||||
else
|
else
|
||||||
# These don't fit if u-root is turned on
|
# These don't fit if u-root is turned on
|
||||||
CONFIG_CRYPTSETUP=y
|
#CONFIG_CRYPTSETUP=y
|
||||||
CONFIG_FLASHROM=y
|
#CONFIG_FLASHROM=y
|
||||||
CONFIG_FLASHTOOLS=y
|
CONFIG_FLASHTOOLS=y
|
||||||
CONFIG_GPG=y
|
CONFIG_GPG=y
|
||||||
CONFIG_KEXEC=y
|
CONFIG_KEXEC=y
|
||||||
CONFIG_UTIL_LINUX=y
|
CONFIG_UTIL_LINUX=y
|
||||||
CONFIG_LVM2=y
|
#CONFIG_LVM2=y
|
||||||
CONFIG_MBEDTLS=y
|
#CONFIG_MBEDTLS=y
|
||||||
CONFIG_PCIUTILS=y
|
CONFIG_PCIUTILS=y
|
||||||
CONFIG_POPT=y
|
CONFIG_POPT=y
|
||||||
#CONFIG_QRENCODE=y
|
#CONFIG_QRENCODE=y
|
||||||
@ -44,7 +44,7 @@ export CONFIG_BOOT_REQ_ROLLBACK=n
|
|||||||
export CONFIG_BOOT_DEV="/dev/sda1"
|
export CONFIG_BOOT_DEV="/dev/sda1"
|
||||||
export CONFIG_USB_BOOT_DEV="/dev/sdb1"
|
export CONFIG_USB_BOOT_DEV="/dev/sdb1"
|
||||||
|
|
||||||
$(build)/$(BOARD)/linuxboot.rom: linuxboot.intermediate
|
#$(build)/$(BOARD)/linuxboot.rom: $(build)/$(linuxboot_dir)/
|
||||||
|
|
||||||
# No 0x on these since the flasher doesn't handle that
|
# No 0x on these since the flasher doesn't handle that
|
||||||
dxe_offset := 860000
|
dxe_offset := 860000
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Configuration for a x220 running Qubes and other OS
|
# Configuration for a x220 running Qubes and other OS
|
||||||
# The Linux configuration is close enough to the x230
|
# The Linux configuration is close enough to the x230
|
||||||
CONFIG_COREBOOT=y
|
export CONFIG_COREBOOT=y
|
||||||
CONFIG_COREBOOT_CONFIG=config/coreboot-x220.config
|
CONFIG_COREBOOT_CONFIG=config/coreboot-x220.config
|
||||||
CONFIG_LINUX_CONFIG=config/linux-x230.config
|
CONFIG_LINUX_CONFIG=config/linux-x230.config
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Minimal configuration for a x230 to support flashrom, USB and networking
|
# Minimal configuration for a x230 to support flashrom, USB and networking
|
||||||
BOARD=x230.flash
|
BOARD=x230.flash
|
||||||
|
|
||||||
CONFIG_COREBOOT=y
|
export CONFIG_COREBOOT=y
|
||||||
CONFIG_FLASHROM=y
|
CONFIG_FLASHROM=y
|
||||||
CONFIG_FLASHTOOLS=y
|
CONFIG_FLASHTOOLS=y
|
||||||
CONFIG_PCIUTILS=y
|
CONFIG_PCIUTILS=y
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Configuration for a x230 running Qubes and other OSes
|
# Configuration for a x230 running Qubes and other OSes
|
||||||
CONFIG_COREBOOT=y
|
export CONFIG_COREBOOT=y
|
||||||
CONFIG_COREBOOT_CONFIG=config/coreboot-x230.config
|
CONFIG_COREBOOT_CONFIG=config/coreboot-x230.config
|
||||||
CONFIG_LINUX_CONFIG=config/linux-x230.config
|
CONFIG_LINUX_CONFIG=config/linux-x230.config
|
||||||
|
|
||||||
@ -43,10 +43,10 @@ export CONFIG_USB_BOOT_DEV="/dev/sdb1"
|
|||||||
# to separate files for these pieces.
|
# to separate files for these pieces.
|
||||||
all: $(build)/$(BOARD)/$(BOARD)-8.rom
|
all: $(build)/$(BOARD)/$(BOARD)-8.rom
|
||||||
$(build)/$(BOARD)/$(BOARD)-8.rom: $(build)/$(BOARD)/coreboot.rom
|
$(build)/$(BOARD)/$(BOARD)-8.rom: $(build)/$(BOARD)/coreboot.rom
|
||||||
dd of=$@ if=$< bs=65536 count=128 skip=0
|
$(call do,DD 8MB,$@,dd of=$@ if=$< bs=65536 count=128 skip=0 status=none)
|
||||||
sha256sum $@
|
@sha256sum $@
|
||||||
|
|
||||||
all: $(build)/$(BOARD)/$(BOARD)-4.rom
|
all: $(build)/$(BOARD)/$(BOARD)-4.rom
|
||||||
$(build)/$(BOARD)/$(BOARD)-4.rom: $(build)/$(BOARD)/coreboot.rom
|
$(build)/$(BOARD)/$(BOARD)-4.rom: $(build)/$(BOARD)/coreboot.rom
|
||||||
dd of=$@ if=$< bs=65536 count=64 skip=128
|
$(call do,DD 4MB,$@,dd of=$@ if=$< bs=65536 count=64 skip=128 status=none)
|
||||||
sha256sum $@
|
@sha256sum $@
|
||||||
|
@ -140,14 +140,14 @@ CONFIG_FEATURE_SEAMLESS_GZ=y
|
|||||||
CONFIG_GUNZIP=y
|
CONFIG_GUNZIP=y
|
||||||
CONFIG_ZCAT=y
|
CONFIG_ZCAT=y
|
||||||
CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y
|
CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y
|
||||||
# CONFIG_BUNZIP2 is not set
|
CONFIG_BUNZIP2=y
|
||||||
# CONFIG_BZCAT is not set
|
CONFIG_BZCAT=y
|
||||||
# CONFIG_UNLZMA is not set
|
# CONFIG_UNLZMA is not set
|
||||||
# CONFIG_LZCAT is not set
|
# CONFIG_LZCAT is not set
|
||||||
# CONFIG_LZMA is not set
|
# CONFIG_LZMA is not set
|
||||||
# CONFIG_UNXZ is not set
|
CONFIG_UNXZ=y
|
||||||
# CONFIG_XZCAT is not set
|
CONFIG_XZCAT=y
|
||||||
# CONFIG_XZ is not set
|
CONFIG_XZ=y
|
||||||
CONFIG_BZIP2=y
|
CONFIG_BZIP2=y
|
||||||
CONFIG_FEATURE_BZIP2_DECOMPRESS=y
|
CONFIG_FEATURE_BZIP2_DECOMPRESS=y
|
||||||
CONFIG_CPIO=y
|
CONFIG_CPIO=y
|
||||||
|
741
config/coreboot-librem15v3.config
Normal file
741
config/coreboot-librem15v3.config
Normal file
@ -0,0 +1,741 @@
|
|||||||
|
#
|
||||||
|
# Automatically generated file; DO NOT EDIT.
|
||||||
|
# coreboot configuration
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# General setup
|
||||||
|
#
|
||||||
|
CONFIG_COREBOOT_BUILD=y
|
||||||
|
CONFIG_LOCALVERSION="4.7-Purism-4-heads"
|
||||||
|
CONFIG_CBFS_PREFIX="fallback"
|
||||||
|
CONFIG_COMPILER_GCC=y
|
||||||
|
# CONFIG_COMPILER_LLVM_CLANG is not set
|
||||||
|
# CONFIG_ANY_TOOLCHAIN is not set
|
||||||
|
# CONFIG_CCACHE is not set
|
||||||
|
# CONFIG_FMD_GENPARSER is not set
|
||||||
|
# CONFIG_UTIL_GENPARSER is not set
|
||||||
|
CONFIG_COMPRESS_RAMSTAGE=y
|
||||||
|
CONFIG_INCLUDE_CONFIG_FILE=y
|
||||||
|
CONFIG_COLLECT_TIMESTAMPS=y
|
||||||
|
CONFIG_USE_BLOBS=y
|
||||||
|
# CONFIG_COVERAGE is not set
|
||||||
|
# CONFIG_UBSAN is not set
|
||||||
|
CONFIG_RELOCATABLE_RAMSTAGE=y
|
||||||
|
CONFIG_CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM=y
|
||||||
|
# CONFIG_UPDATE_IMAGE is not set
|
||||||
|
# CONFIG_BOOTSPLASH_IMAGE is not set
|
||||||
|
CONFIG_MEASURED_BOOT=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Mainboard
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Important: Run 'make distclean' before switching boards
|
||||||
|
#
|
||||||
|
# CONFIG_VENDOR_A_TREND is not set
|
||||||
|
# CONFIG_VENDOR_AAEON is not set
|
||||||
|
# CONFIG_VENDOR_ABIT is not set
|
||||||
|
# CONFIG_VENDOR_ADI is not set
|
||||||
|
# CONFIG_VENDOR_ADLINK is not set
|
||||||
|
# CONFIG_VENDOR_ADVANSUS is not set
|
||||||
|
# CONFIG_VENDOR_AMD is not set
|
||||||
|
# CONFIG_VENDOR_AOPEN is not set
|
||||||
|
# CONFIG_VENDOR_APPLE is not set
|
||||||
|
# CONFIG_VENDOR_ARTECGROUP is not set
|
||||||
|
# CONFIG_VENDOR_ASROCK is not set
|
||||||
|
# CONFIG_VENDOR_ASUS is not set
|
||||||
|
# CONFIG_VENDOR_AVALUE is not set
|
||||||
|
# CONFIG_VENDOR_AZZA is not set
|
||||||
|
# CONFIG_VENDOR_BACHMANN is not set
|
||||||
|
# CONFIG_VENDOR_BAP is not set
|
||||||
|
# CONFIG_VENDOR_BCOM is not set
|
||||||
|
# CONFIG_VENDOR_BIOSTAR is not set
|
||||||
|
# CONFIG_VENDOR_BROADCOM is not set
|
||||||
|
# CONFIG_VENDOR_COMPAQ is not set
|
||||||
|
# CONFIG_VENDOR_COMPULAB is not set
|
||||||
|
# CONFIG_VENDOR_CUBIETECH is not set
|
||||||
|
# CONFIG_VENDOR_DIGITALLOGIC is not set
|
||||||
|
# CONFIG_VENDOR_DMP is not set
|
||||||
|
# CONFIG_VENDOR_ECS is not set
|
||||||
|
# CONFIG_VENDOR_ELMEX is not set
|
||||||
|
# CONFIG_VENDOR_EMULATION is not set
|
||||||
|
# CONFIG_VENDOR_ESD is not set
|
||||||
|
# CONFIG_VENDOR_FOXCONN is not set
|
||||||
|
# CONFIG_VENDOR_GETAC is not set
|
||||||
|
# CONFIG_VENDOR_GIGABYTE is not set
|
||||||
|
# CONFIG_VENDOR_GIZMOSPHERE is not set
|
||||||
|
# CONFIG_VENDOR_GOOGLE is not set
|
||||||
|
# CONFIG_VENDOR_HP is not set
|
||||||
|
# CONFIG_VENDOR_IBASE is not set
|
||||||
|
# CONFIG_VENDOR_IEI is not set
|
||||||
|
# CONFIG_VENDOR_INTEL is not set
|
||||||
|
# CONFIG_VENDOR_IWAVE is not set
|
||||||
|
# CONFIG_VENDOR_IWILL is not set
|
||||||
|
# CONFIG_VENDOR_JETWAY is not set
|
||||||
|
# CONFIG_VENDOR_KONTRON is not set
|
||||||
|
# CONFIG_VENDOR_LANNER is not set
|
||||||
|
# CONFIG_VENDOR_LENOVO is not set
|
||||||
|
# CONFIG_VENDOR_LINUTOP is not set
|
||||||
|
# CONFIG_VENDOR_LIPPERT is not set
|
||||||
|
# CONFIG_VENDOR_LOWRISC is not set
|
||||||
|
# CONFIG_VENDOR_MITAC is not set
|
||||||
|
# CONFIG_VENDOR_MSI is not set
|
||||||
|
# CONFIG_VENDOR_NEC is not set
|
||||||
|
# CONFIG_VENDOR_NOKIA is not set
|
||||||
|
# CONFIG_VENDOR_NVIDIA is not set
|
||||||
|
# CONFIG_VENDOR_PACKARDBELL is not set
|
||||||
|
# CONFIG_VENDOR_PCENGINES is not set
|
||||||
|
CONFIG_VENDOR_PURISM=y
|
||||||
|
# CONFIG_VENDOR_RCA 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_SOYO is not set
|
||||||
|
# CONFIG_VENDOR_SUNW is not set
|
||||||
|
# CONFIG_VENDOR_SUPERMICRO is not set
|
||||||
|
# CONFIG_VENDOR_TECHNEXION is not set
|
||||||
|
# CONFIG_VENDOR_THOMSON is not set
|
||||||
|
# CONFIG_VENDOR_TI is not set
|
||||||
|
# CONFIG_VENDOR_TRAVERSE is not set
|
||||||
|
# CONFIG_VENDOR_TYAN is not set
|
||||||
|
# CONFIG_VENDOR_VIA is not set
|
||||||
|
# CONFIG_VENDOR_WINENT is not set
|
||||||
|
# CONFIG_VENDOR_WINNET is not set
|
||||||
|
# CONFIG_VENDOR_WYSE is not set
|
||||||
|
CONFIG_MAINBOARD_DIR="purism/librem_skl"
|
||||||
|
CONFIG_MAINBOARD_PART_NUMBER="Librem 15 v3"
|
||||||
|
CONFIG_IRQ_SLOT_COUNT=18
|
||||||
|
CONFIG_MAINBOARD_VENDOR="Purism"
|
||||||
|
CONFIG_MAX_CPUS=8
|
||||||
|
CONFIG_CACHE_ROM_SIZE_OVERRIDE=0x0
|
||||||
|
CONFIG_CBFS_SIZE=0xe00000
|
||||||
|
CONFIG_UART_FOR_CONSOLE=0
|
||||||
|
CONFIG_VGA_BIOS_ID="8086,1916"
|
||||||
|
# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
|
||||||
|
CONFIG_DIMM_SPD_SIZE=512
|
||||||
|
# CONFIG_VGA_BIOS is not set
|
||||||
|
CONFIG_MAINBOARD_SERIAL_NUMBER="Unknown Serial Number"
|
||||||
|
CONFIG_DCACHE_RAM_BASE=0xfef00000
|
||||||
|
CONFIG_DCACHE_RAM_SIZE=0x40000
|
||||||
|
CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Purism"
|
||||||
|
CONFIG_HAVE_IFD_BIN=y
|
||||||
|
CONFIG_HAVE_ME_BIN=y
|
||||||
|
CONFIG_MMCONF_BASE_ADDRESS=0xe0000000
|
||||||
|
# CONFIG_POST_IO is not set
|
||||||
|
CONFIG_DEVICETREE="variants/librem15v3/devicetree.cb"
|
||||||
|
CONFIG_MAX_REBOOT_CNT=3
|
||||||
|
# CONFIG_HAVE_GBE_BIN is not set
|
||||||
|
CONFIG_ID_SECTION_OFFSET=0x80
|
||||||
|
# CONFIG_POST_DEVICE is not set
|
||||||
|
CONFIG_VARIANT_DIR="librem15v3"
|
||||||
|
# CONFIG_VBOOT is not set
|
||||||
|
CONFIG_MAINBOARD_FAMILY="Librem 15"
|
||||||
|
CONFIG_TPM_PIRQ=0x0
|
||||||
|
CONFIG_DIMM_MAX=1
|
||||||
|
CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0
|
||||||
|
CONFIG_FMDFILE=""
|
||||||
|
CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00
|
||||||
|
# CONFIG_DRIVERS_UART_8250IO is not set
|
||||||
|
CONFIG_IFD_BIN_PATH="../../blobs/librem_skl/descriptor.bin"
|
||||||
|
CONFIG_ME_BIN_PATH="../../blobs/librem_skl/me.bin"
|
||||||
|
CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Librem 15 v3"
|
||||||
|
CONFIG_ADD_FSP_BINARIES=y
|
||||||
|
CONFIG_FSP_M_FILE="../../blobs/librem_skl/fspm.bin"
|
||||||
|
CONFIG_FSP_S_FILE="../../blobs/librem_skl/fsps.bin"
|
||||||
|
CONFIG_FSP_S_CBFS="fsps.bin"
|
||||||
|
CONFIG_FSP_M_CBFS="fspm.bin"
|
||||||
|
CONFIG_CPU_ADDR_BITS=36
|
||||||
|
CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
|
||||||
|
CONFIG_MAINBOARD_VERSION="3.0"
|
||||||
|
# CONFIG_DRIVERS_PS2_KEYBOARD is not set
|
||||||
|
# CONFIG_BOARD_PURISM_LIBREM13_V1 is not set
|
||||||
|
# CONFIG_BOARD_PURISM_LIBREM13_V2 is not set
|
||||||
|
CONFIG_BOARD_PURISM_LIBREM15_V3=y
|
||||||
|
CONFIG_PCIEXP_L1_SUB_STATE=y
|
||||||
|
# CONFIG_NO_POST is not set
|
||||||
|
CONFIG_BOARD_PURISM_BASEBOARD_LIBREM_SKL=y
|
||||||
|
CONFIG_CPU_MICROCODE_CBFS_LEN=0x18000
|
||||||
|
CONFIG_CPU_MICROCODE_CBFS_LOC=0xFFE115A0
|
||||||
|
CONFIG_BOARD_ROMSIZE_KB_16384=y
|
||||||
|
# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set
|
||||||
|
# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set
|
||||||
|
# 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_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=0x1000000
|
||||||
|
# CONFIG_MAINBOARD_HAS_TPM2 is not set
|
||||||
|
CONFIG_SYSTEM_TYPE_LAPTOP=y
|
||||||
|
# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Chipset
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# SoC
|
||||||
|
#
|
||||||
|
CONFIG_CPU_SPECIFIC_OPTIONS=y
|
||||||
|
CONFIG_DCACHE_BSP_STACK_SIZE=0x4000
|
||||||
|
CONFIG_RAMTOP=0x200000
|
||||||
|
CONFIG_HEAP_SIZE=0x80000
|
||||||
|
CONFIG_RAMBASE=0x100000
|
||||||
|
CONFIG_SERIRQ_CONTINUOUS_MODE=y
|
||||||
|
CONFIG_SMM_TSEG_SIZE=0x800000
|
||||||
|
CONFIG_SMM_RESERVED_SIZE=0x200000
|
||||||
|
CONFIG_ACPI_CPU_STRING="\\_PR.CP%02d"
|
||||||
|
CONFIG_DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ=120
|
||||||
|
# CONFIG_SOC_BROADCOM_CYGNUS is not set
|
||||||
|
# CONFIG_SOC_INTEL_GLK is not set
|
||||||
|
CONFIG_SOC_INTEL_COMMON_RESET=y
|
||||||
|
CONFIG_PCR_BASE_ADDRESS=0xfd000000
|
||||||
|
CONFIG_SOC_INTEL_COMMON_LPSS_CLOCK_MHZ=120
|
||||||
|
CONFIG_C_ENV_BOOTBLOCK_SIZE=0xC000
|
||||||
|
CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y
|
||||||
|
CONFIG_ROMSTAGE_ADDR=0x2000000
|
||||||
|
CONFIG_VERSTAGE_ADDR=0x2000000
|
||||||
|
# CONFIG_NHLT_MAX98357 is not set
|
||||||
|
# CONFIG_NHLT_DA7219 is not set
|
||||||
|
# CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS is not set
|
||||||
|
CONFIG_CPU_BCLK_MHZ=100
|
||||||
|
CONFIG_SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL=0x30
|
||||||
|
CONFIG_SOC_INTEL_COMMON_LPSS_UART_CLK_N_VAL=0xc35
|
||||||
|
# CONFIG_RESET_ON_INVALID_RAMSTAGE_CACHE is not set
|
||||||
|
CONFIG_CHIPSET_BOOTBLOCK_INCLUDE="soc/intel/skylake/bootblock/timestamp.inc"
|
||||||
|
CONFIG_IED_REGION_SIZE=0x400000
|
||||||
|
CONFIG_PCIEXP_ASPM=y
|
||||||
|
CONFIG_PCIEXP_COMMON_CLOCK=y
|
||||||
|
CONFIG_PCIEXP_CLK_PM=y
|
||||||
|
# CONFIG_SERIAL_CPU_INIT is not set
|
||||||
|
# CONFIG_UART_DEBUG is not set
|
||||||
|
CONFIG_MAX_ROOT_PORTS=24
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_GSPI_MAX=2
|
||||||
|
CONFIG_STACK_SIZE=0x1000
|
||||||
|
CONFIG_CONSOLE_CBMEM=y
|
||||||
|
CONFIG_UART_PCI_ADDR=0x0
|
||||||
|
CONFIG_SOC_INTEL_SKYLAKE=y
|
||||||
|
# CONFIG_SOC_INTEL_KABYLAKE is not set
|
||||||
|
CONFIG_MAINBOARD_USES_FSP2_0=y
|
||||||
|
CONFIG_USE_FSP2_0_DRIVER=y
|
||||||
|
CONFIG_BOOTBLOCK_RESETS="soc/intel/common/reset.c"
|
||||||
|
# CONFIG_EXCLUDE_NATIVE_SD_INTERFACE is not set
|
||||||
|
# CONFIG_SKYLAKE_SOC_PCH_H is not set
|
||||||
|
# CONFIG_NHLT_DMIC_2CH is not set
|
||||||
|
# CONFIG_NHLT_DMIC_4CH is not set
|
||||||
|
# CONFIG_NHLT_NAU88L25 is not set
|
||||||
|
# CONFIG_NHLT_SSM4567 is not set
|
||||||
|
# CONFIG_NHLT_RT5514 is not set
|
||||||
|
# CONFIG_NHLT_RT5663 is not set
|
||||||
|
# CONFIG_NHLT_MAX98927 is not set
|
||||||
|
CONFIG_CAR_NEM_ENHANCED=y
|
||||||
|
# CONFIG_USE_SKYLAKE_FSP_CAR is not set
|
||||||
|
CONFIG_SKIP_FSP_CAR=y
|
||||||
|
# CONFIG_NO_FADT_8042 is not set
|
||||||
|
CONFIG_SOC_INTEL_COMMON=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Intel SoC Common Code
|
||||||
|
#
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Intel SoC Common IP Code
|
||||||
|
#
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_CPU=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_CPU_MPINIT=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_CAR=y
|
||||||
|
# CONFIG_INTEL_CAR_NEM is not set
|
||||||
|
# CONFIG_INTEL_CAR_CQOS is not set
|
||||||
|
CONFIG_INTEL_CAR_NEM_ENHANCED=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_CSE=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_DSP=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_EBDA=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_FAST_SPI=y
|
||||||
|
CONFIG_FAST_SPI_DISABLE_WRITE_STATUS=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_GPIO=y
|
||||||
|
# CONFIG_DEBUG_SOC_COMMON_BLOCK_GPIO is not set
|
||||||
|
# CONFIG_SOC_INTEL_COMMON_BLOCK_GPIO_ITSS_POL_CFG is not set
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_GPIO_PADCFG_PADTOL=y
|
||||||
|
# CONFIG_SOC_INTEL_COMMON_BLOCK_GPIO_IOSTANDBY is not set
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_GPIO_LEGACY_MACROS=y
|
||||||
|
# CONFIG_SOC_INTEL_COMMON_BLOCK_GPIO_MULTI_ACPI_DEVICES is not set
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_GRAPHICS=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_GSPI=y
|
||||||
|
# CONFIG_SOC_INTEL_COMMON_BLOCK_GSPI_VERSION_2 is not set
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_I2C=y
|
||||||
|
# CONFIG_SOC_INTEL_COMMON_BLOCK_I2C_DEBUG is not set
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_ITSS=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_LPC=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_LPSS=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_PCIE=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_PCR=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_PMC=y
|
||||||
|
# CONFIG_POWER_STATE_OFF_AFTER_FAILURE is not set
|
||||||
|
CONFIG_POWER_STATE_ON_AFTER_FAILURE=y
|
||||||
|
# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_RTC=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_SATA=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_SCS=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_SGX=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_SMBUS=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_SMM=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_SMM_IO_TRAP=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_SPI=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_SA=y
|
||||||
|
CONFIG_SA_PCIEX_LENGTH=0x4000000
|
||||||
|
CONFIG_PCIEX_LENGTH_64MB=y
|
||||||
|
# CONFIG_SA_ENABLE_IMR is not set
|
||||||
|
CONFIG_SA_ENABLE_DPR=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_TIMER=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_UART=y
|
||||||
|
CONFIG_SOC_INTEL_COMMON_BLOCK_XHCI=y
|
||||||
|
# CONFIG_DISPLAY_MTRRS is not set
|
||||||
|
# CONFIG_DISPLAY_SMM_MEMORY_MAP is not set
|
||||||
|
CONFIG_SOC_INTEL_COMMON_ACPI_WAKE_SOURCE=y
|
||||||
|
# CONFIG_ACPI_CONSOLE is not set
|
||||||
|
# CONFIG_MMA is not set
|
||||||
|
CONFIG_SOC_INTEL_COMMON_GFX_OPREGION=y
|
||||||
|
# CONFIG_SOC_INTEL_COMMON_SMI is not set
|
||||||
|
# CONFIG_SOC_INTEL_COMMON_ACPI is not set
|
||||||
|
CONFIG_SOC_INTEL_COMMON_NHLT=y
|
||||||
|
# CONFIG_SOC_LOWRISC_LOWRISC is not set
|
||||||
|
# CONFIG_SOC_MARVELL_MVMAP2315 is not set
|
||||||
|
# CONFIG_SOC_MEDIATEK_MT8173 is not set
|
||||||
|
# CONFIG_SOC_NVIDIA_TEGRA124 is not set
|
||||||
|
# CONFIG_SOC_NVIDIA_TEGRA210 is not set
|
||||||
|
# CONFIG_SOC_QC_IPQ40XX is not set
|
||||||
|
# CONFIG_SOC_QC_IPQ806X is not set
|
||||||
|
# CONFIG_SOC_ROCKCHIP_RK3288 is not set
|
||||||
|
# CONFIG_SOC_ROCKCHIP_RK3399 is not set
|
||||||
|
# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set
|
||||||
|
# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set
|
||||||
|
# CONFIG_SOC_UCB_RISCV is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# CPU
|
||||||
|
#
|
||||||
|
# CONFIG_CPU_ALLWINNER_A10 is not set
|
||||||
|
CONFIG_NUM_IPI_STARTS=2
|
||||||
|
# CONFIG_CPU_AMD_AGESA is not set
|
||||||
|
# CONFIG_CPU_AMD_PI is not set
|
||||||
|
# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set
|
||||||
|
CONFIG_SSE2=y
|
||||||
|
CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE=y
|
||||||
|
CONFIG_CPU_INTEL_NUM_FIT_ENTRIES=4
|
||||||
|
# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set
|
||||||
|
# CONFIG_CPU_TI_AM335X is not set
|
||||||
|
# CONFIG_PARALLEL_CPU_INIT is not set
|
||||||
|
CONFIG_PARALLEL_MP=y
|
||||||
|
CONFIG_PARALLEL_MP_AP_WORK=y
|
||||||
|
# CONFIG_UDELAY_IO is not set
|
||||||
|
# CONFIG_UDELAY_LAPIC is not set
|
||||||
|
CONFIG_UDELAY_TSC=y
|
||||||
|
CONFIG_TSC_CONSTANT_RATE=y
|
||||||
|
CONFIG_TSC_MONOTONIC_TIMER=y
|
||||||
|
# CONFIG_UDELAY_TIMER2 is not set
|
||||||
|
# CONFIG_TSC_SYNC_LFENCE is not set
|
||||||
|
CONFIG_TSC_SYNC_MFENCE=y
|
||||||
|
CONFIG_NO_FIXED_XIP_ROM_SIZE=y
|
||||||
|
CONFIG_LOGICAL_CPUS=y
|
||||||
|
CONFIG_SMM_TSEG=y
|
||||||
|
CONFIG_SMM_MODULE_HEAP_SIZE=0x4000
|
||||||
|
# CONFIG_SMM_LAPIC_REMAP_MITIGATION is not set
|
||||||
|
# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set
|
||||||
|
# CONFIG_X86_AMD_FIXED_MTRRS is not set
|
||||||
|
# CONFIG_PLATFORM_USES_FSP1_0 is not set
|
||||||
|
# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set
|
||||||
|
# CONFIG_SOC_SETS_MSRS is not set
|
||||||
|
CONFIG_CACHE_AS_RAM=y
|
||||||
|
CONFIG_NO_CAR_GLOBAL_MIGRATION=y
|
||||||
|
CONFIG_SMP=y
|
||||||
|
CONFIG_AP_SIPI_VECTOR=0xfffff000
|
||||||
|
CONFIG_SSE=y
|
||||||
|
CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y
|
||||||
|
# CONFIG_USES_MICROCODE_HEADER_FILES is not set
|
||||||
|
CONFIG_CPU_MICROCODE_CBFS_GENERATE=y
|
||||||
|
# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set
|
||||||
|
# CONFIG_CPU_MICROCODE_CBFS_NONE is not set
|
||||||
|
# CONFIG_CPU_MICROCODE_MULTIPLE_FILES is not set
|
||||||
|
CONFIG_CPU_UCODE_BINARIES="../../blobs/librem_skl/cpu_microcode_blob.bin"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Northbridge
|
||||||
|
#
|
||||||
|
# CONFIG_NORTHBRIDGE_AMD_AGESA is not set
|
||||||
|
# CONFIG_NO_MMCONF_SUPPORT is not set
|
||||||
|
# CONFIG_AMD_NB_CIMX is not set
|
||||||
|
# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set
|
||||||
|
# CONFIG_NORTHBRIDGE_AMD_PI is not set
|
||||||
|
# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set
|
||||||
|
CONFIG_HPET_ADDRESS=0xfed00000
|
||||||
|
CONFIG_MAX_PIRQ_LINKS=4
|
||||||
|
|
||||||
|
#
|
||||||
|
# Southbridge
|
||||||
|
#
|
||||||
|
# CONFIG_AMD_SB_CIMX is not set
|
||||||
|
# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set
|
||||||
|
# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set
|
||||||
|
# CONFIG_SOUTHBRIDGE_INTEL_COMMON is not set
|
||||||
|
# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set
|
||||||
|
# CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS is not set
|
||||||
|
# CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI is not set
|
||||||
|
# CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN is not set
|
||||||
|
# CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ is not set
|
||||||
|
# CONFIG_HAVE_INTEL_CHIPSET_LOCKDOWN is not set
|
||||||
|
# CONFIG_LOCK_MANAGEMENT_ENGINE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Super I/O
|
||||||
|
#
|
||||||
|
# CONFIG_SUPERIO_NUVOTON_NCT6776_COM_A is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Embedded Controllers
|
||||||
|
#
|
||||||
|
CONFIG_HAVE_INTEL_FIRMWARE=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Intel Firmware
|
||||||
|
#
|
||||||
|
# CONFIG_EM100 is not set
|
||||||
|
# CONFIG_CHECK_ME is not set
|
||||||
|
# CONFIG_USE_ME_CLEANER is not set
|
||||||
|
# CONFIG_HAVE_EC_BIN is not set
|
||||||
|
# CONFIG_MAINBOARD_HAS_CHROMEOS is not set
|
||||||
|
# CONFIG_GOOGLE_SMBIOS_MAINBOARD_VERSION is not set
|
||||||
|
# CONFIG_UEFI_2_4_BINDING is not set
|
||||||
|
CONFIG_UDK_2015_BINDING=y
|
||||||
|
# CONFIG_USE_SIEMENS_HWILIB is not set
|
||||||
|
# CONFIG_ARCH_ARM is not set
|
||||||
|
# CONFIG_ARCH_BOOTBLOCK_ARM is not set
|
||||||
|
# CONFIG_ARCH_VERSTAGE_ARM is not set
|
||||||
|
# CONFIG_ARCH_ROMSTAGE_ARM is not set
|
||||||
|
# CONFIG_ARCH_RAMSTAGE_ARM is not set
|
||||||
|
# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set
|
||||||
|
# CONFIG_ARCH_VERSTAGE_ARMV4 is not set
|
||||||
|
# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set
|
||||||
|
# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set
|
||||||
|
# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set
|
||||||
|
# CONFIG_ARCH_VERSTAGE_ARMV7 is not set
|
||||||
|
# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set
|
||||||
|
# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set
|
||||||
|
# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set
|
||||||
|
# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set
|
||||||
|
# CONFIG_ARCH_BOOTBLOCK_ARMV7_R is not set
|
||||||
|
# CONFIG_ARCH_VERSTAGE_ARMV7_R is not set
|
||||||
|
# CONFIG_ARCH_ROMSTAGE_ARMV7_R is not set
|
||||||
|
# CONFIG_ARCH_RAMSTAGE_ARMV7_R is not set
|
||||||
|
# CONFIG_ARM_LPAE is not set
|
||||||
|
# CONFIG_ARCH_ARM64 is not set
|
||||||
|
# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set
|
||||||
|
# CONFIG_ARCH_VERSTAGE_ARM64 is not set
|
||||||
|
# CONFIG_ARCH_ROMSTAGE_ARM64 is not set
|
||||||
|
# CONFIG_ARCH_RAMSTAGE_ARM64 is not set
|
||||||
|
# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set
|
||||||
|
# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set
|
||||||
|
# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set
|
||||||
|
# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set
|
||||||
|
# CONFIG_ARM64_A53_ERRATUM_843419 is not set
|
||||||
|
# CONFIG_ARCH_MIPS is not set
|
||||||
|
# CONFIG_ARCH_BOOTBLOCK_MIPS is not set
|
||||||
|
# CONFIG_ARCH_VERSTAGE_MIPS is not set
|
||||||
|
# CONFIG_ARCH_ROMSTAGE_MIPS is not set
|
||||||
|
# CONFIG_ARCH_RAMSTAGE_MIPS is not set
|
||||||
|
# CONFIG_ARCH_POWER8 is not set
|
||||||
|
# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set
|
||||||
|
# CONFIG_ARCH_VERSTAGE_POWER8 is not set
|
||||||
|
# CONFIG_ARCH_ROMSTAGE_POWER8 is not set
|
||||||
|
# CONFIG_ARCH_RAMSTAGE_POWER8 is not set
|
||||||
|
# CONFIG_ARCH_RISCV is not set
|
||||||
|
# CONFIG_ARCH_BOOTBLOCK_RISCV is not set
|
||||||
|
# CONFIG_ARCH_VERSTAGE_RISCV is not set
|
||||||
|
# CONFIG_ARCH_ROMSTAGE_RISCV is not set
|
||||||
|
# CONFIG_ARCH_RAMSTAGE_RISCV is not set
|
||||||
|
CONFIG_ARCH_X86=y
|
||||||
|
CONFIG_ARCH_BOOTBLOCK_X86_32=y
|
||||||
|
CONFIG_ARCH_VERSTAGE_X86_32=y
|
||||||
|
CONFIG_ARCH_ROMSTAGE_X86_32=y
|
||||||
|
CONFIG_ARCH_RAMSTAGE_X86_32=y
|
||||||
|
# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set
|
||||||
|
# CONFIG_ARCH_VERSTAGE_X86_64 is not set
|
||||||
|
# CONFIG_ARCH_ROMSTAGE_X86_64 is not set
|
||||||
|
# CONFIG_ARCH_RAMSTAGE_X86_64 is not set
|
||||||
|
# CONFIG_USE_MARCH_586 is not set
|
||||||
|
# CONFIG_AP_IN_SIPI_WAIT is not set
|
||||||
|
# CONFIG_SIPI_VECTOR_IN_ROM is not set
|
||||||
|
# CONFIG_ROMCC is not set
|
||||||
|
# CONFIG_CBMEM_TOP_BACKUP is not set
|
||||||
|
# CONFIG_LATE_CBMEM_INIT is not set
|
||||||
|
CONFIG_EARLY_EBDA_INIT=y
|
||||||
|
CONFIG_PC80_SYSTEM=y
|
||||||
|
# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set
|
||||||
|
# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set
|
||||||
|
CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
|
||||||
|
# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set
|
||||||
|
CONFIG_POSTCAR_STAGE=y
|
||||||
|
# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set
|
||||||
|
# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set
|
||||||
|
CONFIG_BOOTBLOCK_SIMPLE=y
|
||||||
|
# CONFIG_BOOTBLOCK_NORMAL is not set
|
||||||
|
CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Devices
|
||||||
|
#
|
||||||
|
CONFIG_HAVE_FSP_GOP=y
|
||||||
|
# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT is not set
|
||||||
|
# CONFIG_MAINBOARD_HAS_LIBGFXINIT is not set
|
||||||
|
# CONFIG_RUN_FSP_GOP is not set
|
||||||
|
# CONFIG_VGA_ROM_RUN is not set
|
||||||
|
CONFIG_NO_GFX_INIT=y
|
||||||
|
# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
|
||||||
|
# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set
|
||||||
|
CONFIG_PCI=y
|
||||||
|
CONFIG_MMCONF_SUPPORT=y
|
||||||
|
# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
|
||||||
|
CONFIG_PCIX_PLUGIN_SUPPORT=y
|
||||||
|
CONFIG_CARDBUS_PLUGIN_SUPPORT=y
|
||||||
|
# CONFIG_AZALIA_PLUGIN_SUPPORT is not set
|
||||||
|
CONFIG_PCIEXP_PLUGIN_SUPPORT=y
|
||||||
|
# CONFIG_EARLY_PCI_BRIDGE is not set
|
||||||
|
CONFIG_SUBSYSTEM_VENDOR_ID=0x0000
|
||||||
|
CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
|
||||||
|
# CONFIG_INTEL_GMA_ADD_VBT_DATA_FILE is not set
|
||||||
|
# CONFIG_SOFTWARE_I2C is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generic Drivers
|
||||||
|
#
|
||||||
|
# CONFIG_DRIVERS_AS3722_RTC is not set
|
||||||
|
# CONFIG_ELOG is not set
|
||||||
|
# CONFIG_GIC is not set
|
||||||
|
# CONFIG_IPMI_KCS is not set
|
||||||
|
# CONFIG_DRIVERS_LENOVO_WACOM is not set
|
||||||
|
CONFIG_CACHE_MRC_SETTINGS=y
|
||||||
|
CONFIG_MRC_SETTINGS_CACHE_BASE=0xfffe0000
|
||||||
|
CONFIG_MRC_SETTINGS_CACHE_SIZE=0x10000
|
||||||
|
CONFIG_MRC_SETTINGS_PROTECT=y
|
||||||
|
# CONFIG_HAS_RECOVERY_MRC_CACHE is not set
|
||||||
|
# CONFIG_MRC_CLEAR_NORMAL_CACHE_ON_RECOVERY_RETRAIN is not set
|
||||||
|
# CONFIG_MRC_SETTINGS_VARIABLE_DATA is not set
|
||||||
|
# CONFIG_RT8168_GET_MAC_FROM_VPD is not set
|
||||||
|
# CONFIG_RT8168_SET_LED_MODE 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_SMM is not set
|
||||||
|
# CONFIG_SPI_FLASH_NO_FAST_READ is not set
|
||||||
|
# CONFIG_SPI_FLASH_FAST_READ_DUAL_OUTPUT_3B is not set
|
||||||
|
# CONFIG_SPI_FLASH_HAS_VOLATILE_GROUP is not set
|
||||||
|
# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set
|
||||||
|
# CONFIG_DRIVERS_UART is not set
|
||||||
|
# CONFIG_NO_UART_ON_SUPERIO is not set
|
||||||
|
# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set
|
||||||
|
# CONFIG_UART_OVERRIDE_REFCLK is not set
|
||||||
|
# CONFIG_DRIVERS_UART_8250MEM is not set
|
||||||
|
# CONFIG_DRIVERS_UART_8250MEM_32 is not set
|
||||||
|
# CONFIG_HAVE_UART_SPECIAL is not set
|
||||||
|
# CONFIG_DRIVERS_UART_OXPCIE is not set
|
||||||
|
# CONFIG_DRIVERS_UART_PL011 is not set
|
||||||
|
# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set
|
||||||
|
# CONFIG_HAVE_USBDEBUG is not set
|
||||||
|
# CONFIG_HAVE_USBDEBUG_OPTIONS is not set
|
||||||
|
# CONFIG_DRIVERS_AMD_PI is not set
|
||||||
|
# CONFIG_SMBIOS_PROVIDED_BY_MOBO is not set
|
||||||
|
CONFIG_DRIVERS_I2C_DESIGNWARE=y
|
||||||
|
# CONFIG_DRIVERS_I2C_DESIGNWARE_DEBUG is not set
|
||||||
|
# CONFIG_DRIVERS_I2C_MAX98927 is not set
|
||||||
|
# CONFIG_DRIVERS_I2C_PCF8523 is not set
|
||||||
|
# CONFIG_DRIVERS_I2C_RT5663 is not set
|
||||||
|
# CONFIG_DRIVERS_I2C_RTD2132 is not set
|
||||||
|
# CONFIG_DRIVERS_I2C_RX6110SA is not set
|
||||||
|
# CONFIG_I2C_TPM is not set
|
||||||
|
# CONFIG_MAINBOARD_HAS_I2C_TPM_ATMEL is not set
|
||||||
|
# CONFIG_MAINBOARD_HAS_I2C_TPM_CR50 is not set
|
||||||
|
# CONFIG_DISPLAY_HOBS is not set
|
||||||
|
# CONFIG_DISPLAY_UPD_DATA is not set
|
||||||
|
CONFIG_CHECKLIST_DATA_FILE_LOCATION="src/vendorcode/intel/fsp/fsp2_0/checklist"
|
||||||
|
CONFIG_PLATFORM_USES_FSP2_0=y
|
||||||
|
CONFIG_DISPLAY_FSP_CALLS_AND_STATUS=y
|
||||||
|
# CONFIG_DISPLAY_FSP_HEADER is not set
|
||||||
|
# CONFIG_FSP_CAR is not set
|
||||||
|
CONFIG_FSP_M_XIP=y
|
||||||
|
# CONFIG_VERIFY_HOBS is not set
|
||||||
|
# CONFIG_FSP2_0_USES_TPM_MRC_HASH is not set
|
||||||
|
# CONFIG_INTEL_DDI is not set
|
||||||
|
# CONFIG_INTEL_EDID is not set
|
||||||
|
# CONFIG_INTEL_INT15 is not set
|
||||||
|
# CONFIG_INTEL_GMA_ACPI is not set
|
||||||
|
# CONFIG_INTEL_GMA_SSC_ALTERNATE_REF is not set
|
||||||
|
# CONFIG_DRIVER_INTEL_I210 is not set
|
||||||
|
# CONFIG_DRIVERS_INTEL_MIPI_CAMERA is not set
|
||||||
|
# CONFIG_DRIVERS_INTEL_WIFI is not set
|
||||||
|
# CONFIG_USE_SAR is not set
|
||||||
|
# CONFIG_DRIVERS_LENOVO_HYBRID_GRAPHICS is not set
|
||||||
|
# CONFIG_DRIVER_MAXIM_MAX77686 is not set
|
||||||
|
# CONFIG_DRIVER_PARADE_PS8625 is not set
|
||||||
|
# CONFIG_DRIVER_PARADE_PS8640 is not set
|
||||||
|
CONFIG_DRIVERS_MC146818=y
|
||||||
|
CONFIG_MAINBOARD_HAS_LPC_TPM=y
|
||||||
|
CONFIG_LPC_TPM=y
|
||||||
|
CONFIG_TPM_TIS_BASE_ADDRESS=0xfed40000
|
||||||
|
# CONFIG_TPM_INIT_FAILURE_IS_FATAL is not set
|
||||||
|
# CONFIG_SKIP_TPM_STARTUP_ON_NORMAL_BOOT is not set
|
||||||
|
# CONFIG_TPM_DEACTIVATE is not set
|
||||||
|
# CONFIG_DRIVERS_RICOH_RCE822 is not set
|
||||||
|
# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set
|
||||||
|
# CONFIG_NC_FPGA_NOTIFY_CB_READY is not set
|
||||||
|
# CONFIG_DRIVERS_SIL_3114 is not set
|
||||||
|
# CONFIG_MAINBOARD_HAS_SPI_TPM_CR50 is not set
|
||||||
|
# CONFIG_DRIVER_TI_TPS65090 is not set
|
||||||
|
# CONFIG_DRIVERS_TI_TPS65913 is not set
|
||||||
|
# CONFIG_DRIVERS_TI_TPS65913_RTC is not set
|
||||||
|
# CONFIG_DRIVER_XPOWERS_AXP209 is not set
|
||||||
|
# CONFIG_COMMONLIB_STORAGE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Security
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Verified Boot (vboot)
|
||||||
|
#
|
||||||
|
# CONFIG_ACPI_SATA_GENERATOR is not set
|
||||||
|
CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y
|
||||||
|
# CONFIG_ACPI_AMD_HARDWARE_SLEEP_VALUES is not set
|
||||||
|
# CONFIG_BOOT_DEVICE_NOT_SPI_FLASH is not set
|
||||||
|
CONFIG_BOOT_DEVICE_SPI_FLASH=y
|
||||||
|
CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y
|
||||||
|
CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y
|
||||||
|
CONFIG_RTC=y
|
||||||
|
CONFIG_TPM=y
|
||||||
|
# CONFIG_MAINBOARD_HAS_TPM_CR50 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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_BUFFER_SIZE=0x20000
|
||||||
|
# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set
|
||||||
|
# CONFIG_CONSOLE_SPI_FLASH is not set
|
||||||
|
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
|
||||||
|
# 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 is not set
|
||||||
|
# CONFIG_CMOS_POST is not set
|
||||||
|
# CONFIG_CONSOLE_POST is not set
|
||||||
|
# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set
|
||||||
|
CONFIG_HWBASE_DEBUG_CB=y
|
||||||
|
CONFIG_HAVE_ACPI_RESUME=y
|
||||||
|
# CONFIG_ACPI_HUGE_LOWMEM_BACKUP is not set
|
||||||
|
CONFIG_RESUME_PATH_SAME_AS_BOOT=y
|
||||||
|
CONFIG_HAVE_HARD_RESET=y
|
||||||
|
# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set
|
||||||
|
# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set
|
||||||
|
# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set
|
||||||
|
CONFIG_HAVE_MONOTONIC_TIMER=y
|
||||||
|
# CONFIG_GENERIC_UDELAY is not set
|
||||||
|
# CONFIG_TIMER_QUEUE is not set
|
||||||
|
# CONFIG_HAVE_OPTION_TABLE is not set
|
||||||
|
# CONFIG_PIRQ_ROUTE is not set
|
||||||
|
CONFIG_HAVE_SMI_HANDLER=y
|
||||||
|
# CONFIG_PCI_IO_CFG_EXT is not set
|
||||||
|
CONFIG_IOAPIC=y
|
||||||
|
# CONFIG_USE_WATCHDOG_ON_BOOT is not set
|
||||||
|
# CONFIG_GFXUMA is not set
|
||||||
|
CONFIG_HAVE_ACPI_TABLES=y
|
||||||
|
CONFIG_COMMON_FADT=y
|
||||||
|
CONFIG_ACPI_NHLT=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# System tables
|
||||||
|
#
|
||||||
|
# CONFIG_GENERATE_MP_TABLE is not set
|
||||||
|
# CONFIG_GENERATE_PIRQ_TABLE is not set
|
||||||
|
CONFIG_GENERATE_SMBIOS_TABLES=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Payload
|
||||||
|
#
|
||||||
|
# CONFIG_PAYLOAD_NONE is not set
|
||||||
|
# CONFIG_PAYLOAD_ELF is not set
|
||||||
|
# CONFIG_PAYLOAD_BAYOU is not set
|
||||||
|
# CONFIG_PAYLOAD_FILO is not set
|
||||||
|
# CONFIG_PAYLOAD_GRUB2 is not set
|
||||||
|
# CONFIG_PAYLOAD_SEABIOS is not set
|
||||||
|
# CONFIG_PAYLOAD_UBOOT is not set
|
||||||
|
CONFIG_PAYLOAD_LINUX=y
|
||||||
|
# CONFIG_PAYLOAD_TIANOCORE is not set
|
||||||
|
CONFIG_PAYLOAD_FILE="../../build/librem15v3/bzImage"
|
||||||
|
CONFIG_PAYLOAD_OPTIONS=""
|
||||||
|
# CONFIG_PXE is not set
|
||||||
|
CONFIG_LINUX_COMMAND_LINE="intel_iommu=on iommu=pt"
|
||||||
|
CONFIG_LINUX_INITRD="../../build/librem15v3/initrd.cpio.xz"
|
||||||
|
# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Secondary Payloads
|
||||||
|
#
|
||||||
|
CONFIG_COREINFO_SECONDARY_PAYLOAD=y
|
||||||
|
CONFIG_MEMTEST_SECONDARY_PAYLOAD=y
|
||||||
|
CONFIG_MEMTEST_STABLE=y
|
||||||
|
# CONFIG_MEMTEST_MASTER is not set
|
||||||
|
# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set
|
||||||
|
# CONFIG_TINT_SECONDARY_PAYLOAD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Debugging
|
||||||
|
#
|
||||||
|
# CONFIG_FATAL_ASSERTS is not set
|
||||||
|
# CONFIG_DEBUG_CBFS is not set
|
||||||
|
# CONFIG_HAVE_DEBUG_RAM_SETUP is not set
|
||||||
|
# CONFIG_HAVE_DEBUG_CAR is not set
|
||||||
|
# CONFIG_HAVE_DEBUG_SMBUS is not set
|
||||||
|
# CONFIG_DEBUG_SMI is not set
|
||||||
|
# CONFIG_DEBUG_SMM_RELOCATION is not set
|
||||||
|
# CONFIG_DEBUG_MALLOC is not set
|
||||||
|
# CONFIG_DEBUG_ACPI is not set
|
||||||
|
# CONFIG_DEBUG_TPM is not set
|
||||||
|
# CONFIG_DEBUG_SPI_FLASH is not set
|
||||||
|
# CONFIG_TRACE is not set
|
||||||
|
# CONFIG_DEBUG_BOOT_STATE is not set
|
||||||
|
# CONFIG_DEBUG_ADA_CODE is not set
|
||||||
|
CONFIG_NO_EDID_FILL_FB=y
|
||||||
|
# CONFIG_ENABLE_APIC_EXT_ID is not set
|
||||||
|
CONFIG_WARNINGS_ARE_ERRORS=y
|
||||||
|
# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set
|
||||||
|
# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set
|
||||||
|
# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set
|
||||||
|
# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set
|
||||||
|
# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set
|
||||||
|
CONFIG_REG_SCRIPT=y
|
||||||
|
# CONFIG_CREATE_BOARD_CHECKLIST is not set
|
||||||
|
# CONFIG_MAKE_CHECKLIST_PUBLIC is not set
|
||||||
|
# CONFIG_NO_XIP_EARLY_STAGES is not set
|
||||||
|
CONFIG_EARLY_CBMEM_INIT=y
|
||||||
|
# CONFIG_EARLY_CBMEM_LIST is not set
|
||||||
|
CONFIG_RELOCATABLE_MODULES=y
|
||||||
|
CONFIG_GENERIC_GPIO_LIB=y
|
||||||
|
CONFIG_SPD_READ_BY_WORD=y
|
||||||
|
CONFIG_C_ENVIRONMENT_BOOTBLOCK=y
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
|||||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuf59gWFcsnxdXAj7wvbzYto6JTmCF3pAXRS2RGipJUOqmWFayL8mKKLJMPpLoB60oaFno6+Uedbm93v/UQvt1FMWbhBe6Y15KawXEnmX1pjCfGbfbB9UC+EM8l9QPaQfdgCGt8e/CeM+kQKQ0X38d9WvaSNoP0EC9xoMsx7scbhy5O1VtmUYuDNXC2ZtAmCQLS2rC5RyweLA0DFWbmyOa75STEOYe0xuG8Kix7gBUP/LwawZN8URrszTzJonewYEF/PQoltcCnqkIbgVvMnm1N/hS42/911gPzlD29F1ZjhVplraOtlRKD0D5ogR5/5hKyL48MRbt9pi7lm0MtdeR hudson@diamond
|
|
31
initrd/bin/cbfs-init
Executable file
31
initrd/bin/cbfs-init
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/ash
|
||||||
|
set -e -o pipefail
|
||||||
|
. /etc/functions
|
||||||
|
|
||||||
|
# Update initrd with CBFS files
|
||||||
|
if [ -z "$CONFIG_PCR" ]; then
|
||||||
|
CONFIG_PCR=7
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Load individual files
|
||||||
|
cbfsfiles=`cbfs -t 50 -l 2>/dev/null | grep "^heads/initrd/"`
|
||||||
|
|
||||||
|
for cbfsname in `echo $cbfsfiles`; do
|
||||||
|
filename=${cbfsname:12}
|
||||||
|
if [ ! -z "$filename" ]; then
|
||||||
|
echo "Loading $filename from CBFS"
|
||||||
|
mkdir -p `dirname $filename` \
|
||||||
|
|| die "$filename: mkdir failed"
|
||||||
|
cbfs -t 50 -r $cbfsname > "$filename" \
|
||||||
|
|| die "$filename: cbfs file read failed"
|
||||||
|
if [ "$CONFIG_TPM" = "y" ]; then
|
||||||
|
TMPFILE=/tmp/cbfs.$$
|
||||||
|
echo "$filename" > $TMPFILE
|
||||||
|
cat $filename >> $TMPFILE
|
||||||
|
tpm extend -ix "$CONFIG_PCR" -if $TMPFILE \
|
||||||
|
|| die "$filename: tpm extend failed"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# TODO: copy CBFS file named "heads/initrd.tgz" to /tmp, measure and extract
|
@ -1,13 +1,24 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
. /etc/functions
|
. /etc/functions
|
||||||
|
|
||||||
ROM="$1"
|
if [ "$1" = "-c" ]; then
|
||||||
if [ -z "$1" ]; then
|
CLEAN=1
|
||||||
die "Usage: $0 /media/kgpe-d16.rom"
|
ROM="$2"
|
||||||
|
else
|
||||||
|
CLEAN=0
|
||||||
|
ROM="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e "$ROM" ]; then
|
||||||
|
die "Usage: $0 [-c] /media/kgpe-d16.rom"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cp "$ROM" /tmp/kgpe-d16.rom
|
cp "$ROM" /tmp/kgpe-d16.rom
|
||||||
sha256sum /tmp/kgpe-d16.rom
|
sha256sum /tmp/kgpe-d16.rom
|
||||||
|
if [ "$CLEAN" -eq 0 ]; then
|
||||||
|
preserve_rom /tmp/kgpe-d16.rom \
|
||||||
|
|| die "$ROM: Config preservation failed"
|
||||||
|
fi
|
||||||
|
|
||||||
flashrom \
|
flashrom \
|
||||||
--force \
|
--force \
|
||||||
|
@ -1,19 +1,30 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
. /etc/functions
|
. /etc/functions
|
||||||
|
|
||||||
ROM="$1"
|
if [ "$1" = "-c" ]; then
|
||||||
if [ -z "$1" ]; then
|
CLEAN=1
|
||||||
die "Usage: $0 /media/x230.rom"
|
ROM="$2"
|
||||||
|
else
|
||||||
|
CLEAN=0
|
||||||
|
ROM="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e "$ROM" ]; then
|
||||||
|
die "Usage: $0 [-c] /media/x230.rom"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cp "$ROM" /tmp/x230.rom
|
cp "$ROM" /tmp/x230.rom
|
||||||
sha256sum /tmp/x230.rom
|
sha256sum /tmp/x230.rom
|
||||||
|
if [ "$CLEAN" -eq 0 ]; then
|
||||||
|
preserve_rom /tmp/x230.rom \
|
||||||
|
|| die "$ROM: Config preservation failed"
|
||||||
|
fi
|
||||||
|
|
||||||
flashrom \
|
flashrom \
|
||||||
--force \
|
--force \
|
||||||
--noverify \
|
--noverify \
|
||||||
--programmer internal \
|
--programmer internal \
|
||||||
--layout /etc/x230-layout.txt \
|
--ifd \
|
||||||
--image BIOS \
|
--image BIOS \
|
||||||
-w /tmp/x230.rom \
|
-w /tmp/x230.rom \
|
||||||
|| die "$ROM: Flash failed"
|
|| die "$ROM: Flash failed"
|
||||||
|
@ -25,7 +25,7 @@ verify_global_hashes()
|
|||||||
if cd /boot && sha256sum -c "$TMP_HASH_FILE" > /tmp/hash_output ; then
|
if cd /boot && sha256sum -c "$TMP_HASH_FILE" > /tmp/hash_output ; then
|
||||||
return 0
|
return 0
|
||||||
elif [ ! -f $TMP_HASH_FILE ]; then
|
elif [ ! -f $TMP_HASH_FILE ]; then
|
||||||
if (whiptail --clear --title 'ERROR: Missing Hash File!' \
|
if (whiptail $CONFIG_ERROR_BG_COLOR --clear --title 'ERROR: Missing Hash File!' \
|
||||||
--yesno "The file containing hashes for /boot is missing!\n\nIf you are setting this system up for the first time, select Yes to update your list of checksums.\n\nOtherwise this could indicate a compromise and you should select No to return to the main menu.\n\nWould you like to update your checksums now?" 30 80) then
|
--yesno "The file containing hashes for /boot is missing!\n\nIf you are setting this system up for the first time, select Yes to update your list of checksums.\n\nOtherwise this could indicate a compromise and you should select No to return to the main menu.\n\nWould you like to update your checksums now?" 30 80) then
|
||||||
update_checksums
|
update_checksums
|
||||||
fi
|
fi
|
||||||
@ -53,7 +53,7 @@ verify_global_hashes()
|
|||||||
TEXT="The following files failed the verification process:\n${CHANGED_FILES}\n\nThis could indicate a compromise!\n\nWould you like to update your checksums now?"
|
TEXT="The following files failed the verification process:\n${CHANGED_FILES}\n\nThis could indicate a compromise!\n\nWould you like to update your checksums now?"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (whiptail --clear --title 'ERROR: Boot Hash Mismatch' --yesno "$TEXT" 30 80) then
|
if (whiptail $CONFIG_ERROR_BG_COLOR --clear --title 'ERROR: Boot Hash Mismatch' --yesno "$TEXT" 30 80) then
|
||||||
update_checksums
|
update_checksums
|
||||||
fi
|
fi
|
||||||
return 1
|
return 1
|
||||||
@ -104,7 +104,7 @@ while true; do
|
|||||||
last_half=$half;
|
last_half=$half;
|
||||||
TOTP=`unseal-totp`
|
TOTP=`unseal-totp`
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
whiptail --clear --title "ERROR: TOTP Generation Failed!" \
|
whiptail $CONFIG_ERROR_BG_COLOR --clear --title "ERROR: TOTP Generation Failed!" \
|
||||||
--menu "ERROR: Heads couldn't generate the TOTP code.\n\nIf you have just reflashed your BIOS, you will need to generate a new TOTP secret.\n\nIf you have not just reflashed your BIOS, THIS COULD INDICATE TAMPERING!\n\nIf this is the first time the system has booted, you should reset the TPM and set your own password\n\nHow would you like to proceed?" 30 80 4 \
|
--menu "ERROR: Heads couldn't generate the TOTP code.\n\nIf you have just reflashed your BIOS, you will need to generate a new TOTP secret.\n\nIf you have not just reflashed your BIOS, THIS COULD INDICATE TAMPERING!\n\nIf this is the first time the system has booted, you should reset the TPM and set your own password\n\nHow would you like to proceed?" 30 80 4 \
|
||||||
'g' ' Generate new TOTP secret' \
|
'g' ' Generate new TOTP secret' \
|
||||||
'i' ' Ignore error and continue to default boot menu' \
|
'i' ' Ignore error and continue to default boot menu' \
|
||||||
@ -163,7 +163,7 @@ while true; do
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$totp_confirm" = "n" ]; then
|
if [ "$totp_confirm" = "n" ]; then
|
||||||
if (whiptail --title "TOTP code mismatched" \
|
if (whiptail $CONFIG_WARNING_BG_COLOR --title "TOTP code mismatched" \
|
||||||
--yesno "TOTP code mismatches could indicate either TPM tampering or clock drift:\n\nTo correct clock drift: 'date -s HH:MM:SS'\nand save it to the RTC: 'hwclock -w'\nthen reboot and try again.\n\nWould you like to exit to a recovery console?" 30 80) then
|
--yesno "TOTP code mismatches could indicate either TPM tampering or clock drift:\n\nTo correct clock drift: 'date -s HH:MM:SS'\nand save it to the RTC: 'hwclock -w'\nthen reboot and try again.\n\nWould you like to exit to a recovery console?" 30 80) then
|
||||||
echo ""
|
echo ""
|
||||||
echo "To correct clock drift: 'date -s HH:MM:SS'"
|
echo "To correct clock drift: 'date -s HH:MM:SS'"
|
||||||
@ -230,7 +230,7 @@ while true; do
|
|||||||
|
|
||||||
if [ "$totp_confirm" = "i" ]; then
|
if [ "$totp_confirm" = "i" ]; then
|
||||||
# Run the menu selection in "force" mode, bypassing hash checks
|
# Run the menu selection in "force" mode, bypassing hash checks
|
||||||
if (whiptail --title 'Unsafe Forced Boot Selected!' \
|
if (whiptail $CONFIG_WARNING_BG_COLOR --title 'Unsafe Forced Boot Selected!' \
|
||||||
--yesno "WARNING: You have chosen to skip all tamper checks and boot anyway.\n\nThis is an unsafe option!\n\nDo you want to proceed?" 16 80) then
|
--yesno "WARNING: You have chosen to skip all tamper checks and boot anyway.\n\nThis is an unsafe option!\n\nDo you want to proceed?" 16 80) then
|
||||||
mount_boot
|
mount_boot
|
||||||
kexec-select-boot -m -b /boot -c "grub.cfg" -g -f
|
kexec-select-boot -m -b /boot -c "grub.cfg" -g -f
|
||||||
|
@ -106,6 +106,7 @@ tpm sealfile2 \
|
|||||||
-ix 4 0000000000000000000000000000000000000000 \
|
-ix 4 0000000000000000000000000000000000000000 \
|
||||||
-ix 5 0000000000000000000000000000000000000000 \
|
-ix 5 0000000000000000000000000000000000000000 \
|
||||||
-ix 6 $luks_pcr \
|
-ix 6 $luks_pcr \
|
||||||
|
-ix 7 X \
|
||||||
|| die "Unable to seal secret"
|
|| die "Unable to seal secret"
|
||||||
|
|
||||||
rm -f "$KEY_FILE" \
|
rm -f "$KEY_FILE" \
|
||||||
|
@ -57,7 +57,7 @@ verify_global_hashes()
|
|||||||
else
|
else
|
||||||
if [ "$gui_menu" = "y" ]; then
|
if [ "$gui_menu" = "y" ]; then
|
||||||
CHANGED_FILES=$(grep -v 'OK$' /tmp/hash_output | cut -f1 -d ':')
|
CHANGED_FILES=$(grep -v 'OK$' /tmp/hash_output | cut -f1 -d ':')
|
||||||
whiptail --title 'ERROR: Boot Hash Mismatch' \
|
whiptail $CONFIG_ERROR_BG_COLOR --title 'ERROR: Boot Hash Mismatch' \
|
||||||
--msgbox "The following files failed the verification process:\n${CHANGED_FILES}\nExiting to a recovery shell" 16 60
|
--msgbox "The following files failed the verification process:\n${CHANGED_FILES}\nExiting to a recovery shell" 16 60
|
||||||
fi
|
fi
|
||||||
die "$TMP_HASH_FILE: boot hash mismatch"
|
die "$TMP_HASH_FILE: boot hash mismatch"
|
||||||
@ -211,7 +211,7 @@ default_select() {
|
|||||||
option=`head -n $default_index $TMP_MENU_FILE | tail -1`
|
option=`head -n $default_index $TMP_MENU_FILE | tail -1`
|
||||||
if [ "$option" != "$expectedoption" ]; then
|
if [ "$option" != "$expectedoption" ]; then
|
||||||
if [ "$gui_menu" = "y" ]; then
|
if [ "$gui_menu" = "y" ]; then
|
||||||
whiptail --title 'ERROR: Boot Entry Has Changed' \
|
whiptail $CONFIG_ERROR_BG_COLOR --title 'ERROR: Boot Entry Has Changed' \
|
||||||
--msgbox "The list of boot entries has changed\n\nPlease set a new default" 16 60
|
--msgbox "The list of boot entries has changed\n\nPlease set a new default" 16 60
|
||||||
fi
|
fi
|
||||||
warn "!!! Boot entry has changed - please set a new default"
|
warn "!!! Boot entry has changed - please set a new default"
|
||||||
@ -228,7 +228,7 @@ default_select() {
|
|||||||
else
|
else
|
||||||
if [ "$gui_menu" = "y" ]; then
|
if [ "$gui_menu" = "y" ]; then
|
||||||
CHANGED_FILES=$(grep -v 'OK$' /tmp/hash_output | cut -f1 -d ':')
|
CHANGED_FILES=$(grep -v 'OK$' /tmp/hash_output | cut -f1 -d ':')
|
||||||
whiptail --title 'ERROR: Default Boot Hash Mismatch' \
|
whiptail $CONFIG_ERROR_BG_COLOR --title 'ERROR: Default Boot Hash Mismatch' \
|
||||||
--msgbox "The following files failed the verification process:\n${CHANGED_FILES}\nExiting to a recovery shell" 16 60
|
--msgbox "The following files failed the verification process:\n${CHANGED_FILES}\nExiting to a recovery shell" 16 60
|
||||||
fi
|
fi
|
||||||
die "!!! $TMP_DEFAULT_HASH_FILE: default boot hash mismatch"
|
die "!!! $TMP_DEFAULT_HASH_FILE: default boot hash mismatch"
|
||||||
@ -246,7 +246,12 @@ user_select() {
|
|||||||
while [ "$option_confirm" != "y" -a "$option_confirm" != "d" ]
|
while [ "$option_confirm" != "y" -a "$option_confirm" != "d" ]
|
||||||
do
|
do
|
||||||
get_menu_option
|
get_menu_option
|
||||||
|
# In force boot mode, no need offer the option to set a default, just boot
|
||||||
|
if [ "$force_boot" = "y" ]; then
|
||||||
|
do_boot
|
||||||
|
else
|
||||||
confirm_menu_option
|
confirm_menu_option
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$option_confirm" = 'd' ]; then
|
if [ "$option_confirm" = 'd' ]; then
|
||||||
save_default_option
|
save_default_option
|
||||||
@ -299,7 +304,11 @@ do_boot()
|
|||||||
}
|
}
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
|
if [ "$force_boot" = "y" ]; then
|
||||||
|
check_config $paramsdir force
|
||||||
|
else
|
||||||
check_config $paramsdir
|
check_config $paramsdir
|
||||||
|
fi
|
||||||
TMP_DEFAULT_FILE=`find /tmp/kexec/kexec_default.*.txt 2>/dev/null | head -1` || true
|
TMP_DEFAULT_FILE=`find /tmp/kexec/kexec_default.*.txt 2>/dev/null | head -1` || true
|
||||||
TMP_MENU_FILE="/tmp/kexec/kexec_menu.txt"
|
TMP_MENU_FILE="/tmp/kexec/kexec_menu.txt"
|
||||||
TMP_HASH_FILE="/tmp/kexec/kexec_hashes.txt"
|
TMP_HASH_FILE="/tmp/kexec/kexec_hashes.txt"
|
||||||
@ -312,6 +321,9 @@ while true; do
|
|||||||
# even if hashes don't match
|
# even if hashes don't match
|
||||||
if [ "$force_boot" = "y" ]; then
|
if [ "$force_boot" = "y" ]; then
|
||||||
scan_options
|
scan_options
|
||||||
|
# Remove boot splash and make background red in the event of a forced boot
|
||||||
|
add="$add vt.default_red=0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff"
|
||||||
|
remove="$remove splash quiet"
|
||||||
user_select
|
user_select
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
8
initrd/bin/key-init
Executable file
8
initrd/bin/key-init
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/ash
|
||||||
|
set -e -o pipefail
|
||||||
|
. /etc/functions
|
||||||
|
|
||||||
|
# Post processing of keys
|
||||||
|
gpg --import /.gnupg/keys/* 2>/dev/null || true
|
||||||
|
|
||||||
|
# TODO: split out gpg keys into multiple rings by function
|
@ -3,23 +3,22 @@
|
|||||||
# bring up the ethernet; maybe should do DHCP?
|
# bring up the ethernet; maybe should do DHCP?
|
||||||
ifconfig lo 127.0.0.1
|
ifconfig lo 127.0.0.1
|
||||||
|
|
||||||
if [ -f /lib/modules/e1000.ko ]; then
|
network_modules="e1000 e1000e igb sfc mdio mlx4_core mlx4_en"
|
||||||
insmod /lib/modules/e1000.ko
|
for module in `echo $network_modules`; do
|
||||||
fi
|
if [ -f /lib/modules/$module.ko ]; then
|
||||||
|
insmod /lib/modules/$module.ko
|
||||||
if [ -f /lib/modules/e1000e.ko ]; then
|
fi
|
||||||
insmod /lib/modules/e1000e.ko
|
done
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e /sys/class/net/eth0 ]; then
|
if [ -e /sys/class/net/eth0 ]; then
|
||||||
# Setup static IP
|
# Set up static IP
|
||||||
if [ ! -z "$CONFIG_BOOT_STATIC_IP" ]; then
|
if [ ! -z "$CONFIG_BOOT_STATIC_IP" ]; then
|
||||||
ifconfig eth0 $CONFIG_BOOT_STATIC_IP
|
ifconfig eth0 $CONFIG_BOOT_STATIC_IP
|
||||||
fi
|
fi
|
||||||
# TODO: setup DHCP if available
|
# TODO: Set up DHCP if available
|
||||||
ifconfig eth0 > /dev/ttyprintk
|
ifconfig eth0 > /dev/ttyprintk
|
||||||
|
|
||||||
# Setup the ssh server, allow root logins and log to stderr
|
# Set up the ssh server, allow root logins and log to stderr
|
||||||
if [ ! -d /etc/dropbear ]; then
|
if [ ! -d /etc/dropbear ]; then
|
||||||
mkdir /etc/dropbear
|
mkdir /etc/dropbear
|
||||||
fi
|
fi
|
||||||
|
@ -41,6 +41,7 @@ if ! tpm sealfile2 \
|
|||||||
-ix 2 X \
|
-ix 2 X \
|
||||||
-ix 3 X \
|
-ix 3 X \
|
||||||
-ix 4 0000000000000000000000000000000000000000 \
|
-ix 4 0000000000000000000000000000000000000000 \
|
||||||
|
-ix 7 X \
|
||||||
; then
|
; then
|
||||||
rm -f "$TOTP_SECRET"
|
rm -f "$TOTP_SECRET"
|
||||||
die "Unable to seal secret"
|
die "Unable to seal secret"
|
||||||
|
28
initrd/bin/uefi-init
Executable file
28
initrd/bin/uefi-init
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/ash
|
||||||
|
set -e -o pipefail
|
||||||
|
. /etc/functions
|
||||||
|
|
||||||
|
# Update initrd with CBFS files
|
||||||
|
if [ -z "$CONFIG_PCR" ]; then
|
||||||
|
CONFIG_PCR=7
|
||||||
|
fi
|
||||||
|
|
||||||
|
CONFIG_GUID="74696e69-6472-632e-7069-6f2f75736572"
|
||||||
|
|
||||||
|
# copy EFI file named $CONFIG_GUID to /tmp, measure and extract
|
||||||
|
GUID=`uefi -l | grep "^$CONFIG_GUID"`
|
||||||
|
|
||||||
|
if [ -n "GUID" ]; then
|
||||||
|
echo "Loading $GUID from ROM"
|
||||||
|
TMPFILE=/tmp/uefi.$$
|
||||||
|
uefi -r $GUID | gunzip -c > $TMPFILE \
|
||||||
|
|| die "Failed to read config GUID from ROM"
|
||||||
|
|
||||||
|
if [ "$CONFIG_TPM" = "y" ]; then
|
||||||
|
tpm extend -ix "$CONFIG_PCR" -if $TMPFILE \
|
||||||
|
|| die "$filename: tpm extend failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
( cd / ; cpio -iud < $TMPFILE 2>/dev/null ) \
|
||||||
|
|| die "Failed to extract config GUID"
|
||||||
|
fi
|
@ -36,7 +36,7 @@ pause_recovery() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pcrs() {
|
pcrs() {
|
||||||
head -7 /sys/class/tpm/tpm0/pcrs
|
head -8 /sys/class/tpm/tpm0/pcrs
|
||||||
}
|
}
|
||||||
|
|
||||||
confirm_totp()
|
confirm_totp()
|
||||||
@ -190,11 +190,29 @@ check_config() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$2" != "force" ]; then
|
||||||
if ! sha256sum `find $1/kexec*.txt` | gpgv $1/kexec.sig - ; then
|
if ! sha256sum `find $1/kexec*.txt` | gpgv $1/kexec.sig - ; then
|
||||||
die 'Invalid signature on kexec boot params'
|
die 'Invalid signature on kexec boot params'
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo "+++ Found verified kexec boot params"
|
echo "+++ Found verified kexec boot params"
|
||||||
cp $1/kexec*.txt /tmp/kexec \
|
cp $1/kexec*.txt /tmp/kexec \
|
||||||
|| die "Failed to copy kexec boot params to tmp"
|
|| die "Failed to copy kexec boot params to tmp"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
preserve_rom() {
|
||||||
|
new_rom="$1"
|
||||||
|
old_files=`cbfs -t 50 -l 2>/dev/null | grep "^heads/"`
|
||||||
|
|
||||||
|
for old_file in `echo $old_files`; do
|
||||||
|
new_file=`cbfs -o $1 -l | grep -x $old_file`
|
||||||
|
if [ -z "$new_file" ]; then
|
||||||
|
echo "+++ Adding $old_file to $1"
|
||||||
|
cbfs -t 50 -r $old_file >/tmp/rom.$$ \
|
||||||
|
|| die "Failed to read cbfs file from ROM"
|
||||||
|
cbfs -o $1 -a $old_file -f /tmp/rom.$$ \
|
||||||
|
|| die "Failed to write cbfs file to new ROM file"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
00000000:00000FFF Descriptor
|
|
||||||
00001000:00002FFF GBe
|
|
||||||
00003000:004FFFFF ME
|
|
||||||
00500000:00BFFFFF BIOS
|
|
12
initrd/init
12
initrd/init
@ -51,6 +51,14 @@ if [ ! -z "$CONFIG_USB_BOOT_DEV" ]; then
|
|||||||
echo >> /etc/fstab "$CONFIG_USB_BOOT_DEV /media auto defaults,ro 0 0"
|
echo >> /etc/fstab "$CONFIG_USB_BOOT_DEV /media auto defaults,ro 0 0"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$CONFIG_COREBOOT" = "y" ]; then
|
||||||
|
/bin/cbfs-init
|
||||||
|
fi
|
||||||
|
if [ "$CONFIG_LINUXBOOT" = "y" ]; then
|
||||||
|
/bin/uefi-init
|
||||||
|
fi
|
||||||
|
/bin/key-init
|
||||||
|
|
||||||
# Setup recovery serial shell
|
# Setup recovery serial shell
|
||||||
if [ ! -z "$CONFIG_BOOT_RECOVERY_SERIAL" ]; then
|
if [ ! -z "$CONFIG_BOOT_RECOVERY_SERIAL" ]; then
|
||||||
stty -F "$CONFIG_BOOT_RECOVERY_SERIAL" 115200
|
stty -F "$CONFIG_BOOT_RECOVERY_SERIAL" 115200
|
||||||
@ -72,7 +80,7 @@ if [ "$boot_option" = "r" ]; then
|
|||||||
# Start an interactive shell
|
# Start an interactive shell
|
||||||
recovery 'User requested recovery shell'
|
recovery 'User requested recovery shell'
|
||||||
# just in case...
|
# just in case...
|
||||||
if [ "$CONFIG_TPM" = y ]; then
|
if [ "$CONFIG_TPM" = "y" ]; then
|
||||||
tpm extend -ix 4 -ic recovery
|
tpm extend -ix 4 -ic recovery
|
||||||
fi
|
fi
|
||||||
exec /bin/ash
|
exec /bin/ash
|
||||||
@ -102,7 +110,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# belts and suspenders, just in case...
|
# belts and suspenders, just in case...
|
||||||
if [ "$CONFIG_TPM" = y ]; then
|
if [ "$CONFIG_TPM" = "y" ]; then
|
||||||
tpm extend -ix 4 -ic recovery
|
tpm extend -ix 4 -ic recovery
|
||||||
fi
|
fi
|
||||||
exec /bin/ash
|
exec /bin/ash
|
||||||
|
@ -13,8 +13,25 @@ busybox_config := config/busybox.config
|
|||||||
busybox_output := busybox
|
busybox_output := busybox
|
||||||
busybox_target := \
|
busybox_target := \
|
||||||
$(CROSS_TOOLS) \
|
$(CROSS_TOOLS) \
|
||||||
CONFIG_PREFIX="$(initrd_dir)" \
|
|
||||||
$(MAKE_JOBS) \
|
$(MAKE_JOBS) \
|
||||||
install
|
|
||||||
|
# Install symlinks when the busybox program is installed
|
||||||
|
|
||||||
|
ifeq "$(CONFIG_BUSYBOX)" "y"
|
||||||
|
initrd_bins += $(initrd_bin_dir)/busybox
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(initrd_tmp_dir)/bin/busybox: $(build)/$(busybox_dir)/.build
|
||||||
|
$(call do,SYMLINK,bin/busybox,\
|
||||||
|
$(MAKE) \
|
||||||
|
-C $(build)/$(busybox_dir) \
|
||||||
|
CC="$(heads_cc)" \
|
||||||
|
CONFIG_PREFIX="$(initrd_bin_dir)/.." \
|
||||||
|
install \
|
||||||
|
| tee -a $(build)/log/busybox.log \
|
||||||
|
$(VERBOSE_REDIRECT) \
|
||||||
|
)
|
||||||
|
@touch $< # ensure that our build file is still newer
|
||||||
|
|
||||||
|
|
||||||
busybox_depends := $(musl_dep)
|
busybox_depends := $(musl_dep)
|
||||||
|
@ -3,7 +3,8 @@ modules-$(CONFIG_COREBOOT) += coreboot
|
|||||||
#coreboot_version := git
|
#coreboot_version := git
|
||||||
#coreboot_repo := https://github.com/osresearch/coreboot
|
#coreboot_repo := https://github.com/osresearch/coreboot
|
||||||
coreboot_version := 4.7
|
coreboot_version := 4.7
|
||||||
coreboot_dir := coreboot-$(coreboot_version)
|
coreboot_base_dir := coreboot-$(coreboot_version)
|
||||||
|
coreboot_dir := $(coreboot_base_dir)/$(BOARD)
|
||||||
coreboot_tar := coreboot-$(coreboot_version).tar.xz
|
coreboot_tar := coreboot-$(coreboot_version).tar.xz
|
||||||
coreboot_url := https://www.coreboot.org/releases/$(coreboot_tar)
|
coreboot_url := https://www.coreboot.org/releases/$(coreboot_tar)
|
||||||
coreboot_hash := d68a83f8f687e8ea212b8c5bb501e24444b57c3f73896042d09628188c851368
|
coreboot_hash := d68a83f8f687e8ea212b8c5bb501e24444b57c3f73896042d09628188c851368
|
||||||
@ -12,52 +13,57 @@ coreboot_hash := d68a83f8f687e8ea212b8c5bb501e24444b57c3f73896042d09628188c85136
|
|||||||
# The builds are done in a per-target subdirectory
|
# The builds are done in a per-target subdirectory
|
||||||
CONFIG_COREBOOT_CONFIG ?= config/coreboot-$(BOARD).config
|
CONFIG_COREBOOT_CONFIG ?= config/coreboot-$(BOARD).config
|
||||||
|
|
||||||
|
# Ensure that touching the config file will force a rebuild
|
||||||
|
$(build)/$(coreboot_dir)/.configured: $(CONFIG_COREBOOT_CONFIG)
|
||||||
|
|
||||||
EXTRA_FLAGS := -fdebug-prefix-map=$(pwd)=heads -gno-record-gcc-switches
|
EXTRA_FLAGS := -fdebug-prefix-map=$(pwd)=heads -gno-record-gcc-switches
|
||||||
|
|
||||||
coreboot_configure := \
|
coreboot_configure := \
|
||||||
$(MAKE) \
|
$(MAKE) -C $(build)/$(coreboot_base_dir) \
|
||||||
oldconfig \
|
oldconfig \
|
||||||
obj=./$(BOARD) \
|
obj=$(build)/$(coreboot_dir) \
|
||||||
DOTCONFIG=../../$(CONFIG_COREBOOT_CONFIG) \
|
DOTCONFIG=../../$(CONFIG_COREBOOT_CONFIG) \
|
||||||
BUILD_TIMELESS=1 \
|
BUILD_TIMELESS=1 \
|
||||||
CFLAGS_x86_32="$(EXTRA_FLAGS)" \
|
CFLAGS_x86_32="$(EXTRA_FLAGS)" \
|
||||||
CFLAGS_x86_64="$(EXTRA_FLAGS)" \
|
CFLAGS_x86_64="$(EXTRA_FLAGS)" \
|
||||||
|
|
||||||
coreboot_target := \
|
coreboot_target := \
|
||||||
obj=./$(BOARD) \
|
-C $(build)/$(coreboot_base_dir) \
|
||||||
|
obj=$(build)/$(coreboot_dir) \
|
||||||
DOTCONFIG=../../$(CONFIG_COREBOOT_CONFIG) \
|
DOTCONFIG=../../$(CONFIG_COREBOOT_CONFIG) \
|
||||||
BUILD_TIMELESS=1 \
|
BUILD_TIMELESS=1 \
|
||||||
CFLAGS_x86_32="$(EXTRA_FLAGS)" \
|
CFLAGS_x86_32="$(EXTRA_FLAGS)" \
|
||||||
CFLAGS_x86_64="$(EXTRA_FLAGS)" \
|
CFLAGS_x86_64="$(EXTRA_FLAGS)" \
|
||||||
$(MAKE_JOBS)
|
$(MAKE_JOBS)
|
||||||
|
|
||||||
coreboot_output := $(BOARD)/coreboot.rom
|
coreboot_output := coreboot.rom
|
||||||
|
coreboot_depend += linux initrd
|
||||||
|
|
||||||
# hack to force a build dependency on the cross compiler
|
# hack to force a build dependency on the cross compiler
|
||||||
$(build)/$(coreboot_dir)/.configured: $(build)/$(coreboot_dir)/util/crossgcc/xgcc/bin/i386-elf-gcc
|
$(build)/$(coreboot_dir)/.configured: $(build)/$(coreboot_base_dir)/util/crossgcc/xgcc/bin/i386-elf-gcc
|
||||||
$(build)/$(coreboot_dir)/util/crossgcc/xgcc/bin/i386-elf-gcc: $(build)/$(coreboot_dir)/.canary
|
$(build)/$(coreboot_base_dir)/util/crossgcc/xgcc/bin/i386-elf-gcc: $(build)/$(coreboot_base_dir)/.canary
|
||||||
echo '******* Building crossgcc-i386 (this might take a while) ******'
|
echo '******* Building crossgcc-i386 (this might take a while) ******'
|
||||||
$(MAKE) -C "$(build)/$(coreboot_dir)" CPUS=`nproc` crossgcc-i386
|
$(MAKE) -C "$(build)/$(coreboot_base_dir)" CPUS=`nproc` crossgcc-i386
|
||||||
#echo '******* Building crossgcc-arm (this might take a while) ******'
|
#echo '******* Building crossgcc-arm (this might take a while) ******'
|
||||||
#$(MAKE) -C "$(build)/$(coreboot_dir)" crossgcc-arm
|
#$(MAKE) -C "$(build)/$(coreboot_base_dir)" crossgcc-arm
|
||||||
|
|
||||||
# The coreboot-blobs must be unpacked before we can build coreboot
|
# Force a rebuild if the inputs have changed
|
||||||
# if we are using a tar file; git checkout will clone the submodule.
|
$(build)/$(coreboot_dir)/.build: \
|
||||||
# The Linux kernel and Heads initrd must be built before linuxboot
|
$(build)/$(BOARD)/bzImage \
|
||||||
# unless the user has specified "FAST=1" on the make command line,
|
$(build)/$(BOARD)/initrd.cpio.xz \
|
||||||
# which will assume that the kernel and initrd are fresh
|
|
||||||
ifneq "$(FAST)" "1"
|
# This produces a ROM image that is written with the flashrom program
|
||||||
coreboot_depends := linux initrd
|
$(build)/$(BOARD)/coreboot.rom: $(build)/$(coreboot_dir)/.build
|
||||||
coreboot.intermediate: $(build)/$(BOARD)/bzImage
|
"$(build)/$(coreboot_dir)/cbfstool" "$(dir $<)coreboot.rom" print
|
||||||
coreboot.intermediate: $(build)/$(BOARD)/initrd.cpio.xz
|
$(call do-copy,$(dir $<)coreboot.rom,$@)
|
||||||
endif
|
@touch $@ # update the time stamp
|
||||||
|
|
||||||
#
|
#
|
||||||
# Helpful target for reconfiguring the coreboot target
|
# Helpful target for reconfiguring the coreboot target
|
||||||
#
|
#
|
||||||
coreboot.menuconfig:
|
coreboot.menuconfig:
|
||||||
$(MAKE) \
|
$(MAKE) \
|
||||||
-C "$(build)/$(coreboot_dir)" \
|
-C "$(build)/$(coreboot_base_dir)" \
|
||||||
DOTCONFIG="../../$(CONFIG_COREBOOT_CONFIG)" \
|
DOTCONFIG="../../$(CONFIG_COREBOOT_CONFIG)" \
|
||||||
menuconfig
|
menuconfig
|
||||||
|
|
||||||
|
@ -25,6 +25,6 @@ dropbear_target := \
|
|||||||
DESTDIR="$(INSTALL)" \
|
DESTDIR="$(INSTALL)" \
|
||||||
dbclient scp dropbear \
|
dbclient scp dropbear \
|
||||||
&& \
|
&& \
|
||||||
cp $(build)/$(dropbear_dir)/dbclient $(build)/$(dropbear_dir)/ssh
|
cp -a $(build)/$(dropbear_dir)/dbclient $(build)/$(dropbear_dir)/ssh
|
||||||
|
|
||||||
dropbear_depends := zlib $(musl_dep)
|
dropbear_depends := zlib $(musl_dep)
|
||||||
|
@ -5,11 +5,11 @@ flashrom_depends := pciutils $(musl_dep)
|
|||||||
#flashrom_version := git
|
#flashrom_version := git
|
||||||
#flashrom_repo := https://github.com/osresearch/flashrom
|
#flashrom_repo := https://github.com/osresearch/flashrom
|
||||||
|
|
||||||
flashrom_version := 0.9.9
|
flashrom_version := 1.0
|
||||||
flashrom_dir := flashrom-$(flashrom_version)
|
flashrom_dir := flashrom-$(flashrom_version)
|
||||||
flashrom_tar := flashrom-$(flashrom_version).tar.bz2
|
flashrom_tar := flashrom-$(flashrom_version).tar.bz2
|
||||||
flashrom_url := https://download.flashrom.org/releases/$(flashrom_tar)
|
flashrom_url := https://download.flashrom.org/releases/$(flashrom_tar)
|
||||||
flashrom_hash := cb3156b0f63eb192024b76c0814135930297aac41f80761a5d293de769783c45
|
flashrom_hash := 3702fa215ba5fb5af8e54c852d239899cfa1389194c1e51cb2a170c4dc9dee64
|
||||||
|
|
||||||
flashrom_target := \
|
flashrom_target := \
|
||||||
$(MAKE_JOBS) \
|
$(MAKE_JOBS) \
|
||||||
|
@ -21,6 +21,7 @@ flashtools_output := \
|
|||||||
peek \
|
peek \
|
||||||
poke \
|
poke \
|
||||||
cbfs \
|
cbfs \
|
||||||
|
uefi \
|
||||||
|
|
||||||
flashtools_libraries := \
|
flashtools_libraries := \
|
||||||
|
|
||||||
|
@ -1,7 +1,17 @@
|
|||||||
modules-y += linux
|
modules-y += linux
|
||||||
|
|
||||||
linux_version := 4.9.80
|
linux_version := 4.9.80
|
||||||
linux_dir := linux-$(linux_version)
|
linux_base_dir := linux-$(linux_version)
|
||||||
|
|
||||||
|
# TODO: fixup the patch process
|
||||||
|
# input file in the heads config/ dir
|
||||||
|
# Allow board config to specialize Linux configuration if necessary
|
||||||
|
linux_kconfig := $(or $(CONFIG_LINUX_CONFIG),config/linux.config)
|
||||||
|
|
||||||
|
# Output directory for the Linux kernel build is based on the
|
||||||
|
# configuration file name, not the board name
|
||||||
|
linux_dir := $(linux_base_dir)/$(notdir $(basename $(linux_kconfig)))
|
||||||
|
|
||||||
linux_tar := linux-$(linux_version).tar.xz
|
linux_tar := linux-$(linux_version).tar.xz
|
||||||
linux_url := https://cdn.kernel.org/pub/linux/kernel/v4.x/$(linux_tar)
|
linux_url := https://cdn.kernel.org/pub/linux/kernel/v4.x/$(linux_tar)
|
||||||
|
|
||||||
@ -10,28 +20,17 @@ linux-4.9.80_hash := 9e2e83ccc0afc3f23340ed5e58a35d8c6300a7c58aa98ca913848de4122
|
|||||||
|
|
||||||
linux_hash := $(linux-$(linux_version)_hash)
|
linux_hash := $(linux-$(linux_version)_hash)
|
||||||
|
|
||||||
# input file in the heads config/ dir
|
# Ensure that touching the config file will force a reconfig/rebuild
|
||||||
# Allow board config to specialize Linux configuration if necessary
|
$(build)/$(linux_dir)/.configured: $(linux_kconfig)
|
||||||
linux_kconfig := $(or $(CONFIG_LINUX_CONFIG),config/linux.config)
|
|
||||||
|
|
||||||
# Output directory for the Linux kernel build is based on the
|
|
||||||
# configuration file name, not the board name
|
|
||||||
linux_board_dir := $(build)/$(linux_dir)/$(notdir $(basename $(linux_kconfig)))
|
|
||||||
|
|
||||||
# temp file in the build dir to show that we have run make oldconfig
|
|
||||||
linux_config_file := $(notdir $(basename $(linux_kconfig))/.config-$(BOARD))
|
|
||||||
|
|
||||||
linux_configure := \
|
linux_configure := \
|
||||||
$(MAKE) \
|
$(MAKE) -C .. \
|
||||||
CROSS_COMPILE="$(CROSS)" \
|
CROSS_COMPILE="$(CROSS)" \
|
||||||
O="$(linux_board_dir)" \
|
O="$(build)/$(linux_dir)" \
|
||||||
KCONFIG_CONFIG="$(pwd)/$(linux_kconfig)" \
|
KCONFIG_CONFIG="$(pwd)/$(linux_kconfig)" \
|
||||||
oldconfig \
|
oldconfig \
|
||||||
|
|
||||||
linux_output += $(build)/$(BOARD)/bzImage
|
linux_output += arch/x86/boot/bzImage
|
||||||
|
|
||||||
# linux.intermediate: $(linux_output)
|
|
||||||
#linux_output += $(build)/$(BOARD)/modules.cpio
|
|
||||||
|
|
||||||
|
|
||||||
# qemu
|
# qemu
|
||||||
@ -87,13 +86,13 @@ linux_modules-$(CONFIG_LINUX_MEI) += drivers/misc/mei/mei-me.ko
|
|||||||
EXTRA_FLAGS := -fdebug-prefix-map=$(pwd)=heads -gno-record-gcc-switches
|
EXTRA_FLAGS := -fdebug-prefix-map=$(pwd)=heads -gno-record-gcc-switches
|
||||||
|
|
||||||
linux_target := \
|
linux_target := \
|
||||||
O="$(linux_board_dir)" \
|
O="$(build)/$(linux_dir)" \
|
||||||
KCONFIG_CONFIG="$(pwd)/$(linux_kconfig)" \
|
KCONFIG_CONFIG="$(pwd)/$(linux_kconfig)" \
|
||||||
CROSS_COMPILE="$(CROSS)" \
|
CROSS_COMPILE="$(CROSS)" \
|
||||||
AFLAGS_KERNEL="$(EXTRA_FLAGS)" \
|
AFLAGS_KERNEL="$(EXTRA_FLAGS)" \
|
||||||
CFLAGS_KERNEL="$(EXTRA_FLAGS)" \
|
CFLAGS_KERNEL="$(EXTRA_FLAGS)" \
|
||||||
CFLAGS_MODULE="$(EXTRA_FLAGS)" \
|
CFLAGS_MODULE="$(EXTRA_FLAGS)" \
|
||||||
KBUILD_BUILD_USER="$(GIT_HASH)" \
|
KBUILD_BUILD_USER=$(notdir $(linux_kconfig)) \
|
||||||
KBUILD_BUILD_HOST=linuxboot \
|
KBUILD_BUILD_HOST=linuxboot \
|
||||||
KBUILD_BUILD_TIMESTAMP="1970-00-00" \
|
KBUILD_BUILD_TIMESTAMP="1970-00-00" \
|
||||||
KBUILD_BUILD_VERSION=0 \
|
KBUILD_BUILD_VERSION=0 \
|
||||||
@ -115,13 +114,13 @@ FOO := $(shell mkdir -p "$(module_initrd_lib_dir)")
|
|||||||
define linux_module =
|
define linux_module =
|
||||||
|
|
||||||
# Each module depends on building the Linux kernel
|
# Each module depends on building the Linux kernel
|
||||||
$(linux_board_dir)/$1: linux.intermediate # $(build)/$(BOARD)/bzImage
|
$(build)/$(linux_dir)/$1: $(build)/$(linux_dir)/$(linux_output)
|
||||||
|
|
||||||
# The cpio file will depend on every module
|
# The cpio file will depend on every module
|
||||||
$(build)/$(BOARD)/modules.cpio: $(module_initrd_lib_dir)/$(notdir $1)
|
$(build)/$(BOARD)/modules.cpio: $(module_initrd_lib_dir)/$(notdir $1)
|
||||||
|
|
||||||
# Strip the modules when we install them so that they will be extra small
|
# Strip the modules when we install them so that they will be extra small
|
||||||
$(module_initrd_lib_dir)/$(notdir $1): $(linux_board_dir)/$1
|
$(module_initrd_lib_dir)/$(notdir $1): $(build)/$(linux_dir)/$1
|
||||||
$(call do,INSTALL-MODULE,$1, \
|
$(call do,INSTALL-MODULE,$1, \
|
||||||
$(CROSS)strip \
|
$(CROSS)strip \
|
||||||
--preserve-dates \
|
--preserve-dates \
|
||||||
@ -134,7 +133,7 @@ endef
|
|||||||
$(call map,linux_module,$(linux_modules-y))
|
$(call map,linux_module,$(linux_modules-y))
|
||||||
|
|
||||||
# We can't rebuild the module initrd until the kernel has been rebuilt
|
# We can't rebuild the module initrd until the kernel has been rebuilt
|
||||||
$(build)/$(BOARD)/modules.cpio: linux.intermediate
|
$(build)/$(BOARD)/modules.cpio: $(build)/$(linux_dir)/.build
|
||||||
$(call do-cpio,$@,$(module_initrd_dir))
|
$(call do-cpio,$@,$(module_initrd_dir))
|
||||||
@$(RM) -rf "$(module_initrd_dir)"
|
@$(RM) -rf "$(module_initrd_dir)"
|
||||||
|
|
||||||
@ -142,15 +141,15 @@ $(build)/$(BOARD)/modules.cpio: linux.intermediate
|
|||||||
# The output of the linux.intermediate is the bzImage in the
|
# The output of the linux.intermediate is the bzImage in the
|
||||||
# linus build directory. We need to copy it into our board
|
# linus build directory. We need to copy it into our board
|
||||||
# specific directory for ease of locating it later.
|
# specific directory for ease of locating it later.
|
||||||
$(linux_board_dir)/arch/x86/boot/bzImage: linux.intermediate
|
$(build)/$(BOARD)/bzImage: $(build)/$(linux_dir)/.build
|
||||||
$(build)/$(BOARD)/bzImage: $(linux_board_dir)/arch/x86/boot/bzImage
|
$(call do-copy,$(dir $<)/$(linux_output),$@)
|
||||||
$(call do-copy,$<,$@)
|
@touch $@ # force a timestamp update
|
||||||
|
|
||||||
|
|
||||||
# menuconfig target allows us to easily reconfigure this Linux kernel
|
# menuconfig target allows us to easily reconfigure this Linux kernel
|
||||||
linux.menuconfig:
|
linux.menuconfig:
|
||||||
$(MAKE) \
|
$(MAKE) \
|
||||||
-C "$(build)/$(linux_dir)" \
|
-C "$(build)/$(linux_base_dir)" \
|
||||||
O="$(linux_board_dir)" \
|
O="$(build)/$(linux_dir)" \
|
||||||
KCONFIG_CONFIG="$(pwd)/$(linux_kconfig)" \
|
KCONFIG_CONFIG="$(pwd)/$(linux_kconfig)" \
|
||||||
menuconfig \
|
menuconfig \
|
||||||
|
@ -2,32 +2,40 @@ modules-$(CONFIG_LINUXBOOT) += linuxboot
|
|||||||
|
|
||||||
linuxboot_version := git
|
linuxboot_version := git
|
||||||
linuxboot_repo := https://github.com/osresearch/linuxboot
|
linuxboot_repo := https://github.com/osresearch/linuxboot
|
||||||
linuxboot_dir := linuxboot-$(linuxboot_version)
|
linuxboot_base_dir := linuxboot-$(linuxboot_version)
|
||||||
|
|
||||||
# linuxboot builds are specialized on a per-target basis.
|
# linuxboot builds are specialized on a per-target basis.
|
||||||
# They can be specialized by defining $(CONFIG_LINUXBOOT_BOARD)
|
# They can be specialized by defining $(CONFIG_LINUXBOOT_BOARD)
|
||||||
# otherwise it is assumed that it will have the same name
|
# otherwise it is assumed that it will have the same name
|
||||||
# as the Heads BOARD.
|
# as the Heads BOARD.
|
||||||
linuxboot_board := $(or $(CONFIG_LINUXBOOT_BOARD),$(BOARD))
|
linuxboot_board := $(or $(CONFIG_LINUXBOOT_BOARD),$(BOARD))
|
||||||
|
linuxboot_dir := linuxboot-$(linuxboot_version)/build/$(linuxboot_board)
|
||||||
|
|
||||||
linuxboot_configure := \
|
linuxboot_configure := \
|
||||||
echo >&2 "Pre-building edk2" ; \
|
echo >&2 "Pre-building edk2" ; \
|
||||||
$(MAKE) \
|
$(MAKE) \
|
||||||
|
-C $(build)/$(linuxboot_base_dir) \
|
||||||
BOARD=$(linuxboot_board) \
|
BOARD=$(linuxboot_board) \
|
||||||
edk2.force \
|
edk2.force \
|
||||||
|| exit 1 ; \
|
|| exit 1 ; \
|
||||||
if [ "$(linuxboot_board)" = "qemu" ]; then \
|
if [ "$(linuxboot_board)" = "qemu" ]; then \
|
||||||
echo >&2 "Pre-building edk2 OVMF" ; \
|
echo >&2 "Pre-building edk2 OVMF" ; \
|
||||||
( cd edk2/OvmfPkg ; ./build.sh -n `nproc` ) \
|
( cd $(build)/$(linuxboot_base_dir)/edk2/OvmfPkg ; \
|
||||||
|| exit 1 ; \
|
./build.sh -n `nproc` \
|
||||||
|
) || exit 1 ; \
|
||||||
fi ; \
|
fi ; \
|
||||||
touch .config ; \
|
touch .config ; \
|
||||||
|
|
||||||
|
ifdef CUSTOM
|
||||||
|
CUSTOMPWD=$(pwd)/$(CUSTOM)
|
||||||
|
endif
|
||||||
|
|
||||||
linuxboot_target := \
|
linuxboot_target := \
|
||||||
|
-C $(build)/$(linuxboot_base_dir) \
|
||||||
BOARD=$(linuxboot_board) \
|
BOARD=$(linuxboot_board) \
|
||||||
KERNEL=$(build)/$(BOARD)/bzImage \
|
KERNEL=$(build)/$(BOARD)/bzImage \
|
||||||
INITRD=$(build)/$(BOARD)/initrd.cpio.xz \
|
INITRD=$(build)/$(BOARD)/initrd.cpio.xz \
|
||||||
|
CUSTOM=$(CUSTOMPWD) \
|
||||||
$(if $(CONFIG_LINUXBOOT_ROM), ROM=$(pwd)/$(CONFIG_LINUXBOOT_ROM)) \
|
$(if $(CONFIG_LINUXBOOT_ROM), ROM=$(pwd)/$(CONFIG_LINUXBOOT_ROM)) \
|
||||||
all
|
all
|
||||||
|
|
||||||
@ -40,38 +48,31 @@ ifneq "y" "$(shell [ -r '$(CONFIG_LINUXBOOT_ROM)' ] && echo y)"
|
|||||||
$(error $(CONFIG_LINUXBOOT_ROM): you must provide a ROM file)
|
$(error $(CONFIG_LINUXBOOT_ROM): you must provide a ROM file)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Force a rebuild of the LinuxBoot ROM if the vendor ROM changes
|
|
||||||
linuxboot.intermediate: $(CONFIG_LINUXBOOT_ROM)
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
# The output file from the LinuxBoot build is a full ROM
|
# The output file from the LinuxBoot build is a full ROM
|
||||||
# ready to flash onto the mainboard. There might be partial
|
# ready to flash onto the mainboard. There might be partial
|
||||||
# firmware volumes as well, but that depends on the board
|
# firmware volumes as well, but that depends on the board
|
||||||
# so this only retrieves the final one
|
# so this only retrieves the final one
|
||||||
linuxboot_output := $(build)/$(linuxboot_dir)/build/$(linuxboot_board)/linuxboot.rom
|
linuxboot_output := build/$(linuxboot_board)/linuxboot.rom
|
||||||
|
linuxboot_rom := $(build)/$(linuxboot_dir)/$(linuxboot_output)
|
||||||
|
|
||||||
$(linuxboot_output): linuxboot.intermediate
|
$(build)/$(BOARD)/linuxboot.rom: $(build)/$(linuxboot_dir)/.build
|
||||||
|
$(call do-copy,$(dir $<)linuxboot.rom,$@)
|
||||||
|
@touch $@
|
||||||
|
|
||||||
$(build)/$(BOARD)/linuxboot.rom: $(linuxboot_output)
|
# Also force a rebuild if any of the input files are updated
|
||||||
$(call do-copy,$<,$@)
|
$(build)/$(linuxboot_dir)/.build: \
|
||||||
|
$(CONFIG_LINUXBOOT_ROM) \
|
||||||
# The Linux kernel and Heads initrd must be built before linuxboot
|
$(build)/$(BOARD)/bzImage \
|
||||||
# unless the user has specified "FAST=1" on the make command line,
|
$(build)/$(BOARD)/initrd.cpio.xz \
|
||||||
# which will assume that the kernel and initrd are fresh
|
|
||||||
#
|
|
||||||
# There is not an explicit dependency of linuxboot on linux
|
|
||||||
# or initrd so that the configuration can pre-build all of edk2
|
|
||||||
# overlapping with the other builds.
|
|
||||||
ifneq "$(FAST)" "1"
|
|
||||||
linuxboot.intermediate: $(build)/$(BOARD)/bzImage
|
|
||||||
linuxboot.intermediate: $(build)/$(BOARD)/initrd.cpio.xz
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
linuxboot.run: $(build)/$(BOARD)/linuxboot.rom
|
linuxboot.run: $(build)/$(BOARD)/linuxboot.rom
|
||||||
$(MAKE) -C $(build)/$(linuxboot_dir) \
|
$(MAKE) -C $(build)/$(linuxboot_base_dir) \
|
||||||
BOARD:=$(linuxboot_board) \
|
BOARD:=$(linuxboot_board) \
|
||||||
KERNEL=$(build)/$(BOARD)/bzImage \
|
KERNEL=$(build)/$(BOARD)/bzImage \
|
||||||
INITRD=$(build)/$(BOARD)/initrd.cpio.xz \
|
INITRD=$(build)/$(BOARD)/initrd.cpio.xz \
|
||||||
|
CUSTOM=$(CUSTOMPWD) \
|
||||||
run
|
run
|
||||||
|
@ -38,12 +38,13 @@ musl_depends := musl-cross
|
|||||||
|
|
||||||
# Fake a target so that musl will force a header install by the
|
# Fake a target so that musl will force a header install by the
|
||||||
# Linux kernel sources.
|
# Linux kernel sources.
|
||||||
musl.intermediate: $(INSTALL)/include/linux/limits.h
|
$(build)/$(musl_dir)/.build: $(INSTALL)/include/linux/limits.h
|
||||||
$(INSTALL)/include/linux/limits.h: $(build)/$(linux_dir)/.canary
|
|
||||||
|
$(INSTALL)/include/linux/limits.h: $(build)/$(linux_base_dir)/.canary
|
||||||
$(MAKE) \
|
$(MAKE) \
|
||||||
-C "$(build)/$(linux_dir)" \
|
-C "$(build)/$(linux_base_dir)" \
|
||||||
INSTALL_HDR_PATH="$(INSTALL)" \
|
INSTALL_HDR_PATH="$(INSTALL)" \
|
||||||
O="$(linux_board_dir)" \
|
O="$(linux_dir)" \
|
||||||
KCONFIG_CONFIG="$(pwd)/$(linux_kconfig)" \
|
KCONFIG_CONFIG="$(pwd)/$(linux_kconfig)" \
|
||||||
headers_install
|
headers_install
|
||||||
|
|
||||||
|
@ -2,12 +2,6 @@ ifeq "$(MUSL_CROSS_ONCE)" ""
|
|||||||
MUSL_CROSS_ONCE := 1
|
MUSL_CROSS_ONCE := 1
|
||||||
|
|
||||||
|
|
||||||
# Allow the path to the musl-cross directory to be passed on
|
|
||||||
# the environment so that the full path doens't need to be spelled out
|
|
||||||
ifneq "$(MUSL_DIR)" ""
|
|
||||||
CROSS := $(MUSL_DIR)/crossgcc/x86_64-linux-musl/bin/x86_64-linux-musl-
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq "$(CROSS)" ""
|
ifneq "$(CROSS)" ""
|
||||||
|
|
||||||
# check that $(CROSS)gcc exists or else things just won't work
|
# check that $(CROSS)gcc exists or else things just won't work
|
||||||
@ -17,7 +11,12 @@ endif
|
|||||||
|
|
||||||
# The cross compiler has already been built, so the musl-cross target
|
# The cross compiler has already been built, so the musl-cross target
|
||||||
# is a NOP.
|
# is a NOP.
|
||||||
musl-cross.intermediate:
|
#musl-cross.intermediate:
|
||||||
|
|
||||||
|
musl-cross_dir := musl-cross-ext
|
||||||
|
$(build)/$(musl-cross_dir)/.build:
|
||||||
|
mkdir -p $(dir $@)
|
||||||
|
touch $@
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
@ -28,8 +27,9 @@ musl-cross_version := git
|
|||||||
musl-cross_dir := musl-cross-$(musl-cross_version)
|
musl-cross_dir := musl-cross-$(musl-cross_version)
|
||||||
musl-cross_repo := https://github.com/GregorR/musl-cross
|
musl-cross_repo := https://github.com/GregorR/musl-cross
|
||||||
|
|
||||||
CROSS := $(build)/../crossgcc/x86_64-linux-musl/bin/x86_64-musl-linux-
|
CROSS_TOP := crossgcc/x86_64-linux-musl/bin/x86_64-musl-linux-
|
||||||
musl-cross_output := $(CROSS)gcc
|
CROSS := $(build)/../$(CROSS_TOP)
|
||||||
|
musl-cross_output := ../../$(CROSS_TOP)gcc
|
||||||
|
|
||||||
musl-cross_configure := \
|
musl-cross_configure := \
|
||||||
/bin/echo -e > Makefile \
|
/bin/echo -e > Makefile \
|
||||||
|
@ -42,6 +42,6 @@ pciutils_output := \
|
|||||||
lspci \
|
lspci \
|
||||||
|
|
||||||
pciutils_libraries := \
|
pciutils_libraries := \
|
||||||
../../install/lib/libpci.so.3 \
|
lib/libpci.so.3.5.4 \
|
||||||
|
|
||||||
pciutils_configure :=
|
pciutils_configure :=
|
||||||
|
@ -11,11 +11,10 @@ UROOT_CMDS ?=
|
|||||||
export GOPATH=$(build)/go
|
export GOPATH=$(build)/go
|
||||||
u-root_src_cmds := $(foreach cmd,$(UROOT_CMDS),github.com/u-root/u-root/cmds/$(cmd))
|
u-root_src_cmds := $(foreach cmd,$(UROOT_CMDS),github.com/u-root/u-root/cmds/$(cmd))
|
||||||
|
|
||||||
$(GOPATH):
|
u-root_build := $(GOPATH)/bin/u-root
|
||||||
$(call do,GO GET,$(u-root_url),\
|
|
||||||
go get $(u-root_url) \
|
|
||||||
)
|
|
||||||
|
|
||||||
|
$(GOPATH)/bin/u-root:
|
||||||
|
go get github.com/u-root/u-root/...
|
||||||
#
|
#
|
||||||
# If the board directory has its own go commands, copy them
|
# If the board directory has its own go commands, copy them
|
||||||
# into the u-root tree so that they will be bundled into the go initrd
|
# into the u-root tree so that they will be bundled into the go initrd
|
||||||
@ -24,11 +23,11 @@ $(GOPATH):
|
|||||||
#
|
#
|
||||||
ifeq "y" "$(shell [ -r 'boards/$(BOARD)/uinit.go' ] && echo y)"
|
ifeq "y" "$(shell [ -r 'boards/$(BOARD)/uinit.go' ] && echo y)"
|
||||||
u-root_uinit := $(GOPATH)/src/github.com/u-root/u-root/cmds/uinit/uinit.go
|
u-root_uinit := $(GOPATH)/src/github.com/u-root/u-root/cmds/uinit/uinit.go
|
||||||
$(u-root_uinit): boards/$(BOARD)/uinit.go
|
$(u-root_uinit): $(u-root_build) boards/$(BOARD)/uinit.go
|
||||||
$(call install,$<,$@)
|
$(call install,boards/$(BOARD)/uinit.go,$@)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(u-root_output): $(GOPATH) $(u-root_uinit)
|
$(u-root_output): $(u-root_build) $(u-root_uinit)
|
||||||
$(call do,U-ROOT,$@,\
|
$(call do,U-ROOT,$@,\
|
||||||
$(GOPATH)/bin/u-root \
|
$(GOPATH)/bin/u-root \
|
||||||
-build=bb \
|
-build=bb \
|
||||||
@ -48,7 +47,7 @@ CONFIG_HEADS=n
|
|||||||
|
|
||||||
# Since we do not include u-root in modules-y, we have to define our
|
# Since we do not include u-root in modules-y, we have to define our
|
||||||
# own intermediate and clean targets here
|
# own intermediate and clean targets here
|
||||||
u-root.intermediate: $(u-root_output)
|
$(build)/$(u-root_dir)/.build: $(u-root_output)
|
||||||
u-root.clean:
|
u-root.clean:
|
||||||
$(RM) $(u-root_output)
|
$(RM) $(u-root_output)
|
||||||
endif
|
endif
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user