u-boot зависает после включения защищенной загрузки: на overo

Я пытался включить защищенную загрузку в u-boot для gumstix overo storm. основано на http://www.denx-cs.de/doku/?q=m28verifiedboot

После того как я подготовил SD-карты, u-boot не может загрузиться и выдает следующее сообщение об ошибке.

U-Boot SPL 2015.07 (Apr 28 2016 - 13:53:06)
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!
reading u-boot.img
spl_load_image_fat: error reading image u-boot.img, err - -1
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!
Failed to mount ext2 filesystem...
spl_load_image_ext: ext4fs mount err - 0

================

Это файл u-boot.dts, который я использую.

/dts-v1/;

/ {
        model = "Keys";

        signature {
                key-dev {
                        required = "conf";
                        algo = "sha1,rsa2048";
                        key-name-hint = "my_key";
                };
        };
};

для создания u-boot.dtb, dtc -p 0x1000 /work/u-boot.dts -O dtb -o /work/u-boot.dtb

И это конф, который я добавил, чтобы включить /configs/omap3_overo.h

 #define CONFIG_OF_CONTROL
 #define CONFIG_OF_SEPARATE
 #define CONFIG_FIT
 #define CONFIG_FIT_SIGNATURE
 #define CONFIG_RSA
 #define CONFIG_FIT_VERBOSE

и я компилирую u-boot, используя следующую строку:

make ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- EXT_DTB = / work / u-boot.dtb all -j4

Пожалуйста, дайте мне знать, если у вас есть идеи по устранению этой проблемы.

===================

Есть обновление.

  1. изменил имя u-boot-dtb.img на u-boot.img.
  2. тогда плата может загрузиться, но выдает следующее сообщение, когда я пытался использовать bootm.

**

Overo # 
## Loading kernel from FIT Image at 82000000 ...
   Using 'conf@1' configuration
   Verifying Hash Integrity ... sha1,rsa2048:my_keyRSA: Can't find Modular Exp implementation
RSA: Can't find Modular Exp implementation
- Failed to verify required signature 'key-my_key'
Bad Data Hash
ERROR: can't get kernel image!
Overo #

**

Как уже упоминалось в doc/uImage.FIT/beaglebone_vboot.txt, я попробовал скрипт - tools/fit_check_sign, и его вывод нормальный. Возможность проверить подпись.

Так что до сих пор не знаю, в чем именно проблема, почему я получаю сообщение об ошибке выше. Я искал UCLASS_MOD_EXP, /* устройство RSA Mod Exp */, но не смог получить много информации.

Что такое устройство RSA Mod Exp и как убедиться, что оно у меня есть?

Любой вклад в отладку будет очень полезен.

РЕДАКТИРОВАТЬ:

diff include/configs/omap3_overo.h ../../u-boot2015.07/include/configs/omap3_overo.h 
        191a192,199
        > 
        > #define CONFIG_OF_CONTROL                                                               
        > #define CONFIG_OF_SEPARATE  
        > #define CONFIG_FIT
        > #define CONFIG_FIT_SIGNATURE
        > #define CONFIG_RSA
        > #define CONFIG_FIT_VERBOSE
        >

1 ответ

Решение

Ну, первая проблема, которую нужно исправить здесь:

reading u-boot.img
spl_load_image_fat: error reading image u-boot.img, err - -1

Так есть ли на вашей SD-карте u-boot.img? Обратите внимание, что пример, на который вы ссылаетесь, НЕ выполняет SPL, но вместо этого использует формат imximage старого стиля (но все еще функциональный и поддерживаемый), как на i.MX, и вы используете платформу OMAP3. В этом случае чтение doc/uImage.FIT/beaglebone_vboot.txt было бы очень полезным для вас, поскольку am335x (то, что можно найти на платах beaglebone) является эволюцией частей OMAP3, а не другого поставщика SoC (как i.MX против OMAP3).).

РЕДАКТИРОВАТЬ: Теперь, когда мы загружаем правильный файл, в v2015.07 они не были перенесены в Kconfig. Вы включили CONFIG_RSA? Посмотрите, что сделано в ENABLE_VBOOT в различных заголовках конфигурации и остальной части дерева, вам нужно будет сделать подобное.

Другие вопросы по тегам