/*
 * def_LPBlackfin.h
 *
 * This file is subject to the terms and conditions of the GNU Public
 * License. See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 * Non-GPL License also available as part of VisualDSP++
 *
 * http://www.analog.com/processors/resources/crosscore/visualDspDevSoftware.html
 *
 * (c) Copyright 2001-2005 Analog Devices, Inc. All rights reserved
 *
 * This file under source code control, please send bugs or changes to:
 * dsptools.support@analog.com
 *
 */

/* LP Blackfin CORE REGISTER BIT & ADDRESS DEFINITIONS FOR ADSP-BF532 */

#ifndef _DEF_LPBLACKFIN_H
#define _DEF_LPBLACKFIN_H

/* 
 * #if !defined(__ADSPLPBLACKFIN__)
 * #warning def_LPBlackfin.h should only be included for 532 compatible chips.
 * #endif
 */

#define MK_BMSK_( x ) (1<<x)	/* Make a bit mask from a bit position */

/*
 * System Register Bits
 */

/*
 * ASTAT register
 */

/* definitions of ASTAT bit positions */
#define ASTAT_AZ_P		0x00000000	/* Result of last ALU0 or shifter operation is zero */
#define ASTAT_AN_P		0x00000001	/* Result of last ALU0 or shifter operation is negative */
#define ASTAT_CC_P		0x00000005	/* Condition Code, used for holding comparison results */
#define ASTAT_AQ_P		0x00000006	/* Quotient Bit */
#define ASTAT_RND_MOD_P		0x00000008	/* Rounding mode, set for biased, clear for unbiased */
#define ASTAT_AC0_P		0x0000000C	/* Result of last ALU0 operation generated a carry */
#define ASTAT_AC0_COPY_P	0x00000002	/* Result of last ALU0 operation generated a carry */
#define ASTAT_AC1_P		0x0000000D	/* Result of last ALU1 operation generated a carry */
#define ASTAT_AV0_P		0x00000010	/* Result of last ALU0 or MAC0 operation overflowed, sticky for MAC */
#define ASTAT_AV0S_P		0x00000011	/* Sticky version of ASTAT_AV0  */
#define ASTAT_AV1_P		0x00000012	/* Result of last MAC1 operation overflowed, sticky for MAC */
#define ASTAT_AV1S_P		0x00000013	/* Sticky version of ASTAT_AV1  */
#define ASTAT_V_P		0x00000018	/* Result of last ALU0 or MAC0 operation overflowed */
#define ASTAT_V_COPY_P		0x00000003	/* Result of last ALU0 or MAC0 operation overflowed */
#define ASTAT_VS_P		0x00000019	/* Sticky version of ASTAT_V */

/* ** Masks */
#define ASTAT_AZ		MK_BMSK_(ASTAT_AZ_P)	/* Result of last ALU0 or shifter operation is zero */
#define ASTAT_AN		MK_BMSK_(ASTAT_AN_P)	/* Result of last ALU0 or shifter operation is negative */
#define ASTAT_AC0		MK_BMSK_(ASTAT_AC0_P)	/* Result of last ALU0 operation generated a carry */
#define ASTAT_AC0_COPY		MK_BMSK_(ASTAT_AC0_COPY_P)	/* Result of last ALU0 operation generated a carry */
#define ASTAT_AC1		MK_BMSK_(ASTAT_AC1_P)	/* Result of last ALU0 operation generated a carry */
#define ASTAT_AV0		MK_BMSK_(ASTAT_AV0_P)	/* Result of last ALU0 or MAC0 operation overflowed, sticky for MAC */
#define ASTAT_AV1		MK_BMSK_(ASTAT_AV1_P)	/* Result of last MAC1 operation overflowed, sticky for MAC */
#define ASTAT_CC		MK_BMSK_(ASTAT_CC_P)	/* Condition Code, used for holding comparison results */
#define ASTAT_AQ		MK_BMSK_(ASTAT_AQ_P)	/* Quotient Bit */
#define ASTAT_RND_MOD		MK_BMSK_(ASTAT_RND_MOD_P)	/* Rounding mode, set for biased, clear for unbiased */
#define ASTAT_V			MK_BMSK_(ASTAT_V_P)	/* Overflow Bit */
#define ASTAT_V_COPY		MK_BMSK_(ASTAT_V_COPY_P)	/* Overflow Bit */

