<?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>Kinetis MicrocontrollersのトピックRe: Typo on CRC32 value of Keyblob example?</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604865#M35637</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Javier,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am checking with your queries. I will let you know when I collect the whole answers.&lt;/P&gt;&lt;P&gt;Thank you for the patience.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;Hui&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 19 Dec 2016 08:53:24 GMT</pubDate>
    <dc:creator>Hui_Ma</dc:creator>
    <dc:date>2016-12-19T08:53:24Z</dc:date>
    <item>
      <title>Typo on CRC32 value of Keyblob example?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604861#M35633</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am following the example code from the file: K82P121M150SF5RM.pdf for the Freedom K82f board.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In page 174, there is an example on what the keyblob should look like before and after AES-128 encryption.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do not see however, an explanation on how the CRC32 checksum is calculated. I have tried using the fsl_crc code, but it gives me different checksum values.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unlikely but possible: The description says the en address is 0x68ffffff, but the memdump says the value is 0x68fffffb. But I am not sure about this, since the lower part of the end address is supposed to correspond to other flags.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Some questions:&lt;/P&gt;&lt;P&gt;-&amp;nbsp;Must the keyblob always be aes-128 encrypted?&lt;/P&gt;&lt;P&gt;- Is it mandatory to use an encrypted keyblob to use the OTFAD?&lt;/P&gt;&lt;P&gt;- Is there already an AES-128 implementation included somewhere on the SDK?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;An extract of my code, basically copied from the crc example on the SDK:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;static void InitCrc32(CRC_Type *base, uint32_t seed)&lt;/P&gt;&lt;P&gt;{&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;crc_config_t config;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;config.polynomial = 0x04C11DB7U;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;config.seed = seed;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;config.reflectIn = true;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;config.reflectOut = true;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;config.complementChecksum = true;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;config.crcBits = kCrcBits32;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;config.crcResult = kCrcFinalChecksum;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;CRC_Init(base, &amp;amp;config);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static uint32_t calc_crc32(uint8_t* data, size_t len)&lt;/P&gt;&lt;P&gt;{&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;uint32_t checksum32;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;CRC_Type *base = CRC0;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;InitCrc32(base, 0xFFFFFFFFU);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;CRC_WriteData(base, data, len);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;checksum32 = CRC_Get32bitResult(base);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;return checksum32;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;crc32 = calc_crc32((uint8_t*)data, 0x20);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any pointers will be greatly appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Javier&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Dec 2016 16:01:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604861#M35633</guid>
      <dc:creator>javiersoriano</dc:creator>
      <dc:date>2016-12-12T16:01:04Z</dc:date>
    </item>
    <item>
      <title>Re: Typo on CRC32 value of Keyblob example?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604862#M35634</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Must the keyblob always be aes-128 encrypted?&lt;BR /&gt;TS: Yes, the ROM bootloader (QuadSPI) protecting intellectual property with AES-128 algorithm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Is it mandatory to use an encrypted keyblob to use the OTFAD?&lt;BR /&gt;TS: No.&lt;BR /&gt;There are two types of QuadSPI image boot flow:&lt;BR /&gt;• Boot from a plaintext QuadSPI image. This method can be used on all targets with QuadSPI support.&lt;BR /&gt;• Boot from an encrypted QuadSPI image. This method can only be used on K8x processors that include OTFAD support, such as MK81F256 and MK82F256.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Is there already an AES-128 implementation included somewhere on the SDK?&lt;BR /&gt;TS: Yes, customer could find mmcau module demo for AES-128 algorithm with KSDK V2.0 for FRDM-K82F board:&lt;BR /&gt;C:\Freescale\SDK_2.0_FRDM-K82F\boards\frdmk82f\mmcau_examples\mmcau_api&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Customer could find more info about Kinetis Bootloader QuadSPI from attached file.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;BR /&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>Wed, 14 Dec 2016 04:30:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604862#M35634</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2016-12-14T04:30:15Z</dc:date>
    </item>
    <item>
      <title>Re: Typo on CRC32 value of Keyblob example?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604863#M35635</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Hui,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the information. I have been reading the QSPI user guide (the one you attached), as well as the "K82 Sub-Family Reference Manual".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;- Is it mandatory to use an encrypted keyblob to use the OTFAD?&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;TS: No.&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;There are two types of QuadSPI image boot flow:&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;• Boot from a plaintext QuadSPI image. This method can be used on all targets with QuadSPI support.&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;• Boot from an encrypted QuadSPI image. This method can only be used on K8x processors that include OTFAD support, such as MK81F256 and MK82F256.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;The thing is, &lt;STRONG&gt;I do not want to boot an application from the QSPI&lt;/STRONG&gt;. I want to boot from my app from the internal flash, and I want that app to be able to read encrypted data from the QSPI using the OTFAD. &lt;STRONG&gt;Is this possible?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now, in the following diagram, I see the boot sequence that leads to configuring the OTFAD:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="boot sequence.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/11900i7BD80B79B873779B/image-size/large?v=v2&amp;amp;px=999" role="button" title="boot sequence.png" alt="boot sequence.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Another question is: &lt;STRONG&gt;Is this the only way to configure the OTFAD?&amp;nbsp;Is there an alternative?&lt;/STRONG&gt;&amp;nbsp;For example, instructing my app to write in the OTFAD_CR, OTFAD_CTX&lt;EM&gt;n_&lt;/EM&gt;KEY_W&lt;EM&gt;n,&lt;/EM&gt; OTFAD_CTX&lt;EM&gt;n_&lt;/EM&gt;CTR_W&lt;EM&gt;n,&amp;nbsp;&lt;/EM&gt;and OTFAD_CTX&lt;EM&gt;n&lt;/EM&gt;_RGD_W&lt;EM&gt;n&lt;/EM&gt; registers.&lt;/P&gt;&lt;P&gt;*&lt;EM&gt;Note: I will just try it, but I'm posting this for completeness and hoping that someone has walked down this road before.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- What is the criteria to know if the KEK is valid?&lt;/STRONG&gt; Is it enough that it is different to all 0's or 1's?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for all the questions. I am trying to connect all the dots in my mind by asking quesitons here as well, hoping that sometime later this helps another person too.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;Javier&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Dec 2016 09:48:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604863#M35635</guid>
      <dc:creator>javiersoriano</dc:creator>
      <dc:date>2016-12-14T09:48:18Z</dc:date>
    </item>
    <item>
      <title>Re: Typo on CRC32 value of Keyblob example?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604864#M35636</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;EDIT: I tried to change the values of the OTFAD control registers from my application (stored in internal flash):&lt;/P&gt;&lt;P&gt;------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define OTFAD_CR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(uint8_t*)0x400DB800&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;#define OTFAD_SR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(uint8_t*)0x400DB804&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;#define OTFAD_CTX0_KEY_W0 (uint8_t*)0x400DB900&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;#define OTFAD_CTX0_KEY_W1 (uint8_t*)0x400DB904&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;#define OTFAD_CTX0_KEY_W2 (uint8_t*)0x400DB908&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;#define OTFAD_CTX0_KEY_W3 (uint8_t*)0x400DB90C&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;#define OTFAD_CTX0_CTR_W0 (uint8_t*)0x400DB910&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;#define OTFAD_CTX0_CTR_W1 (uint8_t*)0x400DB914&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;#define OTFAD_CTX0_RGD_W0 (uint8_t*)0x400DB918&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;#define OTFAD_CTX0_RGD_W1 (uint8_t*)0x400DB91C&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int qspi_init()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; uint32_t clockSourceFreq = 0;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; qspi_config_t config = {0};&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; /*Get QSPI default settings and configure the qspi */&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; QSPI_GetDefaultQspiConfig(&amp;amp;config);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; /*Set AHB buffer size for reading data through AHB bus */&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; config.AHBbufferSize[3] = FLASH_PAGE_SIZE;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; clockSourceFreq = CLOCK_GetFreq(QSPI_CLOCK_SOURCE);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; QSPI_Init(EXAMPLE_QSPI, &amp;amp;config, clockSourceFreq);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; /* According to serial flash feature to configure flash settings */&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; QSPI_SetFlashConfig(EXAMPLE_QSPI, &amp;amp;single_config);&lt;BR /&gt;&amp;nbsp; &amp;nbsp; enable_quad_mode();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void otfad_init()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t otfad_cr_value = 0x80300000;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t test_aes_key[16] = { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F};&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint8_t test_ctr[8] = {0x01,0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF};&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t start_addr = 0x68000000;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t end_addr = 0x68fffffb;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t otfad_status = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(OTFAD_CR, (uint8_t*)otfad_cr_value, 4);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(OTFAD_CTX0_KEY_W0, test_aes_key, 4);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(OTFAD_CTX0_KEY_W1, test_aes_key + &amp;nbsp;4, 4);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(OTFAD_CTX0_KEY_W2, test_aes_key + &amp;nbsp;8, 4);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(OTFAD_CTX0_KEY_W3, test_aes_key + 12, 4);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(OTFAD_CTX0_CTR_W0, test_ctr, 4);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(OTFAD_CTX0_CTR_W1, test_ctr + 4, 4);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(OTFAD_CTX0_RGD_W0, (uint8_t*)start_addr, 4);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(OTFAD_CTX0_RGD_W1, (uint8_t*)end_addr, 4);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy((uint8_t*)otfad_status, OTFAD_SR, 4);&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;logger_debug("OTFAD status: 0x%x\r\n", otfad_status);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but it gives a hard fault from the very first memcpy.&amp;nbsp;If I'm doing it correctly, I am at this point already initializing the QSPI, so I'm unsure on why the hard fault is there, or the reading problems. No luck yet.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Dec 2016 13:19:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604864#M35636</guid>
      <dc:creator>javiersoriano</dc:creator>
      <dc:date>2016-12-14T13:19:34Z</dc:date>
    </item>
    <item>
      <title>Re: Typo on CRC32 value of Keyblob example?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604865#M35637</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Javier,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am checking with your queries. I will let you know when I collect the whole answers.&lt;/P&gt;&lt;P&gt;Thank you for the patience.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;Hui&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Dec 2016 08:53:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604865#M35637</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2016-12-19T08:53:24Z</dc:date>
    </item>
    <item>
      <title>Re: Typo on CRC32 value of Keyblob example?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604866#M35638</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Hui,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Much appreciated. I'll continue also doing tests on my side in the meantime.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Javier&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Dec 2016 12:37:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604866#M35638</guid>
      <dc:creator>javiersoriano</dc:creator>
      <dc:date>2016-12-19T12:37:29Z</dc:date>
    </item>
    <item>
      <title>Re: Typo on CRC32 value of Keyblob example?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604867#M35639</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Javier,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If QSPI memory could store the encrypted data? The answer is yes.&lt;BR /&gt;The QSPI memory doesn't care the stored content is code or data. &lt;BR /&gt;Customer does not need to initialize the OTFAD module, the QSPI encrypted data will be automatically decrypted via OTFAD and be placed to AHB RAM Buffer.&lt;BR /&gt;As below picture shows that, the related QSPI Flash address is accessible to core or edma module with correct key.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/12651i026E4694CCB788B2/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Customer just need to set the keyblob structure with correct start address and end address.&lt;BR /&gt;The keyblob structure with up to 4 keyblob entries supported, which customer can use to place ecrypted data to those memory range.&lt;BR /&gt;The plain text data also could be placed to QSPI, for example split encrypted data vs. plain text data with different QSPI memory address:&lt;/P&gt;&lt;P&gt;such as: &lt;BR /&gt;encrypted data: 0x6800_1000 - 0x6800_5000&lt;BR /&gt;plain texted data：0x6800_6000 - 0x6800_F000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then modify qspi_image_encrypt.bd's end address to the end of your encrypted data with address: 0x6800_6000&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/12694iEF53AAA808EB7C0F/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f; background: white;"&gt;the KBOOT will automatically&amp;nbsp;&lt;/SPAN&gt; record those start/end address and fill into OTFAD registers to make sure that&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;0x6800_1000 - 0x6800_5000 will be&amp;nbsp;&lt;SPAN&gt;decrypted while data in&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;0x6800_6000 - 0x6800_F000 will flow into CPU directly.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NXP provide the Elftosb tool help to create a "secure binary" for SB file to place to QSPI memory range.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/12734iD8A51F93A4C3BD9C/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Customer could find more detailed info about Elftosb tool with Kinetis bootloader v2.0 software and related document.&lt;/P&gt;&lt;P&gt;The Kinetis bootloader V2.0 software could be downloaded from &lt;A href="http://www.nxp.com/applications/solutions-for-the-iot-and-adas/smart-connected-solutions-for-the-iot/smart-cities-in-the-age-of-iot/smart-energy/off-grid-solar-power-inverters/kinetis-bootloader:KBOOT?tab=Design_Tools_Tab"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;BR /&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>Tue, 20 Dec 2016 04:15:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604867#M35639</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2016-12-20T04:15:20Z</dc:date>
    </item>
    <item>
      <title>Re: Typo on CRC32 value of Keyblob example?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604868#M35640</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am marking this answer as correct. I had further questions (below) but they are unrelated and/or a topic on its own. If I cannot find the answers for those. I'll open a new discussion. Thanks Hui!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Dec 2016 15:47:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Typo-on-CRC32-value-of-Keyblob-example/m-p/604868#M35640</guid>
      <dc:creator>javiersoriano</dc:creator>
      <dc:date>2016-12-21T15:47:06Z</dc:date>
    </item>
  </channel>
</rss>

