<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Re: Problems with i.MX28 High Assurance Boot in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271325#M29347</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I appreciate the feedback.&amp;nbsp; I don't know if having two IVT structures defined is necessary, but I'm having linking issues without hardcoding values for __hab_data and __hab_data_end for the full u-boot compilation.&amp;nbsp; The spl build resolves the symbols just fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, my uboot csf looks like this, so the input_uboot_ivt and _start should be covered by the signature. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Authenticate Data]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Verification index = 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Blocks = 0x40000100 0x0 0x76000 "u-boot-mx28-tosign.bin"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EDIT:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The errors were due to linking problems.&amp;nbsp; The outlined steps in AN4555 were failing to link properly for me at the moment.&amp;nbsp; Hardcoding addresses solved the issue but this is highly error prone.&amp;nbsp; If others experience the same problems I suggest double checking the linking output.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 10 Oct 2013 12:58:53 GMT</pubDate>
    <dc:creator>dwc</dc:creator>
    <dc:date>2013-10-10T12:58:53Z</dc:date>
    <item>
      <title>Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271319#M29341</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I’ve got a problem with using High Assurance Boot (HAB) on my i.mx28 using U-boot (version 04/2012).&lt;/P&gt;&lt;P&gt;When booting, I get several HAB failure events (described later on) and I don’t know what to do about it and how to interpret them in detail. I’ll first give the general steps which I applied to get HAB running and I attached my source files.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I followed the instructions from several Freescale manuals:&lt;/P&gt;&lt;UL style="list-style-type: disc;"&gt;&lt;LI&gt;I generated keys/certificates with the hab4_pki_tree script from the Code-Signing Tool (CST) package as described in the “HAB Code-Signing Tool” documentation&lt;/LI&gt;&lt;LI&gt;I generated the e-fuse hash and the SRK table as described in the “HAB Code-Signing Tool” documentation&lt;/LI&gt;&lt;LI&gt;I programmed the e-fuse hash into the i.mx28 by using the otp_burner and the BitInit Tools&lt;/LI&gt;&lt;LI&gt;I checked with the BitBurner Tool if the fuses were actually set à I could see the fuse hash value with the tool, so I assume up until this step everything went fine.&lt;/LI&gt;&lt;LI&gt;I modified the u-boot Linker File (.lds) to reserve a section for the code signature as described in the “Secure Boot with i.MX28 HAB v4” documentation (page 15)&lt;/LI&gt;&lt;LI&gt;I call the HAB report_event() function from the ROM Vector Table in the U-Boot Source to get HAB Debug output&lt;/LI&gt;&lt;LI&gt;I compiled my U-Boot with the mx28 config from Denx to obtain: u-boot (ELF file), u-boot.bin (Binary), u-boot-spl (ELF), u-boot.bin (Binary). The spl program is some kind of first-stage bootloader which is called before u-boot&lt;/LI&gt;&lt;LI&gt;I wrote a CSF File for u-boot.bin and one for u-boot-spl.bin. I wrote the file as explained in the “HAB Code-Signing Tool” documentation and end up with files which are pretty much the same as the example given at page 27 of the “Secure Boot with i.MX28 HAB v4” documentation&lt;/LI&gt;&lt;LI&gt;I used the CST to create the signatures of u-boot.bin&amp;nbsp; and u-boot-spl.bin&lt;/LI&gt;&lt;LI&gt;I modified the u-boot.bd file to load the signature &lt;/LI&gt;&lt;LI&gt;I ran elftosb to create my boodable sb-File&lt;/LI&gt;&lt;/UL&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When booting, I get the following HAB Errors:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;--------- HAB Event 1 -----------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;event data:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x22 0x33 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x0f 0x00 0x00 0x00 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x07 0x50&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;--------- HAB Event 2 -----------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;event data:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x22 0x33 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x0f 0x00 0x00 0x80 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x54 0xce 0x13 0xdd&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;--------- HAB Event 3 -----------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;event data:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x08 0x40 0x33 0x22 0x0a 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;--------- HAB Event 4 -----------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;event data:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x20&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;--------- HAB Event 5 -----------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;event data:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x14&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x04&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;--------- HAB Event 6 -----------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;event data:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x22 0x33 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x0f 0x00 0x00 0x80 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x54 0xce 0x13 0xdd&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;--------- HAB Event 7 -----------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;event data:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x20&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;--------- HAB Event 8 -----------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;event data:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x22 0x33 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="DE-AT" style="font-size: 8pt;"&gt;0x00 0x00 0x00 0x0f 0x04 0x10 0x00 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="DE-AT" style="font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x03 0xe8&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My questions are:&lt;/P&gt;&lt;UL style="list-style-type: disc;"&gt;&lt;LI&gt;Are the general steps I described above correct, or did I miss something?&lt;/LI&gt;&lt;LI&gt;How do I interpret the HAB events? I know that the HAB API documentation provides some information about that, however if I analyze the first event with the HAB API documentation I obtain the information that the check_target() function accessed an invalid address. The check_target function was called with the following parameters (according to the HAB debug output):&lt;UL&gt;&lt;LI&gt;Type of target: 0x00 0x00 0x00 0x0f (the documentation says that this is HAB_TGT_MEMORY and that the memory white list has to be checked à what does that mean?)&lt;/LI&gt;&lt;LI&gt;Address of target region: 0x00 0x00 0x00 0x00&lt;/LI&gt;&lt;LI&gt;Size of target region: 0x00 0x00 0x07 0x50&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; With just this information I have no idea where I should start and what to do&lt;/P&gt;&lt;UL style="list-style-type: disc;"&gt;&lt;LI&gt;Am I correct that I do not manually have to create an Image Vector Table (IVT) as described by the “Secure Boot with i.MX28 HAB v4” documentation on page 16? The “Using elftosb to generate HAB enabled boot streams” documentation says that the IVT is created by a command in the bd file (which I use in my attached bd-file). So does this mean that the “Secure Boot with i.MX28 HAB v4” documentation is not up-to-date? How should I now include the IVT? With the command in the bd-File or by manually linking a section into the binary (as described in “Secure Boot with i.MX28 HAB v4”)?&lt;/LI&gt;&lt;LI&gt;Should HAB also work if I do not modify the linker file of U-Boot, but just load the signature to any free area in the memory (and of course reference this address in the bd-file)?&lt;/LI&gt;&lt;LI&gt;Do the source files I provide with this posting look correct?&lt;/LI&gt;&lt;LI&gt;Did anybody our there get HAB working? Is there an example (full source code) available?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;I'm really stuck here and I appreachiate any kind of help very much.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;Best regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;Christopher&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-336078"&gt;u-boot.lds.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-336078"&gt;uboot-csf.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-336078"&gt;u-boot-spl.lds.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-336078"&gt;u-boot.bd.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-336078"&gt;spl-csf.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Apr 2013 13:45:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271319#M29341</guid>
      <dc:creator>christopherpres</dc:creator>
      <dc:date>2013-04-17T13:45:58Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271320#M29342</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;what I forgot to mention: When booting with an unsigned image, I get pretty much the same HAB errors as described above.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anybody know what they mean?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HAB Errors when booting with an unsigned image:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 1 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x22 0x33 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x0f 0x00 0x00 0x00 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x07 0x50&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 2 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x22 0x33 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x0f 0x00 0x00 0x80 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x54 0xce 0x13 0xdd&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 3 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x08 0x40 0x33 0x22 0x0a 0x00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 4 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x20&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 5 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x14&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x04&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 6 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x22 0x33 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x0f 0x00 0x00 0x80 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x54 0xce 0x13 0xdd&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 7 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x08 0x40 0x33 0x22 0x0a 0x00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 8 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x20&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 9 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x40 0x00 0x01 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x04&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 10 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x22 0x33 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x0f 0x04 0x10 0x00 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x03 0xe8&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Apr 2013 11:58:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271320#M29342</guid>
      <dc:creator>christopherpres</dc:creator>
      <dc:date>2013-04-19T11:58:16Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271321#M29343</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 12.0pt; font-family: 'Verdana','sans-serif';"&gt;All appears working with manually linking the IVT into the binary as described in AN4555.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Apr 2013 03:58:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271321#M29343</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2013-04-29T03:58:17Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271322#M29344</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, everything works fine now:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is what was wrong and what I changed to make it work:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;I tried to create the IVT with the bd-Script and elftosb. This did not work and now I create the IVT as described in AN4555&lt;/LI&gt;&lt;LI&gt;My U-Boot uses a pre-boot-loader (uboot-spl). This pre-boot-loader was loaded to 0x0 in memory. I modified this to be loaded to 0x100 in the corresponding .lds file and in the .bd file&lt;/LI&gt;&lt;LI&gt;I manually created the IVT with a hardcoded header (0xD1002040). This was a problem, because this value is converted to little-endian and according to the i.MX28 reference manual, the IVT header has to be stored in big-endian format - I changed the IVT-header value in the code to 0x402000D1 and now it works.&lt;/LI&gt;&lt;/UL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Apr 2013 04:47:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271322#M29344</guid>
      <dc:creator>christopherpres</dc:creator>
      <dc:date>2013-04-29T04:47:42Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271323#M29345</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm at a bit of a stuck point myself.&amp;nbsp; Do you have any tips for working out the errors?&amp;nbsp; I'm following basically the same approach as you.&amp;nbsp; I am down to 3 HAB Events that look similar to ones in your first post. The first is an Invalid address during authenticate_image().&amp;nbsp; The next two are assertion errors that cover the code of the IVT and the _start function in uboot.&amp;nbsp; Did you run into any issues as you worked out your errors?&amp;nbsp; Doing a memory dump of the IVT location appears that all the field values are correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HAB Configuration: 0xf0, HAB State: 0xf0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 1 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x08 0x40 0x33 0x22 0x0a 0x00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 2 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x40 0x06 0x0c 0x18&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x20&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 3 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x40 0x00 0x01 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x04&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Oct 2013 11:26:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271323#M29345</guid>
      <dc:creator>dwc</dc:creator>
      <dc:date>2013-10-10T11:26:45Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271324#M29346</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hhmmmm.....difficult to say...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; - How do you create the IVT? Do you add the code and modify the linker files as described in AN4555 or do you use the elftosb-Tool to create the IVT?&lt;/P&gt;&lt;P&gt; - can you post the HAB-relevant code? The linker files, the bd-File and the file where you include the IVT?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Oct 2013 12:35:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271324#M29346</guid>
      <dc:creator>christopherpres</dc:creator>
      <dc:date>2013-10-10T12:35:53Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271325#M29347</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I appreciate the feedback.&amp;nbsp; I don't know if having two IVT structures defined is necessary, but I'm having linking issues without hardcoding values for __hab_data and __hab_data_end for the full u-boot compilation.&amp;nbsp; The spl build resolves the symbols just fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, my uboot csf looks like this, so the input_uboot_ivt and _start should be covered by the signature. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Authenticate Data]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Verification index = 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Blocks = 0x40000100 0x0 0x76000 "u-boot-mx28-tosign.bin"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EDIT:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The errors were due to linking problems.&amp;nbsp; The outlined steps in AN4555 were failing to link properly for me at the moment.&amp;nbsp; Hardcoding addresses solved the issue but this is highly error prone.&amp;nbsp; If others experience the same problems I suggest double checking the linking output.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Oct 2013 12:58:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271325#M29347</guid>
      <dc:creator>dwc</dc:creator>
      <dc:date>2013-10-10T12:58:53Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271326#M29348</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;that means it works now?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here are my linking-related HAB-files. Except for BASE_ADDRESS I have no hardcoded addresses.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Oct 2013 07:06:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271326#M29348</guid>
      <dc:creator>christopherpres</dc:creator>
      <dc:date>2013-10-11T07:06:16Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271327#M29349</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the reply.&amp;nbsp; It looks like you did something special to make the linker work well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Did you happen to go any further with staged authentication using the API from within U-boot?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Edit to add lessons learned (for a lack of better place to communicate this):&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;For those attempting to using the HAB API from within U-boot, I highly recommend flushing your data caches before making any calls to the HAB API.&amp;nbsp; It seems that in some cases of DMA transfers, the data is not fully synced between the cache and RAM.&amp;nbsp; At the point of making the HAB API call to verify a signature over data in RAM, HAB attempts to use RAM data that is not actually valid.&amp;nbsp; The HAB failure returned indicates a signature verification problem but with a NOP context.&amp;nbsp; U-Boot provides a nice CONFIG_CMD_CACHE switch to enable cache flushing from the interactive console.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Oct 2013 20:40:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271327#M29349</guid>
      <dc:creator>dwc</dc:creator>
      <dc:date>2013-10-11T20:40:09Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271328#M29350</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't use the U-Boot API. After U-Boot I simply boot a signed kernel. I use the mkimage tool and the bootm command.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 05:44:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271328#M29350</guid>
      <dc:creator>christopherpres</dc:creator>
      <dc:date>2013-10-14T05:44:07Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271329#M29351</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Chris, &lt;/P&gt;&lt;P&gt;I have a beginner question for you. I am learning Uboot while trying to do HAB. I am trying to boot a version of uboot from Jan, 2013. I applied your patch which modified /arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd, arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds, arch/arm/cpu/u-boot.lds. However, I don't know where to add the hab-changes code. The only IVT header I could find in my uboot src is in the imximage.h which look different than yours. &lt;/P&gt;&lt;P&gt;Also, I notice that the address reserved for the patch is 0x100 instead of 0x10 as described int he AN4555. And your patch does not have any reference to BASE_ADDR which seems to be for reserve some padding. Do we need that extra padding? Is that only for future growth? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your time. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the ivt in the imximage.h&lt;/P&gt;&lt;P&gt;typedef struct {&lt;/P&gt;&lt;P&gt;&amp;nbsp; ivt_header_t header;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t entry;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t reserved1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t dcd_ptr;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t boot_data_ptr;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t self;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t csf;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t reserved2;&lt;/P&gt;&lt;P&gt;} flash_header_v2_t;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Nov 2013 12:48:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271329#M29351</guid>
      <dc:creator>tainguyen</dc:creator>
      <dc:date>2013-11-01T12:48:40Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271330#M29352</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I added the rest of my code changes to make things a bit clearer. However, I was asked to replace any reference to the specific board I use. Therefore you'll find "COMPANY" and "PROJECT" in the files paths. Adapting the patch to the /boards/denx/m28evk/ board should work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- I don't use the "imximage.h" IVT definition (I didn't know there is such a thing - I would have been prettier though to use it)&lt;/P&gt;&lt;P&gt;- Yes, my linker start-address is 0x100 and not 0x10 as described in AN4555. There is no reason for that - you can use anything != 0x0.&lt;/P&gt;&lt;P&gt;- I do have a BASE_ADDRESS in my "hab-changes code". In AN4555 this BASE_ADDRESS is also used, but it is defined in a Makefile if I remember correctly. I didn't want to touch the Makefile, therefore I define it in the code.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Nov 2013 06:35:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271330#M29352</guid>
      <dc:creator>christopherpres</dc:creator>
      <dc:date>2013-11-04T06:35:38Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271331#M29353</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Chris, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is excellent. Thank you for addressing my questions. You rock. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tai &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Nov 2013 13:38:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271331#M29353</guid>
      <dc:creator>tainguyen</dc:creator>
      <dc:date>2013-11-04T13:38:40Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271332#M29354</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Chris, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I applied your new patch to modify the lds files, spl_boot.c, and &amp;lt;myproject&amp;gt;.c. I also have an identical bd file. I am able to create the u-boot.sb following directions. Now, I am getting similar HAB status to when you started.&amp;nbsp; I am working on getting information to interpret the statuses. Mean while, I hope you can point out something obvious that I am doing wrong.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here are my steps to create u-boot.sb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) I followed the AN4555 to create and burn the SRKs to the OTP registers. The board is still in Open HAB configuration.&lt;/P&gt;&lt;P&gt;2) build u-boot to create u-boot-spl.bin and u-boot.bin, padded them to next block of 4096 to create u-boot-spl_pad.bin and u-boot_pad.bin. I use a cross compiler tool like this: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; arm-none-linux-gnueabi-objcopy&amp;nbsp; -I binary -O binary --gap-fill 0xFF --pad-to 0x6B000 u-boot.bin u-boot_pad.bin &lt;/P&gt;&lt;P&gt;3) I create similar csf file as in AN4555 and sign the padded binary as follow:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ../linux/cst -o signature_uboot &amp;lt; uboot.csf &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is and example of the Authentication Data in the CSF:&lt;/P&gt;&lt;P&gt;[Authenticate Data]&lt;/P&gt;&lt;P&gt;&amp;nbsp; Verification Index = 2&lt;/P&gt;&lt;P&gt;&amp;nbsp; Engine = DCP&lt;/P&gt;&lt;P&gt;&amp;nbsp; Blocks = 0x40000100 0x0 0x6B000 "u-boot_pad.bin"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4) Then create the u-boot.sb using the bd file. The bd is identical to yours since I have a similar set up: u-boot-spl then u-boot. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; elftosb -zf imx28 -c u-boot-imx28.bd -o u-boot.sb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here are the status I am getting:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 1 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x21 0xc0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xbe 0x00 0x0c 0x00 0x03 0x17 0x00 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x48&lt;/P&gt;&lt;P&gt;--------- HAB Event 2 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x00 0x00 0x1d 0x5c&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x20&lt;/P&gt;&lt;P&gt;--------- HAB Event 3 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x14&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x04&lt;/P&gt;&lt;P&gt;--------- HAB Event 4 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x21 0xc0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xbe 0x00 0x0c 0x00 0x03 0x17 0x00 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x48&lt;/P&gt;&lt;P&gt;--------- HAB Event 5 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x40 0x06 0xb0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x20&lt;/P&gt;&lt;P&gt;--------- HAB Event 6 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x40 0x00 0x01 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x04&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Nov 2013 13:10:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271332#M29354</guid>
      <dc:creator>tainguyen</dc:creator>
      <dc:date>2013-11-06T13:10:27Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271333#M29355</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your 1. error says that you have an invalid certificate. Perhaps your RSA key is too long? According to AN4555 the imx28 just supports 1024 or 2048 bit keys. Otherwise perhaps try to start from the beginning with generating the keys/certificates. Regarding certificate/key generation I followed AN4555 and the CST manual and that worked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;Christopher&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Nov 2013 13:45:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271333#M29355</guid>
      <dc:creator>christopherpres</dc:creator>
      <dc:date>2013-11-06T13:45:03Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271334#M29356</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you. I did generated a length of 4096. Let me find another board and try again. Again, really appreciate your&amp;nbsp; help. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Nov 2013 14:21:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271334#M29356</guid>
      <dc:creator>tainguyen</dc:creator>
      <dc:date>2013-11-06T14:21:32Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271335#M29357</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&amp;nbsp; Chris:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I also got the same HAB events code like Tai got,&amp;nbsp; but I really used 2048bit length.&amp;nbsp; Is there any other reason to cause this issue?&amp;nbsp; Can I say that when I saw the events "0x33 0x21 0xc0 0x00 ",&amp;nbsp; it means that all the linker and hab data's address are ok at least?&amp;nbsp;&amp;nbsp; thank you very much!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;B,R&lt;/P&gt;&lt;P&gt;Hq Bai&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Nov 2013 10:07:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271335#M29357</guid>
      <dc:creator>haiqingbai</dc:creator>
      <dc:date>2013-11-11T10:07:10Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271336#M29358</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hq Bai, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to the HAB4_API, you and I are having problem with the certificate. The code indicate that we have invalid certificate. I am not sure if the hab data addresses are correct since the board will continue booting at *entry even if it failed HAB authentication, in open configuration. I am going off the assumption that it is correct since Chris had tested it. I am reviewing and verifying my certificates. I'll send update if I find anything. I also generated 2048 as the example in the "HAB Code-Signint Tool User's Guide".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tai &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Nov 2013 13:16:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271336#M29358</guid>
      <dc:creator>tainguyen</dc:creator>
      <dc:date>2013-11-11T13:16:55Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271337#M29359</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Tai:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks your quickly reply!&amp;nbsp;&amp;nbsp; The other thing need your great help:&amp;nbsp; for fuse the SRK hash value, I used the windows tool "imx_otp_tools\BitBurner_1.0.6.0",&amp;nbsp; it failed to write, then I switch to otp_burner.py mentioned in AN4555,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "otp_burner.py --srk srk_fuses.bin --key encryption_key.txt –i bit_settings.txt –o otp_init.sb", the document says that the key is "ROM uses in decrypting the boot image", "bit_settings.txt" is "carries values for other fuses", I just&lt;/P&gt;&lt;P&gt;want to fuse the SRK hash, so I just echo "*chip-family-mx28* into bit_settings.txt and run "./otp_burner.py --srk SRK_fuse.bin -i bit_settings.txt -o otp_init.sb", the error is :&lt;/P&gt;&lt;P&gt;Traceback (most recent call last):&lt;/P&gt;&lt;P&gt;&amp;nbsp; File "./otp_burner.py", line 1545, in &amp;lt;module&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTPGeneratorTool().run()&lt;/P&gt;&lt;P&gt;&amp;nbsp; File "./otp_burner.py", line 1428, in run&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bits.fillInSuperRootKey(options.superRootKeyPath)&lt;/P&gt;&lt;P&gt;&amp;nbsp; File "./otp_burner.py", line 1003, in fillInSuperRootKey&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; srkWordValue, = struct.unpack('L', srkWordBytes)&lt;/P&gt;&lt;P&gt;struct.error: unpack requires a string argument of length 8&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Which tool did you use to fuse the SRK hash?&amp;nbsp; Could you please correct me for above?&amp;nbsp;&amp;nbsp; thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;B,R&lt;/P&gt;&lt;P&gt;Bai&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Nov 2013 09:52:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271337#M29359</guid>
      <dc:creator>haiqingbai</dc:creator>
      <dc:date>2013-11-12T09:52:26Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with i.MX28 High Assurance Boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271338#M29360</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Bai,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't use the imx tool to write the OTP. I use an OTP linux driver( links below ). However, I do use the bitburner tool to read back and verify the content of the OTP registers just to make sure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/thread/306284"&gt;https://community.freescale.com/thread/306284&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/thread/294307"&gt;https://community.freescale.com/thread/294307&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edit: I started again with a new board.&amp;nbsp; The Otp_burner.py gave me the same error but works on Windows XP. Using the window tools, I am able to generate OtpBit.sb with the srk_fuse.bin and burn it using the BitInit.exe tools. I am now passed the Install Key errors. I would recommend you do the same to save time. However, I am getting a new error which has to do with authentication. If I get this far, then I assume that the board successfully verify the SRKs, install the SRK table and used is&amp;nbsp; using it to verity the boot image. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 1 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x1c 0x40 0x33 0x18 0xc0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xca 0x00 0x14 0x00 0x02 0xc5 0x00 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x0d 0x34 0x00 0x00 0x01 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x20 0x00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 2 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x00 0x00 0x1d 0x5c&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x20&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 3 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x40 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x14&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x04&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Nov 2013 13:17:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-i-MX28-High-Assurance-Boot/m-p/271338#M29360</guid>
      <dc:creator>tainguyen</dc:creator>
      <dc:date>2013-11-12T13:17:37Z</dc:date>
    </item>
  </channel>
</rss>