/*
 * SEQSTAT register
 */

/* ** Bit Positions */
#define SEQSTAT_EXCAUSE0_P	0x00000000	/* Last exception cause bit 0 */
#define SEQSTAT_EXCAUSE1_P	0x00000001	/* Last exception cause bit 1 */
#define SEQSTAT_EXCAUSE2_P	0x00000002	/* Last exception cause bit 2 */
#define SEQSTAT_EXCAUSE3_P	0x00000003	/* Last exception cause bit 3 */
#define SEQSTAT_EXCAUSE4_P	0x00000004	/* Last exception cause bit 4 */
#define SEQSTAT_EXCAUSE5_P	0x00000005	/* Last exception cause bit 5 */
#define SEQSTAT_IDLE_REQ_P	0x0000000C	/* Pending idle mode request, set by IDLE instruction */
#define SEQSTAT_SFTRESET_P	0x0000000D	/* Indicates whether the last reset was a software reset (=1) */
#define SEQSTAT_HWERRCAUSE0_P	0x0000000E	/* Last hw error cause bit 0 */
#define SEQSTAT_HWERRCAUSE1_P	0x0000000F	/* Last hw error cause bit 1 */
#define SEQSTAT_HWERRCAUSE2_P	0x00000010	/* Last hw error cause bit 2 */
#define SEQSTAT_HWERRCAUSE3_P	0x00000011	/* Last hw error cause bit 3 */
#define SEQSTAT_HWERRCAUSE4_P	0x00000012	/* Last hw error cause bit 4 */
#define SEQSTAT_HWERRCAUSE5_P	0x00000013	/* Last hw error cause bit 5 */
#define SEQSTAT_HWERRCAUSE6_P	0x00000014	/* Last hw error cause bit 6 */
#define SEQSTAT_HWERRCAUSE7_P	0x00000015	/* Last hw error cause bit 7 */

/* ** Masks */
/* Exception cause */
#define SEQSTAT_EXCAUSE		MK_BMSK_(SEQSTAT_EXCAUSE0_P ) | \
				MK_BMSK_(SEQSTAT_EXCAUSE1_P ) | \
				MK_BMSK_(SEQSTAT_EXCAUSE2_P ) | \
				MK_BMSK_(SEQSTAT_EXCAUSE3_P ) | \
				MK_BMSK_(SEQSTAT_EXCAUSE4_P ) | \
				MK_BMSK_(SEQSTAT_EXCAUSE5_P ) | \
				0

/* Indicates whether the last reset was a software reset (=1) */
#define SEQSTAT_SFTRESET	MK_BMSK_(SEQSTAT_SFTRESET_P )

/* Last hw error cause */
#define SEQSTAT_HWERRCAUSE	MK_BMSK_(SEQSTAT_HWERRCAUSE0_P ) | \
				MK_BMSK_(SEQSTAT_HWERRCAUSE1_P ) | \
				MK_BMSK_(SEQSTAT_HWERRCAUSE2_P ) | \
				MK_BMSK_(SEQSTAT_HWERRCAUSE3_P ) | \
				MK_BMSK_(SEQSTAT_HWERRCAUSE4_P ) | \
				0

/*
 * SYSCFG register
 */

/* ** Bit Positions */
#define SYSCFG_SSSTEP_P		0x00000000	/* Supervisor single step, when set it forces an exception for each instruction executed */
#define SYSCFG_CCEN_P		0x00000001	/* Enable cycle counter (=1) */
#define SYSCFG_SNEN_P		0x00000002	/* Self nesting Interrupt Enable */

/* ** Masks */
#define SYSCFG_SSSTEP		MK_BMSK_(SYSCFG_SSSTEP_P)	/* Supervisor single step, when set it forces an exception for each instruction executed */
#define SYSCFG_CCEN		MK_BMSK_(SYSCFG_CCEN_P)		/* Enable cycle counter (=1) */
#define SYSCFG_SNEN		MK_BMSK_(SYSCFG_SNEN_P		/* Self Nesting Interrupt Enable */

