This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM6442: GPMC 16 bit read issue

Part Number: AM6442


The GPMC registers are configured as below for the CS0

# devmem 0x3B000050
0x00000100
# devmem 0x3B000054
0x00000301
# devmem 0x3B000060
0x00601000
# devmem 0x3B000064
0x00080801
# devmem 0x3B000068
0x00000000
# devmem 0x3B00006c
0x08000800
# devmem 0x3B000070
0x00080808
# devmem 0x3B000074
0x88000380
# devmem 0x3B000078
0x00000E50
When we accesses the 16 bit device on the GPMC bus using the commands
# devmem 0x50000000 16
0x0002
# devmem 0x50000000 32
0x00000002
We see this on the scope for both 16 bit and 32 bit access. The pink is the clock, blue is chip select 0 and green is the wait signal.
For the 16 bit write we see this on the scope.
devmem 0x50000000 16 0x0002
Our device is 16 bit and the device size on the GPMC is set to 16. But why does the GPMC generate two chipselect cycle for a 16 bit read access. The data is read correctly for both 16 bit and 32 bit access. But it slows the read due to the extra access and the read may occur on a read to clear register. The extra access is for the next even address. For the 16 bit write access the GPMC generates one chip select cycle as expected. Is there a way to prevent this dummy chip select cycle on 16 bit reads?