OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-ia64/] [sn/] [sn2/] [sn_private.h] - Blame information for rev 1774

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/* $Id: sn_private.h,v 1.1.1.1 2004-04-15 02:44:07 phoenix Exp $
2
 *
3
 * This file is subject to the terms and conditions of the GNU General Public
4
 * License.  See the file "COPYING" in the main directory of this archive
5
 * for more details.
6
 *
7
 * Copyright (C) 1992 - 1997, 2000-2003 Silicon Graphics, Inc. All rights reserved.
8
 */
9
#ifndef _ASM_IA64_SN_SN2_SN_PRIVATE_H
10
#define _ASM_IA64_SN_SN2_SN_PRIVATE_H
11
 
12
#include <asm/sn/nodepda.h>
13
#include <asm/sn/io.h>
14
#include <asm/sn/xtalk/xwidget.h>
15
#include <asm/sn/xtalk/xtalk_private.h>
16
 
17
extern nasid_t master_nasid;
18
 
19
/* promif.c */
20
extern void he_arcs_set_vectors(void);
21
extern void mem_init(void);
22
extern void cpu_unenable(cpuid_t);
23
extern nasid_t get_lowest_nasid(void);
24
extern __psunsigned_t get_master_bridge_base(void);
25
extern void set_master_bridge_base(void);
26
extern int check_nasid_equiv(nasid_t, nasid_t);
27
extern char get_console_pcislot(void);
28
 
29
extern int is_master_baseio_nasid_widget(nasid_t test_nasid, xwidgetnum_t test_wid);
30
 
31
/* memsupport.c */
32
extern void poison_state_alter_range(__psunsigned_t start, int len, int poison);
33
extern int memory_present(paddr_t);
34
extern int memory_read_accessible(paddr_t);
35
extern int memory_write_accessible(paddr_t);
36
extern void memory_set_access(paddr_t, int, int);
37
extern void show_dir_state(paddr_t, void (*)(char *, ...));
38
extern void check_dir_state(nasid_t, int, void (*)(char *, ...));
39
extern void set_dir_owner(paddr_t, int);
40
extern void set_dir_state(paddr_t, int);
41
extern void set_dir_state_POISONED(paddr_t);
42
extern void set_dir_state_UNOWNED(paddr_t);
43
extern int is_POISONED_dir_state(paddr_t);
44
extern int is_UNOWNED_dir_state(paddr_t);
45
#ifdef LATER
46
extern void get_dir_ent(paddr_t paddr, int *state,
47
                        uint64_t *vec_ptr, hubreg_t *elo);
48
#endif
49
 
50
/* intr.c */
51
extern int intr_reserve_level(cpuid_t cpu, int level, int err, vertex_hdl_t owner_dev, char *name);
52
extern void intr_unreserve_level(cpuid_t cpu, int level);
53
extern int intr_connect_level(cpuid_t cpu, int bit, ilvl_t mask_no,
54
                        intr_func_t intr_prefunc);
55
extern int intr_disconnect_level(cpuid_t cpu, int bit);
56
extern cpuid_t intr_heuristic(vertex_hdl_t dev, device_desc_t dev_desc,
57
                              int req_bit,int intr_resflags,vertex_hdl_t owner_dev,
58
                              char *intr_name,int *resp_bit);
59
extern void intr_block_bit(cpuid_t cpu, int bit);
60
extern void intr_unblock_bit(cpuid_t cpu, int bit);
61
extern void setrtvector(intr_func_t);
62
extern void install_cpuintr(cpuid_t cpu);
63
extern void install_dbgintr(cpuid_t cpu);
64
extern void install_tlbintr(cpuid_t cpu);
65
extern void hub_migrintr_init(cnodeid_t /*cnode*/);
66
extern int cause_intr_connect(int level, intr_func_t handler, uint intr_spl_mask);
67
extern int cause_intr_disconnect(int level);
68
extern void intr_dumpvec(cnodeid_t cnode, void (*pf)(char *, ...));
69
 
70
/* error_dump.c */
71
extern char *hub_rrb_err_type[];
72
extern char *hub_wrb_err_type[];
73
 
74
void nmi_dump(void);
75
void install_cpu_nmi_handler(int slice);
76
 
77
/* klclock.c */
78
extern void hub_rtc_init(cnodeid_t);
79
 
