build system: Build Chrome EC firmware on request
With the Chrome EC's "board" name set in Kconfig, the build system will build and add the EC firmware, too. Available for the EC and the USB PD controller. Change-Id: I017d3a44d6ab8a540fcd198b4b09c35e4b98a8cf Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-on: https://review.coreboot.org/13547 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
parent
08ec1ae2c2
commit
e995dad2e1
|
@ -73,3 +73,28 @@ config EC_GOOGLE_CHROMEEC_SPI_CHIP
|
|||
depends on EC_GOOGLE_CHROMEEC_SPI
|
||||
hex
|
||||
default 0
|
||||
|
||||
config EC_EXTERNAL_FIRMWARE
|
||||
depends on EC_GOOGLE_CHROMEEC
|
||||
def_bool n
|
||||
help
|
||||
Disable building EC firmware if it's already built externally (and
|
||||
added manually.)
|
||||
|
||||
config EC_GOOGLE_CHROMEEC_BOARDNAME
|
||||
depends on EC_GOOGLE_CHROMEEC && !EC_EXTERNAL_FIRMWARE
|
||||
string "Chrome EC board name for EC"
|
||||
default ""
|
||||
help
|
||||
The board name used in the Chrome EC code base to build
|
||||
the EC firmware. If set, the coreboot build with also
|
||||
build the EC firmware and add it to the image.
|
||||
|
||||
config EC_GOOGLE_CHROMEEC_PD_BOARDNAME
|
||||
depends on EC_GOOGLE_CHROMEEC_PD && !EC_EXTERNAL_FIRMWARE
|
||||
string "Chrome EC board name for PD"
|
||||
default ""
|
||||
help
|
||||
The board name used in the Chrome EC code base to build
|
||||
the PD firmware. If set, the coreboot build with also
|
||||
build the EC firmware and add it to the image.
|
||||
|
|
|
@ -26,4 +26,42 @@ smm-$(CONFIG_VBOOT_VERIFY_FIRMWARE) += vboot_storage.c
|
|||
romstage-$(CONFIG_VBOOT_VERIFY_FIRMWARE) += vboot_storage.c
|
||||
verstage-$(CONFIG_VBOOT_VERIFY_FIRMWARE) += vboot_storage.c
|
||||
|
||||
# These are Chrome EC firmware images that a payload (such as depthcharge) can
|
||||
# use to update the EC. ecrw is the main embedded controller's firmware,
|
||||
# pdrw is for a USB PD controller.
|
||||
CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME := $(call strip_quotes,$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME))
|
||||
CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME := $(call strip_quotes,$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME))
|
||||
|
||||
cbfs-files-$(if $(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME),y) += ecrw
|
||||
ecrw-file := $(obj)/mainboard/$(MAINBOARDDIR)/ecrw
|
||||
ecrw-name := ecrw
|
||||
ecrw-type := raw
|
||||
ecrw-options := -A sha256
|
||||
|
||||
cbfs-files-$(if $(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME),y) += pdrw
|
||||
pdrw-file := $(obj)/mainboard/$(MAINBOARDDIR)/pdrw
|
||||
pdrw-name := pdrw
|
||||
pdrw-type := raw
|
||||
pdrw-options := -A sha256
|
||||
|
||||
$(obj)/mainboard/$(MAINBOARDDIR)/ecrw:
|
||||
$(MAKE) -C $(top)/3rdparty/chromeec \
|
||||
out=$(abspath $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME)) \
|
||||
CROSS_COMPILE=$(subst -cpp,-,$(CPP_arm)) \
|
||||
HOST_CROSS_COMPILE= \
|
||||
BOARD=$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME) \
|
||||
rw
|
||||
cp $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME)/RW/ec.RW.flat $@
|
||||
|
||||
$(obj)/mainboard/$(MAINBOARDDIR)/pdrw:
|
||||
$(MAKE) -C $(top)/3rdparty/chromeec \
|
||||
out=$(abspath $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME)) \
|
||||
CROSS_COMPILE=$(subst -cpp,-,$(CPP_arm)) \
|
||||
HOST_CROSS_COMPILE= \
|
||||
BOARD=$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME) \
|
||||
rw
|
||||
cp $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME)/RW/ec.RW.flat $@
|
||||
|
||||
.PHONY: $(obj)/mainboard/$(MAINBOARDDIR)/ecrw $(obj)/mainboard/$(MAINBOARDDIR)/pdrw
|
||||
|
||||
endif
|
||||
|
|
Loading…
Reference in New Issue