⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csl_cachehal.h

📁 Ti C6416 读写 SDRAM 口范例. 编程环境CCS2.2版本
💻 H
📖 第 1 页 / 共 5 页
字号:
/******************************************************************************\*           Copyright (C) 1999-2000 Texas Instruments Incorporated.*                           All Rights Reserved*------------------------------------------------------------------------------* FILENAME...... csl_cachehal.h* DATE CREATED.. 06/12/1999 * LAST MODIFIED. 04/13/2001*------------------------------------------------------------------------------* REGISTERS** CCFG     - cache configuration register* L2FBAR   - L2 flush base address register* L2FWC    - L2 flush word count register* L2CBAR   - L2 clean base register* L2CWC    - L2 clean word count register* L1PFBAR  - L1P flush base address register* L1PFWC   - L1P flush word count register* L1DFBAR  - L1D flush base address register* L1DFWC   - L1D flush word count register* L2FLUSH  - L2 flush register* L2CLEAN  - L2 clean register****** New Register Names based on SPRU609 for C621x/C671x* and* New Register Names based on SPRU610 for C64x*** L2WBAR   - L2 writeback base address register* L2WWC    - L2 writeback word count register* L2WIBAR  - L2 writeback-invalidate base address register* L2WIWC   - L2 writeback-invalidate word count register* L2IBAR   - L2 invalidate base address register(2)* L2IWC    - L2 invalidate word count register(2)* L1PIBAR  - L1P invalidate base address register* L1PIWC   - L1P invalidate word count register* L1DWIBAR - L1D writeback-invalidate base address register* L1DWIWC  - L1D writeback-invalidate word count register* L1DIBAR  - L1D invalidate base address register(2)* L1DIWC   - L1D invalidate word count register(2)* L2WB     - L2 writeback all register* L2WBINV  - L2 writeback-invalidate all register** MAR0     - memory attribute register 0* MAR1     - memory attribute register 1* ...      - ...* MARn     - memory attribute register n (1)* L2ALLOC0 - L2 Allocation register 0    (2)* L2ALLOC1 - L2 Allocation register 1    (2)* L2ALLOC2 - L2 Allocation register 2    (2)* L2ALLOC3 - L2 Allocation register 3    (2)** (1) n is different between C6x1x and C64x* (2) C64x devices only*\******************************************************************************/#ifndef _CSL_CACHEHAL_H_#define _CSL_CACHEHAL_H_#include <csl_stdinc.h>#include <csl_chip.h>#if (CACHE_SUPPORT)/******************************************************************************\* MISC section\******************************************************************************/#define _CACHE_BASE_GLOBAL  0x01840000u#define CACHE_L2_SUPPORT L2CACHE_SUPPORT /******************************************************************************\* module level register/field access macros\******************************************************************************/  /* ----------------- */  /* FIELD MAKE MACROS */  /* ----------------- */  #define CACHE_FMK(REG,FIELD,x)\    _PER_FMK(CACHE,##REG,##FIELD,x)  #define CACHE_FMKS(REG,FIELD,SYM)\    _PER_FMKS(CACHE,##REG,##FIELD,##SYM)    /* -------------------------------- */  /* RAW REGISTER/FIELD ACCESS MACROS */  /* -------------------------------- */  #define CACHE_ADDR(REG)\    _CACHE_##REG##_ADDR  #define CACHE_RGET(REG)\    _PER_RGET(_CACHE_##REG##_ADDR,CACHE,##REG)  #define CACHE_RSET(REG,x)\    _PER_RSET(_CACHE_##REG##_ADDR,CACHE,##REG,x)  #define CACHE_FGET(REG,FIELD)\    _CACHE_##REG##_FGET(##FIELD)  #define CACHE_FSET(REG,FIELD,x)\    _CACHE_##REG##_FSET(##FIELD,x)  #define CACHE_FSETS(REG,FIELD,SYM)\    _CACHE_##REG##_FSETS(##FIELD,##SYM)    /* ------------------------------------------ */  /* ADDRESS BASED REGISTER/FIELD ACCESS MACROS */  /* ------------------------------------------ */  #define CACHE_RGETA(addr,REG)\    _PER_RGET(addr,CACHE,##REG)  #define CACHE_RSETA(addr,REG,x)\    _PER_RSET(addr,CACHE,##REG,x)  #define CACHE_FGETA(addr,REG,FIELD)\    _PER_FGET(addr,CACHE,##REG,##FIELD)  #define CACHE_FSETA(addr,REG,FIELD,x)\    _PER_FSET(addr,CACHE,##REG,##FIELD,x)  #define CACHE_FSETSA(addr,REG,FIELD,SYM)\    _PER_FSETS(addr,CACHE,##REG,##FIELD,##SYM)/******************************************************************************\* _____________________* |                   |* |  C C F G          |* |___________________|** CCFG - cache configuration register** FIELDS (msb -> lsb)* (rw) P (1)* (w)  IP* (w)  ID* (rw) L2MODE** (1) only supported for C64x devices*\******************************************************************************/#if (L2CACHE_SUPPORT)  #define _CACHE_CCFG_ADDR             0x01840000u#if (C64_SUPPORT)  #define _CACHE_CCFG_P_MASK           0xE0000000u  #define _CACHE_CCFG_P_SHIFT          0x0000001Du  #define  CACHE_CCFG_P_DEFAULT        0x00000000u  #define  CACHE_CCFG_P_OF(x)          _VALUEOF(x)  #define  CACHE_CCFG_P_URGENT         0x00000000u  #define  CACHE_CCFG_P_HIGH           0x00000001u  #define  CACHE_CCFG_P_MEDIUM         0x00000002u  #define  CACHE_CCFG_P_LOW            0x00000003u#endif  #define _CACHE_CCFG_IP_MASK          0x00000200u  #define _CACHE_CCFG_IP_SHIFT         0x00000009u  #define  CACHE_CCFG_IP_DEFAULT       0x00000000u  #define  CACHE_CCFG_IP_OF(x)         _VALUEOF(x)  #define  CACHE_CCFG_IP_NORMAL        0x00000000u  #define  CACHE_CCFG_IP_INVALIDATE    0x00000001u  #define _CACHE_CCFG_ID_MASK          0x00000100u  #define _CACHE_CCFG_ID_SHIFT         0x00000008u  #define  CACHE_CCFG_ID_DEFAULT       0x00000000u  #define  CACHE_CCFG_ID_OF(x)         _VALUEOF(x)  #define  CACHE_CCFG_ID_NORMAL        0x00000000u  #define  CACHE_CCFG_ID_INVALIDATE    0x00000001u#if (!C64_SUPPORT)  #define _CACHE_CCFG_L2MODE_MASK      0x00000007u  #define _CACHE_CCFG_L2MODE_SHIFT     0x00000000u  #define  CACHE_CCFG_L2MODE_DEFAULT   0x00000000u  #define  CACHE_CCFG_L2MODE_OF(x)     _VALUEOF(x)  #define  CACHE_CCFG_L2MODE_0KC       0x00000000u  #define  CACHE_CCFG_L2MODE_16KC      0x00000001u  #define  CACHE_CCFG_L2MODE_32KC      0x00000002u  #define  CACHE_CCFG_L2MODE_48KC      0x00000003u  #define  CACHE_CCFG_L2MODE_64KC      0x00000007u#else   #define _CACHE_CCFG_L2MODE_MASK      0x00000007u  #define _CACHE_CCFG_L2MODE_SHIFT     0x00000000u  #define  CACHE_CCFG_L2MODE_DEFAULT   0x00000000u  #define  CACHE_CCFG_L2MODE_OF(x)     _VALUEOF(x)  #define  CACHE_CCFG_L2MODE_0KC       0x00000000u  #define  CACHE_CCFG_L2MODE_32KC      0x00000001u  #define  CACHE_CCFG_L2MODE_64KC      0x00000002u  #define  CACHE_CCFG_L2MODE_128KC     0x00000003u  #if (!CHIP_6410)      #define  CACHE_CCFG_L2MODE_256KC     0x00000007u /* This is an invalid mode for C6410 */  #endif#endif  #define  CACHE_CCFG_OF(x)            _VALUEOF(x)#if (!C64_SUPPORT)  #define CACHE_CCFG_DEFAULT (Uint32)( \     _PER_FDEFAULT(CACHE,CCFG,IP) \    |_PER_FDEFAULT(CACHE,CCFG,ID) \    |_PER_FDEFAULT(CACHE,CCFG,L2MODE) \  )  #define CACHE_CCFG_RMK(ip,id,l2mode) (Uint32)( \     _PER_FMK(CACHE,CCFG,IP,ip) \    |_PER_FMK(CACHE,CCFG,ID,id) \    |_PER_FMK(CACHE,CCFG,L2MODE,l2mode) \  )#else   #define CACHE_CCFG_DEFAULT (Uint32)( \     _PER_FDEFAULT(CACHE,CCFG,P) \    |_PER_FDEFAULT(CACHE,CCFG,IP) \    |_PER_FDEFAULT(CACHE,CCFG,ID) \    |_PER_FDEFAULT(CACHE,CCFG,L2MODE) \  )  #define CACHE_CCFG_RMK(p,ip,id,l2mode) (Uint32)( \     _PER_FMK(CACHE,CCFG,P,p) \    |_PER_FMK(CACHE,CCFG,IP,ip) \    |_PER_FMK(CACHE,CCFG,ID,id) \    |_PER_FMK(CACHE,CCFG,L2MODE,l2mode) \  )#endif  #define _CACHE_CCFG_FGET(FIELD)\    _PER_FGET(_CACHE_CCFG_ADDR,CACHE,CCFG,##FIELD)  #define _CACHE_CCFG_FSET(FIELD,field)\    _PER_FSET(_CACHE_CCFG_ADDR,CACHE,CCFG,##FIELD,field)  #define _CACHE_CCFG_FSETS(FIELD,SYM)\    _PER_FSETS(_CACHE_CCFG_ADDR,CACHE,CCFG,##FIELD,##SYM)#endif /* L2CACHE_SUPPORT *//******************************************************************************\* _____________________* |                   |* |  L 2 F B A R      |* |___________________|** L2FBAR - L2 flush base address register** Fields:* (rw) L2FBAR*\******************************************************************************/#if (L2CACHE_SUPPORT)  #define _CACHE_L2FBAR_ADDR           0x01844000u  #define _CACHE_L2FBAR_L2FBAR_MASK    0xFFFFFFFFu  #define _CACHE_L2FBAR_L2FBAR_SHIFT   0x00000000u  #define  CACHE_L2FBAR_L2FBAR_DEFAULT 0x00000000u  #define  CACHE_L2FBAR_L2FBAR_OF(x)   _VALUEOF(x)  #define  CACHE_L2FBAR_OF(x)          _VALUEOF(x)  #define CACHE_L2FBAR_DEFAULT (Uint32)( \     _PER_FDEFAULT(CACHE,L2FBAR,L2FBAR) \  )  #define CACHE_L2FBAR_RMK(l2fbar) (Uint32)( \     _PER_FMK(CACHE,L2FBAR,L2FBAR,l2fbar) \  )  #define _CACHE_L2FBAR_FGET(FIELD)\    _PER_FGET(_CACHE_L2FBAR_ADDR,CACHE,L2FBAR,##FIELD)  #define _CACHE_L2FBAR_FSET(FIELD,field)\    _PER_FSET(_CACHE_L2FBAR_ADDR,CACHE,L2FBAR,##FIELD,field)  #define _CACHE_L2FBAR_FSETS(FIELD,SYM)\    _PER_FSETS(_CACHE_L2FBAR_ADDR,CACHE,L2FBAR,##FIELD,##SYM)#endif/******************************************************************************\* _____________________* |                   |* |  L 2 F W C        |* |___________________|** L2FWC - L2 flush word count register** Fields:* (rw) L2FWC*\******************************************************************************/#if (L2CACHE_SUPPORT)  #define _CACHE_L2FWC_ADDR           0x01844004u  #define _CACHE_L2FWC_L2FWC_MASK     0x0000FFFFu  #define _CACHE_L2FWC_L2FWC_SHIFT    0x00000000u  #define  CACHE_L2FWC_L2FWC_DEFAULT  0x00000000u  #define  CACHE_L2FWC_L2FWC_OF(x)    _VALUEOF(x)  #define  CACHE_L2FWC_OF(x)          _VALUEOF(x)  #define CACHE_L2FWC_DEFAULT (Uint32)( \     _PER_FDEFAULT(CACHE,L2FWC,L2FWC) \  )  #define CACHE_L2FWC_RMK(l2fwc) (Uint32)( \     _PER_FMK(CACHE,L2FWC,L2FWC,l2fwc) \  )  #define _CACHE_L2FWC_FGET(FIELD)\    _PER_FGET(_CACHE_L2FWC_ADDR,CACHE,L2FWC,##FIELD)  #define _CACHE_L2FWC_FSET(FIELD,field)\    _PER_FSET(_CACHE_L2FWC_ADDR,CACHE,L2FWC,##FIELD,field)  #define _CACHE_L2FWC_FSETS(FIELD,SYM)\    _PER_FSETS(_CACHE_L2FWC_ADDR,CACHE,L2FWC,##FIELD,##SYM)#endif/******************************************************************************\* _____________________* |                   |

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -