<?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>LayerscapeのトピックSecure Read and Write through TZC400</title>
    <link>https://community.nxp.com/t5/Layerscape/Secure-Read-and-Write-through-TZC400/m-p/1697595#M12992</link>
    <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I have enabled TZC400 registers and Region as shown below in the memory dump for LS1046ARDB.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Faizanbaig_2-1690977362897.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/234752iE69D11024C4EB618/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Faizanbaig_2-1690977362897.png" alt="Faizanbaig_2-1690977362897.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I have configured the security attributes for DRAM Region 1, spanning from memory address 0x80000000 to 0xBFFFFFFF, with the intention of allowing secure read-only access. However, I have encountered an unexpected behavior: I am able to write data to the memory location 0x80000000, which should be restricted due to the read-only setting.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;Could you please suggest me where and what should be done in this case so that I should be restricted access to secure write to this region?&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Faizan&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;</description>
    <pubDate>Wed, 02 Aug 2023 11:57:07 GMT</pubDate>
    <dc:creator>Faizanbaig</dc:creator>
    <dc:date>2023-08-02T11:57:07Z</dc:date>
    <item>
      <title>Secure Read and Write through TZC400</title>
      <link>https://community.nxp.com/t5/Layerscape/Secure-Read-and-Write-through-TZC400/m-p/1697595#M12992</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I have enabled TZC400 registers and Region as shown below in the memory dump for LS1046ARDB.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Faizanbaig_2-1690977362897.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/234752iE69D11024C4EB618/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Faizanbaig_2-1690977362897.png" alt="Faizanbaig_2-1690977362897.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I have configured the security attributes for DRAM Region 1, spanning from memory address 0x80000000 to 0xBFFFFFFF, with the intention of allowing secure read-only access. However, I have encountered an unexpected behavior: I am able to write data to the memory location 0x80000000, which should be restricted due to the read-only setting.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;Could you please suggest me where and what should be done in this case so that I should be restricted access to secure write to this region?&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Faizan&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;</description>
      <pubDate>Wed, 02 Aug 2023 11:57:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Secure-Read-and-Write-through-TZC400/m-p/1697595#M12992</guid>
      <dc:creator>Faizanbaig</dc:creator>
      <dc:date>2023-08-02T11:57:07Z</dc:date>
    </item>
    <item>
      <title>Re: Secure Read and Write through TZC400</title>
      <link>https://community.nxp.com/t5/Layerscape/Secure-Read-and-Write-through-TZC400/m-p/1700280#M13027</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/181008"&gt;@Faizanbaig&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Can you please share a step/procedure you have followed to enable secure access?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;Khushbu&lt;/P&gt;</description>
      <pubDate>Mon, 07 Aug 2023 14:00:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Secure-Read-and-Write-through-TZC400/m-p/1700280#M13027</guid>
      <dc:creator>khushbur</dc:creator>
      <dc:date>2023-08-07T14:00:15Z</dc:date>
    </item>
    <item>
      <title>Re: Secure Read and Write through TZC400</title>
      <link>https://community.nxp.com/t5/Layerscape/Secure-Read-and-Write-through-TZC400/m-p/1700691#M13030</link>
      <description>Hello Khushbu,&lt;BR /&gt;&lt;BR /&gt;I have Followed below steps:&lt;BR /&gt;i) Initialized base address of TZC400 as 0x01500000&lt;BR /&gt;ii) created a pointer to TZC_Regions structure(Above snapshot of memory dump has the details of this registers)&lt;BR /&gt;iii) Disabled Filters&lt;BR /&gt;iii) Region 0 is set to no access&lt;BR /&gt;iv) Configure other regions as per the TZC_Region structure(Above snapshot of memory dump has the details of this registers)&lt;BR /&gt;v) set action register&lt;BR /&gt;vi) Enabled Filters&lt;BR /&gt;&lt;BR /&gt;Next I am calling this all functionality in main function&lt;BR /&gt;Later I am trying to write any random value and instead of restricting secure write access to region from 0x80000000 it is allowing me to write .&lt;BR /&gt;I dont know the issue , If you want me to send you the used Code , I can reply you in Service case you have created.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Faizan&lt;BR /&gt;</description>
      <pubDate>Tue, 08 Aug 2023 05:08:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Secure-Read-and-Write-through-TZC400/m-p/1700691#M13030</guid>
      <dc:creator>Faizanbaig</dc:creator>
      <dc:date>2023-08-08T05:08:24Z</dc:date>
    </item>
    <item>
      <title>Re: Secure Read and Write through TZC400</title>
      <link>https://community.nxp.com/t5/Layerscape/Secure-Read-and-Write-through-TZC400/m-p/1701045#M13034</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/181008"&gt;@Faizanbaig&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please refer atf/plat/nxp/soc-ls1046a/soc.c function&amp;nbsp;soc_mem_access which&amp;nbsp;sets up access permissions on memory regions. Also refer atf/drivers/nxp/tzc/plat_tzc400.c&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;Khushbu&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2023 10:53:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Secure-Read-and-Write-through-TZC400/m-p/1701045#M13034</guid>
      <dc:creator>khushbur</dc:creator>
      <dc:date>2023-08-08T10:53:07Z</dc:date>
    </item>
    <item>
      <title>Re: Secure Read and Write through TZC400</title>
      <link>https://community.nxp.com/t5/Layerscape/Secure-Read-and-Write-through-TZC400/m-p/1701068#M13035</link>
      <description>&lt;P&gt;Hello Khushbu,&lt;BR /&gt;Earlier I had used the same files , with soc_mem_access function I am getting improper region addresses getting set when get_dram_regions_info() function is called.&lt;BR /&gt;Doubt 1 ) What about&amp;nbsp;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/populate_dram_regions_info" target="_blank" rel="noopener"&gt;populate_dram_regions_info&lt;/A&gt;&lt;/SPAN&gt; function, should this be used when soc_mem_access is used? because I think this function populates the dram_regions_info structure which is later pointed by get_dram_regions_info() function&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;void&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/populate_dram_regions_info" target="_blank" rel="noopener"&gt;populate_dram_regions_info&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;void&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;
