<?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: OCOTP write support on i.mx8m</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825033#M126856</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;one can try with fuse programming in uboot nxp L4.14.62_1.0.0 &lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://source.codeaurora.org/external/imx/uboot-imx/tree/?h=imx_v2018.03_4.14.62_1.0.0_beta" title="https://source.codeaurora.org/external/imx/uboot-imx/tree/?h=imx_v2018.03_4.14.62_1.0.0_beta"&gt;uboot-imx - i.MX U-Boot&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 05 Dec 2018 00:52:55 GMT</pubDate>
    <dc:creator>igorpadykov</dc:creator>
    <dc:date>2018-12-05T00:52:55Z</dc:date>
    <item>
      <title>OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825028#M126851</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, Sir:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We'd like to burn MAC address after booting into linux system.&lt;BR /&gt;I check there is an ocotp node added in "fsl-imx8mq.dtsi".&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ocotp: ocotp-ctrl@30350000 {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;compatible = "fsl,imx8mq-ocotp", "fsl,imx7d-ocotp", "syscon";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;reg = &amp;lt;0 0x30350000 0 0x10000&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;clocks = &amp;lt;&amp;amp;clk IMX8MQ_CLK_OCOTP_ROOT&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* For nvmem subnodes */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;#address-cells = &amp;lt;1&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;#size-cells = &amp;lt;1&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;};&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;But i check fsl_otp.c&lt;/P&gt;&lt;P&gt;There is no corresponding ocotp register mapping table for i.mx8m to be added.&lt;/P&gt;&lt;P&gt;So, i make an experiment to enable FSL_OTP driver in kernel configuration.&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;Symbol: FSL_OTP [=n]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;BR /&gt;&amp;nbsp; │ Type&amp;nbsp; : tristate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;BR /&gt;&amp;nbsp; │ Prompt: Freescale On-Chip OTP Memory Support&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;BR /&gt;&amp;nbsp; │&amp;nbsp;&amp;nbsp; Location:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;BR /&gt;&amp;nbsp; │&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Device Drivers&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;BR /&gt;&amp;nbsp; │ (1)&amp;nbsp;&amp;nbsp; -&amp;gt; Character devices&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;BR /&gt;&amp;nbsp; │&amp;nbsp;&amp;nbsp; Defined at drivers/char/Kconfig:94&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;BR /&gt;&amp;nbsp; │&amp;nbsp;&amp;nbsp; Depends on: HAS_IOMEM [=y] &amp;amp;&amp;amp; OF [=y]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;And i use following command to burn MAC address into &lt;SPAN&gt;HW_OCOTP_MAC_ADDR1&lt;/SPAN&gt; and &lt;SPAN&gt;HW_OCOTP_MAC_ADDR0.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Then this board can only boot from serial downloand mode. (I think the fuses of boot mode are changed).&lt;BR /&gt;It explans the register mapping is wrong in fsl_otp.c .&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;My question is that fsl_otp.c doesn't support i.mx8m, why ocotp node is still added in fsl-imx8mq.dtsi?&lt;BR /&gt;Is there any plan to support fsl_otp.c for i.mx8m?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BR,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Richard&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Jul 2018 08:57:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825028#M126851</guid>
      <dc:creator>richard_hu</dc:creator>
      <dc:date>2018-07-18T08:57:04Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825029#M126852</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Richard&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for i.MX8M seems this is linux/drivers/nvmem/imx-ocotp.c&lt;BR /&gt;&lt;A class="link-titled" href="https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/nvmem/imx-ocotp.c?h=imx_4.9.51_imx8m_ga" title="https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/nvmem/imx-ocotp.c?h=imx_4.9.51_imx8m_ga"&gt;imx-ocotp.c\nvmem\drivers - linux-imx - i.MX Linux kernel&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also one can use uboot to program the fuse values (below example&lt;/P&gt;&lt;P&gt;enabling secure more with programming SEC_CONFIG[1]).&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fuse prog 1 3 0x2000000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&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>Thu, 19 Jul 2018 00:04:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825029#M126852</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2018-07-19T00:04:39Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825030#M126853</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, igor:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply.&lt;/P&gt;&lt;P&gt;We will take a look on it.&lt;BR /&gt;&lt;BR /&gt;BR,&lt;/P&gt;&lt;P&gt;Richard&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Jul 2018 03:34:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825030#M126853</guid>
      <dc:creator>richard_hu</dc:creator>
      <dc:date>2018-07-20T03:34:39Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825031#M126854</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;I am having a very similar issue on an imx8mq device. I would like to write a value to the MAC_ADDR0 and MAC_ADDR1 fuses, but am unable to do so with the fsl_otp driver in linux.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can write these fuses manually via uBoot with the commands:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;fuse prog 9 0&amp;nbsp;12345678&lt;BR /&gt;fuse prog 9 1 000090ab&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;And I can even successfully read these mac addresses back out in linux with the fsl_opt driver:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;root@imx8mq:/sys/fsl_otp# cat HW_OCOTP_MAC_ADDR0&lt;BR /&gt;0x12345678&lt;BR /&gt;root@imx8mq:/sys/fsl_otp# cat HW_OCOTP_MAC_ADDR1&lt;BR /&gt;0x90ab&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;However, I am unable to burn any fuses with this driver:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;root@imx8mq:/sys/fsl_otp# echo "0x00000001" &amp;gt; HW_OCOTP_MAC_ADDR2&lt;BR /&gt;root@imx8mq:/sys/fsl_otp# cat HW_OCOTP_MAC_ADDR2&lt;BR /&gt;0x0&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Is there perhaps something that I am doing wrong? Is the fsl_otp driver unable to burn fuses on the imx8mq? Is there another driver that can be used that supports this functionality?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;~Caleb&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2018 00:04:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825031#M126854</guid>
      <dc:creator>caleb_pentecost</dc:creator>
      <dc:date>2018-12-04T00:04:58Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825032#M126855</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For reference, it appears that this driver is being loaded to expose the virtual files:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://source.puri.sm/Librem5/linux-emcraft/blob/72c6f89cb0e8df491c2708d4b71e73fe8539da39/drivers/char/fsl_otp.c#L639" title="https://source.puri.sm/Librem5/linux-emcraft/blob/72c6f89cb0e8df491c2708d4b71e73fe8539da39/drivers/char/fsl_otp.c#L639"&gt;drivers/char/fsl_otp.c · 72c6f89cb0e8df491c2708d4b71e73fe8539da39 · Librem5 / linux-emcraft · GitLab&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That driver is included as dictated by the FSL_OTP flag:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://source.puri.sm/Librem5/linux-emcraft/blob/72c6f89cb0e8df491c2708d4b71e73fe8539da39/drivers/char/Makefile#L18" title="https://source.puri.sm/Librem5/linux-emcraft/blob/72c6f89cb0e8df491c2708d4b71e73fe8539da39/drivers/char/Makefile#L18"&gt;drivers/char/Makefile · 72c6f89cb0e8df491c2708d4b71e73fe8539da39 · Librem5 / linux-emcraft · GitLab&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And the driver is being loaded as if the device was an "imx7" device since that is how the .dtsi is enumerating the otp resources:&lt;BR /&gt;&lt;A class="link-titled" href="https://source.puri.sm/Librem5/linux-emcraft/blob/72c6f89cb0e8df491c2708d4b71e73fe8539da39/arch/arm64/boot/dts/freescale/fsl-imx8mq.dtsi#L685" title="https://source.puri.sm/Librem5/linux-emcraft/blob/72c6f89cb0e8df491c2708d4b71e73fe8539da39/arch/arm64/boot/dts/freescale/fsl-imx8mq.dtsi#L685"&gt;arch/arm64/boot/dts/freescale/fsl-imx8mq.dtsi · 72c6f89cb0e8df491c2708d4b71e73fe8539da39 · Librem5 / linux-emcraft · Git…&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(Keep in mind, the Git repository linked is not the same one I am using, but the source files appear identical)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;~Caleb&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2018 00:19:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825032#M126855</guid>
      <dc:creator>caleb_pentecost</dc:creator>
      <dc:date>2018-12-04T00:19:45Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825033#M126856</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;one can try with fuse programming in uboot nxp L4.14.62_1.0.0 &lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://source.codeaurora.org/external/imx/uboot-imx/tree/?h=imx_v2018.03_4.14.62_1.0.0_beta" title="https://source.codeaurora.org/external/imx/uboot-imx/tree/?h=imx_v2018.03_4.14.62_1.0.0_beta"&gt;uboot-imx - i.MX U-Boot&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Dec 2018 00:52:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825033#M126856</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2018-12-05T00:52:55Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825034#M126857</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Igor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;any update on this topic? We need to program some fuses from Linux using the 4.9.51 SDK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind regards, Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 26 Jan 2019 00:03:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825034#M126857</guid>
      <dc:creator>joussen</dc:creator>
      <dc:date>2019-01-26T00:03:49Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825035#M126858</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;one can look on linux ocotp driver:&lt;BR /&gt;&lt;A href="https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/nvmem/imx-ocotp.c?h=imx_4.9.51_imx8m_ga"&gt;https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/nvmem/imx-ocotp.c?h=imx_4.9.51_imx8m_ga&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Jan 2019 23:31:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825035#M126858</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2019-01-28T23:31:43Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825036#M126859</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can you share some more information on how to use it?&lt;/P&gt;&lt;P&gt;Right now our kernel is compiled with&lt;/P&gt;&lt;PRE&gt;CONFIG_NVMEM_IMX_OCOTP=y
