<?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>topic Re: Parallel QuadSPI in Vybrid Processors</title>
    <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243706#M697</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is there a viable example project implementing parallel QuadSPI? I checked VybridSampleCode download and the last update was last year. I am currently using the quadspi_load project to flash QuadSPI on a Vybrid Tower board.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am very interested in demonstrating parallel QuadSPI for our product and would like to leverage from a working example.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nancy Burkholder&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 25 Jul 2014 14:01:12 GMT</pubDate>
    <dc:creator>nancyb</dc:creator>
    <dc:date>2014-07-25T14:01:12Z</dc:date>
    <item>
      <title>Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243701#M692</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We've been helping one of our alpha customers with using QuadSPI in parallel mode on Vybrid, so I wanted to create a thread about some helpful tips when trying to do the same. There will be a parallel mode booting example in the next release of the sample code.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Vybrid has two QuadSPI modules: &lt;STRONG&gt;QuadSPI0&lt;/STRONG&gt; and &lt;STRONG&gt;QuadSPI1&lt;/STRONG&gt;. QuadSPI0 then has two QuadSPI ports associated with it: QuadSPI0_A and QuadSPI0_B. This lets you use the QuadSPI flashes connected to those ports in parallel. QuadSPI1 only has one port, and thus parallel mode cannot be used with it. So in summary, there are two modules on Vybrid, capable of interfacing with up to 3 flashes in all, but only QuadSPI0 can do parallel mode.&lt;/LI&gt;&lt;/UL&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Parallel mode is enabled by setting &lt;STRONG&gt;QuadSPI_BFGENCR[PAR_EN]=1&lt;/STRONG&gt;. When set, the data at offset 0x200 of each QuadSPI would be read at offset 0x400 when combined. This is very important to keep in mind when programming data into each flash.&lt;/LI&gt;&lt;/UL&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Each flash in parallel mode holds a nibble (4 bits) of data from each byte. The way that data is split is a somewhat complicated, and so it's very important to properly split the data that ends up being programmed in each of the two flashes. The sample code contains a function split() which does this a word (2 bytes) at a time. The code is attached. It takes a source memory address, and outputs each half into the two destination memory addresses.&lt;/LI&gt;&lt;/UL&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;After programming the flashes, put the QuadSPI into parallel mode, and make sure the data you read back from the memory window matches what you think you should have. This will double check your programming and splitting algorithms.&lt;/LI&gt;&lt;/UL&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 18pt;"&gt;&lt;STRONG&gt;Parallel Booting:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The QuadSPI boot header must be programmed into only &lt;STRONG&gt;*one*&lt;/STRONG&gt; flash connected to QuadSPI0_A. The BootROM reads this configuration data, and only then puts the QuadSPI in parallel mode. So all other boot data and code after that must be programmed as if being read in parallel mode. What this ends up meaning is that you need three programming passes:&lt;/LI&gt;&lt;/UL&gt;&lt;OL&gt;&lt;OL&gt;&lt;LI&gt;Program the QuadSPI boot header into QuadSPI0_A flash at offset 0x0&lt;/LI&gt;&lt;LI&gt;Program the split data starting at offset 0x200 (per the sample code) into QuadSPI0_A&lt;/LI&gt;&lt;LI&gt;Program the split data starting at offset 0x200 (per the sample code) into QuadSPI0_B.&lt;/LI&gt;&lt;/OL&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The sample code will show this being done.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;There are only a few minor changes in the QuadSPI boot header necessary.&lt;/LI&gt;&lt;/UL&gt;&lt;OL&gt;&lt;OL&gt;&lt;LI&gt;Set the "Parallel Port Enable" field&lt;/LI&gt;&lt;LI&gt;Make sure the "Flash B1 Size" field is properly sized&lt;/LI&gt;&lt;LI&gt;Make sure the "Port B Enable" field is set&lt;/LI&gt;&lt;/OL&gt;&lt;/OL&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;There should be no other code changes necessary if you already have single QuadSPI flash boot working.&lt;/LI&gt;&lt;/UL&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debugging Tips:&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Make sure the data read back in parallel mode when you program the flashes match the binary you're trying to boot (except for the boot header section, which will look incorrect when read in parallel mode since it was only programmed into the single QuadSPI0_A flash).&lt;/LI&gt;&lt;LI&gt;Make sure the code works in single flash mode still&lt;/LI&gt;&lt;LI&gt;Make sure your IO Mux config isn't turning off the QuadSPI0_B pins.&lt;/LI&gt;&lt;LI&gt;As with any boot debugging, try turning on an LED as one of the very first instructions. If you reach there, showing you did boot successfully, then keep moving it back through your code until you find the spot it crashes on.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338506"&gt;split.c.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Jun 2013 20:26:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243701#M692</guid>
      <dc:creator>anthony_huereca</dc:creator>
      <dc:date>2013-06-27T20:26:20Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243702#M693</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Anthony,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have few questions regarding parallel QSPI0 mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) Provided there is only one A_CS0 chip and one B_CS0 chip of the same size, what would be right SF??AD registers settings for parallel and not parallel modes. Vybrid RM Rev5. Figure 30-419 doesnn't explain what settings should be made when CS1 chips are not installed. According to picture SFA2AD shoud be set = 0x20000000 + chip A size + chip B size. And SFB2AD = SFA2AD. And SFA1AD and&amp;nbsp; SFB1AD don't matter?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For not parallel mode I think it should be like this and work for every set of chip memory size:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SFA1AD = 0x20000000 + chip_a1_size;&lt;/P&gt;&lt;P&gt;SFA2AD = 0x20000000 + chip_a1_size +&amp;nbsp; chip_a2_size;&lt;/P&gt;&lt;P&gt;SFB1AD = 0x20000000 + chip_a1_size +&amp;nbsp; chip_a2_size + chip_b1_size;&lt;/P&gt;&lt;P&gt;SFB2AD = 0x20000000 + chip_a1_size +&amp;nbsp; chip_a2_size + chip_b1_size + chip_b2_size;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What should these lines look like for parallel mode?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) Table 30-427 Instruction set mentions 2'd3 - Eight pads mode. How does this pads mode work? Does it work in not_/parallel mode only? Does it enable both A and B chip selects?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3) I wonder how should I issue QSPI memory program commands in parallel mode. Trying to write in parallel mode, I'm getting IUEF error:&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;IP Command Usage Error Flag: Set when in parallel flash mode the execution of an IP Command is started with more than one pad enabled &lt;STRONG&gt;and&lt;/STRONG&gt; the sequence pointed to by the sequence ID contains a WRITE or a WRITE_DDR command. Refer to Table 30-427 table for the related commands. No communication with the serial flash device is initiated by the QuadSPI module. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Should "and" in bold above be read as "or"? If so, then I need to interleave data nybbles in software and program A chip, and then B chip, right? &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Mar 2014 13:38:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243702#M693</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2014-03-07T13:38:31Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243703#M694</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Edward,&lt;/P&gt;&lt;P&gt;&amp;nbsp; For your first question, take a look at the Vybrid sample code in the \src\drivers\quadspi and \src\projects\quadspi_load projects for examples of how to setup the QuadSPI. Those values do not change when the QuadSPI is being accessed in parallel mode, since those registers are used to help define how big each flash is. The QuadSPI module takes care of all the mapping for you so you don't have to. It's just a big memory block at the end of the day. You'll notice in the code that entering parallel mode doesn't modify the register values except for &lt;STRONG&gt;QuadSPI_BFGENCR[PAR_EN]=1&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; For the second question, that's a typo in the RM. If you look at the register definition for QuadSPIx_LUTn in section 30.32.32 you'll see that the value of 2'd3 is not valid. Basically in parallel mode the LUT entry will not change. The parallel enable bit tells QuadSPI0 to read both flashes and combine the data together to do the read. How those flashes are read at the LUT level does not change though. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; For your last question, you cannot write in parallel mode. You have to write each flash individually, and the C file attached to the post, and the quadspi_load project, provide an example of how to do this to properly. The interleaving isn't totally straight forward, hence the function provided. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Mar 2014 14:00:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243703#M694</guid>
      <dc:creator>anthony_huereca</dc:creator>
      <dc:date>2014-03-07T14:00:20Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243704#M695</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Anthony,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I looked at the \src\drivers\quadspi and \src\projects\quadspi_load directory and it has a file quadspi_load.h, but it is blank. Was this file supposed to be empty?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to run this example under DS-5 in Ubuntu. Will that example work in DS-5/Ubuntu? I see the "#ifdef ARMCC_A5" in quadspi_load.c, but I'm wondering if there are differences between DS-5/Windows and DS-5/Ubuntu that will prevent this example from working.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Mar 2014 20:47:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243704#M695</guid>
      <dc:creator>jackblather</dc:creator>
      <dc:date>2014-03-07T20:47:19Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243705#M696</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Anthony,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply, it is clear now that WRITE and WRITE_DDR LUT commands can't be used in parallel mode. It is possible to read status register in parallel, program QUAD bit in parallel or set write protection on/off in parallel, but memory program has to be performed with IP_EN=0, splitting nibbles with code like in your split.c.&lt;/P&gt;&lt;P&gt;Data write to both channels in parallel still can be done, but only to send constants programmed in LUT, like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LUT for program Spansion QUAD bit should look like this:&lt;/P&gt;&lt;P&gt;CMD - one_pad - 0x01&lt;/P&gt;&lt;P&gt;CMD - one_pad - 0x00&lt;/P&gt;&lt;P&gt;CMD - one_pad - 0x02&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LUT for enable Spansion advanced sector protection (DYB) like this:&lt;/P&gt;&lt;P&gt;CMD - one_pad - 0xE1&lt;/P&gt;&lt;P&gt;ADDR - one_pad - 32&lt;/P&gt;&lt;P&gt;CMD - one_pad - 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 08 Mar 2014 14:45:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243705#M696</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2014-03-08T14:45:16Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243706#M697</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is there a viable example project implementing parallel QuadSPI? I checked VybridSampleCode download and the last update was last year. I am currently using the quadspi_load project to flash QuadSPI on a Vybrid Tower board.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am very interested in demonstrating parallel QuadSPI for our product and would like to leverage from a working example.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nancy Burkholder&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jul 2014 14:01:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243706#M697</guid>
      <dc:creator>nancyb</dc:creator>
      <dc:date>2014-07-25T14:01:12Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243707#M698</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Nancy,&lt;/P&gt;&lt;P&gt;&amp;nbsp; See the attached quadspi_load.c file which can overwrite the current one in the SC. The split() function is in the file attached to the original post. That should work then for you. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To use parallel mode, change &lt;STRONG&gt;#define PARALLEL_MODE&lt;/STRONG&gt;&amp;nbsp; to &lt;STRONG&gt;1 &lt;/STRONG&gt;in quadspi_load.c&lt;/P&gt;&lt;P&gt;You will also need to modify &lt;STRONG&gt;\src\boot\quadspi\quadspi_boot.c &lt;/STRONG&gt;to enable the parallel boot option:&lt;/P&gt;&lt;P&gt;&lt;STRONG&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; 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Parallel Port Enable (0=disabled, 1=enabled)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jul 2014 16:35:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243707#M698</guid>
      <dc:creator>anthony_huereca</dc:creator>
      <dc:date>2014-07-25T16:35:02Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243708#M699</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Anthony,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I updated my quadspi_load project to use your quadspi_load.c and split.c. I added the following #defines to quadspi_load.c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define PARALLEL_MODE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;#define FLASH1_BASE_ADR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x20000000&lt;/P&gt;&lt;P&gt;#define FLASH2_BASE_ADR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x21000000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In source file quadspi.c I modified quadspi_erase( void ) to quadspi_erase( unsigned long address ) in order to work with your code in main(). I did not modify any other quadspi code in Vybrid Sample Code folder.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I modified quadspi_conf in the hello_world example code:&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Parallel Mode Disable */&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;The image would not boot when I configured the jumpers to boot from QSPI. I could debug the image executing in QSPI through IAR EW IDE and j-link. I stepped through the image and verified it was executing from QSPI. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am continuing to investigate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nancy&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the hello_world quadspi_conf:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;const SFLASH_CONFIGURATION_PARAM quadspi_conf = {&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DQS LoopBack */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 1*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 2*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 3*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 4*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* cs_hold_time */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* cs_setup_time */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x400000,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* A1 flash size */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* A2 flash size */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* B1 flash size */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* B2 flash size */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SCLK Freq */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 5*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Single Mode Flash */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Port - Only A1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DDR Mode Disable */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DQS Disable */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Parallel Mode Disable */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Port A CS1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Port B CS1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FS Phase */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FS Delay */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DDR Sampling */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* LUT Programming */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x0403,&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x0818,&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x1c08,&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x2400,&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jul 2014 12:48:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243708#M699</guid>
      <dc:creator>nancyb</dc:creator>
      <dc:date>2014-07-29T12:48:51Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243709#M700</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I tried using my quad mode quadspi_conf. I can run the image from the IAR debug session but the processor won't boot the image otherwise.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nancy&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define SCLK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;const SFLASH_CONFIGURATION_PARAM quadspi_conf = {&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DQS LoopBack */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 1*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 2*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 3*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 4*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* cs_hold_time */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* cs_setup_time */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x1000000,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* A1 flash size */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x1000000,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* A2 flash size */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x1000000,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* B1 flash size */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* B2 flash size */&lt;/P&gt;&lt;P&gt; SCLK,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SCLK Freq */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 5*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; 4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Quad Mode Flash */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Port - Only A1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DDR Mode Disable */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DQS Disable */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Parallel Mode Enable */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Port A CS1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Port B CS1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FS Phase */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FS Delay */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DDR Sampling */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* LUT Programming */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x046B,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CMD QOR&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x0818,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ADDR 24&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x0C08,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DUMMY 8&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x1E80,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // READ (4) 0x80&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x2400,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // JMP_CS 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0x0000,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // STOP&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jul 2014 13:15:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243709#M700</guid>
      <dc:creator>nancyb</dc:creator>
      <dc:date>2014-07-29T13:15:10Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243710#M701</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Nancy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;quadspi_conf has to be programmed in nonparallel mode to CS0 chip (or, if you wish, the same nonparallel copy to both CS0 and CS1 chips). I don't know how others are doing it, I defined few macros, which replace byte 0x12, with two bytes 0x11,0x22, which helps putting the same nonparallel copy of quadspi_conf to both chips. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if QSPI_PARALLEL&lt;BR /&gt; #define w8(x) (((x) &amp;amp; 0xF0) &amp;gt;&amp;gt;4) * 0x11, ((x) &amp;amp; 0x0F) * 0x11&lt;BR /&gt; #define w16(x) w8(x), w8((x) / 256u)&lt;BR /&gt; #define w32(x) w16(x), w16((x) / 65536ul)&lt;BR /&gt;#else&lt;BR /&gt; #define w8(x) :smileyx:&lt;BR /&gt; #define w16(x) ((x)&amp;amp;0xFF), ((x) / 256u)&lt;BR /&gt; #define w32(x) w16(x), w16((x) / 65536ul)&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;const char quadspi_conf0[0x400] =&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w32(0),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved (DQS LoopBack) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(3),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // hold delay B, A (BA) enable 00/01/10/11&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(0),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // half speed phase sel. 0 - at non-inv clock, 1 - at inv clock&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(0),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // half speed delay selection 0- one cycle delay, 1-two clock cycle delay&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(0),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* reserved 1*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w32(0),w32(0),w32(0),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 2-4*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w32(3),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* cs_hold_time, serial clocks */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w32(3),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* cs_setup_time, serial clocks */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w32(QSPI_MEM_A1_SZ),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* A1 flash size */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w32(QSPI_MEM_A2_SZ),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* A2 flash size */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w32(QSPI_MEM_B1_SZ),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* B1 flash size */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w32(QSPI_MEM_B2_SZ),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* B2 flash size */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; w32(&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0*0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SCLK Freq 18MHz */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 1*0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 60MHz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 2*0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 74MHz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 3*1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 99MHz&lt;BR /&gt; ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w32(0),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved 5*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; w8(PINMODE),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Single Mode Flash 1/2/4 pads*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; w8(QSPI_MEM_B1_SZ || QSPI_MEM_B2_SZ),&amp;nbsp; /* 0 - port B used, 1- port B not used */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(1*0),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DDR Mode Enable */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(1*0),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DQS strobe enable */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(!!QSPI_PARALLEL),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Parallel Mode enable */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(!!QSPI_MEM_A2_SZ),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS1 on port A enable*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(!!QSPI_MEM_B2_SZ),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS1 on port Benable*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(0),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FS Phase - 0 - sample at non-inv. clock, 1 - at inv. clock*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(0),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FS Delay - 0 - 1clk, 1- 2clk*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w8(0),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DDR Sampling selay 0..7*/&lt;BR /&gt;&amp;nbsp; /* LUT Programming */&lt;BR /&gt; #if PINMODE==1 // 1-pin&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(lCMD,pOne,0x3) ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(lADDR,pOne,24) ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(lREAD,pOne,8)&amp;nbsp; ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(lJMP_ON_CS,pOne, 0)&amp;nbsp; ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(0, 0, 0)&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; #elif PINMODE==4 // 4-pin&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(lCMD,pOne,0xEB) ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(lADDR, pFour, 24)&amp;nbsp; ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(lMODE,pFour,0x55)&amp;nbsp; ),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 0xAx - skip CMD&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(lDUMMY, pFour, 4)&amp;nbsp; ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(lREAD,pFour,8) ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(lJMP_ON_CS, pOne, 0) ),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 1 skip CMD if mode is 0xA*&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(0, 0, 0) ),&lt;BR /&gt;&amp;nbsp;&amp;nbsp; w16( LUTi0(0, 0, 0) ),&lt;BR /&gt; #endif&lt;BR /&gt;};&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jul 2014 18:49:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243710#M701</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2014-07-29T18:49:24Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243711#M702</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Edward,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for sharing your configuration. I borrowed some of your values and plugged them into my project, along with the code supplied by Anthony, and was able to successfully flash, boot, and execute the Vybrid Sample Code "hello_world" image. While stepping through the code (IAR and j-link) I observed the QuadSPI0_BFGENCR bit PAR_EN set to 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have not yet successfully translated this success to my MQX application but it is nice to have a working example.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nancy&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Jul 2014 15:59:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243711#M702</guid>
      <dc:creator>nancyb</dc:creator>
      <dc:date>2014-07-31T15:59:35Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243712#M703</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am having trouble creating a bootable MQX QSPI image in parallel mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have two test images: &lt;STRONG&gt;hello_world&lt;/STRONG&gt; from the Vybrid sample code and &lt;STRONG&gt;hello2&lt;/STRONG&gt; from MQX examples. I am using the Vybrid Tower platform, IAR 7.2 Embedded Workbench, and j-trace debugger pod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I modified the Vybrid sample code program &lt;STRONG&gt;quadspi_load&lt;/STRONG&gt; to support flashing an image in parallel mode using split.c, modified quadspi_load.c, and related QuadSPI configuration parameters as noted in earlier thread entries.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can reliably flash &lt;STRONG&gt;hello_world&lt;/STRONG&gt; and boot in parallel mode; no problems at all.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can build, flash and boot &lt;STRONG&gt;hello2&lt;/STRONG&gt; in QSPI single mode but the image will not boot in parallel mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have discovered that after exiting &lt;STRONG&gt;quadspi_load&lt;/STRONG&gt; debug, and without changing the board jumpers or cycling power, I can connect the debugger to the target using the&lt;STRONG&gt; hello2&lt;/STRONG&gt; QSPI debug configuration. Then I can reset the debugger and execution starts at __boot at 0x20000800. Thereupon the MQX image will run in parallel mode without problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;I verified that &lt;STRONG&gt;hello_world&lt;/STRONG&gt; and&lt;STRONG&gt; hello2&lt;/STRONG&gt; use identical QuadSPI configuration parameters and IVT. The QuadSPI configuration parameters are programmed in single mode and the reset of the image is programmed in parallel mode.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5em; font-size: 10pt;"&gt;Is there some other configuration &lt;/SPAN&gt;required&lt;SPAN style="line-height: 1.5em; font-size: 10pt;"&gt; for MQX that I have overlooked that would allow the single mode image to boot and derail the parallel mode boot?&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Aug 2014 15:13:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243712#M703</guid>
      <dc:creator>nancyb</dc:creator>
      <dc:date>2014-08-19T15:13:06Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243713#M704</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Nancy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I guess you are booting MQX code, which executes from QSPI? If so, then perhaps MQX initializes QSPI and at some point CPU is unable to read some instructions. You could try disabling QSPI, rebuilding MQX and see if it helps. QSPI still can be reinitialized while executing from QSPI, but it should be done executing from RAM or DDR or some other unaffected memory. If there are some interrupt handlers in QSPI memory, then QSPI reinitialization should be done with interrupts disabled.&lt;/P&gt;&lt;P&gt;Also you may try debugging MQX from start point. Don't know about IAR, but DS-5 has hardware breakpoints, which can be set in QSPI and load_debugger_symbols without loading code. After QSPI programming one needs to reset from debugger, so that PC points to 0, set HW breakpoint at MQX entry point and hit run. Debugger should stop where it is asked for.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Aug 2014 06:41:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243713#M704</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2014-08-20T06:41:54Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243714#M705</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Edward,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My executable image using MQX is built for QSPI XIP and the Vybrid boot ROM handles the QSPI device initialization using the QuadSPI configuration values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I build the MQX image for single mode and Vybrid boots XIP without issue. I can connect the debugger and step/run without exception.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I build the MQX image for parallel mode and Vybrid goes off into the weeds. Nothing gets initialized and the debugger cannot connect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;The only difference between an MQX image that works and fails is building the image for QuadSPI parallel mode.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;I have verified that QuadSPI configuration values and the IVT are valid because I use the same values to run the non-MQX hello_world image.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am at a loss to explain why my MQX image built for QuadSPI parallel mode fails to boot XIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nancy&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Aug 2014 12:58:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243714#M705</guid>
      <dc:creator>nancyb</dc:creator>
      <dc:date>2014-08-22T12:58:02Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243715#M706</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Nancy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I guess you have MQX configured to enable / initialize QSPI at reset. I guess it MQX is configured to initialize QSPI for non-parallel mode. That's one possible problem. Even if MQX was configuring QSPI for parallel mode, the same like it is specified in QPSI boot config tables, reinitialization of QSPI still may make your code jumping into the weeds. It is the same like destroying a bridge, on which you are at the moment. Will it hang or not depends on many factors. So I'm asking (again), did you try to disable QSPI in MQX BSP? I'd try it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt; I build the MQX image for parallel mode and Vybrid goes off into the weeds. Nothing gets initialized and the debugger cannot connect.&lt;/P&gt;&lt;P&gt;Perhaps you can't debug using Keil, but it is possible to debug using DS-5. Hit reset button in debugger, which is set up to not start and go until main() or other function, set HARDWARE breakpoint, hit run. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Aug 2014 13:58:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243715#M706</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2014-08-22T13:58:17Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243716#M707</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Edward,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I verified that the MQX QuadSPI and QuadSPI FlashX drivers are disabled in user_config.h and the BSP has been built with this setting.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I didn't think the MQX BSP would be an issue because the debugger stops at the first instruction in the image prior to starting MQX. &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I set up my j-Trace with hardware breakpoints but the debugger reports failure to temporarily halting the CPU for reading CP15 register when I try to connect to the target. If I continue rather than abort the debugger I cannot perform any operations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It seems to me that if the QuadSPI configuration parameters and IVT are valid then the ROM boot code would proceed with a viable QuadSPI boot. I can observe this behavior with my non-MQX image built for parallel mode and with my MQX image built for single mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I appreciate your suggestions and insight into how I can proceed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nancy &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Aug 2014 14:58:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243716#M707</guid>
      <dc:creator>nancyb</dc:creator>
      <dc:date>2014-08-22T14:58:17Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243717#M708</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Nancy&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How do you program image to flash? Are you using quadspi_load? I'm not sure, but I think I saw bug in quadspi.c quadspi_program() function. I think it didn't program last sector of image, in case it wasn't complete and not sector address aligned. I'm not sure about it, but you should check if whole image is programmed properly. There should be no difference between MQX program and bare metal program, both should run well in parallel mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I didn't think the MQX BSP would be an issue because the debugger stops at the first instruction in the image prior to starting MQX. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After code runs away, debugger may point to any location.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I set up my j-Trace with hardware breakpoints but the debugger reports failure to temporarily halting the CPU for reading CP15 register when I try to connect to the target. If I continue rather than abort the debugger I cannot perform any operations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You should not worry about connection problems here. Debugger still should allow you to reset target so that PC register points to 0x0 address. Then you should set HW breakpoint to entry point and hit Run. Target CPU should execute boot ROM code, and if QSPI config is OK, debugger should stop at entry point, of course if boot ROM reads QSPI config and all tables properly and makes a jump to proper address.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does your project include some IP? If not, perhaps I could try compiling it and see what's wrong.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Aug 2014 07:05:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243717#M708</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2014-08-25T07:05:32Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243718#M709</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Edward,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use quadspi_load to flash QuadSPI. My version of quadspi_load defines size at 0x40000, which is much larger than the MQX image size of 0xed3c. Next time I run quadspi_load I will observe quadspi_program() to see how it handles the size.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The test images do not have any IP issues. They are example code that I was using to test my modifications of quadspi_load to handle parallel QuadSPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;Nancy&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Aug 2014 13:54:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243718#M709</guid>
      <dc:creator>nancyb</dc:creator>
      <dc:date>2014-08-25T13:54:52Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243719#M710</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For some reason I cannot post my original response; the website keeps reporting an error and will not save my reply. I am using Chrome but the same error happens using IE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nancy&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Aug 2014 14:02:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243719#M710</guid>
      <dc:creator>nancyb</dc:creator>
      <dc:date>2014-08-25T14:02:26Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel QuadSPI</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243720#M711</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;One curious observation: When I exit quadspi_load after flashing my MQX image to QuadSPI, and without altering the boot configuration or resetting the target, I can connect back to the target using the MQX hello2 XIP image. Then I can pause the processor and observe it running the endless loop from quadspi_load. When I issue a reset command then execution stops at 0x20000800. From that point I can step through the MQX image and the MQX image executes without issue. The trouble begins when I set the boot configuration for QuadSPI and power cycle the target. The image fails to boot and I cannot connect the debugger.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Aug 2014 14:03:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Parallel-QuadSPI/m-p/243720#M711</guid>
      <dc:creator>nancyb</dc:creator>
      <dc:date>2014-08-25T14:03:36Z</dc:date>
    </item>
  </channel>
</rss>