/* Backward-compatibility for typos in prior releases */
#define SYSCFG_SSSSTEP		SYSCFG_SSSTEP
#define SYSCFG_CCCEN		SYSCFG_CCEN

/*
 * Core MMR Register Map
 */

/* Data Cache & SRAM Memory  (0xFFE00000 - 0xFFE00404) */
#define SRAM_BASE_ADDRESS	0xFFE00000	/* SRAM Base Address Register */
#define DMEM_CONTROL		0xFFE00004	/* Data memory control */
#define DCPLB_STATUS		0xFFE00008	/* Data Cache Programmable Look-Aside Buffer Status */
#define DCPLB_FAULT_STATUS	0xFFE00008	/* "" (older define) */
#define DCPLB_FAULT_ADDR	0xFFE0000C	/* Data Cache Programmable Look-Aside Buffer Fault Address */
#define DCPLB_ADDR0		0xFFE00100	/* Data Cache Protection Lookaside Buffer 0 */
#define DCPLB_ADDR1		0xFFE00104	/* Data Cache Protection Lookaside Buffer 1 */
#define DCPLB_ADDR2		0xFFE00108	/* Data Cache Protection Lookaside Buffer 2 */
#define DCPLB_ADDR3		0xFFE0010C	/* Data Cacheability Protection Lookaside Buffer 3 */
#define DCPLB_ADDR4		0xFFE00110	/* Data Cacheability Protection Lookaside Buffer 4 */
#define DCPLB_ADDR5		0xFFE00114	/* Data Cacheability Protection Lookaside Buffer 5 */
#define DCPLB_ADDR6		0xFFE00118	/* Data Cacheability Protection Lookaside Buffer 6 */
#define DCPLB_ADDR7		0xFFE0011C	/* Data Cacheability Protection Lookaside Buffer 7 */
#define DCPLB_ADDR8		0xFFE00120	/* Data Cacheability Protection Lookaside Buffer 8 */
#define DCPLB_ADDR9		0xFFE00124	/* Data Cacheability Protection Lookaside Buffer 9 */
#define DCPLB_ADDR10		0xFFE00128	/* Data Cacheability Protection Lookaside Buffer 10 */
#define DCPLB_ADDR11		0xFFE0012C	/* Data Cacheability Protection Lookaside Buffer 11 */
#define DCPLB_ADDR12		0xFFE00130	/* Data Cacheability Protection Lookaside Buffer 12 */
#define DCPLB_ADDR13		0xFFE00134	/* Data Cacheability Protection Lookaside Buffer 13 */
#define DCPLB_ADDR14		0xFFE00138	/* Data Cacheability Protection Lookaside Buffer 14 */
#define DCPLB_ADDR15		0xFFE0013C	/* Data Cacheability Protection Lookaside Buffer 15 */
#define DCPLB_DATA0		0xFFE00200	/* Data Cache 0 Status */
#define DCPLB_DATA1		0xFFE00204	/* Data Cache 1 Status */
#define DCPLB_DATA2		0xFFE00208	/* Data Cache 2 Status */
#define DCPLB_DATA3		0xFFE0020C	/* Data Cache 3 Status */
#define DCPLB_DATA4		0xFFE00210	/* Data Cache 4 Status */
#define DCPLB_DATA5		0xFFE00214	/* Data Cache 5 Status */
#define DCPLB_DATA6		0xFFE00218	/* Data Cache 6 Status */
#define DCPLB_DATA7		0xFFE0021C	/* Data Cache 7 Status */
#define DCPLB_DATA8		0xFFE00220	/* Data Cache 8 Status */
#define DCPLB_DATA9		0xFFE00224	/* Data Cache 9 Status */
#define DCPLB_DATA10		0xFFE00228	/* Data Cache 10 Status */
#define DCPLB_DATA11		0xFFE0022C	/* Data Cache 11 Status */
#define DCPLB_DATA12		0xFFE00230	/* Data Cache 12 Status */
#define DCPLB_DATA13		0xFFE00234	/* Data Cache 13 Status */
#define DCPLB_DATA14		0xFFE00238	/* Data Cache 14 Status */
#define DCPLB_DATA15		0xFFE0023C	/* Data Cache 15 Status */
#define DTEST_COMMAND		0xFFE00300	/* Data Test Command Register */
#define DTEST_DATA0		0xFFE00400	/* Data Test Data Register */
#define DTEST_DATA1		0xFFE00404	/* Data Test Data Register */

