Hi,
I have questions about AM437x GPMC.
I will use GPMC and data width is 16bit.
What will be happen with data alignment, if byte and word(16bit) accessing to the odd byte boundary?
I guess the data aligning won't be performed if accessing to the odd byte boundary, so I guess the behavior of GPMC signal will be as following:
Case1: Single Write Access
(1)Writing one byte "0xAA" to the address 0x1
(2)Writing two bytes "0xAABB" to the address 0x1
In Case1-(1), will the lower address, BE(Byte Enable) and data be as following?
-Lower address GPMC_A[16:1] = 0x00_00
-Byte Enable(BE0/BE1) = (01)b
-GPMC data(16bit) = 0x**_AA (** means don't care)
In Case1-(2), will the access be divided into twice as following?
First access:
-Lower address GPMC_A[16:1] = 0x00_00
-Byte Enable(BE0/BE1) = (01)b
-GPMC data(16bit) = 0x**_AA (** means don't care)
Second access:
-Lower address GPMC_A[16:1] = 0x00_01
-Byte Enable(BE0/BE1) = (10)b
-GPMC data(16bit) = 0xBB_** (** means don't care)
Case2: Single Read Access
The data(0x00112233) is stored in the address 0x0 of external memory.
(1)Reading one byte from the address 0x1
(2)Reading two bytes from the address 0x1
In Case2-(1), will the lower address, BE(Byte Enable) and GPMC data be as following?
-Lower address GPMC_A[16:1] = 0x00_00
-Byte Enable(BE0/BE1) = (01)b
-GPMC data(16bit) = 0x**_11 (** means don't care)
In Case1-(2), will the access be divided into twice as following?
First access:
-Lower address GPMC_A[16:1] = 0x00_00
-Byte Enable(BE0/BE1) = (01)b
-GPMC data(16bit) = 0x**_11 (** means don't care)
Second access:
-Lower address GPMC_A[16:1] = 0x00_01
-Byte Enable(BE0/BE1) = (10)b
-GPMC data(16bit) = 0x22_** (** means don't care)
best regards,
g.f.