CONFIG_NVMEM_IMX_SCU_OCOTP=y&lt;/PRE&gt;&lt;P&gt;and the device tree contains&lt;/P&gt;&lt;PRE&gt; ocotp: ocotp-ctrl@30350000 {
 compatible = "fsl,imx8mq-ocotp", "fsl,imx7d-ocotp", "syscon";
 reg = &amp;lt;0 0x30350000 0 0x10000&amp;gt;;
 clocks = &amp;lt;&amp;amp;clk IMX8MQ_CLK_OCOTP_ROOT&amp;gt;;
 /* For nvmem subnodes */
 #address-cells = &amp;lt;1&amp;gt;;
 #size-cells = &amp;lt;1&amp;gt;;
 };&lt;/PRE&gt;&lt;P&gt;so we get /sys/devices/platform/30350000.ocotp-ctrl/imx-ocotp0/nvmem.&lt;/P&gt;&lt;P&gt;But what do we do with it?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind regards, Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2019 13:51:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825036#M126859</guid>
      <dc:creator>joussen</dc:creator>
      <dc:date>2019-01-29T13:51:37Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825037#M126860</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm Marius (from NXP) - working for SE (Systems Engineering) Security group.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First of all, please use your private community group.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Secondly, indeed, there is a big change with the OTP driver from Linux. This was working just fine (both read/write operations) for i.mx6/7 and but starting with 4.14 GA release we support only read operations for all i.MX families.&lt;/P&gt;&lt;P&gt;Currently there is no plan to extend the functionality of the nvmem driver past read support.&lt;/P&gt;&lt;P&gt;The 4.14 kernel currently only supports reads even for the mx6 and mx7 families through the NVMEM driver.&lt;/P&gt;&lt;P&gt;Customers should use only u-boot level to program the fuses.&lt;/P&gt;&lt;P&gt;We never recommended in our i.MX8M (secure boot at least) documentation to use the Linux driver or the commands from Linux user-space to program the fuses.&lt;/P&gt;&lt;P&gt;Maybe there is somebody recommended them this way..or they just are familiar with the old way from i.mx6/7 families in the previous Linux BSPs.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But I have also some good news, you can use uuu (aka mfgtool 3.0) if you want a more powerful tool (if u-boot is not enough) and to automate the fuses programming. A snapshot from some internal uuu doc –&amp;nbsp; (is working also with your chip):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="border: none windowtext 1.0pt; padding: 0in; color: #51626f; font-size: 11.5pt;"&gt;&lt;STRONG&gt;2.1.2 - Programing eFuses using UUU (Universal Update Utility)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;The UUU (Universal Update Utility) is a SDP protocol flash programming tool:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&lt;A href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools"&gt;&lt;SPAN style="color: #3d9ce7; border: none windowtext 1.0pt; padding: 0in;"&gt;Github - UUU (Universal Update Utility) - mfgtools 3.0&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;The uuu.auto file contains a set of commands used for properly flashing the targeted device:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&lt;A href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Fwiki%2FSample-script"&gt;&lt;SPAN style="color: #3d9ce7; border: none windowtext 1.0pt; padding: 0in;"&gt;Wiki - UUU Sample Scripts&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;Users can add U-Boot commands to program a set of eFuses depending on their specific use case. The command lines below added in i.MX8QXP uuu.auto file can be used as an example on how to program the MAC1_ADDR[47:00] fuses in i.MX8QXP:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: #F6F6F6; font-weight: inherit; font-style: inherit;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #999999; border: none windowtext 1.0pt; padding: 0in;"&gt;&amp;nbsp;SDPS: boot -f imx-boot-imx8qxpmek-sd.bin-flash&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&lt;BR /&gt; +FB: ucmd fuse prog -y 0 708 0xa295fc11&lt;BR /&gt; +FB: ucmd fuse prog -y 0 709 0x000017b4&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN style="font-size: 11.5pt; color: #999999; border: none windowtext 1.0pt; padding: 0in;"&gt;&amp;nbsp;FB: ucmd setenv fastboot_dev mmc&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN style="font-size: 11.5pt; color: #999999; border: none windowtext 1.0pt; padding: 0in;"&gt;&amp;nbsp;FB: ucmd setenv mmcdev ${emmc_dev}&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN style="font-size: 11.5pt; color: #999999; border: none windowtext 1.0pt; padding: 0in;"&gt;&amp;nbsp;FB: ucmd mmc dev ${emmc_dev}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Marius&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Feb 2019 22:07:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825037#M126860</guid>
      <dc:creator>marius_grigoras</dc:creator>
      <dc:date>2019-02-07T22:07:03Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825038#M126861</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Marius,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;unfortunately I don't think that we can use UUU. Does UUU supports the 4.9.51 SDK? Additionally we need a process that can be initiated from a running Linux system.&lt;/P&gt;&lt;P&gt;What are the plans to bring write access from Linux back?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind regards, Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Feb 2019 22:15:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825038#M126861</guid>
      <dc:creator>joussen</dc:creator>
      <dc:date>2019-02-07T22:15:32Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825039#M126862</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unfortunately, I have negative answers for both of the questions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Marius&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Feb 2019 21:01:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825039#M126862</guid>
      <dc:creator>marius_grigoras</dc:creator>
      <dc:date>2019-02-11T21:01:24Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825040#M126863</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;I have added the IMX8M support to the fsl_otp.c driver, so it is possible to read and write IMX8M fuse from the Linux user space, with simple command like this:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;$ cat /sys/fsl_otp/HW_OCOTP_TESTER0&lt;/P&gt;&lt;P&gt;0xf0609912&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I have posted the source code into a separate thread (&lt;A href="https://community.nxp.com/thread/495939"&gt;OCOTP Shadow register reload&lt;/A&gt; ) because I have a problem with the OCOTP shadows reload function. It will be very useful if someone can check the new driver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind regards,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Andrea.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Feb 2019 10:18:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825040#M126863</guid>
      <dc:creator>andreacelani</dc:creator>
      <dc:date>2019-02-20T10:18:51Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825041#M126864</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;Hi everyone,&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;I'm really sorry for delay here.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;Finally we have a solution which is upstreamed already.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;The following patch from Linux community seems to fix nvmem fuse write for 8m/8MMini.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;A class="" data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fpatchwork.kernel.org%2Fcover%2F10928999%2F" rel="nofollow" style="color: #3d9ce7; border: 0px; font-weight: inherit; text-decoration: none; padding: 0px calc(12px + 0.35ex) 0px 0px;" target="_blank"&gt;https://patchwork.kernel.org/cover/10928999/&lt;/A&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;The above changes are made for 4.14.y branch so&amp;nbsp;we ported them on our latest release 4.14.98_2.0.0_ga (attached patch) - special thanks to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A _jive_internal="true" class="" data-containerid="-1" data-containertype="-1" data-content-finding="Community" data-objectid="293131" data-objecttype="3" href="https://community.nxp.com/people/ioana-irinapatru" style="color: #3d9ce7; background-color: transparent; border: 0px; font-weight: inherit; padding: 1px 0px 1px calc(12px + 0.35ex);"&gt;Irina Patru&lt;/A&gt;.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;So this should fix the write operation for both mx8m/mm.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;We validated this by writing to the register corresponding to MAC address:&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; margin: 0px 0px 0px 0.5in;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;from struct import pack&lt;/EM&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; margin: 0px 0px 0px 0.5in;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;f = open('/sys/devices/platform/30350000.ocotp-ctrl/imx-ocotp0/nvmem', 'br+')&lt;/EM&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; margin: 0px 0px 0px 0.5in;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;f.seek(&lt;STRONG style="border: 0px; font-weight: bold;"&gt;0x90&lt;/STRONG&gt;)&amp;nbsp; # SRK0 position&lt;/EM&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; margin: 0px 0px 0px 0.5in;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;f.write(pack('&amp;lt;L',&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG style="border: 0px; font-weight: bold;"&gt;0xfffffff&lt;/STRONG&gt;f))&lt;/EM&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; margin: 0px 0px 0px 0.5in;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;f.close()&lt;/EM&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;There is not deadlock and fuse value is preserved after reboot:&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;# hexdump /sys/devices/platform/30350000.ocotp-ctrl/imx-ocotp0/nvmem&lt;/EM&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;[…]&lt;/EM&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;STRONG style="border: 0px; font-weight: bold;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;0000090 ffff ffff&lt;/EM&gt;&lt;/STRONG&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;0004 0000 0000 0000 0000 0000&lt;/EM&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;00000a0 bada bada bada bada bada bada bada bada&lt;/EM&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;[…]&lt;/EM&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;Thank you,&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;Marius&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Jun 2019 12:54:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/825041#M126864</guid>
      <dc:creator>marius_grigoras</dc:creator>
      <dc:date>2019-06-06T12:54:17Z</dc:date>
    </item>
    <item>
      <title>Re: OCOTP write support on i.mx8m</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/1613594#M202601</link>
      <description>&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/54741"&gt;@marius_grigoras&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Use sysfs node(&lt;EM&gt;/sys/devices/platform/30350000.ocotp-ctrl/imx-ocotp0/nvmem&lt;/EM&gt;) write MAC address the actual offset is mapping as below? which is correct or all not?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;offset 0x90 mapping OTP Bank9 Word0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;offset 0x91 mapping OTP Bank9 Word1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;offset 0x92 mapping OTP Bank9 Word2&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;or&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;from offset 0x90 direct write 12bytes is mapping two eth MAC address&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Best Regards&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Craig&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Mar 2023 02:37:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OCOTP-write-support-on-i-mx8m/m-p/1613594#M202601</guid>
      <dc:creator>craig_chen</dc:creator>
      <dc:date>2023-03-13T02:37:17Z</dc:date>
    </item>
  </channel>
</rss>

