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

Subversion Repositories or1k

[/] [or1k/] [tags/] [rel-0-3-0-rc1/] [or1ksim/] [doc/] [or1ksim.info] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1748 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 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. Unpack the software and
50
create a _separate_ directory in which to build it:
51
 
52
     tar jxf or1ksim-0.3.0rc1.tar.bz2
53
     mkdir builddir_or1ksim
54
     cd builddir_or1ksim
55
 
56
Configure the software. The only critical argument is `--target', which
57
must specify the OpenRISC 1000 architecture.
58
 
59
     ../or1ksim-0.3.0rc1/configure --target=or32-uclinux ...
60
 
61
See `configure --help' for other options. The most useful is `--prefix'
62
to specify a directory for installation of the tools.
63
 
64
A number of features in the simulator do require enabling at
65
configuration. These include
66
 
67
`--enable-ethphy'
68
     Allow the Ethernet to be simulated by connecting via a socket (the
69
     alternative reads and writes, from and to files). This must then be
70
     configured using the relevant fields in the `ethernet' section of
71
     the configuration file. *Note Ethernet Configuration: Ethernet
72
     Configuration.
73
 
74
 
75
The tool is then built with:
76
 
77
     make all
78
     make install
79
 
80
This will install the three variations of the Or1ksim tool,
81
`or32-uclinux-sim', `or32-uclinux-psim' and `or32-uclinux-mpsim', the
82
Or1ksim library, `libsim', the header file, `or1ksim.h' and this
83
documentation in `info' format.
84
 
85
     Note: Testing Or1ksim with `make check' is not yet supported.
86
 
87
The documentation may be created and installed in alternative formats
88
(PDF, Postscript, DVI, HTML) with for example:
89
 
90
     make pdf
91
     make install-pdf
92
 
93

94
File: or1ksim.info,  Node: Usage,  Next: Configuration,  Prev: Installation,  Up: Top
95
 
96
2 Usage
97
*******
98
 
99
* Menu:
100
 
101
* Standalone Simulator::
102
* Profiling Utility::
103
* Memory Profiling Utility::
104
* Simulator Library::
105
 
106

107
File: or1ksim.info,  Node: Standalone Simulator,  Next: Profiling Utility,  Up: Usage
108
 
109
2.1 Standalone Simulator
110
========================
111
 
112
The general form the standalone command is:
113
 
114
     or32-uclinux-sim [-vhi] [-f FILE] [--nosrv] [--srv=[N]] [-d STR]
115
                      [--enable-profile] [--enable-mprofile] [FILE]
116
 
117
Many of the options have both a short and a long form. For example `-h'
118
or `--help'.
119
 
120
`-v'
121
`--version'
122
     Print out the version and copyright notice for Or1ksim and exit.
123
 
124
`-h'
125
`--help'
126
     Print out help about the command line options and what they mean.
127
 
128
`-f FILE'
129
`--file FILE'
130
     Read configuration commands from the specified file, looking first
131
     in the current directory, and otherwise in the `$HOME/.or1k'
132
     directory. If this argument is not specified, the file `sim.cfg'
133
     in those two locations is used. Failure to find the file is a fatal
134
     error. *Note Configuration: Configuration, for detailed information
135
     on configuring Or1ksim.
136
 
137
`--nosrv'
138
     Do not start up the debug server. This overrides any setting
139
     specified in the configuration file. This option may not be
140
     specified with `--srv'. If it is, a rude message is printed and the
141
     `--nosrv' option is ignored.
142
 
143
`--srv'
144
 
145
`--srv=N'
146
     Start up the debug server. If the parameter, N, is specified, use
147
     that as the TCP/IP port for the server, otherwise a random value
148
     from the private port range (41920-65535) will be used. This option
149
     may not be specified with `--nosrv'. If it is, a rude message is
150
     printed and the `--nosrv' option is ignored.
151
 
152
`-d=CONFIG_STRING'
153
`--debug-config=CONFIG_STRING'
154
     Enable selected debug messages in Or1ksim. This parameter is for
155
     use by developers only, and is not covered further here. See the
156
     source code for more details.
157
 
158
`-i'
159
`--interactive'
160
     After starting, drop into the Or1ksim interactive command shell.
161
 
162
`--enable-profile'
163
     Enable instruction profiling.
164
 
165
`--enable-mprofile'
166
     Enable memory profiling.
167
 
168
 
169

170
File: or1ksim.info,  Node: Profiling Utility,  Next: Memory Profiling Utility,  Prev: Standalone Simulator,  Up: Usage
171
 
172
2.2 Profiling Utility
173
=====================
174
 
175
This utility analyses instruction profile data generated by Or1ksim. It
176
may be invoked as a standalone command, or from the Or1ksim CLI. The
177
general form the standalone command is:
178
 
179
     or32-uclinux-profile [-vhcq] [-g=FILE]
180
 
181
Many of the options have both a short and a long form. For example `-h'
182
or `--help'.
183
 
184
`-v'
185
`--version'
186
     Print out the version and copyright notice for the Or1ksim
187
     profiling utility and exit.
188
 
189
`-h'
190
`--help'
191
     Print out help about the command line options and what they mean.
192
 
193
`-c'
194
`--cumulative'
195
     Show cumulative sum of cycles in functions
196
 
197
`-q'
198
`--quiet'
199
     Suppress messages
200
 
201
`-g=FILE'
202
`--generate=FILE'
203
     The data file to analyse. If omitted, the default file,
204
     `sim.profile' is used.
205
 
206
 
207

208
File: or1ksim.info,  Node: Memory Profiling Utility,  Next: Simulator Library,  Prev: Profiling Utility,  Up: Usage
209
 
210
2.3 Memory Profiling Utility
211
============================
212
 
213
This utility analyses memory profile data generated by Or1ksim. It may
214
be invoked as a standalone command, or from the Or1ksim CLI. The
215
general form the standalone command is:
216
 
217
     or32-uclinux-mprofile  [-vh] [-m=M] [-g=N] [-f=FILE] FROM TO
218
 
219
Many of the options have both a short and a long form. For example `-h'
220
or `--help'.
221
 
222
`-v'
223
`--version'
224
     Print out the version and copyright notice for the Or1ksim memory
225
     profiling utility and exit.
226
 
227
`-h'
228
`--help'
229
     Print out help about the command line options and what they mean.
230
 
231
`-m=M'
232
`--mode=M'
233
     Specify the mode out output. Permitted options are
234
 
235
    `detailed'
236
    `d'
237
          Detailed output. This is the default if no mode is specified.
238
 
239
    `pretty'
240
    `p'
241
          Pretty printed output.
242
 
243
    `access'
244
    `a'
245
          Memory accesses only.
246
 
247
    `width'
248
    `w'
249
          Access width only.
250
 
251
 
252
`-g=N'
253
`--group=N'
254
     Group 2^n bits of successive addresses together.
255
 
256
`-f=FILE'
257
`--filename=FILE'
258
     The data file to analyse. If not specified, the default,
259
     `sim.profile' is used.
260
 
261
`FROM'
262
`TO'
263
     FROM and TO are respectively the start and end address of the
264
     region of memory to be analysed.
265
 
266
 
267

268
File: or1ksim.info,  Node: Simulator Library,  Prev: Memory Profiling Utility,  Up: Usage
269
 
270
2.4 Simulator Library
271
=====================
272
 
273
Or1ksim may be used as a static of dynamic library, `libsim.a' or
274
`libsim.so'. When compiling with the static library, the flag, `-lsim'
275
should be added to the link command.
276
 
277
The header file `or1ksim.h' contains appropriate declarations of the
278
functions exported by the Or1ksim library. These are:
279
 
280
 -- `or1ksim.h': int or1ksim_init (const char *CONFIG_FILE, const char
281
          *IMAGE_FILE, void *CLASS_PTR, unsigned long int (*UPR)(void
282
          *CLASS_PTR, unsigned long int ADDR, unsigned long int MASK),
283
          void (*UPW)(void *CLASS_PTR, unsigned long int ADDR, unsigned
284
          long int MASK, unsigned long int WDATA))
285
     The initialization function is supplied with the name of a
286
     configuration file, CONFIG_FILE, an executable image, IMAGE_FILE,
287
     a pointer to the calling class, CLASS_PTR (since the library may
288
     be used from C++) and two up-call functions, one for reads, UPR,
289
     and one for writes, UPW.
290
 
291
     *Note Configuration: Configuration, for detailed information on
292
     configuring Or1ksim and the format of the configuration file.
293
 
294
     UPW is called for any write to an address external to the model
