|
| 1 | +-include ../../.config |
| 2 | +include ../../tools/config.mk |
| 3 | +include ../../options.mk |
| 4 | +include ../../tools/test.mk |
| 5 | + |
| 6 | +ifneq ($(wildcard $(WOLFBOOT_ROOT)/lib/wolfssl/wolfcrypt/src/asn.c),) |
| 7 | + WOLFBOOT_LIB_WOLFSSL:=$(WOLFBOOT_ROOT)/lib/wolfssl |
| 8 | +else ifneq ($(wildcard $(WOLFBOOT_ROOT)/../wolfssl/wolfcrypt/src/asn.c),) |
| 9 | + WOLFBOOT_LIB_WOLFSSL:=$(WOLFBOOT_ROOT)/../wolfssl |
| 10 | +endif |
| 11 | +export WOLFBOOT_LIB_WOLFSSL |
| 12 | + |
| 13 | +WOLFBOOT_ROOT?=$(abspath ../..) |
| 14 | + |
| 15 | +EMU_VERSION?=1 |
| 16 | +EMU_EXPECT_VERSION?=$(EMU_VERSION) |
| 17 | +PRIVATE_KEY?=$(WOLFBOOT_ROOT)/wolfboot_signing_private_key.der |
| 18 | + |
| 19 | +M33MU?=$(WOLFBOOT_ROOT)/../m33mu/build/m33mu |
| 20 | + |
| 21 | +ifeq ($(TARGET),stm32h563) |
| 22 | + EMU_DIR=stm32h563 |
| 23 | + EMU_CPU=stm32h563 |
| 24 | +else ifeq ($(TARGET),stm32h5) |
| 25 | + EMU_DIR=stm32h563 |
| 26 | + EMU_CPU=stm32h563 |
| 27 | +else ifeq ($(TARGET),stm32u585) |
| 28 | + EMU_DIR=stm32u585 |
| 29 | + EMU_CPU=stm32u585 |
| 30 | +else ifeq ($(TARGET),stm32u5) |
| 31 | + EMU_DIR=stm32u585 |
| 32 | + EMU_CPU=stm32u585 |
| 33 | +else ifeq ($(TARGET),stm32l552) |
| 34 | + EMU_DIR=stm32l552 |
| 35 | + EMU_CPU=stm32l552 |
| 36 | +else ifeq ($(TARGET),stm32l5) |
| 37 | + EMU_DIR=stm32l552 |
| 38 | + EMU_CPU=stm32l552 |
| 39 | +else ifeq ($(TARGET),nrf5340) |
| 40 | + EMU_DIR=nrf5340 |
| 41 | + EMU_CPU=nrf5340 |
| 42 | +else ifeq ($(TARGET),mcxw) |
| 43 | + EMU_DIR=mcxw71 |
| 44 | + EMU_CPU=mcxw71c |
| 45 | +else ifeq ($(TARGET),mcxw71) |
| 46 | + EMU_DIR=mcxw71 |
| 47 | + EMU_CPU=mcxw71c |
| 48 | +else |
| 49 | + EMU_DIR= |
| 50 | + EMU_CPU= |
| 51 | +endif |
| 52 | + |
| 53 | +ifeq ($(strip $(EMU_DIR)),) |
| 54 | + $(error Unsupported or unset TARGET=$(TARGET). Use TARGET=stm32h563|stm32h5|stm32u585|stm32u5|stm32l552|stm32l5|nrf5340|mcxw) |
| 55 | +endif |
| 56 | + |
| 57 | +EMU_PATH=$(WOLFBOOT_ROOT)/test-app/emu-test-apps/$(EMU_DIR) |
| 58 | + |
| 59 | +.PHONY: all clean test-emu sign-emu run-emu |
| 60 | + |
| 61 | +all: |
| 62 | + $(MAKE) -C $(EMU_PATH) clean app.bin |
| 63 | + |
| 64 | +sign-emu: all $(WOLFBOOT_ROOT)/wolfboot_signing_private_key.der |
| 65 | + @cp $(EMU_PATH)/app.bin $(EMU_PATH)/image.bin |
| 66 | + $(SIGN_ENV) $(SIGN_TOOL) $(SIGN_OPTIONS) $(EMU_PATH)/image.bin $(PRIVATE_KEY) $(EMU_VERSION) |
| 67 | + |
| 68 | +run-emu: sign-emu |
| 69 | + @echo "[EMU] CPU=$(EMU_CPU) VERSION=$(EMU_VERSION)" |
| 70 | + @$(M33MU) --cpu $(EMU_CPU) --uart-stdout --no-tz --boot-offset=$(IMAGE_HEADER_SIZE) \ |
| 71 | + $(EMU_PATH)/image_v$(EMU_VERSION)_signed.bin --timeout 2 \ |
| 72 | + | tee $(EMU_PATH)/emu_uart.log |
| 73 | + @grep -q "get_version=$(EMU_EXPECT_VERSION)" $(EMU_PATH)/emu_uart.log |
| 74 | + |
| 75 | +# Entry point for top-level make test-emu |
| 76 | +# Builds, signs, runs, and validates UART output. |
| 77 | + |
| 78 | +test-emu: run-emu |
| 79 | + |
| 80 | +clean: |
| 81 | + $(MAKE) -C $(EMU_PATH) clean |
| 82 | + @rm -f $(EMU_PATH)/image.bin $(EMU_PATH)/image_v*_signed.bin $(EMU_PATH)/emu_uart.log |
| 83 | + |
| 84 | +$(WOLFBOOT_ROOT)/wolfboot_signing_private_key.der: |
| 85 | + $(MAKE) -C $(WOLFBOOT_ROOT) WOLFBOOT_LIB_WOLFSSL="$(WOLFBOOT_LIB_WOLFSSL)" wolfboot_signing_private_key.der |
0 commit comments