diff options
author | Vadim Sukhomlinov <sukhomlinov@google.com> | 2021-10-01 14:23:19 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-10-01 23:07:12 +0000 |
commit | 1aa482194d428f60fc65038c2d0c8508361a52a6 (patch) | |
tree | a150bc975a7df10b8099b9e52e5b78b16f9dcce2 | |
parent | 88768bef5f6356fd415321e228a2e4627112ec27 (diff) | |
download | chrome-ec-1aa482194d428f60fc65038c2d0c8508361a52a6.tar.gz |
cr50: detangle RO and RW build settings
Cr50 so far builds RO and RW images as part of build process.
With adding FIPS module and moving to board-specific crypto library with
different interfaces it become hard to maintain build process as RO
sources use crypto, but with different APIs, and changing that crypto
is challenging as it is also used by other boards with different crypto
APIs.
In this CL we enable RW and RO to have independent selection of crypto
library and include paths, and don't contaminate include paths with
unused things like third_party/cryptoc for RW.
BUG=none
TEST=make buildall -j
make BOARD=cr50
make BOARD=cr50 CRYPTO_TEST=1
Built cr50 images can be flashed and are workable.
Signed-off-by: Vadim Sukhomlinov <sukhomlinov@google.com>
Change-Id: I1b666fbb8193b79f71c885a761436443fd3fca7b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3200069
Reviewed-by: Vadim Sukhomlinov <sukhomlinov@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
Tested-by: Vadim Sukhomlinov <sukhomlinov@chromium.org>
Commit-Queue: Vadim Sukhomlinov <sukhomlinov@chromium.org>
-rw-r--r-- | board/cr50/build.mk | 23 | ||||
-rw-r--r-- | chip/g/build.mk | 6 | ||||
-rw-r--r-- | chip/g/upgrade_fw.c | 2 |
3 files changed, 16 insertions, 15 deletions
diff --git a/board/cr50/build.mk b/board/cr50/build.mk index 7eda0385ec..c3ab7a6f53 100644 --- a/board/cr50/build.mk +++ b/board/cr50/build.mk @@ -29,39 +29,39 @@ ifneq ($(CRYPTO_TEST),) CPPFLAGS += -DCRYPTO_TEST_SETUP ifneq ($(U2F_TEST),) -CPPFLAGS += -DCRYPTO_TEST_CMD_U2F_TEST=1 +CPPFLAGS_RW += -DCRYPTO_TEST_CMD_U2F_TEST=1 endif ifneq ($(RND_TEST),) -CPPFLAGS += -DCRYPTO_TEST_CMD_RAND=1 +CPPFLAGS_RW += -DCRYPTO_TEST_CMD_RAND=1 endif ifneq ($(DRBG_TEST),) -CPPFLAGS += -DCRYPTO_TEST_CMD_HMAC_DRBG=1 +CPPFLAGS_RW += -DCRYPTO_TEST_CMD_HMAC_DRBG=1 endif ifneq ($(ECDSA_TEST),) -CPPFLAGS += -DCRYPTO_TEST_CMD_DCRYPTO_ECDSA=1 +CPPFLAGS_RW += -DCRYPTO_TEST_CMD_DCRYPTO_ECDSA=1 endif ifneq ($(DCRYPTO_TEST),) -CPPFLAGS += -DCRYPTO_TEST_CMD_DCRYPTO_TEST=1 +CPPFLAGS_RW += -DCRYPTO_TEST_CMD_DCRYPTO_TEST=1 endif ifneq ($(P256_BIN_TEST),) -CPPFLAGS += -DP256_BIN_TEST=1 +CPPFLAGS_RW += -DP256_BIN_TEST=1 endif ifneq ($(SHA1_TEST),) -CPPFLAGS += -DSHA1_TEST=1 +CPPFLAGS_RW += -DSHA1_TEST=1 endif ifneq ($(SHA256_TEST),) -CPPFLAGS += -DSHA256_TEST=1 +CPPFLAGS_RW += -DSHA256_TEST=1 endif ifneq ($(HMAC_SHA256_TEST),) -CPPFLAGS += -DHMAC_SHA256_TEST=1 +CPPFLAGS_RW += -DHMAC_SHA256_TEST=1 endif endif @@ -77,7 +77,7 @@ all: hex ifeq ($(CONFIG_DCRYPTO_BOARD),y) # chip/g/build.mk also adds chip/g/dcrypto for CONFIG_DCRYPTO # so, only add it if we build RW with CONFIG_DCRYPTO_BOARD -CFLAGS += -I$(realpath $(BDIR)/dcrypto) +CPPFLAGS_RW += -I$(realpath $(BDIR)/dcrypto) dirs-y += $(BDIR)/dcrypto endif @@ -167,6 +167,7 @@ board-y += tpm2/trng.o board-y += tpm2/virtual_nvmem.o board-y += tpm_nvmem_ops.o board-y += wp.o +board-$(CONFIG_PINWEAVER)+=pinweaver_tpm_imports.o ifneq ($(H1_RED_BOARD),) CPPFLAGS += -DH1_RED_BOARD=$(EMPTY) @@ -250,5 +251,3 @@ $(TPM2_TARGET): $(call quiet,tpm2lib,TPM2 ) endif # BOARD_MK_INCLUDED_ONCE is nonempty - -board-$(CONFIG_PINWEAVER)+=pinweaver_tpm_imports.o diff --git a/chip/g/build.mk b/chip/g/build.mk index b7bf498cd2..a0c79fdbb4 100644 --- a/chip/g/build.mk +++ b/chip/g/build.mk @@ -14,12 +14,12 @@ ifeq ($(CONFIG_DCRYPTO),y) INCLUDE_ROOT := $(abspath ./include) CPPFLAGS += -I$(abspath .) CPPFLAGS += -I$(abspath ./builtin) -CPPFLAGS += -I$(abspath ./chip/$(CHIP)) +CPPFLAGS += -I$(abspath ./chip/$(CHIP)/dcrypto) CPPFLAGS += -I$(INCLUDE_ROOT) +CPPFLAGS += -I$(realpath ../../third_party/cryptoc/include) dirs-y += chip/g/dcrypto endif -CPPFLAGS += -I$(realpath ../../third_party/cryptoc/include) # Required chip modules chip-y = clock.o gpio.o hwtimer.o pre_init.o system.o @@ -97,6 +97,8 @@ chip-$(CONFIG_LOW_POWER_IDLE)+=idle.o chip-$(CONFIG_FLASH_PHYSICAL) += flash.o ifneq ($(CONFIG_CUSTOMIZED_RO),) +CPPFLAGS_RO += -I$(abspath ./chip/$(CHIP)/dcrypto) +CPPFLAGS_RO += -I$(realpath ../../third_party/cryptoc/include) custom-ro_objs-y = chip/g/clock.o custom-ro_objs-y += chip/g/dcrypto/sha256.o custom-ro_objs-y += chip/g/loader/key_ladder.o diff --git a/chip/g/upgrade_fw.c b/chip/g/upgrade_fw.c index ca1043b22a..328ce4dbb5 100644 --- a/chip/g/upgrade_fw.c +++ b/chip/g/upgrade_fw.c @@ -9,7 +9,7 @@ #include "byteorder.h" #include "compile_time_macros.h" #include "console.h" -#include "dcrypto/dcrypto.h" +#include "dcrypto.h" #include "extension.h" #include "flash.h" #include "flash_info.h" |