summaryrefslogtreecommitdiffstats
path: root/arch/mips/cobalt/diagdefs.h
blob: 6bfedbd5aef84a3efa9f4dc0a350ef1e7754a787 (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
172
173
174
175
176
177
/*
 * Filename: diagdefs.h
 * 
 * Description: Some general definitions used by the diagnostics 
 * 
 * Author(s): Timothy Stonis
 * 
 * Copyright 1997, Cobalt Microserver, Inc.
 */

#define KSEG0_Base		0x80000000
#define KSEG1_Base		0xA0000000

// Some useful Galileo registers/base addresses (boot time kseg1 mapping) 
#define kGal_InternalBase	( 0x14000000 | KSEG1_Base ) 
#define kGal_DevBank0Base	( 0x1C000000 | KSEG1_Base )
#define kGal_DevBank1Base 	( 0x1C800000 | KSEG1_Base )

#define kGal_RAS10Lo		0x008
#define kGal_RAS10Hi		0x010
#define kGal_RAS32Lo		0x018
#define kGal_RAS32Hi		0x020

#define kGal_PCIIOLo		0x048
#define kGal_PCIIOHi		0x050

#define kGal_RAS10LoCfg		0x000
#define kGal_RAS10HiCfg		0x03
#define kGal_RAS32LoCfg		0x004
#define kGal_RAS32HiCfg		0x07

#define kGal_PCIIOLoCfg		0x000
#define kGal_PCIIOHiCfg		0x0F


#define kGal_DevBank0PReg	0x45C
#define kGal_DevBank1PReg	0x460
#define kGal_DevBank2PReg	0x464
#define kGal_DevBank3PReg	0x468
#define kGal_DevBankBPReg	0x46C

#define kGal_DRAMCReg		0x448
#define kGal_DRAM0PReg		0x44C
#define kGal_DRAM1PReg		0x450
#define kGal_DRAM2PReg		0x454
#define kGal_DRAM3PReg		0x458

#define kGal_ConfigAddr		0xCF8
#define kGal_ConfigData		0xCFC
#define kGal_PCICfgEn		0x1F // Generate config cycle 
#define kGal_DevNum		0x00 // Technically 0x06, but 0 works too
#define kGal_MasMemEn		0x06
#define kGal_Latency		0x700

#define kGal_RAS01StartReg	0x10
#define kGal_RAS23StartReg	0x14
#define kGal_RAS01SizeReg	0x0C08
#define kGal_RAS23SizeReg	0x0C0C


#define kGal_RAS01Start		0x000
#define kGal_RAS23Start		0x00800000
#define kGal_RAS01Size		0x007FFFFF
#define kGal_RAS23Size		0x007FFFFF


// Paramter information for devices, DRAM, etc
#define	kGal_DevBank0Cfg	0x1446DB33
#define	kGal_DevBank1Cfg	0x144FE667
#define	kGal_DevBankBCfg	0x1446DC43
#define	kGal_DRAMConfig		0x00000300
#define	kGal_DRAM0Config	0x00000010
#define	kGal_DRAM1Config	0x00000010
#define	kGal_DRAM2Config	0x00000010
#define	kGal_DRAM3Config	0x00000010

#define	kGal_DRAM0Hi		0x00000003
#define	kGal_DRAM0Lo		0x00000000
#define	kGal_DRAM1Hi		0x00000007
#define	kGal_DRAM1Lo		0x00000004
#define	kGal_DRAM2Hi		0x0000000B
#define	kGal_DRAM2Lo		0x00000008
#define	kGal_DRAM3Hi		0x0000000F
#define	kGal_DRAM3Lo		0x0000000C

#define kGal_RAS0Lo		0x400
#define kGal_RAS0Hi		0x404
#define kGal_RAS1Lo		0x408
#define kGal_RAS1Hi		0x40C
#define kGal_RAS2Lo		0x410
#define kGal_RAS2Hi		0x414
#define kGal_RAS3Lo		0x418
#define kGal_RAS3Hi		0x41C

// Feedback LED indicators during setup code (reset.S, main.c) 
#define kLED_AllOn	0x0F
#define kLED_FlashTest	0x01
#define kLED_MemTest	0x02
#define kLED_SCCTest	0x03
#define kLED_GalPCI	0x04
#define kLED_EnetTest	0x05
#define kLED_SCSITest	0x06
#define kLED_IOCTest	0x07
#define kLED_Quickdone	0x0A
#define kLED_Exception	0x0B
#define kLED_ProcInit	0x0E
#define kLED_AllOff	0x00

#define kLEDBase	kGal_DevBank0Base

// Some memory related constants 
#define kRAM_Start	(0x00000000 | KSEG0_Base)

#define	kTestPat1	0xA5A5A5A5
#define kTestPat2	0x5A5A5A5A

#define k1Meg_kseg1 	(0x00100000 | KSEG0_Base)
#define k2Meg_kseg1  	(0x00200000 | KSEG0_Base)
#define k4Meg_kseg1  	(0x00400000 | KSEG0_Base)
#define k8Meg_kseg1  	(0x00800000 | KSEG0_Base)
#define k16Meg_kseg1  	(0x01000000 | KSEG0_Base)

#define kInit_SP	k4Meg_kseg1 - 0x100
#define kVectorBase	0x200	
#define kDebugVectors	0x400
#define kMallocCheese	0x80E00000
#define kDecompAddr	0x80700000
#define kCompAddr	0x80500000


// Ethernet definitions
#define	kEnet_VIOBase	( 0x12100000 | KSEG1_Base )
#define	kEnet_PIOBase	0x12100000
#define	kEnet_CSCfg	0x46
#define kEnet_DevNum	0x07
#define kEnet_CSR3	0x18
#define kEnet_CSR15	0x78


#define kEnet_GEPOut	0x080f0000
#define kEnet_GEPOn	0x000f0000


// SCSI definitions
#define	kSCSI_VIOBase	( 0x12200000 | KSEG1_Base )
#define	kSCSI_PIOBase	0x12200000 
#define	kSCSI_CSCfg	0x46 
#define kSCSI_DevNum	0x08
#define kSCSI_GPCNTL	0x47
#define kSCSI_GPREG	0x07
#define kSCSI_SCRTCHA	0x34

#define kSCSI_GPIOOut	0x0C
#define kSCSI_LEDsOn	0x00

// I/O Controller definitions
#define kIOC_VIOBase	( 0x10000000 | KSEG1_Base )
#define kIOC_RIOBase	0x10000000 
#define kIOC_DevNum	0x09
#define kIOC_ISAFunc	0x00
#define kIOC_IDEFunc	0x01
#define kIOC_USBFunc	0x02
#define kIOC_MiscC0	0x44
#define kIOC_IDEEnable	0x40

#define kIOC_PCIIDEOn 	0x02800085
#define kIOC_PriIDEOn	0x0A

// Some PCI Definitions
#define	kPCI_StatCmd	0x04
#define	kPCI_LatCache	0x0C
#define	kPCI_CBIO	0x10
#define	kPCI_CBMEM	0x14

// Random constants
#define kBogoSec	0x0003F940
#define kSCCDelay	0x00000001