2018-05-06 21:58:06 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
2004-10-10 21:27:30 +00:00
|
|
|
/*
|
|
|
|
* (C) Copyright 2004, Psyent Corporation <www.psyent.com>
|
|
|
|
* Scott McNutt <smcnutt@psyent.com>
|
|
|
|
*/
|
|
|
|
|
2014-08-25 09:09:07 +00:00
|
|
|
#ifndef __ASM_NIOS2_H__
|
|
|
|
#define __ASM_NIOS2_H__
|
2004-10-10 21:27:30 +00:00
|
|
|
|
|
|
|
/*------------------------------------------------------------------------
|
|
|
|
* Control registers -- use with wrctl() & rdctl()
|
|
|
|
*----------------------------------------------------------------------*/
|
|
|
|
#define CTL_STATUS 0 /* Processor status reg */
|
|
|
|
#define CTL_ESTATUS 1 /* Exception status reg */
|
|
|
|
#define CTL_BSTATUS 2 /* Break status reg */
|
|
|
|
#define CTL_IENABLE 3 /* Interrut enable reg */
|
|
|
|
#define CTL_IPENDING 4 /* Interrut pending reg */
|
|
|
|
|
|
|
|
/*------------------------------------------------------------------------
|
|
|
|
* Access to control regs
|
|
|
|
*----------------------------------------------------------------------*/
|
|
|
|
|
2012-11-09 06:29:15 +00:00
|
|
|
#define rdctl(reg) __builtin_rdctl(reg)
|
|
|
|
#define wrctl(reg, val) __builtin_wrctl(reg, val)
|
2004-10-10 21:27:30 +00:00
|
|
|
|
|
|
|
/*------------------------------------------------------------------------
|
|
|
|
* Control reg bit masks
|
|
|
|
*----------------------------------------------------------------------*/
|
|
|
|
#define STATUS_IE (1<<0) /* Interrupt enable */
|
|
|
|
#define STATUS_U (1<<1) /* User-mode */
|
|
|
|
|
|
|
|
/*------------------------------------------------------------------------
|
|
|
|
* Bit-31 Cache bypass -- only valid for data access. When data cache
|
|
|
|
* is not implemented, bit 31 is ignored for compatibility.
|
|
|
|
*----------------------------------------------------------------------*/
|
|
|
|
#define CACHE_BYPASS(a) ((a) | 0x80000000)
|
|
|
|
#define CACHE_NO_BYPASS(a) ((a) & ~0x80000000)
|
|
|
|
|
2014-08-25 09:09:07 +00:00
|
|
|
#endif /* __ASM_NIOS2_H__ */
|