80
/* bte.c */
81
void bte_lateinit(void);
82
void bte_wait_for_xfer_completion(void *);
83
 
84
/* klgraph.c */
85
void klhwg_add_all_nodes(vertex_hdl_t);
86
void klhwg_add_all_modules(vertex_hdl_t);
87
 
88
/* klidbg.c */
89
void install_klidbg_functions(void);
90
 
91
/* klnuma.c */
92
extern void replicate_kernel_text(int numnodes);
93
extern __psunsigned_t get_freemem_start(cnodeid_t cnode);
94
extern void setup_replication_mask(int maxnodes);
95
 
96
/* init.c */
97
extern cnodeid_t get_compact_nodeid(void);      /* get compact node id */
98
extern void init_platform_nodepda(nodepda_t *npda, cnodeid_t node);
99
extern void per_cpu_init(void);
100
extern int is_fine_dirmode(void);
101
extern void update_node_information(cnodeid_t);
102
 
103
/* shubio.c */
104
extern void hubio_init(void);
105
extern void hub_merge_clean(nasid_t nasid);
106
extern void hub_set_piomode(nasid_t nasid, int conveyor);
107
 
108
/* shuberror.c */
109
extern void hub_error_init(cnodeid_t);
110
extern void dump_error_spool(cpuid_t cpu, void (*pf)(char *, ...));
111
extern void hubni_error_handler(char *, int);
112
extern int check_ni_errors(void);
113
 
114
/* Used for debugger to signal upper software a breakpoint has taken place */
115
 
116
extern void             *debugger_update;
117
extern __psunsigned_t   debugger_stopped;
118
 
119
/*
120
 * piomap, created by shub_pio_alloc.
121
 * xtalk_info MUST BE FIRST, since this structure is cast to a
122
 * xtalk_piomap_s by generic xtalk routines.
123
 */
124
struct hub_piomap_s {
125
        struct xtalk_piomap_s   hpio_xtalk_info;/* standard crosstalk pio info */
126
        vertex_hdl_t            hpio_hub;       /* which shub's mapping registers are set up */
127
        short                   hpio_holdcnt;   /* count of current users of bigwin mapping */
128
        char                    hpio_bigwin_num;/* if big window map, which one */
129
        int                     hpio_flags;     /* defined below */
130
};
131
/* hub_piomap flags */
132
#define HUB_PIOMAP_IS_VALID             0x1
133
#define HUB_PIOMAP_IS_BIGWINDOW         0x2
134
#define HUB_PIOMAP_IS_FIXED             0x4
135
 
136
#define hub_piomap_xt_piomap(hp)        (&hp->hpio_xtalk_info)
137
#define hub_piomap_hub_v(hp)    (hp->hpio_hub)
138
#define hub_piomap_winnum(hp)   (hp->hpio_bigwin_num)
139
 
140
/*
141
 * dmamap, created by shub_pio_alloc.
142
 * xtalk_info MUST BE FIRST, since this structure is cast to a
143
 * xtalk_dmamap_s by generic xtalk routines.
144
 */
145
struct hub_dmamap_s {
146
        struct xtalk_dmamap_s   hdma_xtalk_info;/* standard crosstalk dma info */
147
        vertex_hdl_t            hdma_hub;       /* which shub we go through */
148
        int                     hdma_flags;     /* defined below */
149
};
150
/* shub_dmamap flags */
151
#define HUB_DMAMAP_IS_VALID             0x1
152
#define HUB_DMAMAP_USED                 0x2
153
#define HUB_DMAMAP_IS_FIXED             0x4
154
 
155
/*
156
 * interrupt handle, created by shub_intr_alloc.
157
 * xtalk_info MUST BE FIRST, since this structure is cast to a
158
 * xtalk_intr_s by generic xtalk routines.
159
 */
160
struct hub_intr_s {
161
        struct xtalk_intr_s     i_xtalk_info;   /* standard crosstalk intr info */
162
        ilvl_t                  i_swlevel;      /* software level for blocking intr */
163
        cpuid_t                 i_cpuid;        /* which cpu */
164
        int                     i_bit;          /* which bit */
165
        int                     i_flags;
166
};
167
/* flag values */
168
#define HUB_INTR_IS_ALLOCED     0x1     /* for debug: allocated */
169
#define HUB_INTR_IS_CONNECTED   0x4     /* for debug: connected to a software driver */
170
 