/* Instruction Cache & SRAM Memory  (0xFFE01004 - 0xFFE01404) */
#define IMEM_CONTROL		0xFFE01004	/* Instruction Memory Control */
#define ICPLB_STATUS		0xFFE01008	/* Instruction Cache miss status */
#define CODE_FAULT_STATUS	0xFFE01008	/* "" (older define) */
#define ICPLB_FAULT_ADDR	0xFFE0100C	/* Instruction Cache miss address */
#define CODE_FAULT_ADDR		0xFFE0100C	/* "" (older define) */
#define ICPLB_ADDR0		0xFFE01100	/* Instruction Cacheability Protection Lookaside Buffer 0 */
#define ICPLB_ADDR1		0xFFE01104	/* Instruction Cacheability Protection Lookaside Buffer 1 */
#define ICPLB_ADDR2		0xFFE01108	/* Instruction Cacheability Protection Lookaside Buffer 2 */
#define ICPLB_ADDR3		0xFFE0110C	/* Instruction Cacheability Protection Lookaside Buffer 3 */
#define ICPLB_ADDR4		0xFFE01110	/* Instruction Cacheability Protection Lookaside Buffer 4 */
#define ICPLB_ADDR5		0xFFE01114	/* Instruction Cacheability Protection Lookaside Buffer 5 */
#define ICPLB_ADDR6		0xFFE01118	/* Instruction Cacheability Protection Lookaside Buffer 6 */
#define ICPLB_ADDR7		0xFFE0111C	/* Instruction Cacheability Protection Lookaside Buffer 7 */
#define ICPLB_ADDR8		0xFFE01120	/* Instruction Cacheability Protection Lookaside Buffer 8 */
#define ICPLB_ADDR9		0xFFE01124	/* Instruction Cacheability Protection Lookaside Buffer 9 */
#define ICPLB_ADDR10		0xFFE01128	/* Instruction Cacheability Protection Lookaside Buffer 10 */
#define ICPLB_ADDR11		0xFFE0112C	/* Instruction Cacheability Protection Lookaside Buffer 11 */
#define ICPLB_ADDR12		0xFFE01130	/* Instruction Cacheability Protection Lookaside Buffer 12 */
#define ICPLB_ADDR13		0xFFE01134	/* Instruction Cacheability Protection Lookaside Buffer 13 */
#define ICPLB_ADDR14		0xFFE01138	/* Instruction Cacheability Protection Lookaside Buffer 14 */
#define ICPLB_ADDR15		0xFFE0113C	/* Instruction Cacheability Protection Lookaside Buffer 15 */
#define ICPLB_DATA0		0xFFE01200	/* Instruction Cache 0 Status */
#define ICPLB_DATA1		0xFFE01204	/* Instruction Cache 1 Status */
#define ICPLB_DATA2		0xFFE01208	/* Instruction Cache 2 Status */
#define ICPLB_DATA3		0xFFE0120C	/* Instruction Cache 3 Status */
#define ICPLB_DATA4		0xFFE01210	/* Instruction Cache 4 Status */
#define ICPLB_DATA5		0xFFE01214	/* Instruction Cache 5 Status */
#define ICPLB_DATA6		0xFFE01218	/* Instruction Cache 6 Status */
#define ICPLB_DATA7		0xFFE0121C	/* Instruction Cache 7 Status */
#define ICPLB_DATA8		0xFFE01220	/* Instruction Cache 8 Status */
#define ICPLB_DATA9		0xFFE01224	/* Instruction Cache 9 Status */
#define ICPLB_DATA10		0xFFE01228	/* Instruction Cache 10 Status */
#define ICPLB_DATA11		0xFFE0122C	/* Instruction Cache 11 Status */
#define ICPLB_DATA12		0xFFE01230	/* Instruction Cache 12 Status */
#define ICPLB_DATA13		0xFFE01234	/* Instruction Cache 13 Status */
#define ICPLB_DATA14		0xFFE01238	/* Instruction Cache 14 Status */
#define ICPLB_DATA15		0xFFE0123C	/* Instruction Cache 15 Status */
#define ITEST_COMMAND		0xFFE01300	/* Instruction Test Command Register */
#define ITEST_DATA0		0xFFE01400	/* Instruction Test Data Register */
#define ITEST_DATA1		0xFFE01404	/* Instruction Test Data Register */

