66#include "inc/hw_emif.h"
67#include "inc/hw_memmap.h"
68#include "inc/hw_types.h"
84#define EMIF_ASYNC_CS_CR_MASK ((uint32_t)EMIF_ASYNC_CS2_CR_R_HOLD_M | \
85 (uint32_t)EMIF_ASYNC_CS2_CR_R_STROBE_M | \
86 (uint32_t)EMIF_ASYNC_CS2_CR_R_SETUP_M | \
87 (uint32_t)EMIF_ASYNC_CS2_CR_W_HOLD_M | \
88 (uint32_t)EMIF_ASYNC_CS2_CR_W_STROBE_M | \
89 (uint32_t)EMIF_ASYNC_CS2_CR_W_SETUP_M | \
90 (uint32_t)EMIF_ASYNC_CS2_CR_TA_M)
98#define EMIF_ASYNC_INT_MASK ((uint16_t)EMIF_INT_MSK_SET_AT_MASK_SET | \
99 (uint16_t)EMIF_INT_MSK_SET_LT_MASK_SET | \
100 (uint16_t)EMIF_INT_MSK_SET_WR_MASK_SET_M)
114#define EMIF_ASYNC_INT_AT EMIF_INT_MSK_SET_AT_MASK_SET
118#define EMIF_ASYNC_INT_LT EMIF_INT_MSK_SET_LT_MASK_SET
122#define EMIF_ASYNC_INT_WR EMIF_INT_MSK_SET_WR_MASK_SET_M
129#define EMIF_MSEL_KEY 0x93A5CE70U
137#define EMIF_SYNC_SDRAM_CR_MASK ((uint32_t)EMIF_SDRAM_CR_PAGESIGE_M | \
138 (uint32_t)EMIF_SDRAM_CR_IBANK_M | \
139 (uint32_t)EMIF_SDRAM_CR_BIT_11_9_LOCK | \
140 (uint32_t)EMIF_SDRAM_CR_CL_M | \
141 (uint32_t)EMIF_SDRAM_CR_NM | \
142 (uint32_t)EMIF_SDRAM_CR_SR)
150#define EMIF_SYNC_SDRAM_TR_MASK ((uint32_t)EMIF_SDRAM_TR_T_RRD_M | \
151 (uint32_t)EMIF_SDRAM_TR_T_RC_M | \
152 (uint32_t)EMIF_SDRAM_TR_T_RAS_M | \
153 (uint32_t)EMIF_SDRAM_TR_T_WR_M | \
154 (uint32_t)EMIF_SDRAM_TR_T_RCD_M | \
155 (uint32_t)EMIF_SDRAM_TR_T_RP_M | \
156 (uint32_t)EMIF_SDRAM_TR_T_RFC_M)
377 HWREG(base + (uint32_t)offset) = (HWREG(base + (uint32_t)offset)
378 & ~((uint32_t)EMIF_ASYNC_CS2_CR_SS))
410 HWREG(base + (uint32_t)offset) = HWREG(base + (uint32_t)offset) |
411 EMIF_ASYNC_CS2_CR_EW;
441 HWREG(base + (uint32_t)offset) = HWREG(base + (uint32_t)offset) &
442 ~((uint32_t)EMIF_ASYNC_CS2_CR_EW);
471 HWREG(base + EMIF_O_ASYNC_WCCR) = (HWREG(base + EMIF_O_ASYNC_WCCR)
472 & ~((uint32_t)EMIF_ASYNC_WCCR_WP0))
473 | (uint32_t)polarity;
497 ASSERT(value <= (EMIF_ASYNC_WCCR_MAX_EXT_WAIT_M));
502 HWREGH(base + EMIF_O_ASYNC_WCCR) = (HWREGH(base + EMIF_O_ASYNC_WCCR)
503 & ~((uint16_t)EMIF_ASYNC_WCCR_MAX_EXT_WAIT_M))
538 temp = (tParam->
turnArnd << EMIF_ASYNC_CS2_CR_TA_S) |
539 (tParam->
rHold << EMIF_ASYNC_CS2_CR_R_HOLD_S) |
540 (tParam->
rStrobe << EMIF_ASYNC_CS2_CR_R_STROBE_S) |
541 (tParam->
rSetup << EMIF_ASYNC_CS2_CR_R_SETUP_S) |
542 (tParam->
wHold << EMIF_ASYNC_CS2_CR_W_HOLD_S) |
543 (tParam->
wStrobe << EMIF_ASYNC_CS2_CR_W_STROBE_S) |
544 (tParam->
wSetup << EMIF_ASYNC_CS2_CR_W_SETUP_S);
546 HWREG(base + (uint32_t)offset) = (HWREG(base + (uint32_t)offset) &
547 ~EMIF_ASYNC_CS_CR_MASK) | temp;
582 HWREGH(base + (uint32_t)offset) = (HWREGH(base + (uint32_t)offset)
583 & ~((uint16_t)EMIF_ASYNC_CS2_CR_ASIZE_M))
620 HWREGH(base + EMIF_O_INT_MSK_SET) = intFlags;
651 HWREGH(base + EMIF_O_INT_MSK_CLR) = intFlags;
666static inline uint16_t
708 HWREGH(base + EMIF_O_INT_MSK) = intFlags;
742 temp = ((tParam->
tRrd << EMIF_SDRAM_TR_T_RRD_S)
743 & EMIF_SDRAM_TR_T_RRD_M)
744 | ((tParam->
tRc << EMIF_SDRAM_TR_T_RC_S)
745 & EMIF_SDRAM_TR_T_RC_M)
746 | ((tParam->
tRas << EMIF_SDRAM_TR_T_RAS_S)
747 & EMIF_SDRAM_TR_T_RAS_M)
748 | ((tParam->
tWr << EMIF_SDRAM_TR_T_WR_S)
749 & EMIF_SDRAM_TR_T_WR_M)
750 | ((tParam->
tRcd << EMIF_SDRAM_TR_T_RCD_S)
751 & EMIF_SDRAM_TR_T_RCD_M)
752 | ((tParam->
tRp << EMIF_SDRAM_TR_T_RP_S)
753 & EMIF_SDRAM_TR_T_RP_M)
754 | ((tParam->
tRfc << EMIF_SDRAM_TR_T_RFC_S)
755 & EMIF_SDRAM_TR_T_RFC_M);
757 HWREG(base + EMIF_O_SDRAM_TR) = (HWREG(base + EMIF_O_SDRAM_TR) &
758 ~EMIF_SYNC_SDRAM_TR_MASK) | temp;
783 ASSERT(tXs <= EMIF_SDR_EXT_TMNG_T_XS_M);
788 HWREGH(base + EMIF_O_SDR_EXT_TMNG) = (HWREGH(base + EMIF_O_SDR_EXT_TMNG)
789 & ~((uint16_t)EMIF_SDR_EXT_TMNG_T_XS_M))
815 ASSERT(refRate <= EMIF_SDRAM_RCR_REFRESH_RATE_M);
820 HWREGH(base + EMIF_O_SDRAM_RCR) = (HWREGH(base + EMIF_O_SDRAM_RCR)
821 & (~(uint16_t)EMIF_SDRAM_RCR_REFRESH_RATE_M))
854 HWREG(base + EMIF_O_SDRAM_CR) = (HWREG(base + EMIF_O_SDRAM_CR) &
855 ~EMIF_SYNC_SDRAM_CR_MASK) | temp;
885 HWREG(base + EMIF_O_SDRAM_CR) |= EMIF_SDRAM_CR_SR;
910 HWREG(base + EMIF_O_SDRAM_CR) &= ~((uint32_t)EMIF_SDRAM_CR_SR);
936 HWREG(base + EMIF_O_SDRAM_CR) |= EMIF_SDRAM_CR_PD;
962 HWREG(base + EMIF_O_SDRAM_CR) &= ~((uint32_t)EMIF_SDRAM_CR_PD);
988 HWREG(base + EMIF_O_SDRAM_CR) |= EMIF_SDRAM_CR_PDWR;
1014 HWREG(base + EMIF_O_SDRAM_CR) &= ~((uint32_t)EMIF_SDRAM_CR_PDWR);
1029static inline uint32_t
1040 return(HWREG(base + EMIF_O_TOTAL_SDRAM_AR));
1055static inline uint32_t
1066 return(HWREG(base + EMIF_O_TOTAL_SDRAM_ACTR));
static void EMIF_disableSyncRefreshInPowerDown(uint32_t base)
Definition emif.h:1004
static void EMIF_disableSyncSelfRefresh(uint32_t base)
Definition emif.h:900
#define EMIF_ASYNC_INT_MASK
Definition emif.h:98
static void EMIF_enableAsyncExtendedWait(uint32_t base, EMIF_AsyncCSOffset offset)
Definition emif.h:400
EMIF_SyncCASLatency
Definition emif.h:244
static void EMIF_disableSyncPowerDown(uint32_t base)
Definition emif.h:952
static void EMIF_setAsyncTimingParams(uint32_t base, EMIF_AsyncCSOffset offset, const EMIF_AsyncTimingParams *tParam)
Definition emif.h:526
EMIF_AsyncMode
Values that can be passed to EMIF_setAsyncMode() as the mode parameter.
Definition emif.h:195
static uint32_t EMIF_getSyncTotalActivateAccesses(uint32_t base)
Definition emif.h:1056
static void EMIF_enableSyncPowerDown(uint32_t base)
Definition emif.h:926
EMIF_SyncBank
Definition emif.h:231
static void EMIF_setAsyncDataBusWidth(uint32_t base, EMIF_AsyncCSOffset offset, EMIF_AsyncDataWidth width)
Definition emif.h:571
static void EMIF_setSyncSelfRefreshExitTmng(uint32_t base, uint16_t tXs)
Definition emif.h:777
static void EMIF_setSyncRefreshRate(uint32_t base, uint16_t refRate)
Definition emif.h:809
static void EMIF_setSyncMemoryConfig(uint32_t base, const EMIF_SyncConfig *config)
Definition emif.h:840
static void EMIF_setAsyncMaximumWaitCycles(uint32_t base, uint16_t value)
Definition emif.h:491
static void EMIF_disableAsyncExtendedWait(uint32_t base, EMIF_AsyncCSOffset offset)
Definition emif.h:431
static void EMIF_setAsyncMode(uint32_t base, EMIF_AsyncCSOffset offset, EMIF_AsyncMode mode)
Definition emif.h:366
EMIF_SyncNarrowMode
Definition emif.h:219
static void EMIF_disableAsyncInterrupt(uint32_t base, uint16_t intFlags)
Definition emif.h:640
EMIF_SyncPageSize
Definition emif.h:256
static void EMIF_setSyncTimingParams(uint32_t base, const EMIF_SyncTimingParams *tParam)
Definition emif.h:731
static void EMIF_clearAsyncInterruptStatus(uint32_t base, uint16_t intFlags)
Definition emif.h:697
EMIF_AsyncDataWidth
Definition emif.h:183
static void EMIF_setAsyncWaitPolarity(uint32_t base, EMIF_AsyncWaitPolarity polarity)
Definition emif.h:461
static uint32_t EMIF_getSyncTotalAccesses(uint32_t base)
Definition emif.h:1030
static bool EMIF_isBaseValid(uint32_t base)
Definition emif.h:331
EMIF_AsyncWaitPolarity
Definition emif.h:207
static void EMIF_enableSyncSelfRefresh(uint32_t base)
Definition emif.h:875
static uint16_t EMIF_getAsyncInterruptStatus(uint32_t base)
Definition emif.h:667
static void EMIF_enableSyncRefreshInPowerDown(uint32_t base)
Definition emif.h:978
EMIF_AsyncCSOffset
Definition emif.h:170
static void EMIF_enableAsyncInterrupt(uint32_t base, uint16_t intFlags)
Definition emif.h:609
@ EMIF_SYNC_CAS_LAT_2
SDRAM with CAS Latency 2.
Definition emif.h:245
@ EMIF_SYNC_CAS_LAT_3
SDRAM with CAS Latency 3.
Definition emif.h:246
@ EMIF_ASYNC_STROBE_MODE
Enables ASRAM/FLASH strobe mode.
Definition emif.h:196
@ EMIF_ASYNC_NORMAL_MODE
Disables ASRAM/FLASH strobe mode.
Definition emif.h:197
@ EMIF_SYNC_BANK_1
1 Bank SDRAM device
Definition emif.h:232
@ EMIF_SYNC_BANK_2
2 Bank SDRAM device
Definition emif.h:233
@ EMIF_SYNC_BANK_4
4 Bank SDRAM device
Definition emif.h:234
@ EMIF_SYNC_NARROW_MODE_TRUE
MemBusWidth=SystemBusWidth/2.
Definition emif.h:220
@ EMIF_SYNC_NARROW_MODE_FALSE
MemBusWidth=SystemBusWidth.
Definition emif.h:221
@ EMIF_SYNC_COLUMN_WIDTH_11
2048-word pages in SDRAM
Definition emif.h:260
@ EMIF_SYNC_COLUMN_WIDTH_9
512-word pages in SDRAM
Definition emif.h:258
@ EMIF_SYNC_COLUMN_WIDTH_10
1024-word pages in SDRAM
Definition emif.h:259
@ EMIF_SYNC_COLUMN_WIDTH_8
256-word pages in SDRAM
Definition emif.h:257
@ EMIF_ASYNC_DATA_WIDTH_8
ASRAM/FLASH with 8 bit data bus.
Definition emif.h:184
@ EMIF_ASYNC_DATA_WIDTH_16
ASRAM/FLASH with 16 bit data bus.
Definition emif.h:185
@ EMIF_ASYNC_DATA_WIDTH_32
ASRAM/FLASH with 32 bit data bus.
Definition emif.h:186
@ EMIF_ASYNC_WAIT_POLARITY_HIGH
EMxWAIT pin polarity is high.
Definition emif.h:209
@ EMIF_ASYNC_WAIT_POLARITY_LOW
EMxWAIT pin polarity is low.
Definition emif.h:208
@ EMIF_ASYNC_CS3_OFFSET
Async chip select 3 offset.
Definition emif.h:172
@ EMIF_ASYNC_CS4_OFFSET
Async chip select 4 offset.
Definition emif.h:173
@ EMIF_ASYNC_CS2_OFFSET
Async chip select 2 offset.
Definition emif.h:171
uint32_t turnArnd
TurnAround Cycles.
Definition emif.h:277
uint32_t wStrobe
Write Strobe Cycles.
Definition emif.h:275
uint32_t rHold
Read Hold Cycles.
Definition emif.h:273
uint32_t rSetup
Read Setup Cycles.
Definition emif.h:271
uint32_t wHold
Write Hold Cycles.
Definition emif.h:276
uint32_t rStrobe
Read Strobe Cycles.
Definition emif.h:272
uint32_t wSetup
Write Setup Cycles.
Definition emif.h:274
EMIF_SyncBank iBank
Banks available in SDRAM device.
Definition emif.h:289
EMIF_SyncNarrowMode narrowMode
Read Setup Cycles.
Definition emif.h:288
EMIF_SyncCASLatency casLatency
CAS Latency for SDRAM device.
Definition emif.h:290
EMIF_SyncPageSize pageSize
Pagesize of SDRAM device.
Definition emif.h:291
uint32_t tRc
Read cycle time.
Definition emif.h:307
uint32_t tRfc
Auto refresh time.
Definition emif.h:302
uint32_t tRcd
RAS to CAS delay.
Definition emif.h:304
uint32_t tRp
Row precharge time.
Definition emif.h:303
uint32_t tRas
Row active time.
Definition emif.h:306
uint32_t tRrd
Row active to row active delay.
Definition emif.h:308
uint32_t tWr
Write recovery time.
Definition emif.h:305