|
| 1 | +ARCH?=RISCV64 |
| 2 | +TARGET?=mpfs250 |
| 3 | + |
| 4 | +# ECC P384 + SHA384 |
| 5 | +SIGN?=ECC384 |
| 6 | +HASH?=SHA384 |
| 7 | +IMAGE_HEADER_SIZE=512 |
| 8 | + |
| 9 | +WOLFBOOT_VERSION?=1 |
| 10 | +ARMORED?=0 |
| 11 | +DEBUG?=0 |
| 12 | +DEBUG_SYMBOLS?=1 |
| 13 | +DEBUG_UART?=1 |
| 14 | +VTOR?=1 |
| 15 | + |
| 16 | +NO_XIP?=1 |
| 17 | + |
| 18 | +NVM_FLASH_WRITEONCE?=0 |
| 19 | +UART_FLASH?=0 |
| 20 | +V?=0 |
| 21 | +NO_MPU?=1 |
| 22 | +RAM_CODE?=0 |
| 23 | +SPMATH?=1 |
| 24 | +DUALBANK_SWAP?=0 |
| 25 | +PKA?=0 |
| 26 | +ENCRYPT=0 |
| 27 | +WOLFTPM?=0 |
| 28 | +ELF?=1 |
| 29 | +#DEBUG_ELF?=1 |
| 30 | + |
| 31 | +# Use RISC-V assembly version of ECDSA and SHA |
| 32 | +NO_ASM?=0 |
| 33 | + |
| 34 | +# QSPI Flash Configuration |
| 35 | +# Using Micron MT25QL01GBBB (128MB, 64KB sectors) |
| 36 | +EXT_FLASH?=1 |
| 37 | +SPI_FLASH?=0 |
| 38 | + |
| 39 | +# SPI Flash Controller Selection: |
| 40 | +# MPFS_SC_SPI: Use SC QSPI Controller (0x37020100) for fabric-connected flash. |
| 41 | +# Direct register access to System Controller's QSPI instance. |
| 42 | +# DEFAULT: Use MSS QSPI Controller (0x21000000) for external flash |
| 43 | +# on MSS QSPI pins. |
| 44 | +CFLAGS_EXTRA+=-DMPFS_SC_SPI |
| 45 | + |
| 46 | +# L2-LIM mode: wolfBoot loaded by HSS to L2-LIM (no DDR) |
| 47 | +# HSS runs on E51 from eNVM, loads wolfBoot to L2-LIM on U54 (S-mode) |
| 48 | +# wolfBoot loads application from SC ext SPI flash to L2-LIM |
| 49 | +MPFS_L2LIM?=1 |
| 50 | + |
| 51 | +# wolfBoot origin in L2-LIM (above HSS resident region) |
| 52 | +# NOTE: Adjust based on HSS L2-LIM footprint. HSS typically uses ~200-400KB |
| 53 | +# from 0x08000000. Check HSS linker map for actual end address. |
| 54 | +WOLFBOOT_ORIGIN?=0x08040000 |
| 55 | + |
| 56 | +# Application loaded from QSPI to L2-LIM (above wolfBoot, 128KB offset) |
| 57 | +WOLFBOOT_LOAD_ADDRESS?=0x08060000 |
| 58 | + |
| 59 | +# Stack at top of 1.5MB L2-LIM (grows downward) |
| 60 | +WOLFBOOT_STACK_TOP?=0x08180000 |
| 61 | + |
| 62 | +# L2-LIM size available for wolfBoot (STACK_TOP - ORIGIN) |
| 63 | +WOLFBOOT_L2LIM_SIZE?=0x140000 |
| 64 | + |
| 65 | +# Flash geometry (64 KB sector) |
| 66 | +WOLFBOOT_SECTOR_SIZE?=0x10000 |
| 67 | + |
| 68 | +# Partition layout for 128MB QSPI flash |
| 69 | +# Boot partition: 0x00020000 - 0x01FFFFFF (~32MB) |
| 70 | +# Update partition: 0x02000000 - 0x03FFFFFF (~32MB) |
| 71 | +# Swap partition: 0x04000000 - 0x0400FFFF (64KB) |
| 72 | +# Remaining: 0x04010000 - 0x07FFFFFF (~64MB available) |
| 73 | +WOLFBOOT_PARTITION_SIZE?=0x1FE0000 |
| 74 | +WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x20000 |
| 75 | +WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x2000000 |
| 76 | +WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x4000000 |
| 77 | + |
| 78 | +# Speed up reads from flash by using larger blocks |
| 79 | +CFLAGS_EXTRA+=-DWOLFBOOT_SHA_BLOCK_SIZE=4096 |
| 80 | + |
| 81 | +# Optional Encryption |
| 82 | +#CUSTOM_ENCRYPT_KEY=1 |
| 83 | +#ENCRYPT=1 |
| 84 | +#ENCRYPT_WITH_AES256=1 |
| 85 | +#OBJS_EXTRA=src/my_custom_encrypt_key.o |
| 86 | + |
| 87 | +# Optional QSPI debugging |
| 88 | +# Uncomment for verbose QSPI debug output |
| 89 | +#CFLAGS_EXTRA+=-DDEBUG_QSPI |
| 90 | + |
| 91 | +# Optional QSPI flash test (erase/write/read on update partition) |
| 92 | +# Uncomment to run test during hal_init() |
| 93 | +#CFLAGS_EXTRA+=-DTEST_EXT_FLASH |
0 commit comments