mirror of https://github.com/wolfSSL/wolfBoot.git
Fixed flash driver, added documentation, tested
parent
354df34b6c
commit
f4d1c02730
33
arch.mk
33
arch.mk
|
@ -617,7 +617,13 @@ ifeq ($(TARGET),mcxa)
|
||||||
-I$(MCUXPRESSO)/drivers \
|
-I$(MCUXPRESSO)/drivers \
|
||||||
-I$(MCUXPRESSO)/drivers/common \
|
-I$(MCUXPRESSO)/drivers/common \
|
||||||
-I$(MCUXPRESSO_CMSIS)/Include \
|
-I$(MCUXPRESSO_CMSIS)/Include \
|
||||||
-I$(MCUXPRESSO_CMSIS)/Core/Include
|
-I$(MCUXPRESSO_CMSIS)/Core/Include \
|
||||||
|
-I$(MCUXPRESSO)/drivers/flash \
|
||||||
|
-I$(MCUXPRESSO)/drivers/mcx_spc \
|
||||||
|
-I$(MCUXPRESSO)/drivers/sysmpu \
|
||||||
|
-I$(MCUXPRESSO)/drivers/ltc \
|
||||||
|
-I$(MCUXPRESSO)/drivers/port \
|
||||||
|
-I$(MCUXPRESSO)/drivers/gpio
|
||||||
CFLAGS+=-DCPU_$(MCUXPRESSO_CPU) -DDEBUG_CONSOLE_ASSERT_DISABLE=1
|
CFLAGS+=-DCPU_$(MCUXPRESSO_CPU) -DDEBUG_CONSOLE_ASSERT_DISABLE=1
|
||||||
CFLAGS+=-DWOLFSSL_SP_NO_UMAAL
|
CFLAGS+=-DWOLFSSL_SP_NO_UMAAL
|
||||||
CFLAGS+=-Wno-old-style-declaration
|
CFLAGS+=-Wno-old-style-declaration
|
||||||
|
@ -627,14 +633,6 @@ ifeq ($(TARGET),mcxa)
|
||||||
$(MCUXPRESSO_DRIVERS)/drivers/fsl_clock.o \
|
$(MCUXPRESSO_DRIVERS)/drivers/fsl_clock.o \
|
||||||
$(MCUXPRESSO)/drivers/mcx_spc/fsl_spc.o \
|
$(MCUXPRESSO)/drivers/mcx_spc/fsl_spc.o \
|
||||||
$(MCUXPRESSO_DRIVERS)/project_template/clock_config.o
|
$(MCUXPRESSO_DRIVERS)/project_template/clock_config.o
|
||||||
|
|
||||||
CFLAGS+=\
|
|
||||||
-I$(MCUXPRESSO)/drivers/flash \
|
|
||||||
-I$(MCUXPRESSO)/drivers/mcx_spc \
|
|
||||||
-I$(MCUXPRESSO)/drivers/sysmpu \
|
|
||||||
-I$(MCUXPRESSO)/drivers/ltc \
|
|
||||||
-I$(MCUXPRESSO)/drivers/port \
|
|
||||||
-I$(MCUXPRESSO)/drivers/gpio
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET),mcxw)
|
ifeq ($(TARGET),mcxw)
|
||||||
|
@ -648,7 +646,13 @@ ifeq ($(TARGET),mcxw)
|
||||||
-I$(MCUXPRESSO)/drivers/ccm32k \
|
-I$(MCUXPRESSO)/drivers/ccm32k \
|
||||||
-I$(MCUXPRESSO)/drivers/common \
|
-I$(MCUXPRESSO)/drivers/common \
|
||||||
-I$(MCUXPRESSO_CMSIS)/Include \
|
-I$(MCUXPRESSO_CMSIS)/Include \
|
||||||
-I$(MCUXPRESSO_CMSIS)/Core/Include
|
-I$(MCUXPRESSO_CMSIS)/Core/Include \
|
||||||
|
-I$(MCUXPRESSO)/drivers/flash \
|
||||||
|
-I$(MCUXPRESSO)/drivers/spc \
|
||||||
|
-I$(MCUXPRESSO)/drivers/sysmpu \
|
||||||
|
-I$(MCUXPRESSO)/drivers/ltc \
|
||||||
|
-I$(MCUXPRESSO)/drivers/port \
|
||||||
|
-I$(MCUXPRESSO)/drivers/gpio
|
||||||
CFLAGS+=-DCPU_$(MCUXPRESSO_CPU) -DDEBUG_CONSOLE_ASSERT_DISABLE=1
|
CFLAGS+=-DCPU_$(MCUXPRESSO_CPU) -DDEBUG_CONSOLE_ASSERT_DISABLE=1
|
||||||
CFLAGS+=-DWOLFSSL_SP_NO_UMAAL
|
CFLAGS+=-DWOLFSSL_SP_NO_UMAAL
|
||||||
CFLAGS+=-Wno-old-style-declaration
|
CFLAGS+=-Wno-old-style-declaration
|
||||||
|
@ -660,15 +664,6 @@ ifeq ($(TARGET),mcxw)
|
||||||
$(MCUXPRESSO_DRIVERS)/project_template/clock_config.o \
|
$(MCUXPRESSO_DRIVERS)/project_template/clock_config.o \
|
||||||
$(MCUXPRESSO)/drivers/ccm32k/fsl_ccm32k.o \
|
$(MCUXPRESSO)/drivers/ccm32k/fsl_ccm32k.o \
|
||||||
$(MCUXPRESSO_DRIVERS)/drivers/fsl_romapi.o
|
$(MCUXPRESSO_DRIVERS)/drivers/fsl_romapi.o
|
||||||
|
|
||||||
CFLAGS+=\
|
|
||||||
-I$(MCUXPRESSO)/drivers/flash \
|
|
||||||
-I$(MCUXPRESSO)/drivers/spc \
|
|
||||||
-I$(MCUXPRESSO)/drivers/sysmpu \
|
|
||||||
-I$(MCUXPRESSO)/drivers/ltc \
|
|
||||||
-I$(MCUXPRESSO)/drivers/port \
|
|
||||||
-I$(MCUXPRESSO)/drivers/gpio
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET),imx_rt)
|
ifeq ($(TARGET),imx_rt)
|
||||||
|
|
|
@ -2,9 +2,9 @@ ARCH?=ARM
|
||||||
TARGET?=mcxa
|
TARGET?=mcxa
|
||||||
SIGN?=ECC256
|
SIGN?=ECC256
|
||||||
HASH?=SHA256
|
HASH?=SHA256
|
||||||
MCUXSDK?=0
|
MCUXSDK?=1
|
||||||
MCUXPRESSO?=$(PWD)/../NXP/MCXA153
|
MCUXPRESSO?=$(PWD)/../NXP/mcux-sdk
|
||||||
MCUXPRESSO_CMSIS?=$(MCUXPRESSO)/CMSIS
|
MCUXPRESSO_CMSIS?=$(PWD)/../NXP/CMSIS_5/CMSIS
|
||||||
MCUXPRESSO_CPU?=MCXA153VLH
|
MCUXPRESSO_CPU?=MCXA153VLH
|
||||||
MCUXPRESSO_DRIVERS?=$(MCUXPRESSO)/devices/MCXA153
|
MCUXPRESSO_DRIVERS?=$(MCUXPRESSO)/devices/MCXA153
|
||||||
DEBUG?=0
|
DEBUG?=0
|
||||||
|
|
|
@ -2,9 +2,9 @@ ARCH?=ARM
|
||||||
TARGET?=mcxw
|
TARGET?=mcxw
|
||||||
SIGN?=ECC256
|
SIGN?=ECC256
|
||||||
HASH?=SHA256
|
HASH?=SHA256
|
||||||
MCUXSDK?=0
|
MCUXSDK?=1
|
||||||
MCUXPRESSO?=$(PWD)/../NXP/MCXW71
|
MCUXPRESSO?=$(PWD)/../NXP/mcux-sdk
|
||||||
MCUXPRESSO_CMSIS?=$(MCUXPRESSO)/CMSIS
|
MCUXPRESSO_CMSIS?=$(PWD)/../NXP/CMSIS_5/CMSIS
|
||||||
MCUXPRESSO_CPU?=MCXW716CMFTA
|
MCUXPRESSO_CPU?=MCXW716CMFTA
|
||||||
MCUXPRESSO_DRIVERS?=$(MCUXPRESSO)/devices/MCXW716C
|
MCUXPRESSO_DRIVERS?=$(MCUXPRESSO)/devices/MCXW716C
|
||||||
DEBUG?=0
|
DEBUG?=0
|
||||||
|
@ -15,7 +15,7 @@ NO_MPU=1
|
||||||
EXT_FLASH?=0
|
EXT_FLASH?=0
|
||||||
SPI_FLASH?=0
|
SPI_FLASH?=0
|
||||||
ALLOW_DOWNGRADE?=0
|
ALLOW_DOWNGRADE?=0
|
||||||
NVM_FLASH_WRITEONCE?=0
|
NVM_FLASH_WRITEONCE?=1
|
||||||
NO_ARM_ASM=1
|
NO_ARM_ASM=1
|
||||||
WOLFBOOT_VERSION?=0
|
WOLFBOOT_VERSION?=0
|
||||||
V?=0
|
V?=0
|
||||||
|
|
|
@ -19,6 +19,7 @@ This README describes configuration of supported targets.
|
||||||
* [NXP LPC54xxx](#nxp-lpc54xxx)
|
* [NXP LPC54xxx](#nxp-lpc54xxx)
|
||||||
* [NXP LS1028A](#nxp-ls1028a)
|
* [NXP LS1028A](#nxp-ls1028a)
|
||||||
* [NXP MCXA153](#nxp-mcxa153)
|
* [NXP MCXA153](#nxp-mcxa153)
|
||||||
|
* [NXP MCXW716C](#nxp-mcxw716c)
|
||||||
* [NXP P1021 PPC](#nxp-qoriq-p1021-ppc)
|
* [NXP P1021 PPC](#nxp-qoriq-p1021-ppc)
|
||||||
* [NXP T1024 PPC](#nxp-qoriq-t1024-ppc)
|
* [NXP T1024 PPC](#nxp-qoriq-t1024-ppc)
|
||||||
* [NXP T2080 PPC](#nxp-qoriq-t2080-ppc)
|
* [NXP T2080 PPC](#nxp-qoriq-t2080-ppc)
|
||||||
|
@ -2241,6 +2242,85 @@ mon reset
|
||||||
c
|
c
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## NXP MCXW716
|
||||||
|
|
||||||
|
NXP MCXW716 is a Cortex-M33 microcontroller running at 96MHz.
|
||||||
|
The support has been tested using FRDM-MCXW716 with the onboard MCU-Link configured in JLink mode.
|
||||||
|
|
||||||
|
This requires the MCXW SDK from the NXP MCUXpresso SDK Builder. We tested using [mcux-sdk](https://github.com/nxp-mcuxpresso/mcux-sdk) and [CMSIS_5](https://github.com/nxp-mcuxpresso/CMSIS_5)`
|
||||||
|
placed under "../NXP". Adjust the MCUXPRESSO and MCUXPRESSO_CMSIS variables in your .config file according to your paths.
|
||||||
|
|
||||||
|
### MCX W: Configuring and compiling
|
||||||
|
|
||||||
|
Copy the example configuration file and build with make:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cp config/examples/mcxw.config .config`
|
||||||
|
make
|
||||||
|
```
|
||||||
|
|
||||||
|
### MCX W: Loading the firmware
|
||||||
|
|
||||||
|
The NXP Freedom MCX W board debugger comes loaded with MCU Link, but it can be updated to JLink. See https://docs.nxp.com/bundle/UM12012/page/topics/Updating_MCU_Link_firmware.html
|
||||||
|
|
||||||
|
Use JLinkExe tool to upload the initial firmware: `JLinkExe -if swd -Device MCXW716`
|
||||||
|
|
||||||
|
At the Jlink prompt, type:
|
||||||
|
|
||||||
|
```
|
||||||
|
loadbin factory.bin 0
|
||||||
|
Downloading file [factory.bin]...
|
||||||
|
J-Link: Flash download: Bank 0 @ 0x00000000: Skipped. Contents already match
|
||||||
|
O.K.
|
||||||
|
```
|
||||||
|
|
||||||
|
Reset or power cycle board.
|
||||||
|
|
||||||
|
Once wolfBoot has performed validation of the partition and booted the D15 Green LED on P3_13 will illuminate.
|
||||||
|
|
||||||
|
### MCX W: Testing firmware update
|
||||||
|
|
||||||
|
1) Sign the test-app with version 2:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./tools/keytools/sign --ecc256 test-app/image.bin wolfboot_signing_private_key.der 2
|
||||||
|
```
|
||||||
|
|
||||||
|
2) Create a bin footer with wolfBoot trailer "BOOT" and "p" (ASCII for 0x70 == IMG_STATE_UPDATING):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
echo -n "pBOOT" > trigger_magic.bin
|
||||||
|
```
|
||||||
|
|
||||||
|
3) Assembly new factory update.bin:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./tools/bin-assemble/bin-assemble \
|
||||||
|
update.bin \
|
||||||
|
0x0 test-app/image_v2_signed.bin \
|
||||||
|
0xAFFB trigger_magic.bin
|
||||||
|
```
|
||||||
|
|
||||||
|
4) Flash update.bin to 0x13000 (`loadbin update.bin 0x13000`). The D15 RGB LED Blue P3_0 will show if version is > 1.
|
||||||
|
|
||||||
|
Note: For alternate larger scheme flash `update.bin` to `0x14000` and place trigger_magic.bin at `0x9FFB`.
|
||||||
|
|
||||||
|
### MCX W: Debugging
|
||||||
|
|
||||||
|
Debugging with JLink:
|
||||||
|
|
||||||
|
Note: We include a `.gdbinit` in the wolfBoot root that loads the wolfboot and test-app elf files.
|
||||||
|
|
||||||
|
In one terminal: `JLinkGDBServer -if swd -Device MCXW716 -port 3333`
|
||||||
|
|
||||||
|
In another terminal use `gdb`:
|
||||||
|
|
||||||
|
```
|
||||||
|
b main
|
||||||
|
mon reset
|
||||||
|
c
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## TI Hercules TMS570LC435
|
## TI Hercules TMS570LC435
|
||||||
|
|
||||||
|
|
|
@ -75,9 +75,6 @@ void hal_init(void)
|
||||||
/* Clock setting */
|
/* Clock setting */
|
||||||
BOARD_BootClockRUN();
|
BOARD_BootClockRUN();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Flash driver init */
|
|
||||||
flash_config_t pflash;
|
|
||||||
/* Clear the FLASH configuration structure */
|
/* Clear the FLASH configuration structure */
|
||||||
memset(&pflash, 0, sizeof(pflash));
|
memset(&pflash, 0, sizeof(pflash));
|
||||||
/* FLASH driver init */
|
/* FLASH driver init */
|
||||||
|
|
Loading…
Reference in New Issue