blob: b17a9042b3e446bc59a9dfa20d6d208b8710cda8 [file] [log] [blame]
Stefan Reinauer77c04e92015-04-27 14:03:47 -07001ifeq ($(CONFIG_EC_GOOGLE_CHROMEEC),y)
2
Martin Roth7d1593a2018-03-06 14:36:08 -07003bootblock-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
Furquan Shaikha2094832017-09-25 08:04:49 -07004romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
5ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
6
Subrata Banik50b92582016-07-21 23:47:38 +05307bootblock-y += ec.c
Aaron Durbinfbb3e6c2016-05-10 17:00:06 -05008bootblock-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c
Subrata Banik50b92582016-07-21 23:47:38 +05309bootblock-$(CONFIG_EC_GOOGLE_CHROMEEC_MEC) += ec_mec.c
Duncan Lauriee2cea4f2015-12-01 19:14:09 -080010ramstage-y += ec.c crosec_proto.c vstore.c
Hung-Te Lin6bfbb332013-04-15 18:27:24 +080011ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_I2C) += ec_i2c.c
Hung-Te Lina904f9e2013-04-11 15:58:12 +080012ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c
Shawn Nematbakhsh5725ea32015-04-01 16:52:37 -070013ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_MEC) += ec_mec.c
Hung-Te Lin0ee70622013-06-26 19:42:12 +080014ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SPI) += ec_spi.c
Aaron Durbin996b15c2016-07-14 00:29:03 -050015smm-y += ec.c crosec_proto.c smihandler.c vstore.c
Hung-Te Lin6bfbb332013-04-15 18:27:24 +080016smm-$(CONFIG_EC_GOOGLE_CHROMEEC_I2C) += ec_i2c.c
Hung-Te Lina904f9e2013-04-11 15:58:12 +080017smm-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c
Shawn Nematbakhsh5725ea32015-04-01 16:52:37 -070018smm-$(CONFIG_EC_GOOGLE_CHROMEEC_MEC) += ec_mec.c
Hung-Te Lin0ee70622013-06-26 19:42:12 +080019smm-$(CONFIG_EC_GOOGLE_CHROMEEC_SPI) += ec_spi.c
Duncan Lauriee2cea4f2015-12-01 19:14:09 -080020romstage-y += ec.c crosec_proto.c vstore.c
Hung-Te Lin6bfbb332013-04-15 18:27:24 +080021romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_I2C) += ec_i2c.c
Hung-Te Lina904f9e2013-04-11 15:58:12 +080022romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c
Shawn Nematbakhsh5725ea32015-04-01 16:52:37 -070023romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_MEC) += ec_mec.c
Hung-Te Lin0ee70622013-06-26 19:42:12 +080024romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SPI) += ec_spi.c
Duncan Lauriee2cea4f2015-12-01 19:14:09 -080025verstage-y += ec.c crosec_proto.c vstore.c
Daisuke Nojiri224f9222014-06-30 09:56:32 -070026verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_I2C) += ec_i2c.c
27verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_LPC) += ec_lpc.c
Shawn Nematbakhsh5725ea32015-04-01 16:52:37 -070028verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_MEC) += ec_mec.c
Daisuke Nojiri224f9222014-06-30 09:56:32 -070029verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SPI) += ec_spi.c
Stefan Reinauer77c04e92015-04-27 14:03:47 -070030
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070031ramstage-$(CONFIG_VBOOT) += vboot_storage.c
32smm-$(CONFIG_VBOOT) += vboot_storage.c
33romstage-$(CONFIG_VBOOT) += vboot_storage.c
34verstage-$(CONFIG_VBOOT) += vboot_storage.c
Aaron Durbin49b23832016-01-22 14:42:54 -060035
Furquan Shaikhcd2afc02016-11-15 20:33:29 -080036verstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SWITCHES) += switches.c
37romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SWITCHES) += switches.c
38ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SWITCHES) += switches.c
39
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020040CHROMEEC_SOURCE ?= $(top)/3rdparty/chromeec
41
Patrick Georgie995dad22016-02-01 15:26:26 +010042# These are Chrome EC firmware images that a payload (such as depthcharge) can
43# use to update the EC. ecrw is the main embedded controller's firmware,
44# pdrw is for a USB PD controller.
Patrick Georgie995dad22016-02-01 15:26:26 +010045
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020046ifneq ($(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_NONE),y)
47
48cbfs-files-y += ecrw
Patrick Georgie995dad22016-02-01 15:26:26 +010049ecrw-file := $(obj)/mainboard/$(MAINBOARDDIR)/ecrw
50ecrw-name := ecrw
51ecrw-type := raw
Julius Werner8e97d002016-05-31 18:11:10 -070052ecrw-compression := $(CBFS_COMPRESS_FLAG)
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020053cbfs-files-y += ecrw.hash
Julius Werner8e97d002016-05-31 18:11:10 -070054ecrw.hash-file := $(obj)/mainboard/$(MAINBOARDDIR)/ecrw.hash
55ecrw.hash-name := ecrw.hash
56ecrw.hash-type := raw
Patrick Georgie995dad22016-02-01 15:26:26 +010057
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020058ifeq ($(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_EXTERNAL),y)
59CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE := $(call strip_quotes,$(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE))
Patrick Georgie995dad22016-02-01 15:26:26 +010060
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020061$(obj)/mainboard/$(MAINBOARDDIR)/ecrw: $(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE)
62 cp $(CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE) $@
63else
64CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME := $(call strip_quotes,$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME))
Paul Kocialkowski94938fb2016-07-20 18:38:54 +020065
Patrick Georgie995dad22016-02-01 15:26:26 +010066$(obj)/mainboard/$(MAINBOARDDIR)/ecrw:
Martin Roth09ae1d52016-08-02 15:32:51 -060067 $(MAKE) -C $(CHROMEEC_SOURCE) $(if $(CONFIG_CCACHE),,CCACHE=) \
Patrick Georgie995dad22016-02-01 15:26:26 +010068 out=$(abspath $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME)) \
69 CROSS_COMPILE=$(subst -cpp,-,$(CPP_arm)) \
70 HOST_CROSS_COMPILE= \
71 BOARD=$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME) \
72 rw
73 cp $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME)/RW/ec.RW.flat $@
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020074endif
75
76$(obj)/mainboard/$(MAINBOARDDIR)/ecrw.hash: $(obj)/mainboard/$(MAINBOARDDIR)/ecrw
77 openssl dgst -sha256 -binary $< > $@
78
79endif
80
Ben Pye067a3402018-03-06 22:41:20 +000081ifeq ($(CONFIG_EC_GOOGLE_CHROMEEC_PD),y)
Paul Kocialkowski8ff24802016-08-02 14:28:26 +020082
83ifneq ($(CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_NONE),y)
84
85cbfs-files-y += pdrw
86pdrw-file := $(obj)/mainboard/$(MAINBOARDDIR)/pdrw
87pdrw-name := pdrw
88pdrw-type := raw
89pdrw-compression := $(CBFS_COMPRESS_FLAG)
90cbfs-files-y += pdrw.hash
91pdrw.hash-file := $(obj)/mainboard/$(MAINBOARDDIR)/pdrw.hash
92pdrw.hash-name := pdrw.hash
93pdrw.hash-type := raw
94
95ifeq ($(CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_EXTERNAL),y)
96CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_FILE := $(call strip_quotes,$(CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_FILE))
97
98$(obj)/mainboard/$(MAINBOARDDIR)/pdrw: $(CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_FILE)
99 cp $(CONFIG_EC_GOOGLE_CHROMEEC_PD_FIRMWARE_FILE) $@
100else
101CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME := $(call strip_quotes,$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME))
Patrick Georgie995dad22016-02-01 15:26:26 +0100102
103$(obj)/mainboard/$(MAINBOARDDIR)/pdrw:
Martin Roth09ae1d52016-08-02 15:32:51 -0600104 $(MAKE) -C $(CHROMEEC_SOURCE) $(if $(CONFIG_CCACHE),,CCACHE=) \
Patrick Georgie995dad22016-02-01 15:26:26 +0100105 out=$(abspath $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME)) \
106 CROSS_COMPILE=$(subst -cpp,-,$(CPP_arm)) \
107 HOST_CROSS_COMPILE= \
108 BOARD=$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME) \
109 rw
110 cp $(obj)/external/chromeec/$(CONFIG_EC_GOOGLE_CHROMEEC_PD_BOARDNAME)/RW/ec.RW.flat $@
Paul Kocialkowski8ff24802016-08-02 14:28:26 +0200111endif
Patrick Georgie995dad22016-02-01 15:26:26 +0100112
Paul Kocialkowski8ff24802016-08-02 14:28:26 +0200113$(obj)/mainboard/$(MAINBOARDDIR)/pdrw.hash: $(obj)/mainboard/$(MAINBOARDDIR)/pdrw
Julius Werner8e97d002016-05-31 18:11:10 -0700114 openssl dgst -sha256 -binary $< > $@
115
Paul Kocialkowski8ff24802016-08-02 14:28:26 +0200116endif
117
Patrick Georgi14caed82016-05-12 15:13:23 +0200118endif
Patrick Georgie995dad22016-02-01 15:26:26 +0100119
Stefan Reinauer77c04e92015-04-27 14:03:47 -0700120endif