@@ -3428,12 +3428,20 @@ Application running successfully!
34283428Entering idle loop...
34293429```
34303430
3431- ** Booting PetaLinux **
3431+ ** Booting Linux via FIT image **
34323432
3433- ZynqMP can chain into a PetaLinux kernel using the same FIT mechanism as
3434- the Versal target. wolfBoot's FIT-using configs (` zynqmp.config ` and
3435- ` zynqmp_sdcard.config ` ) default to ` GZIP=1 ` , which lets you point the
3436- FIT at a gzipped kernel (` Image.gz ` ) directly:
3433+ wolfBoot is a drop-in replacement for U-Boot's FIT image loader: it parses
3434+ the same ` mkimage ` -produced multi-component FIT (kernel + DTB + optional
3435+ ramdisk), honors per-subimage ` load ` /` entry ` /` compression ` properties, and
3436+ hands off to the kernel the same way - with the added value of
3437+ authenticating the entire FIT against a wolfBoot signature before any
3438+ subimage is touched.
3439+
3440+ ZynqMP can chain into a Linux kernel (PetaLinux, Yocto, or any other
3441+ producer) using the same FIT mechanism as the Versal target. wolfBoot's
3442+ FIT-using configs (` zynqmp.config ` and ` zynqmp_sdcard.config ` ) default to
3443+ ` GZIP=1 ` , which lets you point the FIT at a gzipped kernel (` Image.gz ` )
3444+ directly:
34373445
34383446``` dts
34393447images {
@@ -3449,9 +3457,10 @@ images {
34493457
34503458` mkimage -f your-zynqmp.its fitImage ` then produces a single signed FIT
34513459that wolfBoot decompresses straight to the kernel load address at boot.
3452- See the [ Versal "Booting PetaLinux"] ( #versal-gen-1-vmk180 ) section for a
3453- full walkthrough - the flow is identical apart from the load addresses
3454- and the ` bl31 ` /` fsbl ` versus ` bl31 ` /` plm ` boot chain. Set ` GZIP=0 ` in
3460+ See the [ Versal "Booting Linux via FIT image"] ( #versal-gen-1-vmk180 )
3461+ section for a full walkthrough - the flow is identical apart from the
3462+ load addresses and the ` bl31 ` /` fsbl ` versus ` bl31 ` /` plm ` boot chain. Set
3463+ ` GZIP=0 ` in
34553464` .config ` if you want to keep using an uncompressed ` Image ` plus
34563465` compression = "none" ` .
34573466
@@ -3468,18 +3477,18 @@ When PetaLinux is built with `INITRAMFS_IMAGE_BUNDLE = "0"` the rootfs cpio
34683477ships as a separate ` ramdisk ` node in the FIT alongside the kernel and DTB.
34693478wolfBoot can extract it, copy it to a configurable RAM address, and patch the
34703479loaded DTB with ` /chosen/linux,initrd-{start,end} ` so the kernel finds it.
3471- Enable this with ` RAMDISK =1` :
3480+ Enable this with ` FIT_RAMDISK =1` :
34723481
34733482``` sh
34743483cp config/examples/zynqmp_sdcard.config .config
3475- # Uncomment the RAMDISK / WOLFBOOT_LOAD_RAMDISK_ADDRESS / LINUX_BOOTARGS
3484+ # Uncomment the FIT_RAMDISK / WOLFBOOT_LOAD_RAMDISK_ADDRESS / LINUX_BOOTARGS
34763485# block under "Optional: FIT-bundled initramfs" and comment out the
34773486# LINUX_BOOTARGS_ROOT line above it.
34783487make
34793488```
34803489
34813490Key options (in ` config/examples/zynqmp_sdcard.config ` ):
3482- - ` RAMDISK =1` - enables FIT ramdisk extraction (` -DWOLFBOOT_FIT_RAMDISK ` ).
3491+ - ` FIT_RAMDISK =1` - enables FIT ramdisk extraction (` -DWOLFBOOT_FIT_RAMDISK ` ).
34833492- ` WOLFBOOT_LOAD_RAMDISK_ADDRESS=0x40000000 ` - destination address. Pick a
34843493 region clear of the kernel image (` ~0x80000 ` + tens of MB) and clear of
34853494 FIT staging (` WOLFBOOT_LOAD_ADDRESS=0x10000000 ` + FIT size). The default
@@ -3679,7 +3688,7 @@ Application running successfully!
36793688Entering idle loop...
36803689```
36813690
3682- ** Booting PetaLinux (QSPI)**
3691+ ** Booting Linux via FIT image (QSPI)**
36833692
36843693wolfBoot can boot a signed Linux kernel on the Versal VMK180, replacing U-Boot entirely for a secure boot chain.
36853694
0 commit comments