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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [or1ksim/] [doc/] [or1ksim.info] - Blame information for rev 21

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

Line No. Rev Author Line
1 19 jeremybenn
This is ../../doc/or1ksim.info, produced by makeinfo version 4.11 from
2
../../doc/or1ksim.texi.
3
 
4
INFO-DIR-SECTION Embedded development
5
START-INFO-DIR-ENTRY
6
* Or1ksim: (or32-uclinux-or1ksim).      The OpenRISC 1000 Architectural
7
                                        Simulator
8
END-INFO-DIR-ENTRY
9
 
10
This file documents the OpenRISC Architectural Simulator, Or1ksim.
11
 
12
Copyright (C) 2008, 2009 Embecosm Limited.
13
 
14
     Permission is granted to copy, distribute and/or modify this
15
     document under the terms of the GNU Free Documentation License,
16
     Version 1.2 or any later version published by the Free Software
17
     Foundation; with no Invariant Sections, with no Front-Cover Texts,
18
     and with no Back-Cover Texts.  A copy of the license is included
19
     in the section entitled "GNU Free Documentation License".
20
 
21

22
File: or1ksim.info,  Node: Top,  Next: Installation,  Up: (dir)
23
 
24
Scope of this Document
25
**********************
26
 
27
This document is the user guide for Or1ksim, the OpenRISC 1000
28
Architectural Simulator.
29
 
30
* Menu:
31
 
32
* Installation::
33
* Usage::
34
* Configuration::
35
* Interactive Command Line::
36
* Verification API::
37
 
38
* Code Internals::
39
 
40
* GNU Free Documentation License::  The license for this documentation
41
* Index::
42
 
43

44
File: or1ksim.info,  Node: Installation,  Next: Usage,  Prev: Top,  Up: Top
45
 
46
1 Installation
47
**************
48
 
49
Installation follows standard GNU protocols.
50
 
51
* Menu:
52
 
53
* Preparation::
54
* Configuring the Build::
55
* Build and Install::
56
* Known Issues::
57
 
58

59
File: or1ksim.info,  Node: Preparation,  Next: Configuring the Build,  Up: Installation
60
 
61
1.1 Preparation
62
===============
63
 
64
Unpack the software and create a _separate_ directory in which to build
65
it:
66
 
67
     tar jxf or1ksim-0.3.0.tar.bz2
68
     mkdir builddir_or1ksim
69
     cd builddir_or1ksim
70
 
71

72
File: or1ksim.info,  Node: Configuring the Build,  Next: Build and Install,  Prev: Preparation,  Up: Installation
73
 
74
1.2 Configuring the Build
75
=========================
76
 
77
Configure the software using the `configure' script in the main
78
directory.
79
 
80
The most significant argument is `--target', which should specify the
81
OpenRISC 1000 32-bit architecture. If this argument is omitted, it will
82
default to OpenRISC 1000 32-bit with a warning
83
 
84
     ../or1ksim-0.3.0/configure --target=or32-uclinux ...
85
 
86
There are several other options available, many of which are standard
87
to GNU `configure' scripts. Use `configure --help' to see all the
88
options. The most useful is `--prefix' to specify a directory for
89
installation of the tools.
90
 
91
A number of Or1ksim features in the simulator do require enabling at
92
configuration. These include
93
 
94
`--enable-profiling'
95
`--disable-profiling'
96
     If enabled, Or1ksim is compiled for profiling with `gprof'. This
97
     is disabled by default. Only really of value for developers of
98
     Or1ksim.
99
 
100
`--enable-execution=simple'
101
`--enable-execution=complex'
102
`--enable-execution=dynamic'
103
     Or1ksim has developed to improve functionality and performance.
104
     This feature allows three versions of Or1ksim to be built
105
 
106
    `--enable-execution=simple'
107
          Build the original simple interpreting simulator
108
 
109
    `--enable-execution=complex'
110
          Build a more complex interpreting simulator. Experiments
111
          suggest this is 50% faster than the simple simulator. This is
112
          the default.
113
 
114
    `--enable-execution=dynamic'
115
          Build a dynamically compiling simulator. This is the way many
116
          modern ISS are built. This represents a work in progress.
117
          Currently Or1ksim will compile, but segfaults if configured
118
          with this option.
119
 
120
 
121
     The default is `--enable-execution=complex'.
122
 
123
`--enable-ethphy'
124
`--disable-ethphy'
125
     If enabled, this option allows the Ethernet to be simulated by
126
     connecting via a socket (the alternative reads and writes, from
127
     and to files). This must then be configured using the relevant
128
     fields in the `ethernet' section of the configuration file. *Note
129
     Ethernet Configuration: Ethernet Configuration.
130
 
131
     The default is for this to be disabled.
132
 
133
`--enable-range-stats'
134
`--disable-range-stats'
135
     If enabled, this option allows statistics to be collected to
136
     analyse register access over time. The default is for this to be
137
     disabled.
138
 
139
`--enable-ov-flag'
140
`--disable-ov-flag'
141
     If enabled, this option causes instructions to set the overflow
142
     flag. The instructions affected by this are `l.add', `l.addc',
143
     `l.addi', `l.and', `l.andi', `l.div', `l.divu', `l.mul', `l.muli',
144
     `l.or', `l.ori', `l.sll', `l.slli', `l.srl', `l.srli', `l.sra',
145
     `l.srai', `l.sub', `l.xor' and `l.xori'.
146
 
147
     The default is for this to be disabled.
148
 
149
          Caution: This appears a very dangerous option, to the extent
150
          of arguably being a bug. Whether or not flags are set is part
151
          of the OpenRISC 1000 architectural specification. Within the
152
          above list, the arithmetic instructions (`l.add', `l.addc',
153
          `l.addi', `l.div', `l.divu', `l.mul', `l.muli' and `l.sub'),
154
          together with `l.addic' which is missed out, set the overflow
155
          flag. All the others (`l.and', `l.andi', `l.or', `l.ori',
156
          `l.sll', `l.slli', `l.srl', `l.srli', `l.sra', `l.srai',
157
          `l.xor' and `l.xori') do not.
158
 
159
          Thus it is impossible to get correct behavior whichever way
160
          this option is set.
161
 
162
`--enable-arith-flag'
163
`--disable-arith-flag'
164
     If enabled, this option causes instructions to set the flag (`F'
165
     bit) in the supervision register. The instructions affected by
166
     this are `l.add', `l.addc', `l.addi', `l.and' and `l.andi'.
167
 
168
     The default is for this to be disabled.
169
 
170
          Caution: As with `--enable-ov-flag', this appears another
171
          very dangerous option, to the extent of arguably being a bug.
172
          It also appears to be only partially implemented--why only
173
          the instructions early in the alphabet?
174
 
175
          Whether or not flags are set is part of the OpenRISC 1000
176
          architectural specification. The only flags which should set
177
          this are the "set flag" instructions: `l.sfeq', `l.sfeqi',
178
          `l.sfges', `l.sfgesi', `l.sfgeu', `l.sfgeui', `l.sfgts',
179
          `l.sfgtsi', `l.sfgtu', `l.sfgtui', `l.sfles', `l.sflesi',
180
          `l.sfleu', `l.sfleui', `l.sflts', `l.sfltsi', `l.sfltu',
181
          `l.sfltui', `l.sfne' and `l.sfnei'.
182
 
183
          The flags are correctly set (irrespective of
184
          `--enable-arith_flag').
185
 
186
          Correct behavior is thus achieved if this flag is not set.
187
          `--enable-arith-flag' should never be used.
188
 
189
 
190
`--enable-debug'
191
`--disable-debug'
192
     This is a feature of the Argtable2 package used to process
193
     arguments. If enabled, some debugging features are turned on in
194
     Argtable2. It is provided for completeness, but there is no reason
195
     why this feature should ever be needed by any Or1ksim user.
196
 
197
 
198

199
File: or1ksim.info,  Node: Build and Install,  Next: Known Issues,  Prev: Configuring the Build,  Up: Installation
200
 
201
1.3 Building and Installing
202
===========================
203
 
204
The tool is then built with:
205
 
206
     make all
207
     make install
208
 
209
This will install the three variations of the Or1ksim tool,
210
`or32-uclinux-sim', `or32-uclinux-psim' and `or32-uclinux-mpsim', the
211
Or1ksim library, `libsim', the header file, `or1ksim.h' and this
212
documentation in `info' format.
213
 
214
     Note: Testing Or1ksim with `make check' is not yet supported.
215
 
216
The documentation may be created and installed in alternative formats
217
(PDF, Postscript, DVI, HTML) with for example:
218
 
219
     make pdf
220
     make install-pdf
221
 
222

223
File: or1ksim.info,  Node: Known Issues,  Prev: Build and Install,  Up: Installation
224
 
225
1.4 Known Problems and Issues
226
=============================
227
 
228
The following problems and issues are known about with Or1ksim 0.3.0.
229
The OpenRISC tracker may be used to see the current state of these
230
issues and to raise new problems and feature requests. It may be found
231
at `http://www.opencores.org/ptracker.cgi/view/or1k/398'.
232
 
233
   * The Supervision Register Little Endian Enable (LEE) bit is
234
     ignored. Or1ksim can be built for either little endian or big
235
     endian use, but that behavior cannot be changed dynamically.
236
 
237
   * The NPC is a read/write register, but after being written it
238
     clears the pipeline. This means that if the processor is stalled,
239
     the value should subsequently read back as 0, until the processor
240
     is unstalled and able to refill its pipeline. By default Or1ksim
241
     always reports back the value of NPC, even when it has been
242
     written while stalled.
243
 
244
     There is now an option, `--strict-npc', which will enforce this
245
     behavior. At some stage in the future it will become the default
246
     behavior, but for now it is an option, since its use will break
247
     GDB.
248
 
249
   * The memory components are given names in the configuration file.
250
     However there is currently no way for Or1ksim to report that name
251
     back to the user (for example to identify which memory block
252
     corresponds to a particular access).
253
 
254
   * Or1ksim allows the processor to be stalled (from the command
255
     line), even if there is no debugger present. This seems to be a
256
     meaningless operation.
257
 
258
   * Or1ksim is not reentrant, so a program cannot instantiate multiple
259
     instances using the library. This is clearly a problem when
260
     considering multi-core applications. However it stems from the
261
     original design, and can only be fixed by a complete rewrite. The
262
     entire source code uses static global constants liberally!
263
 
264
   * There is no support for floating point instructions currently in
265
     Or1ksim. However this is a work in progress and should be
266
     available in the near future.
267
 
268
 
269

270
File: or1ksim.info,  Node: Usage,  Next: Configuration,  Prev: Installation,  Up: Top
271
 
272
2 Usage
273
*******
274
 
275
* Menu:
276
 
277
* Standalone Simulator::
278
* Profiling Utility::
279
* Memory Profiling Utility::
280
* Simulator Library::
281
 
282

283
File: or1ksim.info,  Node: Standalone Simulator,  Next: Profiling Utility,  Up: Usage
284
 
285
2.1 Standalone Simulator
286
========================
287
 
288
The general form the standalone command is:
289
 
290
     or32-uclinux-sim [-vhi] [-f FILE] [--nosrv] [--srv=[N]] [-d STR]
291
                      [--enable-profile] [--enable-mprofile] [FILE]
292
 
293
Many of the options have both a short and a long form. For example `-h'
294
or `--help'.
295
 
296
`-v'
297
`--version'
298
     Print out the version and copyright notice for Or1ksim and exit.
299
 
300
`-h'
301
`--help'
302
     Print out help about the command line options and what they mean.
303
 
304
`-f FILE'
305
`--file FILE'
306
     Read configuration commands from the specified file, looking first
307
     in the current directory, and otherwise in the `$HOME/.or1k'
308
     directory. If this argument is not specified, the file `sim.cfg'
309
     in those two locations is used. Failure to find the file is a fatal
310
     error. *Note Configuration: Configuration, for detailed information
311
     on configuring Or1ksim.
312
 
313
`--nosrv'
314
     Do not start up the debug server. This overrides any setting
315
     specified in the configuration file. This option may not be
316
     specified with `--srv'. If it is, a rude message is printed and the
317
     `--nosrv' option is ignored.
318
 
319
`--srv'
320
 
321
`--srv=N'
322
     Start up the debug server. If the parameter, N, is specified, use
323
     that as the TCP/IP port for the server, otherwise a random value
324
     from the private port range (41920-65535) will be used. This option
325
     may not be specified with `--nosrv'. If it is, a rude message is
326
     printed and the `--nosrv' option is ignored.
327
 
328
`-d=CONFIG_STRING'
329
`--debug-config=CONFIG_STRING'
330
     Enable selected debug messages in Or1ksim. This parameter is for
331
     use by developers only, and is not covered further here. See the
332
     source code for more details.
333
 
334
`-i'
335
`--interactive'
336
     After starting, drop into the Or1ksim interactive command shell.
337
 
338
`--strict-npc'
339
     In real hardware, setting the next program counter (NPC, SPR 16),
340
     flushes the processor pipeline. The consequence of this is that
341
     until the pipeline refills, reading the NPC will return zero. This
342
     is typically the case when debugging, since the processor is
343
     stalled.
344
 
345
     Historically, Or1ksim has always returned the value of the NPC,
346
     irrespective of when it is changed. If the `--strict-npc' option is
347
     used, then Or1ksim will mirror real hardware more accurately. If
348
     the NPC is changed while the processor is stalled, subsequent
349
     reads of its value will return 0 until the processor is unstalled.
350
 
351
     This is not currently the default behavior, since tools such as
352
     GDB have been implemented assuming the historic Or1ksim behavior.
353
     However at some time in the future it will become the default.
354
 
355
`--enable-profile'
356
     Enable instruction profiling.
357
 
358
`--enable-mprofile'
359
     Enable memory profiling.
360
 
361
 
362

363
File: or1ksim.info,  Node: Profiling Utility,  Next: Memory Profiling Utility,  Prev: Standalone Simulator,  Up: Usage
364
 
365
2.2 Profiling Utility
366
=====================
367
 
368
This utility analyses instruction profile data generated by Or1ksim. It
369
may be invoked as a standalone command, or from the Or1ksim CLI. The
370
general form the standalone command is:
371
 
372
     or32-uclinux-profile [-vhcq] [-g=FILE]
373
 
374
Many of the options have both a short and a long form. For example `-h'
375
or `--help'.
376
 
377
`-v'
378
`--version'
379
     Print out the version and copyright notice for the Or1ksim
380
     profiling utility and exit.
381
 
382
`-h'
383
`--help'
384
     Print out help about the command line options and what they mean.
385
 
386
`-c'
387
`--cumulative'
388
     Show cumulative sum of cycles in functions
389
 
390
`-q'
391
`--quiet'
392
     Suppress messages
393
 
394
`-g=FILE'
395
`--generate=FILE'
396
     The data file to analyse. If omitted, the default file,
397
     `sim.profile' is used.
398
 
399
 
400

401
File: or1ksim.info,  Node: Memory Profiling Utility,  Next: Simulator Library,  Prev: Profiling Utility,  Up: Usage
402
 
403
2.3 Memory Profiling Utility
404
============================
405
 
406
This utility analyses memory profile data generated by Or1ksim. It may
407
be invoked as a standalone command, or from the Or1ksim CLI. The
408
general form the standalone command is:
409
 
410
     or32-uclinux-mprofile  [-vh] [-m=M] [-g=N] [-f=FILE] FROM TO
411
 
412
Many of the options have both a short and a long form. For example `-h'
413
or `--help'.
414
 
415
`-v'
416
`--version'
417
     Print out the version and copyright notice for the Or1ksim memory
418
     profiling utility and exit.
419
 
420
`-h'
421
`--help'
422
     Print out help about the command line options and what they mean.
423
 
424
`-m=M'
425
`--mode=M'
426
     Specify the mode out output. Permitted options are
427
 
428
    `detailed'
429
    `d'
430
          Detailed output. This is the default if no mode is specified.
431
 
432
    `pretty'
433
    `p'
434
          Pretty printed output.
435
 
436
    `access'
437
    `a'
438
          Memory accesses only.
439
 
440
    `width'
441
    `w'
442
          Access width only.
443
 
444
 
445
`-g=N'
446
`--group=N'
447
     Group 2^n bits of successive addresses together.
448
 
449
`-f=FILE'
450
`--filename=FILE'
451
     The data file to analyse. If not specified, the default,
452
     `sim.profile' is used.
453
 
454
`FROM'
455
`TO'
456
     FROM and TO are respectively the start and end address of the
457
     region of memory to be analysed.
458
 
459
 
460

461
File: or1ksim.info,  Node: Simulator Library,  Prev: Memory Profiling Utility,  Up: Usage
462
 
463
2.4 Simulator Library
464
=====================
465
 
466
Or1ksim may be used as a static of dynamic library, `libsim.a' or
467
`libsim.so'. When compiling with the static library, the flag, `-lsim'
468
should be added to the link command.
469
 
470
The header file `or1ksim.h' contains appropriate declarations of the
471
functions exported by the Or1ksim library. These are:
472
 
473
 -- `or1ksim.h': int or1ksim_init (const char *CONFIG_FILE, const char
474
          *IMAGE_FILE, void *CLASS_PTR, unsigned long int (*UPR)(void
475
          *CLASS_PTR, unsigned long int ADDR, unsigned long int MASK),
476
          void (*UPW)(void *CLASS_PTR, unsigned long int ADDR, unsigned
477
          long int MASK, unsigned long int WDATA))
478
     The initialization function is supplied with the name of a
479
     configuration file, CONFIG_FILE, an executable image, IMAGE_FILE,
480
     a pointer to the calling class, CLASS_PTR (since the library may
481
     be used from C++) and two up-call functions, one for reads, UPR,
482
     and one for writes, UPW.
483
 
484
     *Note Configuration: Configuration, for detailed information on
485
     configuring Or1ksim and the format of the configuration file.
486
 
487
     UPW is called for any write to an address external to the model
488
     (determined by a `generic' section in the configuration file). UPR
489
     is called for any reads to an external address. The CLASS_PTR is
490
     passed back with these upcalls, allowing the function to associate
491
     the call with the class which originally initialized the library.
492
 
493
     MASK indicates which bytes in the word are to be written or read.
494
     Bytes to be read/written should have 0xff set in MASK. Otherwise
495
     the byte should be zero.
496
 
497
     ADDR, MASK, WDATA and the result from UPR all use host-endianess,
498
     _not_ model-endianess. The internal Or1ksim routines manage all
499
     the conversion.
500
 
501
 
502
 -- `or1ksim.h': int or1ksim_run (double DURATION)
503
     Run the simulator for the simulated duration specified (in
504
     seconds).
505
 
506
 
507
 -- `or1ksim.h': void or1ksim_reset_duration (double DURATION)
508
     Change the duration of a run specified in an earlier call to
509
     `or1ksim_run'. Typically this is called from an upcall, which
510
     realizes it needs to change the duration of the run specified in
511
     the call to `or1ksim_run' that has been interrupted by the upcall.
512
 
513
     The time specified is the amount of time that the run must continue
514
     for (i.e the duration from _now_, not the duration from the
515
     original call to `or1ksim_run').
516
 
517
 
518
 -- `or1ksim.h': void or1ksim_set_time_point ()
519
     Set a timing point. For use with `or1ksim_get_time_period'.
520
 
521
 
522
 -- `or1ksim.h': double or1ksim_get_time_period ()
523
     Return the simulated time (in seconds) that has elapsed since the
524
     last call to `or1ksim_set_time_point'.
525
 
526
 
527
 -- `or1ksim.h': int or1ksim_is_le ()
528
     Return 1 (logical true) if the Or1ksim simulation is
529
     little-endian, 0 otherwise.
530
 
531
 
532
 -- `or1ksim.h': unsigned long int or1ksim_clock_rate ()
533
     Return the Or1ksim clock rate (in Hz). This is the value specified
534
     in the configuration file.
535
 
536
 
537
 -- `or1ksim.h': void or1ksim_interrupt (int I)
538
     Generate an edge-triggered interrupt on interrupt line I. The
539
     interrupt is then immediately cleared automatically. A warning
540
     will be generated and the interrupt request ignored if level
541
     sensitive interrupts have been configured with the programmable
542
     interrupt controller (*note Interrupt Configuration: Interrupt
543
     Configuration.).
544
 
545
 
546
 -- `or1ksim.h': void or1ksim_interrupt_set (int I)
547
     Assert a level-triggered interrupt on interrupt line I. The
548
     interrupt must be cleared separately by an explicit call to
549
     `or1ksim_interrupt_clear'. A warning will be generated, and the
550
     interrupt request ignored if edge sensitive interrupts have been
551
     configured with the programmable interrupt controller (*note
552
     Interrupt Configuration: Interrupt Configuration.).
553
 
554
 
555
 -- `or1ksim.h': void or1ksim_interrupt_clear (int I)
556
     Clear a level-triggered interrupt on interrupt line I, which was
557
     previously asserted by a call to `or1ksim_interrupt_set'. A
558
     warning will be generated, and the interrupt request ignored if
559
     edge sensitive interrupts have been configured with the
560
     programmable interrupt controller (*note Interrupt Configuration:
561
     Interrupt Configuration.).
562
 
563
 
564
The libraries will be installed in the `lib' sub-directory of the main
565
installation directory (as specified with the `--prefix' option to the
566
`configure' script).
567
 
568
For example if the main installation directory is `/opt/or1ksim', the
569
library will be found in the `/opt/or1ksim/lib' directory. It is
570
available as both a static library (`libsim.a') and a shared object
571
(`libsim.so').
572
 
573
To link against the library add the `-lsim' flag when linking and do
574
one of the following:
575
 
576
   * Add the library directory to the `LD_LIBRARY_PATH' environment
577
     variable during execution. For example:
578
 
579
          export LD_LIBRARY_PATH=/opt/or1ksim/lib:$LD_LIBRARY_PATH
580
 
581
   * Add the library directory to the `LD_RUN_PATH' environment
582
     variable during linking. For example:
583
 
584
          export LD_RUN_PATH=/opt/or1ksim/lib:$LD_RUN_PATH
585
 
586
   * Use the linker `--rpath' option and specify the library directory
587
     when linking your program. For example
588
 
589
          gcc ... -Wl,--rpath -Wl,/opt/or1ksim/lib ...
590
 
591
   * Add the library directory to `/etc/ld.so.conf'
592
 
593
 
594

595
File: or1ksim.info,  Node: Configuration,  Next: Interactive Command Line,  Prev: Usage,  Up: Top
596
 
597
3 Configuration
598
***************
599
 
600
Or1ksim is configured through a configuration file. This is specified
601
through the `-f' parameter to the Or1ksim command, or passed as a
602
string when initializing the Or1ksim library. If no file is specified,
603
the default `sim.cfg' is used. The file is looked for first in the
604
current directory, then in the `$HOME/.or1k' directory of the user.
605
 
606
* Menu:
607
 
608
* Configuration File Format::
609
* Simulator Configuration::
610
* Core OpenRISC Configuration::
611
* Peripheral Configuration::
612
 
613

614
File: or1ksim.info,  Node: Configuration File Format,  Next: Simulator Configuration,  Up: Configuration
615
 
616
3.1 Configuration File Format
617
=============================
618
 
619
The configuration file is a plain text file.
620
 
621
* Menu:
622
 
623
* Configuration File Preprocessing::
624
* Configuration File Syntax::
625
 
626

627
File: or1ksim.info,  Node: Configuration File Preprocessing,  Next: Configuration File Syntax,  Up: Configuration File Format
628
 
629
3.1.1 Configuration File Preprocessing
630
--------------------------------------
631
 
632
The configuration file may include C style comments (i.e. delimited by
633
`/*' and `*/').
634
 
635
Configure files may be included, using
636
 
637
     include FILENAME_TO_INCLUDE
638
 
639

640
File: or1ksim.info,  Node: Configuration File Syntax,  Prev: Configuration File Preprocessing,  Up: Configuration File Format
641
 
642
3.1.2 Configuration File Syntax
643
-------------------------------
644
 
645
The configuration file is divided into a series of sections, with the
646
general form:
647
 
648
     section SECTION_NAME
649
 
650
       ...
651
 
652
     end
653
 
654
Sections may also have sub-sections within them (currently only the
655
ATA/ATAPI disc interface uses this).
656
 
657
Within a section, or sub-section are a series of parameter assignments,
658
one per line, withe the general form
659
 
660
       PARAMETER = VALUE
661
 
662
Depending on the parameter, the value may be a named value (an
663
enumeration), an integer (specified in any format acceptable in C) or a
664
string in doubple quotes. For flag parameters, the value 1 is used to
665
mean "true" or "on" and the value "0" to mean "false" or "off". An
666
example from a memory section shows each of these
667
 
668
     section memory
669
       type    = random
670
       pattern = 0x00
671
       name    = "FLASH"
672
       ...
673
     end
674
 
675
Many parameters are optional and take reasonable default values if not
676
specified. However there are some parameters (for example the `ce'
677
parameter in `section memory') _must_ be specified.
678
 
679
Subsections are introduced by a keyword, with a parameter value (no `='
680
sign), and end with the same keyword prefixed by `end'. Thus the
681
ATA/ATAPI inteface (`section ata') has a `device' subsection, thus:
682
 
683
     section ata
684
       ...
685
       device 0
686
         type    = 1
687
         file = "FILENAME"
688
         ...
689
       enddevice
690
       ...
691
     end
692
 
693
Some sections (for example `section sim') should appear only once.
694
Others (for example `section memory' may appear multiple times.
695
 
696
Sections may be omitted, _unless they contain parameters which are
697
non-optional_. If the section describes a part of the simulator which
698
is optional (for example whether it has a UART), then that
699
functionality will not be provided. If the section describes a part of
700
the simulator which is not optional (for example the CPU), then all the
701
parameters of that section will take their default values.
702
 
703
All optional parts of the functionality are always described by
704
sections including a `enabled' parameter, which can be set to 0 to
705
ensure that functionality is explicitly omitted.
706
 
707
Even if a section is disabled, all its parameters will be read and
708
stored. This is helpful if the section is subsequently enabled from the
709
Or1ksim command line (*note Interactive Command Line: Interactive
710
Command Line.).
711
 
712
     Tip: It generally clearer to have sections describing _all_
713
     components, with omitted functionality explicitly indicated by
714
     setting the `enabled' parameter to 0
715
 
716
The following sections describe the various configuration sections and
717
the parameters which may be set in each.
718
 
719

720
File: or1ksim.info,  Node: Simulator Configuration,  Next: Core OpenRISC Configuration,  Prev: Configuration File Format,  Up: Configuration
721
 
722
3.2 Simulator Configuration
723
===========================
724
 
725
* Menu:
726
 
727
* Simulator Behavior::
728
* Verification API Configuration::
729
* CUC Configuration::
730
 
731

732
File: or1ksim.info,  Node: Simulator Behavior,  Next: Verification API Configuration,  Up: Simulator Configuration
733
 
734
3.2.1 Simulator Behavior
735
------------------------
736
 
737
Simulator behavior is described in `section sim'. This section should
738
appear only once. The following parameters may be specified.
739
 
740
`verbose = 0|1'
741
     If 1 (true), print extra messages. Default 0.
742
 
743
`debug = 0-9'
744
 
745
     higher the value the greater the number of messages. Default 0.
746
     Negative values will be treated as 0 (with a warning). Values that
747
     are too large will be treated as 9 (with a warning).
748
 
749
`profile = 0|1'
750
     If 1 (true) generate a profiling file using the file specified in
751
     the `prof_file' parameter or otherwise `sim.profile'. Default 0.
752
 
753
`prof_file = ``FILENAME'''
754
     Specifies the file to be used with the `profile' parameter. Default
755
     `sim.profile'. For backwards compatibility, the alternative name
756
     `prof_fn' is supported for this parameter, but deprecated.
757
 
758
`mprofile = 0|1'
759
     If 1 (true) generate a memory profiling file using the file
760
     specified in the `mprof_file' parameter or otherwise
761
     `sim.mprofile'. Default 0.
762
 
763
`mprof_fn = ``FILENAME'''
764
     Specifies the file to be used with the `mprofile' parameter.
765
     Default `sim.mprofile'. For backwards compatibility, the
766
     alternative name `mprof_fn' is supported for this parameter, but
767
     deprecated.
768
 
769
`history = 0|1'
770
     If 1 (true) track execution flow. Default 0.
771
 
772
          Note: Setting this parameter seriously degrades performance.
773
 
774
          Note: If this execution flow tracking is enabled, then
775
          `dependstats' must be enabled in the CPU configuration
776
          section (*note CPU Configuration: CPU Configuration.).
777
 
778
`exe_log = 0|1'
779
     If 1 (true), generate an execution log. Log is written to the file
780
     specified in parameter `exe_log_file'. Default 0.
781
 
782
          Note: Setting this parameter seriously degrades performance.
783
 
784
`exe_log_type = default|hardware|simple|software'
785
     Type of execution log to produce.
786
 
787
    `default'
788
          Produce default output for the execution log. In the current
789
          implementation this is the equivalent of `hardware'.
790
 
791
    `hardware'
792
          After each instruction execution, log the number of
793
          instructions executed so far, the next instruction to execute
794
          (in hex), the general purpose registers (GPRs), status
795
          register, exception program counter, exception, effective
796
          address register and exception status register.
797
 
798
    `simple'
799
          After each instruction execution, log the number of
800
          instructions executed so far and the next instruction to
801
          execute, symbolically disassembled.
802
 
803
    `software'
804
          After each instruction execution, log the number of
805
          instructions executed so far and the next instruction to
806
          execute, symbolically disassembled. Also show the value of
807
          each operand to the instruction.
808
 
809
 
810
     Default value `hardware'. Any unrecognized keyword (case
811
     insensitive) will be treated as the default with a warning.
812
 
813
          Note: Execution logs can be _very_ big.
814
 
815
`exe_log_start = VALUE'
816
     Address of the first instruction to start logging. Default 0.
817
 
818
`exe_log_end = VALUE'
819
     Address of the last instruction to log. Default no limit (i.e once
820
     started logging will continue until the simulator exits).
821
 
822
`exe_log_marker = VALUE'
823
     Specifies the number of instructions between printing horizontal
824
     markers. Default is to produce no markers.
825
 
826
`exe_log_file = FILENAME'
827
     Filename for the execution log filename if `exe_log' is enabled.
828
     Default `executed.log'. For backwards compatibility, the
829
     alternative name `exe_log_fn' is supported for this parameter, but
830
     deprecated.
831
 
832
`clkcycle = VALUE[ps|ns|us|ms]'
833
     Specify the time taken by one clock cycle. If no units are
834
     specified, `ps' is assumed. Default 4000ps (250MHz).
835
 
836
 
837

838
File: or1ksim.info,  Node: Verification API Configuration,  Next: CUC Configuration,  Prev: Simulator Behavior,  Up: Simulator Configuration
839
 
840
3.2.2 Verification API (VAPI) Configuration
841
-------------------------------------------
842
 
843
The Verification API (VAPI) provides a TCP/IP interface to allow
844
components of the simulation to be controlled externally. *Note
845
Verification API: Verification API, for more details.
846
 
847
Verification API configuration is described in `section vapi'. This
848
section may appear at most once. The following parameters may be
849
specified.
850
 
851
`enabled = 0|1'
852
     If 1 (true), verification API is enabled and its server started.
853
     If 0 (the default), it is disabled.
854
 
855
`server_port = VALUE'
856
     When VAPI is enabled, communication will be via TCP/IP on the port
857
     specified by VALUE. The value must lie in the range 1 to 65535.
858
     The default value is 50000.
859
 
860
          Tip: There is no registered port for Or1ksim VAPI. Good
861
          practice suggests users should adopt port values in the
862
          "Dynamic" or "Private" port range, i.e. 49152-65535.
863
 
864
`log_enabled = 0|1'
865
     If 1 (true), all VAPI requests and sent commands will be logged.
866
     If 0 (the default), logging is diabled. Logs are written to the
867
     file specified by the `vapi_log_file' field (see below).
868
 
869
          Caution: This can generate a substantial amount of file I/O
870
          and seriously degrade simulator performance.
871
 
872
`hide_device_id = 0|1'
873
     If 1 (true) don't log the device ID. If 0 (the default), log the
874
     device ID. This feature (when set to 1) is provided for backwards
875
     compatibility with an old version of VAPI.
876
 
877
`vapi_log_file = "FILENAME"'
878
     Use `filename' as the file for logged data is logging is enabled
879
     (see `log_enabled' above). The default is `"vapi.log"'. For
880
     backwards compatibility, the alternative name `vapi_log_fn' is
881
     supported for this parameter, but deprecated.
882
 
883
 
884

885
File: or1ksim.info,  Node: CUC Configuration,  Prev: Verification API Configuration,  Up: Simulator Configuration
886
 
887
3.2.3 Custom Unit Compiler (CUC) Configuration
888
----------------------------------------------
889
 
890
The Custom Unit Compiler (CUC) was a project by Marko Mlinar to generate
891
Verilog from ANSI C functions. The project seems to not have progressed
892
beyond the initial prototype phase. The configuration parameters are
893
described here for the record.
894
 
895
CUC configuration is described in `section cuc'. This section may
896
appear at most once. The following parameters may be specified.
897
 
898
`memory_order = none|weak|strong|exact'
899
     This parameter specifies the memory ordering required:
900
 
901
    `memory_order=none'
902
          Different memory ordering, even if there are dependencies.
903
          Bursts can be made, width can change.
904
 
905
          Different memory ordering, even if there are dependencies. If
906
          dependencies cannot occur, then bursts can be made, width can
907
          change.
908
 
909
          Same memory ordering. Bursts can be made, width can change.
910
 
911
          Exactly the same memory ordering and widths.
912
 
913
 
914
     The default value is `memory_order=exact'. Invalid memory
915
     orderings are ignored with a warning.
916
 
917
`calling_convention = 0|1'
918
     If 1 (true), programs follow OpenRISC calling conventions. If 0
919
     (the default), they may use other convenitions.
920
 
921
`enable_bursts = 0 | 1'
922
     If 1 (true), bursts are detected. If 0 (the default), bursts are
923
     not detected.
924
 
925
`no_multicycle = 0 | 1'
926
     If 1 (true), no multicycle logic paths will be generated. If 0 (the
927
     default), multicycle logic paths will be generated.
928
 
929
`timings_file = "FILENAME"'
930
     FILENAME specifies a file containing timing information. The
931
     default value is `"virtex.tim"'. For backwards compatibility, the
932
     alternative name `timings_fn' is supported for this parameter, but
933
     deprecated.
934
 
935
 
936

937
File: or1ksim.info,  Node: Core OpenRISC Configuration,  Next: Peripheral Configuration,  Prev: Simulator Configuration,  Up: Configuration
938
 
939
3.3 Configuring the OpenRISC Architectural Components
940
=====================================================
941
 
942
* Menu:
943
 
944
* CPU Configuration::
945
* Memory Configuration::
946
* Memory Management Configuration::
947
* Cache Configuration::
948
* Interrupt Configuration::
949
* Power Management Configuration::
950
* Branch Prediction Configuration::
951
* Debug Interface Configuration::
952
 
953

954
File: or1ksim.info,  Node: CPU Configuration,  Next: Memory Configuration,  Up: Core OpenRISC Configuration
955
 
956
3.3.1 CPU Configuration
957
-----------------------
958
 
959
CPU configuration is described in `section cpu'. This section should
960
appear only once. At present Or1ksim does not model multi-CPU systems.
961
The following parameters may be specified.
962
 
963
`ver = VALUE'
964
 
965
`cfg = VALUE'
966
 
967
`rev = VALUE'
968
     The values are used to form the corresponding fields in the `VR'
969
     Special Purpose Register (SPR 0). Default values 0. A warning is
970
     given and the value truncated if it is too large (8 bits for `ver'
971
     and `cfg', 6 bits for `rev').
972
 
973
`upr = VALUE'
974
     Used as the value of the Unit Present Register (UPR) Special
975
     Purpose Register (SPR 1) to VALUE. Default value is 0x0000075f,
976
     i.e.
977
        * UPR present (0x00000001)
978
 
979
        * Data cache present (0x00000002)
980
 
981
        * Instruction cache present (0x00000004)
982
 
983
        * Data MMY present (0x00000008)
984
 
985
        * Instruction MMU present (0x00000010)
986
 
987
        * Debug unit present (0x00000040)
988
 
989
        * Power management unit present (0x00000100)
990
 
991
        * Programmable interrupt controller present (0x00000200)
992
 
993
        * Tick timer present (0x00000400)
994
 
995
     However, with the exection of the UPR present (0x00000001) and tick
996
     timer present, the various fields will be modified with the values
997
     specified in their corresponding configuration sections.
998
 
999
`cfgr = VALUE'
1000
     Sets the CPU configuration register (Special Purpose Register 2) to
1001
     VALUE. Default value is 0x00000020, i.e. support for the ORBIS32
1002
     instruction set. Attempts to set any other value are accepted, but
1003
     issue a warning that there is no support for the instruction set.
1004
 
1005
`sr = VALUE'
1006
     Sets the supervision register Special Purpose Register (SPR 0x11)
1007
     to VALUE. Default value is 0x00008001, i.e. start in supervision
1008
     mode (0x00000001) and set the "Fixed One" bit (0x00008000).
1009
 
1010
`superscalar = 0|1'
1011
     If 1, the processor operates in superscalar mode. Default value is
1012
     0.
1013
 
1014
     In the current simulator, the only functional effect of superscalar
1015
     mode is to affect the calculation of the number of cycles taken to
1016
     execute an instruction.
1017
 
1018
          Caution: The code for this does not appear to be complete or
1019
          well tested, so users are advised not to use this option.
1020
 
1021
`hazards = 0|1'
1022
     If 1, data hazards are tracked in a superscalar CPU. Default value
1023
     is 0.
1024
 
1025
     In the current simulator, the only functional effect is to cause
1026
     logging of hazard waiting information if the CPU is superscalar.
1027
     However nowhere in the simulator is this data actually computed,
1028
     so the net result is probably to have no effect.
1029
 
1030
     if harzards are tracked, current hazards can be displayed using the
1031
     simulator's `r' command.
1032
 
1033
          Caution: The code for this does not appear to be complete or
1034
          well tested, so users are advised not to use this option.
1035
 
1036
`dependstats = 0|1'
1037
     If 1, inter-instruction dependencies are calculated. Default value
1038
     0.
1039
 
1040
     If these values are calculated, the depencies can be displayed
1041
     using the simulator's `stat' command.
1042
 
1043
          Note: This field must be enabled, if execution execution flow
1044
          tracking (field `history') has been requested in the simulator
1045
          configuration section (*note Simulator Behavior: Simulator
1046
          Behavior.).
1047
 
1048
`sbuf_len = VALUE'
1049
     The length of the store buffer is set to VALUE, which must be no
1050
     greater than 256. Larger values will be truncated to 256 with a
1051
     warning. Negative values will be treated as 0 with a warning. Use
1052
 
1053
 
1054
     When the store buffer is active, stores are accumulated and
1055
     committed when I/O is idle.
1056
 
1057
 
1058

1059
File: or1ksim.info,  Node: Memory Configuration,  Next: Memory Management Configuration,  Prev: CPU Configuration,  Up: Core OpenRISC Configuration
1060
 
1061
3.3.2 Memory Configuration
1062
--------------------------
1063
 
1064
Memory configuration is described in `section memory'. This section may
1065
appear multiple times, specifying multiple blocks of memory. The
1066
following parameters may be specified.
1067
 
1068
`type=random|pattern|unknown|zero'
1069
     Specifies the values to which memory should be initialized. The
1070
     default value is `unknown'.
1071
 
1072
    `random'
1073
          Set the memory values to be a random value. A seed for the
1074
          random generator may be set using the `random_seed' field in
1075
          this section (see below), thus ensuring the same "random"
1076
          values are used each time.
1077
 
1078
    `pattern'
1079
          Set the memory values to be a pattern value, which is set
1080
          using the `pattern' field in this section (see below).
1081
 
1082
    `unknown'
1083
          The memory values are not initialized (i.e. left "unknown").
1084
          This option will yield faster initialization of the simulator.
1085
 
1086
    `zero'
1087
          Set the memory values to be 0. This is the equivalent of
1088
          `type=pattern' and a `pattern' value of 0, and implemented as
1089
          such.
1090
 
1091
               Note: As a consequence, if the `pattern' field is
1092
               _subsequently_ specified in this section, the value in
1093
               that field will be used instead of zero to initialize
1094
               the memory.
1095
 
1096
 
1097
`random_seed = VALUE'
1098
     Set the seed for the random number generator to VALUE. This only
1099
     has any effect for memory type `random'.
1100
 
1101
     The default value is -1, which means the seed will be set from a
1102
     call to the `time' function, thus ensuring different random values
1103
     are used on each run. The simulator prints out the seed used in
1104
     this case, allowing repeat runs to regenerate the same random
1105
     values used in any particular run.
1106
 
1107
`pattern = VALUE'
1108
     Set the pattern to be used when initializing memory to VALUE. The
1109
     default value is 0. This only has any effect for memory type
1110
     `pattern'. The least significant 8 bits of this value is used to
1111
     initialize each byte. More than 8 bits can be specified, but will
1112
     ignored with a warning.
1113
 
1114
          Tip: The default value, is equivalent to setting the memory
1115
          `type' to be `zero'. If that is what is intended, then using
1116
          `type=zero' explicitly is better than using `type=pattern'
1117
          and not specifying a value for `pattern'.
1118
 
1119
`baseaddr = VALUE'
1120
     Set the base address of the memory to VALUE. It should be aligned
1121
     to a multiple of the memory size rounded up to the nearest 2^n.
1122
     The default value is 0.
1123
 
1124
`size = VALUE'
1125
     Set the size of the memory block to be VALUE bytes. This should be
1126
     a multiple of 4 (i.e. word aligned). The default value is 1024.
1127
 
1128
          Note: When allocating memory, the simulator will allocate the
1129
          nearest 2^n bytes greater than or equal to VALUE, and will not
1130
          notice memory misses in any part of the memory between VALUE
1131
          and the amount allocated.
1132
 
1133
          As a consequence users are strongly recommended to specify
1134
          memory sizes that are an exact power of 2. If some other
1135
          amount of memory is required, it should be specified as
1136
          separate, contiguous blocks, each of which is a power of 2 in
1137
          size.
1138
 
1139
`name = "TEXT"'
1140
     Name the block. Typically these describe the type of memory being
1141
     modeled (thus `"SRAM"' or `"Flash"'. The default is
1142
     `"anonymous memory block"'.
1143
 
1144
          Note: It is not clear that this information is currently ever
1145
          used in normal operation of the simulator. Even the `info'
1146
          command of the simulator ignores it.
1147
 
1148
`ce = VALUE'
1149
     Set the chip enable index of the memory instance. Each memory
1150
     instance should have a unique chip enable index, which should be
1151
     greater than or equal to zero. This is used by the memory
1152
     controller when identifying different memory instances.
1153
 
1154
     The default value is -1 (invalid).
1155
 
1156
`mc = VALUE'
1157
     Specifies the memory controller this memory is connected to. It
1158
     should correspond to the `index' field specified in a `section mc'
1159
     for a memory controller (*note Memory Controller Configuration:
1160
     Memory Controller Configuration.).
1161
 
1162
     Default value is 0, which is also the default value of a memory
1163
     controller `index' field. This is suitable therefore for designs
1164
     with just one memory controller.
1165
 
1166
`delayr = VALUE'
1167
     The number of cycles required for a read access. Set to -1 if the
1168
     memory does not support reading. Default value 1. The simulator
1169
     will add this number of cycles to the total instruction cycle
1170
     count when reading from main memory.
1171
 
1172
`delayw = VALUE'
1173
     The number of cycles required for a write access. Set to -1 if the
1174
     memory does not support writing. Default value 1. The simulator
1175
     will add this number of cycles to the total instruction cycle
1176
     count when writing to main memory.
1177
 
1178
`log = "FILE"'
1179
     If specified, `file' names a file for all memory accesses to be
1180
     logged. If not specified, the default value, NULL is used, meaning
1181
     that the memory is not logged.
1182
 
1183
 
1184

1185
File: or1ksim.info,  Node: Memory Management Configuration,  Next: Cache Configuration,  Prev: Memory Configuration,  Up: Core OpenRISC Configuration
1186
 
1187
3.3.3 Memory Management Configuration
1188
-------------------------------------
1189
 
1190
Memory Management Unit (MMU) configuration is described in `section
1191
dmmu' (for the data MMU) and `section immu' (for the instruction MMU).
1192
Each section should appear at most once. The following parameters may
1193
be specified.
1194
 
1195
`enabled = 0|1'
1196
     If 1 (true), the data or instruction (as appropriate) MMU is
1197
     enabled. If 0 (the default), it is disabled.
1198
 
1199
`nsets = VALUE'
1200
     Sets the number of data or instruction (as appropriate) TLB sets to
1201
     VALUE, which must be a power of two, not exceeding 128. Values
1202
     which do not fit these criteria are ignored with a warning. The
1203
     default value is 1.
1204
 
1205
`nways = VALUE'
1206
     Sets the number of data or instruction (as appropriate) TLB ways to
1207
     VALUE. The value must be in the range 1 to 4. Values outside this
1208
     range are ignored with a warning. The default value is 1.
1209
 
1210
`pagesize = VALUE'
1211
     The data or instruction (as appropriate) MMU page size is set to
1212
     VALUE, which must be a power of 2. Values which are not a power of
1213
     2 are ignored with a warning. The default is 8192 (0x2000).
1214
 
1215
`entrysize = VALUE'
1216
     The data or instruction (as appropriate) MMU entry size is set to
1217
     VALUE, which must be a power of 2. Values which are not a power of
1218
     2 are ignored with a warning. The default value is 1.
1219
 
1220
          Note: Or1ksim does not appear to use the `entrysize' parameter
1221
          in its simulation of the MMUs. Thus setting this value does
1222
          not seem to matter.
1223
 
1224
`ustates = VALUE'
1225
     The number of instruction usage states for the data or instruction
1226
     (as appropriate) MMU is set to VALUE, which must be 2, 3 or 4.
1227
     Values outside this range are ignored with a warning. The default
1228
     value is 2.
1229
 
1230
          Note: Or1ksim does not appear to use the `ustates' parameter
1231
          in its simulation of the MMUs. Thus setting this value does
1232
          not seem to matter.
1233
 
1234
`hitdelay = VALUE'
1235
     Set the number of cycles a data or instruction (as appropriate) MMU
1236
     hit costs. Default value 1.
1237
 
1238
`missdelay = VALUE'
1239
     Set the number of cycles a data or instruction (as appropriate) MMU
1240
     miss costs. Default value 1.
1241
 
1242
 
1243

1244
File: or1ksim.info,  Node: Cache Configuration,  Next: Interrupt Configuration,  Prev: Memory Management Configuration,  Up: Core OpenRISC Configuration
1245
 
1246
3.3.4 Cache Configuration
1247
-------------------------
1248
 
1249
Cache configuration is described in `section dc' (for the data cache)
1250
and `seciton ic' (for the instruction cache). Each section should
1251
appear at most once. The following parameters may be specified.
1252
 
1253
`enabled = 0|1'
1254
     If 1 (true), the data or instruction (as appropriate) cache is
1255
     enabled. If 0 (the default), it is disabled.
1256
 
1257
`nsets = VALUE'
1258
     Sets the number of data or instruction (as appropriate) cache sets
1259
     to VALUE, which must be a power of two, not exceeding
1260
     `MAX_DC_SETS' (for the data cache) or `MAX_IC_SETS' (for the
1261
     instruction cache). At the time of writing, these constants are
1262
     both defined in the code to be 1024). The default value is 1.
1263
 
1264
`nways = VALUE'
1265
     Sets the number of data or instruction (as appropriate) cache ways
1266
     to VALUE, which must be a power of two, not exceeding
1267
     `MAX_DC_WAYS' (for the data cache) or `MAX_IC_WAYS' (for the
1268
     instruction cache). At the time of writing, these constants are
1269
     both defined in the code to be 32). The default value is 1.
1270
 
1271
`blocksize = VALUE'
1272
     The data or instruction (as appropriate) cache block size is set to
1273
     VALUE bytes, which must be either 16 or 32. The default is 16.
1274
 
1275
`ustates = VALUE'
1276
     The number of instruction usage states for the data or instruction
1277
     (as appropriate) cache is set to VALUE, which must be 2, 3 or 4.
1278
     The default value is 2.
1279
 
1280
`hitdelay = VALUE'
1281
     _Instruction cache only_. Set the number of cycles an instruction
1282
     cache hit costs. Default value 1.
1283
 
1284
`missdelay = VALUE'
1285
     _Instruction cache only_. Set the number of cycles an instruction
1286
     cache miss costs. Default value 1.
1287
 
1288
`load_hitdelay = VALUE'
1289
     _Data cache only_. Set the number of cycles a data load cache hit
1290
     costs. Default value 2.
1291
 
1292
`load_missdelay = VALUE'
1293
     _Data cache only_. Set the number of cycles a data load cache miss
1294
     costs. Default value 2.
1295
 
1296
`store_hitdelay = VALUE'
1297
     _Data cache only_. Set the number of cycles a data store cache hit
1298
     costs. Default value 0.
1299
 
1300
`store_missdelay = VALUE'
1301
     _Data cache only_. Set the number of cycles a data store cache
1302
     miss costs. Default value 0.
1303
 
1304
 
1305

1306
File: or1ksim.info,  Node: Interrupt Configuration,  Next: Power Management Configuration,  Prev: Cache Configuration,  Up: Core OpenRISC Configuration
1307
 
1308
3.3.5 Interrupt Configuration
1309
-----------------------------
1310
 
1311
Programmable Interrupt Controller (PIC) configuration is described in
1312
`section pic'. This section may appear at most once--Or1ksim has no
1313
mechanism for handling multiple interrupt controllers. The following
1314
parameters may be specified.
1315
 
1316
`enabled = 0|1'
1317
     If 1 (true), the programmable interrupt controller is enabled. If 0
1318
     (the default), it is disabled.
1319
 
1320
`edge_trigger = 0|1'
1321
     If 1 (true, the default), the programmable interrupt controller is
1322
     edge triggered. If 0 (false), it is level triggered.
1323
 
1324
 
1325

1326
File: or1ksim.info,  Node: Power Management Configuration,  Next: Branch Prediction Configuration,  Prev: Interrupt Configuration,  Up: Core OpenRISC Configuration
1327
 
1328
3.3.6 Power Management Configuration
1329
------------------------------------
1330
 
1331
Power management implementation is incomplete. At present the effect
1332
(which only happens when the power management unit is enabled) of
1333
setting the different bits in the power management Special Purpose
1334
Register (PMR, SPR 0x4000) is
1335
 
1336
`SDF (bit mask 0x0000000f)'
1337
     No effect - these bits are ignored
1338
 
1339
`DME (bit mask 0x00000010)'
1340
`SME (bit mask 0x00000020)'
1341
     Both these bits cause the processor to stop executing
1342
     instructions. However all other functions (debug interaction, CLI,
1343
     VAPI etc) carry on as normal.
1344
 
1345
`DCGE (bit mask 0x00000004)'
1346
     No effect - this bit is ignored
1347
 
1348
`SUME (bit mask 0x00000008)'
1349
     Enabling this bit causes a message to be printed, advising that the
1350
     processor is suspending and the simulator exits.
1351
 
1352
 
1353
On reset all bits are cleared.
1354
 
1355
Power management configuration is described in `section pm'. This
1356
section may appear at most once. The following parameter may be
1357
specified.
1358
 
1359
`enabled = 0|1'
1360
     If 1 (true), power management is enabled. If 0 (the default), it is
1361
     disabled.
1362
 
1363
 
1364

1365
File: or1ksim.info,  Node: Branch Prediction Configuration,  Next: Debug Interface Configuration,  Prev: Power Management Configuration,  Up: Core OpenRISC Configuration
1366
 
1367
3.3.7 Branch Prediction Configuration
1368
-------------------------------------
1369
 
1370
From examining the code base, it seems the branch prediction function
1371
is not fully implemented. At present the functionality seems restricted
1372
to collection of statistics.
1373
 
1374
Branch prediction configuration is described in `section bpb'. This
1375
section may appear at most once. The following parameters may be
1376
specified.
1377
 
1378
`enabled = 0|1'
1379
     If 1 (true), branch prediction is enabled. If 0 (the default), it
1380
     is disabled.
1381
 
1382
`btic = 0|1'
1383
     If 1 (true), the branch target instruction cache model is enabled.
1384
     If 0 (the default), it is disabled.
1385
 
1386
`sbp_bf_fwd = 0|1'
1387
     If 1 (true), use forward prediction for the `l.bf' instruction. If
1388
 
1389
     instruction.
1390
 
1391
`sbp_bnf_fwd = 0|1'
1392
     If 1 (true), use forward prediction for the `l.bnf' instruction. If
1393
 
1394
     instruction.
1395
 
1396
`hitdelay = VALUE'
1397
     Set the number of cycles a branch prediction hit costs. Default
1398
     value 0.
1399
 
1400
`missdelay = VALUE'
1401
     Set the number of cycles a branch prediction miss costs. Default
1402
     value 0.
1403
 
1404
 
1405

1406
File: or1ksim.info,  Node: Debug Interface Configuration,  Prev: Branch Prediction Configuration,  Up: Core OpenRISC Configuration
1407
 
1408
3.3.8 Debug Interface Configuration
1409
-----------------------------------
1410
 
1411
The debug unit and debug interface configuration is described in
1412
`section debug'. This section may appear at most once. The following
1413
parameters may be specified.
1414
 
1415
`enabled = 0|1'
1416
     If 1 (true), the debug unit is enabled. If 0 (the default), it is
1417
     disabled.
1418
 
1419
          Note: This enables the functionality of the debug unit (its
1420
          registers etc) within the mode. It does not provide any
1421
          external interface to the debug unit. For that, see
1422
          `gdb_enabled' and `rsp_enabled' below.
1423
 
1424
`rsp_enabled = 0|1'
1425
     If 1 (true), the GDB "Remote Serial Protocol" server is started,
1426
     provding an interface to an external GNU debugger, using the port
1427
     specified in the `rsp_port' field (see below), or the
1428
     `or1ksim-rsp' TCP/IP service. If 0 (the default), the server is
1429
     not started, and no external interface is provided.
1430
 
1431
     For more detailed information on the interface to the GNU Debugger
1432
     see Embecosm Application Note 2, `Howto: Porting the GNU Debugger
1433
     Practical Experience with the OpenRISC 1000 Architecture', by
1434
     Jeremy Bennett, published by Embecosm Limited (`www.embecosm.com').
1435
 
1436
          Note: `rsp_enabled' may not be enabled with `gdb_enabled'
1437
          (see below). If both are enabled, a warning is issued and
1438
          only the "Remote Serial Protocol" interface is enabled.
1439
 
1440
`rsp_port = VALUE'
1441
     VALUE specifies the port to be used for the GDB "Remote Serial
1442
     Protocol" interface to the GNU Debugger (GDB). Default value
1443
     51000. If the value 0 is specified, Or1ksim will instead look for
1444
     a TCP/IP service named `or1ksim-rsp'.
1445
 
1446
          Tip: There is no registered port for Or1ksim "Remote Serial
1447
          Protocol" service `or1ksim-rsp'. Good practice suggests users
1448
          should adopt port values in the "Dynamic" or "Private" port
1449
          range, i.e. 49152-65535.
1450
 
1451
`gdb_enabled = 0|1'
1452
     If 1 (true), the OpenRISC Remote JTAG protocol server is started,
1453
     provding an interface to an external GNU debugger, using the port
1454
     specified in the `server_port' field (see below), or the `or1ksim'
1455
     TCP/IP service. If 0 (the default), the server is not started, and
1456
     no external interface is provided.
1457
 
1458
     For more detailed information on the interface to the GNU Debugger
1459
     see Embecosm Application Note 2, `Howto: Porting the GNU Debugger
1460
     Practical Experience with the OpenRISC 1000 Architecture', by
1461
     Jeremy Bennett, published by Embecosm Limited (`www.embecosm.com').
1462
 
1463
          Note: The OpenRISC Remote JTAG protocol is unique to
1464
          OpenRISC, and remains only for backward compatibility. New
1465
          users should adopt the standard GDB "Remote Serial Protocol"
1466
          interface (see `rsp_enabled' above) providing access to a
1467
          wider range of GDB functionality.
1468
 
1469
          Note: `gdb_enabled' may not be enabled with `rsp_enabled'. If
1470
          both are enabled, a warning is issued and only the "Remote
1471
          Serial Protocol" interface is enabled.
1472
 
1473
`server_port = VALUE'
1474
     VALUE specifies the port to be used for the OpenRISC Rmote JTAG
1475
     protocol interface to the GNU Debugger (GDB). Default value 51000.
1476
     If the value 0 is specified, Or1ksim will instead look for a TCP/IP
1477
     service named `or1ksim'.
1478
 
1479
          Tip: There is no registered port for Or1ksim Remote JTAG
1480
          Interface or service `or1ksim'. Good practice suggests users
1481
          should adopt port values in the "Dynamic" or "Private" port
1482
          range, i.e. 49152-65535.
1483
 
1484
`vapi_id = VALUE'
1485
     VALUE specifies the value of the Verification API (VAPI) base
1486
     address to be used with the debug unit. *Note Verification API:
1487
     Verification API, for more details.
1488
 
1489
     If this is specified and VALUE is non-zero, all OpenRISC Remote
1490
     JTAG protocol transactions will be logged to the VAPI log file, if
1491
     enabled. This is the only functionality associated with VAPI for
1492
     the debug unit. No VAPI commands are sent, nor requests handled.
1493
 
1494
 
1495

1496
File: or1ksim.info,  Node: Peripheral Configuration,  Prev: Core OpenRISC Configuration,  Up: Configuration
1497
 
1498
3.4 Configuring Memory Mapped Peripherals
1499
=========================================
1500
 
1501
All peripheral components are optional. If they are specified, then
1502
(unlike other components) by default they are enabled.
1503
 
1504
* Menu:
1505
 
1506
* Memory Controller Configuration::
1507
* UART Configuration::
1508
* DMA Configuration::
1509
* Ethernet Configuration::
1510
* GPIO Configuration::
1511
* Display Interface Configuration::
1512
* Frame Buffer Configuration::
1513
* Keyboard Configuration::
1514
* Disc Interface Configuration::
1515
* Generic Peripheral Configuration::
1516
 
1517

1518
File: or1ksim.info,  Node: Memory Controller Configuration,  Next: UART Configuration,  Up: Peripheral Configuration
1519
 
1520
3.4.1 Memory Controller Configuration
1521
-------------------------------------
1522
 
1523
The memory controller used in Or1ksim is the component implemented at
1524
OpenCores, and found in the top level CVS directory, `mem_ctrl'. It is
1525
described in the document `Memory Controller IP Core' by Rudolf
1526
Usselmann, which can be found in the `doc' subdirectory. It is a memory
1527
mapped component, which resides on the main OpenRISC Wishbone data bus.
1528
 
1529
The memory controller configuration is described in `section mc'. This
1530
section may appear multiple times, specifying multiple memory
1531
controllers. The following parameters may be specified.
1532
 
1533
`enabled = 0|1'
1534
     If 1 (true, the default), this memory controller is enabled. If 0,
1535
     it is disabled.
1536
 
1537
          Note: The memory controller can effectively also be disabled
1538
          by setting an appropriate power on control register value
1539
          (see below). However this should only be used if it is
1540
          desired to specifically model this behavior of the memory
1541
          controller, not as a way of disabling the memory controller
1542
          in general.
1543
 
1544
`baseaddr = VALUE'
1545
     Set the base address of the memory controller's memory mapped
1546
     registers to VALUE. The default is 0, which is probably not a
1547
     sensible value.
1548
 
1549
     The memory controller has a 7 bit address bus, with a total of 19
1550
     32-bit registers, at addresses 0x00 through 0x4c (address 0x0c and
1551
     addresses 0x50 through 0x7c are not used).
1552
 
1553
`poc = VALUE'
1554
     Specifies the value of the power on control register, The least
1555
     signficant two bits specify the bus width (use 0 for an 8-bit bus,
1556
     1 for a 16-bit bus and 2 for a 32-bit bus) and the next two bits
1557
     the type of memory connected (use 0 for a disabled interface, 1
1558
     for SSRAM, 2 for asyncrhonous devices and 3 for synchronous
1559
     devices).
1560
 
1561
     If other bits are specified, they are ignored with a warning.
1562
 
1563
          Caution: The default value, 0, corresponds to a disabled
1564
          8-bit bus, and is likely not the most suitable value
1565
 
1566
`index = VALUE'
1567
     Specify the index of this memory controller amongst all the memory
1568
     controllers. This value should be unique for each memory
1569
     controller, and is used to associate specific memories with the
1570
     controller, through the `mc' field in the `section memory'
1571
     configuration (*note Memory Configuration: Memory Configuration.).
1572
 
1573
     The default value, 0, is suitable when there is only one memory
1574
     controller.
1575
 
1576
 
1577

1578
File: or1ksim.info,  Node: UART Configuration,  Next: DMA Configuration,  Prev: Memory Controller Configuration,  Up: Peripheral Configuration
1579
 
1580
3.4.2 UART Configuration
1581
------------------------
1582
 
1583
The UART implemented in Or1ksim follows the specification of the
1584
National Semiconductor 16450 and 16550 parts. It is a memory mapped
1585
component, which resides on the main OpenRISC Wishbone data bus.
1586
 
1587
The component provides a number of interfaces to emulate the behavior
1588
of an external terminal connected to the UART.
1589
 
1590
UART configuration is described in `section uart'. This section may
1591
appear multiple times, specifying multiple UARTs. The following
1592
parameters may be specified.
1593
 
1594
`enabled = 0|1'
1595
     If 1 (true, the default), this UART is enabled. If 0, it is
1596
     disabled.
1597
 
1598
`baseaddr = VALUE'
1599
     Set the base address of the UART's memory mapped registers to
1600
     VALUE. The default is 0, which is probably not a sensible value.
1601
 
1602
     The UART has a 3 bit address bus, with a total of 8 8-bit
1603
     registers, at addresses 0x0 through 0x7.
1604
 
1605
`channel = "TYPE:ARGS"'
1606
     Specify the channel representing the terminal connected to the UART
1607
     Rx & Tx pins.
1608
 
1609
    `channel="file:`rxfile',`txfile'"'
1610
          Read input characters from the file `rxfile' and write output
1611
          characters to the file `txfile' (which will be created if
1612
          required).
1613
 
1614
    `channel="xterm:ARGS"'
1615
          Create an xterm on startup, write UART Tx traffic to the
1616
          xterm and take Rx traffic from the keyboard when the xterm
1617
          window is selected. Additional arguments to the xterm command
1618
          (for example specifying window size may be specified in ARGS,
1619
          or this may be left blank.
1620
 
1621
    `channel="tcp:VALUE"'
1622
          Open the TCP/IP port specified by VALUE and read and write
1623
          UART traffic from and to it.
1624
 
1625
          Typically a telnet session is connected to the other end of
1626
          this port.
1627
 
1628
               Tip: There is no registered port for Or1ksim telnet UART
1629
               connection. Priviledged access is required to read
1630
               traffic on the registered "well-known" telnet port (23).
1631
               Instead users should use port values in the "Dynamic" or
1632
               "Private" port range, i.e. 49152-65535.
1633
 
1634
    `channel="fd:`rxfd',`txfd'"'
1635
          Read and write characters from and to the existing open
1636
          numerical file descriptors, file `rxfd' and `txfd'.
1637
 
1638
    `channel="tty:device=/dev/ttyS0,baud=9600"'
1639
          Read and write characters from and to a physical serial port.
1640
          The precise device (shown here as `/dev/ttyS0') may vary from
1641
          machine to machine.
1642
 
1643
 
1644
     The default value for this field is `"xterm:"'.
1645
 
1646
`irq = VALUE'
1647
     Use VALUE as the IRQ number of this UART. Default value 0.
1648
 
1649
`16550 = 0|1'
1650
     If 1 (true), the UART has the functionality of a 16550. If 0 (the
1651
     default), it has the functionality of a 16450. The principal
1652
     difference is that the 16550 can buffer multiple characters.
1653
 
1654
`jitter = VALUE'
1655
     Set the jitter, modeled as a time to block, to VALUE milliseconds.
1656
     Set to -1 to disable jitter modeling. Default value 0.
1657
 
1658
          Note: This functionality has yet to be implemented, so this
1659
          parameter has no effect.
1660
 
1661
`vapi_id = VALUE'
1662
     VALUE specifies the value of the Verification API (VAPI) base
1663
     address to be used with the UART. *Note Verification API:
1664
     Verification API, for more details, which details the use of the
1665
     VAPI with the UART.
1666
 
1667
 
1668

1669
File: or1ksim.info,  Node: DMA Configuration,  Next: Ethernet Configuration,  Prev: UART Configuration,  Up: Peripheral Configuration
1670
 
1671
3.4.3 DMA Configuration
1672
-----------------------
1673
 
1674
The DMA controller used in Or1ksim is the component implemented at
1675
OpenCores, and found in the top level CVS directory, `wb_dma'. It is
1676
described in the document `Wishbone DMA/Bridge IP Core' by Rudolf
1677
Usselmann, which can be found in the `doc' subdirectory. It is a memory
1678
mapped component, which resides on the main OpenRISC Wishbone data bus.
1679
The present implementation is incomplete, intended only to support the
1680
Ethernet interface (*note Ethernet Configuration::), although the
1681
Ethernet interface is not yet completed.
1682
 
1683
DMA configuration is described in `section dma'. This section may
1684
appear multiple times, specifying multiple DMA controllers. The
1685
following parameters may be specified.
1686
 
1687
`enabled = 0|1'
1688
     If 1 (true, the default), this DMA controller is enabled. If 0, it
1689
     is disabled.
1690
 
1691
`baseaddr = VALUE'
1692
     Set the base address of the DMA's memory mapped registers to
1693
     VALUE. The default is 0, which is probably not a sensible value.
1694
 
1695
     The DMA controller has a 10 bit address bus, with a total of 253
1696
     32-bit registers. The first 5 registers at addresses 0x000 through
1697
     0x010 control the overall behavior of the DMA controller. There are
1698
     then 31 blocks of 8 registers, controlling each of the 31 DMA
1699
     channels available. Addresses 0x014 through 0x01c are not used.
1700
 
1701
`irq = VALUE'
1702
     Use VALUE as the IRQ number of this DMA controller. Default value
1703
     0.
1704
 
1705
`vapi_id = VALUE'
1706
     VALUE specifies the value of the Verification API (VAPI) base
1707
     address to be used with the DMA controller. *Note Verification
1708
     API: Verification API, for more details, which details the use of
1709
     the VAPI with the DMA controller.
1710
 
1711
 
1712

1713
File: or1ksim.info,  Node: Ethernet Configuration,  Next: GPIO Configuration,  Prev: DMA Configuration,  Up: Peripheral Configuration
1714
 
1715
3.4.4 Ethernet Configuration
1716
----------------------------
1717
 
1718
The Ethernet MAC used in Or1ksim is the component implemented at
1719
OpenCores, and found in the top level CVS directory, `ethernet'. It
1720
also forms part of the OpenRISC SoC, ORPSoC. It is described in the
1721
document `Ethernet IP Core Specification' by Igor Mohor, which can be
1722
found in the `doc' subdirectory. It is a memory mapped component, which
1723
resides on the main OpenRISC Wishbone data bus.
1724
 
1725
Ethernet configuration is described in `section ethernet'. This section
1726
may appear multiple times, specifying multiple Ethernet interfaces. The
1727
following parameters may be specified.
1728
 
1729
`enabled = 0|1'
1730
     If 1 (true, the default), this Ethernet MAC is enabled. If 0, it is
1731
     disabled.
1732
 
1733
`baseaddr = VALUE'
1734
     Set the base address of the MAC's memory mapped registers to
1735
     VALUE. The default is 0, which is probably not a sensible value.
1736
 
1737
     The Ethernet MAC has a 7-bit address bus, with a total of 21
1738
     32-bit registers. Addresses 0x54 through 0x7c are not used.
1739
 
1740
          Note: The Ethernet specification describes a Tx control
1741
          register, `TXCTRL', at address 0x50. However this register is
1742
          not implemented in the Or1ksim model.
1743
 
1744
`dma = VALUE'
1745
     VALUE specifies the DMA controller with which this Ethernet is
1746
     associated. The default value is 0.
1747
 
1748
          Note: Support for external DMA is not provided in the current
1749
          implementation, and this value is ignored. In any case there
1750
          is no equivalent field to which this can be matched in the
1751
          current DMA component implementation (*note DMA
1752
          Configuration: DMA Configuration.).
1753
 
1754
`irq = VALUE'
1755
     Use VALUE as the IRQ number of this Ethernet MAC. Default value 0.
1756
 
1757
`rtx_type = 0|1'
1758
     If 1 (true) use a socket interface to the Ethernet (see parameter
1759
     `sockif' below). If 0 (the default), use a file interface, reading
1760
     and writing from and to the files specified in the `rxfile' and
1761
     `txfile' parameters (see below).
1762
 
1763
          Note: By default the socket interface is not provided in
1764
          Or1ksim. If it is required, this must be requested when
1765
          configuring, by use of the `--enable-ethphy' option to
1766
          `configure'.
1767
 
1768
               configure --target=or32-uclinux --enable-ethphy ...
1769
 
1770
`rx_channel = RXVALUE'
1771
`tx_channel = TXVALUE'
1772
     RXVALUE specifies the DMA channel to use for receive and TXVALUE
1773
     the DMA channel to use for transmit. Both default to 0.
1774
 
1775
          Note: As noted above, support for external DMA is not
1776
          provided in the current implementation, and so these values
1777
          are ignored.
1778
 
1779
`rxfile = "RXFILE"'
1780
`txfile = "TXFILE"'
1781
     When `rtx_type' is 0 (see above), RXFILE specifies the file to use
1782
     as input and TXFILE specifies the fie to use as output.
1783
 
1784
     The file contains a sequence of packets. Each packet consists of a
1785
     packet length (32 bits), followed by that many bytes of data. Once
1786
     the input file is empty, the Ethernet MAC behaves as though there
1787
     were no data on the Ethernet. The default values of these
1788
     parameters are `"eth_rx"' and `"eth_tx"' respectively.
1789
 
1790
     The input file must exist and be readable. The output file must be
1791
     writable and will be created if necessary. If either of these
1792
     conditions is not met, a warning will be given.
1793
 
1794
`sockif = "SERVICE"'
1795
     When `rtx_type' is 1 (see above), SERVICE specifies the service to
1796
     use for communication. This may be TCP/IP or UDP/IP. The default
1797
     value of this parameter is `"or1ksim_eth"'.
1798
 
1799
`vapi_id = VALUE'
1800
     VALUE specifies the value of the Verification API (VAPI) base
1801
     address to be used with the Ethernet PHY. *Note Verification API:
1802
     Verification API, for more details, which details the use of the
1803
     VAPI with the DMA controller.
1804
 
1805
 
1806

1807
File: or1ksim.info,  Node: GPIO Configuration,  Next: Display Interface Configuration,  Prev: Ethernet Configuration,  Up: Peripheral Configuration
1808
 
1809
3.4.5 GPIO Configuration
1810
------------------------
1811
 
1812
The GPIO used in Or1ksim is the component implemented at OpenCores, and
1813
found in the top level CVS directory, `gpio'. It is described in the
1814
document `GPIO IP Core Specification' by Damjan Lampret and Goran
1815
Djakovic, which can be found in the `doc' subdirectory. It is a memory
1816
mapped component, which resides on the main OpenRISC Wishbone data bus.
1817
 
1818
GPIO configuration is described in `section gpio'. This section may
1819
appear multiple times, specifying multiple GPIO devices. The following
1820
parameters may be specified.
1821
 
1822
`enabled = 0|1'
1823
     If 1 (true, the default), this GPIO is enabled. If 0, it is
1824
     disabled.
1825
 
1826
`baseaddr = VALUE'
1827
     Set the base address of the GPIO's memory mapped registers to
1828
     VALUE. The default is 0, which is probably not a sensible value.
1829
 
1830
     The GPIO has a 6 bit address bus, with a total of 10 32-bit
1831
     registers, although the number of bits that are actively used
1832
     varies. Addresses 0x28 through 0x3c are not used.
1833
 
1834
`irq = VALUE'
1835
     Use VALUE as the IRQ number of this GPIO. Default value 0.
1836
 
1837
`vapi_id = VALUE'
1838
     VALUE specifies the value of the Verification API (VAPI) base
1839
     address to be used with the GPIO. *Note Verification API:
1840
     Verification API, for more details, which details the use of the
1841
     VAPI with the GPIO controller. For backwards compatibility, the
1842
     alternative name `base_vapi_id' is supported for this parameter,
1843
     but deprecated.
1844
 
1845
 
1846

1847
File: or1ksim.info,  Node: Display Interface Configuration,  Next: Frame Buffer Configuration,  Prev: GPIO Configuration,  Up: Peripheral Configuration
1848
 
1849
3.4.6 Display Interface Configuration
1850
-------------------------------------
1851
 
1852
Or1ksim models a VGA interface to an external monitor.  The VGA
1853
controller used in Or1ksim is the component implemented at OpenCores,
1854
and found in the top level CVS directory, `vga_lcd', with no support
1855
for the optional hardware cursors. It is described in the document
1856
`VGA/LCD Core v2.0 Specifications' by Richard Herveille, which can be
1857
found in the `doc' subdirectory. It is a memory mapped component, which
1858
resides on the main OpenRISC Wishbone data bus.
1859
 
1860
The current implementation provides only functionality to dump the
1861
screen to a file at intervals.
1862
 
1863
VGA controller configuration is described in `section vga'. This
1864
section may appear multiple times, specifying multiple VGA controllers.
1865
The following parameters may be specified.
1866
 
1867
`enabled = 0|1'
1868
     If 1 (true, the default), this VGA is enabled. If 0, it is
1869
     disabled.
1870
 
1871
`baseaddr = VALUE'
1872
     Set the base address of the VGA controller's memory mapped
1873
     registers to VALUE. The default is 0, which is probably not a
1874
     sensible value.
1875
 
1876
     The VGA controller has a 12-bit address bus, with 7 32-bit
1877
     registers, at addresses 0x000 through 0x018, and two color lookup
1878
     tables at addresses 0x800 through 0xfff. The hardware cursor
1879
     registers are not implemented, so addresses 0x01c through 0x7fc
1880
     are not used.
1881
 
1882
`irq = VALUE'
1883
     Use VALUE as the IRQ number of this VGA controller. Default value
1884
     0.
1885
 
1886
`refresh_rate = VALUE'
1887
     VALUE specifies number of cycles between screen dumps. Default
1888
     value is derived from the simulation clock cycle time (*note
1889
     Simulator Behavior: Simulator Behavior.), to correspond to dumping
1890
     50 times per simulated second.
1891
 
1892
`txfile = "FILE"'
1893
     FILE specifies the base of the filename for screen dumps.
1894
     Successive screen dumps will be in BMP format, in files with the
1895
     name `FILENNNN.bmp', where NNNN is a sequential count of the
1896
     screen dumps starting at zero. The default value is `"vga_out"'.
1897
     For backwards compatibility, the alternative name `filename' is
1898
     supported for this parameter, but deprecated.
1899
 
1900
 
1901

1902
File: or1ksim.info,  Node: Frame Buffer Configuration,  Next: Keyboard Configuration,  Prev: Display Interface Configuration,  Up: Peripheral Configuration
1903
 
1904
3.4.7 Frame Buffer Configuration
1905
--------------------------------
1906
 
1907
     Caution: The frame buffer is only partially implemented. Its
1908
     configuration fields are described here, but the component should
1909
     not be used at this time. Like the VGA controller, it is designed
1910
     to make screen dumps to file.
1911
 
1912
Frame buffer configuration is described in `section fb'. This section
1913
may appear multiple times, specifying multiple frame buffers. The
1914
following parameters may be specified.
1915
 
1916
`enabled = 0|1'
1917
     If 1 (true, the default), this frame buffer is enabled. If 0, it
1918
     is disabled.
1919
 
1920
`baseaddr = VALUE'
1921
     Set the base address of the frame buffer's memory mapped registers
1922
     to VALUE. The default is 0, which is probably not a sensible value.
1923
 
1924
     The frame buffer has an 121-bit address bus, with 4 32-bit
1925
     registers, at addresses 0x000 through 0x00c, and a PAL lookup
1926
     table at addresses 0x400 through 0x4ff. Addresses 0x010 through
1927
     0x3fc and addresses 0x500 through 0x7ff are not used.
1928
 
1929
`refresh_rate = VALUE'
1930
     VALUE specifies number of cycles between screen dumps. Default
1931
     value is derived from the simulation clock cycle time (*note
1932
     Simulator Behavior: Simulator Behavior.), to correspond to dumping
1933
     50 times per simulated second.
1934
 
1935
`txfile = "FILE"'
1936
     FILE specifies the base of the filename for screen dumps.
1937
     Successive screen dumps will be in BMP format, in files with the
1938
     name `FILENNNN.bmp', where NNNN is a sequential count of the
1939
     screen dumps starting at zero. The default value is `"fb_out"'.
1940
     For backwards compatibility, the alternative name `filename' is
1941
     supported for this parameter, but deprecated.
1942
 
1943
 
1944

1945
File: or1ksim.info,  Node: Keyboard Configuration,  Next: Disc Interface Configuration,  Prev: Frame Buffer Configuration,  Up: Peripheral Configuration
1946
 
1947
3.4.8 Keyboard Configuration (PS2)
1948
----------------------------------
1949
 
1950
The PS2 interface provided by Or1ksim is not documented. It may be
1951
based on the PS2 project at OpenCores, and found in the top level CVS
1952
directory, `ps2'. However this project lacks any documentation beyond
1953
its project webpage. Since most PS2 interfaces follow the Intel i8042
1954
standard, this is presumably what is expected with this device.
1955
 
1956
The implementation only provides for keyboard support, which is
1957
modelled as a file of keystrokes. There is no mouse support.
1958
 
1959
     Caution: A standard i8042 device has two registers at addresses
1960
     0x60 (command) and 0x64 (status). Inspection of the code, suggests
1961
     that the Or1ksim component places these registers at addresses
1962
     0x00 and 0x04.
1963
 
1964
     The port of Linux for the OpenRISC 1000, which runs on Or1ksim
1965
     implements the i8042 device driver, anticipating these registers
1966
     reside at their conventional address. It seems unlikel that this
1967
     code will work.
1968
 
1969
     This component should be used with caution.
1970
 
1971
Keyboard configuration is described in `section kbd'. This section may
1972
appear multiple times, specifying multiple keyboard interfaces. The
1973
following parameters may be specified.
1974
 
1975
`enabled = 0|1'
1976
     If 1 (true, the default), this keyboard is enabled. If 0, it is
1977
     disabled.
1978
 
1979
`baseaddr = VALUE'
1980
     Set the base address of the keyboard's memory mapped registers to
1981
     VALUE. The default is 0, which is probably not a sensible value.
1982
 
1983
     The keyboard PS/2 interface has an 3-bit address bus, with 2 8-bit
1984
     registers, at addresses 0x000 and 0x004.
1985
 
1986
          Caution: As noted above, a standard Intel 8042 interface
1987
          would expect to find these registers at locations 0x60 and
1988
          0x64, thus requiring at least a 7-bit bus.
1989
 
1990
`irq = VALUE'
1991
     Use VALUE as the IRQ number of this Keyboard interface. Default
1992
     value 0.
1993
 
1994
`rxfile = "FILE"'
1995
     `file' specifies a file containing raw key stroke data, which
1996
     models the input from a physical keyboard. The default value is
1997
     `"kbd_in"'.
1998
 
1999
 
2000

2001
File: or1ksim.info,  Node: Disc Interface Configuration,  Next: Generic Peripheral Configuration,  Prev: Keyboard Configuration,  Up: Peripheral Configuration
2002
 
2003
3.4.9 Disc Interface Configuration
2004
----------------------------------
2005
 
2006
The ATA/ATAPI disc controller used in Or1ksim is the OCIDEC (OpenCores
2007
IDE Controller) component implemented at OpenCores, and found in the
2008
top level CVS directory, `ata'. It is described in the document
2009
`ATA/ATAPI-5 Core Specification' by Richard Herveille, which can be
2010
found in the `doc' subdirectory. It is a memory mapped component, which
2011
resides on the main OpenRISC Wishbone data bus.
2012
 
2013
ATA/ATAPI configuration is described in `section ata'. This section may
2014
appear multiple times, specifying multiple disc controllers. The
2015
following parameters may be specified.
2016
 
2017
`enabled = 0|1'
2018
     If 1 (true, the default), this ATA/ATAPI interface is enabled. If
2019
     0, it is disabled.
2020
 
2021
`baseaddr = VALUE'
2022
     Set the base address of the ATA/ATAPI interface's memory mapped
2023
     registers to VALUE. The default is 0, which is probably not a
2024
     sensible value.
2025
 
2026
     The ATA/ATAPI PS/2 interface has an 5-bit address bus, with 8
2027
     32-bit registers. Depending on the version of the OCIDEC ATA/ATAPI
2028
     interface selected (see `dev_id' below), not all registers will be
2029
     available.
2030
 
2031
`irq = VALUE'
2032
     Use VALUE as the IRQ number of this ATA/ATAPI interface. Default
2033
     value 0.
2034
 
2035
`dev_id = 1|2|3'
2036
     This parameter specifies which version of the OCIDEC ATA/ATAPI
2037
     interface to model. The default value is 1.
2038
 
2039
     Version 1 supports only the `CTRL', `STAT' and `PCTR' registers.
2040
     Versions 2 & 3 add the `FCTR' registers, Version 3 adds the `DTR'
2041
     registers and the `RXD'/`TXD' registers.
2042
 
2043
`rev = VALUE'
2044
     Set the VALUE as the revision of the OCIDEC ATA/ATAPI interface.
2045
     The default value is 1. The default value is 0. Its value should
2046
     be in the range 0-15. Larger values are truncated with a warning.
2047
     This only affects the reset value of the `STAT' register, where it
2048
     forms bits 24-27.
2049
 
2050
`pio_mode0_t1 = VALUE'
2051
`pio_mode0_t2 = VALUE'
2052
`pio_mode0_t4 = VALUE'
2053
`pio_mode0_teoc = VALUE'
2054
     These parameters specify the timings for use with Programmed
2055
     Input/Output (PIO) transfers. They are specified as the number of
2056
     clock cycles - 2, rounded up to the next highest integer, or zero
2057
     if that would be negative. The values should not exceed 255. If
2058
     they do, they will be ignored with a warning.
2059
 
2060
     See the ATA/ATAPI-5 specification for explanations of each of these
2061
     timing parameters. The default values are:
2062
 
2063
          pio_mode0_t1   =  6
2064
          pio_mode0_t2   = 28
2065
          pio_mode0_t4   =  2
2066
          pio_mode0_teoc = 23
2067
 
2068
`dma_mode0_tm = VALUE'
2069
`dma_mode0_td = VALUE'
2070
`dma_mode0_teoc = VALUE'
2071
     These parameters specify the timings for use with DMA transfers.
2072
     They are specified as the number of clock cycles - 2, rounded up
2073
     to the next highest integer, or zero if that would be negative.
2074
     The values should not exceed 255. If they do, they will be ignored
2075
     with a warning.
2076
 
2077
     See the ATA/ATAPI-5 specification for explanations of each of these
2078
     timing parameters. The default values are:
2079
 
2080
          dma_mode0_tm   =  4
2081
          dma_mode0_td   = 21
2082
          dma_mode0_teoc = 21
2083
 
2084
 
2085
3.4.9.1 ATA/ATAPI Device Configuration
2086
......................................
2087
 
2088
Within the `section ata', each device is specified separately. The
2089
device subsection is introduced by
2090
 
2091
     device VALUE
2092
 
2093
VALUE is the device number, which should be 0 or 1. The subsection ends
2094
with `enddevice'. Note that if the same device number is specified more
2095
than once, the previous values will be overwritten. Within the `device'
2096
subsection, the following parameters may appear:
2097
 
2098
`type = VALUE'
2099
     VALUEspecifies the type of device: 0 (the default) for "not
2100
     connected", 1 for hard disk simulated in a file and 2 for local
2101
     system hard disk.
2102
 
2103
`file = "FILENAME"'
2104
     `filename' specifies the file to be used for a simulated ATA
2105
     device if the file type (see `type' above) is 1. Default value
2106
     `"ata-FileN"', where N is the device number.
2107
 
2108
`size = VALUE'
2109
     VALUE specifies the size of a simulated ATA device if the file
2110
     type (see `type' above) is 1. The default value is zero.
2111
 
2112
`packet = 0|1'
2113
     If 1 (true), implement the PACKET command feature set. If 0 (the
2114
     default), do not implement the PACKET command feature set.
2115
 
2116
`firmware = "STR"'
2117
     Firmware to report in response to the "Identify Device" command.
2118
     Default `"02207031"'.
2119
 
2120
`heads = VALUE'
2121
     Number of heads in the device. Default 7, use -1 to disable all
2122
     heads.
2123
 
2124
`sectors = VALUE'
2125
     Number of sectors per track in the device. Default 32.
2126
 
2127
`mwdma = 0|1|2|-1'
2128
     Highest multi-word DMA mode supported. Default 2, use -1 to
2129
     disable.
2130
 
2131
`pio = 0|1|2|3|4'
2132
     Highest PIO mode supported. Default 4.
2133
 
2134
 
2135

2136
File: or1ksim.info,  Node: Generic Peripheral Configuration,  Prev: Disc Interface Configuration,  Up: Peripheral Configuration
2137
 
2138
3.4.10 Generic Peripheral Configuration
2139
---------------------------------------
2140
 
2141
When used as a library (*note Simulator Library: Simulator Library.),
2142
Or1ksim makes provision for any additional peripheral to be implemented
2143
externally. Any read or write access to this peripheral's memory map
2144
generates "upcall"s to an external handler. This interface can support
2145
either C or C++, and was particularly designed to facilitate support
2146
for OSCI SystemC (see `http://www.systemc.org').
2147
 
2148
Generic peripheral configuration is described in `section generic'.
2149
This section may appear multiple times, specifying multiple external
2150
peripherals. The following parameters may be specified.
2151
 
2152
`enabled = 0|1'
2153
     If 1 (true, the default), this ATA/ATAPI interface is enabled. If
2154
     0, it is disabled.
2155
 
2156
`baseaddr = VALUE'
2157
     Set the base address of the generic peripheral's memory mapped
2158
     registers to VALUE. The default is 0, which is probably not a
2159
     sensible value.
2160
 
2161
     The size of the memory mapped register space is controlled by the
2162
     `size' paramter, described below.
2163
 
2164
`size = VALUE'
2165
     Set the size of the generic peripheral's memory mapped register
2166
     space to VALUE bytes. Any read or write accesses to addresses with
2167
     offsets of 0 to VALUE-1 bytes from the base address specified in
2168
     parameter `baseaddr' (see above) will be directed to the external
2169
     interface.
2170
 
2171
     VALUE will be rounded up the nearest power of 2. It's default
2172
     value is zero. If VALUE is not an exact power of two, accesses to
2173
     address offsets of VALUE or above up to the next power of 2 will
2174
     generate a warning, and have no effect (reads will return zero).
2175
 
2176
`name = "STR"'
2177
     This gives the peripheral the name `"STR"'. This is used to
2178
     identify the peripheral in error messages and warnings, and when
2179
     reporting its status. The default value is
2180
     `"anonymous external peripheral"'.
2181
 
2182
`byte_enabled = 0|1'
2183
`hw_enabled = 0|1'
2184
`word_enabled = 0|1'
2185
     If 1 (true, the default), these parameters respectively enable the
2186
     device for byte wide, half-word wide and word wide accesses. If 0,
2187
     accesses of that width will fail.
2188
 
2189
 
2190

2191
File: or1ksim.info,  Node: Interactive Command Line,  Next: Verification API,  Prev: Configuration,  Up: Top
2192
 
2193
4 Interactive Command Line
2194
**************************
2195
 
2196
If started with the `-f' flag, or if interrupted with `ctrl-C', Or1ksim
2197
provides the user with an interactive command line. The commands
2198
available, which may not be abbreviated, are:
2199
 
2200
`q'
2201
     Exit the simulator
2202
 
2203
`r'
2204
     Display all the General Purpose Registers (GPRs). Also shows the
2205
     just executed and next to be executed instructions symbolically
2206
     and the state of the flag in the Supervision Register.
2207
 
2208
`t'
2209
     Execute the next instruction and then display register/instruction
2210
     information as with the `r' command (see above).
2211
 
2212
`run NUM [ hush ]'
2213
     Execute NUM instructions. The register/instruction information is
2214
     displayed after each instruction, as with the `r' command (see
2215
     above) _unless_ `hush' is specified.
2216
 
2217
`pr REG VALUE'
2218
     Patch register REG with VALUE.
2219
 
2220
`dm FROMADDR [ TOADDR ]'
2221
     Display memory bytes between FROMADDR and TOADDR. If TOADDR is not
2222
     given, 64 bytes are displayed, starting at FROMADDR.
2223
 
2224
          Caution: The output from this command is broken (a bug).
2225
          Or1ksim attempts to print out 16 bytes per row. However,
2226
          instead of printing out the address at the start of each row,
2227
          it prints the address (of the first of the 16 bytes) before
2228
          _each_ byte.
2229
 
2230
`de FROMADDR [ TOADDR ]'
2231
     Disassemble code between FROMADDR and TOADDR. If TOADDR is not
2232
     given, 16 instructions are disassembled.
2233
 
2234
     The disassembly is entirely numerical, and gives no symbolic
2235
     information.
2236
 
2237
`pm ADDR VALUE'
2238
     Patch the 4 bytes in memory starting at ADDR with the 32-bit VALUE.
2239
 
2240
`pc VALUE'
2241
     Patch the program counter with VALUE.
2242
 
2243
`cm FROMADDR TOADDR SIZE'
2244
     Copy SIZE bytes in memory from FROMADDR to TOADDR.
2245
 
2246
`break ADDR'
2247
     Toggle the breakpoint set at ADDR.
2248
 
2249
`breaks'
2250
     List all set breakpoints
2251
 
2252
`reset'
2253
     Reset the simulator. Includes modeling a reset of the processor, so
2254
     execution will restart from the reset vector location, 0x100.
2255
 
2256
`hist'
2257
     If saving the execution history has been configured (*note
2258
     Simulator Behavior: Simulator Behavior.), display the execution
2259
     history.
2260
 
2261
`stall'
2262
     Stall the processor, so that control is passed to the debug unit.
2263
     When stalled, the processor can execute no instructions. This
2264
     command is useful when debugging the JTAG interface, used by
2265
     debuggers such as GDB.
2266
 
2267
`unstall'
2268
     Unstall the processor, so that normal execution can continue. This
2269
     command is useful when debugging the JTAG interface, used by
2270
     debuggers such as GDB.
2271
 
2272
`stats CATEGORY | clear'
2273
     Print the statistics for the given CATEGORY, if available, or
2274
     clear if `clear' is specified. The categories are:
2275
 
2276
    1
2277
          Miscellaneous statistics: branch predictions (if branch
2278
          predictions are enabled), branch target cache model (if
2279
          enabled), cache (if enbaled), MMU (if enabled) and number of
2280
          addtional load & store cycles.
2281
 
2282
          *Note Configuring the OpenRisc Achitectural Components: Core
2283
          OpenRISC Configuration, for details of how to enable these
2284
          various features.
2285
 
2286
    2
2287
          Instruction usage statistics. Requires hazard analysis to be
2288
          enabled (*note CPU Configuration: CPU Configuration.).
2289
 
2290
    3
2291
          Instruction dependency statistics. Requires hazard analysis
2292
          to be enabled (*note CPU Configuration: CPU Configuration.).
2293
 
2294
    4
2295
          Functional unit dependency statistics. Requires hazard
2296
          analysis to be enabled (*note CPU Configuration: CPU
2297
          Configuration.).
2298
 
2299
    5
2300
          Raw register usage over time. Requires hazard analysis to be
2301
          enabled (*note CPU Configuration: CPU Configuration.).
2302
 
2303
    6
2304
          Store buffer statistics. Requires the store buffer to be
2305
          enabled (*note CPU Configuration: CPU Configuration.).
2306
 
2307
 
2308
`info'
2309
     Display detailed information about the simulator configuration.
2310
     This is quite a lengthy about, because all MMU TLB information is
2311
     displayed.
2312
 
2313
`dv FROMADDR [ TOADDR ] [ MODULE ]'
2314
     Dump the area of memory between FROMADDR and TOADDR as Verilog
2315
     code for a synchronous, 23-bit wide SRAM module, named MODULE. If
2316
     TOADDR is not specified, then 64 bytes are dumped (as 16 32-bit
2317
     words). If MODULE is not specified, `or1k_mem' is used.
2318
 
2319
     To save to a file, use the redirection function (described after
2320
     this table, below).
2321
 
2322
`dh FROMADDR [ TOADDR ]'
2323
     Dump the area of memory between FROMADDR and TOADDR as 32-bit hex
2324
     numbers (no `0x', or `32'h' prefix). If TOADDR is not specified,
2325
     then 64 bytes are dumped (as 16 32-bit words).
2326
 
2327
     To save to a file, use the redirection function (described after
2328
     this table, below).
2329
 
2330
`setdbch'
2331
     Toggle debug channels on/off. *Note Standalone Simulator:
2332
     Standalone Simulator, for a description of specifying debug
2333
     channels on the command line.
2334
 
2335
`set SECTION PARAM = VALUE'
2336
     Set the configuration parameter PARA in section SECTION to VALUE.
2337
     *Note Configuration: Configuration, for details of configuration
2338
     parameters and their settings.
2339
 
2340
`debug'
2341
     Toggle the simulator debug mode. *Note Debug Interface
2342
     Configuration: Debug Interface Configuration, for information on
2343
     this parameter.
2344
 
2345
          Caution: This is effectively enabling or disabling the debug
2346
          unit. It does not effect the remote GDB debug interface.
2347
          However using the remote debug interface while the debug unit
2348
          is disabled will lead to undefined behavior and likely crash
2349
          Or1ksim
2350
 
2351
`cuc'
2352
     Enter the the Custom Unit Compiler command prompt (*note CUC
2353
     Configuration: CUC Configuration.).
2354
 
2355
          Caution: The CUC must be properly configured, for this to
2356
          succeed. In particular a timing file must be available and
2357
          readable. Otherwise Or1ksim will crash.
2358
 
2359
`help'
2360
     Print out brief information about each command available.
2361
 
2362
`mprofile [-vh] [-m M] [-g N] [-f FILE] FROM TO'
2363
     Run the memory profiling utility. This follows the same usage as
2364
     the standalone command (*note Memory Profiling Utility: Memory
2365
     Profiling Utility.).
2366
 
2367
`profile [-vhcq] [-g FILE]'
2368
     Run the instruction profiling utility. This follows the same usage
2369
     as the standalone command (*note Profiling Utility: Profiling
2370
     Utility.).
2371
 
2372
 
2373
For all commands, it is possible to redirect the output to a file, by
2374
using the redirection operator, `>'.
2375
 
2376
     COMMAND > FILENAME
2377
 
2378
This is particularly useful for commands dumping a large amount of
2379
output, such as `dv'.
2380
 
2381
     Caution: Unfortunately there is a serious bug with the redirection
2382
     operator. It does not return output to standard output after the
2383
     command completes. Until this bug is fixed, file redirection
2384
     should not be used.
2385
 
2386

2387
File: or1ksim.info,  Node: Verification API,  Next: Code Internals,  Prev: Interactive Command Line,  Up: Top
2388
 
2389
5 Verification API (VAPI)
2390
*************************
2391
 
2392
The Verification API (VAPI) provides a TCP/IP interface to allow
2393
components of the simulation to be controlled externally. The interface
2394
is polled for new requests on each simulated clock cycle. Components
2395
within the simulator may send responses to such requests.
2396
 
2397
The inteface is an asynchronous duplex protocol. On the request side it
2398
provides for simple commands, known as VAPI IDs (a 32 bit integer),
2399
with a single piece of data (also a 32 bit integer). On the send side,
2400
it provides for sending a single VAPI ID and data. However there is no
2401
explicit command-response structure. Some components just accept
2402
requests (e.g. to set values), some just generate sends (to report
2403
values), and some do both.
2404
 
2405
Each component has a base ID (32 bit) and its commands will start from
2406
that base ID. This provides a simple partitioning of the command space
2407
amongst components. Request commands will be directed to the component
2408
with the closest base ID lower than the VAPI ID of the command.
2409
 
2410
Thus if there are two components with base IDs of 0x200 and 0x300, and
2411
a request with VAPI ID of 0x203 is received, it will be directed to the
2412
first component as its command #3.
2413
 
2414
The results of VAPI interactions are logged (by default in `vapi.log'
2415
unless an alternative is specified in `section vapi').
2416
 
2417
Currently the following components support VAPI:
2418
 
2419
Debug Unit
2420
     Although the Debug Unit can specify a base VAPI ID, it is not used
2421
     to send commands or receive requests.
2422
 
2423
     Instead, if the base VAPI ID is set, all remote JTAG protocol
2424
     exchanges are logged in the VAPI log file.
2425
 
2426
UART
2427
     If a base VAPI ID is specified, the UART sends details of any
2428
     chars or break characters sent, with dteails of the line control
2429
     register etc encoded in the data packet sent.
2430
 
2431
     This supports a single VAPI command request, but encodes a
2432
     sub-command in the top 8 bits of the associated data.
2433
 
2434
    `0x00'
2435
          This stuffs the least significant 8 bits of the data into the
2436
          serial register of the UART and the next 8 bits into the line
2437
          control register, effectively providing control of the next
2438
          character to be sent or received.
2439
 
2440
    `0x01'
2441
          The divisor latch bytes are set from the least significant 16
2442
          bits of the data.
2443
 
2444
    `0x02'
2445
          The line control register is set from bits 15-8 of the data.
2446
 
2447
    `0x03'
2448
          The UART skew is set from the least significant 16 bits of
2449
          the data
2450
 
2451
    `0x04'
2452
          If the 16th most significant bit of the data is 1, start
2453
          sending breaks, otherwise stop sending breaks. The breaks are
2454
          sent or cleared after the number of UART clock divider ticks
2455
          specified by the data (immediately if the data is zero).
2456
 
2457
 
2458
DMA
2459
     Although the DMA unit supports a base VAPI ID in its configuration
2460
     (`section dma'), no VAPI data is sent, nor VAPI requests currently
2461
     implemented.
2462
 
2463
Ethernet
2464
     The following requests are handled by the Ethernet. Specified
2465
     symbolically, these are the increments from the base VAPI ID of the
2466
     Ethernet. At present no implementation is provided behind these
2467
     VAPI requests.
2468
 
2469
    `ETH_VAPI_DATA (0)'
2470
 
2471
    `ETH_VAPI_CTRL (0)'
2472
 
2473
GPIO
2474
     If a base VAPI ID is specified, the GPIO sends out on its base
2475
     VAPI ID (symbolically, GPIO_VAPI_DATA (0) offset from the base
2476
     VAPI ID) any changes in outputs.
2477
 
2478
     The following requests are handled by the GPIO. Specified
2479
     symbolically, these are the increments from the VAPI base ID of the
2480
     GPIO.
2481
 
2482
    `GPIO_VAPI_DATA (0)'
2483
          Set the next input to the commands data field
2484
 
2485
    `GPIO_VAPI_AUX (1)'
2486
          Set the GPIO auxiliary inputs to the data field
2487
 
2488
    `GPIO_VAPI_CLOCK (2)'
2489
          Add an external GPIO clock trigger of period specified in the
2490
          data field.
2491
 
2492
    `GPIO_VAPI_RGPIO_OE (3)'
2493
          Set the GPIO output enable to the data field
2494
 
2495
    `GPIO_VAPI_RGPIO_INTE (4)'
2496
          Set the next interrupt to the data field
2497
 
2498
    `GPIO_VAPI_RGPIO_PTRIG (5)'
2499
          Set the next trigger to the data field
2500
 
2501
    `GPIO_VAPI_RGPIO_AUX (6)'
2502
          Set the next auxiliary input to the data field
2503
 
2504
    `GPIO_VAPI_RGPIO_CTRL (7)'
2505
          Set th next control input to the data field
2506
 
2507
 
2508
 
2509

2510
File: or1ksim.info,  Node: Code Internals,  Next: GNU Free Documentation License,  Prev: Verification API,  Up: Top
2511
 
2512
6 A Guide to Or1ksim Internals
2513
******************************
2514
 
2515
These are notes to help those wanting to extend Or1ksim. This section
2516
assumes the use of a tag file, so file locations of entities'
2517
definitions are not in general provided. For more on tags, see the
2518
Linux manual page for `etags'. A tag file can be created with:
2519
 
2520
     make tags
2521
 
2522
* Menu:
2523
 
2524
* Coding Conventions::
2525
* Global Data Structures::
2526
* Concepts::
2527
* Internal Debugging::
2528
 
2529

2530
File: or1ksim.info,  Node: Coding Conventions,  Next: Global Data Structures,  Up: Code Internals
2531
 
2532
6.1 Coding Conventions for Or1ksim
2533
==================================
2534
 
2535
This chapter provides some guidelines for coding, to facilitate
2536
extensions to Or1ksim
2537
 
2538
_GNU Coding Standard_
2539
     Code should follow the GNU coding standard for C
2540
     (`http://www.gnu.org/prep/standards/'. If in doubt, put your code
2541
     through the `indent' program.
2542
 
2543
_`#include' headers_
2544
     All C source code files should include `config.h' before any other
2545
     file.
2546
 
2547
     This should be followed by inclusion of any system headers (but see
2548
     the comments about portability and `port.h' below) and then by any
2549
     Or1ksim package headers.
2550
 
2551
     If `port.h' is required, it should be the first package header to
2552
     be included after the system headers.
2553
 
2554
     All C source code and header files should directly include any
2555
     system or package header they depend on, i.e. not rely on any
2556
     other header having already included it. The two exceptions are
2557
 
2558
       1. All header files may assume that `config.h' has already been
2559
          included.
2560
 
2561
       2. System headers which impose portability problems should be
2562
          included by using the package header `port.h', rather than
2563
          the system headers themselves. This is the case for code
2564
          requiring
2565
 
2566
             * `strndup' (from `string.h')
2567
 
2568
             * Integer types (`intN_t', `uintN_t') (from `inttypes.h').
2569
 
2570
             * `isblank' (from `ctype.h')
2571
 
2572
 
2573
 
2574
_`#include' files once only_
2575
     All include files should be protected by `#ifndef' to ensure their
2576
     definitions are only included once. For instance a header file
2577
     `X-Y.H' should surround its contents with:
2578
 
2579
          #ifndef X_Y__H
2580
          #define X_Y__H
2581
 
2582
          
2583
 
2584
          #endif  /* X_Y__H */
2585
 
2586
_Avoid `typedef'_
2587
     The GNU coding style for C does not have a clear way to distinguish
2588
     between user type name and user variables. For this reason
2589
     `typedef' should be avoided except for the most ubiquitous user
2590
     defined types. This makes the code much easier to read.
2591
 
2592
     There are some `typedef' declarations in the `argtable2' library
2593
     and the ELF and COFF headers, because this code is taken from
2594
     other places.
2595
 
2596
     Within Or1ksim legacy uses of `typedef' have largely been purged,
2597
     except in the Custom Unit Compiler (*note Custom Unit Compiler
2598
     (CUC) Configuration: CUC Configuration.).
2599
 
2600
     The remaining uses of `typedef' occur in two places:
2601
 
2602
        * `port/port.h' defines types to replace those in header files
2603
          that are not available (character functions, string
2604
          duplication, integer types).
2605
 
2606
          `cpu/or1k/arch.h' defines types for the key Or1ksim entities:
2607
          addresses (`oraddr_t'), unsigned register values (`uorreg_t')
2608
          and signed register (`orreg_t') values.
2609
 
2610
 
2611
     Where new types are defined, they should appear in one of these two
2612
     files as appropriate. Or1ksim specific types appearing in `arch.h'
2613
     should always have the suffix `_h'.
2614
 
2615
_Don't begin names with underscore_
2616
     Names beginning with `_' are intended to be part of the C
2617
     infrastructure. They should not be used in the simulator code.
2618
 
2619
_Keep Non-global top level entities static_
2620
     All top level entities (functions, variables), which are not
2621
     explicitly part of a global interface should be declared static.
2622
     This ensures that unwanted connections are not inadvertently built
2623
     across the program.
2624
 
2625
_Use of `inline'_
2626
     Code should not be declared `inline'. Modern compilers can work
2627
     out for themselves what is best in this respect.
2628
 
2629
_Initialization_
2630
     All data structures should be explicitly initialized. In particular
2631
     code should not rely on static data structures being initialized to
2632
     zero.
2633
 
2634
     The rationale is that in future static data structures may become
2635
     dynamic. This has been a particular source of bugs in Or1ksim
2636
     historically.
2637
 
2638
     A specific case is with new peripherals, which should always
2639
     include a `start' function to pre-initialize all configuration
2640
     parameters to sensible defaults
2641
 
2642
_Configuration Validation_
2643
     All configuration values should be validated, preferably when
2644
     encountered, if not when the `section' is closed, or otherwise at
2645
     run time when the parameter is first used.
2646
 
2647
 
2648

2649
File: or1ksim.info,  Node: Global Data Structures,  Next: Concepts,  Prev: Coding Conventions,  Up: Code Internals
2650
 
2651
6.2 Global Data Structures
2652
==========================
2653
 
2654
`config'
2655
     The global variable `config' of type `struct config' holds the
2656
     configuration data for some of the Or1ksim components which are
2657
     always present. At present the components are:
2658
 
2659
        * The simulator defined in `section sim' (*note Simulator
2660
          Configuration: Simulator Configuration.).
2661
 
2662
        * The Verification API (VAPI) defined  in `section vapi' (*note
2663
          Verification API (VAPI) Configuration: Verification API
2664
          Configuration.).
2665
 
2666
        * The Custom Unit Compiler (CUC), defined in `section cuc'
2667
          (*note Custom Unit Compiler (CUC) Configuration: CUC
2668
          Configuration.).
2669
 
2670
        * The CPU, defined in `section cpu' (*note CPU Configuration:
2671
          CPU Configuration.).
2672
 
2673
        * The data cache (but not the instruction cache), defined in
2674
          `section dc' (*note Cache Configuration: Cache
2675
          Configuration.).
2676
 
2677
        * The power management unit, defined in `section pm' (*note
2678
          Power Management Configuration: Power Management
2679
          Configuration.).
2680
 
2681
        * The programmable interrupt controller, defined in
2682
          `section pic' (*note Interrupt Configuration: Interrupt
2683
          Configuration.).
2684
 
2685
        * Branch prediciton, defined in `section bpb' (*note Branch
2686
          Prediction Configuration: Branch Prediction Configuration.).
2687
 
2688
        * The debug unit, defined in `section debug' (*note Debug
2689
          Interface Configuration: Debug Interface Configuration.).
2690
 
2691
 
2692
     This struct is made of a collection of structs, one for each
2693
     component. For example the simulator configuration is held in
2694
     `config.sim'.
2695
 
2696
`config'
2697
     This is a linked list of data structures holding configuration data
2698
     for all sections which are not held in the main `config' data
2699
     structure. In general these are components (such as peripherals and
2700
     memory) which may occur multiple times. However it also handles
2701
     some architectural components which may occur only once, such as
2702
     the memory management units, the instruction cache, the interrupt
2703
     controller and branch prediction.
2704
 
2705
`runtime'
2706
     The global variable `runtime' of type `struct runtime' holds all
2707
     the runtime information about the simulation. To access this
2708
     variable, `sim-config.h' must be included.
2709
 
2710
     This struct is itself made of 3 other structs, `cpu' (for CPU run
2711
     time state), `vapi' (for Verification API state) and `cuc' (for
2712
     Custom Unit Compiler state).
2713
 
2714
 
2715

2716
File: or1ksim.info,  Node: Concepts,  Next: Internal Debugging,  Prev: Global Data Structures,  Up: Code Internals
2717
 
2718
6.3 Concepts
2719
============
2720
 
2721
_Output Redirection_
2722
     The current output stream is held in `runtime.cpu.fout'. Output
2723
     should be explicitly written to this stream, or may use the
2724
     `PRINTF' macro, which will write its arguments to this output
2725
     stream.
2726
 
2727
_Reset Hooks_
2728
     Any peripheral may register a routine to be called when the the
2729
     processor is reset by calling `reg_sim_reset', providing a
2730
     function and pointer to a data structure as arguments. On reset
2731
     that function will be called with the data stucture pointer as
2732
     argument.
2733
 
2734
 
2735

2736
File: or1ksim.info,  Node: Internal Debugging,  Prev: Concepts,  Up: Code Internals
2737
 
2738
6.4 Internal Debugging
2739
======================
2740
 
2741
The function `debug' is like `printf', but with an extra first
2742
argument, which is the debug level. If the debug level specified in the
2743
simulator configuration (*note Simulator Behavior: Simulator Behavior.)
2744
is greater than or equal to this value, the remaining arguments are
2745
printed to the current output stream (*note Output Redirection: Output
2746
Redirection.).
2747
 
2748

2749
File: or1ksim.info,  Node: GNU Free Documentation License,  Next: Index,  Prev: Code Internals,  Up: Top
2750
 
2751
7 GNU Free Documentation License
2752
********************************
2753
 
2754
                      Version 1.2, November 2002
2755
 
2756
     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
2757
     51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
2758
 
2759
     Everyone is permitted to copy and distribute verbatim copies
2760
     of this license document, but changing it is not allowed.
2761
 
2762
  0. PREAMBLE
2763
 
2764
     The purpose of this License is to make a manual, textbook, or other
2765
     functional and useful document "free" in the sense of freedom: to
2766
     assure everyone the effective freedom to copy and redistribute it,
2767
     with or without modifying it, either commercially or
2768
     noncommercially.  Secondarily, this License preserves for the
2769
     author and publisher a way to get credit for their work, while not
2770
     being considered responsible for modifications made by others.
2771
 
2772
     This License is a kind of "copyleft", which means that derivative
2773
     works of the document must themselves be free in the same sense.
2774
     It complements the GNU General Public License, which is a copyleft
2775
     license designed for free software.
2776
 
2777
     We have designed this License in order to use it for manuals for
2778
     free software, because free software needs free documentation: a
2779
     free program should come with manuals providing the same freedoms
2780
     that the software does.  But this License is not limited to
2781
     software manuals; it can be used for any textual work, regardless
2782
     of subject matter or whether it is published as a printed book.
2783
     We recommend this License principally for works whose purpose is
2784
     instruction or reference.
2785
 
2786
  1. APPLICABILITY AND DEFINITIONS
2787
 
2788
     This License applies to any manual or other work, in any medium,
2789
     that contains a notice placed by the copyright holder saying it
2790
     can be distributed under the terms of this License.  Such a notice
2791
     grants a world-wide, royalty-free license, unlimited in duration,
2792
     to use that work under the conditions stated herein.  The
2793
     "Document", below, refers to any such manual or work.  Any member
2794
     of the public is a licensee, and is addressed as "you".  You
2795
     accept the license if you copy, modify or distribute the work in a
2796
     way requiring permission under copyright law.
2797
 
2798
     A "Modified Version" of the Document means any work containing the
2799
     Document or a portion of it, either copied verbatim, or with
2800
     modifications and/or translated into another language.
2801
 
2802
     A "Secondary Section" is a named appendix or a front-matter section
2803
     of the Document that deals exclusively with the relationship of the
2804
     publishers or authors of the Document to the Document's overall
2805
     subject (or to related matters) and contains nothing that could
2806
     fall directly within that overall subject.  (Thus, if the Document
2807
     is in part a textbook of mathematics, a Secondary Section may not
2808
     explain any mathematics.)  The relationship could be a matter of
2809
     historical connection with the subject or with related matters, or
2810
     of legal, commercial, philosophical, ethical or political position
2811
     regarding them.
2812
 
2813
     The "Invariant Sections" are certain Secondary Sections whose
2814
     titles are designated, as being those of Invariant Sections, in
2815
     the notice that says that the Document is released under this
2816
     License.  If a section does not fit the above definition of
2817
     Secondary then it is not allowed to be designated as Invariant.
2818
     The Document may contain zero Invariant Sections.  If the Document
2819
     does not identify any Invariant Sections then there are none.
2820
 
2821
     The "Cover Texts" are certain short passages of text that are
2822
     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
2823
     that says that the Document is released under this License.  A
2824
     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
2825
     be at most 25 words.
2826
 
2827
     A "Transparent" copy of the Document means a machine-readable copy,
2828
     represented in a format whose specification is available to the
2829
     general public, that is suitable for revising the document
2830
     straightforwardly with generic text editors or (for images
2831
     composed of pixels) generic paint programs or (for drawings) some
2832
     widely available drawing editor, and that is suitable for input to
2833
     text formatters or for automatic translation to a variety of
2834
     formats suitable for input to text formatters.  A copy made in an
2835
     otherwise Transparent file format whose markup, or absence of
2836
     markup, has been arranged to thwart or discourage subsequent
2837
     modification by readers is not Transparent.  An image format is
2838
     not Transparent if used for any substantial amount of text.  A
2839
     copy that is not "Transparent" is called "Opaque".
2840
 
2841
     Examples of suitable formats for Transparent copies include plain
2842
     ASCII without markup, Texinfo input format, LaTeX input format,
2843
     SGML or XML using a publicly available DTD, and
2844
     standard-conforming simple HTML, PostScript or PDF designed for
2845
     human modification.  Examples of transparent image formats include
2846
     PNG, XCF and JPG.  Opaque formats include proprietary formats that
2847
     can be read and edited only by proprietary word processors, SGML or
2848
     XML for which the DTD and/or processing tools are not generally
2849
     available, and the machine-generated HTML, PostScript or PDF
2850
     produced by some word processors for output purposes only.
2851
 
2852
     The "Title Page" means, for a printed book, the title page itself,
2853
     plus such following pages as are needed to hold, legibly, the
2854
     material this License requires to appear in the title page.  For
2855
     works in formats which do not have any title page as such, "Title
2856
     Page" means the text near the most prominent appearance of the
2857
     work's title, preceding the beginning of the body of the text.
2858
 
2859
     A section "Entitled XYZ" means a named subunit of the Document
2860
     whose title either is precisely XYZ or contains XYZ in parentheses
2861
     following text that translates XYZ in another language.  (Here XYZ
2862
     stands for a specific section name mentioned below, such as
2863
     "Acknowledgements", "Dedications", "Endorsements", or "History".)
2864
     To "Preserve the Title" of such a section when you modify the
2865
     Document means that it remains a section "Entitled XYZ" according
2866
     to this definition.
2867
 
2868
     The Document may include Warranty Disclaimers next to the notice
2869
     which states that this License applies to the Document.  These
2870
     Warranty Disclaimers are considered to be included by reference in
2871
     this License, but only as regards disclaiming warranties: any other
2872
     implication that these Warranty Disclaimers may have is void and
2873
     has no effect on the meaning of this License.
2874
 
2875
  2. VERBATIM COPYING
2876
 
2877
     You may copy and distribute the Document in any medium, either
2878
     commercially or noncommercially, provided that this License, the
2879
     copyright notices, and the license notice saying this License
2880
     applies to the Document are reproduced in all copies, and that you
2881
     add no other conditions whatsoever to those of this License.  You
2882
     may not use technical measures to obstruct or control the reading
2883
     or further copying of the copies you make or distribute.  However,
2884
     you may accept compensation in exchange for copies.  If you
2885
     distribute a large enough number of copies you must also follow
2886
     the conditions in section 3.
2887
 
2888
     You may also lend copies, under the same conditions stated above,
2889
     and you may publicly display copies.
2890
 
2891
  3. COPYING IN QUANTITY
2892
 
2893
     If you publish printed copies (or copies in media that commonly
2894
     have printed covers) of the Document, numbering more than 100, and
2895
     the Document's license notice requires Cover Texts, you must
2896
     enclose the copies in covers that carry, clearly and legibly, all
2897
     these Cover Texts: Front-Cover Texts on the front cover, and
2898
     Back-Cover Texts on the back cover.  Both covers must also clearly
2899
     and legibly identify you as the publisher of these copies.  The
2900
     front cover must present the full title with all words of the
2901
     title equally prominent and visible.  You may add other material
2902
     on the covers in addition.  Copying with changes limited to the
2903
     covers, as long as they preserve the title of the Document and
2904
     satisfy these conditions, can be treated as verbatim copying in
2905
     other respects.
2906
 
2907
     If the required texts for either cover are too voluminous to fit
2908
     legibly, you should put the first ones listed (as many as fit
2909
     reasonably) on the actual cover, and continue the rest onto
2910
     adjacent pages.
2911
 
2912
     If you publish or distribute Opaque copies of the Document
2913
     numbering more than 100, you must either include a
2914
     machine-readable Transparent copy along with each Opaque copy, or
2915
     state in or with each Opaque copy a computer-network location from
2916
     which the general network-using public has access to download
2917
     using public-standard network protocols a complete Transparent
2918
     copy of the Document, free of added material.  If you use the
2919
     latter option, you must take reasonably prudent steps, when you
2920
     begin distribution of Opaque copies in quantity, to ensure that
2921
     this Transparent copy will remain thus accessible at the stated
2922
     location until at least one year after the last time you
2923
     distribute an Opaque copy (directly or through your agents or
2924
     retailers) of that edition to the public.
2925
 
2926
     It is requested, but not required, that you contact the authors of
2927
     the Document well before redistributing any large number of
2928
     copies, to give them a chance to provide you with an updated
2929
     version of the Document.
2930
 
2931
  4. MODIFICATIONS
2932
 
2933
     You may copy and distribute a Modified Version of the Document
2934
     under the conditions of sections 2 and 3 above, provided that you
2935
     release the Modified Version under precisely this License, with
2936
     the Modified Version filling the role of the Document, thus
2937
     licensing distribution and modification of the Modified Version to
2938
     whoever possesses a copy of it.  In addition, you must do these
2939
     things in the Modified Version:
2940
 
2941
       A. Use in the Title Page (and on the covers, if any) a title
2942
          distinct from that of the Document, and from those of
2943
          previous versions (which should, if there were any, be listed
2944
          in the History section of the Document).  You may use the
2945
          same title as a previous version if the original publisher of
2946
          that version gives permission.
2947
 
2948
       B. List on the Title Page, as authors, one or more persons or
2949
          entities responsible for authorship of the modifications in
2950
          the Modified Version, together with at least five of the
2951
          principal authors of the Document (all of its principal
2952
          authors, if it has fewer than five), unless they release you
2953
          from this requirement.
2954
 
2955
       C. State on the Title page the name of the publisher of the
2956
          Modified Version, as the publisher.
2957
 
2958
       D. Preserve all the copyright notices of the Document.
2959
 
2960
       E. Add an appropriate copyright notice for your modifications
2961
          adjacent to the other copyright notices.
2962
 
2963
       F. Include, immediately after the copyright notices, a license
2964
          notice giving the public permission to use the Modified
2965
          Version under the terms of this License, in the form shown in
2966
          the Addendum below.
2967
 
2968
       G. Preserve in that license notice the full lists of Invariant
2969
          Sections and required Cover Texts given in the Document's
2970
          license notice.
2971
 
2972
       H. Include an unaltered copy of this License.
2973
 
2974
       I. Preserve the section Entitled "History", Preserve its Title,
2975
          and add to it an item stating at least the title, year, new
2976
          authors, and publisher of the Modified Version as given on
2977
          the Title Page.  If there is no section Entitled "History" in
2978
          the Document, create one stating the title, year, authors,
2979
          and publisher of the Document as given on its Title Page,
2980
          then add an item describing the Modified Version as stated in
2981
          the previous sentence.
2982
 
2983
       J. Preserve the network location, if any, given in the Document
2984
          for public access to a Transparent copy of the Document, and
2985
          likewise the network locations given in the Document for
2986
          previous versions it was based on.  These may be placed in
2987
          the "History" section.  You may omit a network location for a
2988
          work that was published at least four years before the
2989
          Document itself, or if the original publisher of the version
2990
          it refers to gives permission.
2991
 
2992
       K. For any section Entitled "Acknowledgements" or "Dedications",
2993
          Preserve the Title of the section, and preserve in the
2994
          section all the substance and tone of each of the contributor
2995
          acknowledgements and/or dedications given therein.
2996
 
2997
       L. Preserve all the Invariant Sections of the Document,
2998
          unaltered in their text and in their titles.  Section numbers
2999
          or the equivalent are not considered part of the section
3000
          titles.
3001
 
3002
       M. Delete any section Entitled "Endorsements".  Such a section
3003
          may not be included in the Modified Version.
3004
 
3005
       N. Do not retitle any existing section to be Entitled
3006
          "Endorsements" or to conflict in title with any Invariant
3007
          Section.
3008
 
3009
       O. Preserve any Warranty Disclaimers.
3010
 
3011
     If the Modified Version includes new front-matter sections or
3012
     appendices that qualify as Secondary Sections and contain no
3013
     material copied from the Document, you may at your option
3014
     designate some or all of these sections as invariant.  To do this,
3015
     add their titles to the list of Invariant Sections in the Modified
3016
     Version's license notice.  These titles must be distinct from any
3017
     other section titles.
3018
 
3019
     You may add a section Entitled "Endorsements", provided it contains
3020
     nothing but endorsements of your Modified Version by various
3021
     parties--for example, statements of peer review or that the text
3022
     has been approved by an organization as the authoritative
3023
     definition of a standard.
3024
 
3025
     You may add a passage of up to five words as a Front-Cover Text,
3026
     and a passage of up to 25 words as a Back-Cover Text, to the end
3027
     of the list of Cover Texts in the Modified Version.  Only one
3028
     passage of Front-Cover Text and one of Back-Cover Text may be
3029
     added by (or through arrangements made by) any one entity.  If the
3030
     Document already includes a cover text for the same cover,
3031
     previously added by you or by arrangement made by the same entity
3032
     you are acting on behalf of, you may not add another; but you may
3033
     replace the old one, on explicit permission from the previous
3034
     publisher that added the old one.
3035
 
3036
     The author(s) and publisher(s) of the Document do not by this
3037
     License give permission to use their names for publicity for or to
3038
     assert or imply endorsement of any Modified Version.
3039
 
3040
  5. COMBINING DOCUMENTS
3041
 
3042
     You may combine the Document with other documents released under
3043
     this License, under the terms defined in section 4 above for
3044
     modified versions, provided that you include in the combination
3045
     all of the Invariant Sections of all of the original documents,
3046
     unmodified, and list them all as Invariant Sections of your
3047
     combined work in its license notice, and that you preserve all
3048
     their Warranty Disclaimers.
3049
 
3050
     The combined work need only contain one copy of this License, and
3051
     multiple identical Invariant Sections may be replaced with a single
3052
     copy.  If there are multiple Invariant Sections with the same name
3053
     but different contents, make the title of each such section unique
3054
     by adding at the end of it, in parentheses, the name of the
3055
     original author or publisher of that section if known, or else a
3056
     unique number.  Make the same adjustment to the section titles in
3057
     the list of Invariant Sections in the license notice of the
3058
     combined work.
3059
 
3060
     In the combination, you must combine any sections Entitled
3061
     "History" in the various original documents, forming one section
3062
     Entitled "History"; likewise combine any sections Entitled
3063
     "Acknowledgements", and any sections Entitled "Dedications".  You
3064
     must delete all sections Entitled "Endorsements."
3065
 
3066
  6. COLLECTIONS OF DOCUMENTS
3067
 
3068
     You may make a collection consisting of the Document and other
3069
     documents released under this License, and replace the individual
3070
     copies of this License in the various documents with a single copy
3071
     that is included in the collection, provided that you follow the
3072
     rules of this License for verbatim copying of each of the
3073
     documents in all other respects.
3074
 
3075
     You may extract a single document from such a collection, and
3076
     distribute it individually under this License, provided you insert
3077
     a copy of this License into the extracted document, and follow
3078
     this License in all other respects regarding verbatim copying of
3079
     that document.
3080
 
3081
  7. AGGREGATION WITH INDEPENDENT WORKS
3082
 
3083
     A compilation of the Document or its derivatives with other
3084
     separate and independent documents or works, in or on a volume of
3085
     a storage or distribution medium, is called an "aggregate" if the
3086
     copyright resulting from the compilation is not used to limit the
3087
     legal rights of the compilation's users beyond what the individual
3088
     works permit.  When the Document is included in an aggregate, this
3089
     License does not apply to the other works in the aggregate which
3090
     are not themselves derivative works of the Document.
3091
 
3092
     If the Cover Text requirement of section 3 is applicable to these
3093
     copies of the Document, then if the Document is less than one half
3094
     of the entire aggregate, the Document's Cover Texts may be placed
3095
     on covers that bracket the Document within the aggregate, or the
3096
     electronic equivalent of covers if the Document is in electronic
3097
     form.  Otherwise they must appear on printed covers that bracket
3098
     the whole aggregate.
3099
 
3100
  8. TRANSLATION
3101
 
3102
     Translation is considered a kind of modification, so you may
3103
     distribute translations of the Document under the terms of section
3104
     4.  Replacing Invariant Sections with translations requires special
3105
     permission from their copyright holders, but you may include
3106
     translations of some or all Invariant Sections in addition to the
3107
     original versions of these Invariant Sections.  You may include a
3108
     translation of this License, and all the license notices in the
3109
     Document, and any Warranty Disclaimers, provided that you also
3110
     include the original English version of this License and the
3111
     original versions of those notices and disclaimers.  In case of a
3112
     disagreement between the translation and the original version of
3113
     this License or a notice or disclaimer, the original version will
3114
     prevail.
3115
 
3116
     If a section in the Document is Entitled "Acknowledgements",
3117
     "Dedications", or "History", the requirement (section 4) to
3118
     Preserve its Title (section 1) will typically require changing the
3119
     actual title.
3120
 
3121
  9. TERMINATION
3122
 
3123
     You may not copy, modify, sublicense, or distribute the Document
3124
     except as expressly provided for under this License.  Any other
3125
     attempt to copy, modify, sublicense or distribute the Document is
3126
     void, and will automatically terminate your rights under this
3127
     License.  However, parties who have received copies, or rights,
3128
     from you under this License will not have their licenses
3129
     terminated so long as such parties remain in full compliance.
3130
 
3131
 10. FUTURE REVISIONS OF THIS LICENSE
3132
 
3133
     The Free Software Foundation may publish new, revised versions of
3134
     the GNU Free Documentation License from time to time.  Such new
3135
     versions will be similar in spirit to the present version, but may
3136
     differ in detail to address new problems or concerns.  See
3137
     `http://www.gnu.org/copyleft/'.
3138
 
3139
     Each version of the License is given a distinguishing version
3140
     number.  If the Document specifies that a particular numbered
3141
     version of this License "or any later version" applies to it, you
3142
     have the option of following the terms and conditions either of
3143
     that specified version or of any later version that has been
3144
     published (not as a draft) by the Free Software Foundation.  If
3145
     the Document does not specify a version number of this License,
3146
     you may choose any version ever published (not as a draft) by the
3147
     Free Software Foundation.
3148
 
3149
ADDENDUM: How to use this License for your documents
3150
====================================================
3151
 
3152
To use this License in a document you have written, include a copy of
3153
the License in the document and put the following copyright and license
3154
notices just after the title page:
3155
 
3156
       Copyright (C)  YEAR  YOUR NAME.
3157
       Permission is granted to copy, distribute and/or modify this document
3158
       under the terms of the GNU Free Documentation License, Version 1.2
3159
       or any later version published by the Free Software Foundation;
3160
       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
3161
       Texts.  A copy of the license is included in the section entitled ``GNU
3162
       Free Documentation License''.
3163
 
3164
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
3165
replace the "with...Texts." line with this:
3166
 
3167
         with the Invariant Sections being LIST THEIR TITLES, with
3168
         the Front-Cover Texts being LIST, and with the Back-Cover Texts
3169
         being LIST.
3170
 
3171
If you have Invariant Sections without Cover Texts, or some other
3172
combination of the three, merge those two alternatives to suit the
3173
situation.
3174
 
3175
If your document contains nontrivial examples of program code, we
3176
recommend releasing these examples in parallel under your choice of
3177
free software license, such as the GNU General Public License, to
3178
permit their use in free software.
3179
 
3180

3181
File: or1ksim.info,  Node: Index,  Prev: GNU Free Documentation License,  Up: Top
3182
 
3183
Index
3184
*****
3185
 
3186
 
3187
* Menu:
3188
3189
* --cumulative:                          Profiling Utility.   (line  26)
3190
* --debug-config:                        Standalone Simulator.
3191
                                                              (line  48)
3192
* --disable-arith-flag:                  Configuring the Build.
3193
                                                              (line  93)
3194
* --disable-debug:                       Configuring the Build.
3195
                                                              (line 121)
3196
* --disable-ethphy:                      Configuring the Build.
3197
                                                              (line  54)
3198
* --disable-ov-flag:                     Configuring the Build.
3199
                                                              (line  70)
3200
* --disable-profiling:                   Configuring the Build.
3201
                                                              (line  25)
3202
* --disable-range-stats:                 Configuring the Build.
3203
                                                              (line  64)
3204
* --enable-arith-flag:                   Configuring the Build.
3205
                                                              (line  92)
3206
* --enable-debug:                        Configuring the Build.
3207
                                                              (line 120)
3208
* --enable-ethphy:                       Configuring the Build.
3209
                                                              (line  53)
3210
* --enable-execution:                    Configuring the Build.
3211
                                                              (line  32)
3212
* --enable-mprofile:                     Standalone Simulator.
3213
                                                              (line  77)
3214
* --enable-ov-flag:                      Configuring the Build.
3215
                                                              (line  69)
3216
* --enable-profile:                      Standalone Simulator.
3217
                                                              (line  74)
3218
* --enable-profiling:                    Configuring the Build.
3219
                                                              (line  24)
3220
* --enable-range-stats:                  Configuring the Build.
3221
                                                              (line  63)
3222
* --file:                                Standalone Simulator.
3223
                                                              (line  24)
3224
* --filename:                            Memory Profiling Utility.
3225
                                                              (line  51)
3226
* --generate:                            Profiling Utility.   (line  34)
3227
* --group:                               Memory Profiling Utility.
3228
                                                              (line  47)
3229
* --help:                                Standalone Simulator.
3230
                                                              (line  20)
3231
* --help (memory profiling utility):     Memory Profiling Utility.
3232
                                                              (line  22)
3233
* --help (profiling utility):            Profiling Utility.   (line  22)
3234
* --interactive:                         Standalone Simulator.
3235
                                                              (line  54)
3236
* --mode:                                Memory Profiling Utility.
3237
                                                              (line  26)
3238
* --nosrv:                               Standalone Simulator.
3239
                                                              (line  32)
3240
* --quiet:                               Profiling Utility.   (line  30)
3241
* --srv:                                 Standalone Simulator.
3242
                                                              (line  40)
3243
* --strict-npc:                          Standalone Simulator.
3244
                                                              (line  57)
3245
* --version:                             Standalone Simulator.
3246
                                                              (line  16)
3247
* --version (memory profiling utility):  Memory Profiling Utility.
3248
                                                              (line  17)
3249
* --version (profiling utility):         Profiling Utility.   (line  17)
3250
* -c:                                    Profiling Utility.   (line  26)
3251
* -d:                                    Standalone Simulator.
3252
                                                              (line  48)
3253
* -f <1>:                                Memory Profiling Utility.
3254
                                                              (line  51)
3255
* -f:                                    Standalone Simulator.
3256
                                                              (line  24)
3257
* -g <1>:                                Memory Profiling Utility.
3258
                                                              (line  47)
3259
* -g:                                    Profiling Utility.   (line  34)
3260
* -h:                                    Standalone Simulator.
3261
                                                              (line  20)
3262
* -h (memory profiling utility):         Memory Profiling Utility.
3263
                                                              (line  22)
3264
* -h (profiling utility):                Profiling Utility.   (line  22)
3265
* -i:                                    Standalone Simulator.
3266
                                                              (line  54)
3267
* -m:                                    Memory Profiling Utility.
3268
                                                              (line  26)
3269
* -q:                                    Profiling Utility.   (line  30)
3270
* -v:                                    Standalone Simulator.
3271
                                                              (line  16)
3272
* -v (memory profiling utility):         Memory Profiling Utility.
3273
                                                              (line  17)
3274
* -v (profiling utility):                Profiling Utility.   (line  17)
3275
* 0x00 UART VAPI sub-command (UART verification): Verification API.
3276
                                                              (line  49)
3277
* 0x01 UART VAPI sub-command (UART verification): Verification API.
3278
                                                              (line  55)
3279
* 0x02 UART VAPI sub-command (UART verification): Verification API.
3280
                                                              (line  59)
3281
* 0x03 UART VAPI sub-command (UART verification): Verification API.
3282
                                                              (line  62)
3283
* 0x04 UART VAPI sub-command (UART verification): Verification API.
3284
                                                              (line  66)
3285
* 16550 (UART configuration):            UART Configuration.  (line  73)
3286
* Argtable2 debugging:                   Configuring the Build.
3287
                                                              (line 121)
3288
* ATA/ATAPI configuration:               Disc Interface Configuration.
3289
                                                              (line   6)
3290
* ATA/ATAPI device configuration:        Disc Interface Configuration.
3291
                                                              (line  88)
3292
* base_vapi_id (GPIO configuration - deprecated): GPIO Configuration.
3293
                                                              (line  32)
3294
* baseaddr (ATA/ATAPI configuration):    Disc Interface Configuration.
3295
                                                              (line  22)
3296
* baseaddr (DMA configuration):          DMA Configuration.   (line  24)
3297
* baseaddr (Ethernet configuration):     Ethernet Configuration.
3298
                                                              (line  22)
3299
* baseaddr (frame buffer configuration): Frame Buffer Configuration.
3300
                                                              (line  20)
3301
* baseaddr (generic peripheral configuration): Generic Peripheral Configuration.
3302
                                                              (line  22)
3303
* baseaddr (GPIO configuration):         GPIO Configuration.  (line  21)
3304
* baseaddr (keyboard configuration):     Keyboard Configuration.
3305
                                                              (line  36)
3306
* baseaddr (memory configuration):       Memory Configuration.
3307
                                                              (line  62)
3308
* baseaddr (memory controller configuration): Memory Controller Configuration.
3309
                                                              (line  28)
3310
* baseaddr (UART configuration):         UART Configuration.  (line  22)
3311
* baseaddr (VGA configuration):          Display Interface Configuration.
3312
                                                              (line  26)
3313
* blocksize (cache configuration):       Cache Configuration. (line  29)
3314
* BPB configuration:                     Branch Prediction Configuration.
3315
                                                              (line   6)
3316
* branch prediction configuration:       Branch Prediction Configuration.
3317
                                                              (line   6)
3318
* break (Interactive CLI):               Interactive Command Line.
3319
                                                              (line  57)
3320
* breakpoint list (Interactive CLI):     Interactive Command Line.
3321
                                                              (line  60)
3322
* breakpoint set/clear (Interactive CLI): Interactive Command Line.
3323
                                                              (line  57)
3324
* breaks (Interactive CLI):              Interactive Command Line.
3325
                                                              (line  60)
3326
* btic (branch prediction configuration): Branch Prediction Configuration.
3327
                                                              (line  19)
3328
* byte_enabled (generic peripheral configuration): Generic Peripheral Configuration.
3329
                                                              (line  48)
3330
* cache configuration:                   Cache Configuration. (line   6)
3331
* calling_convention (CUC configuration): CUC Configuration.  (line  34)
3332
* ce (memory configuration):             Memory Configuration.
3333
                                                              (line  91)
3334
* cfgr (CPU configuration):              CPU Configuration.   (line  47)
3335
* channel (UART configuration):          UART Configuration.  (line  29)
3336
* clear breakpoint (Interactive CLI):    Interactive Command Line.
3337
                                                              (line  57)
3338
* clkcycle (simulator configuration):    Simulator Behavior.  (line 102)
3339
* cm (Interactive CLI):                  Interactive Command Line.
3340
                                                              (line  54)
3341
* command line for Or1ksim standalone use: Standalone Simulator.
3342
                                                              (line   6)
3343
* complex model:                         Configuring the Build.
3344
                                                              (line  32)
3345
* config:                                Global Data Structures.
3346
                                                              (line   7)
3347
* config.bpb:                            Global Data Structures.
3348
                                                              (line  37)
3349
* config.cpu:                            Global Data Structures.
3350
                                                              (line  22)
3351
* config.cuc:                            Global Data Structures.
3352
                                                              (line  18)
3353
* config.dc:                             Global Data Structures.
3354
                                                              (line  25)
3355
* config.debug:                          Global Data Structures.
3356
                                                              (line  40)
3357
* config.pic:                            Global Data Structures.
3358
                                                              (line  33)
3359
* config.pm:                             Global Data Structures.
3360
                                                              (line  29)
3361
* config.sim:                            Global Data Structures.
3362
                                                              (line  11)
3363
* config.vapi:                           Global Data Structures.
3364
                                                              (line  14)
3365
* configuration dynamic structure:       Global Data Structures.
3366
                                                              (line  49)
3367
* configuration file structure:          Configuration File Format.
3368
                                                              (line   6)
3369
* configuration global structure:        Global Data Structures.
3370
                                                              (line   7)
3371
* configuration info (Interactive CLI):  Interactive Command Line.
3372
                                                              (line 119)
3373
* configuration of generic peripherals:  Generic Peripheral Configuration.
3374
                                                              (line   6)
3375
* configuration parameter setting (Interactive CLI): Interactive Command Line.
3376
                                                              (line 146)
3377
* configuring branch prediction:         Branch Prediction Configuration.
3378
                                                              (line   6)
3379
* configuring data & instruction caches: Cache Configuration. (line   6)
3380
* configuring data & instruction MMUs:   Memory Management Configuration.
3381
                                                              (line   6)
3382
* configuring DMA:                       DMA Configuration.   (line   6)
3383
* configuring memory:                    Memory Configuration.
3384
                                                              (line   6)
3385
* configuring Or1ksim:                   Configuration.       (line   6)
3386
* configuring power management:          Power Management Configuration.
3387
                                                              (line   6)
3388
* configuring the ATA/ATAPI interfaces:  Disc Interface Configuration.
3389
                                                              (line   6)
3390
* configuring the behavior of Or1ksim:   Simulator Behavior.  (line   6)
3391
* configuring the CPU:                   CPU Configuration.   (line   6)
3392
* configuring the Custom Unit Compiler (CUC): CUC Configuration.
3393
                                                              (line   6)
3394
* configuring the debug unit and interface to external debuggers: Debug Interface Configuration.
3395
                                                              (line   6)
3396
* configuring the Ethernet interface:    Ethernet Configuration.
3397
                                                              (line   6)
3398
* configuring the frame buffer:          Frame Buffer Configuration.
3399
                                                              (line   6)
3400
* configuring the GPIO:                  GPIO Configuration.  (line   6)
3401
* configuring the interrupt controller:  Interrupt Configuration.
3402
                                                              (line   6)
3403
* configuring the keyboard interface:    Keyboard Configuration.
3404
                                                              (line   6)
3405
* configuring the memory controller:     Memory Controller Configuration.
3406
                                                              (line   6)
3407
* configuring the processor:             CPU Configuration.   (line   6)
3408
* configuring the PS2 interface:         Keyboard Configuration.
3409
                                                              (line   6)
3410
* configuring the UART:                  UART Configuration.  (line   6)
3411
* configuring the Verification API (VAPI): Verification API Configuration.
3412
                                                              (line   6)
3413
* configuring the VGA interface:         Display Interface Configuration.
3414
                                                              (line   6)
3415
* copying memory (Interactive CLI):      Interactive Command Line.
3416
                                                              (line  54)
3417
* CPU configuration:                     CPU Configuration.   (line   6)
3418
* CUC configuration:                     CUC Configuration.   (line   6)
3419
* Custom Unit Compiler (Interactive CLI): Interactive Command Line.
3420
                                                              (line 162)
3421
* Custom Unit Compiler Configuration:    CUC Configuration.   (line   6)
3422
* data cache configuration:              Cache Configuration. (line   6)
3423
* data MMU configuration:                Memory Management Configuration.
3424
                                                              (line   6)
3425
* DCGE (power management register):      Power Management Configuration.
3426
                                                              (line  21)
3427
* debug (Interactive CLI):               Interactive Command Line.
3428
                                                              (line 151)
3429
* debug (simulator configuration):       Simulator Behavior.  (line  13)
3430
* debug channel toggle (Interactive CLI): Interactive Command Line.
3431
                                                              (line 141)
3432
* debug interface configuration:         Debug Interface Configuration.
3433
                                                              (line   6)
3434
* debug mode toggle (Interactive CLI):   Interactive Command Line.
3435
                                                              (line 151)
3436
* debug unit configuration:              Debug Interface Configuration.
3437
                                                              (line   6)
3438
* Debug Unit verification (VAPI):        Verification API.    (line  34)
3439
* debugging enabled (Argtable2):         Configuring the Build.
3440
                                                              (line 121)
3441
* delayr (memory configuration):         Memory Configuration.
3442
                                                              (line 109)
3443
* delayw (memory configuration):         Memory Configuration.
3444
                                                              (line 115)
3445
* dependstats (CPU configuration):       CPU Configuration.   (line  84)
3446
* dev_id (ATA/ATAPI configuration):      Disc Interface Configuration.
3447
                                                              (line  36)
3448
* disassemble (Interactive CLI):         Interactive Command Line.
3449
                                                              (line  41)
3450
* disc interface configuration:          Disc Interface Configuration.
3451
                                                              (line   6)
3452
* disc interface device configuration:   Disc Interface Configuration.
3453
                                                              (line  88)
3454
* display interface configuration:       Display Interface Configuration.
3455
                                                              (line   6)
3456
* displaying memory (Interactive CLI):   Interactive Command Line.
3457
                                                              (line  31)
3458
* displaying registers (Interactive CLI): Interactive Command Line.
3459
                                                              (line  14)
3460
* dm (Interactive CLI):                  Interactive Command Line.
3461
                                                              (line  31)
3462
* dma (Ethernet configuration):          Ethernet Configuration.
3463
                                                              (line  33)
3464
* DMA configuration:                     DMA Configuration.   (line   6)
3465
* DMA verification (VAPI):               Verification API.    (line  73)
3466
* dma_mode0_td (ATA/ATAPI configuration): Disc Interface Configuration.
3467
                                                              (line  70)
3468
* dma_mode0_teoc (ATA/ATAPI configuration): Disc Interface Configuration.
3469
                                                              (line  71)
3470
* dma_mode0_tm (ATA/ATAPI configuration): Disc Interface Configuration.
3471
                                                              (line  69)
3472
* DME (power management register):       Power Management Configuration.
3473
                                                              (line  15)
3474
* DMMU configuration:                    Memory Management Configuration.
3475
                                                              (line   6)
3476
* doze mode (power management register): Power Management Configuration.
3477
                                                              (line  15)
3478
* dv (Interactive CLI):                  Interactive Command Line.
3479
                                                              (line 124)
3480
* dynamic clock gating (power management register): Power Management Configuration.
3481
                                                              (line  21)
3482
* dynamic model:                         Configuring the Build.
3483
                                                              (line  32)
3484
* dynamic ports, use of:                 Verification API Configuration.
3485
                                                              (line  23)
3486
* edge_trigger (interrupt controller):   Interrupt Configuration.
3487
                                                              (line  16)
3488
* enable_bursts (CUC configuration):     CUC Configuration.   (line  38)
3489
* enabled (ATA/ATAPI configuration):     Disc Interface Configuration.
3490
                                                              (line  18)
3491
* enabled (branch prediction configuration): Branch Prediction Configuration.
3492
                                                              (line  15)
3493
* enabled (cache configuration):         Cache Configuration. (line  11)
3494
* enabled (debug interface configuration): Debug Interface Configuration.
3495
                                                              (line  11)
3496
* enabled (DMA configuration):           DMA Configuration.   (line  20)
3497
* enabled (Ethernet configuration):      Ethernet Configuration.
3498
                                                              (line  18)
3499
* enabled (frame buffer configuration):  Frame Buffer Configuration.
3500
                                                              (line  16)
3501
* enabled (generic peripheral configuration): Generic Peripheral Configuration.
3502
                                                              (line  18)
3503
* enabled (GPIO configuration):          GPIO Configuration.  (line  17)
3504
* enabled (interrupt controller):        Interrupt Configuration.
3505
                                                              (line  12)
3506
* enabled (keyboard configuration):      Keyboard Configuration.
3507
                                                              (line  32)
3508
* enabled (memory controller configuration): Memory Controller Configuration.
3509
                                                              (line  17)
3510
* enabled (MMU configuration):           Memory Management Configuration.
3511
                                                              (line  12)
3512
* enabled (power management configuration): Power Management Configuration.
3513
                                                              (line  35)
3514
* enabled (UART configuration):          UART Configuration.  (line  18)
3515
* enabled (verification API configuration): Verification API Configuration.
3516
                                                              (line  15)
3517
* enabled (VGA configuration):           Display Interface Configuration.
3518
                                                              (line  22)
3519
* enabling Ethernet via socket:          Configuring the Build.
3520
                                                              (line  54)
3521
* entrysize (MMU configuration):         Memory Management Configuration.
3522
                                                              (line  32)
3523
* ETH_VAPI_CTRL (Ethernet verification): Verification API.    (line  86)
3524
* ETH_VAPI_DATA (Ethernet verification): Verification API.    (line  84)
3525
* Ethernet configuration:                Ethernet Configuration.
3526
                                                              (line   6)
3527
* Ethernet verification (VAPI):          Verification API.    (line  78)
3528
* Ethernet via socket, enabling:         Configuring the Build.
3529
                                                              (line  54)
3530
* exe_log (simulator configuration):     Simulator Behavior.  (line  48)
3531
* exe_log_end (simulator configuration): Simulator Behavior.  (line  88)
3532
* exe_log_file (simulator configuration): Simulator Behavior. (line  96)
3533
* exe_log_fn (simulator configuration - deprecated): Simulator Behavior.
3534
                                                              (line  96)
3535
* exe_log_marker (simulator configuration): Simulator Behavior.
3536
                                                              (line  92)
3537
* exe_log_start (simulator configuration): Simulator Behavior.
3538
                                                              (line  85)
3539
* exe_log_type (simulator configuration): Simulator Behavior. (line  54)
3540
* exe_log_type=default (simulator configuration): Simulator Behavior.
3541
                                                              (line  57)
3542
* exe_log_type=hardware (simulator configuration): Simulator Behavior.
3543
                                                              (line  61)
3544
* exe_log_type=simple (simulator configuration): Simulator Behavior.
3545
                                                              (line  68)
3546
* exe_log_type=software (simulator configuration): Simulator Behavior.
3547
                                                              (line  73)
3548
* executing code (Interactive CLI):      Interactive Command Line.
3549
                                                              (line  23)
3550
* execution history (Interactive CLI):   Interactive Command Line.
3551
                                                              (line  67)
3552
* file (ATA/ATAPI device configuration): Disc Interface Configuration.
3553
                                                              (line 104)
3554
* file (keyboard configuration):         Keyboard Configuration.
3555
                                                              (line  51)
3556
* filename (frame buffer configuration - deprecated): Frame Buffer Configuration.
3557
                                                              (line  35)
3558
* filename (VGA configuration - deprecated): Display Interface Configuration.
3559
                                                              (line  47)
3560
* firmware (ATA/ATAPI device configuration): Disc Interface Configuration.
3561
                                                              (line 117)
3562
* flag setting by instructions:          Configuring the Build.
3563
                                                              (line  93)
3564
* frame buffer configuration:            Frame Buffer Configuration.
3565
                                                              (line   6)
3566
* gdb_enabled (debug interface configuration): Debug Interface Configuration.
3567
                                                              (line  47)
3568
* generic peripheral configuration:      Generic Peripheral Configuration.
3569
                                                              (line   6)
3570
* GPIO configuration:                    GPIO Configuration.  (line   6)
3571
* GPIO verification (VAPI):              Verification API.    (line  88)
3572
* GPIO_VAPI_AUX (GPIO verification):     Verification API.    (line 100)
3573
* GPIO_VAPI_CLOCK (GPIO verification):   Verification API.    (line 103)
3574
* GPIO_VAPI_CTRL (GPIO verification):    Verification API.    (line 119)
3575
* GPIO_VAPI_DATA (GPIO verification):    Verification API.    (line  97)
3576
* GPIO_VAPI_INTE (GPIO verification):    Verification API.    (line 110)
3577
* GPIO_VAPI_PTRIG (GPIO verification):   Verification API.    (line 113)
3578
* GPIO_VAPI_RGPIO (GPIO verification):   Verification API.    (line 107)
3579
* hazards (CPU configuration):           CPU Configuration.   (line  69)
3580
* heads (ATA/ATAPI device configuration): Disc Interface Configuration.
3581
                                                              (line 121)
3582
* help (Interactive CLI):                Interactive Command Line.
3583
                                                              (line 170)
3584
* hexadecimal memory dump (Interactive CLI): Interactive Command Line.
3585
                                                              (line 133)
3586
* hide_device_id (verification API configuration): Verification API Configuration.
3587
                                                              (line  36)
3588
* hist (Interactive CLI):                Interactive Command Line.
3589
                                                              (line  67)
3590
* history (simulator configuration):     Simulator Behavior.  (line  39)
3591
* history of execution (Interactive CLI): Interactive Command Line.
3592
                                                              (line  67)
3593
* hitdelay (branch prediction configuration): Branch Prediction Configuration.
3594
                                                              (line  33)
3595
* hitdelay (instruction cache configuration): Cache Configuration.
3596
                                                              (line  38)
3597
* hitdelay (MMU configuration):          Memory Management Configuration.
3598
                                                              (line  51)
3599
* hw_enabled (generic peripheral configuration): Generic Peripheral Configuration.
3600
                                                              (line  49)
3601
* IMMU configuration:                    Memory Management Configuration.
3602
                                                              (line   6)
3603
* index (memory controller configuration): Memory Controller Configuration.
3604
                                                              (line  50)
3605
* info (Interactive CLI):                Interactive Command Line.
3606
                                                              (line 119)
3607
* installing Or1ksim:                    Installation.        (line   6)
3608
* instruction cache configuration:       Cache Configuration. (line   6)
3609
* instruction MMU configuration:         Memory Management Configuration.
3610
                                                              (line   6)
3611
* instruction profiling for Or1ksim:     Profiling Utility.   (line   6)
3612
* instruction profiling utility (Interactive CLI): Interactive Command Line.
3613
                                                              (line 178)
3614
* internal debugging:                    Internal Debugging.  (line   6)
3615
* interrupt controller configuration:    Interrupt Configuration.
3616
                                                              (line   6)
3617
* irq (ATA/ATAPI configuration):         Disc Interface Configuration.
3618
                                                              (line  32)
3619
* irq (DMA configuration):               DMA Configuration.   (line  34)
3620
* irq (GPIO configuration):              GPIO Configuration.  (line  29)
3621
* irq (keyboard configuration):          Keyboard Configuration.
3622
                                                              (line  47)
3623
* irq (UART configuration):              UART Configuration.  (line  70)
3624
* irq (VGA configuration):               Display Interface Configuration.
3625
                                                              (line  37)
3626
* jitter (UART configuration):           UART Configuration.  (line  78)
3627
* keyboard configuration:                Keyboard Configuration.
3628
                                                              (line   6)
3629
* library version of Or1ksim:            Simulator Library.   (line   6)
3630
* license for Or1ksim:                   GNU Free Documentation License.
3631
                                                              (line   6)
3632
* list breakpoints (Interactive CLI):    Interactive Command Line.
3633
                                                              (line  60)
3634
* load_hitdelay (data cache configuration): Cache Configuration.
3635
                                                              (line  46)
3636
* load_missdelay (data cache configuration): Cache Configuration.
3637
                                                              (line  50)
3638
* log (memory configuration):            Memory Configuration.
3639
                                                              (line 121)
3640
* log_enabled (verification API configuration): Verification API Configuration.
3641
                                                              (line  28)
3642
* long:                                  Simulator Library.   (line  73)
3643
* mc (memory configuration):             Memory Configuration.
3644
                                                              (line  99)
3645
* memory configuration:                  Memory Configuration.
3646
                                                              (line   6)
3647
* memory controller configuration:       Memory Controller Configuration.
3648
                                                              (line   6)
3649
* memory copying (Interactive CLI):      Interactive Command Line.
3650
                                                              (line  54)
3651
* memory display (Interactive CLI):      Interactive Command Line.
3652
                                                              (line  31)
3653
* memory dump, hexadecimal (Interactive CLI): Interactive Command Line.
3654
                                                              (line 133)
3655
* memory dump, Verilog (Interactive CLI): Interactive Command Line.
3656
                                                              (line 124)
3657
* memory patching (Interactive CLI):     Interactive Command Line.
3658
                                                              (line  48)
3659
* memory profiling end address:          Memory Profiling Utility.
3660
                                                              (line  56)
3661
* memory profiling start address:        Memory Profiling Utility.
3662
                                                              (line  56)
3663
* memory profiling utility (Interactive CLI): Interactive Command Line.
3664
                                                              (line 173)
3665
* memory profiling version of Or1ksim:   Memory Profiling Utility.
3666
                                                              (line   6)
3667
* memory_order (CUC configuration):      CUC Configuration.   (line  15)
3668
* memory_order=exact (CUC configuration): CUC Configuration.  (line  27)
3669
* memory_order=none (CUC configuration): CUC Configuration.   (line  18)
3670
* memory_order=strong (CUC configuration): CUC Configuration. (line  25)
3671
* memory_order=weak (CUC configuration): CUC Configuration.   (line  21)
3672
* missdelay (branch prediction configuration): Branch Prediction Configuration.
3673
                                                              (line  37)
3674
* missdelay (instruction cache configuration): Cache Configuration.
3675
                                                              (line  42)
3676
* missdelay (MMU configuration):         Memory Management Configuration.
3677
                                                              (line  55)
3678
* MMU configuration:                     Memory Management Configuration.
3679
                                                              (line   6)
3680
* mprof_file (simulator configuration):  Simulator Behavior.  (line  33)
3681
* mprof_fn (simulator configuration - deprecated): Simulator Behavior.
3682
                                                              (line  33)
3683
* mprofile (Interactive CLI):            Interactive Command Line.
3684
                                                              (line 173)
3685
* mprofile (simulator configuration):    Simulator Behavior.  (line  28)
3686
* mwdma (ATA/ATAPI device configuration): Disc Interface Configuration.
3687
                                                              (line 128)
3688
* name (generic peripheral configuration): Generic Peripheral Configuration.
3689
                                                              (line  42)
3690
* name (memory configuration):           Memory Configuration.
3691
                                                              (line  82)
3692
* no_multicycle (CUC configuration):     CUC Configuration.   (line  42)
3693
* nsets (cache configuration):           Cache Configuration. (line  15)
3694
* nsets (MMU configuration):             Memory Management Configuration.
3695
                                                              (line  16)
3696
* nways (cache configuration):           Cache Configuration. (line  22)
3697
* nways (MMU configuration):             Memory Management Configuration.
3698
                                                              (line  22)
3699
* or1ksim_get_time_period:               Simulator Library.   (line  63)
3700
* or1ksim_init:                          Simulator Library.   (line  18)
3701
* or1ksim_interrupt:                     Simulator Library.   (line  78)
3702
* or1ksim_interrupt_clear:               Simulator Library.   (line  96)
3703
* or1ksim_interrupt_set:                 Simulator Library.   (line  87)
3704
* or1ksim_is_le:                         Simulator Library.   (line  68)
3705
* or1ksim_reset_duration:                Simulator Library.   (line  48)
3706
* or1ksim_run:                           Simulator Library.   (line  43)
3707
* or1ksim_set_time_point:                Simulator Library.   (line  59)
3708
* output rediretion:                     Concepts.            (line   7)
3709
* overflow flag setting by instructions: Configuring the Build.
3710
                                                              (line  70)
3711
* packet (ATA/ATAPI device configuration): Disc Interface Configuration.
3712
                                                              (line 113)
3713
* pagesize (MMU configuration):          Memory Management Configuration.
3714
                                                              (line  27)
3715
* patching memory (Interactive CLI):     Interactive Command Line.
3716
                                                              (line  48)
3717
* patching registers (Interactive CLI):  Interactive Command Line.
3718
                                                              (line  28)
3719
* patching the program counter (Interactive CLI): Interactive Command Line.
3720
                                                              (line  51)
3721
* pattern (memory configuration):        Memory Configuration.
3722
                                                              (line  50)
3723
* pc (Interactive CLI):                  Interactive Command Line.
3724
                                                              (line  51)
3725
* PIC configuration:                     Interrupt Configuration.
3726
                                                              (line   6)
3727
* pio (ATA/ATAPI device configuration):  Disc Interface Configuration.
3728
                                                              (line 132)
3729
* pio_mode0_t1 (ATA/ATAPI configuration): Disc Interface Configuration.
3730
                                                              (line  51)
3731
* pio_mode0_t2 (ATA/ATAPI configuration): Disc Interface Configuration.
3732
                                                              (line  52)
3733
* pio_mode0_t4 (ATA/ATAPI configuration): Disc Interface Configuration.
3734
                                                              (line  53)
3735
* pio_mode0_teoc (ATA/ATAPI configuration): Disc Interface Configuration.
3736
                                                              (line  54)
3737
* pm (Interactive CLI):                  Interactive Command Line.
3738
                                                              (line  48)
3739
* PMR - DGCE:                            Power Management Configuration.
3740
                                                              (line  21)
3741
* PMR - DME:                             Power Management Configuration.
3742
                                                              (line  15)
3743
* PMR - SDF:                             Power Management Configuration.
3744
                                                              (line  12)
3745
* PMR - SME:                             Power Management Configuration.
3746
                                                              (line  16)
3747
* PMR - SUME:                            Power Management Configuration.
3748
                                                              (line  24)
3749
* PMU configuration:                     Power Management Configuration.
3750
                                                              (line   6)
3751
* poc (memory controller configuration): Memory Controller Configuration.
3752
                                                              (line  37)
3753
* port range for TCP/IP:                 Verification API Configuration.
3754
                                                              (line  23)
3755
* power management configuration:        Power Management Configuration.
3756
                                                              (line   6)
3757
* power management register, DGCE:       Power Management Configuration.
3758
                                                              (line  21)
3759
* power management register, DME:        Power Management Configuration.
3760
                                                              (line  15)
3761
* power management register, SDF:        Power Management Configuration.
3762
                                                              (line  12)
3763
* power management register, SME:        Power Management Configuration.
3764
                                                              (line  16)
3765
* power management register, SUME:       Power Management Configuration.
3766
                                                              (line  24)
3767
* pr (Interactive CLI):                  Interactive Command Line.
3768
                                                              (line  28)
3769
* private ports, use of:                 Verification API Configuration.
3770
                                                              (line  23)
3771
* processor configuration:               CPU Configuration.   (line   6)
3772
* processor stall (Interactive CLI):     Interactive Command Line.
3773
                                                              (line  72)
3774
* processor unstall (Interactive CLI):   Interactive Command Line.
3775
                                                              (line  78)
3776
* prof_file (simulator configuration):   Simulator Behavior.  (line  23)
3777
* prof_fn (simulator configuration - deprecated): Simulator Behavior.
3778
                                                              (line  23)
3779
* profile (simulator configuration):     Simulator Behavior.  (line  19)
3780
* profiling for Or1ksim:                 Profiling Utility.   (line   6)
3781
* profiling utility (Interactive CLI):   Interactive Command Line.
3782
                                                              (line 178)
3783
* program counter patching (Interactive CLI): Interactive Command Line.
3784
                                                              (line  51)
3785
* programmable interrupt controller configuration: Interrupt Configuration.
3786
                                                              (line   6)
3787
* PS2 configuration:                     Keyboard Configuration.
3788
                                                              (line   6)
3789
* q (Interactive CLI):                   Interactive Command Line.
3790
                                                              (line  11)
3791
* quitting (Interactive CLI):            Interactive Command Line.
3792
                                                              (line  11)
3793
* r (Interactive CLI):                   Interactive Command Line.
3794
                                                              (line  14)
3795
* random_seed (memory configuration):    Memory Configuration.
3796
                                                              (line  40)
3797
* refresh_rate (frame buffer configuration): Frame Buffer Configuration.
3798
                                                              (line  29)
3799
* refresh_rate (VGA configuration):      Display Interface Configuration.
3800
                                                              (line  41)
3801
* reg_sim_reset:                         Concepts.            (line  13)
3802
* register display (Interactive CLI):    Interactive Command Line.
3803
                                                              (line  14)
3804
* register over time statistics:         Configuring the Build.
3805
                                                              (line  64)
3806
* register patching (Interactive CLI):   Interactive Command Line.
3807
                                                              (line  28)
3808
* Remote Serial Protocol:                Debug Interface Configuration.
3809
                                                              (line  20)
3810
* reset (Interactive CLI):               Interactive Command Line.
3811
                                                              (line  63)
3812
* reset hooks:                           Concepts.            (line  13)
3813
* reset the simulator (Interactive CLI): Interactive Command Line.
3814
                                                              (line  63)
3815
* rev (ATA/ATAPI configuration):         Disc Interface Configuration.
3816
                                                              (line  44)
3817
* rev (CPU configuration):               CPU Configuration.   (line  15)
3818
* rsp_enabled (debug interface configuration): Debug Interface Configuration.
3819
                                                              (line  20)
3820
* rsp_port (debug interface configuration): Debug Interface Configuration.
3821
                                                              (line  36)
3822
* rtx_type (Ethernet configuration):     Ethernet Configuration.
3823
                                                              (line  46)
3824
* run (Interactive CLI):                 Interactive Command Line.
3825
                                                              (line  23)
3826
* running code (Interactive CLI):        Interactive Command Line.
3827
                                                              (line  23)
3828
* running Or1ksim:                       Usage.               (line   6)
3829
* runtime:                               Global Data Structures.
3830
                                                              (line  58)
3831
* runtime global structure:              Global Data Structures.
3832
                                                              (line  58)
3833
* runtime.cpu:                           Global Data Structures.
3834
                                                              (line  62)
3835
* runtime.cpu.fout:                      Concepts.            (line   7)
3836
* runtime.cuc:                           Global Data Structures.
3837
                                                              (line  62)
3838
* runtime.vapi:                          Global Data Structures.
3839
                                                              (line  62)
3840
* rx_channel (Ethernet configuration):   Ethernet Configuration.
3841
                                                              (line  59)
3842
* rxfile (Ethernet configuration):       Ethernet Configuration.
3843
                                                              (line  68)
3844
* sbp_bf_fwd (branch prediction configuration): Branch Prediction Configuration.
3845
                                                              (line  23)
3846
* sbp_bnf_fwd (branch prediction configuration): Branch Prediction Configuration.
3847
                                                              (line  28)
3848
* sbuf_len (CPU configuration):          CPU Configuration.   (line  96)
3849
* SDF (power management register):       Power Management Configuration.
3850
                                                              (line  12)
3851
* section ata:                           Disc Interface Configuration.
3852
                                                              (line   6)
3853
* section bpb:                           Branch Prediction Configuration.
3854
                                                              (line   6)
3855
* section cpio:                          GPIO Configuration.  (line   6)
3856
* section cpu:                           CPU Configuration.   (line   6)
3857
* section cuc:                           CUC Configuration.   (line   6)
3858
* section dc:                            Cache Configuration. (line   6)
3859
* section debug:                         Debug Interface Configuration.
3860
                                                              (line   6)
3861
* section dma:                           DMA Configuration.   (line   6)
3862
* section dmmu:                          Memory Management Configuration.
3863
                                                              (line   6)
3864
* section ethernet:                      Ethernet Configuration.
3865
                                                              (line   6)
3866
* section fb:                            Frame Buffer Configuration.
3867
                                                              (line   6)
3868
* section generic:                       Generic Peripheral Configuration.
3869
                                                              (line   6)
3870
* section ic:                            Cache Configuration. (line   6)
3871
* section immu:                          Memory Management Configuration.
3872
                                                              (line   6)
3873
* section kb:                            Keyboard Configuration.
3874
                                                              (line   6)
3875
* section mc:                            Memory Controller Configuration.
3876
                                                              (line   6)
3877
* section memory:                        Memory Configuration.
3878
                                                              (line   6)
3879
* section pic:                           Interrupt Configuration.
3880
                                                              (line   6)
3881
* section pmu:                           Power Management Configuration.
3882
                                                              (line   6)
3883
* section sim:                           Simulator Behavior.  (line   6)
3884
* section uart:                          UART Configuration.  (line   6)
3885
* section vapi:                          Verification API Configuration.
3886
                                                              (line   6)
3887
* section vga:                           Display Interface Configuration.
3888
                                                              (line   6)
3889
* sections:                              Global Data Structures.
3890
                                                              (line  49)
3891
* sectors (ATA/ATAPI device configuration): Disc Interface Configuration.
3892
                                                              (line 125)
3893
* server_port (debug interface configuration): Debug Interface Configuration.
3894
                                                              (line  69)
3895
* server_port (verification API configuration): Verification API Configuration.
3896
                                                              (line  19)
3897
* set (Interactive CLI):                 Interactive Command Line.
3898
                                                              (line 146)
3899
* set breakpoint (Interactive CLI):      Interactive Command Line.
3900
                                                              (line  57)
3901
* setdbch (Interactive CLI):             Interactive Command Line.
3902
                                                              (line 141)
3903
* simple model:                          Configuring the Build.
3904
                                                              (line  32)
3905
* simulator configuration:               Simulator Behavior.  (line   6)
3906
* simulator configuration info (Interactive CLI): Interactive Command Line.
3907
                                                              (line 119)
3908
* simulator reset (Interactive CLI):     Interactive Command Line.
3909
                                                              (line  63)
3910
* simulator statistics (Interactive CLI): Interactive Command Line.
3911
                                                              (line  83)
3912
* size (ATA/ATAPI device configuration): Disc Interface Configuration.
3913
                                                              (line 109)
3914
* size (generic peripheral configuration): Generic Peripheral Configuration.
3915
                                                              (line  30)
3916
* size (memory configuration):           Memory Configuration.
3917
                                                              (line  67)
3918
* sleep mode (power management register): Power Management Configuration.
3919
                                                              (line  16)
3920
* slow down factor (power management register): Power Management Configuration.
3921
                                                              (line  12)
3922
* SME (power management register):       Power Management Configuration.
3923
                                                              (line  16)
3924
* sockif (Ethernet configuration):       Ethernet Configuration.
3925
                                                              (line  83)
3926
* sr (CPU configuration):                CPU Configuration.   (line  53)
3927
* stall (Interactive CLI):               Interactive Command Line.
3928
                                                              (line  72)
3929
* stall the processor (Interactive CLI): Interactive Command Line.
3930
                                                              (line  72)
3931
* statistics, register over time:        Configuring the Build.
3932
                                                              (line  64)
3933
* statistics, simulation (Interactive CLI): Interactive Command Line.
3934
                                                              (line  83)
3935
* stats (Interactive CLI):               Interactive Command Line.
3936
                                                              (line  83)
3937
* stepping code (Interactive CLI):       Interactive Command Line.
3938
                                                              (line  19)
3939
* store_hitdelay (data cache configuration): Cache Configuration.
3940
                                                              (line  54)
3941
* store_missdelay (data cache configuration): Cache Configuration.
3942
                                                              (line  58)
3943
* SUME (power management register):      Power Management Configuration.
3944
                                                              (line  24)
3945
* superscalar (CPU configuration):       CPU Configuration.   (line  58)
3946
* suspend mode (power management register): Power Management Configuration.
3947
                                                              (line  24)
3948
* t (Interactive CLI):                   Interactive Command Line.
3949
                                                              (line  19)
3950
* TCP/IP port range:                     Verification API Configuration.
3951
                                                              (line  23)
3952
* TCP/IP port range for or1ksim service: Debug Interface Configuration.
3953
                                                              (line  74)
3954
* TCP/IP port range for or1ksim-rsp service: Debug Interface Configuration.
3955
                                                              (line  41)
3956
* timings_file (CUC configuration):      CUC Configuration.   (line  46)
3957
* timings_fn (CUC configuration - deprecated): CUC Configuration.
3958
                                                              (line  46)
3959
* toggle breakpoint (Interactive CLI):   Interactive Command Line.
3960
                                                              (line  57)
3961
* toggle debug channels (Interactive CLI): Interactive Command Line.
3962
                                                              (line 141)
3963
* toggle debug mode (Interactive CLI):   Interactive Command Line.
3964
                                                              (line 151)
3965
* tx_channel (Ethernet configuration):   Ethernet Configuration.
3966
                                                              (line  60)
3967
* txfile (Ethernet configuration):       Ethernet Configuration.
3968
                                                              (line  69)
3969
* txfile (frame buffer configuration):   Frame Buffer Configuration.
3970
                                                              (line  35)
3971
* txfile (VGA configuration):            Display Interface Configuration.
3972
                                                              (line  47)
3973
* type (ATA/ATAPI device configuration): Disc Interface Configuration.
3974
                                                              (line  99)
3975
* type (memory configuration):           Memory Configuration.
3976
                                                              (line  11)
3977
* type=pattern (memory configuration):   Memory Configuration.
3978
                                                              (line  21)
3979
* type=random (memory configuration):    Memory Configuration.
3980
                                                              (line  15)
3981
* type=unknown (memory configuration):   Memory Configuration.
3982
                                                              (line  25)
3983
* type=zero (memory configuration):      Memory Configuration.
3984
                                                              (line  29)
3985
* UART configuration:                    UART Configuration.  (line   6)
3986
* UART I/O from/to a physical serial port: UART Configuration.
3987
                                                              (line  62)
3988
* UART I/O from/to an xterm:             UART Configuration.  (line  38)
3989
* UART I/O from/to files:                UART Configuration.  (line  33)
3990
* UART I/O from/to open file descriptors: UART Configuration. (line  58)
3991
* UART I/O from/to TCP/IP:               UART Configuration.  (line  45)
3992
* UART verification (VAPI):              Verification API.    (line  41)
3993
* unstall (Interactive CLI):             Interactive Command Line.
3994
                                                              (line  78)
3995
* unstall the processor (Interactive CLI): Interactive Command Line.
3996
                                                              (line  78)
3997
* upr (CPU configuration):               CPU Configuration.   (line  21)
3998
* ustates (cache configuration):         Cache Configuration. (line  33)
3999
* ustates (MMU configuration):           Memory Management Configuration.
4000
                                                              (line  41)
4001
* VAPI configuration:                    Verification API Configuration.
4002
                                                              (line   6)
4003
* VAPI for Debug Unit:                   Verification API.    (line  34)
4004
* VAPI for DMA:                          Verification API.    (line  73)
4005
* VAPI for Ethernet:                     Verification API.    (line  78)
4006
* VAPI for GPIO:                         Verification API.    (line  88)
4007
* VAPI for UART:                         Verification API.    (line  41)
4008
* vapi_id (debug interface configuration): Debug Interface Configuration.
4009
                                                              (line  80)
4010
* vapi_id (DMA configuration) <1>:       Ethernet Configuration.
4011
                                                              (line  88)
4012
* vapi_id (DMA configuration):           DMA Configuration.   (line  38)
4013
* vapi_id (GPIO configuration):          GPIO Configuration.  (line  32)
4014
* vapi_id (UART configuration):          UART Configuration.  (line  85)
4015
* vapi_log_file (verification API configuration): Verification API Configuration.
4016
                                                              (line  41)
4017
* vapi_log_fn (verification API configuration - deprecated): Verification API Configuration.
4018
                                                              (line  41)
4019
* ver (CPU configuration):               CPU Configuration.   (line  15)
4020
* verbose (simulator configuration):     Simulator Behavior.  (line  10)
4021
* Verification API configuration:        Verification API Configuration.
4022
                                                              (line   6)
4023
* Verilog memory dump (Interactive CLI): Interactive Command Line.
4024
                                                              (line 124)
4025
* VGA configuration:                     Display Interface Configuration.
4026
 
4027
 
4028
                                                              (line  50)
4029
4030
4031

4032
Tag Table:
4033
Node: Top814
4034
Node: Installation1224
4035
Node: Preparation1471
4036
Node: Configuring the Build1761
4037
Node: Build and Install6872
4038
Node: Known Issues7561
4039
Node: Usage9691
4040
Node: Standalone Simulator9905
4041
Node: Profiling Utility12794
4042
Node: Memory Profiling Utility13702
4043
Node: Simulator Library15061
4044
Node: Configuration20523
4045
Node: Configuration File Format21129
4046
Node: Configuration File Preprocessing21421
4047
Node: Configuration File Syntax21791
4048
Node: Simulator Configuration24569
4049
Node: Simulator Behavior24860
4050
Node: Verification API Configuration28876
4051
Node: CUC Configuration30805
4052
Node: Core OpenRISC Configuration32710
4053
Node: CPU Configuration33212
4054
Node: Memory Configuration37002
4055
Node: Memory Management Configuration42278
4056
Node: Cache Configuration44639
4057
Node: Interrupt Configuration47005
4058
Node: Power Management Configuration47737
4059
Node: Branch Prediction Configuration49009
4060
Node: Debug Interface Configuration50362
4061
Node: Peripheral Configuration54562
4062
Node: Memory Controller Configuration55187
4063
Node: UART Configuration57784
4064
Node: DMA Configuration61290
4065
Node: Ethernet Configuration63145
4066
Node: GPIO Configuration67101
4067
Node: Display Interface Configuration68724
4068
Node: Frame Buffer Configuration71024
4069
Node: Keyboard Configuration72874
4070
Node: Disc Interface Configuration75100
4071
Node: Generic Peripheral Configuration80015
4072
Node: Interactive Command Line82299
4073
Node: Verification API89247
4074
Node: Code Internals93665
4075
Node: Coding Conventions94222
4076
Node: Global Data Structures98637
4077
Node: Concepts101289
4078
Ref: Output Redirection101434
4079
Node: Internal Debugging101971
4080
Node: GNU Free Documentation License102467

powered by: WebSVN 2.1.0

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