1 #ifndef _HWRPB_H
2 #define _HWRPB_H
3
4 #define INIT_HWRPB ((struct hwrpb_struct *) 0x10000000)
5
6
7
8
9
10
11 #define EV3_CPU 1
12 #define EV4_CPU 2
13 #define LCA4_CPU 4
14 #define EV5_CPU 5
15 #define EV45_CPU 6
16 #define EV56_CPU 7
17 #define EV6_CPU 8
18
19
20
21
22
23
24 #define ST_ADU 1
25 #define ST_DEC_4000 2
26 #define ST_DEC_7000 3
27 #define ST_DEC_3000_500 4
28 #define ST_DEC_2000_300 6
29 #define ST_DEC_3000_300 7
30 #define ST_DEC_2100_A500 9
31 #define ST_DEC_AXPVME_64 10
32 #define ST_DEC_AXPPCI_33 11
33 #define ST_DEC_TLASER 12
34 #define ST_DEC_2100_A50 13
35 #define ST_DEC_MUSTANG 14
36 #define ST_DEC_ALCOR 15
37 #define ST_DEC_1000 17
38 #define ST_DEC_EB66 19
39 #define ST_DEC_EB64P 20
40 #define ST_DEC_EB66P -19
41 #define ST_DEC_EBPC64 -20
42 #define ST_DEC_EB164 26
43
44 struct pcb_struct {
45 unsigned long ksp;
46 unsigned long usp;
47 unsigned long ptbr;
48 unsigned int pcc;
49 unsigned int asn;
50 unsigned long unique;
51 unsigned long flags;
52 unsigned long res1, res2;
53 };
54
55 struct percpu_struct {
56 unsigned long hwpcb[16];
57 unsigned long flags;
58 unsigned long pal_mem_size;
59 unsigned long pal_scratch_size;
60 unsigned long pal_mem_pa;
61 unsigned long pal_scratch_pa;
62 unsigned long pal_revision;
63 unsigned long type;
64 unsigned long variation;
65 unsigned long revision;
66 unsigned long serial_no[2];
67 unsigned long logout_area_pa;
68 unsigned long logout_area_len;
69 unsigned long halt_PCBB;
70 unsigned long halt_PC;
71 unsigned long halt_PS;
72 unsigned long halt_arg;
73 unsigned long halt_ra;
74 unsigned long halt_pv;
75 unsigned long halt_reason;
76 unsigned long res;
77 unsigned long ipc_buffer[21];
78 unsigned long palcode_avail[16];
79 unsigned long compatibility;
80 };
81
82 struct procdesc_struct {
83 unsigned long weird_vms_stuff;
84 unsigned long address;
85 };
86
87 struct vf_map_struct {
88 unsigned long va;
89 unsigned long pa;
90 unsigned long count;
91 };
92
93 struct crb_struct {
94 struct procdesc_struct * dispatch_va;
95 struct procdesc_struct * dispatch_pa;
96 struct procdesc_struct * fixup_va;
97 struct procdesc_struct * fixup_pa;
98
99 unsigned long map_entries;
100 unsigned long map_pages;
101 struct vf_map_struct map[1];
102 };
103
104 struct memclust_struct {
105 unsigned long start_pfn;
106 unsigned long numpages;
107 unsigned long numtested;
108 unsigned long bitmap_va;
109 unsigned long bitmap_pa;
110 unsigned long bitmap_chksum;
111 unsigned long usage;
112 };
113
114 struct memdesc_struct {
115 unsigned long chksum;
116 unsigned long optional_pa;
117 unsigned long numclusters;
118 struct memclust_struct cluster[0];
119 };
120
121 struct hwrpb_struct {
122 unsigned long phys_addr;
123 unsigned long id;
124 unsigned long revision;
125 unsigned long size;
126 unsigned long cpuid;
127 unsigned long pagesize;
128 unsigned long pa_bits;
129 unsigned long max_asn;
130 unsigned char ssn[16];
131 unsigned long sys_type;
132 unsigned long sys_variation;
133 unsigned long sys_revision;
134 unsigned long intr_freq;
135 unsigned long cycle_freq;
136 unsigned long vptb;
137 unsigned long res1;
138 unsigned long tbhb_offset;
139 unsigned long nr_processors;
140 unsigned long processor_size;
141 unsigned long processor_offset;
142 unsigned long ctb_nr;
143 unsigned long ctb_size;
144 unsigned long ctbt_offset;
145 unsigned long crb_offset;
146 unsigned long mddt_offset;
147 unsigned long cdb_offset;
148 unsigned long frut_offset;
149 void (*save_terminal)(unsigned long);
150 unsigned long save_terminal_data;
151 void (*restore_terminal)(unsigned long);
152 unsigned long restore_terminal_data;
153 void (*CPU_restart)(unsigned long);
154 unsigned long CPU_restart_data;
155 unsigned long res2;
156 unsigned long res3;
157 unsigned long chksum;
158 unsigned long rxrdy;
159 unsigned long txrdy;
160 unsigned long dsrdbt_offset;
161 };
162
163 #endif