blob: 05a05d65dba281f2c74abf8539b0d64b46b66253 [file] [log] [blame]
##
## Copyright 2015 Google Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; version 2 of the License.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
CBFS_ARCH-$(CONFIG_ARCH_X86) = x86
CBFS_ARCH-$(CONFIG_ARCH_ARM_V7) = arm
CBFS_ARCH-$(CONFIG_ARCH_ARM_V8) = arm64
$(module_obj)/%.payload: $(module_obj)/%.elf
@printf " PAYLOAD $(subst $(obj)/,,$@)\n"
$(Q)-rm -f $*.rom $*.bb
$(Q)dd if=/dev/zero of=$*.bb bs=512 count=1
$(Q)cbfstool $*.rom create -m $(CBFS_ARCH-y) -s 1024K -B $*.bb
$(Q)cbfstool $*.rom add-payload -f $< -n dc.elf -c lzma
$(Q)cbfstool $*.rom extract -n dc.elf -f $@
$(Q)rm -f $*.rom $*.bb
.PRECIOUS: $(module_obj)/%.payload
CB_ARCH_CODE-$(CONFIG_ARCH_X86) += x86_cleanup.c
module-y += cb_payload
mod-cb_payload-title = "unified payload"
mod-cb_payload-y += payload.c $(CB_ARCH_CODE-y)
mod-cb_payload-libs += $(COMMON_OBJECTS) $(VBOOT_OBJECTS)
mod-cb_payload-libs += $(coreboot_handoff-objs)
module-y += cb_dev
mod-cb_dev-title = "developer payload"
mod-cb_dev-y += $(mod-cb_payload-y)
mod-cb_dev-libs += $(mod-cb_payload-libs) $(DEV_OBJECTS)
mod-cb_dev-ldopts = $(DONT_GC_NETBOOT)
module-y += cb_readonly
mod-cb_readonly-title = "read only payload"
mod-cb_readonly-y += readonly.c $(CB_ARCH_CODE-y)
mod-cb_readonly-libs += $(COMMON_OBJECTS) $(VBOOT_OBJECTS)
mod-cb_readonly-libs += $(coreboot_handoff-objs) $(TRAMP_KS)
module-y += cb_dev_ro
mod-cb_dev_ro-title = "read only developer payload"
mod-cb_dev_ro-y += $(mod-cb_readonly-y)
mod-cb_dev_ro-libs += $(mod-cb_readonly-libs) $(DEV_OBJECTS)
mod-cb_dev_ro-ldopts += $(mod-cb_readonly-ldopts) $(DONT_GC_NETBOOT)
mod-cb_dev_ro-deps += $(mod-cb_readonly-deps)
module-y += cb_readwrite
mod-cb_readwrite-title = "read/write payload"
mod-cb_readwrite-y += readwrite.c $(CB_ARCH_CODE-y)
mod-cb_readwrite-libs += $(COMMON_OBJECTS) $(VBOOT_OBJECTS)
mod-cb_readwrite-libs += $(module_handoff-objs)
module-y += cb_dev_rw
mod-cb_dev_rw-title = "read/write developer payload"
mod-cb_dev_rw-y += $(mod-cb_readwrite-y)
mod-cb_dev_rw-libs += $(mod-cb_readwrite-libs) $(DEV_OBJECTS)
mod-cb_dev_rw-ldopts = $(DONT_GC_NETBOOT)
module-y += cb_netboot
mod-cb_netboot-title = "netboot payload"
mod-cb_netboot-y += ../netboot.c
mod-cb_netboot-libs += $(COMMON_OBJECTS) $(VBOOT_OBJECTS) $(NET_OBJECTS)
mod-cb_netboot-libs += $(coreboot_handoff-objs)