<?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 RT Crossover MCUsのトピックRe: HAB</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/HAB/m-p/2410251#M37125</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/261235"&gt;@Abhay2080&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P class="p8i6j01 paragraph"&gt;The flow is something like below:&lt;/P&gt;
&lt;OL class="p8i6j02"&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;Dev team sets &lt;CODE class="p8i6j0f"&gt;csf&lt;/CODE&gt; = &lt;CODE class="p8i6j0f"&gt;0x60000000 + sizeof(firmware.bin)&lt;/CODE&gt;&lt;/STRONG&gt; in the IVT during the build. This is a linker/build-time constant.&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;CST reads &lt;CODE class="p8i6j0f"&gt;firmware.bin&lt;/CODE&gt;&lt;/STRONG&gt; (which already has the correct &lt;CODE class="p8i6j0f"&gt;csf&lt;/CODE&gt; pointer), computes the SHA-256 hash over the &lt;CODE class="p8i6j0f"&gt;[Authenticate Data]&lt;/CODE&gt; blocks (which includes the IVT with its pre-set &lt;CODE class="p8i6j0f"&gt;csf&lt;/CODE&gt; value), and produces &lt;CODE class="p8i6j0f"&gt;csf.bin&lt;/CODE&gt;.&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;&lt;CODE class="p8i6j0f"&gt;cat firmware.bin csf.bin&lt;/CODE&gt;&lt;/STRONG&gt; places &lt;CODE class="p8i6j0f"&gt;csf.bin&lt;/CODE&gt; at exactly byte offset &lt;CODE class="p8i6j0f"&gt;sizeof(firmware.bin)&lt;/CODE&gt; — which maps to AHB address &lt;CODE class="p8i6j0f"&gt;0x60020000&lt;/CODE&gt; — exactly where the IVT's &lt;CODE class="p8i6j0f"&gt;csf&lt;/CODE&gt; field already points.&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;HAB at boot&lt;/STRONG&gt; reads &lt;CODE class="p8i6j0f"&gt;csf&lt;/CODE&gt; from IVT → jumps to &lt;CODE class="p8i6j0f"&gt;0x60020000&lt;/CODE&gt; → finds the CSF → authenticates.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have a great day,&lt;BR /&gt;Kan&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;BR /&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt;Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;</description>
    <pubDate>Wed, 02 Sep 2026 01:01:35 GMT</pubDate>
    <dc:creator>Kan_Li</dc:creator>
    <dc:date>2026-09-02T01:01:35Z</dc:date>
    <item>
      <title>HAB</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/HAB/m-p/2410104#M37120</link>
      <description>&lt;P class=""&gt;&lt;SPAN&gt;I am working on signing the firmware and preparing it for secure boot.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Suppose the development team provides me with a firmware image that already contains the FCB/FCFB, IVT, Boot Data, and other required boot components. My responsibility is only to sign the image and provide the signed firmware back to the development team.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;I am using the CST (Code Signing Tool) to generate the signed firmware. I have created the &lt;/SPAN&gt;&lt;SPAN&gt;csf.txt&lt;/SPAN&gt;&lt;SPAN&gt; file and used &lt;/SPAN&gt;&lt;SPAN&gt;cst.exe&lt;/SPAN&gt;&lt;SPAN&gt; to generate &lt;/SPAN&gt;&lt;SPAN&gt;csf.bin&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;My question is: &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN&gt;If I simply append &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;SPAN&gt;csf.bin&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;SPAN&gt; to the existing firmware image, will the firmware actually be considered signed?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;My understanding is that the IVT contains a pointer to the CSF, so if I simply append &lt;/SPAN&gt;&lt;SPAN&gt;csf.bin&lt;/SPAN&gt;&lt;SPAN&gt; without updating the IVT to point to the CSF location, the ROM may not know where to find the CSF.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;So, what is the correct procedure for signing an existing firmware image that already contains the FCB/FCFB, IVT, Boot Data, and other boot components?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I would like to understand the proper flow for generating the final signed firmware image that can be used for secure boot.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 01 Sep 2026 11:00:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/HAB/m-p/2410104#M37120</guid>
      <dc:creator>Abhay2080</dc:creator>
      <dc:date>2026-09-01T11:00:58Z</dc:date>
    </item>
    <item>
      <title>Re: HAB</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/HAB/m-p/2410251#M37125</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/261235"&gt;@Abhay2080&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P class="p8i6j01 paragraph"&gt;The flow is something like below:&lt;/P&gt;
&lt;OL class="p8i6j02"&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;Dev team sets &lt;CODE class="p8i6j0f"&gt;csf&lt;/CODE&gt; = &lt;CODE class="p8i6j0f"&gt;0x60000000 + sizeof(firmware.bin)&lt;/CODE&gt;&lt;/STRONG&gt; in the IVT during the build. This is a linker/build-time constant.&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;CST reads &lt;CODE class="p8i6j0f"&gt;firmware.bin&lt;/CODE&gt;&lt;/STRONG&gt; (which already has the correct &lt;CODE class="p8i6j0f"&gt;csf&lt;/CODE&gt; pointer), computes the SHA-256 hash over the &lt;CODE class="p8i6j0f"&gt;[Authenticate Data]&lt;/CODE&gt; blocks (which includes the IVT with its pre-set &lt;CODE class="p8i6j0f"&gt;csf&lt;/CODE&gt; value), and produces &lt;CODE class="p8i6j0f"&gt;csf.bin&lt;/CODE&gt;.&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;&lt;CODE class="p8i6j0f"&gt;cat firmware.bin csf.bin&lt;/CODE&gt;&lt;/STRONG&gt; places &lt;CODE class="p8i6j0f"&gt;csf.bin&lt;/CODE&gt; at exactly byte offset &lt;CODE class="p8i6j0f"&gt;sizeof(firmware.bin)&lt;/CODE&gt; — which maps to AHB address &lt;CODE class="p8i6j0f"&gt;0x60020000&lt;/CODE&gt; — exactly where the IVT's &lt;CODE class="p8i6j0f"&gt;csf&lt;/CODE&gt; field already points.&lt;/LI&gt;
&lt;LI class="p8i6j0a"&gt;&lt;STRONG&gt;HAB at boot&lt;/STRONG&gt; reads &lt;CODE class="p8i6j0f"&gt;csf&lt;/CODE&gt; from IVT → jumps to &lt;CODE class="p8i6j0f"&gt;0x60020000&lt;/CODE&gt; → finds the CSF → authenticates.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have a great day,&lt;BR /&gt;Kan&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;BR /&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt;Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;</description>
      <pubDate>Wed, 02 Sep 2026 01:01:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/HAB/m-p/2410251#M37125</guid>
      <dc:creator>Kan_Li</dc:creator>
      <dc:date>2026-09-02T01:01:35Z</dc:date>
    </item>
  </channel>
</rss>

