[U-Boot] Help needed: Boot signed RTOS
Simon Glass
sjg at chromium.org
Wed Nov 20 19:45:40 CET 2013
Hi Christopher,
On Wed, Nov 20, 2013 at 10:49 AM, Christopher Preschern <
christopher.preschern at tugraz.at> wrote:
> Hi,
>
> I try to boot a signed RTOS as FIT Image with the bootm command and I'm
> kind of stuck here - any help well appreciated. When booting, U-Boot shows
> the following error message:
> “No Linux ARM Kernel Image Image
> ERROR: can't get kernel image!”
>
> My questions:
> - Is it possible to boot a signed RTOS with U-Boot?
> - Is there something I do wrong (I'm rather new to U-Boot)?
>
>
> I use the following setup:
> - U-Boot 2013.07
> - i.MX28 board
> - safeRTOS which I can boot with the bootelf command
>
> The following mkimage command (which does not yet create a signature)
> works and produces a with bootm bootable "u-rtos" file:
> mkimage -A arm -C none -O qnx -T kernel_noload -d safeRTOS u-rtos
>
> I tried to re-build the above parameters in my .its File (which I need to
> use the signing features of mkimage):
>
> /dts-v1/;
> / {
> description = "MY-RTOS";
> #address-cells = <1>;
> images {
> kernel at 1 {
> description = "MY-RTOS";
> data = /incbin/("./my-rtos-image");
> type = "kernel_noload";
> arch = "arm";
> os = "qnx";
> compression = "none";
> signature at 1 {
> algo = "sha1,rsa2048";
> key-name-hint = "dev";
> };
> };
> };
> configurations {
> default = "conf at 1";
> conf at 1 {
> kernel = "kernel at 1";
> hash at 1 {
> algo = "sha1";
> };
> };
> };
> };
>
> I run the following command to get my FIT-file:
> mkimage -f rtos.its -k <path-to-my-keys> rtos.fit
>
> When booting the FIT file with bootm, I get the following output:
>
> => bootm 0x42000000
> ## Loading kernel from FIT Image at 42000000 ...
> Using 'conf at 1' configuration
> Verifying Hash Integrity ... OK
> Trying 'kernel at 1' kernel subimage
> Description: safeRTOS Kernel
> Type: Kernel Image (no loading done)
>
This means Linux kernel. You probably need a new type - the one you are
using is this one (common/image.c):
{ IH_TYPE_KERNEL_NOLOAD, "kernel_noload", "Kernel Image (no loading
done)", },
You can add a new type in include/image.h but will need to also add support
for it in a few places.
> Compression: uncompressed
> Data Start: 0x420000b8
> Data Size: 1543860 Bytes = 1.5 MiB
> Sign algo: sha1,rsa2048:dev
> Sign value: 45bd54112.........99d0d710
> Verifying Hash Integrity ... sha1,rsa2048:dev+ OK
> No Linux ARM Kernel Image Image
> ERROR: can't get kernel image!
>
> It seems that the whole signature-checking works. However U-Boot
> apparently expects a kernel and instead gets my RTOS to boot. How can I
> tell U-Boot that I want to run my bootelf-runable RTOS?
>
> I'm really stuck here - any help is very much appreciated!
>
> thank you & best regards,
> Christopher
>
>
> --
> ------------------------------------------------------------------
> | Christopher Preschern
> | Institute for Technical Informatics - TU Graz
> | Tel: +43 (316) 873 - 6404
> | EMail: christopher.preschern at tugraz.at
>
Regards,
Simon
More information about the U-Boot
mailing list