Booting XEF part from External QuadSPI Topic is solved

If you have a simple question and just want an answer.
Post Reply
kevpatt
Member++
Posts: 30
Joined: Thu Feb 09, 2017 4:53 pm

Booting XEF part from External QuadSPI

Post by kevpatt »

Hi,

I did a quick search and didn't find an answer to this. I do apologize if I somehow missed it.

1. Is it possible to *ACCESS* an external QuadSPI flash device with the XCORE-200 parts that have internal Flash memory? (e.g. XLF, XUF, XEF). I imagine that with the QuadSPI library it should at least be possible to access an external QuadSPI Flash memory through some port.

2. Is it possible to *BOOT* an XCORE-200 part that has internal Flash memory (e.g. XLF, XUF, XEF), from an external QuadSPI flash device? If so, is the boot source controlled by pull-ups on certain pins?

I read the app note on booting from [external] QuadSPI, but I'm not quite sure if it can be applied to parts that already have internal QuadSPI flash.

Thanks!


View Solution
plex
Member++
Posts: 22
Joined: Fri Aug 12, 2016 6:13 pm

Post by plex »

It should be possible by doing the following but note that I have not tested it.
1) Make sure that there is a pull up resistor installed on the X0D00 pin - chip select for internal flash
2) Connect the external flash data lines and clock to the dedicated pins for the internal flash.
3) Connect the chip select of the external flash to a free 1 bit port.(install a pull up here as well)
4) In the XN file change the definition for the flash CS pin to the one used for the external flash.

The chip should then be able to access the external flash and boot from it. The flash type must be compatible. Check the guide lines for adding a flash to a device without one.
It should also be possible to access any of the flash memories using the qflash library from inside your program by defining the correct fl_QSPIPorts.
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm
Contact:

Post by Bianco »

plex wrote:It should be possible by doing the following but note that I have not tested it.
1) Make sure that there is a pull up resistor installed on the X0D00 pin - chip select for internal flash
2) Connect the external flash data lines and clock to the dedicated pins for the internal flash.
3) Connect the chip select of the external flash to a free 1 bit port.(install a pull up here as well)
4) In the XN file change the definition for the flash CS pin to the one used for the external flash.

The chip should then be able to access the external flash and boot from it. The flash type must be compatible. Check the guide lines for adding a flash to a device without one.
It should also be possible to access any of the flash memories using the qflash library from inside your program by defining the correct fl_QSPIPorts.
Regarding point 4, that's not going to work. The boot ROM will always use the fixed CS pin connected to the internal flash. You may get it working by following steps 1-3 and boot from OTP with a custom loader.

I do wonder though in which use case you want to use a device with embedded flash, connect an external flash to it and not boot from the internal flash?
kevpatt
Member++
Posts: 30
Joined: Thu Feb 09, 2017 4:53 pm

Post by kevpatt »

Thanks everyone for the info. The idea here is for something like a low-cost target board. In the base configuration, the xCore chip on the board would be programmed to boot from its internal flash. However, the customer could add an external flash part in the case that they need more storage space than the 2MB internal flash provides. It would be nice if boot could be selected using something simple, like a jumper. "Intelligent" boot selection from OTP would probably work too.
Post Reply