<?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>i.MX ProcessorsのトピックRe: HABv4 Signed U-Boot fails to run standalone from NAND Flash on a i.MX6 SoC</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/HABv4-Signed-U-Boot-fails-to-run-standalone-from-NAND-Flash-on-a/m-p/416336#M62534</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp; The HAB event (0x1e, HAB_INV_RETURN, Failed callback function) means&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;that secondary NAND bootloader&amp;nbsp; - called in order to load the full image to &lt;BR /&gt;its final load address - failed. Please look at section 3.3 (Authenticate Image)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;of “HAB4_API.pdf” in CST documentation for more details.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Yuri&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 19 Nov 2015 04:51:45 GMT</pubDate>
    <dc:creator>Yuri</dc:creator>
    <dc:date>2015-11-19T04:51:45Z</dc:date>
    <item>
      <title>HABv4 Signed U-Boot fails to run standalone from NAND Flash on a i.MX6 SoC</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/HABv4-Signed-U-Boot-fails-to-run-standalone-from-NAND-Flash-on-a/m-p/416335#M62533</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Freescale Team,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am running into a problem trying to execute a HABv4 Signed U-Boot Image standalone from NAND Flash on a Closed Configuration i.MX6 SoC.&lt;/P&gt;&lt;P&gt;I can load and run Signed U-Boot Images via the USB Serial Downloader on this Closed Configuration i.MX6 SoC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the "imx_usb_loader/imx_usb" tool to download images via the USB Serial Downloader.&lt;/P&gt;&lt;P&gt;I am using the "cst-2.3.1" Code Signing Tool to create the Super Root Keys and to sign the U-Boot Images.&amp;nbsp; The "cst" reports the following version.&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;Code Signing Tool release version BLN_CST_MAIN_02.03.00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here are the fuse settings for the Closed Configuration i.MX6 SoC, dumped using U-Boot.&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;=&amp;gt; fuse read 0 0 8&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Reading bank 0:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Word 0x00000000: 20220002 df668583 200b51d4 a6510081&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Word 0x00000004: 00420702 00000280 00000012 00000000&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;=&amp;gt; fuse read 1 0 8&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Reading bank 1:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Word 0x00000000: 00000000 00000040 00000033 00000000&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Word 0x00000004: 00000000 00000000 5a451a5f 00000000&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;=&amp;gt; fuse read 2 0 8&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Reading bank 2:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Word 0x00000000:mxc_ocotp fuse_read(): Access protect error&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;ERROR&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;=&amp;gt; fuse read 3 0 8&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Reading bank 3:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Word 0x00000000: 943d1052 29e4cab4 b037569a d21bed29&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Word 0x00000004: 2077e018 c002e52f 0205f92b 7894915b&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;=&amp;gt; fuse read 4 0 8&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Reading bank 4:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Word 0x00000000: 00000000 00000000 00000000 00000000&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Word 0x00000004: 00000000 00000000 00000000 00000000&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;=&amp;gt; fuse read 5 0 8&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Reading bank 5:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Word 0x00000000: 00000000 00000000 00000000 00000000&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Word 0x00000004: 00000000 00000000 00000000 00000000&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After the i.MX6 fails to run the U-Boot from NAND Flash, I have been able to load a Signed U-Boot via the USB Serial Downloader and dump the HAB Events.&lt;/P&gt;&lt;P&gt;Here is the error I see when I run this U-Boot command.&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;=&amp;gt; hab_status&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;Secure boot enabled&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;HAB Configuration: 0xcc, HAB State: 0x99&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;--------- HAB Event 1 -----------------&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;event data:&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt; 0xdb 0x00 0x08 0x41 0x33 0x1e 0x0a 0x00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;Here is the decoding for HAB Event 1.&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt;Header Field:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 0xdb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HAB_TAG_EVENT&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 0x00 0x08&amp;nbsp;&amp;nbsp; Length = 8 bytes&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 0x41&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HAB Version 4.1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt;SRCE (Status,Reason,Context,Engine) Field:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 0x33&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HAB_FAILURE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Operation failed&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 0x1e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HAB_INV_RETURN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Failed callback function&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 0x0a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HAB_CTX_AUTHENTICATE&amp;nbsp;&amp;nbsp;&amp;nbsp; Event logged in authenticate_image()&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 0x00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HAB_ENG_ANY&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can load the exact same Signed U-Boot Image into the NAND Flash for an Open Configuration i.MX6 SoC and the U-Boot Image runs standalone without any problems.&lt;/P&gt;&lt;P&gt;After the U-Boot starts running I see NO HAB Events when I run the hab_status U-Boot command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here are the decoded CSF Commands for the Signed U-Boot Image I am using.&lt;/P&gt;&lt;P&gt;This shows that the “Unlock of the CAAM RNG” is being done, even though I did not include this command in my CSF Script file.&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; d4 00 50 41&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; d4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSF Tag&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 0050&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Length = 80&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 41&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HAB Verion = 4.1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; be 00 0c 00 03 17 00 00 00 00 00 50&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; be&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Install Key&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 000c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Length = 12&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameter&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pcl = SRK&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alg = SHA256&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Verification Key Index = 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target Key Index = 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00000050&amp;nbsp;&amp;nbsp;&amp;nbsp; Key Offset from CSF Start&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; be 00 0c 02 09 00 00 01 00 00 04 90&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; be&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Install Key&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 000c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Length = 12&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 02&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameter&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 09&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pcl = X509&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alg = ANY&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Verification Key Index = 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target Key Index = 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00000490&amp;nbsp;&amp;nbsp;&amp;nbsp; Key Offset from CSF Start&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; ca 00 0c 00 01 c5 00 00 00 00 07 e4&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; ca&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Authenticate Data&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 000c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Length = 12&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flag&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Verification Key Index = 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; c5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pcl = CMS&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eng = ANY&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eng cfg flags&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 000007e4&amp;nbsp;&amp;nbsp;&amp;nbsp; Authentication Data Offset from CSF Start&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; be 00 0c 00 09 00 00 02 00 00 09 e8&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; be&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Install Key&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 000c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Length = 12&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameter&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 09&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pcl = X509&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alg = ANY&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Verification Key Index = 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 02&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target Key Index = 2&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 000009e8&amp;nbsp;&amp;nbsp;&amp;nbsp; Key Offset from CSF Start&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; ca 00 14 00 02 c5 00 00 00 00 0d 3c&amp;nbsp;&amp;nbsp; 17 7f f4 00 00 07 8c 00&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; ca&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Authenticate Data&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 0014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Length = 20&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flag&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 02&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Verification Key Index = 2&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; c5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pcl = CMS&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eng = ANY&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eng cfg flags&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00000d3c&amp;nbsp;&amp;nbsp;&amp;nbsp; Authentication Data Offset from CSF Start&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 177ff400&amp;nbsp;&amp;nbsp;&amp;nbsp; Absolute Address of Data Block to be authenticated&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00078c00&amp;nbsp;&amp;nbsp;&amp;nbsp; Size in bytes of Data Block to be authenticated&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; b2 00 08 1d 00 00 00 02&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; b2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unlock&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 0008&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Length = 8&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 1d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eng = CAAM&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 00000002&amp;nbsp;&amp;nbsp;&amp;nbsp; val = flg = 02 = Unlock RNG&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; d7 04 40 40&amp;nbsp;&amp;nbsp;&amp;nbsp; e1 01 0f 21&amp;nbsp;&amp;nbsp;&amp;nbsp; 00 00 00 80&amp;nbsp;&amp;nbsp;&amp;nbsp; 01 00 00 03&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; d7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Certificate Tag&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 0440&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Length = 1088&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: 'Courier New';"&gt; 40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have also been able to dump the DDR3 Memory where the NAND Flash U-Boot Image gets copied by the ROM Boot.&amp;nbsp; I compared the DDR3 Memory dumps for both the Closed Configuration i.MX6 SoC, that fails, and the Open Configuration i.MX6 SoC, that works.&amp;nbsp; The DDR3 Memory dumps are identical, this shows that all of the U-Boot Image got copied from NAND Flash to DDR3 Memory on the Closed Configuration i.MX6, it just didn't get executed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does the ROM Boot not allow copying and executing a Signed U-Boot Image from NAND Flash to DDR3 Memory on a Closed Configuration i.MX6 SoC?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Richard Milakovich&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Nov 2015 20:29:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/HABv4-Signed-U-Boot-fails-to-run-standalone-from-NAND-Flash-on-a/m-p/416335#M62533</guid>
      <dc:creator>richardmilakovi</dc:creator>
      <dc:date>2015-11-16T20:29:03Z</dc:date>
    </item>
    <item>
      <title>Re: HABv4 Signed U-Boot fails to run standalone from NAND Flash on a i.MX6 SoC</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/HABv4-Signed-U-Boot-fails-to-run-standalone-from-NAND-Flash-on-a/m-p/416336#M62534</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp; The HAB event (0x1e, HAB_INV_RETURN, Failed callback function) means&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;that secondary NAND bootloader&amp;nbsp; - called in order to load the full image to &lt;BR /&gt;its final load address - failed. Please look at section 3.3 (Authenticate Image)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;of “HAB4_API.pdf” in CST documentation for more details.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Yuri&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Nov 2015 04:51:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/HABv4-Signed-U-Boot-fails-to-run-standalone-from-NAND-Flash-on-a/m-p/416336#M62534</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2015-11-19T04:51:45Z</dc:date>
    </item>
    <item>
      <title>Re: HABv4 Signed U-Boot fails to run standalone from NAND Flash on a i.MX6 SoC</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/HABv4-Signed-U-Boot-fails-to-run-standalone-from-NAND-Flash-on-a/m-p/416337#M62535</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The information saying the "Failed callback function" error is caused by the full image not being loaded to its final load address got me to realize that the size of the Signed U-Boot Image I was loading does not match the Length field in the "Boot Data structure", my Signed U-Boot Image was too small.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Since I allocated 0x2000 bytes for the CSF Data section when creating my U-Boot Image, the CSF Binary Data I appended to create the Signed U-Boot Image also has to be 0x2000 bytes in size.&lt;/P&gt;&lt;P&gt;I used the following commands to pad the CSF Binary Data file to 0x2000 bytes before appending it to the end of the built U-Boot Image.&amp;nbsp; This created a Signed U-Boot Image that now works standalone from NAND Flash for my Closed Configuration i.MX6 SoC.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ../linux64/cst --output u-boot-csf.bin &amp;lt; u-boot-csf.txt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objcopy -I binary -O binary --pad-to 0x2000 --gap-fill=0x5a u-boot-csf.bin u-boot-csf-pad.bin&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cat u-boot.imx u-boot-csf-pad.bin &amp;gt; u-boot-signed-pad.imx&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Nov 2015 01:02:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/HABv4-Signed-U-Boot-fails-to-run-standalone-from-NAND-Flash-on-a/m-p/416337#M62535</guid>
      <dc:creator>richardmilakovi</dc:creator>
      <dc:date>2015-11-20T01:02:49Z</dc:date>
    </item>
  </channel>
</rss>

