I recently got contacted off-list by someone who is creating an embedded system with NAND flash and the SAM9XE processor. I'm posting this solution here on this list to perhaps help others who are interfacing a NAND flash to an embedded system. This is a solution which has been tested on an embedded system.
Here's the text of my response:
I designed and built an AT91SAM9260 board as a prototype, but for the next revision of my PCB, I switched to using an AP7001 processor, which is part of the AVR32 architecture produced by Atmel. I found that the AVR32 architecture was better suited for my application. I've since used the AP7000 and AP7001 processors.
However, since the AVR32 architecture is very similar to the ARM architecture, and the EBI is similar (especially for Atmel products), you should have no trouble interfacing a NAND flash. There is a hardware checklist for the AVR32 architecture, but if you read it carefully, I am certain that you will also be able to apply the EBI interfacing to the ARM architecture. Here's a link to the checklist:
I am certain that there is a memory limit to accessing NAND flash (as indicated by the processor memory map), but this only applies to the chip select on the EBI. Rather than wiring the chip select for the NAND flash to EBI Chip Select 3, I would wire the chip select to a PIO via a0 ohm resistor. The PIO can be just a free port pin of the SAM9XE. I would also provide a jumper from the NAND flash chip select to the EBI Chip Select 3 via a 0 ohm resistor which is not populated. This allows you to select the chip select interface in hardware.
If you are running an embedded operating system such as Linux, you identify the chip select of the NAND flash as the GPIO in the board setup code. I am fairly certain that this will allow for NAND flash to be accessed which is larger than the 256MB size.