/* Event/Interrupt Controller Registers (0xFFE02000 - 0xFFE02110) */
#define EVT0			0xFFE02000	/* Event Vector 0 ESR Address */
#define EVT1			0xFFE02004	/* Event Vector 1 ESR Address */
#define EVT2			0xFFE02008	/* Event Vector 2 ESR Address */
#define EVT3			0xFFE0200C	/* Event Vector 3 ESR Address */
#define EVT4			0xFFE02010	/* Event Vector 4 ESR Address */
#define EVT5			0xFFE02014	/* Event Vector 5 ESR Address */
#define EVT6			0xFFE02018	/* Event Vector 6 ESR Address */
#define EVT7			0xFFE0201C	/* Event Vector 7 ESR Address */
#define EVT8			0xFFE02020	/* Event Vector 8 ESR Address */
#define EVT9			0xFFE02024	/* Event Vector 9 ESR Address */
#define EVT10			0xFFE02028	/* Event Vector 10 ESR Address */
#define EVT11			0xFFE0202C	/* Event Vector 11 ESR Address */
#define EVT12			0xFFE02030	/* Event Vector 12 ESR Address */
#define EVT13			0xFFE02034	/* Event Vector 13 ESR Address */
#define EVT14			0xFFE02038	/* Event Vector 14 ESR Address */
#define EVT15			0xFFE0203C	/* Event Vector 15 ESR Address */
#define IMASK			0xFFE02104	/* Interrupt Mask Register */
#define IPEND			0xFFE02108	/* Interrupt Pending Register */
#define ILAT			0xFFE0210C	/* Interrupt Latch Register */
#define IPRIO			0xFFE02110	/* Core Interrupt Priority Register */

/* Core Timer Registers     (0xFFE03000 - 0xFFE0300C) */
#define TCNTL			0xFFE03000	/* Core Timer Control Register */
#define TPERIOD			0xFFE03004	/* Core Timer Period Register */
#define TSCALE			0xFFE03008	/* Core Timer Scale Register */
#define TCOUNT			0xFFE0300C	/* Core Timer Count Register */

/* Debug/MP/Emulation Registers (0xFFE05000 - 0xFFE05008) */
#define DSPID			0xFFE05000	/* DSP Processor ID Register for MP implementations */
#define DBGSTAT			0xFFE05008	/* Debug Status Register */

/* Trace Buffer Registers (0xFFE06000 - 0xFFE06100) */
#define TBUFCTL			0xFFE06000	/* Trace Buffer Control Register */
#define TBUFSTAT		0xFFE06004	/* Trace Buffer Status Register */
#define TBUF			0xFFE06100	/* Trace Buffer */

/* Watchpoint Control Registers (0xFFE07000 - 0xFFE07200) */
#define WPIACTL			0xFFE07000	/* Watchpoint Instruction Address Control Register */
#define WPIA0			0xFFE07040	/* Watchpoint Instruction Address Register 0 */
#define WPIA1			0xFFE07044	/* Watchpoint Instruction Address Register 1 */
#define WPIA2			0xFFE07048	/* Watchpoint Instruction Address Register 2 */
#define WPIA3			0xFFE0704C	/* Watchpoint Instruction Address Register 3 */
#define WPIA4			0xFFE07050	/* Watchpoint Instruction Address Register 4 */
#define WPIA5			0xFFE07054	/* Watchpoint Instruction Address Register 5 */
#define WPIACNT0		0xFFE07080	/* Watchpoint Instruction Address Count Register 0 */
#define WPIACNT1		0xFFE07084	/* Watchpoint Instruction Address Count Register 1 */
#define WPIACNT2		0xFFE07088	/* Watchpoint Instruction Address Count Register 2 */
#define WPIACNT3		0xFFE0708C	/* Watchpoint Instruction Address Count Register 3 */
#define WPIACNT4		0xFFE07090	/* Watchpoint Instruction Address Count Register 4 */
#define WPIACNT5		0xFFE07094	/* Watchpoint Instruction Address Count Register 5 */
#define WPDACTL			0xFFE07100	/* Watchpoint Data Address Control Register */
#define WPDA0			0xFFE07140	/* Watchpoint Data Address Register 0 */
#define WPDA1			0xFFE07144	/* Watchpoint Data Address Register 1 */
#define WPDACNT0		0xFFE07180	/* Watchpoint Data Address Count Value Register 0 */
#define WPDACNT1		0xFFE07184	/* Watchpoint Data Address Count Value Register 1 */
#define WPSTAT			0xFFE07200	/* Watchpoint Status Register */

