|
| 1 | +ARCH?=RISCV64 |
| 2 | +TARGET?=mpfs250 |
| 3 | + |
| 4 | +# ECC P384 + SHA384 |
| 5 | +SIGN?=ECC384 |
| 6 | +HASH?=SHA384 |
| 7 | +IMAGE_HEADER_SIZE=512 |
| 8 | + |
| 9 | +# ML-DSA 87 + SHA256 |
| 10 | +#SIGN=ML_DSA |
| 11 | +#HASH=SHA256 |
| 12 | +#ML_DSA_LEVEL=5 |
| 13 | +#IMAGE_SIGNATURE_SIZE=4627 |
| 14 | +#IMAGE_HEADER_SIZE=12288 |
| 15 | + |
| 16 | +WOLFBOOT_VERSION?=1 |
| 17 | +ARMORED?=0 |
| 18 | +DEBUG?=0 |
| 19 | +DEBUG_SYMBOLS?=1 |
| 20 | +DEBUG_UART?=1 |
| 21 | +VTOR?=1 |
| 22 | + |
| 23 | +NO_XIP?=1 |
| 24 | + |
| 25 | +NVM_FLASH_WRITEONCE?=0 |
| 26 | +UART_FLASH?=0 |
| 27 | +V?=0 |
| 28 | +NO_MPU?=1 |
| 29 | +RAM_CODE?=0 |
| 30 | +SPMATH?=1 |
| 31 | +DUALBANK_SWAP?=0 |
| 32 | +PKA?=0 |
| 33 | +ENCRYPT=0 |
| 34 | +WOLFTPM?=0 |
| 35 | +ELF?=1 |
| 36 | +#DEBUG_ELF?=1 |
| 37 | + |
| 38 | +# Use RISC-V assembly version of ECDSA and SHA |
| 39 | +NO_ASM?=0 |
| 40 | + |
| 41 | +# QSPI Flash Configuration |
| 42 | +# Using Micron MT25QL01GBBB (128MB, 64KB sectors) |
| 43 | +EXT_FLASH?=1 |
| 44 | +SPI_FLASH?=0 |
| 45 | + |
| 46 | +# SPI Flash Controller Selection: |
| 47 | +# MPFS_SC_SPI: Use SC QSPI Controller (0x37020100) for fabric-connected flash. |
| 48 | +# Direct register access to System Controller's QSPI instance. |
| 49 | +# DEFAULT: Use MSS QSPI Controller (0x21000000) for external flash |
| 50 | +# on MSS QSPI pins. |
| 51 | +CFLAGS_EXTRA+=-DMPFS_SC_SPI |
| 52 | + |
| 53 | + |
| 54 | +# Enable SD card temporarily (wolfBoot still loads from SD, apps from QSPI) |
| 55 | +# For pure QSPI boot, HSS would need to load wolfBoot from QSPI |
| 56 | +DISK_SDCARD?=0 |
| 57 | +DISK_EMMC?=0 |
| 58 | + |
| 59 | +# DDR Address for wolfBoot to start from |
| 60 | +# Comes from hal/mpfs.yaml |
| 61 | +WOLFBOOT_ORIGIN?=0x80000000 |
| 62 | + |
| 63 | +# DDR Address where application image will be loaded from flash |
| 64 | +# Used by update_ram.c for non-XIP boot |
| 65 | +# Must be well above wolfBoot's memory region |
| 66 | +WOLFBOOT_LOAD_ADDRESS?=0x8E000000 |
| 67 | + |
| 68 | +# Flash geometry (64 KB sector) |
| 69 | +WOLFBOOT_SECTOR_SIZE?=0x10000 |
| 70 | + |
| 71 | +# Partition layout for 128MB QSPI flash |
| 72 | +# HSS Boot Info: 0x00000000 - 0x00000400 (1KB) |
| 73 | +# wolfBoot partition: 0x00000400 - 0x0001FFFF (127KB) |
| 74 | +# Boot partition: 0x00020000 - 0x01FFFFFF (~32MB) |
| 75 | +# Update partition: 0x02000000 - 0x03FFFFFF (32MB) |
| 76 | +# Swap partition: 0x04000000 - 0x0400FFFF (64KB) |
| 77 | +# Remaining: 0x04010000 - 0x07FFFFFF (~64MB available) |
| 78 | +WOLFBOOT_PARTITION_SIZE?=0x1FE0000 |
| 79 | +WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x20000 |
| 80 | +WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x2000000 |
| 81 | +WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x4000000 |
| 82 | + |
| 83 | +# DTS (Device Tree) |
| 84 | +WOLFBOOT_LOAD_DTS_ADDRESS?=0x8A000000 |
| 85 | +WOLFBOOT_DTS_BOOT_ADDRESS?=0x6000000 # DTS at 96MB (after swap) |
| 86 | +WOLFBOOT_DTS_UPDATE_ADDRESS?=0x6010000 # DTS update at 96MB + 64KB |
| 87 | + |
| 88 | +# Speed up reads from flash by using larger blocks |
| 89 | +CFLAGS_EXTRA+=-DWOLFBOOT_SHA_BLOCK_SIZE=4096 |
| 90 | + |
| 91 | +# Optional Encryption |
| 92 | +#CUSTOM_ENCRYPT_KEY=1 |
| 93 | +#ENCRYPT=1 |
| 94 | +#ENCRYPT_WITH_AES256=1 |
| 95 | +#OBJS_EXTRA=src/my_custom_encrypt_key.o |
| 96 | + |
| 97 | +# Optional QSPI debugging |
| 98 | +# Uncomment for verbose QSPI debug output |
| 99 | +#CFLAGS_EXTRA+=-DDEBUG_QSPI |
| 100 | + |
| 101 | +# Optional QSPI flash test (erase/write/read on update partition) |
| 102 | +# Uncomment to run test during hal_init() |
| 103 | +#CFLAGS_EXTRA+=-DTEST_EXT_FLASH |
0 commit comments