Hi Jon,
Sorry for first kicking in on this thread now. But better late than never
- I have been away from my BeagleBoard-list-account for like 6 weeks and
I'm now slowly catching up on the previous ~1.500 emails
Yeah, the TRM is a totally INSANE piece of work! 3700 pages! Nobody
can possibly wade through all of that.
You are right - It's insane - Never the less I have been through most parts
of it at least twice (some of the chapters many more times) - But I have as
well spend the last ~7 years doing this - Starting with OMAP1 long time ago
The GPMC turns out to be used to communicate with the NAND flash memory
chip that is piggybacked on top of the CPU, so it is not available for
other things.
Even though the GPMC is connected to the NAND it can be used to communicate
with other devices and well, since it have several Chip Selects, which can
be mapped to different memory regions and configured individually. But you
are right: You won't have exclusive access to the GPMC - That being said the
GPMC isn't accessible at Beagle, so it isn't relevant
It may also be that the bottleneck is somewhere else, in the L3
interconnect,
L4 interconnect, or IO firewall.
The L4, L3 and IO firewalls won't be the bottlenecks. It's unfortunately the
GPIO module itself, which isn't made for the purpose you would like. I.e.
it's *not* supposed to be used as a 8-bit parallel IO bus interface, but to
be used as single GPIOs for control on their own.
In case you need a bus interface in OMAP3 you need to use either the GPMC
(IO), ISP (I), LCD (O), or MMC (IO) interface. The newly introduced OMAP
L138 have a Universal Parallel Port (uPP), which is basically what you want
but to be honest I don't know that much about this one yet, since it's still
relatively new in the OMAP world and I haven't dealt with it yet
So the short answer to your GPIO trouble is: You won't (unfortunately) be
able to go higher than the ~4MHz you have found - It's limited by the IP
block design AFAIK - I know this isn't the answer you are searching for, but
unfortunately it's the truth
Hope you find another way around this. Using the MMC interface together with
a FPGA for converting into the format you need should bring you the ability
to go to 8-bit@48MHz minus the MMC protocol overhead. This might be a
solution while still utilizing the BeagleBoard? Alternative you can access
the GPMC on an Gumstix Overo board, but again this requires you to add
extra/other HW to your setup.
Best regards - Sorry about the bad news - Good luck
Søren