Ok, so why wouldn't that work *exactly* like the part used by the AT91SAM3U-EK, just with slightly fewer higher order address bits?
See schematic/wiring, pg 38
http://www.atmel.com/dyn/resources/prod ... oc6478.pdfThe address bus is linear, and not multiplexed, the row/column is an internal implementation detail of the part, I don't see any consequence of that to the SAM3U.
The PSRAM is mapped directly into the SAM3U's address space, you'd access it just like any other memory attached to the bus. If you configure like the SAM3U-EK it will reside at 0x60000000..0x6001FFFF. Any of this making sense?
A0 of the PSRAM connects to A1 on the SAM3U
A1 of the PSRAM connects to A2 on the SAM3U
..
A15 of the PSRAM connects to A16 on the SAM3U
/// EBI
#define PIN_EBI_DATA_BUS {0xfe01fe00, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}, \
{1 << 6, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_B, PIO_PULLUP}
#define PIN_EBI_NCS0 {1 << 20, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}
#define PIN_EBI_NRD {1 << 19, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}
#define PIN_EBI_NWE {1 << 23, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_A, PIO_PULLUP}
#define PIN_EBI_PSRAM_ADDR_BUS {0x3f00fff, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_PERIPH_A, PIO_PULLUP}
#define PIN_EBI_PSRAM_NBS {1 << 7, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_B, PIO_PULLUP}, \
{1 << 15, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_PERIPH_A, PIO_PULLUP}
#define PIN_EBI_A1 {1 << 8, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_PERIPH_B, PIO_PULLUP}
#define BOARD_EBI_PSRAM 0x60000000
#define BOARD_PSRAM_PINS PIN_EBI_DATA_BUS, PIN_EBI_NCS0, PIN_EBI_NRD, PIN_EBI_NWE, \
PIN_EBI_PSRAM_ADDR_BUS, PIN_EBI_PSRAM_NBS, PIN_EBI_A1