Very recently, I started exploring the TI OMAP3x General Purpose Memory Controller (GPMC) module to use it as a high speed interface. Frist, one simple driver module was ready and I was interested to test it with-out the external target device. Because, it was under developement. Like Physical loopback option in Ethernet PHY, I was looking for a similar kind of loopback setting in GPMC. But there is no such support is available in the GPMC. So I tried in TI E2E form for some clue and trick. No success in that attempt.
In the meantime, the external device was ready and trying some experiments in that. One day, we acceiently ran the test with-out connecting the external device. But our test code was properly writing (ok) and reading (?!) the data. So I was bit puzzled and started doubting all my previous test case/result. And again went back to OMAP TRM and found a interesting point, for which I didn’t give much importance on the 1st time reading:
GPMC Bus Keeping Support: At the end-cycle time of a read access, if no other access is pending, the GPMC drives the bus with the last data read after RDCYCLETIME completion time to prevent bus floating and reduce power consumption. After a write access, if no other access is pending, the GPMC keeps driving the data bus after WRCYCLETIME completes with the same data to prevent bus floating and power consumption.