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