blob: d3d9322a14d190768d7b59598fcd7a41cbcd7bec [file] [log] [blame]
Kyösti Mälkkie8b4da22014-10-21 18:22:32 +03001#*****************************************************************************
2#
Kyösti Mälkkie8b4da22014-10-21 18:22:32 +03003# Redistribution and use in source and binary forms, with or without
4# modification, are permitted provided that the following conditions are met:
5# * Redistributions of source code must retain the above copyright
6# notice, this list of conditions and the following disclaimer.
7# * Redistributions in binary form must reproduce the above copyright
8# notice, this list of conditions and the following disclaimer in the
9# documentation and/or other materials provided with the distribution.
10# * Neither the name of Advanced Micro Devices, Inc. nor the names of
11# its contributors may be used to endorse or promote products derived
12# from this software without specific prior written permission.
13#
14# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17# DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
18# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24#
25#*****************************************************************************
26
Michał Żygowski8cee45c2019-11-23 18:03:46 +010027bootblock-y += bootblock.c
28bootblock-y += early_setup.c
29bootblock-$(CONFIG_USBDEBUG) += enable_usbdebug.c
Arthur Heymansadc47532018-12-28 15:48:58 +010030
Marc Jones05b2f692017-05-03 15:52:09 -060031romstage-y += early_setup.c
Arthur Heymansc63649b2019-11-16 12:13:03 +010032romstage-y += enable_usbdebug.c
Marc Jones05b2f692017-05-03 15:52:09 -060033romstage-$(CONFIG_HUDSON_IMC_FWM) += imc.c
34romstage-y += smbus.c
35romstage-y += smbus_spd.c
Marc Jones05b2f692017-05-03 15:52:09 -060036
37verstage-y += early_setup.c
Marc Jones05b2f692017-05-03 15:52:09 -060038
Arthur Heymansc63649b2019-11-16 12:13:03 +010039ramstage-y += enable_usbdebug.c
Marc Jones05b2f692017-05-03 15:52:09 -060040ramstage-$(CONFIG_HAVE_ACPI_TABLES) += fadt.c
Kyösti Mälkkie8b4da22014-10-21 18:22:32 +030041ramstage-y += hda.c
Marc Jones05b2f692017-05-03 15:52:09 -060042ramstage-y += hudson.c
43ramstage-y += ide.c
44ramstage-$(CONFIG_HUDSON_IMC_FWM) += imc.c
45ramstage-y += lpc.c
Kyösti Mälkkie8b4da22014-10-21 18:22:32 +030046ramstage-y += pci.c
47ramstage-y += pcie.c
Marc Jones05b2f692017-05-03 15:52:09 -060048ramstage-y += sata.c
49ramstage-y += sd.c
50ramstage-y += sm.c
51ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c
52ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi_util.c
Marc Jones05b2f692017-05-03 15:52:09 -060053ramstage-y += usb.c
Kyösti Mälkkie8b4da22014-10-21 18:22:32 +030054
Kyösti Mälkki9db39872019-12-13 18:11:05 +020055all-y += reset.c
56
Kyösti Mälkki9265f892019-07-07 23:58:34 +030057smm-y += smihandler.c
58smm-y += smi_util.c
Kyösti Mälkkie8b4da22014-10-21 18:22:32 +030059
60# ROMSIG At ROMBASE + 0x20000:
61# +-----------+---------------+----------------+------------+
62# |0x55AA55AA |EC ROM Address |GEC ROM Address |USB3 ROM |
63# +-----------+---------------+----------------+------------+
64# |PSPDIR ADDR|
65# +-----------+
66#
67# EC ROM should be 64K aligned.
68
Kyösti Mälkki503f9fd2019-01-24 15:10:09 +020069ifeq ($(CONFIG_AMDFW_OUTSIDE_CBFS),y)
Ricardo Ribalda Delgadobaae9592016-12-20 10:51:08 +010070HUDSON_FWM_POSITION=$(call int-add, $(call int-subtract, 0xffffffff $(CONFIG_ROM_SIZE)) 0x20000 1)
Kyösti Mälkki503f9fd2019-01-24 15:10:09 +020071else
72HUDSON_FWM_POSITION=0xfff20000
73endif
Martin Rothd12d65f2015-06-28 14:06:23 -060074
Kyösti Mälkkie8b4da22014-10-21 18:22:32 +030075ifeq ($(CONFIG_HUDSON_PSP), y)
76
Kyösti Mälkkie8b4da22014-10-21 18:22:32 +030077ifeq ($(CONFIG_CPU_AMD_PI_00730F01), y)
Kyösti Mälkkie8b4da22014-10-21 18:22:32 +030078FIRMWARE_TYPE=
Kyösti Mälkki8b8fbaf2019-01-24 15:07:37 +020079
Kyösti Mälkkie8b4da22014-10-21 18:22:32 +030080endif
Kyösti Mälkki8b8fbaf2019-01-24 15:07:37 +020081
Zheng Bao3384e4a2020-10-06 12:03:11 +080082#PUBSIGNEDKEY_FILE=$(top)/$(FIRMWARE_LOCATION)/RtmPubSigned$(FIRMWARE_TYPE).key
83#PSPNVRAM_FILE=$(top)/$(FIRMWARE_LOCATION)/PspNvram$(FIRMWARE_TYPE).bin
84#PSPSECUREDEBUG_FILE=$(top)/$(FIRMWARE_LOCATION)/PspSecureDebug$(FIRMWARE_TYPE).Key
WANG Siyuanf2dfef02015-05-20 14:41:01 +080085
Kyösti Mälkkie8b4da22014-10-21 18:22:32 +030086endif
Zheng Baoc64f21c2015-11-17 22:58:55 +080087
88add_opt_prefix=$(if $(call strip_quotes, $(1)), $(2) $(call strip_quotes, $(1)), )
89
90OPT_HUDSON_XHCI_FWM_FILE=$(call add_opt_prefix, $(CONFIG_HUDSON_XHCI_FWM_FILE), --xhci)
91OPT_HUDSON_IMC_FWM_FILE=$(call add_opt_prefix, $(CONFIG_HUDSON_IMC_FWM_FILE), --imc)
92OPT_HUDSON_GEC_FWM_FILE=$(call add_opt_prefix, $(CONFIG_HUDSON_GEC_FWM_FILEddd), --gec)
93
Kyösti Mälkkifa2786a2017-07-07 23:05:40 +030094OPT_AMD_PUBKEY_FILE=$(call add_opt_prefix, $(CONFIG_AMD_PUBKEY_FILE), --pubkey)
Martin Rothde60e602017-09-07 13:52:19 -060095OPT_PSPBTLDR_FILE=$(call add_opt_prefix, $(PSPBTLDR_FILE), --bootloader)
96OPT_SMUFWM_FILE=$(call add_opt_prefix, $(SMUFWM_FILE), --smufirmware)
97OPT_PSPRCVR_FILE=$(call add_opt_prefix, $(PSPRCVR_FILE), --recovery)
98OPT_PUBSIGNEDKEY_FILE=$(call add_opt_prefix, $(PUBSIGNEDKEY_FILE), --rtmpubkey)
Zheng Bao6252b602020-09-11 17:06:19 +080099OPT_PSPSECUREOS_FILE=$(call add_opt_prefix, $(PSPSECUREOS_FILE), --secureos)
Martin Rothde60e602017-09-07 13:52:19 -0600100OPT_PSPNVRAM_FILE=$(call add_opt_prefix, $(PSPNVRAM_FILE), --nvram)
101OPT_PSPSECUREDEBUG_FILE=$(call add_opt_prefix, $(PSPSECUREDEBUG_FILE), --securedebug)
102OPT_PSPTRUSTLETS_FILE=$(call add_opt_prefix, $(PSPTRUSTLETS_FILE), --trustlets)
103OPT_TRUSTLETKEY_FILE=$(call add_opt_prefix, $(TRUSTLETKEY_FILE), --trustletkey)
104OPT_SMUFIRMWARE2_FILE=$(call add_opt_prefix, $(SMUFIRMWARE2_FILE), --smufirmware2)
105OPT_SMUSCS_FILE=$(call add_opt_prefix, $(SMUSCS_FILE), --smuscs)
Zheng Baoc64f21c2015-11-17 22:58:55 +0800106
107$(obj)/amdfw.rom: $(call strip_quotes, $(CONFIG_HUDSON_XHCI_FWM_FILE)) \
108 $(call strip_quotes, $(CONFIG_HUDSON_IMC_FWM_FILE)) \
109 $(call strip_quotes, $(CONFIG_HUDSON_GEC_FWM_FILE)) \
Martin Rothde60e602017-09-07 13:52:19 -0600110 $(call strip_quotes, $(AMD_PUBKEY2_FILE)) \
111 $(call strip_quotes, $(PUBSIGNEDKEY2_FILE)) \
112 $(call strip_quotes, $(PSPBTLDR2_FILE)) \
113 $(call strip_quotes, $(SMUFWM2_FILE)) \
114 $(call strip_quotes, $(SMUFWM2_FN_FILE)) \
115 $(call strip_quotes, $(PSPRCVR2_FILE)) \
Zheng Bao6252b602020-09-11 17:06:19 +0800116 $(call strip_quotes, $(PSPSECUREOS2_FILE)) \
Martin Rothde60e602017-09-07 13:52:19 -0600117 $(call strip_quotes, $(PSPNVRAM2_FILE)) \
118 $(call strip_quotes, $(SMUSCS2_FILE)) \
119 $(call strip_quotes, $(PSPSECUREDEBUG2_FILE)) \
120 $(call strip_quotes, $(PSPTRUSTLETS2_FILE)) \
121 $(call strip_quotes, $(TRUSTLETKEY2_FILE)) \
122 $(call strip_quotes, $(SMUFIRMWARE2_2_FILE)) \
123 $(call strip_quotes, $(SMUFIRMWARE2_2_FN_FILE)) \
Zheng Baoc5e28ab2020-10-28 11:38:09 +0800124 $(DEP_FILES) \
Zheng Baoc64f21c2015-11-17 22:58:55 +0800125 $(AMDFWTOOL)
126 rm -f $@
Zheng Baoa962e062015-12-08 23:41:37 +0800127 @printf " AMDFWTOOL $(subst $(obj)/,,$(@))\n"
Zheng Baoc64f21c2015-11-17 22:58:55 +0800128 $(AMDFWTOOL) \
129 $(OPT_HUDSON_XHCI_FWM_FILE) \
130 $(OPT_HUDSON_IMC_FWM_FILE) \
131 $(OPT_HUDSON_GEC_FWM_FILE) \
Zheng Baoc64f21c2015-11-17 22:58:55 +0800132 $(OPT_2AMD_PUBKEY_FILE) \
133 $(OPT_2PSPBTLDR_FILE) \
134 $(OPT_2SMUFWM_FILE) \
Marshall Dawson0cd2cb62017-03-27 07:25:51 -0600135 $(OPT_2SMUFWM_FN_FILE) \
Zheng Baoc64f21c2015-11-17 22:58:55 +0800136 $(OPT_2PSPRCVR_FILE) \
137 $(OPT_2PUBSIGNEDKEY_FILE) \
Zheng Bao6252b602020-09-11 17:06:19 +0800138 $(OPT_2PSPSECUREOS_FILE) \
Zheng Baoc64f21c2015-11-17 22:58:55 +0800139 $(OPT_2PSPNVRAM_FILE) \
140 $(OPT_2PSPSECUREDEBUG_FILE) \
141 $(OPT_2PSPTRUSTLETS_FILE) \
142 $(OPT_2TRUSTLETKEY_FILE) \
143 $(OPT_2SMUFIRMWARE2_FILE) \
Marshall Dawson0cd2cb62017-03-27 07:25:51 -0600144 $(OPT_2SMUFIRMWARE2_FN_FILE) \
Zheng Baoc64f21c2015-11-17 22:58:55 +0800145 $(OPT_2SMUSCS_FILE) \
Martin Rothd61b5402016-11-08 11:49:58 -0700146 --flashsize $(CONFIG_ROM_SIZE) \
Kyösti Mälkki503f9fd2019-01-24 15:10:09 +0200147 --location $(HUDSON_FWM_POSITION) \
Zheng Baoc5e28ab2020-10-28 11:38:09 +0800148 --config $(CONFIG_AMDFW_CONFIG_FILE) \
Zheng Baoc64f21c2015-11-17 22:58:55 +0800149 --output $@
150
Marshall Dawsonc6be0d82017-01-07 18:17:32 -0500151ifeq ($(CONFIG_AMDFW_OUTSIDE_CBFS),y)
Patrick Georgi2cc5bcb2021-01-13 09:15:07 +0100152$(call add_intermediate, add_amdfw, $(obj)/amdfw.rom)
Marshall Dawsonc6be0d82017-01-07 18:17:32 -0500153 printf " DD Adding AMD Firmware\n"
Patrick Georgi0b7d3a12021-01-13 09:16:41 +0100154 dd if=$(obj)/amdfw.rom \
Arthur Heymans8ceef402021-07-06 16:20:09 +0200155 of=$< conv=notrunc bs=1 seek=131072 >/dev/null 2>&1
Marshall Dawsonc6be0d82017-01-07 18:17:32 -0500156
157else # ifeq ($(CONFIG_AMDFW_OUTSIDE_CBFS),y)
158
Zheng Baoc64f21c2015-11-17 22:58:55 +0800159cbfs-files-y += apu/amdfw
160apu/amdfw-file := $(obj)/amdfw.rom
161apu/amdfw-position := $(HUDSON_FWM_POSITION)
162apu/amdfw-type := raw
Marshall Dawsonc6be0d82017-01-07 18:17:32 -0500163
164endif # ifeq ($(CONFIG_AMDFW_OUTSIDE_CBFS),y)