UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
3,431 Views
Registered: ‎01-08-2012

Can Zynq boot from QSPI Nand?

Hi,

 

I'm thinking of using a Zynq part in a design for a client.  I'm considering using a QSPI Nand flash as the only flash storage.

 

All the example designs and documentation I've read seem to treat "QSPI flash" as a synonym for QSPI Nor flash.  QSPI Nand flash isn't mentioned at all.

I want to use Nand (rather than Nor) flash as Nor flash is limited in size (too small for my application) and is also more expensive per bit than Nand flash.

 

What are my chances of getting the following to work?

 

- ROM bootloader boots from QSPI Nand flash.  This would need to include error correction.  (The first block is guaranteed to be good only after ECC, i.e. it can have errors.)

 

- The ROM bootloader puts the flash part into x4 mode to improve performance.

 

- After boot, a driver will need to control the QSPI.  Would such a driver already exist in a (e.g. Linux) kernel, or would we need to write our own?

 

 

An example serial Nand part would be the Micron MT29F4G01AAADDHC.

 

Thanks,

Allan

0 Kudos
3 Replies
Visitor jamincheung
Visitor
836 Views
Registered: ‎02-25-2018

Re: Can Zynq boot from QSPI Nand?

I'm thinking of using spi-nand too, did you have found something helpful?


@allanherriman wrote:

Hi,

 

I'm thinking of using a Zynq part in a design for a client.  I'm considering using a QSPI Nand flash as the only flash storage.

 

All the example designs and documentation I've read seem to treat "QSPI flash" as a synonym for QSPI Nor flash.  QSPI Nand flash isn't mentioned at all.

I want to use Nand (rather than Nor) flash as Nor flash is limited in size (too small for my application) and is also more expensive per bit than Nand flash.

 

What are my chances of getting the following to work?

 

- ROM bootloader boots from QSPI Nand flash.  This would need to include error correction.  (The first block is guaranteed to be good only after ECC, i.e. it can have errors.)

 

- The ROM bootloader puts the flash part into x4 mode to improve performance.

 

- After boot, a driver will need to control the QSPI.  Would such a driver already exist in a (e.g. Linux) kernel, or would we need to write our own?

 

 

An example serial Nand part would be the Micron MT29F4G01AAADDHC.

 

Thanks,

Allan


 

0 Kudos
816 Views
Registered: ‎01-08-2012

Re: Can Zynq boot from QSPI Nand?

I eventually came to the conclusion that SPI nand wouldn't work, but I don't recall the exact reasoning.

 

The Zynq 7 boards that I designed back then (2012) ended up with 1.8V ONFI parallel nand Flash instead.

This worked quite well at the time.  Over the last few years though, I've had compatibility issues with the (Cadence?) memory controller in the Zynq.  I guess the controller was designed in 2009? 2010? something like that.  Back then, nand Flash parts were all SLC and only required 1 bit ECC, so that's all the controller could understand.

 

1.8V Nand Flash parts that can be purchased in 2018 aren't like that.  They will require > 1 bit ECC, which isn't supported by the controller in the Zynq.

There are two options:

  1. use software ECC, which is slower, less power efficient, and isn't supported during boot
  2. use a nand Flash part with onboard ECC.

 

We ended up with onboard ECC parts from Micron's longevity program, so we shouldn't have any EOL issues before we are ready to retire those products.  Fingers crossed.

0 Kudos
Visitor jamincheung
Visitor
807 Views
Registered: ‎02-25-2018

Re: Can Zynq boot from QSPI Nand?

Hi, Allan:

     Thanks for reply,parallel NAND is my backup option.But I still want to use spi-nand for qspi.

   

     1.For qspi-nand boot, bootrom header don't contain nand page size field, how bootrom to know page num to load

     2.'Length of image' field in bootrom header max to 192KB, it exceed some spi-nand blk size, how bootrom check ecc

     3.For qspi controller,default boot mode is liner mode, liner mode could access spi-nand flash?

      

      very thanks.

0 Kudos