
Hi Christopher,
On Wed, Nov 20, 2013 at 10:49 AM, Christopher Preschern < christopher.preschern@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@1 { description = "MY-RTOS"; data = /incbin/("./my-rtos-image"); type = "kernel_noload"; arch = "arm"; os = "qnx"; compression = "none"; signature@1 { algo = "sha1,rsa2048"; key-name-hint = "dev"; }; }; }; configurations { default = "conf@1"; conf@1 { kernel = "kernel@1"; hash@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@1' configuration Verifying Hash Integrity ... OK Trying 'kernel@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@tugraz.at
Regards, Simon