/* Performance Monitor Registers (0xFFE08000 - 0xFFE08104) */
#define PFCTL			0xFFE08000	/* Performance Monitor Control Register */
#define PFCNTR0			0xFFE08100	/* Performance Monitor Counter Register 0 */
#define PFCNTR1			0xFFE08104	/* Performance Monitor Counter Register 1 */

/*
 * Core MMR Register Bits
 */

/*
 * EVT registers (ILAT, IMASK, and IPEND).
 */

/* ** Bit Positions */
#define EVT_EMU_P		0x00000000	/* Emulator interrupt bit position */
#define EVT_RST_P		0x00000001	/* Reset interrupt bit position */
#define EVT_NMI_P		0x00000002	/* Non Maskable interrupt bit position */
#define EVT_EVX_P		0x00000003	/* Exception bit position */
#define EVT_IRPTEN_P		0x00000004	/* Global interrupt enable bit position */
#define EVT_IVHW_P		0x00000005	/* Hardware Error interrupt bit position */
#define EVT_IVTMR_P		0x00000006	/* Timer interrupt bit position */
#define EVT_IVG7_P		0x00000007	/* IVG7 interrupt bit position */
#define EVT_IVG8_P		0x00000008	/* IVG8 interrupt bit position */
#define EVT_IVG9_P		0x00000009	/* IVG9 interrupt bit position */
#define EVT_IVG10_P		0x0000000a	/* IVG10 interrupt bit position */
#define EVT_IVG11_P		0x0000000b	/* IVG11 interrupt bit position */
#define EVT_IVG12_P		0x0000000c	/* IVG12 interrupt bit position */
#define EVT_IVG13_P		0x0000000d	/* IVG13 interrupt bit position */
#define EVT_IVG14_P		0x0000000e	/* IVG14 interrupt bit position */
#define EVT_IVG15_P		0x0000000f	/* IVG15 interrupt bit position */

/* ** Masks */
#define EVT_EMU			MK_BMSK_(EVT_EMU_P   )	/* Emulator interrupt mask */
#define EVT_RST			MK_BMSK_(EVT_RST_P   )	/* Reset interrupt mask */
#define EVT_NMI			MK_BMSK_(EVT_NMI_P   )	/* Non Maskable interrupt mask */
#define EVT_EVX			MK_BMSK_(EVT_EVX_P   )	/* Exception mask */
#define EVT_IRPTEN		MK_BMSK_(EVT_IRPTEN_P)	/* Global interrupt enable mask */
#define EVT_IVHW		MK_BMSK_(EVT_IVHW_P  )	/* Hardware Error interrupt mask */
#define EVT_IVTMR		MK_BMSK_(EVT_IVTMR_P )	/* Timer interrupt mask */
#define EVT_IVG7		MK_BMSK_(EVT_IVG7_P  )	/* IVG7 interrupt mask */
#define EVT_IVG8		MK_BMSK_(EVT_IVG8_P  )	/* IVG8 interrupt mask */
#define EVT_IVG9		MK_BMSK_(EVT_IVG9_P  )	/* IVG9 interrupt mask */
#define EVT_IVG10		MK_BMSK_(EVT_IVG10_P )	/* IVG10 interrupt mask */
#define EVT_IVG11		MK_BMSK_(EVT_IVG11_P )	/* IVG11 interrupt mask */
#define EVT_IVG12		MK_BMSK_(EVT_IVG12_P )	/* IVG12 interrupt mask */
#define EVT_IVG13		MK_BMSK_(EVT_IVG13_P )	/* IVG13 interrupt mask */
#define EVT_IVG14		MK_BMSK_(EVT_IVG14_P )	/* IVG14 interrupt mask */
#define EVT_IVG15		MK_BMSK_(EVT_IVG15_P )	/* IVG15 interrupt mask */

