mirror of https://github.com/wolfSSL/wolfBoot.git
Added list of targets to top of docs/Targets.md.
parent
75a7e57279
commit
252b3bcab9
|
@ -6,7 +6,6 @@ MCUXPRESSO?=$(HOME)/src/FRDM-K82F
|
|||
MCUXPRESSO_CPU?=MK82FN256VLL15
|
||||
MCUXPRESSO_DRIVERS?=$(MCUXPRESSO)/devices/MK82F25615
|
||||
MCUXPRESSO_CMSIS?=$(HOME)/src/FRDM-K64F/CMSIS
|
||||
FREEDOM_E_SDK?=$(HOME)/src/freedom-e-sdk
|
||||
DEBUG?=0
|
||||
VTOR?=1
|
||||
CORTEX_M0?=0
|
||||
|
|
|
@ -6,7 +6,6 @@ MCUXPRESSO?=/home/dan/src/FRDM-K64F
|
|||
MCUXPRESSO_CPU?=MK64FN1M0VLL12
|
||||
MCUXPRESSO_DRIVERS?=/home/dan/src/FRDM-K64F/devices/MK64F12
|
||||
MCUXPRESSO_CMSIS?=/home/dan/src/FRDM-K64F/CMSIS
|
||||
FREEDOM_E_SDK?=/home/dan/src/freedom-e-sdk
|
||||
STM32CUBE?=/home/dan/STM32Cube/Repository/STM32Cube_FW_WB_V1.3.0
|
||||
DEBUG?=1
|
||||
VTOR?=1
|
||||
|
|
|
@ -2,7 +2,25 @@
|
|||
|
||||
This README describes configuration of supported targets.
|
||||
|
||||
## STM32F407
|
||||
## Supported Targets
|
||||
|
||||
* [Cortex-A53 / Raspberry PI 3](#cortex-a53--raspberry-pi-3-experimental)
|
||||
* [Cypress PSoC-6](#cypress-psoc-6)
|
||||
* [NXP LPC54xxx](#nxp-lpc54xxx)
|
||||
* [NXP iMX-RT](#nxp-imx-rt)
|
||||
* [NXP Kinetis](#nxp-kinetis)
|
||||
* [SiFive HiFive1 RISC-V](#sifive-hifive1-risc-v)
|
||||
* [STM32F4](#stm32f4)
|
||||
* [STM32F7](#stm32f7)
|
||||
* [STM32G0](#stm32g0)
|
||||
* [STM32H7](#stm32h7)
|
||||
* [STM32L5](#stm32l5)
|
||||
* [STM32L0](#stm32l0)
|
||||
* [STM32WB55](#stm32wb55)
|
||||
* [Xilinx Zynq UltraScale](#xilinx-zynq-ultrascale)
|
||||
|
||||
|
||||
## STM32F4
|
||||
|
||||
Example 512KB partitioning on STM32-F407
|
||||
|
||||
|
@ -61,6 +79,7 @@ b main
|
|||
c
|
||||
```
|
||||
|
||||
|
||||
## STM32L5
|
||||
|
||||
### Scenario 1: TrustZone Enabled
|
||||
|
@ -117,7 +136,7 @@ Bank 0 contains the bootloader at address 0x08000000, and the application at add
|
|||
When a valid image is available at the same offset in Bank 1, a candidate is selected for booting between the two valid images.
|
||||
A firmware update can be uploaded at address 0x08048000.
|
||||
|
||||
The example configuration is available in `config/examples/stm32l5-nonsecure-dualbank.config`.
|
||||
The example configuration is available in [/config/examples/stm32l5-nonsecure-dualbank.config](/config/examples/stm32l5-nonsecure-dualbank.config).
|
||||
|
||||
|
||||
### Debugging
|
||||
|
@ -139,7 +158,7 @@ mon reset init
|
|||
```
|
||||
|
||||
|
||||
## STM32L0x3
|
||||
## STM32L0
|
||||
|
||||
Example 192KB partitioning on STM32-L073
|
||||
|
||||
|
@ -159,11 +178,14 @@ partitions of 64KB each, leaving room for up to 8KB to use for swap (4K are bein
|
|||
#define WOLFBOOT_PARTITION_SWAP_ADDRESS 0x28000
|
||||
```
|
||||
|
||||
### Building
|
||||
### STM32L0 Building
|
||||
|
||||
Use `make TARGET=stm32l0`. The option `CORTEX_M0` is automatically selected for this target.
|
||||
|
||||
## STM32G0x0/STM32G0x1
|
||||
|
||||
## STM32G0
|
||||
|
||||
Supports STM32G0x0x0/STM32G0x1.
|
||||
|
||||
Example 128KB partitioning on STM32-G070:
|
||||
|
||||
|
@ -181,7 +203,7 @@ Example 128KB partitioning on STM32-G070:
|
|||
|
||||
### Building STM32G0
|
||||
|
||||
Reference configuration (see `./config/examples/stm32g0.config`).
|
||||
Reference configuration (see [/config/examples/stm32g0.config](/config/examples/stm32g0.config)).
|
||||
You can copy this to wolfBoot root as `.config`: `cp ./config/examples/stm32g0.config .config`.
|
||||
To build you can use `make`.
|
||||
|
||||
|
@ -302,6 +324,8 @@ Start Address: 0x20010000
|
|||
|
||||
The default wolfBoot configuration will add a second stage bootloader, leaving the stock "double tap" bootloader as a fallback for recovery. Your production implementation should replace this and partition addresses in `target.h` will need updated, so they are `0x10000` less.
|
||||
|
||||
To set the Freedom SDK location use `FREEDOM_E_SDK=~/src/freedom-e-sdk`.
|
||||
|
||||
For testing wolfBoot here are the changes required:
|
||||
|
||||
1. Makefile arguments:
|
||||
|
@ -366,7 +390,7 @@ add-symbol-file test-app/image.elf 0x20020100
|
|||
```
|
||||
|
||||
|
||||
## STM32-F769
|
||||
## STM32F7
|
||||
|
||||
The STM32-F76x and F77x offer dual-bank hardware-assisted swapping.
|
||||
The flash geometry must be defined beforehand, and wolfBoot can be compiled to use hardware
|
||||
|
@ -406,7 +430,6 @@ Dual-bank STM32F7 build can be built using:
|
|||
make TARGET=stm32f7 DUALBANK_SWAP=1 RAM_CODE=1
|
||||
```
|
||||
|
||||
|
||||
### Loading the firmware
|
||||
|
||||
To switch between single-bank (1x2MB) and dual-bank (2 x 1MB) mode mapping, this [stm32f7-dualbank-tool](https://github.com/danielinux/stm32f7-dualbank-tool)
|
||||
|
@ -462,8 +485,7 @@ booting.
|
|||
The bank-swap operation is immediate and a SWAP image is not required in this case. Fallback mechanism can rely on
|
||||
a second choice (older firmware) in the other bank.
|
||||
|
||||
|
||||
### Debugging
|
||||
### STM32F7 Debugging
|
||||
|
||||
Debugging with OpenOCD:
|
||||
|
||||
|
@ -553,7 +575,7 @@ Upon reboot, wolfboot will elect the best candidate (version 2 in this case) and
|
|||
If the accepted candidate image resides on BANK B (like in this case), wolfBoot will perform one bank swap before
|
||||
booting.
|
||||
|
||||
### Debugging
|
||||
### STM32H7 Debugging
|
||||
|
||||
Debugging with OpenOCD:
|
||||
|
||||
|
@ -570,7 +592,7 @@ arm-none-eabi-gdb wolfboot.elf -ex "set remotetimeout 240" -ex "target extended-
|
|||
```
|
||||
|
||||
|
||||
## LPC54606
|
||||
## NXP LPC54xxx
|
||||
|
||||
### Build Options
|
||||
|
||||
|
@ -665,7 +687,10 @@ dd if=bcm2710-rpi-3-b.dtb of=wolfboot_linux_raspi.bin bs=1 seek=128K conv=notrun
|
|||
qemu-system-aarch64 -M raspi3 -m 512 -serial stdio -kernel wolfboot_linux_raspi.bin -append "terminal=ttyS0 rootwait" -dtb ./bcm2710-rpi-3-b.dtb -cpu cortex-a53
|
||||
```
|
||||
|
||||
## Xilinx Zynq UltraScale+ (Aarch64)
|
||||
|
||||
## Xilinx Zynq UltraScale
|
||||
|
||||
Xilinx UltraScale+ ZCU102 (Aarch64)
|
||||
|
||||
Build configuration options (`.config`):
|
||||
|
||||
|
@ -695,7 +720,8 @@ make CROSS_COMPILE=aarch64-unknown-nto-qnx7.0.0-
|
|||
|
||||
`tools/keytools/sign.py --rsa4096 --sha3 /srv/linux-rpi4/vmlinux.bin rsa4096.der 1`
|
||||
|
||||
## Cypress PSoC-62S2 (CY8CKIT-062S2)
|
||||
|
||||
## Cypress PSoC-6
|
||||
|
||||
The Cypress PSoC 62S2 is a dual-core Cortex-M4 & Cortex-M0+ MCU. The secure boot process is managed by the M0+.
|
||||
WolfBoot can be compiled as second stage flash bootloader to manage application verification and firmware updates.
|
||||
|
@ -733,7 +759,7 @@ make TARGET=psoc6 \
|
|||
WOLFBOOT_SECTOR_SIZE=4096
|
||||
```
|
||||
|
||||
Note: A reference `.config` can be found in `./config/examples/cypsoc6.config`.
|
||||
Note: A reference `.config` can be found in [/config/examples/cypsoc6.config](/config/examples/cypsoc6.config).
|
||||
|
||||
Hardware acceleration is enable by default using psoc6 crypto hw support.
|
||||
|
||||
|
@ -794,10 +820,13 @@ the monitor command sequence below:
|
|||
(gdb) mon psoc6 reset_halt
|
||||
```
|
||||
|
||||
## NXP iMX-RT1060/1062 (RT1060-EVK)
|
||||
|
||||
## NXP iMX-RT
|
||||
|
||||
NXP RT1060/1062 (RT1060-EVK)
|
||||
|
||||
The NXP iMX-RT1060 is a Cortex-M7 with a DCP coprocessor for SHA256 acceleration.
|
||||
Example configuration for this target is provided in `./config/examples/imx-rt1060.config`.
|
||||
Example configuration for this target is provided in [/config/examples/imx-rt1060.config](/config/examples/imx-rt1060.config).
|
||||
|
||||
### Building wolfBoot
|
||||
|
||||
|
@ -812,4 +841,24 @@ DCP support (hardware acceleration for SHA256 operations) can be enabled by usin
|
|||
Firmware can be directly uploaded to the target by copying `factory.bin` to the virtual USB drive associated to the device (RT1060-EVK).
|
||||
|
||||
|
||||
## NXP Kinetis
|
||||
|
||||
Supports K64 and K82 with crypto hardware acceleration.
|
||||
|
||||
### Buld options
|
||||
|
||||
See [/config/examples/kinetis-k82f.config](/config/examples/kinetis-k82f.config) for example configuration.
|
||||
|
||||
The TARGET is `kinetis`. For LTC PKA support set `PKA=`.
|
||||
|
||||
Set `MCUXPRESSO`, `MCUXPRESSO_CPU`, `MCUXPRESSO_DRIVERS` and `MCUXPRESSO_CMSIS` for MCUXpresso configuration.
|
||||
|
||||
### Example partioning for K82
|
||||
|
||||
```
|
||||
WOLFBOOT_PARTITION_SIZE?=0x7A000
|
||||
WOLFBOOT_SECTOR_SIZE?=0x1000
|
||||
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0xA000
|
||||
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x84000
|
||||
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0xff000
|
||||
```
|
||||
|
|
Loading…
Reference in New Issue