295
     (determined by a `generic' section in the configuration file). UPR
296
     is called for any reads to an external address. The CLASS_PTR is
297
     passed back with these upcalls, allowing the function to associate
298
     the call with the class which originally initialized the library.
299
 
300
 
301
 -- `or1ksim.h': int or1ksim_run (double DURATION)
302
     Run the simulator for the simulated duration specified (in
303
     seconds).
304
 
305
 
306
 -- `or1ksim.h': void or1ksim_reset_duration (double DURATION)
307
     Change the duration of a run specified in an earlier call to
308
     `or1ksim_run'. Typically this is called from an upcall, which
309
     realizes it needs to change the duration of the run specified in
310
     the call to `or1ksim_run' that has been interrupted by the upcall.
311
 
312
     The time specified is the amount of time that the run must continue
313
     for (i.e the duration from _now_, not the duration from the
314
     original call to `or1ksim_run').
315
 
316
 
317
 -- `or1ksim.h': void or1ksim_set_time_point ()
318
     Set a timing point. For use with `or1ksim_get_time_period'.
319
 
320
 
321
 -- `or1ksim.h': double or1ksim_get_time_period ()
322
     Return the simulated time (in seconds) that has elapsed since the
323
     last call to `or1ksim_set_time_point'.
324
 
325
 
326
 -- `or1ksim.h': int or1ksim_is_le ()
327
     Return 1 (logical true) if the Or1ksim simulation is
328
     little-endian, 0 otherwise.
329
 
330
 
331
 -- `or1ksim.h': unsigned long int or1ksim_clock_rate ()
332
     Return the Or1ksim clock rate (in Hz). This is the value specified
333
     in the configuration file.
334
 
335
 
336
 -- `or1ksim.h': void or1ksim_interrupt (int I)
337
     Generate an interrupt on interrupt line I.
338
 
339
 
340
The libraries will be installed in the `lib' sub-directory of the main
341
installation directory (as specified with the `--prefix' option to the
342
`configure' script).
343
 
344
For example if the main installation directory is `/opt/or1ksim', the
345
library will be found in the `/opt/or1ksim/lib' directory. It is
346
available as both a static library (`libsim.a') and a shared object
347
(`libsim.so').
348
 
349
To link against the library add the `-lsim' flag when linking and do
350
one of the following:
351
 
352
   * Add the library directory to the `LD_LIBRARY_PATH' environment
353
     variable during execution. For example:
354
 
355
          export LD_LIBRARY_PATH=/opt/or1ksim/lib:$LD_LIBRARY_PATH
356
 
357
   * Add the library directory to the `LD_RUN_PATH' environment
358
     variable during linking. For example:
359
 
360
          export LD_RUN_PATH=/opt/or1ksim/lib:$LD_RUN_PATH
361
 
362
   * Use the linker `--rpath' option and specify the library directory
363
     when linking your program. For example
364
 
365
          gcc ... -Wl,--rpath -Wl,/opt/or1ksim/lib ...
366
 
367
   * Add the library directory to `/etc/ld.so.conf'
368
 
369
 
370

371
File: or1ksim.info,  Node: Configuration,  Next: Interactive Command Line,  Prev: Usage,  Up: Top
372
 
373
3 Configuration
374
***************
375
 
376
Or1ksim is configured through a configuration file. This is specified
377
through the `-f' parameter to the Or1ksim command, or passed as a
378
string when initializing the Or1ksim library. If no file is specified,
379
the default `sim.cfg' is used. The file is looked for first in the
380
current directory, then in the `$HOME/.or1k' directory of the user.
381
 
382
* Menu:
383
 
384
* Configuration File Format::
385
* Simulator Configuration::
386
* Core OpenRISC Configuration::
387
* Peripheral Configuration::
388
 
389

390
File: or1ksim.info,  Node: Configuration File Format,  Next: Simulator Configuration,  Up: Configuration
391
 
392
3.1 Configuration File Format
393
=============================
394
 
395
The configuration file is a plain text file.
396
 
397
* Menu:
398
 
399
* Configuration File Preprocessing::
400
* Configuration File Syntax::
401
 
402

403
File: or1ksim.info,  Node: Configuration File Preprocessing,  Next: Configuration File Syntax,  Up: Configuration File Format
404
 
405
3.1.1 Configuration File Preprocessing
406
--------------------------------------
407
 
408
The configuration file may include C style comments (i.e. delimited by
409
`/*' and `*/').
410
 
411
Configure files may be included, using
412
 
413
     include FILENAME_TO_INCLUDE
414
 
415

416
File: or1ksim.info,  Node: Configuration File Syntax,  Prev: Configuration File Preprocessing,  Up: Configuration File Format
417
 
418
3.1.2 Configuration File Syntax
419
-------------------------------
420
 
421
The configuration file is divided into a series of sections, with the
422
general form:
423
 
424
     section SECTION_NAME
425
 
426
       ...
427
 
428
     end
429
 
430
Sections may also have sub-sections within them (currently only the
431
ATA/ATAPI disc interface uses this).
432
 
433
Within a section, or sub-section are a series of parameter assignments,
434
one per line, withe the general form
435
 
436
       PARAMETER = VALUE
437
 
438
Depending on the parameter, the value may be a named value (an
439
enumeration), an integer (specified in any format acceptable in C) or a
440
string in doubple quotes. For flag parameters, the value 1 is used to
441
mean "true" or "on" and the value "0" to mean "false" or "off". An
442
example from a memory section shows each of these
443
 
444
     section memory
445
       type    = random
446
       pattern = 0x00
447
       name    = "FLASH"
448
       ...
449
     end
450
 
451
Many parameters are optional and take reasonable default values if not
452
specified. However there are some parameters (for example the `ce'
453
parameter in `section memory') _must_ be specified.
454
 
455
Subsections are introduced by a keyword, with a parameter value (no `='
456
sign), and end with the same keyword prefixed by `end'. Thus the
457
ATA/ATAPI inteface (`section ata') has a `device' subsection, thus:
458
 
459
     section ata
460
       ...
461
       device 0
462
         type    = 1
463
         file = "FILENAME"
464
         ...
465
       enddevice
466
       ...
467
     end
468
 
469
Some sections (for example `section sim') should appear only once.
470
Others (for example `section memory' may appear multiple times.
471
 
472
Sections may be omitted, _unless they contain parameters which are
473
non-optional_. If the section describes a part of the simulator which
474
is optional (for example whether it has a UART), then that
475
functionality will not be provided. If the section describes a part of
476
the simulator which is not optional (for example the CPU), then all the
477
parameters of that section will take their default values.
478
 
479
All optional parts of the functionality are always described by
480
sections including a `enabled' parameter, which can be set to 0 to
481
ensure that functionality is explicitly omitted.
482
 
483
Even if a section is disabled, all its parameters will be read and
484
stored. This is helpful if the section is subsequently enabled from the
485
Or1ksim command line (*note Interactive Command Line: Interactive
486
Command Line.).
487
 
488
     Tip: It generally clearer to have sections describing _all_
489
     components, with omitted functionality explicitly indicated by
490
     setting the `enabled' parameter to 0
491
 
492
The following sections describe the various configuration sections and
493
the parameters which may be set in each.
494
 
495

496
File: or1ksim.info,  Node: Simulator Configuration,  Next: Core OpenRISC Configuration,  Prev: Configuration File Format,  Up: Configuration
497
 
498
3.2 Simulator Configuration
499
===========================
500
 
501
* Menu:
502
 
503
* Simulator Behavior::
504
* Verification API Configuration::
505
* CUC Configuration::
506
 
507

508
File: or1ksim.info,  Node: Simulator Behavior,  Next: Verification API Configuration,  Up: Simulator Configuration
509
 
510
3.2.1 Simulator Behavior
511
------------------------
512
 
513
Simulator behavior is described in `section sim'. This section should
514
appear only once. The following parameters may be specified.
515
 
516
`verbose = 0|1'
517
     If 1 (true), print extra messages. Default 0.
518
 
519
`debug = 0-9'
520
 
521
     higher the value the greater the number of messages. Default 0.
522
     Negative values will be treated as 0 (with a warning). Values that
523
     are too large will be treated as 9 (with a warning).
524
 
525
`profile = 0|1'
526
     If 1 (true) generate a profiling file using the file specified in
527
     the `prof_file' parameter or otherwise `sim.profile'. Default 0.
528
 
529
`prof_file = ``FILENAME'''
530
     Specifies the file to be used with the `profile' parameter. Default
531
     `sim.profile'. For backwards compatibility, the alternative name
532
     `prof_fn' is supported for this parameter, but deprecated.
533
 
534
`mprofile = 0|1'
535
     If 1 (true) generate a memory profiling file using the file
536
     specified in the `mprof_file' parameter or otherwise
537
     `sim.mprofile'. Default 0.
538
 
539
`mprof_fn = ``FILENAME'''
540
     Specifies the file to be used with the `mprofile' parameter.
541
     Default `sim.mprofile'. For backwards compatibility, the
542
     alternative name `mprof_fn' is supported for this parameter, but
543
     deprecated.
544
 
545
`history = 0|1'
546
     If 1 (true) track execution flow. Default 0.
547
 
548
          Note: Setting this parameter seriously degrades performance.
549
 
550
          Note: If this execution flow tracking is enabled, then
551
          `dependstats' must be enabled in the CPU configuration
552
          section (*note CPU Configuration: CPU Configuration.).
553
 
554
`exe_log = 0|1'
555
     If 1 (true), generate an execution log. Log is written to the file
556
     specified in parameter `exe_log_file'. Default 0.
557
 
558
          Note: Setting this parameter seriously degrades performance.
559
 
560
`exe_log_type = default|hardware|simple|software'
561
     Type of execution log to produce.
562
 
563
    `default'
564
          Produce default output for the execution log. In the current
565
          implementation this is the equivalent of `hardware'.
566
 
567
    `hardware'
568
          After each instruction execution, log the number of
569
          instructions executed so far, the next instruction to execute
570
          (in hex), the general purpose registers (GPRs), status
571
          register, exception program counter, exception, effective
572
          address register and exception status register.
573
 
574
    `simple'
575
          After each instruction execution, log the number of
576
          instructions executed so far and the next instruction to
577
          execute, symbolically disassembled.
578
 
579
    `software'
580
          After each instruction execution, log the number of
581
          instructions executed so far and the next instruction to
582
          execute, symbolically disassembled. Also show the value of
583
          each operand to the instruction.
584
 
585
 
586
     Default value `hardware'. Any unrecognized keyword (case
587
     insensitive) will be treated as the default with a warning.
588
 
589
          Note: Execution logs can be _very_ big.
590
 
591
`exe_log_start = VALUE'
592
     Address of the first instruction to start logging. Default 0.
593
 
594
`exe_log_end = VALUE'
595
     Address of the last instruction to log. Default no limit (i.e once
596
     started logging will continue until the simulator exits).
597
 
598
`exe_log_marker = VALUE'
599
     Specifies the number of instructions between printing horizontal
600
     markers. Default is to produce no markers.
601
 
602
`exe_log_file = FILENAME'
603
     Filename for the execution log filename if `exe_log' is enabled.
604
     Default `executed.log'. For backwards compatibility, the
605
     alternative name `exe_log_fn' is supported for this parameter, but
606
     deprecated.
607
 
608
`clkcycle = VALUE[ps|ns|us|ms]'
609
     Specify the time taken by one clock cycle. If no units are
610
     specified, `ps' is assumed. Default 4000ps (250MHz).
611
 
612
 
613

614
File: or1ksim.info,  Node: Verification API Configuration,  Next: CUC Configuration,  Prev: Simulator Behavior,  Up: Simulator Configuration
615
 
616
3.2.2 Verification API (VAPI) Configuration
617
-------------------------------------------
618
 
619
The Verification API (VAPI) provides a TCP/IP interface to allow
620
components of the simulation to be controlled externally. *Note
621
Verification API: Verification API, for more details.
622
 
623
Verification API configuration is described in `section vapi'. This
624
section may appear at most once. The following parameters may be
625
specified.
626
 
627
`enabled = 0|1'
628
     If 1 (true), verification API is enabled and its server started.
629
     If 0 (the default), it is disabled.
630
 
631
`server_port = VALUE'
632
     When VAPI is enabled, communication will be via TCP/IP on the port
633
     specified by VALUE. The value must lie in the range 1 to 65535.
634
     The default value is 50000.
635
 
636
          Tip: There is no registered port for Or1ksim VAPI. Good
637
          practice suggests users should adopt port values in the
638
          "Dynamic" or "Private" port range, i.e. 49152-65535.
639
 
640
`log_enabled = 0|1'
641
     If 1 (true), all VAPI requests and sent commands will be logged.
642
     If 0 (the default), logging is diabled. Logs are written to the
643
     file specified by the `vapi_log_file' field (see below).
644
 
645
          Caution: This can generate a substantial amount of file I/O
646
          and seriously degrade simulator performance.
647
 
648
`hide_device_id = 0|1'
649
     If 1 (true) don't log the device ID. If 0 (the default), log the
650
     device ID. This feature (when set to 1) is provided for backwards
651
     compatibility with an old version of VAPI.
652
 
653
`vapi_log_file = "FILENAME"'
654
     Use `filename' as the file for logged data is logging is enabled
655
     (see `log_enabled' above). The default is `"vapi.log"'. For
656
     backwards compatibility, the alternative name `vapi_log_fn' is
657
     supported for this parameter, but deprecated.
658
 
659
 
660

661
File: or1ksim.info,  Node: CUC Configuration,  Prev: Verification API Configuration,  Up: Simulator Configuration
662
 
663
3.2.3 Custom Unit Compiler (CUC) Configuration
664
----------------------------------------------
665
 
666
The Custom Unit Compiler (CUC) was a project by Marko Mlinar to generate
667
Verilog from ANSI C functions. The project seems to not have progressed
668
beyond the initial prototype phase. The configuration parameters are
669
described here for the record.
670
 
671
CUC configuration is described in `section cuc'. This section may
672
appear at most once. The following parameters may be specified.
673
 
674
`memory_order = none|weak|strong|exact'
675
     This parameter specifies the memory ordering required:
676
 
677
    `memory_order=none'
678
          Different memory ordering, even if there are dependencies.
679
          Bursts can be made, width can change.
680
 
681
          Different memory ordering, even if there are dependencies. If
682
          dependencies cannot occur, then bursts can be made, width can
683
          change.
684
 
685
          Same memory ordering. Bursts can be made, width can change.
686
 
687
          Exactly the same memory ordering and widths.
688
 
689
 
690
     The default value is `memory_order=exact'. Invalid memory
691
     orderings are ignored with a warning.
692
 
693
`calling_convention = 0|1'
694
     If 1 (true), programs follow OpenRISC calling conventions. If 0
695
     (the default), they may use other convenitions.
696
 
697
`enable_bursts = 0 | 1'
698
     If 1 (true), bursts are detected. If 0 (the default), bursts are
699
     not detected.
700
 
701
`no_multicycle = 0 | 1'
702
     If 1 (true), no multicycle logic paths will be generated. If 0 (the
703
     default), multicycle logic paths will be generated.
704
 
705
`timings_file = "FILENAME"'
706
     FILENAME specifies a file containing timing information. The
707
     default value is `"virtex.tim"'. For backwards compatibility, the
708
     alternative name `timings_fn' is supported for this parameter, but
709
     deprecated.
710
 
711
 
712

713
File: or1ksim.info,  Node: Core OpenRISC Configuration,  Next: Peripheral Configuration,  Prev: Simulator Configuration,  Up: Configuration
714
 
715
3.3 Configuring the OpenRISC Architectural Components
716
=====================================================
717
 
718
* Menu:
719
 
720
* CPU Configuration::
721
* Memory Configuration::
722
* Memory Management Configuration::
723
* Cache Configuration::
724
* Interrupt Configuration::
725
* Power Management Configuration::
726
* Branch Prediction Configuration::
727
* Debug Interface Configuration::
728
 
729

730
File: or1ksim.info,  Node: CPU Configuration,  Next: Memory Configuration,  Up: Core OpenRISC Configuration
731
 
732
3.3.1 CPU Configuration
733
-----------------------
734
 
735
CPU configuration is described in `section cpu'. This section should
736
appear only once. At present Or1ksim does not model multi-CPU systems.
737
The following parameters may be specified.
738
 
739
`ver = VALUE'
740
 
741
`cfg = VALUE'
742
 
743
`rev = VALUE'
744
     The values are used to form the corresponding fields in the `VR'
745
     Special Purpose Register (SPR 0). Default values 0. A warning is
746
     given and the value truncated if it is too large (8 bits for `ver'
747
     and `cfg', 6 bits for `rev').
748
 
749
`upr = VALUE'
750
     Used as the value of the Unit Present Register (UPR) Special
751
     Purpose Register (SPR 1) to VALUE. Default value is 0x0000075f,
752
     i.e.
753
        * UPR present (0x00000001)
754
 
755
        * Data cache present (0x00000002)
756
 
757
        * Instruction cache present (0x00000004)
758
 
759
        * Data MMY present (0x00000008)
760
 
761
        * Instruction MMU present (0x00000010)
762
 
763
        * Debug unit present (0x00000040)
764
 
765
        * Power management unit present (0x00000100)
766
 
767
        * Programmable interrupt controller present (0x00000200)
768
 
769
        * Tick timer present (0x00000400)
770
 
771
     However, with the exection of the UPR present (0x00000001) and tick
772
     timer present, the various fields will be modified with the values
773
     specified in their corresponding configuration sections.
774
 
775
`cfgr = VALUE'
776
     Sets the CPU configuration register (Special Purpose Register 2) to
777
     VALUE. Default value is 0x00000020, i.e. support for the ORBIS32
778
     instruction set. Attempts to set any other value are accepted, but
779
     issue a warning that there is no support for the instruction set.
780
 
781
`sr = VALUE'
782
     Sets the supervision register Special Purpose Register (SPR 0x11)
783
     to VALUE. Default value is 0x00008001, i.e. start in supervision
784
     mode (0x00000001) and set the "Fixed One" bit (0x00008000).
785
 
786
`superscalar = 0|1'
787
     If 1, the processor operates in superscalar mode. Default value is
788
     0.
789
 
790
     In the current simulator, the only functional effect of superscalar
791
     mode is to affect the calculation of the number of cycles taken to
792
     execute an instruction.
793
 
794
          Caution: The code for this does not appear to be complete or
795
          well tested, so users are advised not to use this option.
796
 
797
`hazards = 0|1'
798
     If 1, data hazards are tracked in a superscalar CPU. Default value
799
     is 0.
800
 
801
     In the current simulator, the only functional effect is to cause
802
     logging of hazard waiting information if the CPU is superscalar.
803
     However nowhere in the simulator is this data actually computed,
804
     so the net result is probably to have no effect.
805
 
806
     if harzards are tracked, current hazards can be displayed using the
807
     simulator's `r' command.
808
 
809
          Caution: The code for this does not appear to be complete or
810
          well tested, so users are advised not to use this option.
811
 
812
`dependstats = 0|1'
813
     If 1, inter-instruction dependencies are calculated. Default value
814
     0.
815
 
816
     If these values are calculated, the depencies can be displayed
817
     using the simulator's `stat' command.
818
 
819
          Note: This field must be enabled, if execution execution flow
820
          tracking (field `history') has been requested in the simulator
821
          configuration section (*note Simulator Behavior: Simulator
822
          Behavior.).
823
 
824
`sbuf_len = VALUE'
825
     The length of the store buffer is set to VALUE, which must be no
826
     greater than 256. Larger values will be truncated to 256 with a
827
     warning. Negative values will be treated as 0 with a warning. Use
828
 
829
 
830
     When the store buffer is active, stores are accumulated and
831
     committed when I/O is idle.
832
 
833
 
834

835
File: or1ksim.info,  Node: Memory Configuration,  Next: Memory Management Configuration,  Prev: CPU Configuration,  Up: Core OpenRISC Configuration
836
 
837
3.3.2 Memory Configuration
838
--------------------------
839
 
840
Memory configuration is described in `section memory'. This section may
841
appear multiple times, specifying multiple blocks of memory. The
842
following parameters may be specified.
843
 
844
`type=random|pattern|unknown|zero'
845
     Specifies the values to which memory should be initialized. The
846
     default value is `unknown'.
847
 
848
    `random'
849
          Set the memory values to be a random value. A seed for the
850
          random generator may be set using the `random_seed' field in
851
          this section (see below), thus ensuring the same "random"
852
          values are used each time.
853
 
854
    `pattern'
855
          Set the memory values to be a pattern value, which is set
856
          using the `pattern' field in this section (see below).
857
 
858
    `unknown'
859
          The memory values are not initialized (i.e. left "unknown").
860
          This option will yield faster initialization of the simulator.
861
 
862
    `zero'
863
          Set the memory values to be 0. This is the equivalent of
864
          `type=pattern' and a `pattern' value of 0, and implemented as
865
          such.
866
 
867
               Note: As a consequence, if the `pattern' field is
868
               _subsequently_ specified in this section, the value in
869
               that field will be used instead of zero to initialize
870
               the memory.
871
 
872
 
873
`random_seed = VALUE'
874
     Set the seed for the random number generator to VALUE. This only
875
     has any effect for memory type `random'.
876
 
877
     The default value is -1, which means the seed will be set from a
878
     call to the `time' function, thus ensuring different random values
879
     are used on each run. The simulator prints out the seed used in
880
     this case, allowing repeat runs to regenerate the same random
881
     values used in any particular run.
882
 
883
`pattern = VALUE'
884
     Set the pattern to be used when initializing memory to VALUE. The
885
     default value is 0. This only has any effect for memory type
886
     `pattern'. The least significant 8 bits of this value is used to
887
     initialize each byte. More than 8 bits can be specified, but will
888
     ignored with a warning.
889
 
890
          Tip: The default value, is equivalent to setting the memory
891
          `type' to be `zero'. If that is what is intended, then using
892
          `type=zero' explicitly is better than using `type=pattern'
893
          and not specifying a value for `pattern'.
894
 
895
`baseaddr = VALUE'
896
     Set the base address of the memory to VALUE. It should be aligned
897
     to a multiple of the memory size rounded up to the nearest 2^n.
898
     The default value is 0.
899
 
900
`size = VALUE'
901
     Set the size of the memory block to be VALUE bytes. This should be
902
     a multiple of 4 (i.e. word aligned). The default value is 1024.
903
 
904
          Note: When allocating memory, the simulator will allocate the
905
          nearest 2^n bytes greater than or equal to VALUE, and will not
906
          notice memory misses in any part of the memory between VALUE
907
          and the amount allocated.
908
 
909
          As a consequence users are strongly recommended to specify
910
          memory sizes that are an exact power of 2. If some other
911
          amount of memory is required, it should be specified as
912
          separate, contiguous blocks, each of which is a power of 2 in
913
          size.
914
 
915
`name = "TEXT"'
916
     Name the block. Typically these describe the type of memory being
917
     modeled (thus `"SRAM"' or `"Flash"'. The default is
918
     `"anonymous memory block"'.
919
 
920
          Note: It is not clear that this information is currently ever
921
          used in normal operation of the simulator. Even the `info'
922
          command of the simulator ignores it.
923
 
924
`ce = VALUE'
925
     Set the chip enable index of the memory instance. Each memory
926
     instance should have a unique chip enable index, which should be
927
     greater than or equal to zero. This is used by the memory
928
     controller when identifying different memory instances.
929
 
930
     The default value is -1 (invalid).
931
 
932
`mc = VALUE'
933
     Specifies the memory controller this memory is connected to. It
934
     should correspond to the `index' field specified in a `section mc'
935
     for a memory controller (*note Memory Controller Configuration:
936
     Memory Controller Configuration.).
937
 
938
     Default value is 0, which is also the default value of a memory
939
     controller `index' field. This is suitable therefore for designs
940
     with just one memory controller.
941
 
942
`delayr = VALUE'
943
     The number of cycles required for a read access. Set to -1 if the
944
     memory does not support reading. Default value 1. The simulator
945
     will add this number of cycles to the total instruction cycle
946
     count when reading from main memory.
947
 
948
`delayw = VALUE'
949
     The number of cycles required for a write access. Set to -1 if the
950
     memory does not support writing. Default value 1. The simulator
951
     will add this number of cycles to the total instruction cycle
952
     count when writing to main memory.
953
 
954
`log = "FILE"'
955
     If specified, `file' names a file for all memory accesses to be
956
     logged. If not specified, the default value, NULL is used, meaning
957
     that the memory is not logged.
958
 
959
 
960

961
File: or1ksim.info,  Node: Memory Management Configuration,  Next: Cache Configuration,  Prev: Memory Configuration,  Up: Core OpenRISC Configuration
962
 
963
3.3.3 Memory Management Configuration
964
-------------------------------------
965
 
966
Memory Management Unit (MMU) configuration is described in `section
967
dmmu' (for the data MMU) and `section immu' (for the instruction MMU).
968
Each section should appear at most once. The following parameters may
969
be specified.
970
 
971
`enabled = 0|1'
972
     If 1 (true), the data or instruction (as appropriate) MMU is
973
     enabled. If 0 (the default), it is disabled.
974
 
975
`nsets = VALUE'
976
     Sets the number of data or instruction (as appropriate) TLB sets to
977
     VALUE, which must be a power of two, not exceeding 128. Values
978
     which do not fit these criteria are ignored with a warning. The
979
     default value is 1.
980
 
981
`nways = VALUE'
982
     Sets the number of data or instruction (as appropriate) TLB ways to
983
     VALUE. The value must be in the range 1 to 4. Values outside this
984
     range are ignored with a warning. The default value is 1.
985
 
986
`pagesize = VALUE'
987
     The data or instruction (as appropriate) MMU page size is set to
988
     VALUE, which must be a power of 2. Values which are not a power of
989
     2 are ignored with a warning. The default is 8192 (0x2000).
990
 
991
`entrysize = VALUE'
992
     The data or instruction (as appropriate) MMU entry size is set to
993
     VALUE, which must be a power of 2. Values which are not a power of
994
     2 are ignored with a warning. The default value is 1.
995
 
996
          Note: Or1ksim does not appear to use the `entrysize' parameter
997
          in its simulation of the MMUs. Thus setting this value does
998
          not seem to matter.
999
 
1000
`ustates = VALUE'
1001
     The number of instruction usage states for the data or instruction
1002
     (as appropriate) MMU is set to VALUE, which must be 2, 3 or 4.
1003
     Values outside this range are ignored with a warning. The default
1004
     value is 2.
1005
 
1006
          Note: Or1ksim does not appear to use the `ustates' parameter
1007
          in its simulation of the MMUs. Thus setting this value does
1008
          not seem to matter.
1009
 
1010
`hitdelay = VALUE'
1011
     Set the number of cycles a data or instruction (as appropriate) MMU
1012
     hit costs. Default value 1.
1013
 
1014
`missdelay = VALUE'
1015
     Set the number of cycles a data or instruction (as appropriate) MMU
1016
     miss costs. Default value 1.
1017
 
1018
 
1019

1020
File: or1ksim.info,  Node: Cache Configuration,  Next: Interrupt Configuration,  Prev: Memory Management Configuration,  Up: Core OpenRISC Configuration
1021
 
1022
3.3.4 Cache Configuration
1023
-------------------------
1024
 
1025
Cache configuration is described in `section dc' (for the data cache)
1026
and `seciton ic' (for the instruction cache). Each section should
1027
appear at most once. The following parameters may be specified.
1028
 
1029
`enabled = 0|1'
1030
     If 1 (true), the data or instruction (as appropriate) cache is
1031
     enabled. If 0 (the default), it is disabled.
1032
 
1033
`nsets = VALUE'
1034
     Sets the number of data or instruction (as appropriate) cache sets
1035
     to VALUE, which must be a power of two, not exceeding
1036
     `MAX_DC_SETS' (for the data cache) or `MAX_IC_SETS' (for the
1037
     instruction cache). At the time of writing, these constants are
1038
     both defined in the code to be 1024). The default value is 1.
1039
 
1040
`nways = VALUE'
1041
     Sets the number of data or instruction (as appropriate) cache ways
1042
     to VALUE, which must be a power of two, not exceeding
1043
     `MAX_DC_WAYS' (for the data cache) or `MAX_IC_WAYS' (for the
1044
     instruction cache). At the time of writing, these constants are
1045
     both defined in the code to be 32). The default value is 1.
1046
 
1047
`blocksize = VALUE'
1048
     The data or instruction (as appropriate) cache block size is set to
1049
     VALUE bytes, which must be either 16 or 32. The default is 16.
1050
 
1051
`ustates = VALUE'
1052
     The number of instruction usage states for the data or instruction
1053
     (as appropriate) cache is set to VALUE, which must be 2, 3 or 4.
1054
     The default value is 2.
1055
 
1056
`hitdelay = VALUE'
1057
     _Instruction cache only_. Set the number of cycles an instruction
1058
     cache hit costs. Default value 1.
1059
 
1060
`missdelay = VALUE'
1061
     _Instruction cache only_. Set the number of cycles an instruction
1062
     cache miss costs. Default value 1.
1063
 
1064
`load_hitdelay = VALUE'
1065
     _Data cache only_. Set the number of cycles a data load cache hit
1066
     costs. Default value 2.
1067
 
1068
`load_missdelay = VALUE'
1069
     _Data cache only_. Set the number of cycles a data load cache miss
1070
     costs. Default value 2.
1071
 
1072
`store_hitdelay = VALUE'
1073
     _Data cache only_. Set the number of cycles a data store cache hit
1074
     costs. Default value 0.
1075
 
1076
`store_missdelay = VALUE'
1077
     _Data cache only_. Set the number of cycles a data store cache
1078
     miss costs. Default value 0.
1079
 
1080
 
1081

1082
File: or1ksim.info,  Node: Interrupt Configuration,  Next: Power Management Configuration,  Prev: Cache Configuration,  Up: Core OpenRISC Configuration
1083
 
1084
3.3.5 Interrupt Configuration
1085
-----------------------------
1086
 
1087
Programmable Interrupt Controller (PIC) configuration is described in
1088
`section pic'. This section may appear at most once--Or1ksim has no
1089
mechanism for handling multiple interrupt controllers. The following
1090
parameters may be specified.
1091
 
1092
`enabled = 0|1'
1093
     If 1 (true), the programmable interrupt controller is enabled. If 0
1094
     (the default), it is disabled.
1095
 
1096
`edge_trigger = 0|1'
1097
     If 1 (true, the default), the programmable interrupt controller is
1098
     edge triggered. If 0 (false), it is level triggered.
1099
 
1100
 
1101

1102
File: or1ksim.info,  Node: Power Management Configuration,  Next: Branch Prediction Configuration,  Prev: Interrupt Configuration,  Up: Core OpenRISC Configuration
1103
 
1104
3.3.6 Power Management Configuration
1105
------------------------------------
1106
 
1107
Power management implementation is incomplete. At present the effect
1108
(which only happens when the power management unit is enabled) of
1109
setting the different bits in the power management Special Purpose
1110
Register (PMR, SPR 0x4000) is
1111
 
1112
`SDF (bit mask 0x0000000f)'
1113
     No effect - these bits are ignored
1114
 
1115
`DME (bit mask 0x00000010)'
1116
`SME (bit mask 0x00000020)'
1117
     Both these bits cause the processor to stop executing
1118
     instructions. However all other functions (debug interaction, CLI,
1119
     VAPI etc) carry on as normal.
1120
 
1121
`DCGE (bit mask 0x00000004)'
1122
     No effect - this bit is ignored
1123
 
1124
`SUME (bit mask 0x00000008)'
1125
     Enabling this bit causes a message to be printed, advising that the
1126
     processor is suspending and the simulator exits.
1127
 
1128
 
1129
On reset all bits are cleared.
1130
 
1131
Power management configuration is described in `section pm'. This
1132
section may appear at most once. The following parameter may be
1133
specified.
1134
 
1135
`enabled = 0|1'
1136
     If 1 (true), power management is enabled. If 0 (the default), it is
1137
     disabled.
1138
 
1139
 
1140

1141
File: or1ksim.info,  Node: Branch Prediction Configuration,  Next: Debug Interface Configuration,  Prev: Power Management Configuration,  Up: Core OpenRISC Configuration
1142
 
1143
3.3.7 Branch Prediction Configuration
1144
-------------------------------------
1145
 
1146
From examining the code base, it seems the branch prediction function
1147
is not fully implemented. At present the functionality seems restricted
1148
to collection of statistics.
1149
 
1150
Branch prediction configuration is described in `section bpb'. This
1151
section may appear at most once. The following parameters may be
1152
specified.
1153
 
1154
`enabled = 0|1'
1155
     If 1 (true), branch prediction is enabled. If 0 (the default), it
1156
     is disabled.
1157
 
1158
`btic = 0|1'
1159
     If 1 (true), the branch target instruction cache model is enabled.
1160
     If 0 (the default), it is disabled.
1161
 
1162
`sbp_bf_fwd = 0|1'
1163
     If 1 (true), use forward prediction for the `l.bf' instruction. If
1164
 
1165
     instruction.
1166
 
1167
`sbp_bnf_fwd = 0|1'
1168
     If 1 (true), use forward prediction for the `l.bnf' instruction. If
1169
 
1170
     instruction.
1171
 
1172
`hitdelay = VALUE'
1173
     Set the number of cycles a branch prediction hit costs. Default
1174
     value 0.
1175
 
1176
`missdelay = VALUE'
1177
     Set the number of cycles a branch prediction miss costs. Default
1178
     value 0.
1179
 
1180
 
1181

1182
File: or1ksim.info,  Node: Debug Interface Configuration,  Prev: Branch Prediction Configuration,  Up: Core OpenRISC Configuration
1183
 
1184
3.3.8 Debug Interface Configuration
1185
-----------------------------------
1186
 
1187
The debug unit and debug interface configuration is described in
1188
`section debug'. This section may appear at most once. The following
1189
parameters may be specified.
1190
 
1191
`enabled = 0|1'
1192
     If 1 (true), the debug unit is enabled. If 0 (the default), it is
1193
     disabled.
1194
 
1195
          Note: This enables the functionality of the debug unit (its
1196
          registers etc) within the mode. It does not provide any
1197
          external interface to the debug unit. For that, see
1198
          `gdb_enabled' below.
1199
 
1200
`gdb_enabled = 0|1'
1201
     If 1 (true), the OpenRISC Remote JTAG protocol server is started,
1202
     provding an interface to an external GNU debugger, using the port
1203
     specified in the `server_port' field (see below), or the `or1ksim'
1204
     TCP/IP service. If 0 (the default), the server is not started, and
1205
     no external interface is provided.
1206
 
1207
     For more detailed information on the interface to the GNU Debugger
1208
     see Embecosm Application Note 2, `Howto: Porting the GNU Debugger
1209
     Practical Experience with the OpenRISC 1000 Architecture', by
1210
     Jeremy Bennett, published by Embecosm Limited (`www.embecosm.com').
1211
 
1212
          Note: The OpenRISC Remote JTAG protocol is unique to
1213
          OpenRISC, and is hard to justify maintaining long term. In
1214
          the future it will be replaced by an interface to the
1215
          standard GDB "Remote Serial Protocol", providing access to a
1216
          wider range of GDB functionality and easier ongoing
1217
          maintenance.
1218
 
1219
`server_port = VALUE'
1220
     VALUE specifies the port to be used for the interface to the GNU
1221
     Debugger (GDB). Default value 51000. If the value 0 is specified,
1222
     Or1ksim will instead look for a TCP/IP service named `or1ksim'.
1223
 
1224
          Tip: There is no registered port for Or1ksim Remote JTAG
1225
          Interface or service `or1ksim'. Good practice suggests users
1226
          should adopt port values in the "Dynamic" or "Private" port
1227
          range, i.e. 49152-65535.
1228
 
1229
`vapi_id = VALUE'
1230
     VALUE specifies the value of the Verification API (VAPI) base
1231
     address to be used with the debug unit. *Note Verification API:
1232
     Verification API, for more details.
1233
 
1234
     If this is specified and VALUE is non-zero, all OpenRISC Remote
1235
     JTAG protocol transactions will be logged to the VAPI log file, if
1236
     enabled. This is the only functionality associated with VAPI for
1237
     the debug unit. No VAPI commands are sent, nor requests handled.
1238
 
1239
 
1240

1241
File: or1ksim.info,  Node: Peripheral Configuration,  Prev: Core OpenRISC Configuration,  Up: Configuration
1242
 
1243
3.4 Configuring Memory Mapped Peripherals
1244
=========================================
1245
 
1246
All peripheral components are optional. If they are specified, then
1247
(unlike other components) by default they are enabled.
1248
 
1249
* Menu:
1250
 
1251
* Memory Controller Configuration::
1252
* UART Configuration::
1253
* DMA Configuration::
1254
* Ethernet Configuration::
1255
* GPIO Configuration::
1256
* Display Interface Configuration::
1257
* Frame Buffer Configuration::
1258
* Keyboard Configuration::
1259
* Disc Interface Configuration::
1260
* Generic Peripheral Configuration::
1261
 
1262

1263
File: or1ksim.info,  Node: Memory Controller Configuration,  Next: UART Configuration,  Up: Peripheral Configuration
1264
 
1265
3.4.1 Memory Controller Configuration
1266
-------------------------------------
1267
 
1268
The memory controller used in Or1ksim is the component implemented at
1269
OpenCores, and found in the top level CVS directory, `mem_ctrl'. It is
1270
described in the document `Memory Controller IP Core' by Rudolf
1271
Usselmann, which can be found in the `doc' subdirectory. It is a memory
1272
mapped component, which resides on the main OpenRISC Wishbone data bus.
1273
 
1274
The memory controller configuration is described in `section mc'. This
1275
section may appear multiple times, specifying multiple memory
1276
controllers. The following parameters may be specified.
1277
 
1278
`enabled = 0|1'
1279
     If 1 (true, the default), this memory controller is enabled. If 0,
1280
     it is disabled.
1281
 
1282
          Note: The memory controller can effectively also be disabled
1283
          by setting an appropriate power on control register value
1284
          (see below). However this should only be used if it is
1285
          desired to specifically model this behavior of the memory
1286
          controller, not as a way of disabling the memory controller
1287
          in general.
1288
 
1289
`baseaddr = VALUE'
1290
     Set the base address of the memory controller's memory mapped
1291
     registers to VALUE. The default is 0, which is probably not a
1292
     sensible value.
1293
 
1294
     The memory controller has a 7 bit address bus, with a total of 19
1295
     32-bit registers, at addresses 0x00 through 0x4c (address 0x0c and
1296
     addresses 0x50 through 0x7c are not used).
1297
 
1298
`poc = VALUE'
1299
     Specifies the value of the power on control register, The least
1300
     signficant two bits specify the bus width (use 0 for an 8-bit bus,
1301
     1 for a 16-bit bus and 2 for a 32-bit bus) and the next two bits
1302
     the type of memory connected (use 0 for a disabled interface, 1
1303
     for SSRAM, 2 for asyncrhonous devices and 3 for synchronous
1304
     devices).
1305
 
1306
     If other bits are specified, they are ignored with a warning.
1307
 
1308
          Caution: The default value, 0, corresponds to a disabled
1309
          8-bit bus, and is likely not the most suitable value
1310
 
1311
`index = VALUE'
1312
     Specify the index of this memory controller amongst all the memory
1313
     controllers. This value should be unique for each memory
1314
     controller, and is used to associate specific memories with the
1315
     controller, through the `mc' field in the `section memory'
1316
     configuration (*note Memory Configuration: Memory Configuration.).
1317
 
1318
     The default value, 0, is suitable when there is only one memory
1319
     controller.
1320
 
1321
 
1322

1323
File: or1ksim.info,  Node: UART Configuration,  Next: DMA Configuration,  Prev: Memory Controller Configuration,  Up: Peripheral Configuration
1324
 
1325
3.4.2 UART Configuration
1326
------------------------
1327
 
1328
The UART implemented in Or1ksim follows the specification of the
1329
National Semiconductor 16450 and 16550 parts. It is a memory mapped
1330
component, which resides on the main OpenRISC Wishbone data bus.
1331
 
1332
The component provides a number of interfaces to emulate the behavior
1333
of an external terminal connected to the UART.
1334
 
1335
UART configuration is described in `section uart'. This section may
1336
appear multiple times, specifying multiple UARTs. The following
1337
parameters may be specified.
1338
 
1339
`enabled = 0|1'
1340
     If 1 (true, the default), this UART is enabled. If 0, it is
1341
     disabled.
1342
 
1343
`baseaddr = VALUE'
1344
     Set the base address of the UART's memory mapped registers to
1345
     VALUE. The default is 0, which is probably not a sensible value.
1346
 
1347
     The UART has a 3 bit address bus, with a total of 8 8-bit
1348
     registers, at addresses 0x0 through 0x7.
1349
 
1350
`channel = "TYPE:ARGS"'
1351
     Specify the channel representing the terminal connected to the UART
1352
     Rx & Tx pins.
1353
 
1354
    `channel="file:`rxfile',`txfile'"'
1355
          Read input characters from the file `rxfile' and write output
1356
          characters to the file `txfile' (which will be created if
1357
          required).
1358
 
1359
    `channel="xterm:ARGS"'
1360
          Create an xterm on startup, write UART Tx traffic to the
1361
          xterm and take Rx traffic from the keyboard when the xterm
1362
          window is selected. Additional arguments to the xterm command
1363
          (for example specifying window size may be specified in ARGS,
1364
          or this may be left blank.
1365
 
1366
    `channel="tcp:VALUE"'
1367
          Open the TCP/IP port specified by VALUE and read and write
1368
          UART traffic from and to it.
1369
 
1370
          Typically a telnet session is connected to the other end of
1371
          this port.
1372
 
1373
               Tip: There is no registered port for Or1ksim telnet UART
1374
               connection. Priviledged access is required to read
1375
               traffic on the registered "well-known" telnet port (23).
1376
               Instead users should use port values in the "Dynamic" or
1377
               "Private" port range, i.e. 49152-65535.
1378
 
1379
    `channel="fd:`rxfd',`txfd'"'
1380
          Read and write characters from and to the existing open
1381
          numerical file descriptors, file `rxfd' and `txfd'.
1382
 
1383
    `channel="tty:device=/dev/ttyS0,baud=9600"'
1384
          Read and write characters from and to a physical serial port.
1385
          The precise device (shown here as `/dev/ttyS0') may vary from
1386
          machine to machine.
1387
 
1388
 
1389
     The default value for this field is `"xterm:"'.
1390
 
1391
`irq = VALUE'
1392
     Use VALUE as the IRQ number of this UART. Default value 0.
1393
 
1394
`16550 = 0|1'
1395
     If 1 (true), the UART has the functionality of a 16550. If 0 (the
1396
     default), it has the functionality of a 16450. The principal
1397
     difference is that the 16550 can buffer multiple characters.
1398
 
1399
`jitter = VALUE'
1400
     Set the jitter, modeled as a time to block, to VALUE milliseconds.
1401
     Set to -1 to disable jitter modeling. Default value 0.
1402
 
1403
          Note: This functionality has yet to be implemented, so this
1404
          parameter has no effect.
1405
 
1406
`vapi_id = VALUE'
1407
     VALUE specifies the value of the Verification API (VAPI) base
1408
     address to be used with the UART. *Note Verification API:
1409
     Verification API, for more details, which details the use of the
1410
     VAPI with the UART.
1411
 
1412
 
1413

1414
File: or1ksim.info,  Node: DMA Configuration,  Next: Ethernet Configuration,  Prev: UART Configuration,  Up: Peripheral Configuration
1415
 
1416
3.4.3 DMA Configuration
1417
-----------------------
1418
 
1419
The DMA controller used in Or1ksim is the component implemented at
1420
OpenCores, and found in the top level CVS directory, `wb_dma'. It is
1421
described in the document `Wishbone DMA/Bridge IP Core' by Rudolf
1422
Usselmann, which can be found in the `doc' subdirectory. It is a memory
1423
mapped component, which resides on the main OpenRISC Wishbone data bus.
1424
The present implementation is incomplete, intended only to support the
1425
Ethernet interface (*note Ethernet Configuration::), although the
1426
Ethernet interface is not yet completed.
1427
 
1428
DMA configuration is described in `section dma'. This section may
1429
appear multiple times, specifying multiple DMA controllers. The
1430
following parameters may be specified.
1431
 
1432
`enabled = 0|1'
1433
     If 1 (true, the default), this DMA controller is enabled. If 0, it
1434
     is disabled.
1435
 
1436
`baseaddr = VALUE'
1437
     Set the base address of the DMA's memory mapped registers to
1438
     VALUE. The default is 0, which is probably not a sensible value.
1439
 
1440
     The DMA controller has a 10 bit address bus, with a total of 253
1441
     32-bit registers. The first 5 registers at addresses 0x000 through
1442
     0x010 control the overall behavior of the DMA controller. There are
1443
     then 31 blocks of 8 registers, controlling each of the 31 DMA
1444
     channels available. Addresses 0x014 through 0x01c are not used.
1445
 
1446
`irq = VALUE'
1447
     Use VALUE as the IRQ number of this DMA controller. Default value
1448
     0.
1449
 
1450
`vapi_id = VALUE'
1451
     VALUE specifies the value of the Verification API (VAPI) base
1452
     address to be used with the DMA controller. *Note Verification
1453
     API: Verification API, for more details, which details the use of
1454
     the VAPI with the DMA controller.
1455
 
1456
 
1457

1458
File: or1ksim.info,  Node: Ethernet Configuration,  Next: GPIO Configuration,  Prev: DMA Configuration,  Up: Peripheral Configuration
1459
 
1460
3.4.4 Ethernet Configuration
1461
----------------------------
1462
 
1463
The Ethernet MAC used in Or1ksim is the component implemented at
1464
OpenCores, and found in the top level CVS directory, `ethernet'. It
1465
also forms part of the OpenRISC SoC, ORPSoC. It is described in the
1466
document `Ethernet IP Core Specification' by Igor Mohor, which can be
1467
found in the `doc' subdirectory. It is a memory mapped component, which
1468
resides on the main OpenRISC Wishbone data bus.
1469
 
1470
Ethernet configuration is described in `section ethernet'. This section
1471
may appear multiple times, specifying multiple Ethernet interfaces. The
1472
following parameters may be specified.
1473
 
1474
`enabled = 0|1'
1475
     If 1 (true, the default), this Ethernet MAC is enabled. If 0, it is
1476
     disabled.
1477
 
1478
`baseaddr = VALUE'
1479
     Set the base address of the MAC's memory mapped registers to
1480
     VALUE. The default is 0, which is probably not a sensible value.
1481
 
1482
     The Ethernet MAC has a 7-bit address bus, with a total of 21
1483
     32-bit registers. Addresses 0x54 through 0x7c are not used.
1484
 
1485
          Note: The Ethernet specification describes a Tx control
1486
          register, `TXCTRL', at address 0x50. However this register is
1487
          not implemented in the Or1ksim model.
1488
 
1489
`dma = VALUE'
1490
     VALUE specifies the DMA controller with which this Ethernet is
1491
     associated. The default value is 0.
1492
 
1493
          Note: Support for external DMA is not provided in the current
1494
          implementation, and this value is ignored. In any case there
1495
          is no equivalent field to which this can be matched in the
1496
          current DMA component implementation (*note DMA
1497
          Configuration: DMA Configuration.).
1498
 
1499
`irq = VALUE'
1500
     Use VALUE as the IRQ number of this Ethernet MAC. Default value 0.
1501
 
1502
`rtx_type = 0|1'
1503
     If 1 (true) use a socket interface to the Ethernet (see parameter
1504
     `sockif' below). If 0 (the default), use a file interface, reading
1505
     and writing from and to the files specified in the `rxfile' and
1506
     `txfile' parameters (see below).
1507
 
1508
          Note: By default the socket interface is not provided in
1509
          Or1ksim. If it is required, this must be requested when
1510
          configuring, by use of the `--enable-ethphy' option to
1511
          `configure'.
1512
 
1513
               configure --target=or32-uclinux --enable-ethphy ...
1514
 
1515
`rx_channel = RXVALUE'
1516
`tx_channel = TXVALUE'
1517
     RXVALUE specifies the DMA channel to use for receive and TXVALUE
1518
     the DMA channel to use for transmit. Both default to 0.
1519
 
1520
          Note: As noted above, support for external DMA is not
1521
          provided in the current implementation, and so these values
1522
          are ignored.
1523
 
1524
`rxfile = "RXFILE"'
1525
`txfile = "TXFILE"'
1526
     When `rtx_type' is 0 (see above), RXFILE specifies the file to use
1527
     as input and TXFILE specifies the fie to use as output.
1528
 
1529
     The file contains a sequence of packets. Each packet consists of a
1530
     packet length (32 bits), followed by that many bytes of data. Once
1531
     the input file is empty, the Ethernet MAC behaves as though there
1532
     were no data on the Ethernet. The default values of these
1533
     parameters are `"eth_rx"' and `"eth_tx"' respectively.
1534
 
1535
     The input file must exist and be readable. The output file must be
1536
     writable and will be created if necessary. If either of these
1537
     conditions is not met, a warning will be given.
1538
 
1539
`sockif = "SERVICE"'
1540
     When `rtx_type' is 1 (see above), SERVICE specifies the service to
1541
     use for communication. This may be TCP/IP or UDP/IP. The default
1542
     value of this parameter is `"or1ksim_eth"'.
1543
 
1544
`vapi_id = VALUE'
1545
     VALUE specifies the value of the Verification API (VAPI) base
1546
     address to be used with the Ethernet PHY. *Note Verification API:
1547
     Verification API, for more details, which details the use of the
1548
     VAPI with the DMA controller.
1549
 
1550
 
1551

1552
File: or1ksim.info,  Node: GPIO Configuration,  Next: Display Interface Configuration,  Prev: Ethernet Configuration,  Up: Peripheral Configuration
1553
 
1554
3.4.5 GPIO Configuration
1555
------------------------
1556
 
1557
The GPIO used in Or1ksim is the component implemented at OpenCores, and
1558
found in the top level CVS directory, `gpio'. It is described in the
1559
document `GPIO IP Core Specification' by Damjan Lampret and Goran
1560
Djakovic, which can be found in the `doc' subdirectory. It is a memory
1561
mapped component, which resides on the main OpenRISC Wishbone data bus.
1562
 
1563
GPIO configuration is described in `section gpio'. This section may
1564
appear multiple times, specifying multiple GPIO devices. The following
1565
parameters may be specified.
1566
 
1567
`enabled = 0|1'
1568
     If 1 (true, the default), this GPIO is enabled. If 0, it is
1569
     disabled.
1570
 
1571
`baseaddr = VALUE'
1572
     Set the base address of the GPIO's memory mapped registers to
1573
     VALUE. The default is 0, which is probably not a sensible value.
1574
 
1575
     The GPIO has a 6 bit address bus, with a total of 10 32-bit
1576
     registers, although the number of bits that are actively used
1577
     varies. Addresses 0x28 through 0x3c are not used.
1578
 
1579
`irq = VALUE'
1580
     Use VALUE as the IRQ number of this GPIO. Default value 0.
1581
 
1582
`vapi_id = VALUE'
1583
     VALUE specifies the value of the Verification API (VAPI) base
1584
     address to be used with the GPIO. *Note Verification API:
1585
     Verification API, for more details, which details the use of the
1586
     VAPI with the GPIO controller. For backwards compatibility, the
1587
     alternative name `base_vapi_id' is supported for this parameter,
1588
     but deprecated.
1589
 
1590
 
1591

1592
File: or1ksim.info,  Node: Display Interface Configuration,  Next: Frame Buffer Configuration,  Prev: GPIO Configuration,  Up: Peripheral Configuration
1593
 
1594
3.4.6 Display Interface Configuration
1595
-------------------------------------
1596
 
1597
Or1ksim models a VGA interface to an external monitor.  The VGA
1598
controller used in Or1ksim is the component implemented at OpenCores,
1599
and found in the top level CVS directory, `vga_lcd', with no support
1600
for the optional hardware cursors. It is described in the document
1601
`VGA/LCD Core v2.0 Specifications' by Richard Herveille, which can be
1602
found in the `doc' subdirectory. It is a memory mapped component, which
1603
resides on the main OpenRISC Wishbone data bus.
1604
 
1605
The current implementation provides only functionality to dump the
1606
screen to a file at intervals.
1607
 
1608
VGA controller configuration is described in `section vga'. This
1609
section may appear multiple times, specifying multiple VGA controllers.
1610
The following parameters may be specified.
1611
 
1612
`enabled = 0|1'
1613
     If 1 (true, the default), this VGA is enabled. If 0, it is
1614
     disabled.
1615
 
1616
`baseaddr = VALUE'
1617
     Set the base address of the VGA controller's memory mapped
1618
     registers to VALUE. The default is 0, which is probably not a
1619
     sensible value.
1620
 
1621
     The VGA controller has a 12-bit address bus, with 7 32-bit
1622
     registers, at addresses 0x000 through 0x018, and two color lookup
1623
     tables at addresses 0x800 through 0xfff. The hardware cursor
1624
     registers are not implemented, so addresses 0x01c through 0x7fc
1625
     are not used.
1626
 
1627
`irq = VALUE'
1628
     Use VALUE as the IRQ number of this VGA controller. Default value
1629
     0.
1630
 
1631
`refresh_rate = VALUE'
1632
     VALUE specifies number of cycles between screen dumps. Default
1633
     value is derived from the simulation clock cycle time (*note
1634
     Simulator Behavior: Simulator Behavior.), to correspond to dumping
1635
     50 times per simulated second.
1636
 
1637
`txfile = "FILE"'
1638
     FILE specifies the base of the filename for screen dumps.
1639
     Successive screen dumps will be in BMP format, in files with the
1640
     name `FILENNNN.bmp', where NNNN is a sequential count of the
1641
     screen dumps starting at zero. The default value is `"vga_out"'.
1642
     For backwards compatibility, the alternative name `filename' is
1643
     supported for this parameter, but deprecated.
1644
 
1645
 
1646

1647
File: or1ksim.info,  Node: Frame Buffer Configuration,  Next: Keyboard Configuration,  Prev: Display Interface Configuration,  Up: Peripheral Configuration
1648
 
1649
3.4.7 Frame Buffer Configuration
1650
--------------------------------
1651
 
1652
     Caution: The frame buffer is only partially implemented. Its
1653
     configuration fields are described here, but the component should
1654
     not be used at this time. Like the VGA controller, it is designed
1655
     to make screen dumps to file.
1656
 
1657
Frame buffer configuration is described in `section fb'. This section
1658
may appear multiple times, specifying multiple frame buffers. The
1659
following parameters may be specified.
1660
 
1661
`enabled = 0|1'
1662
     If 1 (true, the default), this frame buffer is enabled. If 0, it
1663
     is disabled.
1664
 
1665
`baseaddr = VALUE'
1666
     Set the base address of the frame buffer's memory mapped registers
1667
     to VALUE. The default is 0, which is probably not a sensible value.
1668
 
1669
     The frame buffer has an 121-bit address bus, with 4 32-bit
1670
     registers, at addresses 0x000 through 0x00c, and a PAL lookup
1671
     table at addresses 0x400 through 0x4ff. Addresses 0x010 through
1672
     0x3fc and addresses 0x500 through 0x7ff are not used.
1673
 
1674
`refresh_rate = VALUE'
1675
     VALUE specifies number of cycles between screen dumps. Default
1676
     value is derived from the simulation clock cycle time (*note
1677
     Simulator Behavior: Simulator Behavior.), to correspond to dumping
1678
     50 times per simulated second.
1679
 
1680
`txfile = "FILE"'
1681
     FILE specifies the base of the filename for screen dumps.
1682
     Successive screen dumps will be in BMP format, in files with the
1683
     name `FILENNNN.bmp', where NNNN is a sequential count of the
1684
     screen dumps starting at zero. The default value is `"fb_out"'.
1685
     For backwards compatibility, the alternative name `filename' is
1686
     supported for this parameter, but deprecated.
1687
 
1688
 
1689

1690
File: or1ksim.info,  Node: Keyboard Configuration,  Next: Disc Interface Configuration,  Prev: Frame Buffer Configuration,  Up: Peripheral Configuration
1691
 
1692
3.4.8 Keyboard Configuration (PS2)
1693
----------------------------------
1694
 
1695
The PS2 interface provided by Or1ksim is not documented. It may be
1696
based on the PS2 project at OpenCores, and found in the top level CVS
1697
directory, `ps2'. However this project lacks any documentation beyond
1698
its project webpage. Since most PS2 interfaces follow the Intel i8042
1699
standard, this is presumably what is expected with this device.
1700
 
1701
The implementation only provides for keyboard support, which is
1702
modelled as a file of keystrokes. There is no mouse support.
1703
 
1704
     Caution: A standard i8042 device has two registers at addresses
1705
     0x60 (command) and 0x64 (status). Inspection of the code, suggests
1706
     that the Or1ksim component places these registers at addresses
1707
     0x00 and 0x04.
1708
 
1709
     The port of Linux for the OpenRISC 1000, which runs on Or1ksim
1710
     implements the i8042 device driver, anticipating these registers
1711
     reside at their conventional address. It seems unlikel that this
1712
     code will work.
1713
 
1714
     This component should be used with caution.
1715
 
1716
Keyboard configuration is described in `section kbd'. This section may
1717
appear multiple times, specifying multiple keyboard interfaces. The
1718
following parameters may be specified.
1719
 
1720
`enabled = 0|1'
1721
     If 1 (true, the default), this keyboard is enabled. If 0, it is
1722
     disabled.
1723
 
1724
`baseaddr = VALUE'
1725
     Set the base address of the keyboard's memory mapped registers to
1726
     VALUE. The default is 0, which is probably not a sensible value.
1727
 
1728
     The keyboard PS/2 interface has an 3-bit address bus, with 2 8-bit
1729
     registers, at addresses 0x000 and 0x004.
1730
 
1731
          Caution: As noted above, a standard Intel 8042 interface
1732
          would expect to find these registers at locations 0x60 and
1733
          0x64, thus requiring at least a 7-bit bus.
1734
 
1735
`irq = VALUE'
1736
     Use VALUE as the IRQ number of this Keyboard interface. Default
1737
     value 0.
1738
 
1739
`rxfile = "FILE"'
1740
     `file' specifies a file containing raw key stroke data, which
1741
     models the input from a physical keyboard. The default value is
1742
     `"kbd_in"'.
1743
 
1744
 
1745

1746
File: or1ksim.info,  Node: Disc Interface Configuration,  Next: Generic Peripheral Configuration,  Prev: Keyboard Configuration,  Up: Peripheral Configuration
1747
 
1748
3.4.9 Disc Interface Configuration
1749
----------------------------------
1750
 
1751
The ATA/ATAPI disc controller used in Or1ksim is the OCIDEC (OpenCores
1752
IDE Controller) component implemented at OpenCores, and found in the
1753
top level CVS directory, `ata'. It is described in the document
1754
`ATA/ATAPI-5 Core Specification' by Richard Herveille, which can be
1755
found in the `doc' subdirectory. It is a memory mapped component, which
1756
resides on the main OpenRISC Wishbone data bus.
1757
 
1758
ATA/ATAPI configuration is described in `section ata'. This section may
1759
appear multiple times, specifying multiple disc controllers. The
1760
following parameters may be specified.
1761
 
1762
`enabled = 0|1'
1763
     If 1 (true, the default), this ATA/ATAPI interface is enabled. If
1764
     0, it is disabled.
1765
 
1766
`baseaddr = VALUE'
1767
     Set the base address of the ATA/ATAPI interface's memory mapped
1768
     registers to VALUE. The default is 0, which is probably not a
1769
     sensible value.
1770
 
1771
     The ATA/ATAPI PS/2 interface has an 5-bit address bus, with 8
1772
     32-bit registers. Depending on the version of the OCIDEC ATA/ATAPI
1773
     interface selected (see `dev_id' below), not all registers will be
1774
     available.
1775
 
1776
`irq = VALUE'
1777
     Use VALUE as the IRQ number of this ATA/ATAPI interface. Default
1778
     value 0.
1779
 
1780
`dev_id = 1|2|3'
1781
     This parameter specifies which version of the OCIDEC ATA/ATAPI
1782
     interface to model. The default value is 1.
1783
 
1784
     Version 1 supports only the `CTRL', `STAT' and `PCTR' registers.
1785
     Versions 2 & 3 add the `FCTR' registers, Version 3 adds the `DTR'
1786
     registers and the `RXD'/`TXD' registers.
1787
 
1788
`rev = VALUE'
1789
     Set the VALUE as the revision of the OCIDEC ATA/ATAPI interface.
1790
     The default value is 1. The default value is 0. Its value should
1791
     be in the range 0-15. Larger values are truncated with a warning.
1792
     This only affects the reset value of the `STAT' register, where it
1793
     forms bits 24-27.
1794
 
1795
`pio_mode0_t1 = VALUE'
1796
`pio_mode0_t2 = VALUE'
1797
`pio_mode0_t4 = VALUE'
1798
`pio_mode0_teoc = VALUE'
1799
     These parameters specify the timings for use with Programmed
1800
     Input/Output (PIO) transfers. They are specified as the number of
1801
     clock cycles - 2, rounded up to the next highest integer, or zero
1802
     if that would be negative. The values should not exceed 255. If
1803
     they do, they will be ignored with a warning.
1804
 
1805
     See the ATA/ATAPI-5 specification for explanations of each of these
1806
     timing parameters. The default values are:
1807
 
1808
          pio_mode0_t1   =  6
1809
          pio_mode0_t2   = 28
1810
          pio_mode0_t4   =  2
1811
          pio_mode0_teoc = 23
1812
 
1813
`dma_mode0_tm = VALUE'
1814
`dma_mode0_td = VALUE'
1815
`dma_mode0_teoc = VALUE'
1816
     These parameters specify the timings for use with DMA transfers.
1817
     They are specified as the number of clock cycles - 2, rounded up
1818
     to the next highest integer, or zero if that would be negative.
1819
     The values should not exceed 255. If they do, they will be ignored
1820
     with a warning.
1821
 
1822
     See the ATA/ATAPI-5 specification for explanations of each of these
1823
     timing parameters. The default values are:
1824
 
1825
          dma_mode0_tm   =  4
1826
          dma_mode0_td   = 21
1827
          dma_mode0_teoc = 21
1828
 
1829
 
1830
3.4.9.1 ATA/ATAPI Device Configuration
1831
......................................
1832
 
1833
Within the `section ata', each device is specified separately. The
1834
device subsection is introduced by
1835
 
1836
     device VALUE
1837
 
1838
VALUE is the device number, which should be 0 or 1. The subsection ends
1839
with `enddevice'. Note that if the same device number is specified more
1840
than once, the previous values will be overwritten. Within the `device'
1841
subsection, the following parameters may appear:
1842
 
1843
`type = VALUE'
1844
     VALUEspecifies the type of device: 0 (the default) for "not
1845
     connected", 1 for hard disk simulated in a file and 2 for local
1846
     system hard disk.
1847
 
1848
`file = "FILENAME"'
1849
     `filename' specifies the file to be used for a simulated ATA
1850
     device if the file type (see `type' above) is 1. Default value
1851
     `"ata-FileN"', where N is the device number.
1852
 
1853
`size = VALUE'
1854
     VALUE specifies the size of a simulated ATA device if the file
1855
     type (see `type' above) is 1. The default value is zero.
1856
 
1857
`packet = 0|1'
1858
     If 1 (true), implement the PACKET command feature set. If 0 (the
1859
     default), do not implement the PACKET command feature set.
1860
 
1861
`firmware = "STR"'
1862
     Firmware to report in response to the "Identify Device" command.
1863
     Default `"02207031"'.
1864
 
1865
`heads = VALUE'
1866
     Number of heads in the device. Default 7, use -1 to disable all
1867
     heads.
1868
 
1869
`sectors = VALUE'
1870
     Number of sectors per track in the device. Default 32.
1871
 
1872
`mwdma = 0|1|2|-1'
1873
     Highest multi-word DMA mode supported. Default 2, use -1 to
1874
     disable.
1875
 
1876
`pio = 0|1|2|3|4'
1877
     Highest PIO mode supported. Default 4.
1878
 
1879
 
1880

1881
File: or1ksim.info,  Node: Generic Peripheral Configuration,  Prev: Disc Interface Configuration,  Up: Peripheral Configuration
1882
 
1883
3.4.10 Generic Peripheral Configuration
1884
---------------------------------------
1885
 
1886
When used as a library (*note Simulator Library: Simulator Library.),
1887
Or1ksim makes provision for any additional peripheral to be implemented
1888
externally. Any read or write access to this peripheral's memory map
1889
generates "upcall"s to an external handler. This interface can support
1890
either C or C++, and was particularly designed to facilitate support
1891
for OSCI SystemC (see `http://www.systemc.org').
1892
 
1893
Generic peripheral configuration is described in `section generic'.
1894
This section may appear multiple times, specifying multiple external
1895
peripherals. The following parameters may be specified.
1896
 
1897
`enabled = 0|1'
1898
     If 1 (true, the default), this ATA/ATAPI interface is enabled. If
1899
     0, it is disabled.
1900
 
1901
`baseaddr = VALUE'
1902
     Set the base address of the generic peripheral's memory mapped
1903
     registers to VALUE. The default is 0, which is probably not a
1904
     sensible value.
1905
 
1906
     The size of the memory mapped register space is controlled by the
1907
     `size' paramter, described below.
1908
 
1909
`size = VALUE'
1910
     Set the size of the generic peripheral's memory mapped register
1911
     space to VALUE bytes. Any read or write accesses to addresses with
1912
     offsets of 0 to VALUE-1 bytes from the base address specified in
1913
     parameter `baseaddr' (see above) will be directed to the external
1914
     interface.
1915
 
1916
     VALUE will be rounded up the nearest power of 2. It's default
1917
     value is zero. If VALUE is not an exact power of two, accesses to
1918
     address offsets of VALUE or above up to the next power of 2 will
1919
     generate a warning, and have no effect (reads will return zero).
1920
 
1921
`name = "STR"'
1922
     This gives the peripheral the name `"STR"'. This is used to
1923
     identify the peripheral in error messages and warnings, and when
1924
     reporting its status. The default value is
1925
     `"anonymous external peripheral"'.
1926
 
1927
`byte_enabled = 0|1'
1928
`hw_enabled = 0|1'
1929
`word_enabled = 0|1'
1930
     If 1 (true, the default), these parameters respectively enable the
1931
     device for byte wide, half-word wide and word wide accesses. If 0,
1932
     accesses of that width will fail.
1933
 
1934
 
1935

1936
File: or1ksim.info,  Node: Interactive Command Line,  Next: Verification API,  Prev: Configuration,  Up: Top
1937
 
1938
4 Interactive Command Line
1939
**************************
1940
 
1941
If started with the `-f' flag, or if interrupted with `ctrl-C', Or1ksim
1942
provides the user with an interactive command line. The commands
1943
available, which may not be abbreviated, are:
1944
 
1945
`q'
1946
     Exit the simulator
1947
 
1948
`r'
1949
     Display all the General Purpose Registers (GPRs). Also shows the
1950
     just executed and next to be executed instructions symbolically
1951
     and the state of the flag in the Supervision Register.
1952
 
1953
`t'
1954
     Execute the next instruction and then display register/instruction
1955
     information as with the `r' command (see above).
1956
 
1957
`run NUM [ hush ]'
1958
     Execute NUM instructions. The register/instruction information is
1959
     displayed after each instruction, as with the `r' command (see
1960
     above) _unless_ `hush' is specified.
1961
 
1962
`pr REG VALUE'
1963
     Patch register REG with VALUE.
1964
 
1965
`dm FROMADDR [ TOADDR ]'
1966
     Display memory bytes between FROMADDR and TOADDR. If TOADDR is not
1967
     given, 64 bytes are displayed, starting at FROMADDR.
1968
 
1969
          Caution: The output from this command is broken (a bug).
1970
          Or1ksim attempts to print out 16 bytes per row. However,
1971
          instead of printing out the address at the start of each row,
1972
          it prints the address (of the first of the 16 bytes) before
1973
          _each_ byte.
1974
 
1975
`de FROMADDR [ TOADDR ]'
1976
     Disassemble code between FROMADDR and TOADDR. If TOADDR is not
1977
     given, 16 instructions are disassembled.
1978
 
1979
     The disassembly is entirely numerical, and gives no symbolic
1980
     information.
1981
 
1982
`pm ADDR VALUE'
1983
     Patch the 4 bytes in memory starting at ADDR with the 32-bit VALUE.
1984
 
1985
`pc VALUE'
1986
     Patch the program counter with VALUE.
1987
 
1988
`cm FROMADDR TOADDR SIZE'
1989
     Copy SIZE bytes in memory from FROMADDR to TOADDR.
1990
 
1991
`break ADDR'
1992
     Toggle the breakpoint set at ADDR.
1993
 
1994
`breaks'
1995
     List all set breakpoints
1996
 
1997
`reset'
1998
     Reset the simulator. Includes modeling a reset of the processor, so
1999
     execution will restart from the reset vector location, 0x100.
2000
 
2001
`hist'
2002
     If saving the execution history has been configured (*note
2003
     Simulator Behavior: Simulator Behavior.), display the execution
2004
     history.
2005
 
2006
`stall'
2007
     Stall the processor, so that control is passed to the debug unit.
2008
     When stalled, the processor can execute no instructions. This
2009
     command is useful when debugging the JTAG interface, used by
2010
     debuggers such as GDB.
2011
 
2012
          Caution: There is no command to "unstall" the processor (this
2013
          would appear to be a bug). Once the processor has been
2014
          stalled, it can only be unstalled by using the `reset'
2015
          command, or a debugger sending the correct command to the
2016
          JTAG interface (using the OpenRISC 1000 Remote JTAG protocol).
2017
 
2018
          In particular it is possible to stall a processor which does
2019
          not have the debugger enabled, and so cannot be unstalled by
2020
          any method other than a reset.
2021
 
2022
`stats CATEGORY | clear'
2023
     Print the statistics for the given CATEGORY, if available, or
2024
     clear if `clear' is specified. The categories are:
2025
 
2026
    1
2027
          Miscellaneous statistics: branch predictions (if branch
2028
          predictions are enabled), branch target cache model (if
2029
          enabled), cache (if enbaled), MMU (if enabled) and number of
2030
          addtional load & store cycles.
2031
 
2032
          *Note Configuring the OpenRisc Achitectural Components: Core
2033
          OpenRISC Configuration, for details of how to enable these
2034
          various features.
2035
 
2036
    2
2037
          Instruction usage statistics. Requires hazard analysis to be
2038
          enabled (*note CPU Configuration: CPU Configuration.).
2039
 
2040
    3
2041
          Instruction dependency statistics. Requires hazard analysis
2042
          to be enabled (*note CPU Configuration: CPU Configuration.).
2043
 
2044
    4
2045
          Functional unit dependency statistics. Requires hazard
2046
          analysis to be enabled (*note CPU Configuration: CPU
2047
          Configuration.).
2048
 
2049
    5
2050
          Raw register usage over time. Requires hazard analysis to be
2051
          enabled (*note CPU Configuration: CPU Configuration.).
2052
 
2053
    6
2054
          Store buffer statistics. Requires the store buffer to be
2055
          enabled (*note CPU Configuration: CPU Configuration.).
2056
 
2057
 
2058
`info'
2059
     Display detailed information about the simulator configuration.
2060
     This is quite a lengthy about, because all MMU TLB information is
2061
     displayed.
2062
 
2063
`dv FROMADDR [ TOADDR ] [ MODULE ]'
2064
     Dump the area of memory between FROMADDR and TOADDR as Verilog
2065
     code for a synchronous, 23-bit wide SRAM module, named MODULE. If
2066
     TOADDR is not specified, then 64 bytes are dumped (as 16 32-bit
2067
     words). If MODULE is not specified, `or1k_mem' is used.
2068
 
2069
     To save to a file, use the redirection function (described after
2070
     this table, below).
2071
 
2072
`dh FROMADDR [ TOADDR ]'
2073
     Dump the area of memory between FROMADDR and TOADDR as 32-bit hex
2074
     numbers (no `0x', or `32'h' prefix). If TOADDR is not specified,
2075
     then 64 bytes are dumped (as 16 32-bit words).
2076
 
2077
     To save to a file, use the redirection function (described after
2078
     this table, below).
2079
 
2080
`setdbch'
2081
     Toggle debug channels on/off. *Note Standalone Simulator:
2082
     Standalone Simulator, for a description of specifying debug
2083
     channels on the command line.
2084
 
2085
`set SECTION PARAM = VALUE'
2086
     Set the configuration parameter PARA in section SECTION to VALUE.
2087
     *Note Configuration: Configuration, for details of configuration
2088
     parameters and their settings.
2089
 
2090
`debug'
2091
     Toggle the simulator debug mode. *Note Debug Interface
2092
     Configuration: Debug Interface Configuration, for information on
2093
     this parameter.
2094
 
2095
          Caution: This is effectively enabling or disabling the debug
2096
          unit. It does not effect the remote GDB debug interface.
2097
          However using the remote debug interface while the debug unit
2098
          is disabled will lead to undefined behavior and likely crash
2099
          Or1ksim
2100
 
2101
`cuc'
2102
     Enter the the Custom Unit Compiler command prompt (*note CUC
2103
     Configuration: CUC Configuration.).
2104
 
2105
          Caution: The CUC must be properly configured, for this to
2106
          succeed. In particular a timing file must be available and
2107
          readable. Otherwise Or1ksim will crash.
2108
 
2109
`help'
2110
     Print out brief information about each command available.
2111
 
2112
`mprofile [-vh] [-m M] [-g N] [-f FILE] FROM TO'
2113
     Run the memory profiling utility. This follows the same usage as
2114
     the standalone command (*note Memory Profiling Utility: Memory
2115
     Profiling Utility.).
2116
 
2117
`profile [-vhcq] [-g FILE]'
2118
     Run the instruction profiling utility. This follows the same usage
2119
     as the standalone command (*note Profiling Utility: Profiling
2120
     Utility.).
2121
 
2122
 
2123
For all commands, it is possible to redirect the output to a file, by
2124
using the redirection operator, `>'.
2125
 
2126
     COMMAND > FILENAME
2127
 
2128
This is particularly useful for commands dumping a large amount of
2129
output, such as `dv'.
2130
 
2131
     Caution: Unfortunately there is a serious bug with the redirection
2132
     operator. It does not return output to standard output after the
2133
     command completes. Until this bug is fixed, file redirection
2134
     should not be used.
2135
 
2136

2137
File: or1ksim.info,  Node: Verification API,  Next: Code Internals,  Prev: Interactive Command Line,  Up: Top
2138
 
2139
5 Verification API (VAPI)
2140
*************************
2141
 
2142
The Verification API (VAPI) provides a TCP/IP interface to allow
2143
components of the simulation to be controlled externally. The interface
2144
is polled for new requests on each simulated clock cycle. Components
2145
within the simulator may send responses to such requests.
2146
 
2147
The inteface is an asynchronous duplex protocol. On the request side it
2148
provides for simple commands, known as VAPI IDs (a 32 bit integer),
2149
with a single piece of data (also a 32 bit integer). On the send side,
2150
it provides for sending a single VAPI ID and data. However there is no
2151
explicit command-response structure. Some components just accept
2152
requests (e.g. to set values), some just generate sends (to report
2153
values), and some do both.
2154
 
2155
Each component has a base ID (32 bit) and its commands will start from
2156
that base ID. This provides a simple partitioning of the command space
2157
amongst components. Request commands will be directed to the component
2158
with the closest base ID lower than the VAPI ID of the command.
2159
 
2160
Thus if there are two components with base IDs of 0x200 and 0x300, and
2161
a request with VAPI ID of 0x203 is received, it will be directed to the
2162
first component as its command #3.
2163
 
2164
The results of VAPI interactions are logged (by default in `vapi.log'
2165
unless an alternative is specified in `section vapi').
2166
 
2167
Currently the following components support VAPI:
2168
 
2169
Debug Unit
2170
     Although the Debug Unit can specify a base VAPI ID, it is not used
2171
     to send commands or receive requests.
2172
 
2173
     Instead, if the base VAPI ID is set, all remote JTAG protocol
2174
     exchanges are logged in the VAPI log file.
2175
 
2176
UART
2177
     If a base VAPI ID is specified, the UART sends details of any
2178
     chars or break characters sent, with dteails of the line control
2179
     register etc encoded in the data packet sent.
2180
 
2181
     This supports a single VAPI command request, but encodes a
2182
     sub-command in the top 8 bits of the associated data.
2183
 
2184
    `0x00'
2185
          This stuffs the least significant 8 bits of the data into the
2186
          serial register of the UART and the next 8 bits into the line
2187
          control register, effectively providing control of the next
2188
          character to be sent or received.
2189
 
2190
    `0x01'
2191
          The divisor latch bytes are set from the least significant 16
2192
          bits of the data.
2193
 
2194
    `0x02'
2195
          The line control register is set from bits 15-8 of the data.
2196
 
2197
    `0x03'
2198
          The UART skew is set from the least significant 16 bits of
2199
          the data
2200
 
2201
    `0x04'
2202
          If the 16th most significant bit of the data is 1, start
2203
          sending breaks, otherwise stop sending breaks. The breaks are
2204
          sent or cleared after the number of UART clock divider ticks
2205
          specified by the data (immediately if the data is zero).
2206
 
2207
 
2208
DMA
2209
     Although the DMA unit supports a base VAPI ID in its configuration
2210
     (`section dma'), no VAPI data is sent, nor VAPI requests currently
2211
     implemented.
2212
 
2213
Ethernet
2214
     The following requests are handled by the Ethernet. Specified
2215
     symbolically, these are the increments from the base VAPI ID of the
2216
     Ethernet. At present no implementation is provided behind these
2217
     VAPI requests.
2218
 
2219
    `ETH_VAPI_DATA (0)'
2220
 
2221
    `ETH_VAPI_CTRL (0)'
2222
 
2223
GPIO
2224
     If a base VAPI ID is specified, the GPIO sends out on its base
2225
     VAPI ID (symbolically, GPIO_VAPI_DATA (0) offset from the base
2226
     VAPI ID) any changes in outputs.
2227
 
2228
     The following requests are handled by the GPIO. Specified
2229
     symbolically, these are the increments from the VAPI base ID of the
2230
     GPIO.
2231
 
2232
    `GPIO_VAPI_DATA (0)'
2233
          Set the next input to the commands data field
2234
 
2235
    `GPIO_VAPI_AUX (1)'
2236
          Set the GPIO auxiliary inputs to the data field
2237
 
2238
    `GPIO_VAPI_CLOCK (2)'
2239
          Add an external GPIO clock trigger of period specified in the
2240
          data field.
2241
 
2242
    `GPIO_VAPI_RGPIO_OE (3)'
2243
          Set the GPIO output enable to the data field
2244
 
2245
    `GPIO_VAPI_RGPIO_INTE (4)'
2246
          Set the next interrupt to the data field
2247
 
2248
    `GPIO_VAPI_RGPIO_PTRIG (5)'
2249
          Set the next trigger to the data field
2250
 
2251
    `GPIO_VAPI_RGPIO_AUX (6)'
2252
          Set the next auxiliary input to the data field
2253
 
2254
    `GPIO_VAPI_RGPIO_CTRL (7)'
2255
          Set th next control input to the data field
2256
 
2257
 
2258
 
2259

2260
File: or1ksim.info,  Node: Code Internals,  Next: GNU Free Documentation License,  Prev: Verification API,  Up: Top
2261
 
2262
6 A Guide to Or1ksim Internals
2263
******************************
2264
 
2265
These are notes to help those wanting to extend Or1ksim. This section
2266
assumes the use of a tag file, so file locations of entities'
2267
definitions are not in general provided. For more on tags, see the
2268
Linux manual page for `etags'. A tag file can be created with:
2269
 
2270
     make tags
2271
 
2272
* Menu:
2273
 
2274
* Coding Conventions::
2275
* Global Data Structures::
2276
* Concepts::
2277
* Internal Debugging::
2278
 
2279

2280
File: or1ksim.info,  Node: Coding Conventions,  Next: Global Data Structures,  Up: Code Internals
2281
 
2282
6.1 Coding Conventions for Or1ksim
2283
==================================
2284
 
2285
This chapter provides some guidelines for coding, to facilitate
2286
extensions to Or1ksim
2287
 
2288
_GNU Coding Standard_
2289
     Code should follow the GNU coding standard for C
2290
     (`http://www.gnu.org/prep/standards/'. If in doubt, put your code
2291
     through the `indent' program.
2292
 
2293
_`#include' headers_
2294
     All C source code files should include `config.h' before any other
2295
     file.
2296
 
2297
     This should be followed by inclusion of any system headers (but see
2298
     the comments about portability and `port.h' below) and then by any
2299
     Or1ksim package headers.
2300
 
2301
     If `port.h' is required, it should be the first package header to
2302
     be included after the system headers.
2303
 
2304
     All C source code and header files should directly include any
2305
     system or package header they depend on, i.e. not rely on any
2306
     other header having already included it. The two exceptions are
2307
 
2308
       1. All header files may assume that `config.h' has already been
2309
          included.
2310
 
2311
       2. System headers which impose portability problems should be
2312
          included by using the package header `port.h', rather than
2313
          the system headers themselves. This is the case for code
2314
          requiring
2315
 
2316
             * `strndup' (from `string.h')
2317
 
2318
             * Integer types (`intN_t', `uintN_t') (from `inttypes.h').
2319
 
2320
             * `isblank' (from `ctype.h')
2321
 
2322
 
2323
 
2324
_`#include' files once only_
2325
     All include files should be protected by `#ifndef' to ensure their
2326
     definitions are only included once. For instance a header file
2327
     `X-Y.H' should surround its contents with:
2328
 
2329
          #ifndef X_Y__H
2330
          #define X_Y__H
2331
 
2332
          
2333
 
2334
          #endif  /* X_Y__H */
2335
 
2336
_Avoid `typedef'_
2337
     The GNU coding style for C does not have a clear way to distinguish
2338
     between user type name and user variables. For this reason
2339
     `typedef' should be avoided except for the most ubiquitous user
2340
     defined types. This makes the code much easier to read.
2341
 
2342
     There are some `typedef' declarations in the `argtable2' library
2343
     and the ELF and COFF headers, because this code is taken from
2344
     other places.
2345
 
2346
     Within Or1ksim legacy uses of `typedef' have largely been purged,
2347
     except in the Custom Unit Compiler (*note Custom Unit Compiler
2348
     (CUC) Configuration: CUC Configuration.).
2349
 
2350
     The remaining uses of `typedef' occur in two places:
2351
 
2352
        * `port/port.h' defines types to replace those in header files
2353
          that are not available (character functions, string
2354
          duplication, integer types).
2355
 
2356
          `cpu/or1k/arch.h' defines types for the key Or1ksim entities:
2357
          addresses (`oraddr_t'), unsigned register values (`uorreg_t')
2358
          and signed register (`orreg_t') values.
2359
 
2360
 
2361
     Where new types are defined, they should appear in one of these two
2362
     files as appropriate. Or1ksim specific types appearing in `arch.h'
2363
     should always have the suffix `_h'.
2364
 
2365
_Don't begin names with underscore_
2366
     Names beginning with `_' are intended to be part of the C
2367
     infrastructure. They should not be used in the simulator code.
2368
 
2369
_Keep Non-global top level entities static_
2370
     All top level entities (functions, variables), which are not
2371
     explicitly part of a global interface should be declared static.
2372
     This ensures that unwanted connections are not inadvertently built
2373
     across the program.
2374
 
2375
_Use of `inline'_
2376
     Code should not be declared `inline'. Modern compilers can work
2377
     out for themselves what is best in this respect.
2378
 
2379
_Initialization_
2380
     All data structures should be explicitly initialized. In particular
2381
     code should not rely on static data structures being initialized to
2382
     zero.
2383
 
2384
     The rationale is that in future static data structures may become
2385
     dynamic. This has been a particular source of bugs in Or1ksim
2386
     historically.
2387
 
2388
     A specific case is with new peripherals, which should always
2389
     include a `start' function to pre-initialize all configuration
2390
     parameters to sensible defaults
2391
 
2392
_Configuration Validation_
2393
     All configuration values should be validated, preferably when
2394
     encountered, if not when the `section' is closed, or otherwise at
2395
     run time when the parameter is first used.
2396
 
2397
 
2398

2399
File: or1ksim.info,  Node: Global Data Structures,  Next: Concepts,  Prev: Coding Conventions,  Up: Code Internals
2400
 
2401
6.2 Global Data Structures
2402
==========================
2403
 
2404
`config'
2405
     The global variable `config' of type `struct config' holds the
2406
     configuration data for some of the Or1ksim components which are
2407
     always present. At present the components are:
2408
 
2409
        * The simulator defined in `section sim' (*note Simulator
2410
          Configuration: Simulator Configuration.).
2411
 
2412
        * The Verification API (VAPI) defined  in `section vapi' (*note
2413
          Verification API (VAPI) Configuration: Verification API
2414
          Configuration.).
2415
 
2416
        * The Custom Unit Compiler (CUC), defined in `section cuc'
2417
          (*note Custom Unit Compiler (CUC) Configuration: CUC
2418
          Configuration.).
2419
 
2420
        * The CPU, defined in `section cpu' (*note CPU Configuration:
2421
          CPU Configuration.).
2422
 
2423
        * The data cache (but not the instruction cache), defined in
2424
          `section dc' (*note Cache Configuration: Cache
2425
          Configuration.).
2426
 
2427
        * The power management unit, defined in `section pm' (*note
2428
          Power Management Configuration: Power Management
2429
          Configuration.).
2430
 
2431
        * The programmable interrupt controller, defined in
2432
          `section pic' (*note Interrupt Configuration: Interrupt
2433
          Configuration.).
2434
 
2435
        * Branch prediciton, defined in `section bpb' (*note Branch
2436
          Prediction Configuration: Branch Prediction Configuration.).
2437
 
2438
        * The debug unit, defined in `section debug' (*note Debug
2439
          Interface Configuration: Debug Interface Configuration.).
2440
 
2441
 
2442
     This struct is made of a collection of structs, one for each
2443
     component. For example the simulator configuration is held in
2444
     `config.sim'.
2445
 
2446
`config'
2447
     This is a linked list of data structures holding configuration data
2448
     for all sections which are not held in the main `config' data
2449
     structure. In general these are components (such as peripherals and
2450
     memory) which may occur multiple times. However it also handles
2451
     some architectural components which may occur only once, such as
2452
     the memory management units, the instruction cache, the interrupt
2453
     controller and branch prediction.
2454
 
2455
`runtime'
2456
     The global variable `runtime' of type `struct runtime' holds all
2457
     the runtime information about the simulation. To access this
2458
     variable, `sim-config.h' must be included.
2459
 
2460
     This struct is itself made of 3 other structs, `cpu' (for CPU run
2461
     time state), `vapi' (for Verification API state) and `cuc' (for
2462
     Custom Unit Compiler state).
2463
 
2464
 
2465

2466
File: or1ksim.info,  Node: Concepts,  Next: Internal Debugging,  Prev: Global Data Structures,  Up: Code Internals
2467
 
2468
6.3 Concepts
2469
============
2470
 
2471
_Output Redirection_
2472
     The current output stream is held in `runtime.cpu.fout'. Output
2473
     should be explicitly written to this stream, or may use the
2474
     `PRINTF' macro, which will write its arguments to this output
2475
     stream.
2476
 
2477
_Reset Hooks_
2478
     Any peripheral may register a routine to be called when the the
2479
     processor is reset by calling `reg_sim_reset', providing a
2480
     function and pointer to a data structure as arguments. On reset
2481
     that function will be called with the data stucture pointer as
2482
     argument.
2483
 
2484
 
2485

2486
File: or1ksim.info,  Node: Internal Debugging,  Prev: Concepts,  Up: Code Internals
2487
 
2488
6.4 Internal Debugging
2489
======================
2490
 
2491
The function `debug' is like `printf', but with an extra first
2492
argument, which is the debug level. If the debug level specified in the
2493
simulator configuration (*note Simulator Behavior: Simulator Behavior.)
2494
is greater than or equal to this value, the remaining arguments are
2495
printed to the current output stream (*note Output Redirection: Output
2496
Redirection.).
2497
 
2498

2499
File: or1ksim.info,  Node: GNU Free Documentation License,  Next: Index,  Prev: Code Internals,  Up: Top
2500
 
2501
7 GNU Free Documentation License
2502
********************************
2503
 
2504
                      Version 1.2, November 2002
2505
 
2506
     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
2507
     51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
2508
 
2509
     Everyone is permitted to copy and distribute verbatim copies
2510
     of this license document, but changing it is not allowed.
2511
 
2512
  0. PREAMBLE
2513
 
2514
     The purpose of this License is to make a manual, textbook, or other
2515
     functional and useful document "free" in the sense of freedom: to
2516
     assure everyone the effective freedom to copy and redistribute it,
2517
     with or without modifying it, either commercially or
2518
     noncommercially.  Secondarily, this License preserves for the
2519
     author and publisher a way to get credit for their work, while not
2520
     being considered responsible for modifications made by others.
2521
 
2522
     This License is a kind of "copyleft", which means that derivative
2523
     works of the document must themselves be free in the same sense.
2524
     It complements the GNU General Public License, which is a copyleft
2525
     license designed for free software.
2526
 
2527
     We have designed this License in order to use it for manuals for
2528
     free software, because free software needs free documentation: a
2529
     free program should come with manuals providing the same freedoms
2530
     that the software does.  But this License is not limited to
2531
     software manuals; it can be used for any textual work, regardless
2532
     of subject matter or whether it is published as a printed book.
2533
     We recommend this License principally for works whose purpose is
2534
     instruction or reference.
2535
 
2536
  1. APPLICABILITY AND DEFINITIONS
2537
 
2538
     This License applies to any manual or other work, in any medium,
2539
     that contains a notice placed by the copyright holder saying it
2540
     can be distributed under the terms of this License.  Such a notice
2541
     grants a world-wide, royalty-free license, unlimited in duration,
2542
     to use that work under the conditions stated herein.  The
2543
     "Document", below, refers to any such manual or work.  Any member
2544
     of the public is a licensee, and is addressed as "you".  You
2545
     accept the license if you copy, modify or distribute the work in a
2546
     way requiring permission under copyright law.
2547
 
2548
     A "Modified Version" of the Document means any work containing the
2549
     Document or a portion of it, either copied verbatim, or with
2550
     modifications and/or translated into another language.
2551
 
2552
     A "Secondary Section" is a named appendix or a front-matter section
2553
     of the Document that deals exclusively with the relationship of the
2554
     publishers or authors of the Document to the Document's overall
2555
     subject (or to related matters) and contains nothing that could
2556
     fall directly within that overall subject.  (Thus, if the Document
2557
     is in part a textbook of mathematics, a Secondary Section may not
2558
     explain any mathematics.)  The relationship could be a matter of
2559
     historical connection with the subject or with related matters, or
2560
     of legal, commercial, philosophical, ethical or political position
2561
     regarding them.
2562
 
2563
     The "Invariant Sections" are certain Secondary Sections whose
2564
     titles are designated, as being those of Invariant Sections, in
2565
     the notice that says that the Document is released under this
2566
     License.  If a section does not fit the above definition of
2567
     Secondary then it is not allowed to be designated as Invariant.
2568
     The Document may contain zero Invariant Sections.  If the Document
2569
     does not identify any Invariant Sections then there are none.
2570
 
2571
     The "Cover Texts" are certain short passages of text that are
2572
     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
2573
     that says that the Document is released under this License.  A
2574
     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
2575
     be at most 25 words.
2576
 
2577
     A "Transparent" copy of the Document means a machine-readable copy,
2578
     represented in a format whose specification is available to the
2579
     general public, that is suitable for revising the document
2580
     straightforwardly with generic text editors or (for images
2581
     composed of pixels) generic paint programs or (for drawings) some
2582
     widely available drawing editor, and that is suitable for input to
2583
     text formatters or for automatic translation to a variety of
2584
     formats suitable for input to text formatters.  A copy made in an
2585
     otherwise Transparent file format whose markup, or absence of
2586
     markup, has been arranged to thwart or discourage subsequent
2587
     modification by readers is not Transparent.  An image format is
2588
     not Transparent if used for any substantial amount of text.  A
2589
     copy that is not "Transparent" is called "Opaque".
2590
 
2591
     Examples of suitable formats for Transparent copies include plain
2592
     ASCII without markup, Texinfo input format, LaTeX input format,
2593
     SGML or XML using a publicly available DTD, and
2594
     standard-conforming simple HTML, PostScript or PDF designed for
2595
     human modification.  Examples of transparent image formats include
2596
     PNG, XCF and JPG.  Opaque formats include proprietary formats that
2597
     can be read and edited only by proprietary word processors, SGML or
2598
     XML for which the DTD and/or processing tools are not generally
2599
     available, and the machine-generated HTML, PostScript or PDF
2600
     produced by some word processors for output purposes only.
2601
 
2602
     The "Title Page" means, for a printed book, the title page itself,
2603
     plus such following pages as are needed to hold, legibly, the
2604
     material this License requires to appear in the title page.  For
2605
     works in formats which do not have any title page as such, "Title
2606
     Page" means the text near the most prominent appearance of the
2607
     work's title, preceding the beginning of the body of the text.
2608
 
2609
     A section "Entitled XYZ" means a named subunit of the Document
2610
     whose title either is precisely XYZ or contains XYZ in parentheses
2611
     following text that translates XYZ in another language.  (Here XYZ
2612
     stands for a specific section name mentioned below, such as
2613
     "Acknowledgements", "Dedications", "Endorsements", or "History".)
2614
     To "Preserve the Title" of such a section when you modify the
2615
     Document means that it remains a section "Entitled XYZ" according
2616
     to this definition.
2617
 
2618
     The Document may include Warranty Disclaimers next to the notice
2619
     which states that this License applies to the Document.  These
2620
     Warranty Disclaimers are considered to be included by reference in
2621
     this License, but only as regards disclaiming warranties: any other
2622
     implication that these Warranty Disclaimers may have is void and
2623
     has no effect on the meaning of this License.
2624
 
2625
  2. VERBATIM COPYING
2626
 
2627
     You may copy and distribute the Document in any medium, either
2628
     commercially or noncommercially, provided that this License, the
2629
     copyright notices, and the license notice saying this License
2630
     applies to the Document are reproduced in all copies, and that you
2631
     add no other conditions whatsoever to those of this License.  You
2632
     may not use technical measures to obstruct or control the reading
2633
     or further copying of the copies you make or distribute.  However,
2634
     you may accept compensation in exchange for copies.  If you
2635
     distribute a large enough number of copies you must also follow
2636
     the conditions in section 3.
2637
 
2638
     You may also lend copies, under the same conditions stated above,
2639
     and you may publicly display copies.
2640
 
2641
  3. COPYING IN QUANTITY
2642
 
2643
     If you publish printed copies (or copies in media that commonly
2644
     have printed covers) of the Document, numbering more than 100, and
2645
     the Document's license notice requires Cover Texts, you must
2646
     enclose the copies in covers that carry, clearly and legibly, all
2647
     these Cover Texts: Front-Cover Texts on the front cover, and
2648
     Back-Cover Texts on the back cover.  Both covers must also clearly
2649
     and legibly identify you as the publisher of these copies.  The
2650
     front cover must present the full title with all words of the
2651
     title equally prominent and visible.  You may add other material
2652
     on the covers in addition.  Copying with changes limited to the
2653
     covers, as long as they preserve the title of the Document and
2654
     satisfy these conditions, can be treated as verbatim copying in
2655
     other respects.
2656
 
2657
     If the required texts for either cover are too voluminous to fit
2658
     legibly, you should put the first ones listed (as many as fit
2659
     reasonably) on the actual cover, and continue the rest onto
2660
     adjacent pages.
2661
 
2662
     If you publish or distribute Opaque copies of the Document
2663
     numbering more than 100, you must either include a
2664
     machine-readable Transparent copy along with each Opaque copy, or
2665
     state in or with each Opaque copy a computer-network location from
2666
     which the general network-using public has access to download
2667
     using public-standard network protocols a complete Transparent
2668
     copy of the Document, free of added material.  If you use the
2669
     latter option, you must take reasonably prudent steps, when you
2670
     begin distribution of Opaque copies in quantity, to ensure that
2671
     this Transparent copy will remain thus accessible at the stated
2672
     location until at least one year after the last time you
2673
     distribute an Opaque copy (directly or through your agents or
2674
     retailers) of that edition to the public.
2675
 
2676
     It is requested, but not required, that you contact the authors of
2677
     the Document well before redistributing any large number of
2678
     copies, to give them a chance to provide you with an updated
2679
     version of the Document.
2680
 
2681
  4. MODIFICATIONS
2682
 
2683
     You may copy and distribute a Modified Version of the Document
2684
     under the conditions of sections 2 and 3 above, provided that you
2685
     release the Modified Version under precisely this License, with
2686
     the Modified Version filling the role of the Document, thus
2687
     licensing distribution and modification of the Modified Version to
2688
     whoever possesses a copy of it.  In addition, you must do these
2689
     things in the Modified Version:
2690
 
2691
       A. Use in the Title Page (and on the covers, if any) a title
2692
          distinct from that of the Document, and from those of
2693
          previous versions (which should, if there were any, be listed
2694
          in the History section of the Document).  You may use the
2695
          same title as a previous version if the original publisher of
2696
          that version gives permission.
2697
 
2698
       B. List on the Title Page, as authors, one or more persons or
2699
          entities responsible for authorship of the modifications in
2700
          the Modified Version, together with at least five of the
2701
          principal authors of the Document (all of its principal
2702
          authors, if it has fewer than five), unless they release you
2703
          from this requirement.
2704
 
2705
       C. State on the Title page the name of the publisher of the
2706
          Modified Version, as the publisher.
2707
 
2708
       D. Preserve all the copyright notices of the Document.
2709
 
2710
       E. Add an appropriate copyright notice for your modifications
2711
          adjacent to the other copyright notices.
2712
 
2713
       F. Include, immediately after the copyright notices, a license
2714
          notice giving the public permission to use the Modified
2715
          Version under the terms of this License, in the form shown in
2716
          the Addendum below.
2717
 
2718
       G. Preserve in that license notice the full lists of Invariant
2719
          Sections and required Cover Texts given in the Document's
2720
          license notice.
2721
 
2722
       H. Include an unaltered copy of this License.
2723
 
2724
       I. Preserve the section Entitled "History", Preserve its Title,
2725
          and add to it an item stating at least the title, year, new
2726
          authors, and publisher of the Modified Version as given on
2727
          the Title Page.  If there is no section Entitled "History" in
2728
          the Document, create one stating the title, year, authors,
2729
          and publisher of the Document as given on its Title Page,
2730
          then add an item describing the Modified Version as stated in
2731
          the previous sentence.
2732
 
2733
       J. Preserve the network location, if any, given in the Document
2734
          for public access to a Transparent copy of the Document, and
2735
          likewise the network locations given in the Document for
2736
          previous versions it was based on.  These may be placed in
2737
          the "History" section.  You may omit a network location for a
2738
          work that was published at least four years before the
2739
          Document itself, or if the original publisher of the version
2740
          it refers to gives permission.
2741
 
2742
       K. For any section Entitled "Acknowledgements" or "Dedications",
2743
          Preserve the Title of the section, and preserve in the
2744
          section all the substance and tone of each of the contributor
2745
          acknowledgements and/or dedications given therein.
2746
 
2747
       L. Preserve all the Invariant Sections of the Document,
2748
          unaltered in their text and in their titles.  Section numbers
2749
          or the equivalent are not considered part of the section
2750
          titles.
2751
 
2752
       M. Delete any section Entitled "Endorsements".  Such a section
2753
          may not be included in the Modified Version.
2754
 
2755
       N. Do not retitle any existing section to be Entitled
2756
          "Endorsements" or to conflict in title with any Invariant
2757
          Section.
2758
 
2759
       O. Preserve any Warranty Disclaimers.
2760
 
2761
     If the Modified Version includes new front-matter sections or
2762
     appendices that qualify as Secondary Sections and contain no
2763
     material copied from the Document, you may at your option
2764
     designate some or all of these sections as invariant.  To do this,
2765
     add their titles to the list of Invariant Sections in the Modified
2766
     Version's license notice.  These titles must be distinct from any
2767
     other section titles.
2768
 
2769
     You may add a section Entitled "Endorsements", provided it contains
2770
     nothing but endorsements of your Modified Version by various
2771
     parties--for example, statements of peer review or that the text
2772
     has been approved by an organization as the authoritative
2773
     definition of a standard.
2774
 
2775
     You may add a passage of up to five words as a Front-Cover Text,
2776
     and a passage of up to 25 words as a Back-Cover Text, to the end
2777
     of the list of Cover Texts in the Modified Version.  Only one
2778
     passage of Front-Cover Text and one of Back-Cover Text may be
2779
     added by (or through arrangements made by) any one entity.  If the
2780
     Document already includes a cover text for the same cover,
2781
     previously added by you or by arrangement made by the same entity
2782
     you are acting on behalf of, you may not add another; but you may
2783
     replace the old one, on explicit permission from the previous
2784
     publisher that added the old one.
2785
 
2786
     The author(s) and publisher(s) of the Document do not by this
2787
     License give permission to use their names for publicity for or to
2788
     assert or imply endorsement of any Modified Version.
2789
 
2790
  5. COMBINING DOCUMENTS
2791
 
2792
     You may combine the Document with other documents released under
2793
     this License, under the terms defined in section 4 above for
2794
     modified versions, provided that you include in the combination
2795
     all of the Invariant Sections of all of the original documents,
2796
     unmodified, and list them all as Invariant Sections of your
2797
     combined work in its license notice, and that you preserve all
2798
     their Warranty Disclaimers.
2799
 
2800
     The combined work need only contain one copy of this License, and
2801
     multiple identical Invariant Sections may be replaced with a single
2802
     copy.  If there are multiple Invariant Sections with the same name
2803
     but different contents, make the title of each such section unique
2804
     by adding at the end of it, in parentheses, the name of the
2805
     original author or publisher of that section if known, or else a
2806
     unique number.  Make the same adjustment to the section titles in
2807
     the list of Invariant Sections in the license notice of the
2808
     combined work.
2809
 
2810
     In the combination, you must combine any sections Entitled
2811
     "History" in the various original documents, forming one section
2812
     Entitled "History"; likewise combine any sections Entitled
2813
     "Acknowledgements", and any sections Entitled "Dedications".  You
2814
     must delete all sections Entitled "Endorsements."
2815
 
2816
  6. COLLECTIONS OF DOCUMENTS
2817
 
2818
     You may make a collection consisting of the Document and other
2819
     documents released under this License, and replace the individual
2820
     copies of this License in the various documents with a single copy
2821
     that is included in the collection, provided that you follow the
2822
     rules of this License for verbatim copying of each of the
2823
     documents in all other respects.
2824
 
2825
     You may extract a single document from such a collection, and
2826
     distribute it individually under this License, provided you insert
2827
     a copy of this License into the extracted document, and follow
2828
     this License in all other respects regarding verbatim copying of
2829
     that document.
2830
 
2831
  7. AGGREGATION WITH INDEPENDENT WORKS
2832
 
2833
     A compilation of the Document or its derivatives with other
2834
     separate and independent documents or works, in or on a volume of
2835
     a storage or distribution medium, is called an "aggregate" if the
2836
     copyright resulting from the compilation is not used to limit the
2837
     legal rights of the compilation's users beyond what the individual
2838
     works permit.  When the Document is included in an aggregate, this
2839
     License does not apply to the other works in the aggregate which
2840
     are not themselves derivative works of the Document.
2841
 
2842
     If the Cover Text requirement of section 3 is applicable to these
2843
     copies of the Document, then if the Document is less than one half
2844
     of the entire aggregate, the Document's Cover Texts may be placed
2845
     on covers that bracket the Document within the aggregate, or the
2846
     electronic equivalent of covers if the Document is in electronic
2847
     form.  Otherwise they must appear on printed covers that bracket
2848
     the whole aggregate.
2849
 
2850
  8. TRANSLATION
2851
 
2852
     Translation is considered a kind of modification, so you may
2853
     distribute translations of the Document under the terms of section
2854
     4.  Replacing Invariant Sections with translations requires special
2855
     permission from their copyright holders, but you may include
2856
     translations of some or all Invariant Sections in addition to the
2857
     original versions of these Invariant Sections.  You may include a
2858
     translation of this License, and all the license notices in the
2859
     Document, and any Warranty Disclaimers, provided that you also
2860
     include the original English version of this License and the
2861
     original versions of those notices and disclaimers.  In case of a
2862
     disagreement between the translation and the original version of
2863
     this License or a notice or disclaimer, the original version will
2864
     prevail.
2865
 
2866
     If a section in the Document is Entitled "Acknowledgements",
2867
     "Dedications", or "History", the requirement (section 4) to
2868
     Preserve its Title (section 1) will typically require changing the
2869
     actual title.
2870
 
2871
  9. TERMINATION
2872
 
2873
     You may not copy, modify, sublicense, or distribute the Document
2874
     except as expressly provided for under this License.  Any other
2875
     attempt to copy, modify, sublicense or distribute the Document is
2876
     void, and will automatically terminate your rights under this
2877
     License.  However, parties who have received copies, or rights,
2878
     from you under this License will not have their licenses
2879
     terminated so long as such parties remain in full compliance.
2880
 
2881
 10. FUTURE REVISIONS OF THIS LICENSE
2882
 
2883
     The Free Software Foundation may publish new, revised versions of
2884
     the GNU Free Documentation License from time to time.  Such new
2885
     versions will be similar in spirit to the present version, but may
2886
     differ in detail to address new problems or concerns.  See
2887
     `http://www.gnu.org/copyleft/'.
2888
 
2889
     Each version of the License is given a distinguishing version
2890
     number.  If the Document specifies that a particular numbered
2891
     version of this License "or any later version" applies to it, you
2892
     have the option of following the terms and conditions either of
2893
     that specified version or of any later version that has been
2894
     published (not as a draft) by the Free Software Foundation.  If
2895
     the Document does not specify a version number of this License,
2896
     you may choose any version ever published (not as a draft) by the
2897
     Free Software Foundation.
2898
 
2899
ADDENDUM: How to use this License for your documents
2900
====================================================
2901
 
2902
To use this License in a document you have written, include a copy of
2903
the License in the document and put the following copyright and license
2904
notices just after the title page:
2905
 
2906
       Copyright (C)  YEAR  YOUR NAME.
2907
       Permission is granted to copy, distribute and/or modify this document
2908
       under the terms of the GNU Free Documentation License, Version 1.2
2909
       or any later version published by the Free Software Foundation;
2910
       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
2911
       Texts.  A copy of the license is included in the section entitled ``GNU
2912
       Free Documentation License''.
2913
 
2914
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
2915
replace the "with...Texts." line with this:
2916
 
2917
         with the Invariant Sections being LIST THEIR TITLES, with
2918
         the Front-Cover Texts being LIST, and with the Back-Cover Texts
2919
         being LIST.
2920
 
2921
If you have Invariant Sections without Cover Texts, or some other
2922
combination of the three, merge those two alternatives to suit the
2923
situation.
2924
 
2925
If your document contains nontrivial examples of program code, we
2926
recommend releasing these examples in parallel under your choice of
2927
free software license, such as the GNU General Public License, to
2928
permit their use in free software.
2929
 
2930

2931
File: or1ksim.info,  Node: Index,  Prev: GNU Free Documentation License,  Up: Top
2932
 
2933
Index
2934
*****
2935
 
2936
 
2937
* Menu:
2938
2939
* --cumulative:                          Profiling Utility.   (line  26)
2940
* --debug-config:                        Standalone Simulator.
2941
                                                              (line  48)
2942
* --enable-ethphy:                       Installation.        (line  25)
2943
* --enable-mprofile:                     Standalone Simulator.
2944
                                                              (line  60)
2945
* --enable-profile:                      Standalone Simulator.
2946
                                                              (line  57)
2947
* --file:                                Standalone Simulator.
2948
                                                              (line  24)
2949
* --filename:                            Memory Profiling Utility.
2950
                                                              (line  51)
2951
* --generate:                            Profiling Utility.   (line  34)
2952
* --group:                               Memory Profiling Utility.
2953
                                                              (line  47)
2954
* --help:                                Standalone Simulator.
2955
                                                              (line  20)
2956
* --help (memory profiling utility):     Memory Profiling Utility.
2957
                                                              (line  22)
2958
* --help (profiling utility):            Profiling Utility.   (line  22)
2959
* --interactive:                         Standalone Simulator.
2960
                                                              (line  54)
2961
* --mode:                                Memory Profiling Utility.
2962
                                                              (line  26)
2963
* --nosrv:                               Standalone Simulator.
2964
                                                              (line  32)
2965
* --quiet:                               Profiling Utility.   (line  30)
2966
* --srv:                                 Standalone Simulator.
2967
                                                              (line  40)
2968
* --version:                             Standalone Simulator.
2969
                                                              (line  16)
2970
* --version (memory profiling utility):  Memory Profiling Utility.
2971
                                                              (line  17)
2972
* --version (profiling utility):         Profiling Utility.   (line  17)
2973
* -c:                                    Profiling Utility.   (line  26)
2974
* -d:                                    Standalone Simulator.
2975
                                                              (line  48)
2976
* -f <1>:                                Memory Profiling Utility.
2977
                                                              (line  51)
2978
* -f:                                    Standalone Simulator.
2979
                                                              (line  24)
2980
* -g <1>:                                Memory Profiling Utility.
2981
                                                              (line  47)
2982
* -g:                                    Profiling Utility.   (line  34)
2983
* -h:                                    Standalone Simulator.
2984
                                                              (line  20)
2985
* -h (memory profiling utility):         Memory Profiling Utility.
2986
                                                              (line  22)
2987
* -h (profiling utility):                Profiling Utility.   (line  22)
2988
* -i:                                    Standalone Simulator.
2989
                                                              (line  54)
2990
* -m:                                    Memory Profiling Utility.
2991
                                                              (line  26)
2992
* -q:                                    Profiling Utility.   (line  30)
2993
* -v:                                    Standalone Simulator.
2994
                                                              (line  16)
2995
* -v (memory profiling utility):         Memory Profiling Utility.
2996
                                                              (line  17)
2997
* -v (profiling utility):                Profiling Utility.   (line  17)
2998
* 0x00 UART VAPI sub-command (UART verification): Verification API.
2999
                                                              (line  49)
3000
* 0x01 UART VAPI sub-command (UART verification): Verification API.
3001
                                                              (line  55)
3002
* 0x02 UART VAPI sub-command (UART verification): Verification API.
3003
                                                              (line  59)
3004
* 0x03 UART VAPI sub-command (UART verification): Verification API.
3005
                                                              (line  62)
3006
* 0x04 UART VAPI sub-command (UART verification): Verification API.
3007
                                                              (line  66)
3008
* 16550 (UART configuration):            UART Configuration.  (line  73)
3009
* ATA/ATAPI configuration:               Disc Interface Configuration.
3010
                                                              (line   6)
3011
* ATA/ATAPI device configuration:        Disc Interface Configuration.
3012
                                                              (line  88)
3013
* base_vapi_id (GPIO configuration - deprecated): GPIO Configuration.
3014
                                                              (line  32)
3015
* baseaddr (ATA/ATAPI configuration):    Disc Interface Configuration.
3016
                                                              (line  22)
3017
* baseaddr (DMA configuration):          DMA Configuration.   (line  24)
3018
* baseaddr (Ethernet configuration):     Ethernet Configuration.
3019
                                                              (line  22)
3020
* baseaddr (frame buffer configuration): Frame Buffer Configuration.
3021
                                                              (line  20)
3022
* baseaddr (generic peripheral configuration): Generic Peripheral Configuration.
3023
                                                              (line  22)
3024
* baseaddr (GPIO configuration):         GPIO Configuration.  (line  21)
3025
* baseaddr (keyboard configuration):     Keyboard Configuration.
3026
                                                              (line  36)
3027
* baseaddr (memory configuration):       Memory Configuration.
3028
                                                              (line  62)
3029
* baseaddr (memory controller configuration): Memory Controller Configuration.
3030
                                                              (line  28)
3031
* baseaddr (UART configuration):         UART Configuration.  (line  22)
3032
* baseaddr (VGA configuration):          Display Interface Configuration.
3033
                                                              (line  26)
3034
* blocksize (cache configuration):       Cache Configuration. (line  29)
3035
* BPB configuration:                     Branch Prediction Configuration.
3036
                                                              (line   6)
3037
* branch prediction configuration:       Branch Prediction Configuration.
3038
                                                              (line   6)
3039
* break (Interactive CLI):               Interactive Command Line.
3040
                                                              (line  57)
3041
* breakpoint list (Interactive CLI):     Interactive Command Line.
3042
                                                              (line  60)
3043
* breakpoint set/clear (Interactive CLI): Interactive Command Line.
3044
                                                              (line  57)
3045
* breaks (Interactive CLI):              Interactive Command Line.
3046
                                                              (line  60)
3047
* btic (branch prediction configuration): Branch Prediction Configuration.
3048
                                                              (line  19)
3049
* byte_enabled (generic peripheral configuration): Generic Peripheral Configuration.
3050
                                                              (line  48)
3051
* cache configuration:                   Cache Configuration. (line   6)
3052
* calling_convention (CUC configuration): CUC Configuration.  (line  34)
3053
* ce (memory configuration):             Memory Configuration.
3054
                                                              (line  91)
3055
* cfgr (CPU configuration):              CPU Configuration.   (line  47)
3056
* channel (UART configuration):          UART Configuration.  (line  29)
3057
* clear breakpoint (Interactive CLI):    Interactive Command Line.
3058
                                                              (line  57)
3059
* clkcycle (simulator configuration):    Simulator Behavior.  (line 102)
3060
* cm (Interactive CLI):                  Interactive Command Line.
3061
                                                              (line  54)
3062
* command line for Or1ksim standalone use: Standalone Simulator.
3063
                                                              (line   6)
3064
* config:                                Global Data Structures.
3065
                                                              (line   7)
3066
* config.bpb:                            Global Data Structures.
3067
                                                              (line  37)
3068
* config.cpu:                            Global Data Structures.
3069
                                                              (line  22)
3070
* config.cuc:                            Global Data Structures.
3071
                                                              (line  18)
3072
* config.dc:                             Global Data Structures.
3073
                                                              (line  25)
3074
* config.debug:                          Global Data Structures.
3075
                                                              (line  40)
3076
* config.pic:                            Global Data Structures.
3077
                                                              (line  33)
3078
* config.pm:                             Global Data Structures.
3079
                                                              (line  29)
3080
* config.sim:                            Global Data Structures.
3081
                                                              (line  11)
3082
* config.vapi:                           Global Data Structures.
3083
                                                              (line  14)
3084
* configuration dynamic structure:       Global Data Structures.
3085
                                                              (line  49)
3086
* configuration file structure:          Configuration File Format.
3087
                                                              (line   6)
3088
* configuration global structure:        Global Data Structures.
3089
                                                              (line   7)
3090
* configuration info (Interactive CLI):  Interactive Command Line.
3091
                                                              (line 124)
3092
* configuration of generic peripherals:  Generic Peripheral Configuration.
3093
                                                              (line   6)
3094
* configuration parameter setting (Interactive CLI): Interactive Command Line.
3095
                                                              (line 151)
3096
* configuring branch prediction:         Branch Prediction Configuration.
3097
                                                              (line   6)
3098
* configuring data & instruction caches: Cache Configuration. (line   6)
3099
* configuring data & instruction MMUs:   Memory Management Configuration.
3100
                                                              (line   6)
3101
* configuring DMA:                       DMA Configuration.   (line   6)
3102
* configuring memory:                    Memory Configuration.
3103
                                                              (line   6)
3104
* configuring Or1ksim:                   Configuration.       (line   6)
3105
* configuring power management:          Power Management Configuration.
3106
                                                              (line   6)
3107
* configuring the ATA/ATAPI interfaces:  Disc Interface Configuration.
3108
                                                              (line   6)
3109
* configuring the behavior of Or1ksim:   Simulator Behavior.  (line   6)
3110
* configuring the CPU:                   CPU Configuration.   (line   6)
3111
* configuring the Custom Unit Compiler (CUC): CUC Configuration.
3112
                                                              (line   6)
3113
* configuring the debug unit and interface to external debuggers: Debug Interface Configuration.
3114
                                                              (line   6)
3115
* configuring the Ethernet interface:    Ethernet Configuration.
3116
                                                              (line   6)
3117
* configuring the frame buffer:          Frame Buffer Configuration.
3118
                                                              (line   6)
3119
* configuring the GPIO:                  GPIO Configuration.  (line   6)
3120
* configuring the interrupt controller:  Interrupt Configuration.
3121
                                                              (line   6)
3122
* configuring the keyboard interface:    Keyboard Configuration.
3123
                                                              (line   6)
3124
* configuring the memory controller:     Memory Controller Configuration.
3125
                                                              (line   6)
3126
* configuring the processor:             CPU Configuration.   (line   6)
3127
* configuring the PS2 interface:         Keyboard Configuration.
3128
                                                              (line   6)
3129
* configuring the UART:                  UART Configuration.  (line   6)
3130
* configuring the Verification API (VAPI): Verification API Configuration.
3131
                                                              (line   6)
3132
* configuring the VGA interface:         Display Interface Configuration.
3133
                                                              (line   6)
3134
* copying memory (Interactive CLI):      Interactive Command Line.
3135
                                                              (line  54)
3136
* CPU configuration:                     CPU Configuration.   (line   6)
3137
* CUC configuration:                     CUC Configuration.   (line   6)
3138
* Custom Unit Compiler (Interactive CLI): Interactive Command Line.
3139
                                                              (line 167)
3140
* Custom Unit Compiler Configuration:    CUC Configuration.   (line   6)
3141
* data cache configuration:              Cache Configuration. (line   6)
3142
* data MMU configuration:                Memory Management Configuration.
3143
                                                              (line   6)
3144
* DCGE (power management register):      Power Management Configuration.
3145
                                                              (line  21)
3146
* debug (Interactive CLI):               Interactive Command Line.
3147
                                                              (line 156)
3148
* debug (simulator configuration):       Simulator Behavior.  (line  13)
3149
* debug channel toggle (Interactive CLI): Interactive Command Line.
3150
                                                              (line 146)
3151
* debug interface configuration:         Debug Interface Configuration.
3152
                                                              (line   6)
3153
* debug mode toggle (Interactive CLI):   Interactive Command Line.
3154
                                                              (line 156)
3155
* debug unit configuration:              Debug Interface Configuration.
3156
                                                              (line   6)
3157
* Debug Unit verification (VAPI):        Verification API.    (line  34)
3158
* delayr (memory configuration):         Memory Configuration.
3159
                                                              (line 109)
3160
* delayw (memory configuration):         Memory Configuration.
3161
                                                              (line 115)
3162
* dependstats (CPU configuration):       CPU Configuration.   (line  84)
3163
* dev_id (ATA/ATAPI configuration):      Disc Interface Configuration.
3164
                                                              (line  36)
3165
* disassemble (Interactive CLI):         Interactive Command Line.
3166
                                                              (line  41)
3167
* disc interface configuration:          Disc Interface Configuration.
3168
                                                              (line   6)
3169
* disc interface device configuration:   Disc Interface Configuration.
3170
                                                              (line  88)
3171
* display interface configuration:       Display Interface Configuration.
3172
                                                              (line   6)
3173
* displaying memory (Interactive CLI):   Interactive Command Line.
3174
                                                              (line  31)
3175
* displaying registers (Interactive CLI): Interactive Command Line.
3176
                                                              (line  14)
3177
* dm (Interactive CLI):                  Interactive Command Line.
3178
                                                              (line  31)
3179
* dma (Ethernet configuration):          Ethernet Configuration.
3180
                                                              (line  33)
3181
* DMA configuration:                     DMA Configuration.   (line   6)
3182
* DMA verification (VAPI):               Verification API.    (line  73)
3183
* dma_mode0_td (ATA/ATAPI configuration): Disc Interface Configuration.
3184
                                                              (line  70)
3185
* dma_mode0_teoc (ATA/ATAPI configuration): Disc Interface Configuration.
3186
                                                              (line  71)
3187
* dma_mode0_tm (ATA/ATAPI configuration): Disc Interface Configuration.
3188
                                                              (line  69)
3189
* DME (power management register):       Power Management Configuration.
3190
                                                              (line  15)
3191
* DMMU configuration:                    Memory Management Configuration.
3192
                                                              (line   6)
3193
* doze mode (power management register): Power Management Configuration.
3194
                                                              (line  15)
3195
* dv (Interactive CLI):                  Interactive Command Line.
3196
                                                              (line 129)
3197
* dynamic clock gating (power management register): Power Management Configuration.
3198
                                                              (line  21)
3199
* dynamic ports, use of:                 Verification API Configuration.
3200
                                                              (line  23)
3201
* edge_trigger (interrupt controller):   Interrupt Configuration.
3202
                                                              (line  16)
3203
* enable_bursts (CUC configuration):     CUC Configuration.   (line  38)
3204
* enabled (ATA/ATAPI configuration):     Disc Interface Configuration.
3205
                                                              (line  18)
3206
* enabled (branch prediction configuration): Branch Prediction Configuration.
3207
                                                              (line  15)
3208
* enabled (cache configuration):         Cache Configuration. (line  11)
3209
* enabled (debug interface configuration): Debug Interface Configuration.
3210
                                                              (line  11)
3211
* enabled (DMA configuration):           DMA Configuration.   (line  20)
3212
* enabled (Ethernet configuration):      Ethernet Configuration.
3213
                                                              (line  18)
3214
* enabled (frame buffer configuration):  Frame Buffer Configuration.
3215
                                                              (line  16)
3216
* enabled (generic peripheral configuration): Generic Peripheral Configuration.
3217
                                                              (line  18)
3218
* enabled (GPIO configuration):          GPIO Configuration.  (line  17)
3219
* enabled (interrupt controller):        Interrupt Configuration.
3220
                                                              (line  12)
3221
* enabled (keyboard configuration):      Keyboard Configuration.
3222
                                                              (line  32)
3223
* enabled (memory controller configuration): Memory Controller Configuration.
3224
                                                              (line  17)
3225
* enabled (MMU configuration):           Memory Management Configuration.
3226
                                                              (line  12)
3227
* enabled (power management configuration): Power Management Configuration.
3228
                                                              (line  35)
3229
* enabled (UART configuration):          UART Configuration.  (line  18)
3230
* enabled (verification API configuration): Verification API Configuration.
3231
                                                              (line  15)
3232
* enabled (VGA configuration):           Display Interface Configuration.
3233
                                                              (line  22)
3234
* enabling Ethernet via socket:          Installation.        (line  25)
3235
* entrysize (MMU configuration):         Memory Management Configuration.
3236
                                                              (line  32)
3237
* ETH_VAPI_CTRL (Ethernet verification): Verification API.    (line  86)
3238
* ETH_VAPI_DATA (Ethernet verification): Verification API.    (line  84)
3239
* Ethernet configuration:                Ethernet Configuration.
3240
                                                              (line   6)
3241
* Ethernet verification (VAPI):          Verification API.    (line  78)
3242
* Ethernet via socket, enabling:         Installation.        (line  25)
3243
* exe_log (simulator configuration):     Simulator Behavior.  (line  48)
3244
* exe_log_end (simulator configuration): Simulator Behavior.  (line  88)
3245
* exe_log_file (simulator configuration): Simulator Behavior. (line  96)
3246
* exe_log_fn (simulator configuration - deprecated): Simulator Behavior.
3247
                                                              (line  96)
3248
* exe_log_marker (simulator configuration): Simulator Behavior.
3249
                                                              (line  92)
3250
* exe_log_start (simulator configuration): Simulator Behavior.
3251
                                                              (line  85)
3252
* exe_log_type (simulator configuration): Simulator Behavior. (line  54)
3253
* exe_log_type=default (simulator configuration): Simulator Behavior.
3254
                                                              (line  57)
3255
* exe_log_type=hardware (simulator configuration): Simulator Behavior.
3256
                                                              (line  61)
3257
* exe_log_type=simple (simulator configuration): Simulator Behavior.
3258
                                                              (line  68)
3259
* exe_log_type=software (simulator configuration): Simulator Behavior.
3260
                                                              (line  73)
3261
* executing code (Interactive CLI):      Interactive Command Line.
3262
                                                              (line  23)
3263
* execution history (Interactive CLI):   Interactive Command Line.
3264
                                                              (line  67)
3265
* file (ATA/ATAPI device configuration): Disc Interface Configuration.
3266
                                                              (line 104)
3267
* file (keyboard configuration):         Keyboard Configuration.
3268
                                                              (line  51)
3269
* filename (frame buffer configuration - deprecated): Frame Buffer Configuration.
3270
                                                              (line  35)
3271
* filename (VGA configuration - deprecated): Display Interface Configuration.
3272
                                                              (line  47)
3273
* firmware (ATA/ATAPI device configuration): Disc Interface Configuration.
3274
                                                              (line 117)
3275
* frame buffer configuration:            Frame Buffer Configuration.
3276
                                                              (line   6)
3277
* gdb_enabled (debug interface configuration): Debug Interface Configuration.
3278
                                                              (line  20)
3279
* generic peripheral configuration:      Generic Peripheral Configuration.
3280
                                                              (line   6)
3281
* GPIO configuration:                    GPIO Configuration.  (line   6)
3282
* GPIO verification (VAPI):              Verification API.    (line  88)
3283
* GPIO_VAPI_AUX (GPIO verification):     Verification API.    (line 100)
3284
* GPIO_VAPI_CLOCK (GPIO verification):   Verification API.    (line 103)
3285
* GPIO_VAPI_CTRL (GPIO verification):    Verification API.    (line 119)
3286
* GPIO_VAPI_DATA (GPIO verification):    Verification API.    (line  97)
3287
* GPIO_VAPI_INTE (GPIO verification):    Verification API.    (line 110)
3288
* GPIO_VAPI_PTRIG (GPIO verification):   Verification API.    (line 113)
3289
* GPIO_VAPI_RGPIO (GPIO verification):   Verification API.    (line 107)
3290
* hazards (CPU configuration):           CPU Configuration.   (line  69)
3291
* heads (ATA/ATAPI device configuration): Disc Interface Configuration.
3292
                                                              (line 121)
3293
* help (Interactive CLI):                Interactive Command Line.
3294
                                                              (line 175)
3295
* hexadecimal memory dump (Interactive CLI): Interactive Command Line.
3296
                                                              (line 138)
3297
* hide_device_id (verification API configuration): Verification API Configuration.
3298
                                                              (line  36)
3299
* hist (Interactive CLI):                Interactive Command Line.
3300
                                                              (line  67)
3301
* history (simulator configuration):     Simulator Behavior.  (line  39)
3302
* history of execution (Interactive CLI): Interactive Command Line.
3303
                                                              (line  67)
3304
* hitdelay (branch prediction configuration): Branch Prediction Configuration.
3305
                                                              (line  33)
3306
* hitdelay (instruction cache configuration): Cache Configuration.
3307
                                                              (line  38)
3308
* hitdelay (MMU configuration):          Memory Management Configuration.
3309
                                                              (line  51)
3310
* hw_enabled (generic peripheral configuration): Generic Peripheral Configuration.
3311
                                                              (line  49)
3312
* IMMU configuration:                    Memory Management Configuration.
3313
                                                              (line   6)
3314
* index (memory controller configuration): Memory Controller Configuration.
3315
                                                              (line  50)
3316
* info (Interactive CLI):                Interactive Command Line.
3317
                                                              (line 124)
3318
* installing Or1ksim:                    Installation.        (line   6)
3319
* instruction cache configuration:       Cache Configuration. (line   6)
3320
* instruction MMU configuration:         Memory Management Configuration.
3321
                                                              (line   6)
3322
* instruction profiling for Or1ksim:     Profiling Utility.   (line   6)
3323
* instruction profiling utility (Interactive CLI): Interactive Command Line.
3324
                                                              (line 183)
3325
* internal debugging:                    Internal Debugging.  (line   6)
3326
* interrupt controller configuration:    Interrupt Configuration.
3327
                                                              (line   6)
3328
* irq (ATA/ATAPI configuration):         Disc Interface Configuration.
3329
                                                              (line  32)
3330
* irq (DMA configuration):               DMA Configuration.   (line  34)
3331
* irq (GPIO configuration):              GPIO Configuration.  (line  29)
3332
* irq (keyboard configuration):          Keyboard Configuration.
3333
                                                              (line  47)
3334
* irq (UART configuration):              UART Configuration.  (line  70)
3335
* irq (VGA configuration):               Display Interface Configuration.
3336
                                                              (line  37)
3337
* jitter (UART configuration):           UART Configuration.  (line  78)
3338
* keyboard configuration:                Keyboard Configuration.
3339
                                                              (line   6)
3340
* library version of Or1ksim:            Simulator Library.   (line   6)
3341
* license for Or1ksim:                   GNU Free Documentation License.
3342
                                                              (line   6)
3343
* list breakpoints (Interactive CLI):    Interactive Command Line.
3344
                                                              (line  60)
3345
* load_hitdelay (data cache configuration): Cache Configuration.
3346
                                                              (line  46)
3347
* load_missdelay (data cache configuration): Cache Configuration.
3348
                                                              (line  50)
3349
* log (memory configuration):            Memory Configuration.
3350
                                                              (line 121)
3351
* log_enabled (verification API configuration): Verification API Configuration.
3352
                                                              (line  28)
3353
* long:                                  Simulator Library.   (line  65)
3354
* mc (memory configuration):             Memory Configuration.
3355
                                                              (line  99)
3356
* memory configuration:                  Memory Configuration.
3357
                                                              (line   6)
3358
* memory controller configuration:       Memory Controller Configuration.
3359
                                                              (line   6)
3360
* memory copying (Interactive CLI):      Interactive Command Line.
3361
                                                              (line  54)
3362
* memory display (Interactive CLI):      Interactive Command Line.
3363
                                                              (line  31)
3364
* memory dump, hexadecimal (Interactive CLI): Interactive Command Line.
3365
                                                              (line 138)
3366
* memory dump, Verilog (Interactive CLI): Interactive Command Line.
3367
                                                              (line 129)
3368
* memory patching (Interactive CLI):     Interactive Command Line.
3369
                                                              (line  48)
3370
* memory profiling end address:          Memory Profiling Utility.
3371
                                                              (line  56)
3372
* memory profiling start address:        Memory Profiling Utility.
3373
                                                              (line  56)
3374
* memory profiling utility (Interactive CLI): Interactive Command Line.
3375
                                                              (line 178)
3376
* memory profiling version of Or1ksim:   Memory Profiling Utility.
3377
                                                              (line   6)
3378
* memory_order (CUC configuration):      CUC Configuration.   (line  15)
3379
* memory_order=exact (CUC configuration): CUC Configuration.  (line  27)
3380
* memory_order=none (CUC configuration): CUC Configuration.   (line  18)
3381
* memory_order=strong (CUC configuration): CUC Configuration. (line  25)
3382
* memory_order=weak (CUC configuration): CUC Configuration.   (line  21)
3383
* missdelay (branch prediction configuration): Branch Prediction Configuration.
3384
                                                              (line  37)
3385
* missdelay (instruction cache configuration): Cache Configuration.
3386
                                                              (line  42)
3387
* missdelay (MMU configuration):         Memory Management Configuration.
3388
                                                              (line  55)
3389
* MMU configuration:                     Memory Management Configuration.
3390
                                                              (line   6)
3391
* mprof_file (simulator configuration):  Simulator Behavior.  (line  33)
3392
* mprof_fn (simulator configuration - deprecated): Simulator Behavior.
3393
                                                              (line  33)
3394
* mprofile (Interactive CLI):            Interactive Command Line.
3395
                                                              (line 178)
3396
* mprofile (simulator configuration):    Simulator Behavior.  (line  28)
3397
* mwdma (ATA/ATAPI device configuration): Disc Interface Configuration.
3398
                                                              (line 128)
3399
* name (generic peripheral configuration): Generic Peripheral Configuration.
3400
                                                              (line  42)
3401
* name (memory configuration):           Memory Configuration.
3402
                                                              (line  82)
3403
* no_multicycle (CUC configuration):     CUC Configuration.   (line  42)
3404
* nsets (cache configuration):           Cache Configuration. (line  15)
3405
* nsets (MMU configuration):             Memory Management Configuration.
3406
                                                              (line  16)
3407
* nways (cache configuration):           Cache Configuration. (line  22)
3408
* nways (MMU configuration):             Memory Management Configuration.
3409
                                                              (line  22)
3410
* or1ksim_get_time_period:               Simulator Library.   (line  55)
3411
* or1ksim_init:                          Simulator Library.   (line  18)
3412
* or1ksim_interrupt:                     Simulator Library.   (line  70)
3413
* or1ksim_is_le:                         Simulator Library.   (line  60)
3414
* or1ksim_reset_duration:                Simulator Library.   (line  40)
3415
* or1ksim_run:                           Simulator Library.   (line  35)
3416
* or1ksim_set_time_point:                Simulator Library.   (line  51)
3417
* output rediretion:                     Concepts.            (line   7)
3418
* packet (ATA/ATAPI device configuration): Disc Interface Configuration.
3419
                                                              (line 113)
3420
* pagesize (MMU configuration):          Memory Management Configuration.
3421
                                                              (line  27)
3422
* patching memory (Interactive CLI):     Interactive Command Line.
3423
                                                              (line  48)
3424
* patching registers (Interactive CLI):  Interactive Command Line.
3425
                                                              (line  28)
3426
* patching the program counter (Interactive CLI): Interactive Command Line.
3427
                                                              (line  51)
3428
* pattern (memory configuration):        Memory Configuration.
3429
                                                              (line  50)
3430
* pc (Interactive CLI):                  Interactive Command Line.
3431
                                                              (line  51)
3432
* PIC configuration:                     Interrupt Configuration.
3433
                                                              (line   6)
3434
* pio (ATA/ATAPI device configuration):  Disc Interface Configuration.
3435
                                                              (line 132)
3436
* pio_mode0_t1 (ATA/ATAPI configuration): Disc Interface Configuration.
3437
                                                              (line  51)
3438
* pio_mode0_t2 (ATA/ATAPI configuration): Disc Interface Configuration.
3439
                                                              (line  52)
3440
* pio_mode0_t4 (ATA/ATAPI configuration): Disc Interface Configuration.
3441
                                                              (line  53)
3442
* pio_mode0_teoc (ATA/ATAPI configuration): Disc Interface Configuration.
3443
                                                              (line  54)
3444
* pm (Interactive CLI):                  Interactive Command Line.
3445
                                                              (line  48)
3446
* PMR - DGCE:                            Power Management Configuration.
3447
                                                              (line  21)
3448
* PMR - DME:                             Power Management Configuration.
3449
                                                              (line  15)
3450
* PMR - SDF:                             Power Management Configuration.
3451
                                                              (line  12)
3452
* PMR - SME:                             Power Management Configuration.
3453
                                                              (line  16)
3454
* PMR - SUME:                            Power Management Configuration.
3455
                                                              (line  24)
3456
* PMU configuration:                     Power Management Configuration.
3457
                                                              (line   6)
3458
* poc (memory controller configuration): Memory Controller Configuration.
3459
                                                              (line  37)
3460
* port range for TCP/IP:                 Verification API Configuration.
3461
                                                              (line  23)
3462
* power management configuration:        Power Management Configuration.
3463
                                                              (line   6)
3464
* power management register, DGCE:       Power Management Configuration.
3465
                                                              (line  21)
3466
* power management register, DME:        Power Management Configuration.
3467
                                                              (line  15)
3468
* power management register, SDF:        Power Management Configuration.
3469
                                                              (line  12)
3470
* power management register, SME:        Power Management Configuration.
3471
                                                              (line  16)
3472
* power management register, SUME:       Power Management Configuration.
3473
                                                              (line  24)
3474
* pr (Interactive CLI):                  Interactive Command Line.
3475
                                                              (line  28)
3476
* private ports, use of:                 Verification API Configuration.
3477
                                                              (line  23)
3478
* processor configuration:               CPU Configuration.   (line   6)
3479
* processor stall (Interactive CLI):     Interactive Command Line.
3480
                                                              (line  72)
3481
* prof_file (simulator configuration):   Simulator Behavior.  (line  23)
3482
* prof_fn (simulator configuration - deprecated): Simulator Behavior.
3483
                                                              (line  23)
3484
* profile (simulator configuration):     Simulator Behavior.  (line  19)
3485
* profiling for Or1ksim:                 Profiling Utility.   (line   6)
3486
* profiling utility (Interactive CLI):   Interactive Command Line.
3487
                                                              (line 183)
3488
* program counter patching (Interactive CLI): Interactive Command Line.
3489
                                                              (line  51)
3490
* programmable interrupt controller configuration: Interrupt Configuration.
3491
                                                              (line   6)
3492
* PS2 configuration:                     Keyboard Configuration.
3493
                                                              (line   6)
3494
* q (Interactive CLI):                   Interactive Command Line.
3495
                                                              (line  11)
3496
* quitting (Interactive CLI):            Interactive Command Line.
3497
                                                              (line  11)
3498
* r (Interactive CLI):                   Interactive Command Line.
3499
                                                              (line  14)
3500
* random_seed (memory configuration):    Memory Configuration.
3501
                                                              (line  40)
3502
* refresh_rate (frame buffer configuration): Frame Buffer Configuration.
3503
                                                              (line  29)
3504
* refresh_rate (VGA configuration):      Display Interface Configuration.
3505
                                                              (line  41)
3506
* reg_sim_reset:                         Concepts.            (line  13)
3507
* register display (Interactive CLI):    Interactive Command Line.
3508
                                                              (line  14)
3509
* register patching (Interactive CLI):   Interactive Command Line.
3510
                                                              (line  28)
3511
* reset (Interactive CLI):               Interactive Command Line.
3512
                                                              (line  63)
3513
* reset hooks:                           Concepts.            (line  13)
3514
* reset the simulator (Interactive CLI): Interactive Command Line.
3515
                                                              (line  63)
3516
* rev (ATA/ATAPI configuration):         Disc Interface Configuration.
3517
                                                              (line  44)
3518
* rev (CPU configuration):               CPU Configuration.   (line  15)
3519
* rtx_type (Ethernet configuration):     Ethernet Configuration.
3520
                                                              (line  46)
3521
* run (Interactive CLI):                 Interactive Command Line.
3522
                                                              (line  23)
3523
* running code (Interactive CLI):        Interactive Command Line.
3524
                                                              (line  23)
3525
* running Or1ksim:                       Usage.               (line   6)
3526
* runtime:                               Global Data Structures.
3527
                                                              (line  58)
3528
* runtime global structure:              Global Data Structures.
3529
                                                              (line  58)
3530
* runtime.cpu:                           Global Data Structures.
3531
                                                              (line  62)
3532
* runtime.cpu.fout:                      Concepts.            (line   7)
3533
* runtime.cuc:                           Global Data Structures.
3534
                                                              (line  62)
3535
* runtime.vapi:                          Global Data Structures.
3536
                                                              (line  62)
3537
* rx_channel (Ethernet configuration):   Ethernet Configuration.
3538
                                                              (line  59)
3539
* rxfile (Ethernet configuration):       Ethernet Configuration.
3540
                                                              (line  68)
3541
* sbp_bf_fwd (branch prediction configuration): Branch Prediction Configuration.
3542
                                                              (line  23)
3543
* sbp_bnf_fwd (branch prediction configuration): Branch Prediction Configuration.
3544
                                                              (line  28)
3545
* sbuf_len (CPU configuration):          CPU Configuration.   (line  96)
3546
* SDF (power management register):       Power Management Configuration.
3547
                                                              (line  12)
3548
* section ata:                           Disc Interface Configuration.
3549
                                                              (line   6)
3550
* section bpb:                           Branch Prediction Configuration.
3551
                                                              (line   6)
3552
* section cpio:                          GPIO Configuration.  (line   6)
3553
* section cpu:                           CPU Configuration.   (line   6)
3554
* section cuc:                           CUC Configuration.   (line   6)
3555
* section dc:                            Cache Configuration. (line   6)
3556
* section debug:                         Debug Interface Configuration.
3557
                                                              (line   6)
3558
* section dma:                           DMA Configuration.   (line   6)
3559
* section dmmu:                          Memory Management Configuration.
3560
                                                              (line   6)
3561
* section ethernet:                      Ethernet Configuration.
3562
                                                              (line   6)
3563
* section fb:                            Frame Buffer Configuration.
3564
                                                              (line   6)
3565
* section generic:                       Generic Peripheral Configuration.
3566
                                                              (line   6)
3567
* section ic:                            Cache Configuration. (line   6)
3568
* section immu:                          Memory Management Configuration.
3569
                                                              (line   6)
3570
* section kb:                            Keyboard Configuration.
3571
                                                              (line   6)
3572
* section mc:                            Memory Controller Configuration.
3573
                                                              (line   6)
3574
* section memory:                        Memory Configuration.
3575
                                                              (line   6)
3576
* section pic:                           Interrupt Configuration.
3577
                                                              (line   6)
3578
* section pmu:                           Power Management Configuration.
3579
                                                              (line   6)
3580
* section sim:                           Simulator Behavior.  (line   6)
3581
* section uart:                          UART Configuration.  (line   6)
3582
* section vapi:                          Verification API Configuration.
3583
                                                              (line   6)
3584
* section vga:                           Display Interface Configuration.
3585
                                                              (line   6)
3586
* sections:                              Global Data Structures.
3587
                                                              (line  49)
3588
* sectors (ATA/ATAPI device configuration): Disc Interface Configuration.
3589
                                                              (line 125)
3590
* server_port (debug interface configuration): Debug Interface Configuration.
3591
                                                              (line  39)
3592
* server_port (verification API configuration): Verification API Configuration.
3593
                                                              (line  19)
3594
* set (Interactive CLI):                 Interactive Command Line.
3595
                                                              (line 151)
3596
* set breakpoint (Interactive CLI):      Interactive Command Line.
3597
                                                              (line  57)
3598
* setdbch (Interactive CLI):             Interactive Command Line.
3599
                                                              (line 146)
3600
* simulator configuration:               Simulator Behavior.  (line   6)
3601
* simulator configuration info (Interactive CLI): Interactive Command Line.
3602
                                                              (line 124)
3603
* simulator reset (Interactive CLI):     Interactive Command Line.
3604
                                                              (line  63)
3605
* simulator statistics (Interactive CLI): Interactive Command Line.
3606
                                                              (line  88)
3607
* size (ATA/ATAPI device configuration): Disc Interface Configuration.
3608
                                                              (line 109)
3609
* size (generic peripheral configuration): Generic Peripheral Configuration.
3610
                                                              (line  30)
3611
* size (memory configuration):           Memory Configuration.
3612
                                                              (line  67)
3613
* sleep mode (power management register): Power Management Configuration.
3614
                                                              (line  16)
3615
* slow down factor (power management register): Power Management Configuration.
3616
                                                              (line  12)
3617
* SME (power management register):       Power Management Configuration.
3618
                                                              (line  16)
3619
* sockif (Ethernet configuration):       Ethernet Configuration.
3620
                                                              (line  83)
3621
* sr (CPU configuration):                CPU Configuration.   (line  53)
3622
* stall (Interactive CLI):               Interactive Command Line.
3623
                                                              (line  72)
3624
* stall the processor (Interactive CLI): Interactive Command Line.
3625
                                                              (line  72)
3626
* statistics, simulation (Interactive CLI): Interactive Command Line.
3627
                                                              (line  88)
3628
* stats (Interactive CLI):               Interactive Command Line.
3629
                                                              (line  88)
3630
* stepping code (Interactive CLI):       Interactive Command Line.
3631
                                                              (line  19)
3632
* store_hitdelay (data cache configuration): Cache Configuration.
3633
                                                              (line  54)
3634
* store_missdelay (data cache configuration): Cache Configuration.
3635
                                                              (line  58)
3636
* SUME (power management register):      Power Management Configuration.
3637
                                                              (line  24)
3638
* superscalar (CPU configuration):       CPU Configuration.   (line  58)
3639
* suspend mode (power management register): Power Management Configuration.
3640
                                                              (line  24)
3641
* t (Interactive CLI):                   Interactive Command Line.
3642
                                                              (line  19)
3643
* TCP/IP port range:                     Verification API Configuration.
3644
                                                              (line  23)
3645
* TCP/IP port range for or1ksim service: Debug Interface Configuration.
3646
                                                              (line  43)
3647
* timings_file (CUC configuration):      CUC Configuration.   (line  46)
3648
* timings_fn (CUC configuration - deprecated): CUC Configuration.
3649
                                                              (line  46)
3650
* toggle breakpoint (Interactive CLI):   Interactive Command Line.
3651
                                                              (line  57)
3652
* toggle debug channels (Interactive CLI): Interactive Command Line.
3653
                                                              (line 146)
3654
* toggle debug mode (Interactive CLI):   Interactive Command Line.
3655
                                                              (line 156)
3656
* tx_channel (Ethernet configuration):   Ethernet Configuration.
3657
                                                              (line  60)
3658
* txfile (Ethernet configuration):       Ethernet Configuration.
3659
                                                              (line  69)
3660
* txfile (frame buffer configuration):   Frame Buffer Configuration.
3661
                                                              (line  35)
3662
* txfile (VGA configuration):            Display Interface Configuration.
3663
                                                              (line  47)
3664
* type (ATA/ATAPI device configuration): Disc Interface Configuration.
3665
                                                              (line  99)
3666
* type (memory configuration):           Memory Configuration.
3667
                                                              (line  11)
3668
* type=pattern (memory configuration):   Memory Configuration.
3669
                                                              (line  21)
3670
* type=random (memory configuration):    Memory Configuration.
3671
                                                              (line  15)
3672
* type=unknown (memory configuration):   Memory Configuration.
3673
                                                              (line  25)
3674
* type=zero (memory configuration):      Memory Configuration.
3675
                                                              (line  29)
3676
* UART configuration:                    UART Configuration.  (line   6)
3677
* UART I/O from/to a physical serial port: UART Configuration.
3678
                                                              (line  62)
3679
* UART I/O from/to an xterm:             UART Configuration.  (line  38)
3680
* UART I/O from/to files:                UART Configuration.  (line  33)
3681
* UART I/O from/to open file descriptors: UART Configuration. (line  58)
3682
* UART I/O from/to TCP/IP:               UART Configuration.  (line  45)
3683
* UART verification (VAPI):              Verification API.    (line  41)
3684
* upr (CPU configuration):               CPU Configuration.   (line  21)
3685
* ustates (cache configuration):         Cache Configuration. (line  33)
3686
* ustates (MMU configuration):           Memory Management Configuration.
3687
                                                              (line  41)
3688
* VAPI configuration:                    Verification API Configuration.
3689
                                                              (line   6)
3690
* VAPI for Debug Unit:                   Verification API.    (line  34)
3691
* VAPI for DMA:                          Verification API.    (line  73)
3692
* VAPI for Ethernet:                     Verification API.    (line  78)
3693
* VAPI for GPIO:                         Verification API.    (line  88)
3694
* VAPI for UART:                         Verification API.    (line  41)
3695
* vapi_id (debug interface configuration): Debug Interface Configuration.
3696
                                                              (line  49)
3697
* vapi_id (DMA configuration) <1>:       Ethernet Configuration.
3698
                                                              (line  88)
3699
* vapi_id (DMA configuration):           DMA Configuration.   (line  38)
3700
* vapi_id (GPIO configuration):          GPIO Configuration.  (line  32)
3701
* vapi_id (UART configuration):          UART Configuration.  (line  85)
3702
* vapi_log_file (verification API configuration): Verification API Configuration.
3703
                                                              (line  41)
3704
* vapi_log_fn (verification API configuration - deprecated): Verification API Configuration.
3705
                                                              (line  41)
3706
* ver (CPU configuration):               CPU Configuration.   (line  15)
3707
* verbose (simulator configuration):     Simulator Behavior.  (line  10)
3708
* Verification API configuration:        Verification API Configuration.
3709
                                                              (line   6)
3710
* Verilog memory dump (Interactive CLI): Interactive Command Line.
3711
                                                              (line 129)
3712
* VGA configuration:                     Display Interface Configuration.
3713
 
3714
 
3715
                                                              (line  50)
3716
3717
3718

3719
Tag Table:
3720
Node: Top808
3721
Node: Installation1218
3722
Node: Usage2778
3723
Node: Standalone Simulator2992
3724
Node: Profiling Utility5012
3725
Node: Memory Profiling Utility5920
3726
Node: Simulator Library7279
3727
Node: Configuration11225
3728
Node: Configuration File Format11831
3729
Node: Configuration File Preprocessing12123
3730
Node: Configuration File Syntax12493
3731
Node: Simulator Configuration15271
3732
Node: Simulator Behavior15562
3733
Node: Verification API Configuration19578
3734
Node: CUC Configuration21507
3735
Node: Core OpenRISC Configuration23412
3736
Node: CPU Configuration23914
3737
Node: Memory Configuration27704
3738
Node: Memory Management Configuration32980
3739
Node: Cache Configuration35341
3740
Node: Interrupt Configuration37707
3741
Node: Power Management Configuration38439
3742
Node: Branch Prediction Configuration39711
3743
Node: Debug Interface Configuration41064
3744
Node: Peripheral Configuration43708
3745
Node: Memory Controller Configuration44333
3746
Node: UART Configuration46930
3747
Node: DMA Configuration50436
3748
Node: Ethernet Configuration52291
3749
Node: GPIO Configuration56247
3750
Node: Display Interface Configuration57870
3751
Node: Frame Buffer Configuration60170
3752
Node: Keyboard Configuration62020
3753
Node: Disc Interface Configuration64246
3754
Node: Generic Peripheral Configuration69161
3755
Node: Interactive Command Line71445
3756
Node: Verification API78744
3757
Node: Code Internals83162
3758
Node: Coding Conventions83719
3759
Node: Global Data Structures88134
3760
Node: Concepts90786
3761
Ref: Output Redirection90931
3762
Node: Internal Debugging91468
3763
Node: GNU Free Documentation License91964

powered by: WebSVN 2.1.0

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