GPMC0_BE[3:0]_N pin does not work as expected during single read transfer. Single write transfer is no problem. GPMC is used with address data multiplexed and DEVICESIZE=32 bit.
What is wrong with my steps or settings?
Single read access:
(1) Access 0x50200000 with ldrb: GPMC_BE[3:0]_N == 4'b0000. Expected value is 4'b1110.
(2) Access 0x50200000 with ldrh: GPMC_BE[3:0]_N == 4'b0000. Expected value is 4'b1100.
(3) Access 0x50200000 with ldr: GPMC_BE[3:0]_N == 4'b0000
Single write access:
(4) Access 0x50200000 with strb: GPMC_BE[3:0]_N == 4'b1110
(5) Access 0x50200000 with strh: GPMC_BE[3:0]_N == 4'b1100
(6) Access 0x50200000 with str: GPMC_BE[3:0]_N == 4'b0000
The GPMC register settings are below.
/* CONFIG1_0(NOR Memory Type) */ #define CSL_GPMC_CONFIG1_0_NOR_MEM_TYPE_RESETVAL (0x28002200U)
/* CONFIG7_0(NOR CS Configuration) */ #define CSL_GPMC_CONFIG7_0_NOR_CS_CONFIG_RESETVAL (0x00000E10U)
/* CONFIG1_0(WAIT Pin Configuration) */ #define CSL_GPMC_CONFIG1_0_WAIT_PIN_CONFIG_RESETVAL (0x00600000U)
/* CONFIG(WAIT Pin Configuration) */ #define CSL_GPMC_CONFIG_WAIT_PIN_CONFIG_RESETVAL (0x00000100U)
/* CONFIG1_0(Timing parameters) */ #define CSL_GPMC_CONFIG1_0_TIMING_PARAMS_RESETVAL (0x28000200U)
/* CONFIG2_0(Timing parameters) */ #define CSL_GPMC_CONFIG2_0_TIMING_PARAMS_RESETVAL (0x00050581U)
/* CONFIG3_0(Timing parameters) */ #define CSL_GPMC_CONFIG3_0_TIMING_PARAMS_RESETVAL (0x22040415U)
/* CONFIG4_0(Timing parameters) */ #define CSL_GPMC_CONFIG4_0_TIMING_PARAMS_RESETVAL (0x05804592U)
/* CONFIG5_0(Timing parameters) */ #define CSL_GPMC_CONFIG5_0_TIMING_PARAMS_RESETVAL (0x00040505U)
/* CONFIG6_0(Timing parameters) */ #define CSL_GPMC_CONFIG6_0_TIMING_PARAMS_RESETVAL (0x04020000U)
/* CONFIG7_0(Enable CS) */ #define CSL_GPMC_CONFIG7_0_ENABLE_CS_RESETVAL (0x00000040U) |