Page 1 of 1

Booting XEF part from External QuadSPI

Posted: Fri Feb 24, 2017 7:04 pm
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!

Re: Booting XEF part from External QuadSPI

Posted: Sat Feb 25, 2017 9:53 pm
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.

Re: Booting XEF part from External QuadSPI

Posted: Sun Feb 26, 2017 1:30 pm
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?

Re: Booting XEF part from External QuadSPI

Posted: Mon Feb 27, 2017 5:21 pm
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.