Lowest Cost Boot Design ?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Lowest Cost Boot Design ?

Jump to solution
1,403 Views
ChrisNielsen
Contributor III

I'm designing for a very cost sensitive application.  I was planning to use low-end SPI NOR FLASH as my boot/storage device with no DDR external memory -- the on-board RAM (1MB) is sufficient for my data needs and my code will fit completely in the 512 KB cache.

The issue is that with "load and go" approach, I "waste" ~512KB of precious on-board RAM for my code's initial execution location which is useless since it is quickly pulled into cache and the 512 KB of RAM is never accessed again and I am left with 512 KB of RAM data space as opposed to a full 1 MB if I could execute in place (XIP).

>>> Or, is there a trick where I can lock all my code into cache then recover the 512 KB of initial code location and reuse it as data RAM?

So, I am studying all XIP options.  I only see two listed: 1) Quad SPI, 2) Parallel NOR FLASH on FlexBus.

1) Quad SPI.  My concern here is whether or not it is possible to boot from a single 4-bit wide (quad) SPI device.  RM Table 19-9 seems to imply that two devices are required and the fact that the Tower board has two adds to my concern.

>>> So...is it possible to XIP from a single 4-bit SPI device?

Spansion S25FL032P is one example of a low-cost (<$0.60 @ 1K) quad SPI part that I am considering.

Thanks, Chris

Labels (5)
0 Kudos
1 Solution
843 Views
naoumgitnik
Senior Contributor V

Hello Chris,

  1. Without digging too dip, earlier you mentioned booting from the QSPI1 yourself ("... I did more reading in the RM. It appears that if QuadSPI1 is selected by BOOT_CFG[1]...") + there is a thread on the Community forum about booting via this bus.
  2. Yes - apparently, if you are in the 1-bit mode, the other 3 bits are ignored. It is unclear what the "low-end" term means, but, as long as the bus specification is met by both the memory and the processor, everything is supposed to work.

Regards, Naoum Gitnik.

View solution in original post

0 Kudos
7 Replies
843 Views
ChrisNielsen
Contributor III

I forgot a key point.  Low-end parallel NOR FLASH parts are in roughly the same price range as the Quad SPI parts for the same density (a bit of a premium for parallel's larger package).

The concern is the longer term pricing and availability of parallel NOR parts.

>>> I know it's a difficult question to answer but would you consider a design using parallel NOR a conservative move with the assumption that there will always be some smaller, aggresive silicon provider that will always provide parts in this classic deep embedded socket (parallel NOR)? (even if the cell phone OEMs move on to eMMC and drop all NOR.  eMMC's lowest starting point is too costly for me)

Spansion has a long-term part program and Winbond and Macronix seems to be interested in this market and there are good supplies, today.

Thanks, Chris

0 Kudos
843 Views
aleccohen
Contributor II


Hey Chris,

Looks like you already got your answer, but you might also look at the Macronix MX25L3235E (3V, 32Mb, Serial NOR Flash) which supports x1, x2, x4 I/O Read modes.

If you do not require x4, or the higher clock rates, you could look at the MX25L3206E which is even more cost effective.

-Regards, Alec

0 Kudos
843 Views
ChrisNielsen
Contributor III

I did more reading in the RM.  It appears that if QuadSPI1 is selected by BOOT_CFG[1], then it only has pads defined for a single quad SPI interface (4 data lines).

Table 19-12 shows a QuadSPI confirguarion parameter defining the "Mode of Operation" = Single, Dual, or Quad.

>>> Is it possible to XIP using a 1-bit SPI NOR part? (this assumes the initial 318 byte configuration fetch is always performed using the lowest common mode of 1-bit data)

In other words, can the QuadSPI XIP interface work in the degraded 1-bit mode?

Thanks, Chris

0 Kudos
843 Views
naoumgitnik
Senior Contributor V

Hello Chris,

There are 2 places in the Reference Manual where the QuadSPI XIP interface is mentioned:

  • Table 19-12 shows a QuadSPI configuration parameter defining the "Mode of Operation" = Single, Dual, or Quad.
  • In the “Memory Interfaces” description on page 2, it reads “Dual Quad SPI with XIP (Execute-In-Place)”.

It means the following:

  • The QuadSPI XIP interface work in the Single (1-bit data), Dual (2-bit data), or Quad (4-bit data) mode.
  • The “Memory Interfaces” description means that there are 2 QuadSPI controllers in Vybrid that can work in the XIP mode.


Regards, Naoum Gitnik.

0 Kudos
843 Views
ChrisNielsen
Contributor III

I'm sorry about the length of my questions above.  I'll summarize the 2 core questions:

1) Is it possible to boot from a Single Quad SPI on QSPI0 or QSPI1?  (as opposed to Dual Quad which is all that is ever mentioned in the marketing literature, DS, RM.  The term Single Quad is never used.  I'm rather confident it's supported, but I'd like to check since I'm spinning a board before we're able to test this area on Tower)

2) Is it possible to put a non-quad device (low-end 1-bit SPI FLASH) in a QSPI booting socket and have it boot? (I think all that matters is that it reads the first 318 bytes using 1-bit mode.  It's really a question to clarify that it won't use some advanced Quad 1-bit communication method that older 1-bit SPI chips don't have)

Thanks, Chris

0 Kudos
844 Views
naoumgitnik
Senior Contributor V

Hello Chris,

  1. Without digging too dip, earlier you mentioned booting from the QSPI1 yourself ("... I did more reading in the RM. It appears that if QuadSPI1 is selected by BOOT_CFG[1]...") + there is a thread on the Community forum about booting via this bus.
  2. Yes - apparently, if you are in the 1-bit mode, the other 3 bits are ignored. It is unclear what the "low-end" term means, but, as long as the bus specification is met by both the memory and the processor, everything is supposed to work.

Regards, Naoum Gitnik.

0 Kudos
843 Views
karina_valencia
NXP Apps Support
NXP Apps Support

naoumgitnik can you continue with the  follow up of this case?

0 Kudos