Create a second stage HAB authenticated application image (bootloader + app)

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Create a second stage HAB authenticated application image (bootloader + app)

468件の閲覧回数
rd24
Contributor III

Hi,

I am trying to create a two stage secure boot work flow on i.MXRT1040. I have a custom bootloader and an application. I want the ROM code HAB to authenticate the bootloader and the bootloader to use HAB API to authenticate the application.

I am using MCUXpresso Secure Provisioning Tool v25.12 for signing the images. Both bootloader and application images are XIP Flash images.

Below is my Flash layout:

  • Custom bootloader at address 0x60000000, authenticated by ROM HAB Code
  • Application at address 0x600C0000, to be authenticated by bootloader using HAB API
  /* Bootloader flash memory */
  m_flash_cfg_bl        (RX)  : ORIGIN = 0x60000000, LENGTH = 0x00001000
  m_ivt_bl              (RX)  : ORIGIN = 0x60001000, LENGTH = 0x00001000
  m_intrs_flash_bl      (RX)  : ORIGIN = 0x60002000, LENGTH = 0x00000400
  m_text_bl             (RX)  : ORIGIN = 0x60002400, LENGTH = 0x0007DC00

  /* Application flash memory */
  m_flash_cfg_app       (RX)  : ORIGIN = 0x600C0000, LENGTH = 0x00001000
  m_ivt_app             (RX)  : ORIGIN = 0x600C1000, LENGTH = 0x00001000
  m_intrs_flash_app     (RX)  : ORIGIN = 0x600C2000, LENGTH = 0x00000400
  m_text_app            (RX)  : ORIGIN = 0x600C2400, LENGTH = 0x000FDBA0

 

I have achieved the 1st stage where the ROM code authenticates the bootloader and I don't get any HAB events.

For the application, I am currently using the blinky example from the RT1040 SDK and compiled bin file is about 13 KB. When I sign this bin using the SEC GUI tool, the signed binary becomes 788 KB. I am using start address parameter as 0x600C0000. This is not the case for the bootloader signed bin as the start address is 0x60000000.

I inspected the application's bin file and found at offset 0 the Image Vector Table (IVT) exists and the program code starts offset 0x000BF000, in between everything is zeros. I expect the program code to start 0x1000 bytes after the IVT as per the linker script provided above (which is the case for the bootloader signed bin). If I flash this application binary at Flash location 0x600C0000, then my bootloader will not be able to start the application as there will be zeros at the jump address.

So, my questions are:

  1. Is this bootloader + app HAB workflow possible and supported by the SEC tool?
  2. If yes, how can I create the correct signed binary for my application using this tool?
  3. Are there any other tools I should use for this scenario?

Thanks

タグ(3)
0 件の賞賛
返信
2 返答(返信)

367件の閲覧回数
Kan_Li
NXP TechSupport
NXP TechSupport

Hi @rd24 ,

 

We provide an example for your case, please kindly refer to https://github.com/nxp-mcuxpresso/mcuxsdk-examples/tree/release/25.12.00/ota_examples/mcuboot_openso... for details. The tools mentioned are tested with mcuboot so far, we haven't checked with any custom bootloader , so maybe you need some adaption here. To create a bootable app image by a secondary boot loader, you have to remove its IVT header as well as adjusting the starting address. Did you do these on the blinky example from the RT1040 SDK? Please kindly clarify.

 

Have a great day,
Kan


-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 件の賞賛
返信

164件の閲覧回数
rd24
Contributor III

Hi Kan,

Sorry for the late reply.

I did some changes and now am able to build a smaller image with correct offset. Here is what I did:

1. First I generate the build script with this command:

securep -w /wksp/rt1040SecAppWksp1/ --device MIMXRT1040 --boot-device Winbond_W25Q64JW --boot-type authenticated_hab --life-cycle open_develop --script-only build --source-image iled_blinky.bin --start-address 0x600c1000 --img-cert crts/IMG1_1_sha256_4096_65537_v3_usr_crt.pem --save-settings

 

2. Then I modified the following configurations in `configs/imx_application_gen.yaml`

startAddress: 0x600c0000
ivtOffset: 0x0
initialLoadSize: 0x1000

 

3. Then I call the script `./build_image_lnx.sh` to build the signed image.

 

Now I am trying to authenticate the blinky signed binary from my bootloader, but getting HAB authentication failure when my bootloader is calling `hab_rvt::authenticate_image_no_dcd`. The audit log I get from the `hab_rvt::report_event` says HAB_INV_ADDRESS

DB 00 08 43 33 22 0A 00                           |  ...C3"..

 

This is the linker I modified for the blinky example:

