blob: 1cf88f260b613a6ce33cf91fc334a1a6765988e6 [file] [log] [blame]
Martin Roth74a4dca2022-10-28 22:36:59 -06001## SPDX-License-Identifier: GPL-2.0-only
Stefan Reinauer77c04e92015-04-27 14:03:47 -07002ifeq ($(CONFIG_EC_GOOGLE_CHROMEEC),y)
3
Furquan Shaikh31b816b2020-07-02 15:59:08 -07004subdirs-y += audio_codec
Furquan Shaikh38b349c2020-04-19 17:40:22 -07005subdirs-y += i2c_tunnel
Prashant Malani688105b2022-04-01 20:19:20 +00006subdirs-y += mux
Furquan Shaikh38b349c2020-04-19 17:40:22 -07007
Martin Roth7d1593a2018-03-06 14:36:08 -07008bootblock-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
You-Cheng Syu76c76882019-01-19 17:55:20 +08009verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
Furquan Shaikha2094832017-09-25 08:04:49 -070010romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
11ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
Furquan Shaikh8dcfcb312018-10-06 12:02:27 -070012smm-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
Furquan Shaikha2094832017-09-25 08:04:49 -070013
Edward O'Callaghanc6ab2ff2020-02-21 14:58:43 +110014smm-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_skuid.c
Edward O'Callaghan9ed10bf2020-02-20 13:38:49 +110015romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_skuid.c
16ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_skuid.c
17
Yu-Ping Wu863b7532021-06-03 16:26:13 +080018ifeq ($(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
Subrata Banik50b92582016-07-21 23:47:38 +053023bootblock-y += ec.c
Aaron Durbinfbb3e6c2016-05-10 17:00:06 -050024bootblock-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c
Derek Huang1a368762021-09-30 21:20:02 +080025ramstage-y += ec.c crosec_proto.c vstore.c usbc_mux.c
Hung-Te Lin6bfbb332013-04-15 18:27:24 +080026ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_I2C) += ec_i2c.c
Hung-Te Lina904f9e2013-04-11 15:58:12 +080027ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c
Hung-Te Lin0ee70622013-06-26 19:42:12 +080028ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SPI) += ec_spi.c
Aaron Durbin996b15c2016-07-14 00:29:03 -050029smm-y += ec.c crosec_proto.c smihandler.c vstore.c
Hung-Te Lin6bfbb332013-04-15 18:27:24 +080030smm-$(CONFIG_EC_GOOGLE_CHROMEEC_I2C) += ec_i2c.c
Hung-Te Lina904f9e2013-04-11 15:58:12 +080031smm-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c
Hung-Te Lin0ee70622013-06-26 19:42:12 +080032smm-$(CONFIG_EC_GOOGLE_CHROMEEC_SPI) += ec_spi.c
Duncan Lauriee2cea4f2015-12-01 19:14:09 -080033romstage-y += ec.c crosec_proto.c vstore.c
Hung-Te Lin6bfbb332013-04-15 18:27:24 +080034romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_I2C) += ec_i2c.c
Hung-Te Lina904f9e2013-04-11 15:58:12 +080035romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c
Hung-Te Lin0ee70622013-06-26 19:42:12 +080036romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SPI) += ec_spi.c
Duncan Lauriee2cea4f2015-12-01 19:14:09 -080037verstage-y += ec.c crosec_proto.c vstore.c
Daisuke Nojiri224f9222014-06-30 09:56:32 -070038verstage-$(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
Furquan Shaikhe0060a82020-03-05 08:06:27 -080041ramstage-$(CONFIG_HAVE_ACPI_TABLES) += ec_acpi.c
Stefan Reinauer77c04e92015-04-27 14:03:47 -070042
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070043ramstage-$(CONFIG_VBOOT) += vboot_storage.c
44smm-$(CONFIG_VBOOT) += vboot_storage.c
45romstage-$(CONFIG_VBOOT) += vboot_storage.c
46verstage-$(CONFIG_VBOOT) += vboot_storage.c
Aaron Durbin49b23832016-01-22 14:42:54 -060047
Furquan Shaikhcd2afc02016-11-15 20:33:29 -080048verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SWITCHES) += switches.c
49romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SWITCHES) += switches.c
50ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SWITCHES) += switches.c
51
Tim Wawrzynczak93d7bcb2020-05-29 15:44:25 -060052ramstage-$(CONFIG_DRIVERS_INTEL_DPTF) += ec_dptf_helpers.c
53
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020054CHROMEEC_SOURCE ?= $(top)/3rdparty/chromeec
55
Patrick Georgie995dad22016-02-01 15:26:26 +010056# 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.
Patrick Georgie995dad22016-02-01 15:26:26 +010059
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020060ifneq ($(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_NONE),y)
61
62cbfs-files-y += ecrw
Patrick Georgie995dad22016-02-01 15:26:26 +010063ecrw-file := $(obj)/mainboard/$(MAINBOARDDIR)/ecrw
64ecrw-name := ecrw
65ecrw-type := raw
Julius Werner8e97d002016-05-31 18:11:10 -070066ecrw-compression := $(CBFS_COMPRESS_FLAG)
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020067cbfs-files-y += ecrw.hash
Julius Werner8e97d002016-05-31 18:11:10 -070068ecrw.hash-file := $(obj)/mainboard/$(MAINBOARDDIR)/ecrw.hash
69ecrw.hash-name := ecrw.hash
70ecrw.hash-type := raw
Patrick Georgie995dad22016-02-01 15:26:26 +010071
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020072ifeq ($(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_EXTERNAL),y)
73CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE := $(call strip_quotes,$(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE))
Patrick Georgie995dad22016-02-01 15:26:26 +010074
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020075$(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))
Paul Kocialkowski94938fb2016-07-20 18:38:54 +020079
Patrick Georgie995dad22016-02-01 15:26:26 +010080$(obj)/mainboard/$(MAINBOARDDIR)/ecrw:
Martin Roth09ae1d52016-08-02 15:32:51 -060081 $(MAKE) -C $(CHROMEEC_SOURCE) $(if $(CONFIG_CCACHE),,CCACHE=) \
Patrick Georgie995dad22016-02-01 15:26:26 +010082 out=$(abspath $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME)) \
Elyes HAOUASdd12d532019-01-05 14:41:08 +010083 REPRODUCIBLE_BUILD=1 \
84 CC=$(GCC_CC_arm) \
Patrick Georgie995dad22016-02-01 15:26:26 +010085 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 $@
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020090endif
91
92$(obj)/mainboard/$(MAINBOARDDIR)/ecrw.hash: $(obj)/mainboard/$(MAINBOARDDIR)/ecrw
93 openssl dgst -sha256 -binary $< > $@
94
95endif
96
Ben Pye067a3402018-03-06 22:41:20 +000097ifeq ($(CONFIG_EC_GOOGLE_CHROMEEC_PD),y)
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020098
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))
Patrick Georgie995dad22016-02-01 15:26:26 +0100118
119$(obj)/mainboard/$(MAINBOARDDIR)/pdrw:
Martin Roth09ae1d52016-08-02 15:32:51 -0600120 $(MAKE) -C $(CHROMEEC_SOURCE) $(if $(CONFIG_CCACHE),,CCACHE=) \
Patrick Georgie995dad22016-02-01 15:26:26 +0100121 out=$(abspath $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME)) \
Elyes HAOUASdd12d532019-01-05 14:41:08 +0100122 REPRODUCIBLE_BUILD=1 \
123 CC=$(GCC_CC_arm) \
Patrick Georgie995dad22016-02-01 15:26:26 +0100124 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 $@
Paul Kocialkowski8ff24802016-08-02 14:28:26 +0200129endif
Patrick Georgie995dad22016-02-01 15:26:26 +0100130
Paul Kocialkowski8ff24802016-08-02 14:28:26 +0200131$(obj)/mainboard/$(MAINBOARDDIR)/pdrw.hash: $(obj)/mainboard/$(MAINBOARDDIR)/pdrw
Julius Werner8e97d002016-05-31 18:11:10 -0700132 openssl dgst -sha256 -binary $< > $@
133
Paul Kocialkowski8ff24802016-08-02 14:28:26 +0200134endif
135
Patrick Georgi14caed82016-05-12 15:13:23 +0200136endif
Patrick Georgie995dad22016-02-01 15:26:26 +0100137
Stefan Reinauer77c04e92015-04-27 14:03:47 -0700138endif