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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rc203soc/] [sw/] [uClinux/] [drivers/] [net/] [dgrs_bcomm.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1626 jcastillo
/*
2
 * The bios low-memory structure
3
 *
4
 * Some of the variables in here can be used to set parameters that
5
 * are stored in NVRAM and will retain their old values the next time
6
 * the card is brought up.  To use the values stored in NVRAM, the
7
 * parameter should be set to "all ones".  This tells the firmware to
8
 * use the NVRAM value or a suitable default.  The value that is used
9
 * will be stored back into this structure by the firmware.  If the
10
 * value of the variable is not "all ones", then that value will be
11
 * used and will be stored into NVRAM if it isn't already there.
12
 * The variables this applies to are the following:
13
 *      Variable        Set to:         Gets default of:
14
 *      bc_hashexpire   -1              300     (5 minutes)
15
 *      bc_spantree     -1              1       (spanning tree on)
16
 *      bc_ipaddr       FF:FF:FF:FF     0        (no SNMP IP address)
17
 *      bc_ipxnet       FF:FF:FF:FF     0        (no SNMP IPX net)
18
 *      bc_iptrap       FF:FF:FF:FF     0        (no SNMP IP trap address)
19
 *
20
 * Some variables MUST have their value set after the firmware
21
 * is loaded onto the board, but before the processor is released.
22
 * These are:
23
 *      bc_host         0 means no host "port", run as standalone switch.
24
 *                      1 means run as a switch, with a host port. (normal)
25
 *                      2 means run as multiple NICs, not as a switch.
26
 *                      -1 means run in diagnostics mode.
27
 *      bc_nowait
28
 *      bc_hostarea_len
29
 *      bc_filter_len
30
 *
31
 */
32
BEGIN_STRUCT(bios_comm)
33
        S4(ulong, bc_intflag)   /* Count of all interrupts */
34
        S4(ulong, bc_lbolt)     /* Count of timer interrupts */
35
        S4(ulong, bc_maincnt)   /* Count of main loops */
36
        S4(ulong, bc_hashcnt)   /* Count of entries in hash table */
37
        S4A(ulong, bc_cnt, 8)   /* Misc counters, for debugging */
38
        S4A(ulong, bc_flag, 8)  /* Misc flags, for debugging */
39
        S4(ulong, bc_memsize)   /* Size of memory */
40
        S4(ulong, bc_dcache)    /* Size of working dcache */
41
        S4(ulong, bc_icache)    /* Size of working icache */
42
        S4(long, bc_status)     /* Firmware status */
43
        S1A(char, bc_file, 8)   /* File name of assertion failure */
44
        S4(ulong, bc_line)      /* Line # of assertion failure */
45
        S4(uchar *, bc_ramstart)
46
        S4(uchar *, bc_ramend)
47
        S4(uchar *, bc_heapstart) /* Start of heap (end of loaded memory) */
48
        S4(uchar *, bc_heapend) /* End of heap */
49
 
50
        /* Configurable Parameters */
51
        S4(long, bc_host)       /* 1=Host Port, 0=No Host Port, -1=Test Mode */
52
        S4(long, bc_nowait)     /* Don't wait for 2host circ buffer to empty*/
53
        S4(long, bc_150ohm)     /* 0 == 100 ohm UTP, 1 == 150 ohm STP */
54
        S4(long, bc_squelch)    /* 0 == normal squelch, 1 == reduced squelch */
55
        S4(ulong, bc_hashexpire) /* Expiry time in seconds for hash table */
56
        S4(long, bc_spantree)   /* 1 == enable IEEE spanning tree */
57
 
58
        S2A(ushort, bc_eaddr, 3) /* New ether address */
59
        S2(ushort, bc_dummy1)   /* padding for DOS compilers */
60
 
61
        /* Various debugging aids */
62
        S4(long, bc_debug)      /* Debugging is turned on */
63
        S4(long, bc_spew)       /* Spew data on port 4 for bs_spew seconds */
64
        S4(long, bc_spewlen)    /* Length of spewed data packets */
65
        S4(long, bc_maxrfd)     /* If != 0, max number of RFD's to allocate */
66
        S4(long, bc_maxrbd)     /* If != 0, max number of RBD's to allocate */
67
 
68
        /* Circular buffers for messages to/from host */
69
        S4(ulong, bc_2host_head)
70
        S4(ulong, bc_2host_tail)
71
        S4(ulong, bc_2host_mask)
72
        S1A(char, bc_2host, 0x200)      /* Circ buff to host */
73
 
74
        S4(ulong, bc_2idt_head)
75
        S4(ulong, bc_2idt_tail)
76
        S4(ulong, bc_2idt_mask)
77
        S1A(char, bc_2idt, 0x200)       /* Circ buff to idt */
78
 
79
        /* Pointers to structures for driver access */
80
        S4(uchar *, bc_port)    /* pointer to Port[] structures */
81
        S4(long, bc_nports)     /* Number of ports */
82
        S4(long, bc_portlen)    /* sizeof(PORT) */
83
        S4(uchar *, bc_hash)    /* Pointer to hash table */
84
        S4(long, bc_hashlen)    /* sizeof(Table) */
85
 
86
        /* SNMP agent addresses */
87
        S1A(uchar, bc_ipaddr, 4) /* IP address for SNMP */
88
        S1A(uchar, bc_ipxnet, 4) /* IPX net address for SNMP */
89
 
90
        S4(long, bc_nohostintr) /* Do not cause periodic host interrupts */
91
 
92
        S4(uchar *, bc_dmaaddr) /* Physical addr of host DMA buf for diags */
93
        S4(ulong, bc_dmalen)    /* Length of DMA buffer 0..2048 */
94
 
95
        /*
96
         *      Board memory allocated on startup for use by host, usually
97
         *      for the purposes of creating DMA chain descriptors.  The
98
         *      "len" must be set before the processor is released.  The
99
         *      address of the area is returned in bc_hostarea.  The area
100
         *      is guaranteed to be aligned on a 16 byte boundary.
101
         */
102
        S4(ulong, bc_hostarea_len)      /* RW: Number of bytes to allocate */
103
        S4(uchar *, bc_hostarea)        /* RO: Address of allocated memory */
104
 
105
        /*
106
         *      Variables for communicating filters into the board
107
         */
108
        S4(ulong *, bc_filter_area)     /* RO: Space to put filter into */
109
        S4(ulong, bc_filter_area_len)   /* RO: Length of area, in bytes */
110
        S4(long, bc_filter_cmd)         /* RW: Filter command, see below */
111
        S4(ulong, bc_filter_len)        /* RW: Actual length of filter */
112
        S4(ulong, bc_filter_port)       /* RW: Port # for filter 0..6 */
113
        S4(ulong, bc_filter_num)        /* RW: Filter #, 0=input, 1=output */
114
 
115
        /* more SNMP agent addresses */
116
        S1A(uchar, bc_iptrap, 4) /* IP address for SNMP */
117
 
118
        S4A(long, bc_spare, 2)  /* spares */
119
END_STRUCT(bios_comm)
120
 
121
#define bc      VMO(struct bios_comm, 0xa3000100)
122
 
123
/*
124
 *      bc_status values
125
 */
126
#define BC_INIT 0
127
#define BC_RUN  100
128
 
129
/*
130
 *      bc_host values
131
 */
132
#define BC_DIAGS        -1
133
#define BC_SASWITCH     0
134
#define BC_SWITCH       1
135
#define BC_MULTINIC     2
136
 
137
/*
138
 *      Values for spew (debugging)
139
 */
140
#define BC_SPEW_ENABLE  0x80000000
141
 
142
/*
143
 *      filter commands
144
 */
145
#define BC_FILTER_ERR   -1
146
#define BC_FILTER_OK    0
147
#define BC_FILTER_SET   1
148
#define BC_FILTER_CLR   2

powered by: WebSVN 2.1.0

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