<?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: uTasker bootloader with iMXRT1064</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1349914#M181003</link>
    <description>&lt;P&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/1431"&gt;@mjbcswitzerland&lt;/a&gt; ,&lt;/P&gt;&lt;P&gt;thank you for your answers, both in this thread and in the other. Regarding the memory occupancy the situation is the following (consider that the project is going to expand further in the next future):&lt;/P&gt;&lt;P&gt;Memory region Used Size Region Size %age Used&lt;BR /&gt;PROGRAM_FLASH: 309384 B 4 MB 7.38%&lt;BR /&gt;SRAM_DTC: 132312 B 256 KB 50.47%&lt;BR /&gt;SRAM_ITC: 9352 B 128 KB 7.14%&lt;BR /&gt;SRAM_OC: 0 GB 640 KB 0.00%&lt;/P&gt;&lt;P&gt;Even if I move the remaing partitionable 128k OCRAM slot to ITCM, it's not enough yet. Maybe the only solution would be to move global data from DTCM to OCRAM, but it could affect program performances as well ("cachable or not cachable, this is the dilemma"). What do you think?&lt;/P&gt;&lt;P&gt;I thought about the code protection and I missed a point. If we need to provide to customer an updated release of the program (after all, it's the reason why a bootloader exists), they can easely obtain the source code from the executable!&lt;BR /&gt;I think that the only solution is to encrypt the code, and I don't understand why my code hello_world (the encryped form) posted before, doesn't work.&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Davide Brunelli&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 04 Oct 2021 08:07:56 GMT</pubDate>
    <dc:creator>Davidino</dc:creator>
    <dc:date>2021-10-04T08:07:56Z</dc:date>
    <item>
      <title>uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1346556#M180658</link>
      <description>&lt;P&gt;Goodmorning to all, and especially &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/1431"&gt;@mjbcswitzerland&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've been using the iMXRT1064-evk board with SDK version 2.9.1.&lt;/P&gt;&lt;P&gt;I've recently tested the uTasker bootloader project with USB-MSD device mode. I followed the guide &lt;A href="https://www.utasker.com/docs/iMX/MCUXpresso.pdf" target="_blank" rel="noopener"&gt;https://www.utasker.com/docs/iMX/MCUXpresso.pdf&lt;/A&gt;, built the bootloaders and modified my application to make it suitable for uTasker (chapter 5).&lt;/P&gt;&lt;P&gt;The application plain code version (*_XiP.bin) works perfectly with the bootloader, but the BEE encrypted version (*_XiP_BEE.bin) doesn't. As a test I've download the encrypted application &lt;A href="https://www.utasker.com/iMX/iMXRT1064/uTaskerV1.4.14_i.MX-RT1064_SD-USB-MSD_AES256.bin" target="_blank" rel="noopener"&gt;uTaskerV1.4.14_i.MX-RT1064_SD-USB-MSD_AES256.bin&lt;/A&gt; found at the bottom of this page &lt;A href="https://www.utasker.com/iMX/RT1064.html," target="_blank" rel="noopener"&gt;https://www.utasker.com/iMX/RT1064.html.&lt;/A&gt; I tried to upload it with uTasker bootloader that I compiled and it works!&lt;/P&gt;&lt;P&gt;Hence I think that the problem is not the bootloader but something concerning the encrypted application file.&lt;/P&gt;&lt;P&gt;I've modified the &lt;STRONG&gt;generate.bat&lt;/STRONG&gt; as follow:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;SET PATH=%PATH%;C:\myNxp\totalProjectWorkspace\uTasker-GIT-Kinetis\Tools

rem - select the target being built for in order to automate combining production file

set SECRET_KEY="aes256 secret key"
set VECTOR="initial vector"
set MAGIC=234
set AUTHENTICATION=a748b6531124

rem - generate uploadable version (plain code)
uTaskerConvert.exe %1.bin %1_XiP.bin +../boot_header.txt -0x0%MAGIC% -%AUTHENTICATION%

