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