Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 1 | ## |
| 2 | ## This file is part of the coreboot project. |
| 3 | ## |
| 4 | ## Copyright (C) 2014 The ChromiumOS Authors. All rights reserved. |
| 5 | ## |
| 6 | ## This program is free software; you can redistribute it and/or modify |
| 7 | ## it under the terms of the GNU General Public License as published by |
| 8 | ## the Free Software Foundation; version 2 of the License. |
| 9 | ## |
| 10 | ## This program is distributed in the hope that it will be useful, |
| 11 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 13 | ## GNU General Public License for more details. |
| 14 | ## |
Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 15 | |
Julius Werner | 5fc7c28 | 2017-03-17 14:29:10 -0700 | [diff] [blame] | 16 | ifeq ($(CONFIG_VBOOT),y) |
| 17 | |
Furquan Shaikh | 0325dc6 | 2016-07-25 13:02:36 -0700 | [diff] [blame] | 18 | bootblock-y += bootmode.c |
| 19 | romstage-y += bootmode.c |
| 20 | ramstage-y += bootmode.c |
| 21 | verstage-y += bootmode.c |
| 22 | postcar-y += bootmode.c |
| 23 | |
Aaron Durbin | 26681ec | 2015-05-01 16:48:54 -0500 | [diff] [blame] | 24 | verstage-generic-ccopts += -D__PRE_RAM__ -D__VERSTAGE__ |
Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 25 | |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 26 | bootblock-y += vbnv.c |
| 27 | verstage-y += vbnv.c |
| 28 | romstage-y += vbnv.c |
| 29 | ramstage-y += vbnv.c |
| 30 | |
| 31 | bootblock-$(CONFIG_VBOOT_VBNV_CMOS) += vbnv_cmos.c |
| 32 | verstage-$(CONFIG_VBOOT_VBNV_CMOS) += vbnv_cmos.c |
| 33 | romstage-$(CONFIG_VBOOT_VBNV_CMOS) += vbnv_cmos.c |
| 34 | ramstage-$(CONFIG_VBOOT_VBNV_CMOS) += vbnv_cmos.c |
| 35 | |
| 36 | bootblock-$(CONFIG_VBOOT_VBNV_CMOS_BACKUP_TO_FLASH) += vbnv_flash.c |
| 37 | verstage-$(CONFIG_VBOOT_VBNV_CMOS_BACKUP_TO_FLASH) += vbnv_flash.c |
| 38 | romstage-$(CONFIG_VBOOT_VBNV_CMOS_BACKUP_TO_FLASH) += vbnv_flash.c |
| 39 | ramstage-$(CONFIG_VBOOT_VBNV_CMOS_BACKUP_TO_FLASH) += vbnv_flash.c |
| 40 | |
| 41 | bootblock-$(CONFIG_VBOOT_VBNV_EC) += vbnv_ec.c |
| 42 | verstage-$(CONFIG_VBOOT_VBNV_EC) += vbnv_ec.c |
| 43 | romstage-$(CONFIG_VBOOT_VBNV_EC) += vbnv_ec.c |
| 44 | ramstage-$(CONFIG_VBOOT_VBNV_EC) += vbnv_ec.c |
| 45 | |
| 46 | bootblock-$(CONFIG_VBOOT_VBNV_FLASH) += vbnv_flash.c |
| 47 | verstage-$(CONFIG_VBOOT_VBNV_FLASH) += vbnv_flash.c |
| 48 | romstage-$(CONFIG_VBOOT_VBNV_FLASH) += vbnv_flash.c |
| 49 | ramstage-$(CONFIG_VBOOT_VBNV_FLASH) += vbnv_flash.c |
| 50 | |
Aaron Durbin | 17200ad | 2015-05-01 16:48:54 -0500 | [diff] [blame] | 51 | bootblock-y += vboot_loader.c |
| 52 | romstage-y += vboot_loader.c |
| 53 | ramstage-y += vboot_loader.c |
| 54 | verstage-y += vboot_loader.c |
Andrey Petrov | 60c6432 | 2016-04-14 14:12:47 -0700 | [diff] [blame] | 55 | postcar-y += vboot_loader.c |
Aaron Durbin | 17200ad | 2015-05-01 16:48:54 -0500 | [diff] [blame] | 56 | |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 57 | bootblock-y += vboot_common.c |
| 58 | verstage-y += vboot_common.c |
| 59 | romstage-y += vboot_common.c |
| 60 | ramstage-y += vboot_common.c |
| 61 | postcar-y += vboot_common.c |
Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 62 | |
Daisuke Nojiri | 54af625 | 2014-11-04 12:32:29 -0800 | [diff] [blame] | 63 | bootblock-y += common.c |
Julius Werner | e91d170 | 2017-03-20 15:32:15 -0700 | [diff] [blame] | 64 | verstage-y += vboot_logic.c |
Daisuke Nojiri | 5d302c7 | 2015-04-09 08:18:22 -0700 | [diff] [blame] | 65 | verstage-y += common.c |
Julius Werner | e91d170 | 2017-03-20 15:32:15 -0700 | [diff] [blame] | 66 | verstage-$(CONFIG_VBOOT_SEPARATE_VERSTAGE) += verstage.c |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 67 | ifeq (${CONFIG_VBOOT_MOCK_SECDATA},y) |
Julius Werner | e91d170 | 2017-03-20 15:32:15 -0700 | [diff] [blame] | 68 | verstage-y += secdata_mock.c |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 69 | romstage-$(CONFIG_VBOOT_SEPARATE_VERSTAGE) += secdata_mock.c |
Daisuke Nojiri | 5d302c7 | 2015-04-09 08:18:22 -0700 | [diff] [blame] | 70 | else |
Julius Werner | e91d170 | 2017-03-20 15:32:15 -0700 | [diff] [blame] | 71 | verstage-y += secdata_tpm.c |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 72 | romstage-$(CONFIG_VBOOT_SEPARATE_VERSTAGE) += secdata_tpm.c |
Daisuke Nojiri | 5d302c7 | 2015-04-09 08:18:22 -0700 | [diff] [blame] | 73 | endif |
Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 74 | romstage-y += vboot_handoff.c common.c |
| 75 | |
Aaron Durbin | 17200ad | 2015-05-01 16:48:54 -0500 | [diff] [blame] | 76 | ramstage-y += common.c |
Andrey Petrov | 60c6432 | 2016-04-14 14:12:47 -0700 | [diff] [blame] | 77 | postcar-y += common.c |
Aaron Durbin | 17200ad | 2015-05-01 16:48:54 -0500 | [diff] [blame] | 78 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 79 | ifeq ($(CONFIG_VBOOT_SEPARATE_VERSTAGE),y) |
Aaron Durbin | d1cf44c | 2015-05-08 15:58:06 -0500 | [diff] [blame] | 80 | VB_FIRMWARE_ARCH := $(ARCHDIR-$(ARCH-verstage-y)) |
| 81 | else |
| 82 | ifeq ($(CONFIG_VBOOT_STARTS_IN_BOOTBLOCK),y) |
| 83 | VB_FIRMWARE_ARCH := $(ARCHDIR-$(ARCH-bootblock-y)) |
| 84 | else |
| 85 | VB_FIRMWARE_ARCH := $(ARCHDIR-$(ARCH-romstage-y)) |
| 86 | endif |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 87 | endif # CONFIG_VBOOT_SEPARATE_VERSTAGE |
Aaron Durbin | d1cf44c | 2015-05-08 15:58:06 -0500 | [diff] [blame] | 88 | |
Bill Richardson | c860315 | 2015-01-27 17:28:18 -0800 | [diff] [blame] | 89 | VB2_LIB = $(obj)/external/vboot_reference/vboot_fw20.a |
Julius Werner | e91d170 | 2017-03-20 15:32:15 -0700 | [diff] [blame] | 90 | VBOOT_CFLAGS += $(patsubst -I%,-I$(top)/%, $(filter-out -I$(obj), $(filter-out -include $(src)/include/kconfig.h, $(CPPFLAGS_verstage)))) |
| 91 | VBOOT_CFLAGS += $(CFLAGS_verstage) |
| 92 | VBOOT_CFLAGS += $(verstage-c-ccopts) |
Paul Kocialkowski | 6a10694 | 2015-08-03 23:03:27 +0200 | [diff] [blame] | 93 | VBOOT_CFLAGS += -I$(abspath $(obj)) -include $(top)/src/include/kconfig.h -Wno-missing-prototypes |
Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 94 | VBOOT_CFLAGS += -DVBOOT_DEBUG |
| 95 | |
| 96 | $(VB2_LIB): $(obj)/config.h |
Patrick Georgi | 78a5f22 | 2017-01-30 15:29:34 +0100 | [diff] [blame] | 97 | printf " MAKE $(subst $(obj)/,,$(@))\n" |
| 98 | +FIRMWARE_ARCH=$(VB_FIRMWARE_ARCH) \ |
Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 99 | CC="$(CC_verstage)" \ |
| 100 | CFLAGS="$(VBOOT_CFLAGS)" VBOOT2="y" \ |
Paul Kocialkowski | 4611451 | 2016-07-24 12:10:38 +0200 | [diff] [blame] | 101 | $(MAKE) -C $(VBOOT_SOURCE) \ |
Paul Kocialkowski | 6a10694 | 2015-08-03 23:03:27 +0200 | [diff] [blame] | 102 | BUILD=$(abspath $(dir $(VB2_LIB))) \ |
Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 103 | V=$(V) \ |
Bill Richardson | c860315 | 2015-01-27 17:28:18 -0800 | [diff] [blame] | 104 | fwlib20 |
Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 105 | |
Julius Werner | e91d170 | 2017-03-20 15:32:15 -0700 | [diff] [blame] | 106 | verstage-srcs += $(VB2_LIB) |
Patrick Georgi | ba80887 | 2015-04-27 18:09:22 +0200 | [diff] [blame] | 107 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 108 | ifeq ($(CONFIG_VBOOT_SEPARATE_VERSTAGE),y) |
Furquan Shaikh | b038f41 | 2016-11-07 23:47:11 -0800 | [diff] [blame] | 109 | |
| 110 | # This works under the assumption that romstage and verstage use the same |
| 111 | # architecture and thus CC_verstage is the same as CC_romstage. If this is not |
| 112 | # true, VB2_LIB needs to ensure that correct CC is being used. |
| 113 | ifeq ($(CONFIG_VBOOT_HAS_REC_HASH_SPACE),y) |
| 114 | romstage-srcs += $(VB2_LIB) |
| 115 | endif |
| 116 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 117 | cbfs-files-$(CONFIG_VBOOT_SEPARATE_VERSTAGE) += $(CONFIG_CBFS_PREFIX)/verstage |
Patrick Georgi | 1cab012 | 2015-11-26 16:39:23 +0100 | [diff] [blame] | 118 | $(CONFIG_CBFS_PREFIX)/verstage-file := $(objcbfs)/verstage.elf |
| 119 | $(CONFIG_CBFS_PREFIX)/verstage-type := stage |
Julius Werner | 09f2921 | 2015-09-29 13:51:35 -0700 | [diff] [blame] | 120 | $(CONFIG_CBFS_PREFIX)/verstage-compression := $(CBFS_PRERAM_COMPRESS_FLAG) |
Furquan Shaikh | 94b18a1 | 2016-05-04 23:25:16 -0700 | [diff] [blame] | 121 | |
Patrick Georgi | 1cab012 | 2015-11-26 16:39:23 +0100 | [diff] [blame] | 122 | ifeq ($(CONFIG_ARCH_VERSTAGE_X86_32)$(CONFIG_ARCH_VERSTAGE_X86_64),y) |
Furquan Shaikh | 94b18a1 | 2016-05-04 23:25:16 -0700 | [diff] [blame] | 123 | $(CONFIG_CBFS_PREFIX)/verstage-options := -a 64 -S ".car.data" |
| 124 | |
| 125 | # If CAR does not support execution of code, verstage on x86 is expected to be |
| 126 | # xip. |
| 127 | ifneq ($(CONFIG_NO_XIP_EARLY_STAGES),y) |
| 128 | $(CONFIG_CBFS_PREFIX)/verstage-options += --xip |
| 129 | endif |
Patrick Georgi | 1cab012 | 2015-11-26 16:39:23 +0100 | [diff] [blame] | 130 | |
| 131 | endif |
| 132 | |
Julius Werner | e91d170 | 2017-03-20 15:32:15 -0700 | [diff] [blame] | 133 | else # CONFIG_VBOOT_SEPARATE_VERSTAGE |
Aaron Durbin | d1cf44c | 2015-05-08 15:58:06 -0500 | [diff] [blame] | 134 | ifeq ($(CONFIG_VBOOT_STARTS_IN_BOOTBLOCK),y) |
Julius Werner | e91d170 | 2017-03-20 15:32:15 -0700 | [diff] [blame] | 135 | postinclude-hooks += $$(eval bootblock-srcs += $$(verstage-srcs)) |
Aaron Durbin | 57e3728 | 2015-04-28 16:17:25 -0500 | [diff] [blame] | 136 | else |
Julius Werner | e91d170 | 2017-03-20 15:32:15 -0700 | [diff] [blame] | 137 | postinclude-hooks += $$(eval romstage-srcs += $$(verstage-srcs)) |
Patrick Georgi | efc6aa0 | 2015-04-27 18:13:50 +0200 | [diff] [blame] | 138 | endif |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 139 | endif # CONFIG_VBOOT_SEPARATE_VERSTAGE |
Patrick Georgi | c8d4abd | 2016-01-20 15:54:31 +0100 | [diff] [blame] | 140 | |
| 141 | # Define a list of files that need to be in RO only. |
| 142 | # All other files will be installed into RO and RW regions |
| 143 | # Use $(sort) to cut down on extra spaces that would be translated to commas |
| 144 | regions-for-file = $(subst $(spc),$(comma),$(sort \ |
| 145 | $(if $(filter \ |
| 146 | $(if $(filter y,$(CONFIG_VBOOT_STARTS_IN_BOOTBLOCK)),, \ |
| 147 | %/romstage) \ |
| 148 | mts \ |
| 149 | %/verstage \ |
Patrick Georgi | eda794d | 2016-02-05 11:01:24 +0100 | [diff] [blame] | 150 | locales \ |
| 151 | locale_%.bin \ |
| 152 | font.bin \ |
| 153 | vbgfx.bin \ |
Lee Leahy | 5e34752 | 2017-01-04 08:51:52 -0800 | [diff] [blame] | 154 | rmu.bin \ |
Patrick Georgi | c8d4abd | 2016-01-20 15:54:31 +0100 | [diff] [blame] | 155 | ,$(1)),COREBOOT,COREBOOT FW_MAIN_A FW_MAIN_B))) |
Furquan Shaikh | 0325dc6 | 2016-07-25 13:02:36 -0700 | [diff] [blame] | 156 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 157 | CONFIG_GBB_HWID := $(call strip_quotes,$(CONFIG_GBB_HWID)) |
| 158 | CONFIG_GBB_BMPFV_FILE := $(call strip_quotes,$(CONFIG_GBB_BMPFV_FILE)) |
| 159 | CONFIG_VBOOT_KEYBLOCK := $(call strip_quotes,$(CONFIG_VBOOT_KEYBLOCK)) |
| 160 | CONFIG_VBOOT_FIRMWARE_PRIVKEY := $(call strip_quotes,$(CONFIG_VBOOT_FIRMWARE_PRIVKEY)) |
| 161 | CONFIG_VBOOT_KERNEL_KEY := $(call strip_quotes,$(CONFIG_VBOOT_KERNEL_KEY)) |
| 162 | CONFIG_VBOOT_FWID_MODEL := $(call strip_quotes,$(CONFIG_VBOOT_FWID_MODEL)) |
| 163 | CONFIG_VBOOT_FWID_VERSION := $(call strip_quotes,$(CONFIG_VBOOT_FWID_VERSION)) |
| 164 | |
| 165 | # bool-to-mask(var, value) |
| 166 | # return "value" if var is "y", 0 otherwise |
| 167 | bool-to-mask = $(if $(filter y,$(1)),$(2),0) |
| 168 | |
| 169 | GBB_FLAGS := $(call int-add, \ |
| 170 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_DEV_SCREEN_SHORT_DELAY),0x1) \ |
| 171 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_LOAD_OPTION_ROMS),0x2) \ |
| 172 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_ENABLE_ALTERNATE_OS),0x4) \ |
| 173 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_FORCE_DEV_SWITCH_ON),0x8) \ |
| 174 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_FORCE_DEV_BOOT_USB),0x10) \ |
| 175 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_DISABLE_FW_ROLLBACK_CHECK),0x20) \ |
| 176 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_ENTER_TRIGGERS_TONORM),0x40) \ |
| 177 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_FORCE_DEV_BOOT_LEGACY),0x80) \ |
| 178 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_FAFT_KEY_OVERIDE),0x100) \ |
| 179 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC),0x200) \ |
| 180 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_DEFAULT_DEV_BOOT_LEGACY),0x400) \ |
| 181 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_DISABLE_PD_SOFTWARE_SYNC),0x800) \ |
| 182 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_DISABLE_LID_SHUTDOWN),0x1000) \ |
| 183 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_FORCE_DEV_BOOT_FASTBOOT_FULL_CAP),0x2000) \ |
| 184 | $(call bool-to-mask,$(CONFIG_GBB_FLAG_ENABLE_SERIAL),0x4000) \ |
| 185 | ) |
| 186 | |
| 187 | ifneq ($(CONFIG_GBB_BMPFV_FILE),) |
| 188 | $(obj)/gbb.sizetmp: $(obj)/coreboot.rom |
| 189 | $(CBFSTOOL) $< read -r GBB -f $@ |
| 190 | |
| 191 | $(obj)/gbb.stub: $(obj)/coreboot.rom $(FUTILITY) $(obj)/gbb.sizetmp |
| 192 | @printf " CREATE GBB (with BMPFV)\n" |
| 193 | $(FUTILITY) gbb_utility -c 0x100,0x1000,$(call int-subtract,$(call file-size,$(obj)/gbb.sizetmp) 0x2180),0x1000 $@.tmp |
| 194 | mv $@.tmp $@ |
| 195 | else |
| 196 | $(obj)/gbb.stub: $(obj)/coreboot.rom $(FUTILITY) |
| 197 | @printf " CREATE GBB (without BMPFV)\n" |
| 198 | $(FUTILITY) gbb_utility -c 0x100,0x1000,0,0x1000 $@.tmp |
| 199 | mv $@.tmp $@ |
| 200 | endif |
| 201 | |
| 202 | $(obj)/gbb.region: $(obj)/gbb.stub |
| 203 | @printf " SETUP GBB\n" |
| 204 | cp $< $@.tmp |
| 205 | $(FUTILITY) gbb_utility -s \ |
| 206 | --hwid="$(CONFIG_GBB_HWID)" \ |
| 207 | --rootkey="$(CONFIG_VBOOT_ROOT_KEY)" \ |
| 208 | --recoverykey="$(CONFIG_VBOOT_RECOVERY_KEY)" \ |
| 209 | --flags=$(GBB_FLAGS) \ |
| 210 | $@.tmp |
| 211 | ifneq ($(CONFIG_GBB_BMPFV_FILE),) |
| 212 | $(FUTILITY) gbb_utility -s \ |
| 213 | --bmpfv="$(CONFIG_GBB_BMPFV_FILE)" \ |
| 214 | $@.tmp |
| 215 | endif |
| 216 | mv $@.tmp $@ |
| 217 | |
| 218 | $(obj)/fwid.region: |
| 219 | printf "$(CONFIG_VBOOT_FWID_MODEL)$(CONFIG_VBOOT_FWID_VERSION)\0" > $@ |
| 220 | |
| 221 | build_complete:: $(obj)/gbb.region $(obj)/fwid.region |
| 222 | @printf " WRITE GBB\n" |
| 223 | $(CBFSTOOL) $(obj)/coreboot.rom write -u -r GBB -i 0 -f $(obj)/gbb.region |
| 224 | $(CBFSTOOL) $(obj)/coreboot.rom write -u -r RO_FRID -i 0 -f $(obj)/fwid.region |
| 225 | $(CBFSTOOL) $(obj)/coreboot.rom write -u -r RW_FWID_A -i 0 -f $(obj)/fwid.region |
| 226 | $(CBFSTOOL) $(obj)/coreboot.rom write -u -r RW_FWID_B -i 0 -f $(obj)/fwid.region |
| 227 | |
| 228 | ifneq ($(shell grep "SHARED_DATA" "$(CONFIG_FMDFILE)"),) |
| 229 | build_complete:: |
| 230 | printf "\0" > $(obj)/shared_data.region |
| 231 | $(CBFSTOOL) $(obj)/coreboot.rom write -u -r SHARED_DATA -i 0 -f $(obj)/shared_data.region |
| 232 | endif |
| 233 | |
| 234 | # Extract FW_MAIN_? region and minimize it if the last file is empty, so it |
| 235 | # doesn't contain this empty file (that can have a significant size), |
| 236 | # improving a lot on hash times due to a smaller amount of data loaded from |
| 237 | # firmware storage. |
| 238 | # When passing the minimized image to vbutil_firmware, its length is recorded |
| 239 | # in the keyblock, and coreboot's vboot code clips the region_device to match, |
| 240 | # which prevents any potential extension attacks. |
| 241 | $(obj)/FW_MAIN_%.bin: $(obj)/coreboot.rom |
| 242 | $(CBFSTOOL) $< read -r $(basename $(notdir $@)) -f $@.tmp |
| 243 | $(CBFSTOOL) $(obj)/coreboot.rom print -k -r $(basename $(notdir $@)) | \ |
| 244 | tail -1 | \ |
| 245 | sed "s,^(empty)[[:space:]]\(0x[0-9a-f]*\)\tnull\t.*$$,\1," \ |
| 246 | > $@.tmp.size |
| 247 | if [ -n "$$(cat $@.tmp.size)" ] && [ $$( printf "%d" $$(cat $@.tmp.size)) -gt 0 ]; then \ |
| 248 | head -c $$( printf "%d" $$(cat $@.tmp.size)) $@.tmp > $@.tmp2 && \ |
| 249 | mv $@.tmp2 $@; \ |
| 250 | else \ |
| 251 | mv $@.tmp $@; \ |
| 252 | fi |
| 253 | |
| 254 | $(obj)/VBLOCK_%.bin: $(obj)/FW_MAIN_%.bin $(FUTILITY) |
| 255 | $(FUTILITY) vbutil_firmware \ |
| 256 | --vblock $@ \ |
| 257 | --keyblock "$(CONFIG_VBOOT_KEYBLOCK)" \ |
| 258 | --signprivate "$(CONFIG_VBOOT_FIRMWARE_PRIVKEY)" \ |
| 259 | --version $(CONFIG_VBOOT_KEYBLOCK_VERSION) \ |
| 260 | --fv $< \ |
| 261 | --kernelkey "$(CONFIG_VBOOT_KERNEL_KEY)" \ |
| 262 | --flags $(CONFIG_VBOOT_KEYBLOCK_PREAMBLE_FLAGS) |
| 263 | |
| 264 | files_added:: $(obj)/VBLOCK_A.bin $(obj)/VBLOCK_B.bin |
| 265 | $(CBFSTOOL) $(obj)/coreboot.rom write -u -r VBLOCK_A -f $(obj)/VBLOCK_A.bin |
| 266 | $(CBFSTOOL) $(obj)/coreboot.rom write -u -r VBLOCK_B -f $(obj)/VBLOCK_B.bin |
| 267 | |
Furquan Shaikh | 0325dc6 | 2016-07-25 13:02:36 -0700 | [diff] [blame] | 268 | endif # CONFIG_VBOOT |