blob: 938f436edea6faac6eee91f9c054d12f8ef539b1 [file] [log] [blame]
# Copyright 2018 The Fuchsia Authors
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT
ifeq ($(PLATFORM_VID),)
$(error PLATFORM_VID not defined)
endif
ifeq ($(PLATFORM_PID),)
$(error PLATFORM_PID not defined)
endif
ifeq ($(PLATFORM_BOARD_NAME),)
$(error PLATFORM_BOARD_NAME not defined)
endif
ifeq ($(PLATFORM_MDI_SRCS),)
$(error PLATFORM_MDI_SRCS not defined)
endif
BOARD_MDI := $(BUILDDIR)/$(PLATFORM_BOARD_NAME)-mdi.bin
BOARD_PLATFORM_ID := --vid $(PLATFORM_VID) --pid $(PLATFORM_PID) --board $(PLATFORM_BOARD_NAME)
BOARD_BOOTDATA := $(BUILDDIR)/$(PLATFORM_BOARD_NAME)-bootdata.bin
BOARD_KERNEL_BOOTDATA := $(BUILDDIR)/$(PLATFORM_BOARD_NAME)-kernel-bootdata.bin
$(BOARD_MDI): PLATFORM_MDI_SRCS:=$(PLATFORM_MDI_SRCS)
$(BOARD_BOOTDATA): BOARD_MDI:=$(BOARD_MDI)
$(BOARD_BOOTDATA): BOARD_BOOTDATA:=$(BOARD_BOOTDATA)
$(BOARD_BOOTDATA): BOARD_PLATFORM_ID:=$(BOARD_PLATFORM_ID)
$(BOARD_KERNEL_BOOTDATA): BOARD_MDI:=$(BOARD_MDI)
$(BOARD_KERNEL_BOOTDATA): BOARD_BOOTDATA:=$(BOARD_BOOTDATA)
$(BOARD_KERNEL_BOOTDATA): BOARD_PLATFORM_ID:=$(BOARD_PLATFORM_ID)
# rule for building MDI binary blob
$(BOARD_MDI): $(MDIGEN) $(PLATFORM_MDI_SRCS) $(MDI_INCLUDES)
$(call BUILDECHO,generating $@)
@$(MKDIR)
$(NOECHO)$(MDIGEN) -o $@ $(PLATFORM_MDI_SRCS)
GENERATED += $(BOARD_MDI)
EXTRA_BUILDDEPS += $(BOARD_MDI)
# full bootdata for standalone zircon build
$(BOARD_BOOTDATA): $(MKBOOTFS) $(USER_BOOTDATA) $(BOARD_MDI)
$(call BUILDECHO,generating $@)
@$(MKDIR)
$(NOECHO)$(MKBOOTFS) -o $@ $(BOARD_PLATFORM_ID) $(USER_BOOTDATA) $(BOARD_MDI)
# kernel bootdata for fuchsia build
$(BOARD_KERNEL_BOOTDATA): $(MKBOOTFS) $(BOARD_MDI)
$(call BUILDECHO,generating $@)
@$(MKDIR)
$(NOECHO)$(MKBOOTFS) -o $@ $(BOARD_PLATFORM_ID) $(BOARD_MDI)
kernel-only: $(BOARD_KERNEL_BOOTDATA)
kernel: $(KERNEL_BOOTDATA)
GENERATED += $(BOARD_BOOTDATA) $(BOARD_KERNEL_BOOTDATA)
EXTRA_BUILDDEPS += $(BOARD_BOOTDATA) $(BOARD_KERNEL_BOOTDATA)
# clear variables passed in
PLATFORM_VID :=
PLATFORM_PID :=
PLATFORM_BOARD_NAME :=
PLATFORM_MDI_SRCS :=
# clear variables we set here
BOARD_MDI :=
BOARD_BOOTDATA :=
BOARD_KERNEL_BOOTDATA :=
BOARD_PLATFORM_ID :=