&lt;SPAN class=""&gt;{&lt;/SPAN&gt;
	&lt;SPAN class=""&gt;long&lt;/SPAN&gt; &lt;SPAN class=""&gt;long&lt;/SPAN&gt; &lt;SPAN class=""&gt;dram_remain_size&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/dram_regions_info" target="_blank" rel="noopener"&gt;dram_regions_info&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/total_dram_size" target="_blank" rel="noopener"&gt;total_dram_size&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;
	&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/uint8_t" target="_blank" rel="noopener"&gt;uint8_t&lt;/A&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;reg_id&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0U&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;

	&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/dram_regions_info" target="_blank" rel="noopener"&gt;dram_regions_info&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/region" target="_blank" rel="noopener"&gt;region&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;SPAN class=""&gt;reg_id&lt;/SPAN&gt;&lt;SPAN class=""&gt;].&lt;/SPAN&gt;&lt;SPAN class=""&gt;addr&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/NXP_DRAM0_ADDR" target="_blank" rel="noopener"&gt;NXP_DRAM0_ADDR&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;
	&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/dram_regions_info" target="_blank" rel="noopener"&gt;dram_regions_info&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/region" target="_blank" rel="noopener"&gt;region&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;SPAN class=""&gt;reg_id&lt;/SPAN&gt;&lt;SPAN class=""&gt;].&lt;/SPAN&gt;&lt;SPAN class=""&gt;size&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt;
			&lt;SPAN class=""&gt;dram_remain_size&lt;/SPAN&gt; &lt;SPAN class=""&gt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/NXP_DRAM0_MAX_SIZE" target="_blank" rel="noopener"&gt;NXP_DRAM0_MAX_SIZE&lt;/A&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;?&lt;/SPAN&gt;
				&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/NXP_DRAM0_MAX_SIZE" target="_blank" rel="noopener"&gt;NXP_DRAM0_MAX_SIZE&lt;/A&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;dram_remain_size&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;

	&lt;SPAN class=""&gt;if&lt;/SPAN&gt; &lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/dram_regions_info" target="_blank" rel="noopener"&gt;dram_regions_info&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/region" target="_blank" rel="noopener"&gt;region&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;SPAN class=""&gt;reg_id&lt;/SPAN&gt;&lt;SPAN class=""&gt;].&lt;/SPAN&gt;&lt;SPAN class=""&gt;size&lt;/SPAN&gt; &lt;SPAN class=""&gt;!=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/NXP_DRAM0_SIZE" target="_blank" rel="noopener"&gt;NXP_DRAM0_SIZE&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt; &lt;SPAN class=""&gt;{&lt;/SPAN&gt;
		&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/ERROR" target="_blank" rel="noopener"&gt;ERROR&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;"Incorrect DRAM0 size is defined in platform_def.h&lt;/SPAN&gt;&lt;SPAN class=""&gt;\n&lt;/SPAN&gt;&lt;SPAN class=""&gt;"&lt;/SPAN&gt;&lt;SPAN class=""&gt;);&lt;/SPAN&gt;
	&lt;SPAN class=""&gt;}&lt;/SPAN&gt;

	&lt;SPAN class=""&gt;dram_remain_size&lt;/SPAN&gt; &lt;SPAN class=""&gt;-=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/dram_regions_info" target="_blank" rel="noopener"&gt;dram_regions_info&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/region" target="_blank" rel="noopener"&gt;region&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;SPAN class=""&gt;reg_id&lt;/SPAN&gt;&lt;SPAN class=""&gt;].&lt;/SPAN&gt;&lt;SPAN class=""&gt;size&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;
	&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/dram_regions_info" target="_blank" rel="noopener"&gt;dram_regions_info&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/region" target="_blank" rel="noopener"&gt;region&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;SPAN class=""&gt;reg_id&lt;/SPAN&gt;&lt;SPAN class=""&gt;].&lt;/SPAN&gt;&lt;SPAN class=""&gt;size&lt;/SPAN&gt; &lt;SPAN class=""&gt;-=&lt;/SPAN&gt; &lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/NXP_SECURE_DRAM_SIZE" target="_blank" rel="noopener"&gt;NXP_SECURE_DRAM_SIZE&lt;/A&gt;&lt;/SPAN&gt;
						&lt;SPAN class=""&gt;+&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/NXP_SP_SHRD_DRAM_SIZE" target="_blank" rel="noopener"&gt;NXP_SP_SHRD_DRAM_SIZE&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;);&lt;/SPAN&gt;

	&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/assert" target="_blank" rel="noopener"&gt;assert&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/dram_regions_info" target="_blank" rel="noopener"&gt;dram_regions_info&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/region" target="_blank" rel="noopener"&gt;region&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;SPAN class=""&gt;reg_id&lt;/SPAN&gt;&lt;SPAN class=""&gt;].&lt;/SPAN&gt;&lt;SPAN class=""&gt;size&lt;/SPAN&gt; &lt;SPAN class=""&gt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;);&lt;/SPAN&gt;

	&lt;SPAN class=""&gt;/* Reducing total dram size by 66MB */&lt;/SPAN&gt;
	&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/dram_regions_info" target="_blank" rel="noopener"&gt;dram_regions_info&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/total_dram_size" target="_blank" rel="noopener"&gt;total_dram_size&lt;/A&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;-=&lt;/SPAN&gt; &lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/NXP_SECURE_DRAM_SIZE" target="_blank" rel="noopener"&gt;NXP_SECURE_DRAM_SIZE&lt;/A&gt;&lt;/SPAN&gt;
						&lt;SPAN class=""&gt;+&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/NXP_SP_SHRD_DRAM_SIZE" target="_blank" rel="noopener"&gt;NXP_SP_SHRD_DRAM_SIZE&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;);&lt;/SPAN&gt;

	&lt;SPAN class=""&gt;reg_id&lt;/SPAN&gt;&lt;SPAN class=""&gt;++&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;
	&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/dram_regions_info" target="_blank" rel="noopener"&gt;dram_regions_info&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/num_dram_regions" target="_blank" rel="noopener"&gt;num_dram_regions&lt;/A&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;reg_id&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;Doubt 2) Since in&amp;nbsp; Above &lt;SPAN class=""&gt;&lt;A href="https://elixir.bootlin.com/arm-trusted-firmware/v2.9.0/C/ident/populate_dram_regions_info" target="_blank" rel="noopener"&gt;populate_dram_regions_info&lt;/A&gt;&amp;nbsp; dram_remain_size was not getting properly calculated and at the end reg_id is getting equal to 1 , I dont know why this is happening.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;So I am using file from /plat/arm/common/arm_tzc400.c&lt;BR /&gt;&lt;BR /&gt;Below is the code&lt;BR /&gt;================CODE==================&lt;BR /&gt;void arm_tzc400_setup(uintptr_t tzc_base,&lt;BR /&gt;const arm_tzc_regions_info_t *tzc_regions)&lt;BR /&gt;{&lt;BR /&gt;#ifndef EL3_PAYLOAD_BASE&lt;BR /&gt;unsigned int region_index = 1U;&lt;BR /&gt;const arm_tzc_regions_info_t *p;&lt;BR /&gt;const arm_tzc_regions_info_t init_tzc_regions[] = {&lt;BR /&gt;ARM_TZC_REGIONS_DEF,&lt;BR /&gt;{0}&lt;BR /&gt;};&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;INFO("Configuring TrustZone Controller\n");&lt;BR /&gt;&lt;BR /&gt;tzc400_init(tzc_base);&lt;BR /&gt;&lt;BR /&gt;/* Disable filters. */&lt;BR /&gt;tzc400_disable_filters();&lt;BR /&gt;&lt;BR /&gt;#ifndef EL3_PAYLOAD_BASE&lt;BR /&gt;if (tzc_regions == NULL)&lt;BR /&gt;p = init_tzc_regions;&lt;BR /&gt;else&lt;BR /&gt;p = tzc_regions;&lt;BR /&gt;&lt;BR /&gt;/* Region 0 set to no access by default */&lt;BR /&gt;tzc400_configure_region0(TZC_REGION_S_NONE, 0);&lt;BR /&gt;&lt;BR /&gt;/* Rest Regions set according to tzc_regions array */&lt;BR /&gt;for (; p-&amp;gt;base != 0ULL; p++) {&lt;BR /&gt;tzc400_configure_region(PLAT_ARM_TZC_FILTERS, region_index,&lt;BR /&gt;p-&amp;gt;base, p-&amp;gt;end, p-&amp;gt;sec_attr, p-&amp;gt;nsaid_permissions);&lt;BR /&gt;region_index++;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;INFO("Total %u regions set.\n", region_index);&lt;BR /&gt;&lt;BR /&gt;#else /* if defined(EL3_PAYLOAD_BASE) */&lt;BR /&gt;&lt;BR /&gt;/* Allow Secure and Non-secure access to DRAM for EL3 payloads */&lt;BR /&gt;tzc400_configure_region0(TZC_REGION_S_RDWR, PLAT_ARM_TZC_NS_DEV_ACCESS);&lt;BR /&gt;&lt;BR /&gt;#endif /* EL3_PAYLOAD_BASE */&lt;BR /&gt;&lt;BR /&gt;/*&lt;BR /&gt;* Raise an exception if a NS device tries to access secure memory&lt;BR /&gt;* TODO: Add interrupt handling support.&lt;BR /&gt;*/&lt;BR /&gt;tzc400_set_action(TZC_ACTION_ERR);&lt;BR /&gt;&lt;BR /&gt;/* Enable filters. */&lt;BR /&gt;tzc400_enable_filters();&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void plat_arm_security_setup(void)&lt;BR /&gt;{&lt;BR /&gt;arm_tzc400_setup(PLAT_ARM_TZC_BASE, NULL);&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class=""&gt;Please clear my doubts on which files to be used.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2023 11:56:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Secure-Read-and-Write-through-TZC400/m-p/1701068#M13035</guid>
      <dc:creator>Faizanbaig</dc:creator>
      <dc:date>2023-08-08T11:56:43Z</dc:date>
    </item>
  </channel>
</rss>

