What is SPI boot flash configuration?

If you have a simple question and just want an answer.
Piker
Member
Posts: 8
Joined: Fri Jan 03, 2014 9:45 pm

What is SPI boot flash configuration?

Post by Piker »

I am noticing on the various dev kits that the SPI flash has additional logic ICs.

Also notice that they vary in the quantity,configuration and type of logic used.

Is there specific documentation about the requirements for using boot flash for each family member of XMOS processors?

I can't find any discussion on design issues related to SPI boot flash. It looks like there is some complexity

and not simply a matter of hooking up the flash pins directly as with other micro controllers.

Also what is the process to create a boot flash file and program it to the flash?

Is their a utility for this in xTimecomposer?



User avatar
sethu_jangala
XCore Expert
Posts: 589
Joined: Wed Feb 29, 2012 10:03 am

Post by sethu_jangala »

The additional logic ICs are used to select the boot mode of the xCORE device. Boot mode is defined by the mode pins that are availabe on the device. Different type of modes are boot from OTP, boot from SPI flash, boot from xCONNECT links. Based on the configuration of the boot mode pins the device boots up. The information is availabe in the devicce data sheet under the section Boot Procedure.

Piker
Member
Posts: 8
Joined: Fri Jan 03, 2014 9:45 pm

Post by Piker »

OK thanks.

So if I was rolling my own board could I just use some pullup resistors and jumper headers to set the mode pins?

 

 

User avatar
infiniteimprobability
XCore Legend
Posts: 1126
Joined: Thu May 27, 2010 10:08 am

Post by infiniteimprobability »

The simple answer is that you can just hook up a SPI flash directly to X0D0, X0D1, X0D10 and X0D11 with just a 10K pullup on CS.

The A8 datasheet has an example of this on page 28 

Many of the boards have muxing logic (muxes and latches) so that, after the program has booted, you can have full access to the SPI pins for user use. 

One bit ports are a valuable resource on XMOS chips so freeing up SPI after it has booted is sometimes useful. If you have enough pins then just dedicate the ports above to SPI, which is the easiest.

Some of the reference designs (eg. USB audio) multiplex X0D0, X0D10 and X0D11 with other functions such as I2S lines. This is OK, as long as the SPI is de-selected when you use the lines for other purposes, and the other function will not get upset while accessing SPI (and they are not needed simultaenlously!). Again, this is only needed if you are running short of pins and need to double-up