You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Added ELF32 and ELF64 loader support (config `ELF=1` or build option `WOLFBOOT_ELF`).
* Add ELF support to `update_ram.c` loader.
* Add support for loading entire flash image to RAM when `EXT_FLASH=1` and `NO_XIP=1` (or `WOLFBOOT_USE_RAMBOOT`).
* Added QUICC Engine support to load microcode and enable.
* Add multiple core support for NXP P1021.
* Fixes to resolve first stage boot ROM relocation.
- Implemented temporary workaround to resolve stack traps.
* Added PPC GOT relocation support.
* Fix for the PPC `isr_empty` handler address.
* Fix to allow stack to use DDR by having assembly setup DDR TLB. After relocating wolfBoot use stack on DDR.
* Cleanup wolfBoot output.
- Only remove extra .bin/.elf created unless `make distclean` is used.
- Don't output the key grep test (only check result).
- Adjust build order (first stage, wolfboot, test app, key, sign test app and factory).
- Fix to make sure linker script is rebuilt before objects.
Sample NXP P1021 Output:
```
Relocating BOOT ROM to DDR
Loading wolfBoot to DDR
Jumping to full wolfBoot
wolfBoot HAL Init
Flash Init: Ret 0, ID 0x76207620
QE: Length 63732, Count 1
QE: uploading 'Microcode for P1021 r1.0' version 0.0.1
QE: Traps 0
MP: Starting core 2 (spin table 0xFFFFF240)
Versions: Boot 1, Update 0
Trying Boot partition at 0x200000
Loading header 512 bytes to 0x1DFFFE00
Loading image 3170724 bytes to 0x1E000000
Image size 3170724
Firmware Valid
Loading elf at 0x1E000000
Found valid elf32 (big endian)
Booting at 0x6000
```
wolfboot.elf: include/target.h $(OBJS)$(LSCRIPT) FORCE
199
-
$(Q)(test $(SIGN) = NONE) || (grep $(SIGN) src/keystore.c) || (echo "Key mismatch: please run 'make distclean' to remove all keys if you want to change algorithm"&& false)
198
+
wolfboot.elf: include/target.h $(LSCRIPT)$(OBJS)$(BINASSEMBLE) FORCE
199
+
$(Q)(test $(SIGN) = NONE) || (grep -q $(SIGN) src/keystore.c) || (echo "Key mismatch: please run 'make distclean' to remove all keys if you want to change algorithm"&& false)
Copy file name to clipboardExpand all lines: docs/Targets.md
+42-15Lines changed: 42 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,8 +10,8 @@ This README describes configuration of supported targets.
10
10
*[NXP LPC54xxx](#nxp-lpc54xxx)
11
11
*[NXP iMX-RT](#nxp-imx-rt)
12
12
*[NXP Kinetis](#nxp-kinetis)
13
-
*[NXP P1021 PPC](#nxp-p1021-ppc)
14
-
*[NXP T2080 PPC](#nxp-t2080-ppc)
13
+
*[NXP P1021 PPC](#nxp-qoriq-p1021-ppc)
14
+
*[NXP T2080 PPC](#nxp-qoriq-t2080-ppc)
15
15
*[Qemu x86-64 UEFI](#qemu-x86-64-uefi)
16
16
*[SiFive HiFive1 RISC-V](#sifive-hifive1-risc-v)
17
17
*[STM32F4](#stm32f4)
@@ -1113,28 +1113,55 @@ A loader must reside in the 4KB page to handle early startup including DDR and t
1113
1113
1114
1114
A first stage loader is required to load the wolfBoot image into DDR for execution. This is because only 4KB of code space is available on boot. The stage 1 loader must also copy iteslf from the FCM buffer to DDR (or L2SRAM) to allow using of the eLBC to read NAND blocks.
1115
1115
1116
-
### Building wolfBoot for NXP P1021 PPC
1117
-
1118
-
By default wolfBoot will use `powerpc-linux-gnu-` cross-compiler prefix. These tools can be installed with the Debian package `gcc-powerpc-linux-gnu` (`sudo apt install gcc-powerpc-linux-gnu`).
1119
-
1120
-
The `make` creates a `factory_wstage1.bin` image that can be programmed at `0x00000000`
1121
-
1122
-
```
1123
-
cp ./config/examples/nxp-p1021.config .config
1124
-
make keytools
1125
-
make clean && make
1126
-
```
1127
-
1128
1116
#### Flash Layout for NXP P1021 PPC (default)
1129
1117
1130
1118
| File | NAND offset |
1131
1119
| ---------------------------- | ----------- |
1132
1120
| stage1/loader_stage1.bin | 0x00000000 |
1133
-
| wolfboot.bin |0x00004000|
1121
+
| wolfboot.bin |0x00008000|
1134
1122
| test-app/image_v1_signed.bin | 0x00200000 |
1135
1123
| update | 0x01200000 |
1124
+
| fsl_qe_ucode_1021_10_A.bin | 0x01F00000 |
1136
1125
| swap block | 0x02200000 |
1137
1126
1127
+
### Building wolfBoot for NXP P1021 PPC
1128
+
1129
+
By default wolfBoot will use `powerpc-linux-gnu-` cross-compiler prefix. These tools can be installed with the Debian package `gcc-powerpc-linux-gnu` (`sudo apt install gcc-powerpc-linux-gnu`).
1130
+
1131
+
The `make` creates a `factory_wstage1.bin` image that can be programmed at `0x00000000`, that include the first stage loader, wolfBoot and a signed test application.
1132
+
1133
+
To build the first stage load, wolfBoot, sign a custom application and assembly a single factory image use:
1134
+
1135
+
```
1136
+
cp config/examples/nxp-p1021.config .config
1137
+
1138
+
# build the C version of the key tools (instead of using the python ones)
0 commit comments