1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-06-07 15:10:09 +00:00

arm-bsp/corstone1000: use compressed kernel image

To fit the kernel image into the allotted space, a compressed kernel
image is now needed.  Use the Image.gz from the kernel build process
and change the relevant places to use the new image name.  This also
necessitates adding an unzip command to u-boot to uncompress it to
memory (and the loadm is still needed to setup the efi mem boot device).
Also, the unzipped image is larger than before.  So, increase the size
that loadm is copying.

This change shrinks the kernel image size from 7.8MB to 3.2MB

Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Jon Mason
2022-08-24 14:09:37 -04:00
parent e16378f492
commit 8854f98d3c
4 changed files with 35 additions and 2 deletions
@@ -46,7 +46,7 @@ EXTRA_IMAGEDEPENDS += "secure-partitions"
# Linux kernel
PREFERRED_PROVIDER_virtual/kernel:forcevariable = "linux-yocto"
PREFERRED_VERSION_linux-yocto = "5.15%"
KERNEL_IMAGETYPE = "Image"
KERNEL_IMAGETYPE = "Image.gz"
INITRAMFS_IMAGE_BUNDLE ?= "1"
@@ -0,0 +1,32 @@
From df70c467c5d100f1522b4521f48da4c51e43688c Mon Sep 17 00:00:00 2001
From: Jon Mason <jon.mason@arm.com>
Date: Thu, 25 Aug 2022 13:48:22 +0000
Subject: [PATCH 25/25] corstone1000: use a compressed kernel
The corstone1000 kernel has become too large to fit in the available
storage. Swtiching to a compressed kernel avoids the problem, but
requires uncompressing it. Add this decompression to the default boot
instructions.
Signed-off-by: Jon Mason <jon.mason@arm.com>
---
include/configs/corstone1000.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/configs/corstone1000.h b/include/configs/corstone1000.h
index d9855bf91e..d0cbc40121 100644
--- a/include/configs/corstone1000.h
+++ b/include/configs/corstone1000.h
@@ -126,7 +126,8 @@
#define CONFIG_BOOTCOMMAND \
"run retrieve_kernel_load_addr;" \
"echo Loading kernel from $kernel_addr to memory ... ;" \
- "loadm $kernel_addr $kernel_addr_r 0xc00000;" \
+ "unzip $kernel_addr 0x90000000;" \
+ "loadm 0x90000000 $kernel_addr_r 0xd00000;" \
"usb start; usb reset;" \
"run distro_bootcmd;" \
"bootefi $kernel_addr_r $fdtcontroladdr;"
--
2.30.2
@@ -42,6 +42,7 @@ SRC_URI:append:corstone1000 = " \
file://0022-efi_loader-send-bootcomplete-message-to-secure-encla.patch \
file://0023-efi_loader-fix-null-pointer-exception-with-get_image.patch \
file://0024-arm-corstone1000-add-mmc-for-fvp.patch \
file://0025-corstone1000-use-a-compressed-kernel.patch \
"
#
@@ -12,4 +12,4 @@ part --source rawcopy --sourceparams="file=tfm_s_signed.bin" --align 1 --no-tabl
part --source rawcopy --sourceparams="file=signed_fip-corstone1000.bin" --align 1 --no-table --fixed-size 2
# Rawcopy of kernel with initramfs
part --source rawcopy --sourceparams="file=Image-initramfs-${MACHINE}.bin" --no-table --fixed-size 12
part --source rawcopy --sourceparams="file=Image.gz-initramfs-${MACHINE}.bin" --no-table --fixed-size 12