blob: 7a8d9d9cca7746810b33e970a1a7a35b7b503d9c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
/* $Id: tlaserreg.h,v 1.3 2002/10/27 14:28:17 binkertn Exp $ */
/*
* Copyright (C) 1998 by the Board of Trustees
* of Leland Stanford Junior University.
* Copyright (C) 1998 Digital Equipment Corporation
*
* This file is part of the SimOS distribution.
* See LICENSE file for terms of the license.
*
*/
#ifndef __TLASERREG_H__
#define __TLASERREG_H__
///////////////////////////////////////////////////////////////////////
//
// This file is also included to build the palcode
//
// Common module defines
#define TLDEV_REG 0x00
#define TLBER_REG 0x40
#define TLCNR_REG 0x80
#define TLFADR0_REG 0x600
#define TLFADR1_REG 0x640
#define TLESR0_REG 0x680
#define TLESR1_REG 0x6c0
#define TLESR2_REG 0x700
#define TLESR3_REG 0x740
// I/O Module defines
#define TLMMR0_REG 0x200
#define TLMMR1_REG 0x240
#define TLMMR2_REG 0x280
#define TLMMR3_REG 0x2c0
#define TLMMR4_REG 0x300
#define TLMMR5_REG 0x340
#define TLMMR6_REG 0x380
#define TLMMR7_REG 0x3c0
#define TLCPUMASK_REG 0x0b00
#define TLILID0_REG 0xa00
#define TLILID1_REG 0xa40
#define TLILID2_REG 0xa80
#define TLILID3_REG 0xac0
#define TLMBPR_REG 0xc00
#define ICCMSR_REG 0x2000
#define ICCMTR_REG 0x20c0
#define ICCWTR_REG 0x2100
#define ICCNSE_REG 0x2040
#define IDPNSE0_REG 0x2a40
#define IDPNSE1_REG 0x2140
#define IDPNSE2_REG 0x2240
#define IDPNSE3_REG 0x2340
#define IDPVR_REG 0x2b40
#define IDPDR0_REG 0x2a80
#define IDPDR1_REG 0x2180
#define IDPDR2_REG 0x2280
#define IDPDR3_REG 0x2380
// CPU Module defines
#define CPU0_OFFSET 0x0000
#define CPU1_OFFSET 0x0040
#define TLVID_REG 0x00c0
#define TLDIAG_REG 0x1000
#define TLMODCONFIG_REG 0x10c0
#define TLINTRMASK0_REG 0x1100
#define TLINTRMASK1_REG 0x1140
#define TLINTRSUM0_REG 0x1180
#define TLINTRSUM1_REG 0x11c0
#define TLEPAERR_REG 0x1500
#define TLEPDERR_REG 0x1540
#define TLEPMERR_REG 0x1580
#define TLEP_VMG_REG 0x15c0
#define TLEPWERR_REG 0x1600
// Memory Module defines
#define MCR_REG 0x1880
#define MIR_REG 0x1840
#define MDRA_REG 0x1980
#define MER_REG 0x1940
#define DDR0_REG 0x10140
#define DDR1_REG 0x14140
#define DDR2_REG 0x18140
#define DDR3_REG 0x1c140
// Broadcast defines
#define BROADCAST_NODE 0x18
#define TLIPINTR_REG 0x40
// GBUS defines
#define GBUS_BASE ULL(0xfffffcff90000000)
#define GBUS_BIT_SHIFT 0x06
#define FLASH_BASE 0x07000000
#define UART_BASE 0x10000000
#define WATCH_CSR_BASE 0x20000000
#define WHATAMI_REG 0x30000000
#define MISCR_REG 0x34000000
#define SERNUM_REG 0x37000000
// RTC defines
#define RTC_SECOND 0 // second of minute [0..59]
#define RTC_SECOND_ALARM 1 // seconds to alarm
#define RTC_MINUTE 2 // minute of hour [0..59]
#define RTC_MINUTE_ALARM 3 // minutes to alarm
#define RTC_HOUR 4 // hour of day [0..23]
#define RTC_HOUR_ALARM 5 // hours to alarm
#define RTC_DAY_OF_WEEK 6 // day of week [1..7]
#define RTC_DAY_OF_MONTH 7 // day of month [1..31]
#define RTC_MONTH 8 // month of year [1..12]
#define RTC_YEAR 9 // year [00..99]
#define RTC_CONTROL_REGISTERA 10 // control register A
#define RTC_CONTROL_REGISTERB 11 // control register B
#define RTC_CONTROL_REGISTERC 12 // control register C
#define RTC_CONTROL_REGISTERD 13 // control register D
#define RTC_REGNUMBER_RTC_CR1 0x6A // control register 1
// Other defines
#define DEVICE_TYPE_TIOP 0x2000
#define DEVICE_TYPE_MEM 0x4000
#define DEVICE_TYPE_CPU 0x8000
///////////////////////////////////////////////////////////////////////
//
// litterals used in the platform_tlaser.s file.
//
// -DBUILD_PALCODE is only defined then. The compilation does include
// this file from the simulation source tree.
//
// It is NOT an obsolete compilation option
//
#ifdef BUILD_PALCODE
#define tlep_lintrsum0_offset 0x1180
#define tlep_lintrsum1_offset 0x11c0
#define tlep_tlintrsum0_offset tlep_lintrsum0_offset
#define tlep_tlintrsum1_offset tlep_lintrsum1_offset
#define tlep_watch_csrc_offset (RTC_CONTROL_REGISTERC <<GBUS_BIT_SHIFT)
#define tlsb_tlber TLBER_REG
#define tlsb_tlber_offset tlsb_tlber /* ??? */
#define tlsb_tldev TLDEV_REG
#define tlsb_tlesr0 TLESR0_REG
#define tlsb_tlesr1 TLESR1_REG
#define tlsb_tlesr2 TLESR2_REG
#define tlsb_tlesr3 TLESR3_REG
#define tlsb_tlilid0_offset TLILID0_REG
#define tlsb_tlilid1_offset TLILID1_REG
#define tlsb_tlilid2_offset TLILID2_REG
#define tlsb_tlilid3_offset TLILID3_REG
#define TLSB_TLIPINTR_OFFSET TLIPINTR_REG
#endif // BUILD_PALCODE
///////////////////////////////////////////////////////////////////////
//
// Codes used to probe/clear the TLINTRSUM register
//
#define TLASER_INTRSUM_UART 1 // uart
#define TLASER_INTRSUM_IPI 0x20 // IPI
#define TLASER_INTRSUM_INTIM 0x40 // clock
#endif // __TLASERREG_H__
|