mirror of https://github.com/wolfSSL/wolfBoot.git
109 lines
3.2 KiB
Makefile
109 lines
3.2 KiB
Makefile
# Makefile
|
|
#
|
|
# Copyright (C) 2026 wolfSSL Inc.
|
|
#
|
|
# This file is part of wolfBoot.
|
|
#
|
|
# wolfBoot 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; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# wolfBoot 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 Street, Fifth Floor, Boston, MA 02110-1335, USA
|
|
|
|
-include ../../.config
|
|
include ../../tools/config.mk
|
|
include ../../options.mk
|
|
include ../../tools/test.mk
|
|
|
|
ifneq ($(wildcard $(WOLFBOOT_ROOT)/lib/wolfssl/wolfcrypt/src/asn.c),)
|
|
WOLFBOOT_LIB_WOLFSSL:=$(WOLFBOOT_ROOT)/lib/wolfssl
|
|
else ifneq ($(wildcard $(WOLFBOOT_ROOT)/../wolfssl/wolfcrypt/src/asn.c),)
|
|
WOLFBOOT_LIB_WOLFSSL:=$(WOLFBOOT_ROOT)/../wolfssl
|
|
endif
|
|
export WOLFBOOT_LIB_WOLFSSL
|
|
|
|
WOLFBOOT_ROOT?=$(abspath ../..)
|
|
|
|
EMU_VERSION?=1
|
|
EMU_EXPECT_VERSION?=$(EMU_VERSION)
|
|
PRIVATE_KEY?=$(WOLFBOOT_ROOT)/wolfboot_signing_private_key.der
|
|
|
|
M33MU?=$(WOLFBOOT_ROOT)/../m33mu/build/m33mu
|
|
|
|
ifeq ($(TARGET),stm32h563)
|
|
EMU_DIR=stm32h563
|
|
EMU_CPU=stm32h563
|
|
else ifeq ($(TARGET),stm32h5)
|
|
EMU_DIR=stm32h563
|
|
EMU_CPU=stm32h563
|
|
else ifeq ($(TARGET),stm32u585)
|
|
EMU_DIR=stm32u585
|
|
EMU_CPU=stm32u585
|
|
else ifeq ($(TARGET),stm32u5)
|
|
EMU_DIR=stm32u585
|
|
EMU_CPU=stm32u585
|
|
else ifeq ($(TARGET),stm32l552)
|
|
EMU_DIR=stm32l552
|
|
EMU_CPU=stm32l552
|
|
else ifeq ($(TARGET),stm32l5)
|
|
EMU_DIR=stm32l552
|
|
EMU_CPU=stm32l552
|
|
else ifeq ($(TARGET),nrf5340)
|
|
EMU_DIR=nrf5340
|
|
EMU_CPU=nrf5340
|
|
else ifeq ($(TARGET),mcxw)
|
|
EMU_DIR=mcxw71
|
|
EMU_CPU=mcxw71c
|
|
else ifeq ($(TARGET),mcxw71)
|
|
EMU_DIR=mcxw71
|
|
EMU_CPU=mcxw71c
|
|
else ifeq ($(TARGET),m2354)
|
|
EMU_DIR=m2354
|
|
EMU_CPU=m2354
|
|
else
|
|
EMU_DIR=
|
|
EMU_CPU=
|
|
endif
|
|
|
|
ifeq ($(strip $(EMU_DIR)),)
|
|
$(error Unsupported or unset TARGET=$(TARGET). Use TARGET=stm32h563|stm32h5|stm32u585|stm32u5|stm32l552|stm32l5|nrf5340|mcxw|m2354)
|
|
endif
|
|
|
|
EMU_PATH=$(WOLFBOOT_ROOT)/test-app/emu-test-apps/$(EMU_DIR)
|
|
|
|
.PHONY: all clean test-emu sign-emu run-emu
|
|
|
|
all:
|
|
$(MAKE) -C $(EMU_PATH) clean app.bin
|
|
|
|
sign-emu: all $(WOLFBOOT_ROOT)/wolfboot_signing_private_key.der
|
|
@cp $(EMU_PATH)/app.bin $(EMU_PATH)/image.bin
|
|
$(SIGN_ENV) $(SIGN_TOOL) $(SIGN_OPTIONS) $(EMU_PATH)/image.bin $(PRIVATE_KEY) $(EMU_VERSION)
|
|
|
|
run-emu: sign-emu
|
|
@echo "[EMU] CPU=$(EMU_CPU) VERSION=$(EMU_VERSION)"
|
|
@$(M33MU) --cpu $(EMU_CPU) --uart-stdout --no-tz --boot-offset=$(IMAGE_HEADER_SIZE) \
|
|
$(EMU_PATH)/image_v$(EMU_VERSION)_signed.bin --timeout 2 \
|
|
| tee $(EMU_PATH)/emu_uart.log
|
|
@grep -q "get_version=$(EMU_EXPECT_VERSION)" $(EMU_PATH)/emu_uart.log
|
|
|
|
# Entry point for top-level make test-emu
|
|
# Builds, signs, runs, and validates UART output.
|
|
|
|
test-emu: run-emu
|
|
|
|
clean:
|
|
$(MAKE) -C $(EMU_PATH) clean
|
|
@rm -f $(EMU_PATH)/image.bin $(EMU_PATH)/image_v*_signed.bin $(EMU_PATH)/emu_uart.log
|
|
|
|
$(WOLFBOOT_ROOT)/wolfboot_signing_private_key.der:
|
|
$(MAKE) -C $(WOLFBOOT_ROOT) WOLFBOOT_LIB_WOLFSSL="$(WOLFBOOT_LIB_WOLFSSL)" wolfboot_signing_private_key.der
|