rem - encrypt for OTF XiP operation
rem - used by OTFAD
uTaskerConvert.exe %1.bin %1_OTFAD.bin E=128-70020400 $%SECRET_KEY% $%VECTOR%)
uTaskerConvert.exe %1_OTFAD.bin %1_XiP_OTFAD.bin +../boot_header.txt -0x5%MAGIC% -%AUTHENTICATION%
del %1_OTFAD.bin

rem - used by BEE
uTaskerConvert.exe %1.bin %1_BEE.bin E=128B-70020400 $%SECRET_KEY% $%VECTOR%)
uTaskerConvert.exe %1_BEE.bin %1_XiP_BEE.bin +../boot_header.txt -0x5%MAGIC% -%AUTHENTICATION%
del %1_BEE.bin&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The boot_header.txt file is the following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;// We add 760 bytes of padding between the header and the start of code in order to
// align the code on a 1k (0x400) byte boundary (ensures on-the-fly decryption compatibility,
// library compatibility and also allows interrupt vectors to remain in code)

02f8
ffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff

ffffffffffffffff
ffffffffffffffff
ffffffffffffffff
ffffffffffffffff&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The MCU settings is as follow:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt; &amp;lt;chip&amp;gt;
  &amp;lt;memory id='Flash' type='Flash' is_ro='true' can_program='true'&amp;gt;&amp;lt;/memory&amp;gt;
  &amp;lt;memory id='RAM' type='RAM'&amp;gt;&amp;lt;/memory&amp;gt;
   &amp;lt;memoryInstance id='PROGRAM_FLASH' derived_from='Flash' location='0x70020400' size='0x3dfc00' driver='MIMXRT1064.cfx'  edited='true'  /&amp;gt;
   &amp;lt;memoryInstance id='SRAM_DTC' derived_from='RAM' location='0x20000000' size='0x40000'   edited='true'  /&amp;gt;
   &amp;lt;memoryInstance id='SRAM_ITC' derived_from='RAM' location='0x0' size='0x20000'   edited='true'  /&amp;gt;
   &amp;lt;memoryInstance id='SRAM_OC' derived_from='RAM' location='0x20200000' size='0xa0000'   edited='true'  /&amp;gt;
 &amp;lt;/chip&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Have you got any advices?&lt;/P&gt;&lt;P&gt;Thank you in advance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Davidino&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Sep 2021 06:46:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1346556#M180658</guid>
      <dc:creator>Davidino</dc:creator>
      <dc:date>2021-09-27T06:46:10Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1347046#M180686</link>
      <description>&lt;P&gt;Hi Davidino&lt;/P&gt;&lt;P&gt;&lt;EM&gt;It may be better to post in the i.MX RT forum that in the i.MX forum.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;Did you also see the video guide at &lt;A href="https://www.youtube.com/watch?v=5iT7KP691ls&amp;amp;list=PLWKlVb_MqDQEOCnsNOJO8gd3jDCwiyKKe&amp;amp;index=10" target="_blank"&gt;https://www.youtube.com/watch?v=5iT7KP691ls&amp;amp;list=PLWKlVb_MqDQEOCnsNOJO8gd3jDCwiyKKe&amp;amp;index=10&lt;/A&gt; ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When you say it doesn't work is it that the &lt;U&gt;loading&lt;/U&gt; fails (incorrect coding would be ignored) or is it that it loads but the loaded &lt;U&gt;code&lt;/U&gt; fails?&lt;/P&gt;&lt;P&gt;There will be an XiP and an encrypted XiP for BEE on-the-fly operation generated with each build that will 'theoretically" both operate (since the boot loader handles all the details of setting up decrypted operation on the fly without needing any fixed configuration or special keys to be loaded). The magic number beginning with 0x0xxx informs the boot loader that the image is built for XiP unencrypted mode (without flash configuration block) and 0x5xxx the same - but encrypted - so the same actual XiP image is used in both cases.&lt;BR /&gt;&lt;BR /&gt;If the code fails you can still debug it with the debugger [as long as not permanently disabled via eFUSE setting] (where the decrypted content is visible as decrypted - plain-text - content by the debugger) and see where it fails. There may be an operation that is not allowed when using BEE decryption (there are a few restrictions on the 1011 in OTFAD mode, for example) even if I am not aware of such at the moment.&lt;BR /&gt;&lt;BR /&gt;I don't see any set up issues since, as noted, the only actual difference between XiP and encrypted XiP is just the encryption step of the exact same firmware image.&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;&lt;BR /&gt;Mark&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Sep 2021 18:47:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1347046#M180686</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2021-09-27T18:47:50Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1347087#M180692</link>
      <description>&lt;P&gt;Davidino&lt;BR /&gt;&lt;BR /&gt;On a practical point - is on-the-fly decryption from the internal QSPI flash in the 1064 really of practical significance? The flash is not accessible as it is on-chip and so code protection is less important as it can't be read out (unless the chips were to be opened in some way). Since on-the-fly decryption has a performance hit (not sure how much, but I heard of 30% or so) it seems that in many cases the 1064 has an advantage in that on-the-fly decryption may not be needed to ensure IP protection (in most standard instances) - compared to designs with off-chip QSPI flash where it would easily be extracted when not in encrypted from.&lt;BR /&gt;&lt;BR /&gt;Note also that if you have code that fits in the internal RAM (enough space for code and variables) you can also use AES256 encryption in the flash and the uTasker boot loader will dynamically configure the FlexRAM to suit and ensure optimal performance, which can be 10x faster than XiP operation and also with much better deterministic performance [optimal for deep embedded control] as (core / FlexSPI) caching is never needed.&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;&lt;BR /&gt;Mark&lt;/P&gt;</description>
      <pubDate>Mon, 27 Sep 2021 22:35:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1347087#M180692</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2021-09-27T22:35:14Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1348468#M180831</link>
      <description>&lt;P&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/1431"&gt;@mjbcswitzerland&lt;/a&gt; , thank you for your answer.&lt;/P&gt;&lt;P&gt;Below some questions and answer.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Yes, I saw both the video and pdf, thank you.&lt;/LI&gt;&lt;LI&gt;The code size doesn't fit in ITCM as it's more than 300kB and I cannot reduce DTCM, so I simply moved some crucial functions in ITCM with _RAMFUNC() attribute (including cr_section_macros.h file).&lt;/LI&gt;&lt;LI&gt;Regarding the fact that the code contained inside the processor itself is protected, isn't it possible to read the flash memory content via USB using MCU NXP Boot Utility or with JTAG? Do I have to burn some eFuses so that flash memory content cannot be read?&lt;/LI&gt;&lt;LI&gt;Regarding the error that I get: The application is accepted (as the folder UPLOAD_DISK doesn't remain open) but the program doesn't work properly. I tested the bootloader with the simple hello_world SDK example, modified as explained in previous post, and the situation is the same (with _XIP version, it prints hello world with _XIP_BEE, it doesn't). You can find the project in attachment together with uTasker compiled bootloaders (writing on eFuses is disabled).&lt;/LI&gt;&lt;LI&gt;I tried to "attach to a running target using LinkServer" as explained here &lt;A href="https://www.utasker.com/docs/iMX/MCUXpresso.pdf" target="_blank" rel="noopener"&gt;https://www.utasker.com/docs/iMX/MCUXpresso.pdf&lt;/A&gt; chapter 7 but it goes in "Read Timeout" both with XIP and XIP_BEE executable.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Thank you for your support.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Davidino&lt;/P&gt;</description>
      <pubDate>Wed, 29 Sep 2021 15:01:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1348468#M180831</guid>
      <dc:creator>Davidino</dc:creator>
      <dc:date>2021-09-29T15:01:21Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1349303#M180912</link>
      <description>&lt;P&gt;Hi Davidino&lt;BR /&gt;&lt;BR /&gt;I posted in your other thread about protecting Flash here: &lt;A href="https://community.nxp.com/t5/i-MX-RT/Prevent-internal-ROM-code-from-being-read-in-imxRT1064/m-p/1348463#M16512" target="_blank"&gt;https://community.nxp.com/t5/i-MX-RT/Prevent-internal-ROM-code-from-being-read-in-imxRT1064/m-p/1348463#M16512&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Note that the 1064 has 1MByte RAM so 300kByte code could operate in ITC, depending on the variable size and where they are located (512k RAM and 196k DTC, for example).&lt;/P&gt;&lt;P&gt;As noted in the other thread JTAG and ISP are sources of easy access to code, even when On-the-Fly encoded. So these interfaces have to be disabled or protected to an adequate degree.&lt;/P&gt;&lt;P&gt;Regards&lt;BR /&gt;&lt;BR /&gt;Mark&lt;/P&gt;</description>
      <pubDate>Thu, 30 Sep 2021 19:25:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1349303#M180912</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2021-09-30T19:25:53Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1349914#M181003</link>
      <description>&lt;P&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/1431"&gt;@mjbcswitzerland&lt;/a&gt; ,&lt;/P&gt;&lt;P&gt;thank you for your answers, both in this thread and in the other. Regarding the memory occupancy the situation is the following (consider that the project is going to expand further in the next future):&lt;/P&gt;&lt;P&gt;Memory region Used Size Region Size %age Used&lt;BR /&gt;PROGRAM_FLASH: 309384 B 4 MB 7.38%&lt;BR /&gt;SRAM_DTC: 132312 B 256 KB 50.47%&lt;BR /&gt;SRAM_ITC: 9352 B 128 KB 7.14%&lt;BR /&gt;SRAM_OC: 0 GB 640 KB 0.00%&lt;/P&gt;&lt;P&gt;Even if I move the remaing partitionable 128k OCRAM slot to ITCM, it's not enough yet. Maybe the only solution would be to move global data from DTCM to OCRAM, but it could affect program performances as well ("cachable or not cachable, this is the dilemma"). What do you think?&lt;/P&gt;&lt;P&gt;I thought about the code protection and I missed a point. If we need to provide to customer an updated release of the program (after all, it's the reason why a bootloader exists), they can easely obtain the source code from the executable!&lt;BR /&gt;I think that the only solution is to encrypt the code, and I don't understand why my code hello_world (the encryped form) posted before, doesn't work.&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Davide Brunelli&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Oct 2021 08:07:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1349914#M181003</guid>
      <dc:creator>Davidino</dc:creator>
      <dc:date>2021-10-04T08:07:56Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1350330#M181033</link>
      <description>&lt;P&gt;Hi Davide&lt;BR /&gt;&lt;BR /&gt;I expect that OCRAM with caching would be a good solution since running code in ITC can be 10x faster than when running from QSPI flash. The OCRAM is about 1/4 the speed of DTC but with the cache it will tend to be more efficient much of the time.&lt;/P&gt;&lt;P&gt;You can (and should) still encode your application since you can then distribute it in a safe form. When the boot loader knows that it should be decrypted at reception and saved in plain XiP form it will then do this and the plain code is in the QSPI flash but never visible externally (or in the distributed files).&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;&lt;BR /&gt;Mark&lt;/P&gt;</description>
      <pubDate>Tue, 05 Oct 2021 01:19:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1350330#M181033</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2021-10-05T01:19:54Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352600#M181264</link>
      <description>&lt;P&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/1431"&gt;@mjbcswitzerland&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;thank you for your message. I think I sorted out the problem: basically in generate.bat there was an extraneous ')' following the authentication code for BEE file generation. Once that I had removed it, it worked like a charm. I have one last question:&lt;/P&gt;&lt;P&gt;As far as I know, in uTasker among the several boot magic numbers, there isn't the option where the code to be loaded via MSD Device is encrypted but it's stored in Flash memory as plain code for XIP.&lt;BR /&gt;In this way there wouldn't be any performance reduction since it's already decrypted and, only in case of iMXRT1064, it would be safe (closing JTAG and ISP access) because it has an inner Flash memory.&lt;/P&gt;&lt;P&gt;Are there any plan to add it in the future?&lt;/P&gt;&lt;P&gt;Thank you for your support.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Davidino&lt;/P&gt;</description>
      <pubDate>Fri, 08 Oct 2021 10:13:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352600#M181264</guid>
      <dc:creator>Davidino</dc:creator>
      <dc:date>2021-10-08T10:13:51Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352642#M181269</link>
      <description>&lt;P&gt;Hi Davidino&lt;/P&gt;&lt;P&gt;Could you tell me whether that extraneous ')' was in an original bat file or was the result of a manipulation? I checked through the ones in the repository and didn't identify this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You are right that there is not presently a code for encrypted content to be saved in unencrypted form but it is quite easy to add. The existing codes are&lt;/P&gt;&lt;LI-CODE lang="c"&gt;#define BOOT_LOADER_TYPE_MASK                    0xf000