/*
 * DMEM_CONTROL Register
 */

/* ** Bit Positions */
#define ENDM_P			0x00	/* (doesn't really exist) Enable Data Memory L1 */
#define DMCTL_ENDM_P		0x00	/* "" (older define) */
#define DMC0_P			0x01	/* Data Memory Configuration, 00 - A SRAM, B SRAM */
#define DMCTL_DMC0_P		0x01	/* "" (older define) */
#define DMC1_P			0x02	/* Data Memory Configuration, 10 - A SRAM, B SRAM */
#define DMCTL_DMC1_P		0x02	/* "" (older define) */
#define DMC2_P			0x03	/* Data Memory Configuration, 11 - A CACHE, B CACHE */
#define DMCTL_DMC2_P		0x03	/* "" (older define) */
#define DCBS_P			0x04	/* L1 Data Cache Bank Select */
#define PORT_PREF0_P		0x12	/* DAG0 Port Preference */
#define PORT_PREF1_P		0x13	/* DAG1 Port Preference */

/* ** Masks */
#define ENDM			0x00000001	/* (doesn't really exist) Enable Data Memory L1 */
#define ENDCPLB			0x00000002	/* Enable DCPLB */
#define ASRAM_BSRAM		0x00000000	
#define ACACHE_BSRAM		0x00000008
#define ACACHE_BCACHE		0x0000000C  
#define DCBS			0x00000010	/*  L1 Data Cache Bank Select */
#define PORT_PREF0		0x00001000	/* DAG0 Port Preference */
#define PORT_PREF1		0x00002000	/* DAG1 Port Preference */

/* IMEM_CONTROL Register */
/* ** Bit Positions */
#define ENIM_P			0x00	/* Enable L1 Code Memory */
#define IMCTL_ENIM_P		0x00	/* "" (older define) */
#define ENICPLB_P		0x01	/* Enable ICPLB */
#define IMCTL_ENICPLB_P		0x01	/* "" (older define) */
#define IMC_P			0x02	/* Enable */
#define IMCTL_IMC_P		0x02	/* Configure L1 code memory as cache (0=SRAM) */
#define ILOC0_P			0x03	/* Lock Way 0 */
#define ILOC1_P			0x04	/* Lock Way 1 */
#define ILOC2_P			0x05	/* Lock Way 2 */
#define ILOC3_P			0x06	/* Lock Way 3 */
#define LRUPRIORST_P		0x0D	/* Least Recently Used Replacement Priority */

/* ** Masks */
#define ENIM			0x00000001	/* Enable L1 Code Memory */
#define ENICPLB			0x00000002	/* Enable ICPLB */
#define IMC			0x00000004	/* Configure L1 code memory as cache (0=SRAM) */
#define ILOC0			0x00000008	/* Lock Way 0 */
#define ILOC1			0x00000010	/* Lock Way 1 */
#define ILOC2			0x00000020	/* Lock Way 2 */
#define ILOC3			0x00000040	/* Lock Way 3 */
#define LRUPRIORST		0x00002000	/* Least Recently Used Replacement Priority */

/* TCNTL Masks */
#define TMPWR			0x00000001	/* Timer Low Power Control, 0=low power mode, 1=active state */
#define TMREN			0x00000002	/* Timer enable, 0=disable, 1=enable */
#define TAUTORLD		0x00000004	/* Timer auto reload */
#define TINT			0x00000008	/* Timer generated interrupt 0=no interrupt has been generated, 1=interrupt has been generated (sticky) */

