Support for the external memory bus is provided by the Tegra's Generic Memory Interface (GMI). The Colibri T20 supports up to a 32 bit data bus width while the Colibri T30 supports up to a 16 bit data bus width. Up to 28 address bits are available enabling up to 256MB of addressable space per chip select. They may be configured for both asynchronous and burst modes and have support for DMA.
The Toradex Tegra Linux images do not provide a fully functional general purpose GMI driver. However, there are a few ways to use the interface as well as multiple example drivers which may be adapted:
Simple 128kB write & read back tests are performed using Non-Mux mode with DMA enabled. Additionally, AHB Prefetch & 8 word DMA burst are enabled. CPU clocks were locked at their max frequency. Both Async & Burst modes were tested.
____DMA Async: ________Read = 9.207 MBps (73.656 Mbps) ________Write = 9.344 MBps (74.752 Mbps)
____DMA Burst: ________Read = 64.876 MBps (519.008 Mbps) ________Write = 10.688 MBps (85.504 Mbps)
____DMA Async: ________Read = 11.350 MBps (90.800 Mbps) ________Write = 11.379 MBps (91.032 Mbps)
____DMA Burst: ________Read = 37.204 MBps (297.632 Mbps) ________Write = 11.253 MBps (90.024 Mbps)
The Colibri iMX6 supports up to a 16 bit data bus width in non-multiplexed mode and up to a 32 bit data bus width in multiplexed mode. Up to 26 address bits are available enabling up to 128MB of addressable space per chip select. It may be configured for both asynchronous and burst modes. The iMX6 EIM may be clocked up to 133MHz.
The latest i.MX6 EIM (External Interface Module) driver supports a 16-bit non-multiplexed asynchronous mode for up to four chip select signals.
Simple 128kB write & read back tests yield the following performance:
____Read = 22.552 MBps (180.416 Mbps) ____Write = 19.807 MBps (158.456 Mbps)