📄 csl_hpihal.h
字号:
/******************************************************************************\
* Copyright (C) 1999-2001 Texas Instruments Incorporated.
* All Rights Reserved
*------------------------------------------------------------------------------
* FILENAME...... csl_hpihal.h
* DATE CREATED.. 06/20/1999
* LAST MODIFIED. 04/20/2001 (C64x compatibility)
* 06/09/2003 TRCTL bug
*------------------------------------------------------------------------------
* REGISTERS
*
* HPIC - HPI control register
* HPIAW - HPI Address Write register (1)
* HPIAR - HPI Address Read registrer (1)
* TRCTL - TR Control register (1)
*
* (1) supported by C64x devices only
\******************************************************************************/
#ifndef _CSL_HPIHAL_H_
#define _CSL_HPIHAL_H_
#include <csl_chip.h>
#if (HPI_SUPPORT)
/******************************************************************************\
* MISC section
\******************************************************************************/
#define _HPI_BASE_ADDR 0x01880000u
/******************************************************************************\
* module level register/field access macros
\******************************************************************************/
/* ----------------- */
/* FIELD MAKE MACROS */
/* ----------------- */
#define HPI_FMK(REG,FIELD,x)\
_PER_FMK(HPI,##REG,##FIELD,x)
#define HPI_FMKS(REG,FIELD,SYM)\
_PER_FMKS(HPI,##REG,##FIELD,##SYM)
/* -------------------------------- */
/* RAW REGISTER/FIELD ACCESS MACROS */
/* -------------------------------- */
#define HPI_ADDR(REG)\
_HPI_##REG##_ADDR
#define HPI_RGET(REG)\
_PER_RGET(_HPI_##REG##_ADDR,HPI,##REG)
#define HPI_RSET(REG,x)\
_PER_RSET(_HPI_##REG##_ADDR,HPI,##REG,x)
#define HPI_FGET(REG,FIELD)\
_HPI_##REG##_FGET(##FIELD)
#define HPI_FSET(REG,FIELD,x)\
_HPI_##REG##_FSET(##FIELD,##x)
#define HPI_FSETS(REG,FIELD,SYM)\
_HPI_##REG##_FSETS(##FIELD,##SYM)
/* ------------------------------------------ */
/* ADDRESS BASED REGISTER/FIELD ACCESS MACROS */
/* ------------------------------------------ */
#define HPI_RGETA(addr,REG)\
_PER_RGET(addr,HPI,##REG)
#define HPI_RSETA(addr,REG,x)\
_PER_RSET(addr,HPI,##REG,x)
#define HPI_FGETA(addr,REG,FIELD)\
_PER_FGET(addr,HPI,##REG,##FIELD)
#define HPI_FSETA(addr,REG,FIELD,x)\
_PER_FSET(addr,HPI,##REG,##FIELD,x)
#define HPI_FSETSA(addr,REG,FIELD,SYM)\
_PER_FSETS(addr,HPI,##REG,##FIELD,##SYM)
/******************************************************************************\
* _____________________
* | |
* | H P I C |
* |___________________|
*
* HPI - HPI control register
*
* FIELDS (msb -> lsb)
* (r) FETCH
* (r) HRDY
* (rw) HINT
* (rw) DSPINT
* (r) HWOB
*
\******************************************************************************/
#define _HPI_HPIC_OFFSET 0
#define _HPI_HPIC_ADDR 0x01880000u
#define _HPI_HPIC_FETCH_MASK 0x00000010u
#define _HPI_HPIC_FETCH_SHIFT 0x00000004u
#define HPI_HPIC_FETCH_DEFAULT 0x00000000u
#define HPI_HPIC_FETCH_OF(x) _VALUEOF(x)
#define HPI_HPIC_FETCH_0 0x00000000u
#define HPI_HPIC_FETCH_1 0x00000001u
#define _HPI_HPIC_HRDY_MASK 0x00000008u
#define _HPI_HPIC_HRDY_SHIFT 0x00000003u
#define HPI_HPIC_HRDY_DEFAULT 0x00000001u
#define HPI_HPIC_HRDY_OF(x) _VALUEOF(x)
#define HPI_HPIC_HRDY_0 0x00000000u
#define HPI_HPIC_HRDY_1 0x00000001u
#define _HPI_HPIC_HINT_MASK 0x00000004u
#define _HPI_HPIC_HINT_SHIFT 0x00000002u
#define HPI_HPIC_HINT_DEFAULT 0x00000000u
#define HPI_HPIC_HINT_OF(x) _VALUEOF(x)
#define HPI_HPIC_HINT_0 0x00000000u
#define HPI_HPIC_HINT_1 0x00000001u
#define _HPI_HPIC_DSPINT_MASK 0x00000002u
#define _HPI_HPIC_DSPINT_SHIFT 0x00000001u
#define HPI_HPIC_DSPINT_DEFAULT 0x00000000u
#define HPI_HPIC_DSPINT_OF(x) _VALUEOF(x)
#define HPI_HPIC_DSPINT_0 0x00000000u
#define HPI_HPIC_DSPINT_1 0x00000001u
#define _HPI_HPIC_HWOB_MASK 0x00000001u
#define _HPI_HPIC_HWOB_SHIFT 0x00000000u
#define HPI_HPIC_HWOB_DEFAULT 0x00000000u
#define HPI_HPIC_HWOB_OF(x) _VALUEOF(x)
#define HPI_HPIC_HWOB_0 0x00000000u
#define HPI_HPIC_HWOB_1 0x00000001u
#define HPI_HPIC_OF(x) _VALUEOF(x)
#define HPI_HPIC_DEFAULT (Uint32)( \
_PER_FDEFAULT(HPI,HPIC,FETCH) \
|_PER_FDEFAULT(HPI,HPIC,HRDY) \
|_PER_FDEFAULT(HPI,HPIC,HINT) \
|_PER_FDEFAULT(HPI,HPIC,DSPINT) \
|_PER_FDEFAULT(HPI,HPIC,HWOB) \
)
#define HPI_HPIC_RMK(hint,dspint) (Uint32)( \
_PER_FMK(HPI,HPIC,HINT,hint) \
|_PER_FMK(HPI,HPIC,DSPINT,dspint) \
)
#define _HPI_HPIC_FGET(FIELD)\
_PER_FGET(_HPI_HPIC_ADDR,HPI,HPIC,##FIELD)
#define _HPI_HPIC_FSET(FIELD,field)\
_PER_FSET(_HPI_HPIC_ADDR,HPI,HPIC,##FIELD,field)
#define _HPI_HPIC_FSETS(FIELD,SYM)\
_PER_FSETS(_HPI_HPIC_ADDR,HPI,HPIC,##FIELD,##SYM)
/******************************************************************************\
* _____________________
* | |
* | H P I A W |
* |___________________|
*
* HPIAW - HPI Address Write register
*
* FIELDS (msb -> lsb)
* (rw) HPIAW
*
\******************************************************************************/
#if (C64_SUPPORT)
#define _HPI_HPIAW_OFFSET 1
#define _HPI_HPIAW_ADDR 0x01880004u
#define _HPI_HPIAW_HPIAW_MASK 0xFFFFFFFCu
#define _HPI_HPIAW_HPIAW_SHIFT 0x00000002u
#define HPI_HPIAW_HPIAW_DEFAULT 0x00000000u
#define HPI_HPIAW_HPIAW_OF(x) _VALUEOF(x)
#define HPI_HPIAW_DEFAULT (Uint32)( \
_PER_FDEFAULT(HPI,HPIAW,HPIAW) \
)
#define HPI_HPIAW_RMK(hpiaw) (Uint32)( \
_PER_FMK(HPI,HPIAW,HPIAW,hpiaw) \
)
#define _HPI_HPIAW_FGET(FIELD)\
_PER_FGET(_HPI_HPIAW_ADDR,HPI,HPIAW,##FIELD)
#define _HPI_HPIAW_FSET(FIELD,field)\
_PER_FSET(_HPI_HPIAW_ADDR,HPI,HPIAW,##FIELD,field)
#define _HPI_HPIAW_FSETS(FIELD,SYM)\
_PER_FSETS(_HPI_HPIAW_ADDR,HPI,HPIAW,##FIELD,##SYM)
#endif /* C64_SUPPORT */
/******************************************************************************\
* _____________________
* | |
* | H P I A R |
* |___________________|
*
* HPIAR - HPI Address Read register
*
* FIELDS (msb -> lsb)
* (rw) HPIAR
*
\******************************************************************************/
#if (C64_SUPPORT)
#define _HPI_HPIAR_OFFSET 2
#define _HPI_HPIAR_ADDR 0x01880008u
#define _HPI_HPIAR_HPIAR_MASK 0xFFFFFFFCu
#define _HPI_HPIAR_HPIAR_SHIFT 0x00000002u
#define HPI_HPIAR_HPIAR_DEFAULT 0x00000000u
#define HPI_HPIAR_HPIAR_OF(x) _VALUEOF(x)
#define HPI_HPIAR_DEFAULT (Uint32)( \
_PER_FDEFAULT(HPI,HPIAR,HPIAR) \
)
#define HPI_HPIAR_RMK(hpiar) (Uint32)( \
_PER_FMK(HPI,HPIAR,HPIAR,hpiar) \
)
#define _HPI_HPIAR_FGET(FIELD)\
_PER_FGET(_HPI_HPIAR_ADDR,HPI,HPIAR,##FIELD)
#define _HPI_HPIAR_FSET(FIELD,field)\
_PER_FSET(_HPI_HPIAR_ADDR,HPI,HPIAR,##FIELD,field)
#define _HPI_HPIAR_FSETS(FIELD,SYM)\
_PER_FSETS(_HPI_HPIAR_ADDR,HPI,HPIAR,##FIELD,##SYM)
#endif /* C64_SUPPORT */
/******************************************************************************\
* _____________________
* | |
* | T R C T L |
* |___________________|
*
* TRCTL - TR Control register
*
* FIELDS (msb -> lsb)
* (rw) TRSTALL
* (rw) PRI
* (rw) PALLOC
*
\******************************************************************************/
#if (C64_SUPPORT)
#define _HPI_TRCTL_OFFSET 16384
#define _HPI_TRCTL_ADDR 0x01890000u
#define _HPI_TRCTL_TRSTALL_MASK 0x00000100u
#define _HPI_TRCTL_TRSTALL_SHIFT 0x00000008u
#define HPI_TRCTL_TRSTALL_DEFAULT 0x00000000u
#define HPI_TRCTL_TRSTALL_OF(x) _VALUEOF(x)
#define _HPI_TRCTL_PRI_MASK 0x00000030u
#define _HPI_TRCTL_PRI_SHIFT 0x00000004u
#define HPI_TRCTL_PRI_DEFAULT 0x00000002u
#define HPI_TRCTL_PRI_OF(x) _VALUEOF(x)
#define _HPI_TRCTL_PALLOC_MASK 0x0000000Fu
#define _HPI_TRCTL_PALLOC_SHIFT 0x00000000u
#define HPI_TRCTL_PALLOC_DEFAULT 0x00000004u
#define HPI_TRCTL_PALLOC_OF(x) _VALUEOF(x)
#define HPI_TRCTL_DEFAULT (Uint32)( \
_PER_FDEFAULT(HPI,TRCTL,TRSTALL) \
|_PER_FDEFAULT(HPI,TRCTL,PRI) \
|_PER_FDEFAULT(HPI,TRCTL,PALLOC) \
)
#define HPI_TRCTL_RMK(trstall,pri,palloc) (Uint32)( \
_PER_FMK(HPI,TRCTL,TRSTALL,trstall) \
|_PER_FMK(HPI,TRCTL,PRI,pri) \
|_PER_FMK(HPI,TRCTL,PALLOC,palloc) \
)
#define _HPI_TRCTL_FGET(FIELD)\
_PER_FGET(_HPI_TRCTL_ADDR,HPI,TRCTL,##FIELD)
#define _HPI_TRCTL_FSET(FIELD,field)\
_PER_FSET(_HPI_TRCTL_ADDR,HPI,TRCTL,##FIELD,field)
#define _HPI_TRCTL_FSETS(FIELD,SYM)\
_PER_FSETS(_HPI_TRCTL_ADDR,HPI,TRCTL,##FIELD,##SYM)
#endif /* C64_SUPPORT */
/*----------------------------------------------------------------------------*/
#endif /* HPI_SUPPORT */
#endif /* _CSL_HPIHAL_H_ */
/******************************************************************************\
* End of csl_hpihal.h
\******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -