summaryrefslogtreecommitdiff
path: root/ace/sys_conf.h
blob: cbf778030bf7031bcebb58d670b321cab85a15e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
/* ============================================================================ */
/*                                                                              */
/* -*- C++ -*-                                                                  */
/* $Id$                       */
/*                                                                              */
/* ============================================================================ */
/*                                                                              */
/* = LIBRARY                                                                    */
/*    ace                                                                       */
/*                                                                              */
/* = FILENAM                                                                    */
/*    sys_conf.h  (definitions for pSOSim and pSOSystem configuration)          */
/*                                                                              */
/* = AUTHOR                                                                     */
/*    Chris Gill                                                                */
/*                                                                              */
/* ============================================================================ */

#ifndef _SYS_CONF_H
#define _SYS_CONF_H

#if defined(__cplusplus)
extern "C" {
#endif

/***********************************************************************/
/*                                                                     */
/*  These symbols are used to define other symbols in this file.       */
/*  They should never be changed.                                      */
/*                                                                     */
/***********************************************************************/
#define YES     1
#define NO      0

#define USE_RARP 0

#define DBG_SA    1  /* Standalone pROBE debugging */
#define DBG_XS    2  /* XRAY+ via RS-232 */
#define DBG_XN    3  /* XRAY+ via network */
#define DBG_AP    4  /* Run application (w/ pROBE in standalone mode) */

#define STORAGE   5  /* Get SD_'s from storage area */
#define SYS_CONF  6  /* Get SD_'s from #defines set in this file */


/***********************************************************************/
/*                                                                     */
/*                 B A S I C   P A R A M E T E R S                     */
/*                                                                     */
/*  The parameters in this section determine the fashion in which      */
/*  many of the other parameters in this file will be used.            */
/*                                                                     */
/*  Many of the parameters in this file have names beginning with      */
/*  either "SC_" or "SD_".  Those beginning with "SC_" are ALWAYS      */
/*  controlled by the values you set in this file.  The values of      */
/*  the "SD_" parameters can be determined either by the definitions   */
/*  given in this file, or by the data found in the target board's     */
/*  parameter storage area.  SC_SD_PARAMETERS determines this.  If     */
/*  SC_SD_PARAMETERS is "SYS_CONF", then the values given in this      */
/*  file will be used for the SD_ parameters.  If SC_SD_PARAMETERS     */
/*  is "STORAGE", then pSOSystem will attempt to use the values found  */
/*  in the board's parameter storage area for the SD_ variables.  If   */
/*  the parameter storage area has not been initialized or has been    */
/*  corrupted, then the values given in this file will be used.  They  */
/*  will also be written to the storage area.                          */
/*                                                                     */
/*  If SC_SD_PARAMETERS is STORAGE, you may enable a "startup dialog"  */
/*  which will allow you to view, and optionally change, the           */
/*  parameter values found in the storage area.  The dialog is enabled */
/*  by setting SC_STARTUP_DIALOG to YES.  In this case,                */
/*  SD_STARTUP_DELAY specifies the number of seconds that the dialog   */
/*  will wait for input before proceeding to boot the system.          */
/*                                                                     */
/*  SE_DEBUG_MODE determines how the system will operate, as follows:  */
/*                                                                     */
/*     DBG_SA: Boot pROBE+ in standalone mode.                         */
/*                                                                     */
/*     DBG_XS: Boot into pROBE+ and wait for the host debugger (XRAY+) */
/*             via a serial connection                                 */
/*                                                                     */
/*     DBG_XN: Boot into pROBE+ and wait for the host debugger (XRAY+) */
/*             via a network connection                                */
/*                                                                     */
/*     STORAGE: Use the mode (DBG_SA, DBG_XS, or DBG_XN) found in the  */
/*              parameter storage area.  If a valid mode is not found, */
/*              then use DBG_SA.                                       */
/*                                                                     */
/***********************************************************************/
#define SC_SD_PARAMETERS    STORAGE
#define SC_STARTUP_DIALOG   NO
#define SD_STARTUP_DELAY    60
#define SE_DEBUG_MODE       STORAGE

/***********************************************************************/
/*                                                                     */
/*        O P E R A T I N G   S Y S T E M   C O M P O N E N T S        */
/*                                                                     */
/*  Setting the definition line to YES will cause that component to    */
/*  be built into the system.  NO means the component will NOT be      */
/*  put into the system.  It is an error to specify both SC_PSOS       */
/*  and SC_PSOSM as present!                                           */
/*                                                                     */
/***********************************************************************/
#define SC_PSOS             YES  /* pSOS+ real-time kernel */
#define SC_PSOSM            NO   /* pSOS+ real-time multiprocessing kernel */
#define SC_PROBE            YES   /* pROBE+ system-level debugger */
#define SC_PHILE            NO   /* pHILE+ file system manager */
#define SC_PREPC            YES  /* pREPC+ C run-time library */
#define SC_PNA              YES   /* pNA+ TCP/IP networking manager */
#define SC_PRPC             NO   /* pRPC+ RPC component */
#define SC_PX               NO   /* pX+ X-windows client */
#define SC_PSE              NO   /* pSE+ STREAMS component */
#define SC_PTLI             NO   /* pTLI TLI component */


/***********************************************************************/
/*                                                                     */
/*      S E R I A L   C H A N N E L   C O N F I G U R A T I O N        */
/*                                                                     */
/*  * SC_DEF_BAUD specifies the default baud rate to be used for       */
/*    the serial channels                                              */
/*  * SC_APP_CONSOLE specifies the serial channel number (starting     */
/*    from 1) which should be used for the application's "console".    */
/*  * SC_PROBE_CONSOLE specifies the serial channel number (starting   */
/*    from 1) which pROBE+ should use to display output and receive    */
/*    commands, or to communicate with XRAY+ over.                     */
/*  * SC_PROBE_HOST specifies the serial channel number (starting      */
/*    from 1) which should be used for the pROBE+ "host" channel.      */
/*    This is not normally required, so it can be disabled by          */
/*    using a value of 0.  The host channel is explained in the        */
/*    pROBE+ User's Manual.                                            */
/*                                                                     */
/***********************************************************************/
#define SD_DEF_BAUD           9600
#define SC_APP_CONSOLE        1
#define SC_PROBE_CONSOLE      1
#define SC_PROBE_HOST         0


/***********************************************************************/
/*                                                                     */
/*              L A N   C O N F I G U R A T I O N                      */
/*                                                                     */
/*                                                                     */
/***********************************************************************/
#define SD_LAN1               YES
#define SD_LAN1_IP            0x80FCA58C
#define SD_LAN1_SUBNET_MASK   0
#define SC_LAN1_BUFFS         40

/***********************************************************************/
/*                                                                     */
/*      S H A R E D   M E M O R Y   C O N F I G U R A T I O N          */
/*                                                                     */
/*                                                                     */
/***********************************************************************/
/*---------------------------------------------------------------------*/
/* If you want to build a Shared Memory Interface for the network or   */
/* multi-processing pSOS+m, set SD_SM_NODE (a non-zero value) to the   */
/* node number of THIS node.                                           */
/*---------------------------------------------------------------------*/
#define SD_SM_NODE            0

/*---------------------------------------------------------------------*/
/* Shared memory network interface                                     */
/*---------------------------------------------------------------------*/
#define SD_NISM               NO
#define SD_NISM_IP            0x00000000
#define SD_NISM_DIRADDR       0x300000
#define SC_NISM_BUFFS         30
#define SC_NISM_LEVEL         2
#define SD_NISM_SUBNET_MASK   0


/*---------------------------------------------------------------------*/
/* If you want to build a multi-node pSOS+m system, set SD_KISM        */
/* to the number of nodes in the system.                               */
/*---------------------------------------------------------------------*/
#define SD_KISM               NO
#define SD_KISM_DIRADDR       0x1000400


/***********************************************************************/
/*                                                                     */
/*         M I S C E L L A N E O U S   N E T W O R K I N G             */
/*                       P A R A M E T E R S                           */
/*                                                                     */
/***********************************************************************/
#define SD_DEF_GTWY_IP        0


/***********************************************************************/
/*                                                                     */
/*                B U S   C O N F I G U R A T I O N                    */
/*                                                                     */
/*                                                                     */
/***********************************************************************/
#define SD_VME_BASE_ADDR      0x01000000


/***********************************************************************/
/* SC_RAM_SIZE                                                         */
/*                                                                     */
/* Normally, pSOSystem uses ALL of the memory remaining on a board     */
/* for dynamic allocation ("region 0").  You may override this by      */
/* setting SC_RAM_SIZE to a non-zero value.  If you do, pSOSystem will */
/* not touch any memory after address (BSP_RAM_BASE + SC_RAM_SIZE - 1).*/
/*                                                                     */
/* NOTE: This is usefull when the building a BOOT ROM you and want to  */
/* make sure it does not "over flow" into the space you are putting    */
/* the download code.                                                  */
/***********************************************************************/
#define SC_RAM_SIZE           0x800000

/***********************************************************************/
/*                                                                     */
/*                     I / O   D E V I C E S                           */
/*                                                                     */
/*  Each device may be included in the system by specifying a major    */
/*  number for it, which determines its slot in the pSOS+ I/O switch   */
/*  table.  To leave a device driver out of the system, use NO for     */
/*  the major number.                                                  */
/*                                                                     */
/*  Note the following:                                                */
/*    * Major device 0 is reserved and cannot be used for any of these */
/*      devices.  Setting a device number to 0 here is the same as NO. */
/*    * No device number may be higher than SC_DEVMAX (SC_DEVMAX may   */
/*      be increased, if desired)                                      */
/*    * The lines defining the symbols DEV_SERIAL, DEV_TIMER, etc,     */
/*      should not be changed.  These are for use by application       */
/*      programs as the "device number" parameter on de_* calls.       */
/*                                                                     */
/***********************************************************************/
#define SC_DEV_SERIAL      1            /* Serial driver */
#define SC_DEV_TIMER       2            /* Periodic tick timer */
#define SC_DEV_RAMDISK     NO           /* RAM disk */
#define SC_DEV_TFTP        NO           /* TFTP pseudo driver */
#define SC_DEV_SCSI        NO           /* SCSI bus */
#define SC_DEV_DLPI        NO
#define SC_DEVMAX          6            /* Maximum device number */

#define DEV_SERIAL    (SC_DEV_SERIAL << 16)
#define DEV_TIMER     (SC_DEV_TIMER << 16)
#define DEV_RAMDISK   (SC_DEV_RAMDISK << 16)
#define DEV_SCSI      (SC_DEV_SCSI << 16)
#define DEV_TFTP      (SC_DEV_TFTP << 16)
#define DEV_DLPI      (SC_DEV_DLPI << 16)

/***********************************************************************/
/*                                                                     */
/* C O M P O N E N T   C O N F I G U R A T I O N   P A R A M E T E R S */
/*                                                                     */
/*  These parameters should work as is for this application.  You      */
/*  may want to change some of them if you start customizing this      */
/*  application.                                                       */
/*                                                                     */
/***********************************************************************/

/*---------------------------------------------------------------------*/
/* pSOS+ configuration parameters                                      */
/*---------------------------------------------------------------------*/
#define KC_RN0USIZE    0x100    /* region 0 unit size */
#define KC_NTASK       12       /* max number of tasks */
#define KC_NQUEUE      10       /* max number of message queues */
#define KC_NSEMA4      30       /* max number of semaphores */
#define KC_NMSGBUF     100      /* max number of message buffers */
#define KC_NTIMER      10       /* max number of timers */
#define KC_NLOCOBJ     50       /* max number of local objects */

/* note: because pSOSim *simulates* a realtime clock, this value is set     */
/*       very low to avoid crazy skew between the simulated and real worlds */
#define KC_TICKS2SEC   1000000  /* clock tick interrupt frequency */

#define KC_TICKS2SLICE 10       /* time slice quantum, in ticks */
#define KC_SYSSTK      0xFFFF   /* pSOS+ system stack size (bytes) */
#define KC_ROOTSSTK    0xFFFF   /* ROOT supervisor stack size */
#define KC_ROOTUSTK    0        /* ROOT user stack size */
#define KC_ROOTMODE    0x2000   /* ROOT initial mode */
#define KC_STARTCO     0        /* callout at task activation */
#define KC_DELETECO    0        /* callout at task deletion */
#define KC_SWITCHCO    0        /* callout at task switch */
#define KC_FATAL       0        /* fatal error handler address */


/*---------------------------------------------------------------------*/
/* pSOS+m configuration parameters                                     */
/*---------------------------------------------------------------------*/

#define MC_NGLBOBJ      8       /* sizeof global obj table in each node*/
#define MC_NAGENT      10       /* number of RPC agents in this node */
#define MC_FLAGS        0       /* operating mode flags */
#define MC_ROSTER       0       /* addr of user roster change callout */
#define MC_KIMAXBUF   100       /* maximum KI packet buffer length */
#define MC_ASYNCERR     0       /* asynchronous calls error callout */

/*---------------------------------------------------------------------*/
/* pROBE+ configuration parameters                                     */
/*---------------------------------------------------------------------*/
#define RC_BRKOPC      0x4E40   /* Instruction break opcode */
#define RC_ILEVEL      MAX_ILEV /* pROBE+ interrupt mask */
#define RC_SMODE       0        /* Start mode */
#define RC_FLAGS       0x0C     /* Initial flag settings */

/*---------------------------------------------------------------------*/
/* pHILE+ configuration parameters                                     */
/*---------------------------------------------------------------------*/
#define FC_LOGBSIZE    9        /* Block size (base-2 exponent) */
#define FC_NBUF        6        /* Number of cache buffers */
#define FC_NMOUNT      3        /* Max # of mounted volumes */
#define FC_NFCB        10       /* Max # of opened files per system */
#define FC_NCFILE      2        /* Max # of opened files per task */
#define FC_MSDOS       1        /* MS-DOS volume mount flag */

/*---------------------------------------------------------------------*/
/* pREPC+ configuration parameters                                     */
/*---------------------------------------------------------------------*/
#define LC_BUFSIZ      128      /* I/O buffer size */
#define LC_NUMFILES    50       /* Max number of open files per task */
#define LC_WAITOPT     0        /* Wait option for memory allocation */
#define LC_TIMEOPT     0        /* Timeout option for mem allocation */
#define LC_SSIZE       512      /* Size of print buffer */

/*---------------------------------------------------------------------*/
/* pNA+ configuration parameters                                       */
/*---------------------------------------------------------------------*/
#define NC_NNI         5        /* size of pNA NI Table */
#define NC_NROUTE      10       /* size of pNA Routing Table */
#define NC_NARP        20       /* size of pNA ARP table */
#define NC_DEFUID      0        /* Default User ID of a task */
#define NC_DEFGID      0        /* Default Group ID of a task */
#define NC_HOSTNAME    "scg"    /* Hostname of the node */
#define NC_NHENTRY     8        /* Number of Host table entries */

/*---------------------------------------------------------------------*/
/* pSE+ configuration parameters                                       */
/*---------------------------------------------------------------------*/
#define NBUFS_0     64          /* number of 0 length buffers */
#define NBUFS_32    128         /* number of 32 byte buffers */
#define NBUFS_64    128         /* number of 64 byte buffers */
#define NBUFS_128   256         /* number of 128 byte buffers */
#define NBUFS_256   32          /* number of 256 byte buffers */
#define NBUFS_512   32          /* number of 512 byte buffers */
#define NBUFS_1024  16          /* number of 1k byte buffers */
#define NBUFS_2048  16          /* number of 2k byte buffers */
#define NBUFS_4096  8           /* number of 4k byte buffers */
#define SE_MAX_PSE_STRBUFS  9   /* max number of stream buffer types */

#define SE_MAX_PSE_MODULES 2    /* max number of streams modules */
#define SC_SHARE_NI   NO        /* does pna share NI with streams? */

#define SE_DATA_SIZE 0x0C00     /* size of pSE data area */
                                /* (must be at least 3K) */
#define SE_TASK_PRIO  250       /* priority for pSE task */
#define SE_STACK_SIZE 0x2000    /* stack size for pSE task */
#define SE_DEF_UID    0         /* default user id */
#define SE_DEF_GID    0         /* default group id */
#define SE_N_FDS      32        /* max # of system-wide */
                                /*  stream descriptors */
#define SE_N_TASKFDS  8         /* max # of per-task stream */
                                /*  descriptors */
#define SE_N_LINKS    32        /* max # of multiplexing links */
#define SE_N_TIMEOUTS 32        /* max # of timeout requests */
#define SE_N_BUFCALLS 32        /* max # of bufcall requests */
#define SE_N_QUEUES   256       /* # of queues */
#define SE_N_MBLKS    512       /* reserved for future use, must be 0 */

/***********************************************************************/
/*                                                                     */
/*  This defines the IP address of the host system where the           */
/*  "server" program should be running.                                */
/*                                                                     */
/***********************************************************************/
#define HOST_IP       0x80FCA58C 

#if defined(__cplusplus)
}
#endif

#endif /* _SYS_CONF_H */