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