#define BOOT_LOADER_TYPE_PLAIN_XiP_RESET_VECTOR  0x0000                  // execute in QSPi flash (execute in place) starting with reset vector
#define BOOT_LOADER_TYPE_PLAIN_RAM_EXECUTION     0x1000                  // copy plain code to ITC and execute there
#define BOOT_LOADER_TYPE_PLAIN_XiP_CONFIG_TABLE  0x2000                  // execute in QSPi flash (execute in place) starting with configuration table
#define BOOT_LOADER_TYPE_PLAIN_SDRAM_EXECUTION   0x3000                  // copy plain code to SDRAM and execute there
#define BOOT_LOADER_TYPE_AES256_SDRAM_EXECUTION  0x4000                  // decrypt AES256 encrypted code to SDRAM and execute there
#define BOOT_LOADER_TYPE_AES128_XiP_RESET_VECTOR 0x5000                  // execute in QSPI flash (execute in place) starting with reset vector using on-the-fly decryption
#define BOOT_LOADER_TYPE_AES128_XiP_CONFIG_TABLE 0x6000                  // execute in QSPI flash (execute in place) starting with configuration table using on-the-fly decryption
#define BOOT_LOADER_TYPE_AES256_RAM_EXECUTION    0x9000                  // decrypt AES256 encrypted code to ITC and execute there&lt;/LI-CODE&gt;&lt;P&gt;So two new ones for "AES to plain code reset" and/or "AES to plain code with config table" could be added. The USB &lt;STRONG&gt;usb_device_loader.c&lt;/STRONG&gt; file which handles USB MSD class and loading checks the new file as it arrives and decrypts it on-the-fly (it can decrypt in AES128 or AES256 but I would suggest using AES256 when it doesn't need to be compatible with BEE, which (only) supports AES128 (although I understand there is no real difference in strength)) but usually it only decrypts the start so that it can verify that the content matches that which is advertised. The same file is also used for the Kinetis AES256 encrypted method which decrypts the full content on the fly and saves it to internal flash.&lt;BR /&gt;See &lt;A href="https://www.youtube.com/watch?v=MXsJvTdCcH4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=25" target="_blank"&gt;https://www.youtube.com/watch?v=MXsJvTdCcH4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=25&lt;/A&gt;&lt;BR /&gt;which means that the technique is already include in the actual code.&lt;BR /&gt;It will be necessary - at a couple of locations - to check the type code in order to choose the decryption algorithm setting to use and to continue decrypting before saving (as the Kinetis configuration will always does) when the code signals that it should be used.&lt;BR /&gt;&lt;BR /&gt;Also the primary loader will need to understand the new code so that it understands that it should start the application as plain-code (effectively equivalent to BOOT_LOADER_TYPE_PLAIN_XiP_RESET_VECTOR and BOOT_LOADER_TYPE_PLAIN_XiP_CONFIG_TABLE).&lt;BR /&gt;&lt;BR /&gt;Good luck&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;&lt;BR /&gt;Mark&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Oct 2021 11:46:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352642#M181269</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2021-10-08T11:46:56Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352663#M181272</link>
      <description>&lt;P&gt;Hello Mark,&lt;/P&gt;&lt;P&gt;thank you for your useful information.We are going to decide if we need to create this "new" bootloader mode (save file decrypted in flash) according to the performance that we can reach.&lt;/P&gt;&lt;P&gt;The problem was caused by me manipulating the file, but I can underline some bugs (at least as far as I can say):&lt;/P&gt;&lt;P&gt;In generate.bat for uTaskerV1.4_BM_XiP:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;...

