1## SPDX-License-Identifier: GPL-2.0-only 2ifeq ($(CONFIG_EC_GOOGLE_CHROMEEC),y) 3 4subdirs-y += audio_codec 5subdirs-y += i2c_tunnel 6subdirs-y += mux 7 8bootblock-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c 9verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c 10romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c 11ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c 12smm-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c 13 14smm-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_skuid.c 15romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_skuid.c 16ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_skuid.c 17 18ifeq ($(CONFIG_GENERATE_SMBIOS_TABLES),y) 19romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_smbios.c 20ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_smbios.c 21endif 22 23bootblock-y += ec.c 24bootblock-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c 25ramstage-y += ec.c crosec_proto.c vstore.c usbc_mux.c 26ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_I2C) += ec_i2c.c 27ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c 28ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SPI) += ec_spi.c 29smm-y += ec.c crosec_proto.c smihandler.c vstore.c 30smm-$(CONFIG_EC_GOOGLE_CHROMEEC_I2C) += ec_i2c.c 31smm-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c 32smm-$(CONFIG_EC_GOOGLE_CHROMEEC_SPI) += ec_spi.c 33romstage-y += ec.c crosec_proto.c vstore.c 34romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_I2C) += ec_i2c.c 35romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c 36romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SPI) += ec_spi.c 37verstage-y += ec.c crosec_proto.c vstore.c 38verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_I2C) += ec_i2c.c 39verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c 40verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SPI) += ec_spi.c 41ramstage-$(CONFIG_HAVE_ACPI_TABLES) += ec_acpi.c 42 43ramstage-$(CONFIG_VBOOT) += vboot_storage.c 44smm-$(CONFIG_VBOOT) += vboot_storage.c 45romstage-$(CONFIG_VBOOT) += vboot_storage.c 46verstage-$(CONFIG_VBOOT) += vboot_storage.c 47 48verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SWITCHES) += switches.c 49romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SWITCHES) += switches.c 50ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SWITCHES) += switches.c 51 52ramstage-$(CONFIG_DRIVERS_INTEL_DPTF) += ec_dptf_helpers.c 53 54CHROMEEC_SOURCE ?= $(top)/3rdparty/chromeec 55 56# These are Chrome EC firmware images that a payload (such as depthcharge) can 57# use to update the EC. ecrw is the main embedded controller's firmware, 58# pdrw is for a USB PD controller. 59 60ifneq ($(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_NONE),y) 61 62cbfs-files-y += ecrw 63ecrw-file := $(obj)/mainboard/$(MAINBOARDDIR)/ecrw 64ecrw-name := ecrw 65ecrw-type := raw 66ecrw-compression := $(CBFS_COMPRESS_FLAG) 67cbfs-files-y += ecrw.hash 68ecrw.hash-file := $(obj)/mainboard/$(MAINBOARDDIR)/ecrw.hash 69ecrw.hash-name := ecrw.hash 70ecrw.hash-type := raw 71 72ifeq ($(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_EXTERNAL),y) 73CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE := $(call strip_quotes,$(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE)) 74 75$(obj)/mainboard/$(MAINBOARDDIR)/ecrw: $(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE) 76 cp $(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE) $@ 77else 78CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME := $(call strip_quotes,$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME)) 79 80$(obj)/mainboard/$(MAINBOARDDIR)/ecrw: 81 $(MAKE) -C $(CHROMEEC_SOURCE) $(if $(CONFIG_CCACHE),,CCACHE=) \ 82 out=$(abspath $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME)) \ 83 REPRODUCIBLE_BUILD=1 \ 84 CC=$(GCC_CC_arm) \ 85 CROSS_COMPILE=$(subst -cpp,-,$(CPP_arm)) \ 86 HOST_CROSS_COMPILE= \ 87 BOARD=$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME) \ 88 rw 89 cp $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME)/RW/ec.RW.flat $@ 90endif 91 92$(obj)/mainboard/$(MAINBOARDDIR)/ecrw.hash: $(obj)/mainboard/$(MAINBOARDDIR)/ecrw 93 openssl dgst -sha256 -binary $< > $@ 94 95endif 96 97ifeq ($(CONFIG_EC_GOOGLE_CHROMEEC_PD),y) 98 99ifneq ($(CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_NONE),y) 100 101cbfs-files-y += pdrw 102pdrw-file := $(obj)/mainboard/$(MAINBOARDDIR)/pdrw 103pdrw-name := pdrw 104pdrw-type := raw 105pdrw-compression := $(CBFS_COMPRESS_FLAG) 106cbfs-files-y += pdrw.hash 107pdrw.hash-file := $(obj)/mainboard/$(MAINBOARDDIR)/pdrw.hash 108pdrw.hash-name := pdrw.hash 109pdrw.hash-type := raw 110 111ifeq ($(CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_EXTERNAL),y) 112CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_FILE := $(call strip_quotes,$(CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_FILE)) 113 114$(obj)/mainboard/$(MAINBOARDDIR)/pdrw: $(CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_FILE) 115 cp $(CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_FILE) $@ 116else 117CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME := $(call strip_quotes,$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME)) 118 119$(obj)/mainboard/$(MAINBOARDDIR)/pdrw: 120 $(MAKE) -C $(CHROMEEC_SOURCE) $(if $(CONFIG_CCACHE),,CCACHE=) \ 121 out=$(abspath $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME)) \ 122 REPRODUCIBLE_BUILD=1 \ 123 CC=$(GCC_CC_arm) \ 124 CROSS_COMPILE=$(subst -cpp,-,$(CPP_arm)) \ 125 HOST_CROSS_COMPILE= \ 126 BOARD=$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME) \ 127 rw 128 cp $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME)/RW/ec.RW.flat $@ 129endif 130 131$(obj)/mainboard/$(MAINBOARDDIR)/pdrw.hash: $(obj)/mainboard/$(MAINBOARDDIR)/pdrw 132 openssl dgst -sha256 -binary $< > $@ 133 134endif 135 136endif 137 138endif 139