OpenCores
URL https://opencores.org/ocsvn/xulalx25soc/xulalx25soc/trunk

Subversion Repositories xulalx25soc

[/] [xulalx25soc/] [trunk/] [bench/] [asm/] [sys.i] - Blame information for rev 23

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 16 dgisselq
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;
3
; Filename:     sys.i
4
;
5
; Project:      Zip CPU -- a small, lightweight, RISC CPU soft core
6
;
7
; Purpose:      This is the beginnings of a system wide header file for the
8
;               Zip System.   It describes and declares the peripherals
9
;               that will the be used and referenced by the assembly files.
10
;
11
; Status:       As of August, 2015, I have no confidence that the preprocessor
12
;               can properly include this file.  It certainly cannot handle
13
;               macros (yet).
14
;
15
; Creator:      Dan Gisselquist, Ph.D.
16
;               Gisselquist Technology, LLC
17
;
18
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
19
;
20
; Copyright (C) 2015, Gisselquist Technology, LLC
21
;
22
; This program is free software (firmware): you can redistribute it and/or
23
; modify it under the terms of  the GNU General Public License as published
24
; by the Free Software Foundation, either version 3 of the License, or (at
25
; your option) any later version.
26
;
27
; This program is distributed in the hope that it will be useful, but WITHOUT
28
; ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY or
29
; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
30
; for more details.
31
;
32
; License:      GPL, v3, as defined and found on www.gnu.org,
33
;               http://www.gnu.org/licenses/gpl.html
34
;
35
;
36
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
37
;
38
        sys.bus         equ     0xc0000000
39
        sys.breaken     equ     0x080
40
        sys.step        equ     0x040
41
        sys.gie         equ     0x020
42
        sys.sleep       equ     0x010
43
        sys.ccv         equ     0x008
44
        sys.ccn         equ     0x004
45
        sys.ccc         equ     0x002
46
        sys.ccz         equ     0x001
47
        sys.bus.pic     equ     0x000
48
        sys.bus.wdt     equ     0x001
49
        sys.bus.wdbus   equ     0x002
50
        sys.bus.apic    equ     0x003
51
        sys.bus.tma     equ     0x004
52
        sys.bus.tmb     equ     0x005
53
        sys.bus.tmc     equ     0x006
54
        sys.bus.jiffies equ     0x007
55
        sys.mctr.task   equ     0x008
56
        sys.mctr.mstl   equ     0x009
57
        sys.mctr.pstl   equ     0x00a
58
        sys.mctr.icnt   equ     0x00b
59
        sys.uctr.task   equ     0x00c
60
        sys.uctr.mstl   equ     0x00d
61
        sys.uctr.pstl   equ     0x00e
62
        sys.uctr.icnt   equ     0x00f
63
        sys.dma         equ     0x010
64
 
65
 
66
 
67
; Define the location(s) of our peripherals,
68
#define sys.base        0xc0000000
69
#struct sys
70
        pic
71
        wdt
72
        cache
73
        ctrpic
74
        tma
75
        tmb
76
        tmc
77
        jiffies
78
        mtask
79
        mstl
80
        mpstl
81
        mastl
82
        utask
83
        ustl
84
        upstl
85
        uastl
86
#endstruct
87
; and their associated interrupt vectors ...
88
#define DMAINT          0x0001
89
#define JIFFYINT        0x0002  ;
90
#define TMCINT          0x0004  ;
91
#define TMBINT          0x0008  ;
92
#define TMAINT          0x0010  ;
93
#define CTRPICINT       0x0020  ; The aux interrupt controller
94
#define RTCINT          0x0080  ;
95
#define FLASHINT        0x0100  ;
96
#define SCOPINT         0x0200  ;
97
#define GPIOINT         0x0400  ;
98
#define PWMINT          0x0800  ;
99
#define RXUARTINT       0x1000  ;
100
#define TXUARTINT       0x2000  ;
101
; Masks to send to enable those same vectors
102
#define ENABLE_INTS     0x80000000
103
#define DMAINTEN        (ENABLE_INTS|(DMAINT<<16))
104
#define JIFFYINTEN      (ENABLE_INTS|(JIFFYINT<<16))
105
#define TMCINTEN        (ENABLE_INTS|(TMCINT<<16))
106
#define TMBINTEN        (ENABLE_INTS|(TMBINT<<16))
107
#define TMAINTEN        (ENABLE_INTS|(TMAINT<<16))
108
#define CTRPICEN        (ENABLE_INTS|(CTRPICINT<<16))
109
#define RTCINTEN        (ENABLE_INTS|(RTCINT<<16))
110
#define FLASHINTEN      (ENABLE_INTS|(FLASHINT<<16))
111
#define SCOPINTEN       (ENABLE_INTS|(SCOPINT<<16))
112
#define GPIOINTEN       (ENABLE_INTS|(GPIOINT<<16))
113
#define PWMINTEN        (ENABLE_INTS|(PWMINT<<16))
114
#define RXUARTINTEN     (ENABLE_INTS|(RXUARTINT<<16))
115
#define TXUARTINTEN     (ENABLE_INTS|(TXUARTINT<<16))
116
; And similar masks to disable them
117
#define DMAINTDIS       (DMAINT<<16)
118
#define JIFFYINTDIS     (JIFFYINT<<16)
119
#define TMCINTDIS       (TMCINT<<16)
120
#define TMBINTDIS       (TMBINT<<16)
121
#define TMAINTDIS       (TMAINT<<16)
122
#define CTRPICDIS       (ENABLE_INTS|(CTRPICINT<<16)
123
#define RTCINTDIS       (RTCINT<<16)
124
#define FLASHINTDIS     (FLASHINT<<16)
125
#define SCOPINTDIS      (SCOPINT<<16)
126
#define GPIOINTDIS      (GPIOINT<<16)
127
#define PWMINTDIS       (PWMINT<<16)
128
#define RXUARTINTDIS    (RXUARTINT<<16)
129
#define TXUARTINTDIS    (TXUARTINT<<16)
130
 
131
; Define our condition code bits
132
#define CCZ     0x001
133
#define CCC     0x002
134
#define CCN     0x004
135
#define CCV     0x008
136
#define CCSLEEP 0x010
137
#define CCGIE   0x020
138
#define CCSTEP  0x040
139
#define CCUBRK  0x080
140
 
141
#define FJSR(LBL,RG)    MOV __here__+2(PC),RG   \
142
                        BRA LBL
143
#define FRET(RG)        JMP     RG

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.