123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- //###########################################################################
- //
- // FILE: F2837xD_emif.h
- //
- // TITLE: EMIF Register Definitions.
- //
- //###########################################################################
- // $TI Release: F2837xD Support Library v3.05.00.00 $
- // $Release Date: Tue Jun 26 03:15:23 CDT 2018 $
- // $Copyright:
- // Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/
- //
- // Redistribution and use in source and binary forms, with or without
- // modification, are permitted provided that the following conditions
- // are met:
- //
- // Redistributions of source code must retain the above copyright
- // notice, this list of conditions and the following disclaimer.
- //
- // Redistributions in binary form must reproduce the above copyright
- // notice, this list of conditions and the following disclaimer in the
- // documentation and/or other materials provided with the
- // distribution.
- //
- // Neither the name of Texas Instruments Incorporated nor the names of
- // its contributors may be used to endorse or promote products derived
- // from this software without specific prior written permission.
- //
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- // $
- //###########################################################################
- #ifndef __F2837xD_EMIF_H__
- #define __F2837xD_EMIF_H__
- #ifdef __cplusplus
- extern "C" {
- #endif
- //---------------------------------------------------------------------------
- // EMIF Individual Register Bit Definitions:
- struct RCSR_BITS { // bits description
- Uint16 MINOR_REVISION:8; // 7:0 Minor Revision.
- Uint16 MAJOR_REVISION:8; // 15:8 Major Revision.
- Uint16 MODULE_ID:14; // 29:16 EMIF module ID.
- Uint16 FR:1; // 30 EMIF is running in full rate or half rate.
- Uint16 BE:1; // 31 EMIF endian mode.
- };
- union RCSR_REG {
- Uint32 all;
- struct RCSR_BITS bit;
- };
- struct ASYNC_WCCR_BITS { // bits description
- Uint16 MAX_EXT_WAIT:8; // 7:0 Maximum Extended Wait cycles.
- Uint16 rsvd1:8; // 15:8 Reserved
- Uint16 rsvd2:2; // 17:16 Reserved
- Uint16 rsvd3:2; // 19:18 Reserved
- Uint16 rsvd4:2; // 21:20 Reserved
- Uint16 rsvd5:2; // 23:22 Reserved
- Uint16 rsvd6:4; // 27:24 Reserved
- Uint16 WP0:1; // 28 Polarity for EMxWAIT.
- Uint16 rsvd7:1; // 29 Reserved
- Uint16 rsvd8:1; // 30 Reserved
- Uint16 rsvd9:1; // 31 Reserved
- };
- union ASYNC_WCCR_REG {
- Uint32 all;
- struct ASYNC_WCCR_BITS bit;
- };
- struct SDRAM_CR_BITS { // bits description
- Uint16 PAGESIGE:3; // 2:0 Page Size.
- Uint16 rsvd1:1; // 3 Reserved
- Uint16 IBANK:3; // 6:4 Internal Bank setup of SDRAM devices.
- Uint16 rsvd2:1; // 7 Reserved
- Uint16 BIT_11_9_LOCK:1; // 8 Bits 11 to 9 are writable only if this bit is set.
- Uint16 CL:3; // 11:9 CAS Latency.
- Uint16 rsvd3:1; // 12 Reserved
- Uint16 rsvd4:1; // 13 Reserved
- Uint16 NM:1; // 14 Narrow Mode.
- Uint16 rsvd5:1; // 15 Reserved
- Uint16 rsvd6:1; // 16 Reserved
- Uint16 rsvd7:2; // 18:17 Reserved
- Uint16 rsvd8:1; // 19 Reserved
- Uint16 rsvd9:3; // 22:20 Reserved
- Uint16 rsvd10:3; // 25:23 Reserved
- Uint16 rsvd11:3; // 28:26 Reserved
- Uint16 PDWR:1; // 29 Perform refreshes during Power Down.
- Uint16 PD:1; // 30 Power Down.
- Uint16 SR:1; // 31 Self Refresh.
- };
- union SDRAM_CR_REG {
- Uint32 all;
- struct SDRAM_CR_BITS bit;
- };
- struct SDRAM_RCR_BITS { // bits description
- Uint16 REFRESH_RATE:13; // 12:0 Refresh Rate.
- Uint16 rsvd1:3; // 15:13 Reserved
- Uint16 rsvd2:3; // 18:16 Reserved
- Uint16 rsvd3:13; // 31:19 Reserved
- };
- union SDRAM_RCR_REG {
- Uint32 all;
- struct SDRAM_RCR_BITS bit;
- };
- struct ASYNC_CS2_CR_BITS { // bits description
- Uint16 ASIZE:2; // 1:0 Asynchronous Memory Size.
- Uint16 TA:2; // 3:2 Turn Around cycles.
- Uint16 R_HOLD:3; // 6:4 Read Strobe Hold cycles.
- Uint16 R_STROBE:6; // 12:7 Read Strobe Duration cycles.
- Uint32 R_SETUP:4; // 16:13 Read Strobe Setup cycles.
- Uint16 W_HOLD:3; // 19:17 Write Strobe Hold cycles.
- Uint16 W_STROBE:6; // 25:20 Write Strobe Duration cycles.
- Uint16 W_SETUP:4; // 29:26 Write Strobe Setup cycles.
- Uint16 EW:1; // 30 Extend Wait mode.
- Uint16 SS:1; // 31 Select Strobe mode.
- };
- union ASYNC_CS2_CR_REG {
- Uint32 all;
- struct ASYNC_CS2_CR_BITS bit;
- };
- struct ASYNC_CS3_CR_BITS { // bits description
- Uint16 ASIZE:2; // 1:0 Asynchronous Memory Size.
- Uint16 TA:2; // 3:2 Turn Around cycles.
- Uint16 R_HOLD:3; // 6:4 Read Strobe Hold cycles.
- Uint16 R_STROBE:6; // 12:7 Read Strobe Duration cycles.
- Uint32 R_SETUP:4; // 16:13 Read Strobe Setup cycles.
- Uint16 W_HOLD:3; // 19:17 Write Strobe Hold cycles.
- Uint16 W_STROBE:6; // 25:20 Write Strobe Duration cycles.
- Uint16 W_SETUP:4; // 29:26 Write Strobe Setup cycles.
- Uint16 EW:1; // 30 Extend Wait mode.
- Uint16 SS:1; // 31 Select Strobe mode.
- };
- union ASYNC_CS3_CR_REG {
- Uint32 all;
- struct ASYNC_CS3_CR_BITS bit;
- };
- struct ASYNC_CS4_CR_BITS { // bits description
- Uint16 ASIZE:2; // 1:0 Asynchronous Memory Size.
- Uint16 TA:2; // 3:2 Turn Around cycles.
- Uint16 R_HOLD:3; // 6:4 Read Strobe Hold cycles.
- Uint16 R_STROBE:6; // 12:7 Read Strobe Duration cycles.
- Uint32 R_SETUP:4; // 16:13 Read Strobe Setup cycles.
- Uint16 W_HOLD:3; // 19:17 Write Strobe Hold cycles.
- Uint16 W_STROBE:6; // 25:20 Write Strobe Duration cycles.
- Uint16 W_SETUP:4; // 29:26 Write Strobe Setup cycles.
- Uint16 EW:1; // 30 Extend Wait mode.
- Uint16 SS:1; // 31 Select Strobe mode.
- };
- union ASYNC_CS4_CR_REG {
- Uint32 all;
- struct ASYNC_CS4_CR_BITS bit;
- };
- struct SDRAM_TR_BITS { // bits description
- Uint16 rsvd1:4; // 3:0 Reserved
- Uint16 T_RRD:3; // 6:4 Activate to Activate timing for different bank.
- Uint16 rsvd2:1; // 7 Reserved
- Uint16 T_RC:4; // 11:8 Activate to Activate timing .
- Uint16 T_RAS:4; // 15:12 Activate to Precharge timing.
- Uint16 T_WR:3; // 18:16 Last Write to Precharge timing.
- Uint16 rsvd3:1; // 19 Reserved
- Uint16 T_RCD:3; // 22:20 Activate to Read/Write timing.
- Uint16 rsvd4:1; // 23 Reserved
- Uint16 T_RP:3; // 26:24 Precharge to Activate/Refresh timing.
- Uint16 T_RFC:5; // 31:27 Refresh/Load Mode to Refresh/Activate timing
- };
- union SDRAM_TR_REG {
- Uint32 all;
- struct SDRAM_TR_BITS bit;
- };
- struct SDR_EXT_TMNG_BITS { // bits description
- Uint16 T_XS:5; // 4:0 Self Refresh exit to new command timing.
- Uint16 rsvd1:11; // 15:5 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union SDR_EXT_TMNG_REG {
- Uint32 all;
- struct SDR_EXT_TMNG_BITS bit;
- };
- struct INT_RAW_BITS { // bits description
- Uint16 AT:1; // 0 Asynchronous Timeout.
- Uint16 LT:1; // 1 Line Trap.
- Uint16 WR:4; // 5:2 Wait Rise.
- Uint16 rsvd1:10; // 15:6 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union INT_RAW_REG {
- Uint32 all;
- struct INT_RAW_BITS bit;
- };
- struct INT_MSK_BITS { // bits description
- Uint16 AT_MASKED:1; // 0 Asynchronous Timeout.
- Uint16 LT_MASKED:1; // 1 Line Trap.
- Uint16 WR_MASKED:4; // 5:2 Wait Rise.
- Uint16 rsvd1:10; // 15:6 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union INT_MSK_REG {
- Uint32 all;
- struct INT_MSK_BITS bit;
- };
- struct INT_MSK_SET_BITS { // bits description
- Uint16 AT_MASK_SET:1; // 0 Asynchronous Timeout.
- Uint16 LT_MASK_SET:1; // 1 Line Trap.
- Uint16 WR_MASK_SET:4; // 5:2 Wait Rise.
- Uint16 rsvd1:10; // 15:6 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union INT_MSK_SET_REG {
- Uint32 all;
- struct INT_MSK_SET_BITS bit;
- };
- struct INT_MSK_CLR_BITS { // bits description
- Uint16 AT_MASK_CLR:1; // 0 Asynchronous Timeout.
- Uint16 LT_MASK_CLR:1; // 1 Line Trap.
- Uint16 WR_MASK_CLR:4; // 5:2 Wait Rise.
- Uint16 rsvd1:10; // 15:6 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union INT_MSK_CLR_REG {
- Uint32 all;
- struct INT_MSK_CLR_BITS bit;
- };
- struct EMIF_REGS {
- union RCSR_REG RCSR; // Revision Code and Status Register
- union ASYNC_WCCR_REG ASYNC_WCCR; // Async Wait Cycle Config Register
- union SDRAM_CR_REG SDRAM_CR; // SDRAM (EMxCS0n) Config Register
- union SDRAM_RCR_REG SDRAM_RCR; // SDRAM Refresh Control Register
- union ASYNC_CS2_CR_REG ASYNC_CS2_CR; // Async 1 (EMxCS2n) Config Register
- union ASYNC_CS3_CR_REG ASYNC_CS3_CR; // Async 2 (EMxCS3n) Config Register
- union ASYNC_CS4_CR_REG ASYNC_CS4_CR; // Async 3 (EMxCS4n) Config Register
- Uint16 rsvd1[2]; // Reserved
- union SDRAM_TR_REG SDRAM_TR; // SDRAM Timing Register
- Uint16 rsvd2[6]; // Reserved
- Uint32 TOTAL_SDRAM_AR; // Total SDRAM Accesses Register
- Uint32 TOTAL_SDRAM_ACTR; // Total SDRAM Activate Register
- Uint16 rsvd3[2]; // Reserved
- union SDR_EXT_TMNG_REG SDR_EXT_TMNG; // SDRAM SR/PD Exit Timing Register
- union INT_RAW_REG INT_RAW; // Interrupt Raw Register
- union INT_MSK_REG INT_MSK; // Interrupt Masked Register
- union INT_MSK_SET_REG INT_MSK_SET; // Interrupt Mask Set Register
- union INT_MSK_CLR_REG INT_MSK_CLR; // Interrupt Mask Clear Register
- Uint16 rsvd4[72]; // Reserved
- };
- //---------------------------------------------------------------------------
- // EMIF External References & Function Declarations:
- //
- #ifdef CPU1
- extern volatile struct EMIF_REGS Emif1Regs;
- extern volatile struct EMIF_REGS Emif2Regs;
- #endif
- #ifdef CPU2
- extern volatile struct EMIF_REGS Emif1Regs;
- extern volatile struct EMIF_REGS Emif2Regs;
- #endif
- #ifdef __cplusplus
- }
- #endif /* extern "C" */
- #endif
- //===========================================================================
- // End of file.
- //===========================================================================
|