171
typedef struct hubinfo_s {
172
        nodepda_t                       *h_nodepda;     /* pointer to node's private data area */
173
        cnodeid_t                       h_cnodeid;      /* compact nodeid */
174
        nasid_t                         h_nasid;        /* nasid */
175
 
176
        /* structures for PIO management */
177
        xwidgetnum_t                    h_widgetid;     /* my widget # (as viewed from xbow) */
178
        struct hub_piomap_s             h_small_window_piomap[HUB_WIDGET_ID_MAX+1];
179
        sv_t                            h_bwwait;       /* wait for big window to free */
180
        spinlock_t                      h_bwlock;       /* guard big window piomap's */
181
        spinlock_t                      h_crblock;      /* gaurd CRB error handling */
182
        int                             h_num_big_window_fixed; /* count number of FIXED maps */
183
        struct hub_piomap_s             h_big_window_piomap[HUB_NUM_BIG_WINDOW];
184
        hub_intr_t                      hub_ii_errintr;
185
} *hubinfo_t;
186
 
187
#define hubinfo_get(vhdl, infoptr) ((void)hwgraph_info_get_LBL \
188
        (vhdl, INFO_LBL_NODE_INFO, (arbitrary_info_t *)infoptr))
189
 
190
#define hubinfo_set(vhdl, infoptr) (void)hwgraph_info_add_LBL \
191
        (vhdl, INFO_LBL_NODE_INFO, (arbitrary_info_t)infoptr)
192
 
193
#define hubinfo_to_hubv(hinfo, hub_v)   (hinfo->h_nodepda->node_vertex)
194
 
195
/*
196
 * Hub info PIO map access functions.
197
 */
198
#define hubinfo_bwin_piomap_get(hinfo, win)     \
199
                        (&hinfo->h_big_window_piomap[win])
200
#define hubinfo_swin_piomap_get(hinfo, win)     \
201
                        (&hinfo->h_small_window_piomap[win])
202
 
203
/* cpu-specific information stored under INFO_LBL_CPU_INFO */
204
typedef struct cpuinfo_s {
205
        cpuid_t         ci_cpuid;       /* CPU ID */
206
} *cpuinfo_t;
207
 
208
#define cpuinfo_get(vhdl, infoptr) ((void)hwgraph_info_get_LBL \
209
        (vhdl, INFO_LBL_CPU_INFO, (arbitrary_info_t *)infoptr))
210
 
211
#define cpuinfo_set(vhdl, infoptr) (void)hwgraph_info_add_LBL \
212
        (vhdl, INFO_LBL_CPU_INFO, (arbitrary_info_t)infoptr)
213
 
214
/* Special initialization function for xswitch vertices created during startup. */
215
extern void xswitch_vertex_init(vertex_hdl_t xswitch);
216
 
217
extern xtalk_provider_t hub_provider;
218
 
219
/* du.c */
220
int ducons_write(char *buf, int len);
221
 
222
/* memerror.c */
223
 
224
extern void install_eccintr(cpuid_t cpu);
225
extern void memerror_get_stats(cnodeid_t cnode,
226
                               int *bank_stats, int *bank_stats_max);
227
extern void probe_md_errors(nasid_t);
228
/* sysctlr.c */
229
extern void sysctlr_init(void);
230
extern void sysctlr_power_off(int sdonly);
231
extern void sysctlr_keepalive(void);
232
 
233
#define valid_cpuid(_x)         (((_x) >= 0) && ((_x) < maxcpus))
234
 
235
/* Useful definitions to get the memory dimm given a physical
236
 * address.
237
 */
238
#define paddr_dimm(_pa)         ((_pa & MD_BANK_MASK) >> MD_BANK_SHFT)
239
#define paddr_cnode(_pa)        (NASID_TO_COMPACT_NODEID(NASID_GET(_pa)))
240
extern void membank_pathname_get(paddr_t,char *);
241
 
242
/* To redirect the output into the error buffer */
243
#define errbuf_print(_s)        printf("#%s",_s)
244
 
245
extern void crbx(nasid_t nasid, void (*pf)(char *, ...));
246
void bootstrap(void);
247
 
248
/* sndrv.c */
249
extern int sndrv_attach(vertex_hdl_t vertex);
250
 
251
#endif /* _ASM_IA64_SN_SN2_SN_PRIVATE_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.