tx39var.h revision 1.2.2.2 1 1.2.2.2 wrstuden /* $NetBSD: tx39var.h,v 1.2.2.2 1999/12/27 18:32:13 wrstuden Exp $ */
2 1.2.2.2 wrstuden
3 1.2.2.2 wrstuden /*
4 1.2.2.2 wrstuden * Copyright (c) 1999, by UCHIYAMA Yasushi
5 1.2.2.2 wrstuden * All rights reserved.
6 1.2.2.2 wrstuden *
7 1.2.2.2 wrstuden * Redistribution and use in source and binary forms, with or without
8 1.2.2.2 wrstuden * modification, are permitted provided that the following conditions
9 1.2.2.2 wrstuden * are met:
10 1.2.2.2 wrstuden * 1. Redistributions of source code must retain the above copyright
11 1.2.2.2 wrstuden * notice, this list of conditions and the following disclaimer.
12 1.2.2.2 wrstuden * 2. The name of the developer may NOT be used to endorse or promote products
13 1.2.2.2 wrstuden * derived from this software without specific prior written permission.
14 1.2.2.2 wrstuden *
15 1.2.2.2 wrstuden * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 1.2.2.2 wrstuden * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 1.2.2.2 wrstuden * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 1.2.2.2 wrstuden * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 1.2.2.2 wrstuden * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 1.2.2.2 wrstuden * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 1.2.2.2 wrstuden * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 1.2.2.2 wrstuden * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 1.2.2.2 wrstuden * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 1.2.2.2 wrstuden * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 1.2.2.2 wrstuden * SUCH DAMAGE.
26 1.2.2.2 wrstuden *
27 1.2.2.2 wrstuden */
28 1.2.2.2 wrstuden #define TX39_PREFER_FUNCTION
29 1.2.2.2 wrstuden struct tx_chipset_tag {
30 1.2.2.2 wrstuden void *tc_intrt; /* interrupt tag */
31 1.2.2.2 wrstuden void *tc_powert; /* power/clock tag */
32 1.2.2.2 wrstuden };
33 1.2.2.2 wrstuden
34 1.2.2.2 wrstuden typedef struct tx_chipset_tag* tx_chipset_tag_t;
35 1.2.2.2 wrstuden typedef u_int32_t txreg_t;
36 1.2.2.2 wrstuden
37 1.2.2.2 wrstuden /*
38 1.2.2.2 wrstuden * TX39 Internal Function Register access
39 1.2.2.2 wrstuden */
40 1.2.2.2 wrstuden #define TX39_SYSADDR_CONFIG_REG_KSEG1 0xb0c00000
41 1.2.2.2 wrstuden #ifdef TX39_PREFER_FUNCTION
42 1.2.2.2 wrstuden tx_chipset_tag_t tx_conf_get_tag __P((void));
43 1.2.2.2 wrstuden u_int32_t tx_conf_read __P((tx_chipset_tag_t, int));
44 1.2.2.2 wrstuden void tx_conf_write __P((tx_chipset_tag_t, int, txreg_t));
45 1.2.2.2 wrstuden #else /* TX39_PREFER_FUNCTION */
46 1.2.2.2 wrstuden extern struct tx_chipset_tag tx_chipset;
47 1.2.2.2 wrstuden #define tx_conf_read(t, reg) ((void)(t), \
48 1.2.2.2 wrstuden (*((txreg_t*)(TX39_SYSADDR_CONFIG_REG_KSEG1 + (reg)))))
49 1.2.2.2 wrstuden #define tx_conf_write(t, reg, val) ((void)(t), \
50 1.2.2.2 wrstuden (*((txreg_t*)(TX39_SYSADDR_CONFIG_REG_KSEG1 + (reg))) = (val)))
51 1.2.2.2 wrstuden #define tx_conf_get_tag() (&tx_chipset)
52 1.2.2.2 wrstuden #endif /* TX39_PREFER_FUNCTION */
53 1.2.2.2 wrstuden
54 1.2.2.2 wrstuden /*
55 1.2.2.2 wrstuden * txsim attach arguments. (txsim ... TX System Internal Module)
56 1.2.2.2 wrstuden */
57 1.2.2.2 wrstuden struct txsimbus_attach_args {
58 1.2.2.2 wrstuden char *tba_busname;
59 1.2.2.2 wrstuden };
60 1.2.2.2 wrstuden
61 1.2.2.2 wrstuden /*
62 1.2.2.2 wrstuden * txsim module attach arguments.
63 1.2.2.2 wrstuden */
64 1.2.2.2 wrstuden struct txsim_attach_args {
65 1.2.2.2 wrstuden tx_chipset_tag_t ta_tc; /* Chipset tag */
66 1.2.2.2 wrstuden };
67 1.2.2.2 wrstuden
68 1.2.2.2 wrstuden /*
69 1.2.2.2 wrstuden * Interrupt staff
70 1.2.2.2 wrstuden */
71 1.2.2.2 wrstuden #define MAKEINTR(s, b) ((s) * 32 + (ffs(b) - 1))
72 1.2.2.2 wrstuden void* tx_intr_establish __P((tx_chipset_tag_t, int, int, int, int (*) __P((void*)), void*));
73 1.2.2.2 wrstuden void tx_intr_disestablish __P((tx_chipset_tag_t, void*));
74 1.2.2.2 wrstuden #ifdef USE_POLL
75 1.2.2.2 wrstuden void* tx39_poll_establish __P((tx_chipset_tag_t, int, int, int, int (*) __P((void*)), void*));
76 1.2.2.2 wrstuden void tx39_poll_disestablish __P((tx_chipset_tag_t, void*));
77 1.2.2.2 wrstuden #endif /* USE_POLL */
78 1.2.2.2 wrstuden void tx_conf_register_intr __P((tx_chipset_tag_t, void*));
79 1.2.2.2 wrstuden
80 1.2.2.2 wrstuden #ifdef TX39_DEBUG
81 1.2.2.2 wrstuden extern u_int32_t tx39debugflag, tx39intrvec;
82 1.2.2.2 wrstuden /*
83 1.2.2.2 wrstuden * Debugging use.
84 1.2.2.2 wrstuden */
85 1.2.2.2 wrstuden #define __bitdisp(a, s, e, m, c) \
86 1.2.2.2 wrstuden ({ \
87 1.2.2.2 wrstuden u_int32_t __j, __j1; \
88 1.2.2.2 wrstuden int __i, __s, __e, __n; \
89 1.2.2.2 wrstuden __n = sizeof(typeof(a)) * NBBY - 1; \
90 1.2.2.2 wrstuden __j1 = 1 << __n; \
91 1.2.2.2 wrstuden __e = e ? e : __n; \
92 1.2.2.2 wrstuden __s = s; \
93 1.2.2.2 wrstuden for (__j = __j1, __i = __n; __j > 0; __j >>=1, __i--) { \
94 1.2.2.2 wrstuden if (__i > __e || __i < __s) { \
95 1.2.2.2 wrstuden printf("%c", a & __j ? '+' : '-'); \
96 1.2.2.2 wrstuden } else { \
97 1.2.2.2 wrstuden printf("%c", a & __j ? '|' : '.'); \
98 1.2.2.2 wrstuden } \
99 1.2.2.2 wrstuden } \
100 1.2.2.2 wrstuden if (m) { \
101 1.2.2.2 wrstuden printf("[%s]", (char*)m); \
102 1.2.2.2 wrstuden } \
103 1.2.2.2 wrstuden if (c) { \
104 1.2.2.2 wrstuden for (__j = __j1, __i = __n; __j > 0; __j >>=1, __i--) { \
105 1.2.2.2 wrstuden if (!(__i > __e || __i < __s) && (a & __j)) { \
106 1.2.2.2 wrstuden printf(" %d", __i); \
107 1.2.2.2 wrstuden } \
108 1.2.2.2 wrstuden } \
109 1.2.2.2 wrstuden } \
110 1.2.2.2 wrstuden printf("\n"); \
111 1.2.2.2 wrstuden })
112 1.2.2.2 wrstuden #define bitdisp(a) __bitdisp(a, 0, 0, 0, 1)
113 1.2.2.2 wrstuden #else /* TX39_DEBUG */
114 1.2.2.2 wrstuden #define __bitdisp(a, s, e, m, c)
115 1.2.2.2 wrstuden #define bitdisp(a)
116 1.2.2.2 wrstuden #endif /* TX39_DEBUG */
117 1.2.2.2 wrstuden
118 1.2.2.2 wrstuden int __is_set_print __P((u_int32_t, int, char*));
119