MEMORY
{
  m_ivt                 (RX)  : ORIGIN = 0x600C0000, LENGTH = 0x00001000
  m_interrupts          (RX)  : ORIGIN = 0x600C1000, LENGTH = 0x00000400
  m_text                (RX)  : ORIGIN = 0x600C1400, LENGTH = 0x007FDC00
  m_qacode              (RX)  : ORIGIN = 0x00000000, LENGTH = 0x00020000
  m_data                (RW)  : ORIGIN = 0x20000000, LENGTH = 0x00020000
  m_data2               (RW)  : ORIGIN = 0x20200000, LENGTH = 0x00040000
}

 

As for your questions, I adjusted the startAddress to 0x600c0000. Could you please explain what you mean by "you have to remove its IVT header"? Please note the bootloader I am using to verify the blinky signed binary is not signed as of now.

Thanks,

Rohan

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2360076%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E7%AC%AC2%E6%AE%B5%E9%9A%8E%E3%81%AEHAB%E8%AA%8D%E8%A8%BC%E6%B8%88%E3%81%BF%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%EF%BC%88%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%EF%BC%8B%E3%82%A2%E3%83%97%E3%83%AA%EF%BC%89%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2360076%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FP%3E%3CP%3Ei.MXRT1040%E4%B8%8A%E3%81%A72%E6%AE%B5%E9%9A%8E%E3%81%AE%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2%E3%83%96%E3%83%BC%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%A8%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%8C%81%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82ROM%E3%82%B3%E3%83%BC%E3%83%89HAB%E3%81%A7%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%82%92%E8%AA%8D%E8%A8%BC%E3%81%97%E3%80%81%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%8CHAB%20API%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E8%AA%8D%E8%A8%BC%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%81%9F%E3%81%84%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%AE%E7%BD%B2%E5%90%8D%E3%81%AB%E3%81%AF%E3%80%81MCUXpresso%20Secure%20Provisioning%20Tool%20v25.12%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%A8%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%AF%E3%81%A9%E3%81%A1%E3%82%89%E3%82%82XIP%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E3%81%AF%E7%A7%81%E3%81%AEFlash%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CUL%3E%3CLI%3E%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B90x60000000%E3%81%AB%E3%81%82%E3%82%8B%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AF%E3%80%81ROM%20HAB%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E8%AA%8D%E8%A8%BC%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FLI%3E%3CLI%3E%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B90x600C0000%E3%81%AB%E3%81%82%E3%82%8B%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E3%80%81HAB%20API%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E8%AA%8D%E8%A8%BC%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FLI%3E%3C%2FUL%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3E%20%20%2F*%20Bootloader%20flash%20memory%20*%2F%0A%20%20m_flash_cfg_bl%20%20%20%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x60000000%2C%20LENGTH%20%3D%200x00001000%0A%20%20m_ivt_bl%20%20%20%20%20%20%20%20%20%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x60001000%2C%20LENGTH%20%3D%200x00001000%0A%20%20m_intrs_flash_bl%20%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x60002000%2C%20LENGTH%20%3D%200x00000400%0A%20%20m_text_bl%20%20%20%20%20%20%20%20%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x60002400%2C%20LENGTH%20%3D%200x0007DC00%0A%0A%20%20%2F*%20Application%20flash%20memory%20*%2F%0A%20%20m_flash_cfg_app%20%20%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x600C0000%2C%20LENGTH%20%3D%200x00001000%0A%20%20m_ivt_app%20%20%20%20%20%20%20%20%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x600C1000%2C%20LENGTH%20%3D%200x00001000%0A%20%20m_intrs_flash_app%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x600C2000%2C%20LENGTH%20%3D%200x00000400%0A%20%20m_text_app%20%20%20%20%20%20%20%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x600C2400%2C%20LENGTH%20%3D%200x000FDBA0%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3EROM%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%82%92%E8%AA%8D%E8%A8%BC%E3%81%99%E3%82%8B%E7%AC%AC1%E6%AE%B5%E9%9A%8E%E3%81%AF%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81HAB%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E6%83%85%E5%A0%B1%E3%81%AF%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E9%96%A2%E3%81%97%E3%81%A6%E3%81%AF%E3%80%81%E7%8F%BE%E5%9C%A8RT1040%20SDK%E3%81%AEblinky%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%95%E3%82%8C%E3%81%9Fbin%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AF%E7%B4%8413KB%E3%81%A7%E3%81%99%E3%80%82SEC%20GUI%E3%83%84%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%93%E3%81%AE%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%81%AB%E7%BD%B2%E5%90%8D%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E7%BD%B2%E5%90%8D%E5%BE%8C%E3%81%AE%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AF788KB%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E9%96%8B%E5%A7%8B%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%81%A8%E3%81%97%E3%81%A60x600C0000%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E7%BD%B2%E5%90%8D%E4%BB%98%E3%81%8D%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81%E9%96%8B%E5%A7%8B%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%8C0x60000000%E3%81%A7%E3%81%82%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%81%93%E3%81%AE%E9%99%90%E3%82%8A%E3%81%A7%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%9F%E3%81%A8%E3%81%93%E3%82%8D%E3%80%81%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%880%E3%81%AB%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%EF%BC%88IVT%EF%BC%89%E3%81%8C%E5%AD%98%E5%9C%A8%E3%81%97%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%880x000BF000%E3%81%8B%E3%82%89%E5%A7%8B%E3%81%BE%E3%81%A3%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81%E3%81%9D%E3%81%AE%E9%96%93%E3%81%AF%E3%81%99%E3%81%B9%E3%81%A6%E3%82%BC%E3%83%AD%E3%81%A7%E3%81%82%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%82%8F%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E4%B8%8A%E8%A8%98%E3%83%AA%E3%83%B3%E3%82%AB%E3%83%BC%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AB%E5%BE%93%E3%81%A3%E3%81%A6%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AFIVT%E3%81%AE0x1000%E3%83%90%E3%82%A4%E3%83%88%E5%BE%8C%E3%81%8B%E3%82%89%E9%96%8B%E5%A7%8B%E3%81%95%E3%82%8C%E3%82%8B%E3%81%A8%E4%BA%88%E6%83%B3%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%EF%BC%88%E3%81%93%E3%82%8C%E3%81%AF%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E7%BD%B2%E5%90%8D%E4%BB%98%E3%81%8D%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%A8%E5%90%8C%E6%A7%98%E3%81%A7%E3%81%99%EF%BC%89%E3%80%82%E3%81%93%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%82%92%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%AE%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B90x600C0000%E3%81%AB%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80%E3%81%A8%E3%80%81%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AB%E3%82%BC%E3%83%AD%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AF%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%8F%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%9D%E3%81%93%E3%81%A7%E3%80%81%E7%A7%81%E3%81%AE%E8%B3%AA%E5%95%8F%E3%81%AF%E6%AC%A1%E3%81%AE%E3%81%A8%E3%81%8A%E3%82%8A%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3COL%3E%3CLI%3E%E3%81%93%E3%81%AE%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%EF%BC%8B%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AEHAB%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AF%E5%8F%AF%E8%83%BD%E3%81%A7%E3%80%81SEC%E3%83%84%E3%83%BC%E3%83%AB%E3%81%A7%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FLI%3E%3CLI%3E%E3%81%AF%E3%81%84%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81%E3%81%93%E3%81%AE%E3%83%84%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E7%94%A8%E3%81%AE%E6%AD%A3%E3%81%97%E3%81%84%E7%BD%B2%E5%90%8D%E4%BB%98%E3%81%8D%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FLI%3E%3CLI%3E%E3%81%93%E3%81%AE%E7%8A%B6%E6%B3%81%E3%81%A7%E4%BB%96%E3%81%AB%E4%BD%BF%E3%81%86%E3%81%B9%E3%81%8D%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2362226%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Create%20a%20second%20stage%20HAB%20authenticated%20application%20image%20(bootloader%20%2B%20app)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2362226%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F243200%22%20target%3D%22_blank%22%3E%E3%80%81%40rd24%20%E3%81%95%E3%82%93%3C%2FA%3E%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%81%8A%E5%AE%A2%E6%A7%98%E3%81%AECASE%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8B%E4%BE%8B%E3%82%92%E3%81%94%E7%94%A8%E6%84%8F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%81%AE%E3%81%A7%E3%80%81%E8%A9%B3%E7%B4%B0%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-mcuxpresso%2Fmcuxsdk-examples%2Ftree%2Frelease%2F25.12.00%2Fota_examples%2Fmcuboot_opensource%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-mcuxpresso%2Fmcuxsdk-examples%2Ftree%2Frelease%2F25.12.00%2Fota_examples%2Fmcuboot_opensource%3C%2FA%3E%E3%82%92%E3%81%94%E5%8F%82%E7%85%A7%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%94%E7%B4%B9%E4%BB%8B%E3%81%97%E3%81%9F%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AF%E4%BB%8A%E3%81%AE%E3%81%A8%E3%81%93%E3%82%8Dmcuboot%E3%81%A7%E3%83%86%E3%82%B9%E3%83%88%E6%B8%88%E3%81%BF%E3%81%A7%E3%81%99%E3%80%82%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%A7%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%AF%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%E3%81%AE%E3%81%A7%E3%80%81%E5%A0%B4%E5%90%88%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%81%AF%E8%AA%BF%E6%95%B4%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%8B%E3%82%82%E3%81%97%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E3%82%BB%E3%82%AB%E3%83%B3%E3%83%80%E3%83%AA%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E8%B5%B7%E5%8B%95%E5%8F%AF%E8%83%BD%E3%81%AA%E3%82%A2%E3%83%97%E3%83%AA%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81IVT%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E3%81%A8%E3%81%A8%E3%82%82%E3%81%AB%E3%80%81%E9%96%8B%E5%A7%8B%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%AA%BF%E6%95%B4%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E6%93%8D%E4%BD%9C%E3%81%AF%3CSPAN%3E%E3%80%81RT1040%20SDK%E3%81%AE%E7%82%B9%E6%BB%85%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%A7%E8%A1%8C%E3%81%84%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8B%EF%BC%9F%E8%A9%B3%E7%B4%B0%E3%82%92%E3%81%8A%E8%81%9E%E3%81%8B%E3%81%9B%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%81%99%E3%81%A6%E3%81%8D%E3%81%AA%E4%B8%80%E6%97%A5%E3%82%92%E3%80%81%3CBR%20%2F%3E%E3%82%AB%E3%83%B3%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3E-------------------------------------------------------------------------------%3CBR%20%2F%3E%E6%B3%A8%E8%A8%98%EF%BC%9A%3CBR%20%2F%3E%E3%81%93%E3%81%AE%E6%8A%95%E7%A8%BF%E3%81%8C%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E8%B3%AA%E5%95%8F%E3%81%B8%E3%81%AE%E5%9B%9E%E7%AD%94%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81%E3%80%8C%E6%AD%A3%E8%A7%A3%E3%81%A8%E3%81%97%E3%81%A6%E3%83%9E%E3%83%BC%E3%82%AF%E3%80%8D%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%EF%BC%81%3CBR%20%2F%3E%20-%20%E6%9C%80%E5%BE%8C%E3%81%AE%E6%8A%95%E7%A8%BF%E3%81%8B%E3%82%897%E9%80%B1%E9%96%93%E3%81%AFThread%E3%82%92%E3%83%95%E3%82%A9%E3%83%AD%E3%83%BC%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%81%9D%E3%82%8C%E4%BB%A5%E9%99%8D%E3%81%AE%E8%BF%94%E4%BF%A1%E3%81%AF%E7%84%A1%E8%A6%96%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%E5%BE%8C%E6%97%A5%E3%80%81%E9%96%A2%E9%80%A3%E3%81%99%E3%82%8B%E8%B3%AA%E5%95%8F%E3%81%8C%E3%81%82%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81%E6%96%B0%E3%81%97%E3%81%84Thread%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%80%81%E9%96%89%E3%81%98%E3%82%89%E3%82%8C%E3%81%9F%20Thread%E3%82%92%E5%8F%82%E7%85%A7%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3CBR%20%2F%3E-------------------------------------------------------------------------------%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2372393%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Create%20a%20second%20stage%20HAB%20authenticated%20application%20image%20(bootloader%20%2B%20app)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2372393%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E3%82%AB%E3%83%B3%E3%81%95%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%E8%BF%94%E4%BF%A1%E3%81%8C%E9%81%85%E3%81%8F%E3%81%AA%E3%82%8A%E7%94%B3%E3%81%97%E8%A8%B3%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%84%E3%81%8F%E3%81%A4%E3%81%8B%E5%A4%89%E6%9B%B4%E3%82%92%E5%8A%A0%E3%81%88%E3%81%9F%E7%B5%90%E6%9E%9C%E3%80%81%E6%AD%A3%E3%81%97%E3%81%84%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E3%81%A7%E3%82%88%E3%82%8A%E5%B0%8F%E3%81%95%E3%81%AA%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E4%BD%9C%E6%88%90%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E7%A7%81%E3%81%8C%E3%82%84%E3%81%A3%E3%81%9F%E3%81%93%E3%81%A8%E3%81%AF%E4%BB%A5%E4%B8%8B%E3%81%AE%E9%80%9A%E3%82%8A%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E1.%20%E3%81%BE%E3%81%9A%E3%80%81%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%83%93%E3%83%AB%E3%83%89%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E7%94%9F%E6%88%90%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3Esecurep%20-w%20%2Fwksp%2Frt1040SecAppWksp1%2F%20--device%20MIMXRT1040%20--boot-device%20Winbond_W25Q64JW%20--boot-type%20authenticated_hab%20--life-cycle%20open_develop%20--script-only%20build%20--source-image%20iled_blinky.bin%20--start-address%200x600c1000%20--img-cert%20crts%2FIMG1_1_sha256_4096_65537_v3_usr_crt.pem%20--save-settings%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E2.%20%E6%AC%A1%E3%81%AB%E3%80%81%60configs%2Fimx_application_gen.yaml%60%20%E5%86%85%E3%81%AE%E4%BB%A5%E4%B8%8B%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3EstartAddress%3A%200x600c0000%0AivtOffset%3A%200x0%0AinitialLoadSize%3A%200x1000%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E3.%20%E6%AC%A1%E3%81%AB%E3%80%81%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%20%60.%2Fbuild_image_lnx.sh%60%20%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%A6%E7%BD%B2%E5%90%8D%E4%BB%98%E3%81%8D%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E7%8F%BE%E5%9C%A8%E3%80%81%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%8B%E3%82%89blinky%E7%BD%B2%E5%90%8D%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%82%92%E8%AA%8D%E8%A8%BC%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%8C%60hab_rvt%3A%3Aauthenticate_image_no_dcd%60%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E3%81%A8%E3%81%8D%E3%81%ABHAB%E8%AA%8D%E8%A8%BC%E5%A4%B1%E6%95%97%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%60hab_rvt%3A%3Areport_event%60%E3%81%8B%E3%82%89%E5%8F%96%E5%BE%97%E3%81%97%E3%81%9F%E7%9B%A3%E6%9F%BB%E3%83%AD%E3%82%B0%E3%81%AB%E3%81%AF%E3%80%81%20%3CSPAN%3EHAB_INV_ADDRESS%3C%2FSPAN%3E%E3%81%A8%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3EDB%2000%2008%2043%2033%2022%200A%2000%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20%20...C3%22..%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E%E3%81%93%E3%82%8C%E3%81%AF%E3%80%81%E7%82%B9%E6%BB%85%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E7%94%A8%E3%81%AB%E7%A7%81%E3%81%8C%E4%BF%AE%E6%AD%A3%E3%81%97%E3%81%9F%E3%83%AA%E3%83%B3%E3%82%AB%E3%83%BC%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3EMEMORY%0A%7B%0A%20%20m_ivt%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x600C0000%2C%20LENGTH%20%3D%200x00001000%0A%20%20m_interrupts%20%20%20%20%20%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x600C1000%2C%20LENGTH%20%3D%200x00000400%0A%20%20m_text%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x600C1400%2C%20LENGTH%20%3D%200x007FDC00%0A%20%20m_qacode%20%20%20%20%20%20%20%20%20%20%20%20%20%20(RX)%20%20%3A%20ORIGIN%20%3D%200x00000000%2C%20LENGTH%20%3D%200x00020000%0A%20%20m_data%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(RW)%20%20%3A%20ORIGIN%20%3D%200x20000000%2C%20LENGTH%20%3D%200x00020000%0A%20%20m_data2%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(RW)%20%20%3A%20ORIGIN%20%3D%200x20200000%2C%20LENGTH%20%3D%200x00040000%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E%E3%81%94%E8%B3%AA%E5%95%8F%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%A7%E3%81%99%E3%81%8C%E3%80%81startAddress%E3%82%920x600c0000%E3%81%AB%E8%AA%BF%E6%95%B4%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%80%8C%20%3CSPAN%3EIVT%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%82%92%E5%89%8A%E9%99%A4%E3%81%97%E3%81%AA%E3%81%91%E3%82%8C%E3%81%B0%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84%3C%2FSPAN%3E%E3%80%8D%E3%81%A8%E3%81%AF%E3%81%A9%E3%81%86%E3%81%84%E3%81%86%E6%84%8F%E5%91%B3%E3%81%8B%E3%80%81%E8%AA%AC%E6%98%8E%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%E3%81%AA%E3%81%8A%E3%80%81%E7%A7%81%E3%81%8Cblinky%E3%81%AE%E7%BD%B2%E5%90%8D%E6%B8%88%E3%81%BF%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%82%92%E6%A4%9C%E8%A8%BC%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AF%E3%80%81%E7%8F%BE%E6%99%82%E7%82%B9%E3%81%A7%E3%81%AF%E7%BD%B2%E5%90%8D%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%E3%81%AE%E3%81%A7%E3%81%94%E6%B3%A8%E6%84%8F%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%3C%2FP%3E%3CP%3E%E3%83%AD%E3%83%BC%E3%83%8F%E3%83%B3%3C%2FP%3E%3C%2FLINGO-BODY%3E