title: Putting core 0 in non-secure world
body: <p>I am using a custom board, having zynq-7000. I am running two application on both cores. I want to put cpu0 in non-secure world and cpu1 in secure world. As Cpu1 is already in secure world, I am trying to make Cpu0 in non-secure world.</p>
  
  <p>I am trying to put cpu0 in normal-world and I add following lines in fsbl.</p>
  
  <pre class="lang-asm prettyprint-override"><code>__asm__ (
      "MRC     p15, 0, r0, c1, c1, 0;"
      "ORR     r0,  r0, #0x1;"
      "MCR     p15, 0, r0, c1, c1, 0;"
  );
  </code></pre>
  
  <p>But unfortunately, my system hangs, and some time gives “DATA_ABORT_HANDLER FSBL Status = 0xA304”. I have added these lines (assembly instruction) in fsbl and tried it as a patch to u-boot(if i boot linux instead of baremetal app).</p>
  
  <p>I have also set bits in TZ registers to be unsecure for testing.</p>
  
  <pre class="lang-none prettyprint-override"><code>Xil_Out32( TZ_OCM_RAM0, 0xffffffff);
  Xil_Out32( TZ_OCM_RAM1, 0xffffffff);
  Xil_Out32( TZ_OCM, 0xffffffff);
  Xil_Out32( TZ_DDR_RAM, 0x0000ffff);
  </code></pre>
  
  <p>Can someone tell me where to go from here?</p>
  
  <p>Thanks.</p>