/* TCNTL Bit Positions */
#define TMPWR_P			0x00000000	/* Timer Low Power Control, 0=low power mode, 1=active state */
#define TMREN_P			0x00000001	/* Timer enable, 0=disable, 1=enable */
#define TAUTORLD_P		0x00000002	/* Timer auto reload */
#define TINT_P			0x00000003	/* Timer generated interrupt 0=no interrupt has been generated, 1=interrupt has been generated (sticky) */

/* DCPLB_DATA and ICPLB_DATA Registers */
/* ** Bit Positions */
#define CPLB_VALID_P		0x00000000	/* 0=invalid entry, 1=valid entry */
#define CPLB_LOCK_P		0x00000001	/* 0=entry may be replaced, 1=entry locked */
#define CPLB_USER_RD_P		0x00000002	/* 0=no read access, 1=read access allowed (user mode) */

/* ** Masks */
#define CPLB_VALID		0x00000001	/* 0=invalid entry, 1=valid entry */
#define CPLB_LOCK		0x00000002	/* 0=entry may be replaced, 1=entry locked */
#define CPLB_USER_RD		0x00000004	/* 0=no read access, 1=read access allowed (user mode) */
#define PAGE_SIZE_1KB		0x00000000	/* 1 KB page size */
#define PAGE_SIZE_4KB		0x00010000	/* 4 KB page size */
#define PAGE_SIZE_1MB		0x00020000	/* 1 MB page size */
#define PAGE_SIZE_4MB		0x00030000	/* 4 MB page size */
#define CPLB_L1SRAM		0x00000020	/* 0=SRAM mapped in L1, 0=SRAM not mapped to L1 */
#define CPLB_PORTPRIO		0x00000200	/* 0=low priority port, 1= high priority port */
#define CPLB_L1_CHBL		0x00001000	/* 0=non-cacheable in L1, 1=cacheable in L1 */

/* ICPLB_DATA only */
#define CPLB_LRUPRIO		0x00000100	/* 0=can be replaced by any line, 1=priority for non-replacement */

/* DCPLB_DATA only */
#define CPLB_USER_WR		0x00000008	/* 0=no write access, 0=write access allowed (user mode) */
#define CPLB_SUPV_WR		0x00000010	/* 0=no write access, 0=write access allowed (supervisor mode) */
#define CPLB_DIRTY		0x00000080	/* 1=dirty, 0=clean */
#define CPLB_L1_AOW		0x00008000	/* 0=do not allocate cache lines on write-through writes */
						/* 1= allocate cache lines on write-through writes. */
#define CPLB_WT			0x00004000	/* 0=write-back, 1=write-through */

/* ITEST_COMMAND and DTEST_COMMAND Registers */
/* ** Masks */
#define TEST_READ		0x00000000	/* Read Access */
#define TEST_WRITE		0x00000002	/* Write Access */
#define TEST_TAG		0x00000000	/* Access TAG */
#define TEST_DATA		0x00000004	/* Access DATA */
#define TEST_DW0		0x00000000	/* Select Double Word 0 */
#define TEST_DW1		0x00000008	/* Select Double Word 1 */
#define TEST_DW2		0x00000010	/* Select Double Word 2 */
#define TEST_DW3		0x00000018	/* Select Double Word 3 */
#define TEST_MB0		0x00000000	/* Select Mini-Bank 0 */
#define TEST_MB1		0x00010000	/* Select Mini-Bank 1 */
#define TEST_MB2		0x00020000	/* Select Mini-Bank 2 */
#define TEST_MB3		0x00030000	/* Select Mini-Bank 3 */
#define TEST_SET(x)		((x << 5) & 0x03E0)	/* Set Index 0->31 */
#define TEST_WAY0		0x00000000	/* Access Way0 */
#define TEST_WAY1		0x04000000	/* Access Way1 */

/* ** ITEST_COMMAND only */
#define TEST_WAY2		0x08000000	/* Access Way2 */
#define TEST_WAY3		0x0C000000	/* Access Way3 */

/* ** DTEST_COMMAND only */
#define TEST_BNKSELA		0x00000000	/* Access SuperBank A */
#define TEST_BNKSELB		0x00800000	/* Access SuperBank B */

#endif	/* _DEF_LPBLACKFIN_H */
