Add qc_blobs repository

This patch adds a separate blobs repository for Qualcomm blobs,
analogous to the existing AMD blobs. Qualcomm's binary licenses allow
files to be redistributed and used by anyone, but they explicitly
require the user to agree to the license terms when just *downloading*
the binary (even if they're not using them to build any firmware). Some
community members do not like to have to agree to licenses for files
they're not actually using, so we are keeping these files separate from
the main blobs repository and adding an extra Kconfig to make sure the
user is aware of and must explicitly agree to this before downloading
these files.

Signed-off-by: Julius Werner <jwerner@chromium.org>
Change-Id: I247746c1b633343064c9f32ef1556000475d6c4a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/42548
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
Julius Werner 2020-06-18 15:03:22 -07:00 committed by Patrick Georgi
parent c5646e426b
commit bc1cb38ce1
6 changed files with 31 additions and 1 deletions

5
.gitmodules vendored
View File

@ -46,3 +46,8 @@
path = 3rdparty/cmocka path = 3rdparty/cmocka
url = ../cmocka.git url = ../cmocka.git
update = none update = none
[submodule "3rdparty/qc_blobs"]
path = 3rdparty/qc_blobs
url = ../qc_blobs.git
update = none
ignore = dirty

1
3rdparty/qc_blobs vendored Submodule

@ -0,0 +1 @@
Subproject commit 126fef6b996237403039aa603945fc4caa75c8d6

View File

@ -202,6 +202,9 @@ endif
ifeq ($(CONFIG_USE_AMD_BLOBS),y) ifeq ($(CONFIG_USE_AMD_BLOBS),y)
forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty/amd_blobs)) forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty/amd_blobs))
endif endif
ifeq ($(CONFIG_USE_QC_BLOBS),y)
forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty/qc_blobs))
endif
endif endif
UPDATED_SUBMODULES:=1 UPDATED_SUBMODULES:=1
COREBOOT_EXPORTS += UPDATED_SUBMODULES COREBOOT_EXPORTS += UPDATED_SUBMODULES

View File

@ -234,6 +234,26 @@ config USE_AMD_BLOBS
Note that for some products, omitting PSP, SMU images, or other items Note that for some products, omitting PSP, SMU images, or other items
may result in a nonbooting coreboot.rom. may result in a nonbooting coreboot.rom.
config USE_QC_BLOBS
bool "Allow QC blobs repository (selecting this agrees to the license!)
depends on USE_BLOBS
help
This draws in the qc_blobs repository, which contains binary files
distributed by Qualcomm that are required to build firmware for
certain Qualcomm SoCs (including QcLib, QC-SEC, qtiseclib and QUP
firmware). If you say Y here you are implicitly agreeing to the
Qualcomm license agreement which can be found at:
https://review.coreboot.org/cgit/qc_blobs.git/tree/LICENSE
*****************************************************
PLEASE MAKE SURE YOU READ AND AGREE TO ALL TERMS IN
ABOVE LICENSE AGREEMENT BEFORE SELECTING THIS OPTION!
*****************************************************
Not selecting this option means certain Qualcomm SoCs and related
mainboards cannot be built and will be hidden from the "Mainboards"
section.
config COVERAGE config COVERAGE
bool "Code coverage support" bool "Code coverage support"
depends on COMPILER_GCC depends on COMPILER_GCC

View File

@ -714,7 +714,7 @@ while true ; do
shift;; shift;;
-B|--blobs) shift -B|--blobs) shift
customizing="${customizing}, blobs" customizing="${customizing}, blobs"
configoptions="${configoptions}CONFIG_USE_AMD_BLOBS=y\nCONFIG_ADD_FSP_BINARIES=y\n" configoptions="${configoptions}CONFIG_USE_AMD_BLOBS=y\nCONFIG_USE_QC_BLOBS=y\nCONFIG_ADD_FSP_BINARIES=y\n"
;; ;;
-A|--any-toolchain) shift -A|--any-toolchain) shift
customizing="${customizing}, any-toolchain" customizing="${customizing}, any-toolchain"

View File

@ -72,6 +72,7 @@ exclude_paths="3rdparty/blobs "
exclude_paths+="3rdparty/fsp " exclude_paths+="3rdparty/fsp "
exclude_paths+="3rdparty/intel-microcode " exclude_paths+="3rdparty/intel-microcode "
exclude_paths+="3rdparty/amd_blobs " exclude_paths+="3rdparty/amd_blobs "
exclude_paths+="3rdparty/qc_blobs "
for i in ${exclude_paths}; do for i in ${exclude_paths}; do
blobs_paths+="coreboot-${VERSION_NAME}/${i} " blobs_paths+="coreboot-${VERSION_NAME}/${i} "
exclude_opts+="--exclude=coreboot-${VERSION_NAME}/${i} " exclude_opts+="--exclude=coreboot-${VERSION_NAME}/${i} "