diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ec/google/chromeec/Kconfig | 25 | ||||
-rw-r--r-- | src/ec/google/chromeec/Makefile.inc | 38 |
2 files changed, 63 insertions, 0 deletions
diff --git a/src/ec/google/chromeec/Kconfig b/src/ec/google/chromeec/Kconfig index 26005938c2..59a97817ba 100644 --- a/src/ec/google/chromeec/Kconfig +++ b/src/ec/google/chromeec/Kconfig @@ -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. diff --git a/src/ec/google/chromeec/Makefile.inc b/src/ec/google/chromeec/Makefile.inc index ad9de9e2a5..759c0da5a2 100644 --- a/src/ec/google/chromeec/Makefile.inc +++ b/src/ec/google/chromeec/Makefile.inc @@ -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 |