if %1==MIMXRT1010 (set CODE=E=128-60020200) else (if %1==MIMXRT1050 (set CODE=E=128B-60080200) else (set CODE=E=128B-60020200))
if %iMX_RT%==MIMXRT1050 (set OFFSET=0x80000) else (set OFFSET=0x20000)

....&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Changed to (just to suit my need):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;if %1==MIMXRT1010 (set CODE=E=128-60020200) else (if %1==MIMXRT1050 (set CODE=E=128B-60080200) else (set CODE=E=128B-70020400))
if %1==MIMXRT1050 (set OFFSET=0x80000) else (set OFFSET=0x20000)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Aside that if I comment out "#define USE_HTTP" from config.h in uTaskerSerialBoot, I get error:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Hardware/iMX/iMX.o:(.rodata.ctTaskTable+0x34): undefined reference to `fnNetworkIndicator'
c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: ./uTasker/Driver.o: in function `fnWrite':
C:\myNxp\uTasker\uTasker-GIT-Kinetis\uTaskerSerialBoot/../uTasker/Driver.c:355: undefined reference to `fnNetworkTx'
c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: ./stack/Ethernet.o: in function `fnTaskEthernet':
C:\myNxp\uTasker\uTasker-GIT-Kinetis\uTaskerSerialBoot/../stack/Ethernet.c:299: undefined reference to `fnGetEthernetPars'
c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: ./stack/Ethernet.o: in function `fnEthernetMuxEvent':
C:\myNxp\uTasker\uTasker-GIT-Kinetis\uTaskerSerialBoot/../stack/Ethernet.c:1107: undefined reference to `network'
c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: ./stack/arp.o: in function `is_subnet':
C:\myNxp\uTasker\uTasker-GIT-Kinetis\uTaskerSerialBoot/../stack/arp.c:366: undefined reference to `network'
c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: ./stack/arp.o: in function `fnBuildSendARP':
C:\myNxp\uTasker\uTasker-GIT-Kinetis\uTaskerSerialBoot/../stack/arp.c:545: undefined reference to `network'
c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\myNxp\uTasker\uTasker-GIT-Kinetis\uTaskerSerialBoot/../stack/arp.c:545: undefined reference to `network'
c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: ./stack/arp.o: in function `fnTimeoutValue':
C:\myNxp\uTasker\uTasker-GIT-Kinetis\uTaskerSerialBoot/../stack/arp.c:413: undefined reference to `network'
c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: ./stack/arp.o:C:\myNxp\uTasker\uTasker-GIT-Kinetis\uTaskerSerialBoot/../stack/arp.c:752: more undefined references to `network' follow&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The reason is that without USE_HTTP in webinterface.c functions fnGetEthernetPars() and&amp;nbsp;fnNetworkTx() and struct&amp;nbsp;network are comment out, but they are still in use.&lt;/P&gt;&lt;P&gt;Hope it can help you.Thank you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Davidino&lt;/P&gt;</description>
      <pubDate>Fri, 08 Oct 2021 12:22:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352663#M181272</guid>
      <dc:creator>Davidino</dc:creator>
      <dc:date>2021-10-08T12:22:18Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352689#M181274</link>
      <description>&lt;P&gt;Hi Davidino&lt;/P&gt;&lt;P&gt;I think the bat file can be extended to automatically recognise the 1064 case with:&lt;BR /&gt;&lt;BR /&gt;if %1==MIMXRT1010 (set CODE=E=128-60020400) else if %1==MIMXRT1050 (set CODE=E=128B-60080400) &lt;STRONG&gt;else if %1==MIMXRT1064 (set CODE=E=128B-70020400)&lt;/STRONG&gt; else (set CODE=E=128B-60020400)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;The serial loader is usually used with HTTP,&amp;nbsp; MODBUS/TCP, FTP or TFTP and if these are all disabled (or TCP disabled) it is correct that you get those linker errors.&lt;BR /&gt;However, if you want to build a (test) version with just basic Ethernet support (eg. to test that it can ping without needing a TCP protocol) this can be solved as follows:&lt;BR /&gt;1. In webInterface.c make&lt;BR /&gt;NETWORK_PARAMETERS network[IP_NETWORK_COUNT] = ...&lt;BR /&gt;conditional on USE_IP (rather than it being conditional on HTTP, FTP, etc.&lt;BR /&gt;&lt;BR /&gt;2. In the same file do the same with the dummy functions fnNetworkTx() and fnGetEthernetPars().&lt;BR /&gt;&lt;BR /&gt;This will now build.&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;&lt;BR /&gt;Mark&lt;/P&gt;</description>
      <pubDate>Fri, 08 Oct 2021 12:59:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352689#M181274</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2021-10-08T12:59:38Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352695#M181277</link>
      <description>&lt;P&gt;Hello Mark,&lt;/P&gt;&lt;P&gt;if I'm not wrong this is an error, right?&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;if %iMX_RT%==MIMXRT1050 (set OFFSET=0x80000) else (set OFFSET=0x20000)&lt;/LI-CODE&gt;&lt;P&gt;and should be changed to:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;if %1==MIMXRT1050 (set OFFSET=0x80000) else (set OFFSET=0x20000)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;regarding the USE_HTTP the error happens, for example, even if USE_FTP is enabled.&lt;/P&gt;&lt;P&gt;Can you confirm? Thank you.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Oct 2021 13:06:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352695#M181277</guid>
      <dc:creator>Davidino</dc:creator>
      <dc:date>2021-10-08T13:06:21Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352723#M181282</link>
      <description>&lt;P&gt;Hi Davidino&lt;BR /&gt;&lt;BR /&gt;There are a number of bat files that are used in different environment:&lt;BR /&gt;The MCUXpresso version uses&lt;BR /&gt;if %1==MIMXRT1010&lt;BR /&gt;since the parameters are passed by the MCUXpresso post-build step as parameters:&lt;BR /&gt;and the GCC make file version uses&lt;BR /&gt;if %iMX_RT%==MIMXRT1010&lt;BR /&gt;since iMX_RT is manually set in the file.&lt;BR /&gt;Therefore both are correct but it depends which environment you are building in (and which of the bat files is actually being used).&lt;BR /&gt;&lt;BR /&gt;If I build with USE_FTP only I don't have any problems since those missing functions and struct are conditional on&lt;BR /&gt;&lt;STRONG&gt;#if defined USE_HTTP&lt;FONT color="#000080"&gt; || defined USE_FTP&lt;/FONT&gt; || defined USE_TFTP&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;Possibly you are using an older version where there is a difference but if you check these conditions it should be clear what is missing.&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;&lt;BR /&gt;Mark&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Oct 2021 13:38:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352723#M181282</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2021-10-08T13:38:41Z</dc:date>
    </item>
    <item>
      <title>Re: uTasker bootloader with iMXRT1064</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352738#M181285</link>
      <description>&lt;P&gt;Hello Mark,&lt;/P&gt;&lt;P&gt;thank you for your message, yes probably I have an older version. Thank you for your patience.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Davide Brunelli&lt;/P&gt;</description>
      <pubDate>Fri, 08 Oct 2021 13:54:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uTasker-bootloader-with-iMXRT1064/m-p/1352738#M181285</guid>
      <dc:creator>Davidino</dc:creator>
      <dc:date>2021-10-08T13:54:13Z</dc:date>
    </item>
  </channel>
</rss>

