Программирование ARM Утилита bflb_fw_post_proc Sat, May 04 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Утилита bflb_fw_post_proc Печать
Добавил(а) microsin   

Утилита командной строки bflb_fw_post_proc из Bouffalo SDK [1] предназначена для обновления информации корректного заголовка загрузчика (bootheder), а также шифрования и подписи firmware. Для этой цели необходимо указать несколько параметров:

--chipname: модель чипа, для которого выполнена сборка firmware.
--brdcfgdir: директория с конфигурацией используемой вами платы (board config), это используется для копирования файлов наподобие boot2 в директорию создания образа.
--imgfile: файл образа, который вы хотите обработать, ',' можно использовать для разделения на несколько файлов, и '*' можно использовать для соответствия только одному файлу.
--key: ключ AES, когда вы хотите зашифровать образ AES CTR.
--iv: AES iv, когда вы хотите зашифровать образ AES CTR.
--xtsmode: разрешение режима xts, когда вы хотите зашифровать образ AES xts, и ваш чип должен это поддерживать.
--privatekey: приватный ключ в формате ecc-256 pem.
--publickey: публичный ключ в формате ecc-256 pem.

[Примеры использования]

См. examples/wifi/sta/wifi_tcp, bl616:

No secure boot:

Шаг 1: "cd examples/wifi/sta/wifi_tcp"

Шаг 2: "make"

Шаг 3: "bflb_fw_post_proc --chipname=bl616 --brdcfgdir=bsp/board/bl616dk/config --imgfile=./build/build_out/wifi_tcp_bl616.bin"

Secure boot with command line:

Шаг 1: "cd examples/wifi/sta/wifi_tcp"

Шаг 2: "make"

Шаг 3: "bflb_fw_post_proc --chipname=bl616 --brdcfgdir=bsp/board/bl616dk/config --imgfile=./build/build_out/wifi_tcp_bl616.bin --key=000102030405060708090A0B0C0D0E0F --iv=100102030405060708090A0B00000000 --privatekey=privatekey_uecc.pem --publickey=publickey_uecc.pem"

Secure boot with encrypt and sign server:

Шаг 1: развернуть сервер шифрования и подписи с bflb_fw_post_proc

Шаг 2: "cd examples/wifi/sta/wifi_tcp"

Шаг 3: "make"

Шаг 4: выгрузить build/build_out/boot2_xxx.bin на сервер (опционально: если boot2 не поменялся, и уже зашифрован и пописан, то этот шаг пропустите)

Шаг 5: на сервере выполните "bflb_fw_post_proc --chipname=bl616 --imgfile=boot2_xxx.bin --key=000102030405060708090A0B0C0D0E0F --iv=100102030405060708090A0B00000000 --privatekey=privatekey_uecc.pem --publickey=publickey_uecc.pem"

Шаг 6: загрузите boot2_xxx.bin с сервера, и перезапишите оригинальный файл.

Шаг 7: выгрузите build/build_out/wifi_tcp_bl616.bin (опционально: если boot2 не поменялся, и уже зашифрован и пописан, то этот шаг пропустите)

Шаг 8: на сервере выполните "bflb_fw_post_proc --chipname=bl616 --imgfile=wifi_tcp_bl616.bin --key=000102030405060708090A0B0C0D0E0F --iv=100102030405060708090A0B00000000 --privatekey=privatekey_uecc.pem --publickey=publickey_uecc.pem"

Шаг 9: загрузите wifi_tcp_bl616.bin с сервера и перезапишите оригинальный файл.

Шаг 10: make flash

Шаг 11: make efuse

[Другие опции]

multi-files: "bflb_fw_post_proc --chipname=bl616 --imgfile=./build/build_out/helloworld_bl616.bin,./build/build_out/boot2_*.bin --key=000102030405060708090A0B0C0D0E0F --iv=100102030405060708090A0B00000000"

--edbg_mode: установить режим отладки (set dbg mode,open/pswd/close); например:--edbg_mode=pswd
--epswwd: указывается hex-строка пароля JTAG; например:--epswwd=1234567890ABCDEF
--ehbn_sign: разрешение/запрет проверки подписи, когда используется HBN mode wakeup; например:--ehbn_sign=true
--eanti_rollback: разрешение/запрет функции anti-rollback; например:--eanti_rollback=true
--ejtag_close: закрыть порт jtag; например:--ejtag_close=true
--edata: содержимое данных efuse:start,hex_str; ex:0x10,000102030405060708

[Ссылки]

1. bouffalolab/bouffalo_sdk.

 

Добавить комментарий


Защитный код
Обновить

Top of Page