Line 1... |
Line 1... |
This is ../../doc/or1ksim.info, produced by makeinfo version 4.11 from
|
This is ../../doc/or1ksim.info, produced by makeinfo version 4.13 from
|
../../doc/or1ksim.texi.
|
../../doc/or1ksim.texi.
|
|
|
INFO-DIR-SECTION Embedded development
|
INFO-DIR-SECTION Embedded development
|
START-INFO-DIR-ENTRY
|
START-INFO-DIR-ENTRY
|
* Or1ksim: (or32-uclinux-or1ksim). The OpenRISC 1000 Architectural
|
* Or1ksim: (or32-uclinux-or1ksim). The OpenRISC 1000 Architectural
|
Line 62... |
Line 62... |
===============
|
===============
|
|
|
Unpack the software and create a _separate_ directory in which to build
|
Unpack the software and create a _separate_ directory in which to build
|
it:
|
it:
|
|
|
tar jxf or1ksim-0.3.0.tar.bz2
|
tar jxf or1ksim-0.3.1-2010-04-20.tar.bz2
|
mkdir builddir_or1ksim
|
mkdir builddir_or1ksim
|
cd builddir_or1ksim
|
cd builddir_or1ksim
|
|
|
|
|
File: or1ksim.info, Node: Configuring the Build, Next: Build and Install, Prev: Preparation, Up: Installation
|
File: or1ksim.info, Node: Configuring the Build, Next: Build and Install, Prev: Preparation, Up: Installation
|
Line 79... |
Line 79... |
|
|
The most significant argument is `--target', which should specify the
|
The most significant argument is `--target', which should specify the
|
OpenRISC 1000 32-bit architecture. If this argument is omitted, it will
|
OpenRISC 1000 32-bit architecture. If this argument is omitted, it will
|
default to OpenRISC 1000 32-bit with a warning
|
default to OpenRISC 1000 32-bit with a warning
|
|
|
../or1ksim-0.3.0/configure --target=or32-uclinux ...
|
../or1ksim-0.3.1-2010-04-20/configure --target=or32-uclinux ...
|
|
|
There are several other options available, many of which are standard
|
There are several other options available, many of which are standard
|
to GNU `configure' scripts. Use `configure --help' to see all the
|
to GNU `configure' scripts. Use `configure --help' to see all the
|
options. The most useful is `--prefix' to specify a directory for
|
options. The most useful is `--prefix' to specify a directory for
|
installation of the tools.
|
installation of the tools.
|
Line 106... |
Line 106... |
`--enable-execution=simple'
|
`--enable-execution=simple'
|
Build the original simple interpreting simulator
|
Build the original simple interpreting simulator
|
|
|
`--enable-execution=complex'
|
`--enable-execution=complex'
|
Build a more complex interpreting simulator. Experiments
|
Build a more complex interpreting simulator. Experiments
|
suggest this is 50% faster than the simple simulator. This is
|
suggest this is 50% faster than the simple simulator. This
|
the default.
|
is the default.
|
|
|
`--enable-execution=dynamic'
|
`--enable-execution=dynamic'
|
Build a dynamically compiling simulator. This is the way many
|
Build a dynamically compiling simulator. This is the way
|
modern ISS are built. This represents a work in progress.
|
many modern ISS are built. This represents a work in
|
Currently Or1ksim will compile, but segfaults if configured
|
progress. Currently Or1ksim will compile, but segfaults if
|
with this option.
|
configured with this option.
|
|
|
|
|
The default is `--enable-execution=complex'.
|
The default is `--enable-execution=complex'.
|
|
|
`--enable-ethphy'
|
`--enable-ethphy'
|
Line 145... |
Line 145... |
`l.srai', `l.sub', `l.xor' and `l.xori'.
|
`l.srai', `l.sub', `l.xor' and `l.xori'.
|
|
|
The default is for this to be disabled.
|
The default is for this to be disabled.
|
|
|
Caution: This appears a very dangerous option, to the extent
|
Caution: This appears a very dangerous option, to the extent
|
of arguably being a bug. Whether or not flags are set is part
|
of arguably being a bug. Whether or not flags are set is
|
of the OpenRISC 1000 architectural specification. Within the
|
part of the OpenRISC 1000 architectural specification.
|
above list, the arithmetic instructions (`l.add', `l.addc',
|
Within the above list, the arithmetic instructions (`l.add',
|
`l.addi', `l.div', `l.divu', `l.mul', `l.muli' and `l.sub'),
|
`l.addc', `l.addi', `l.div', `l.divu', `l.mul', `l.muli' and
|
together with `l.addic' which is missed out, set the overflow
|
`l.sub'), together with `l.addic' which is missed out, set
|
flag. All the others (`l.and', `l.andi', `l.or', `l.ori',
|
the overflow flag. All the others (`l.and', `l.andi',
|
`l.sll', `l.slli', `l.srl', `l.srli', `l.sra', `l.srai',
|
`l.or', `l.ori', `l.sll', `l.slli', `l.srl', `l.srli',
|
`l.xor' and `l.xori') do not.
|
`l.sra', `l.srai', `l.xor' and `l.xori') do not.
|
|
|
Thus it is impossible to get correct behavior whichever way
|
Thus it is impossible to get correct behavior whichever way
|
this option is set.
|
this option is set.
|
|
|
`--enable-arith-flag'
|
`--enable-arith-flag'
|
Line 189... |
Line 189... |
|
|
`--enable-debug'
|
`--enable-debug'
|
`--disable-debug'
|
`--disable-debug'
|
This is a feature of the Argtable2 package used to process
|
This is a feature of the Argtable2 package used to process
|
arguments. If enabled, some debugging features are turned on in
|
arguments. If enabled, some debugging features are turned on in
|
Argtable2. It is provided for completeness, but there is no reason
|
Argtable2. It is provided for completeness, but there is no
|
why this feature should ever be needed by any Or1ksim user.
|
reason why this feature should ever be needed by any Or1ksim user.
|
|
|
|
`--enable-all-tests'
|
|
`--disable-all-tests'
|
|
Some of the tests (at the time of writing just one) will not
|
|
compile without error. If enabled with this flag, all test
|
|
programs will be compiled with `make check'.
|
|
|
|
This flag is intended for those working on the test package, who
|
|
wish to get the missing test(s) working.
|
|
|
|
|
|
|
File: or1ksim.info, Node: Build and Install, Next: Known Issues, Prev: Configuring the Build, Up: Installation
|
File: or1ksim.info, Node: Build and Install, Next: Known Issues, Prev: Configuring the Build, Up: Installation
|
|
|
1.3 Building and Installing
|
1.3 Building and Installing
|
===========================
|
===========================
|
|
|
The tool is then built with:
|
Build the tool with:
|
|
|
make all
|
make all
|
|
|
|
If you have the OpenRISC tool chain and DejaGNU installed, you can
|
|
verify the tool as follows (otherwise omit this step):
|
|
|
|
make check
|
|
|
|
Install the tool with:
|
|
|
make install
|
make install
|
|
|
This will install the three variations of the Or1ksim tool,
|
This will install the three variations of the Or1ksim tool,
|
`or32-uclinux-sim', `or32-uclinux-psim' and `or32-uclinux-mpsim', the
|
`or32-uclinux-sim', `or32-uclinux-psim' and `or32-uclinux-mpsim', the
|
Or1ksim library, `libsim', the header file, `or1ksim.h' and this
|
Or1ksim library, `libsim', the header file, `or1ksim.h' and this
|
Line 223... |
Line 240... |
File: or1ksim.info, Node: Known Issues, Prev: Build and Install, Up: Installation
|
File: or1ksim.info, Node: Known Issues, Prev: Build and Install, Up: Installation
|
|
|
1.4 Known Problems and Issues
|
1.4 Known Problems and Issues
|
=============================
|
=============================
|
|
|
The following problems and issues are known about with Or1ksim 0.3.0.
|
The following problems and issues are known about with Or1ksim
|
The OpenRISC tracker may be used to see the current state of these
|
0.3.1-2010-04-20. The OpenRISC tracker may be used to see the current
|
issues and to raise new problems and feature requests. It may be found
|
state of these issues and to raise new problems and feature requests.
|
at `http://www.opencores.org/ptracker.cgi/view/or1k/398'.
|
It may be found at
|
|
`http://www.opencores.org/ptracker.cgi/view/or1k/398'.
|
|
|
* The Supervision Register Little Endian Enable (LEE) bit is
|
* The Supervision Register Little Endian Enable (LEE) bit is
|
ignored. Or1ksim can be built for either little endian or big
|
ignored. Or1ksim can be built for either little endian or big
|
endian use, but that behavior cannot be changed dynamically.
|
endian use, but that behavior cannot be changed dynamically.
|
|
|
Line 261... |
Line 279... |
original design, and can only be fixed by a complete rewrite. The
|
original design, and can only be fixed by a complete rewrite. The
|
entire source code uses static global constants liberally!
|
entire source code uses static global constants liberally!
|
|
|
* There is no support for floating point instructions currently in
|
* There is no support for floating point instructions currently in
|
Or1ksim. However this is a work in progress and should be
|
Or1ksim. However this is a work in progress and should be
|
available in the near future.
|
available in the future.
|
|
|
|
|
|
|
File: or1ksim.info, Node: Usage, Next: Configuration, Prev: Installation, Up: Top
|
File: or1ksim.info, Node: Usage, Next: Configuration, Prev: Installation, Up: Top
|
|
|
Line 288... |
Line 306... |
The general form the standalone command is:
|
The general form the standalone command is:
|
|
|
or32-uclinux-sim [-vhi] [-f FILE] [--nosrv] [--srv=[N]] [-d STR]
|
or32-uclinux-sim [-vhi] [-f FILE] [--nosrv] [--srv=[N]] [-d STR]
|
[--enable-profile] [--enable-mprofile] [FILE]
|
[--enable-profile] [--enable-mprofile] [FILE]
|
|
|
Many of the options have both a short and a long form. For example `-h'
|
Many of the options have both a short and a long form. For example
|
or `--help'.
|
`-h' or `--help'.
|
|
|
`-v'
|
`-v'
|
`--version'
|
`--version'
|
Print out the version and copyright notice for Or1ksim and exit.
|
Print out the version and copyright notice for Or1ksim and exit.
|
|
|
Line 304... |
Line 322... |
`-f FILE'
|
`-f FILE'
|
`--file FILE'
|
`--file FILE'
|
Read configuration commands from the specified file, looking first
|
Read configuration commands from the specified file, looking first
|
in the current directory, and otherwise in the `$HOME/.or1k'
|
in the current directory, and otherwise in the `$HOME/.or1k'
|
directory. If this argument is not specified, the file `sim.cfg'
|
directory. If this argument is not specified, the file `sim.cfg'
|
in those two locations is used. Failure to find the file is a fatal
|
in those two locations is used. Failure to find the file is a
|
error. *Note Configuration: Configuration, for detailed information
|
fatal error. *Note Configuration: Configuration, for detailed
|
on configuring Or1ksim.
|
information on configuring Or1ksim.
|
|
|
`--nosrv'
|
`--nosrv'
|
Do not start up the debug server. This overrides any setting
|
Do not start up the debug server. This overrides any setting
|
specified in the configuration file. This option may not be
|
specified in the configuration file. This option may not be
|
specified with `--srv'. If it is, a rude message is printed and the
|
specified with `--srv'. If it is, a rude message is printed and
|
`--nosrv' option is ignored.
|
the `--nosrv' option is ignored.
|
|
|
`--srv'
|
`--srv'
|
|
|
`--srv=N'
|
`--srv=N'
|
Start up the debug server. If the parameter, N, is specified, use
|
Start up the debug server. If the parameter, N, is specified, use
|
that as the TCP/IP port for the server, otherwise a random value
|
that as the TCP/IP port for the server, otherwise a random value
|
from the private port range (41920-65535) will be used. This option
|
from the private port range (41920-65535) will be used. This
|
may not be specified with `--nosrv'. If it is, a rude message is
|
option may not be specified with `--nosrv'. If it is, a rude
|
printed and the `--nosrv' option is ignored.
|
message is printed and the `--nosrv' option is ignored.
|
|
|
`-d=CONFIG_STRING'
|
`-d=CONFIG_STRING'
|
`--debug-config=CONFIG_STRING'
|
`--debug-config=CONFIG_STRING'
|
Enable selected debug messages in Or1ksim. This parameter is for
|
Enable selected debug messages in Or1ksim. This parameter is for
|
use by developers only, and is not covered further here. See the
|
use by developers only, and is not covered further here. See the
|
Line 336... |
Line 354... |
After starting, drop into the Or1ksim interactive command shell.
|
After starting, drop into the Or1ksim interactive command shell.
|
|
|
`--strict-npc'
|
`--strict-npc'
|
In real hardware, setting the next program counter (NPC, SPR 16),
|
In real hardware, setting the next program counter (NPC, SPR 16),
|
flushes the processor pipeline. The consequence of this is that
|
flushes the processor pipeline. The consequence of this is that
|
until the pipeline refills, reading the NPC will return zero. This
|
until the pipeline refills, reading the NPC will return zero.
|
is typically the case when debugging, since the processor is
|
This is typically the case when debugging, since the processor is
|
stalled.
|
stalled.
|
|
|
Historically, Or1ksim has always returned the value of the NPC,
|
Historically, Or1ksim has always returned the value of the NPC,
|
irrespective of when it is changed. If the `--strict-npc' option is
|
irrespective of when it is changed. If the `--strict-npc' option
|
used, then Or1ksim will mirror real hardware more accurately. If
|
is used, then Or1ksim will mirror real hardware more accurately.
|
the NPC is changed while the processor is stalled, subsequent
|
If the NPC is changed while the processor is stalled, subsequent
|
reads of its value will return 0 until the processor is unstalled.
|
reads of its value will return 0 until the processor is unstalled.
|
|
|
This is not currently the default behavior, since tools such as
|
This is not currently the default behavior, since tools such as
|
GDB have been implemented assuming the historic Or1ksim behavior.
|
GDB have been implemented assuming the historic Or1ksim behavior.
|
However at some time in the future it will become the default.
|
However at some time in the future it will become the default.
|
Line 363... |
Line 381... |
File: or1ksim.info, Node: Profiling Utility, Next: Memory Profiling Utility, Prev: Standalone Simulator, Up: Usage
|
File: or1ksim.info, Node: Profiling Utility, Next: Memory Profiling Utility, Prev: Standalone Simulator, Up: Usage
|
|
|
2.2 Profiling Utility
|
2.2 Profiling Utility
|
=====================
|
=====================
|
|
|
This utility analyses instruction profile data generated by Or1ksim. It
|
This utility analyses instruction profile data generated by Or1ksim.
|
may be invoked as a standalone command, or from the Or1ksim CLI. The
|
It may be invoked as a standalone command, or from the Or1ksim CLI.
|
general form the standalone command is:
|
The general form the standalone command is:
|
|
|
or32-uclinux-profile [-vhcq] [-g=FILE]
|
or32-uclinux-profile [-vhcq] [-g=FILE]
|
|
|
Many of the options have both a short and a long form. For example `-h'
|
Many of the options have both a short and a long form. For example
|
or `--help'.
|
`-h' or `--help'.
|
|
|
`-v'
|
`-v'
|
`--version'
|
`--version'
|
Print out the version and copyright notice for the Or1ksim
|
Print out the version and copyright notice for the Or1ksim
|
profiling utility and exit.
|
profiling utility and exit.
|
Line 407... |
Line 425... |
be invoked as a standalone command, or from the Or1ksim CLI. The
|
be invoked as a standalone command, or from the Or1ksim CLI. The
|
general form the standalone command is:
|
general form the standalone command is:
|
|
|
or32-uclinux-mprofile [-vh] [-m=M] [-g=N] [-f=FILE] FROM TO
|
or32-uclinux-mprofile [-vh] [-m=M] [-g=N] [-f=FILE] FROM TO
|
|
|
Many of the options have both a short and a long form. For example `-h'
|
Many of the options have both a short and a long form. For example
|
or `--help'.
|
`-h' or `--help'.
|
|
|
`-v'
|
`-v'
|
`--version'
|
`--version'
|
Print out the version and copyright notice for the Or1ksim memory
|
Print out the version and copyright notice for the Or1ksim memory
|
profiling utility and exit.
|
profiling utility and exit.
|
Line 483... |
Line 501... |
|
|
*Note Configuration: Configuration, for detailed information on
|
*Note Configuration: Configuration, for detailed information on
|
configuring Or1ksim and the format of the configuration file.
|
configuring Or1ksim and the format of the configuration file.
|
|
|
UPW is called for any write to an address external to the model
|
UPW is called for any write to an address external to the model
|
(determined by a `generic' section in the configuration file). UPR
|
(determined by a `generic' section in the configuration file).
|
is called for any reads to an external address. The CLASS_PTR is
|
UPR is called for any reads to an external address. The CLASS_PTR
|
passed back with these upcalls, allowing the function to associate
|
is passed back with these upcalls, allowing the function to
|
the call with the class which originally initialized the library.
|
associate the call with the class which originally initialized the
|
|
library.
|
|
|
MASK indicates which bytes in the word are to be written or read.
|
MASK indicates which bytes in the word are to be written or read.
|
Bytes to be read/written should have 0xff set in MASK. Otherwise
|
Bytes to be read/written should have 0xff set in MASK. Otherwise
|
the byte should be zero.
|
the byte should be zero.
|
|
|
Line 528... |
Line 547... |
Return 1 (logical true) if the Or1ksim simulation is
|
Return 1 (logical true) if the Or1ksim simulation is
|
little-endian, 0 otherwise.
|
little-endian, 0 otherwise.
|
|
|
|
|
-- `or1ksim.h': unsigned long int or1ksim_clock_rate ()
|
-- `or1ksim.h': unsigned long int or1ksim_clock_rate ()
|
Return the Or1ksim clock rate (in Hz). This is the value specified
|
Return the Or1ksim clock rate (in Hz). This is the value
|
in the configuration file.
|
specified in the configuration file.
|
|
|
|
|
-- `or1ksim.h': void or1ksim_interrupt (int I)
|
-- `or1ksim.h': void or1ksim_interrupt (int I)
|
Generate an edge-triggered interrupt on interrupt line I. The
|
Generate an edge-triggered interrupt on interrupt line I. The
|
interrupt is then immediately cleared automatically. A warning
|
interrupt is then immediately cleared automatically. A warning
|
Line 703... |
Line 722... |
All optional parts of the functionality are always described by
|
All optional parts of the functionality are always described by
|
sections including a `enabled' parameter, which can be set to 0 to
|
sections including a `enabled' parameter, which can be set to 0 to
|
ensure that functionality is explicitly omitted.
|
ensure that functionality is explicitly omitted.
|
|
|
Even if a section is disabled, all its parameters will be read and
|
Even if a section is disabled, all its parameters will be read and
|
stored. This is helpful if the section is subsequently enabled from the
|
stored. This is helpful if the section is subsequently enabled from
|
Or1ksim command line (*note Interactive Command Line: Interactive
|
the Or1ksim command line (*note Interactive Command Line: Interactive
|
Command Line.).
|
Command Line.).
|
|
|
Tip: It generally clearer to have sections describing _all_
|
Tip: It generally clearer to have sections describing _all_
|
components, with omitted functionality explicitly indicated by
|
components, with omitted functionality explicitly indicated by
|
setting the `enabled' parameter to 0
|
setting the `enabled' parameter to 0
|
Line 741... |
Line 760... |
If 1 (true), print extra messages. Default 0.
|
If 1 (true), print extra messages. Default 0.
|
|
|
`debug = 0-9'
|
`debug = 0-9'
|
0 means no debug messages. 1-9 means produce debug messages. The
|
0 means no debug messages. 1-9 means produce debug messages. The
|
higher the value the greater the number of messages. Default 0.
|
higher the value the greater the number of messages. Default 0.
|
Negative values will be treated as 0 (with a warning). Values that
|
Negative values will be treated as 0 (with a warning). Values
|
are too large will be treated as 9 (with a warning).
|
that are too large will be treated as 9 (with a warning).
|
|
|
`profile = 0|1'
|
`profile = 0|1'
|
If 1 (true) generate a profiling file using the file specified in
|
If 1 (true) generate a profiling file using the file specified in
|
the `prof_file' parameter or otherwise `sim.profile'. Default 0.
|
the `prof_file' parameter or otherwise `sim.profile'. Default 0.
|
|
|
`prof_file = ``FILENAME'''
|
`prof_file = ``FILENAME'''
|
Specifies the file to be used with the `profile' parameter. Default
|
Specifies the file to be used with the `profile' parameter.
|
`sim.profile'. For backwards compatibility, the alternative name
|
Default `sim.profile'. For backwards compatibility, the
|
`prof_fn' is supported for this parameter, but deprecated.
|
alternative name `prof_fn' is supported for this parameter, but
|
|
deprecated.
|
|
|
`mprofile = 0|1'
|
`mprofile = 0|1'
|
If 1 (true) generate a memory profiling file using the file
|
If 1 (true) generate a memory profiling file using the file
|
specified in the `mprof_file' parameter or otherwise
|
specified in the `mprof_file' parameter or otherwise
|
`sim.mprofile'. Default 0.
|
`sim.mprofile'. Default 0.
|
Line 774... |
Line 794... |
Note: If this execution flow tracking is enabled, then
|
Note: If this execution flow tracking is enabled, then
|
`dependstats' must be enabled in the CPU configuration
|
`dependstats' must be enabled in the CPU configuration
|
section (*note CPU Configuration: CPU Configuration.).
|
section (*note CPU Configuration: CPU Configuration.).
|
|
|
`exe_log = 0|1'
|
`exe_log = 0|1'
|
If 1 (true), generate an execution log. Log is written to the file
|
If 1 (true), generate an execution log. Log is written to the
|
specified in parameter `exe_log_file'. Default 0.
|
file specified in parameter `exe_log_file'. Default 0.
|
|
|
Note: Setting this parameter seriously degrades performance.
|
Note: Setting this parameter seriously degrades performance.
|
|
|
`exe_log_type = default|hardware|simple|software'
|
`exe_log_type = default|hardware|simple|software'
|
Type of execution log to produce.
|
Type of execution log to produce.
|
Line 814... |
Line 834... |
|
|
`exe_log_start = VALUE'
|
`exe_log_start = VALUE'
|
Address of the first instruction to start logging. Default 0.
|
Address of the first instruction to start logging. Default 0.
|
|
|
`exe_log_end = VALUE'
|
`exe_log_end = VALUE'
|
Address of the last instruction to log. Default no limit (i.e once
|
Address of the last instruction to log. Default no limit (i.e
|
started logging will continue until the simulator exits).
|
once started logging will continue until the simulator exits).
|
|
|
`exe_log_marker = VALUE'
|
`exe_log_marker = VALUE'
|
Specifies the number of instructions between printing horizontal
|
Specifies the number of instructions between printing horizontal
|
markers. Default is to produce no markers.
|
markers. Default is to produce no markers.
|
|
|
Line 921... |
Line 941... |
`enable_bursts = 0 | 1'
|
`enable_bursts = 0 | 1'
|
If 1 (true), bursts are detected. If 0 (the default), bursts are
|
If 1 (true), bursts are detected. If 0 (the default), bursts are
|
not detected.
|
not detected.
|
|
|
`no_multicycle = 0 | 1'
|
`no_multicycle = 0 | 1'
|
If 1 (true), no multicycle logic paths will be generated. If 0 (the
|
If 1 (true), no multicycle logic paths will be generated. If 0
|
default), multicycle logic paths will be generated.
|
(the default), multicycle logic paths will be generated.
|
|
|
`timings_file = "FILENAME"'
|
`timings_file = "FILENAME"'
|
FILENAME specifies a file containing timing information. The
|
FILENAME specifies a file containing timing information. The
|
default value is `"virtex.tim"'. For backwards compatibility, the
|
default value is `"virtex.tim"'. For backwards compatibility, the
|
alternative name `timings_fn' is supported for this parameter, but
|
alternative name `timings_fn' is supported for this parameter, but
|
Line 1017... |
Line 1037... |
|
|
Caution: The code for this does not appear to be complete or
|
Caution: The code for this does not appear to be complete or
|
well tested, so users are advised not to use this option.
|
well tested, so users are advised not to use this option.
|
|
|
`hazards = 0|1'
|
`hazards = 0|1'
|
If 1, data hazards are tracked in a superscalar CPU. Default value
|
If 1, data hazards are tracked in a superscalar CPU. Default
|
is 0.
|
value is 0.
|
|
|
In the current simulator, the only functional effect is to cause
|
In the current simulator, the only functional effect is to cause
|
logging of hazard waiting information if the CPU is superscalar.
|
logging of hazard waiting information if the CPU is superscalar.
|
However nowhere in the simulator is this data actually computed,
|
However nowhere in the simulator is this data actually computed,
|
so the net result is probably to have no effect.
|
so the net result is probably to have no effect.
|
Line 1032... |
Line 1052... |
|
|
Caution: The code for this does not appear to be complete or
|
Caution: The code for this does not appear to be complete or
|
well tested, so users are advised not to use this option.
|
well tested, so users are advised not to use this option.
|
|
|
`dependstats = 0|1'
|
`dependstats = 0|1'
|
If 1, inter-instruction dependencies are calculated. Default value
|
If 1, inter-instruction dependencies are calculated. Default
|
0.
|
value 0.
|
|
|
If these values are calculated, the depencies can be displayed
|
If these values are calculated, the depencies can be displayed
|
using the simulator's `stat' command.
|
using the simulator's `stat' command.
|
|
|
Note: This field must be enabled, if execution execution flow
|
Note: This field must be enabled, if execution execution flow
|
Line 1046... |
Line 1066... |
Behavior.).
|
Behavior.).
|
|
|
`sbuf_len = VALUE'
|
`sbuf_len = VALUE'
|
The length of the store buffer is set to VALUE, which must be no
|
The length of the store buffer is set to VALUE, which must be no
|
greater than 256. Larger values will be truncated to 256 with a
|
greater than 256. Larger values will be truncated to 256 with a
|
warning. Negative values will be treated as 0 with a warning. Use
|
warning. Negative values will be treated as 0 with a warning.
|
0 to disable the store buffer.
|
Use 0 to disable the store buffer.
|
|
|
When the store buffer is active, stores are accumulated and
|
When the store buffer is active, stores are accumulated and
|
committed when I/O is idle.
|
committed when I/O is idle.
|
|
|
|
|
Line 1059... |
Line 1079... |
File: or1ksim.info, Node: Memory Configuration, Next: Memory Management Configuration, Prev: CPU Configuration, Up: Core OpenRISC Configuration
|
File: or1ksim.info, Node: Memory Configuration, Next: Memory Management Configuration, Prev: CPU Configuration, Up: Core OpenRISC Configuration
|
|
|
3.3.2 Memory Configuration
|
3.3.2 Memory Configuration
|
--------------------------
|
--------------------------
|
|
|
Memory configuration is described in `section memory'. This section may
|
Memory configuration is described in `section memory'. This section
|
appear multiple times, specifying multiple blocks of memory. The
|
may appear multiple times, specifying multiple blocks of memory. The
|
following parameters may be specified.
|
following parameters may be specified.
|
|
|
`type=random|pattern|unknown|zero'
|
`type=random|pattern|unknown|zero'
|
Specifies the values to which memory should be initialized. The
|
Specifies the values to which memory should be initialized. The
|
default value is `unknown'.
|
default value is `unknown'.
|
Line 1120... |
Line 1140... |
Set the base address of the memory to VALUE. It should be aligned
|
Set the base address of the memory to VALUE. It should be aligned
|
to a multiple of the memory size rounded up to the nearest 2^n.
|
to a multiple of the memory size rounded up to the nearest 2^n.
|
The default value is 0.
|
The default value is 0.
|
|
|
`size = VALUE'
|
`size = VALUE'
|
Set the size of the memory block to be VALUE bytes. This should be
|
Set the size of the memory block to be VALUE bytes. This should
|
a multiple of 4 (i.e. word aligned). The default value is 1024.
|
be a multiple of 4 (i.e. word aligned). The default value is
|
|
1024.
|
|
|
Note: When allocating memory, the simulator will allocate the
|
Note: When allocating memory, the simulator will allocate the
|
nearest 2^n bytes greater than or equal to VALUE, and will not
|
nearest 2^n bytes greater than or equal to VALUE, and will not
|
notice memory misses in any part of the memory between VALUE
|
notice memory misses in any part of the memory between VALUE
|
and the amount allocated.
|
and the amount allocated.
|
Line 1202... |
Line 1223... |
which do not fit these criteria are ignored with a warning. The
|
which do not fit these criteria are ignored with a warning. The
|
default value is 1.
|
default value is 1.
|
|
|
`nways = VALUE'
|
`nways = VALUE'
|
Sets the number of data or instruction (as appropriate) TLB ways to
|
Sets the number of data or instruction (as appropriate) TLB ways to
|
VALUE. The value must be in the range 1 to 4. Values outside this
|
VALUE. The value must be in the range 1 to 4. Values outside
|
range are ignored with a warning. The default value is 1.
|
this range are ignored with a warning. The default value is 1.
|
|
|
`pagesize = VALUE'
|
`pagesize = VALUE'
|
The data or instruction (as appropriate) MMU page size is set to
|
The data or instruction (as appropriate) MMU page size is set to
|
VALUE, which must be a power of 2. Values which are not a power of
|
VALUE, which must be a power of 2. Values which are not a power
|
2 are ignored with a warning. The default is 8192 (0x2000).
|
of 2 are ignored with a warning. The default is 8192 (0x2000).
|
|
|
`entrysize = VALUE'
|
`entrysize = VALUE'
|
The data or instruction (as appropriate) MMU entry size is set to
|
The data or instruction (as appropriate) MMU entry size is set to
|
VALUE, which must be a power of 2. Values which are not a power of
|
VALUE, which must be a power of 2. Values which are not a power
|
2 are ignored with a warning. The default value is 1.
|
of 2 are ignored with a warning. The default value is 1.
|
|
|
Note: Or1ksim does not appear to use the `entrysize' parameter
|
Note: Or1ksim does not appear to use the `entrysize' parameter
|
in its simulation of the MMUs. Thus setting this value does
|
in its simulation of the MMUs. Thus setting this value does
|
not seem to matter.
|
not seem to matter.
|
|
|
Line 1288... |
Line 1309... |
`load_hitdelay = VALUE'
|
`load_hitdelay = VALUE'
|
_Data cache only_. Set the number of cycles a data load cache hit
|
_Data cache only_. Set the number of cycles a data load cache hit
|
costs. Default value 2.
|
costs. Default value 2.
|
|
|
`load_missdelay = VALUE'
|
`load_missdelay = VALUE'
|
_Data cache only_. Set the number of cycles a data load cache miss
|
_Data cache only_. Set the number of cycles a data load cache
|
costs. Default value 2.
|
miss costs. Default value 2.
|
|
|
`store_hitdelay = VALUE'
|
`store_hitdelay = VALUE'
|
_Data cache only_. Set the number of cycles a data store cache hit
|
_Data cache only_. Set the number of cycles a data store cache hit
|
costs. Default value 0.
|
costs. Default value 0.
|
|
|
Line 1312... |
Line 1333... |
`section pic'. This section may appear at most once--Or1ksim has no
|
`section pic'. This section may appear at most once--Or1ksim has no
|
mechanism for handling multiple interrupt controllers. The following
|
mechanism for handling multiple interrupt controllers. The following
|
parameters may be specified.
|
parameters may be specified.
|
|
|
`enabled = 0|1'
|
`enabled = 0|1'
|
If 1 (true), the programmable interrupt controller is enabled. If 0
|
If 1 (true), the programmable interrupt controller is enabled. If
|
(the default), it is disabled.
|
0 (the default), it is disabled.
|
|
|
`edge_trigger = 0|1'
|
`edge_trigger = 0|1'
|
If 1 (true, the default), the programmable interrupt controller is
|
If 1 (true, the default), the programmable interrupt controller is
|
edge triggered. If 0 (false), it is level triggered.
|
edge triggered. If 0 (false), it is level triggered.
|
|
|
Line 1355... |
Line 1376... |
Power management configuration is described in `section pm'. This
|
Power management configuration is described in `section pm'. This
|
section may appear at most once. The following parameter may be
|
section may appear at most once. The following parameter may be
|
specified.
|
specified.
|
|
|
`enabled = 0|1'
|
`enabled = 0|1'
|
If 1 (true), power management is enabled. If 0 (the default), it is
|
If 1 (true), power management is enabled. If 0 (the default), it
|
disabled.
|
is disabled.
|
|
|
|
|
|
|
File: or1ksim.info, Node: Branch Prediction Configuration, Next: Debug Interface Configuration, Prev: Power Management Configuration, Up: Core OpenRISC Configuration
|
File: or1ksim.info, Node: Branch Prediction Configuration, Next: Debug Interface Configuration, Prev: Power Management Configuration, Up: Core OpenRISC Configuration
|
|
|
3.3.7 Branch Prediction Configuration
|
3.3.7 Branch Prediction Configuration
|
-------------------------------------
|
-------------------------------------
|
|
|
From examining the code base, it seems the branch prediction function
|
From examining the code base, it seems the branch prediction function
|
is not fully implemented. At present the functionality seems restricted
|
is not fully implemented. At present the functionality seems
|
to collection of statistics.
|
restricted to collection of statistics.
|
|
|
Branch prediction configuration is described in `section bpb'. This
|
Branch prediction configuration is described in `section bpb'. This
|
section may appear at most once. The following parameters may be
|
section may appear at most once. The following parameters may be
|
specified.
|
specified.
|
|
|
Line 1387... |
Line 1408... |
If 1 (true), use forward prediction for the `l.bf' instruction. If
|
If 1 (true), use forward prediction for the `l.bf' instruction. If
|
0 (the default), do not use forward prediction for this
|
0 (the default), do not use forward prediction for this
|
instruction.
|
instruction.
|
|
|
`sbp_bnf_fwd = 0|1'
|
`sbp_bnf_fwd = 0|1'
|
If 1 (true), use forward prediction for the `l.bnf' instruction. If
|
If 1 (true), use forward prediction for the `l.bnf' instruction.
|
0 (the default), do not use forward prediction for this
|
If 0 (the default), do not use forward prediction for this
|
instruction.
|
instruction.
|
|
|
`hitdelay = VALUE'
|
`hitdelay = VALUE'
|
Set the number of cycles a branch prediction hit costs. Default
|
Set the number of cycles a branch prediction hit costs. Default
|
value 0.
|
value 0.
|
Line 1431... |
Line 1452... |
For more detailed information on the interface to the GNU Debugger
|
For more detailed information on the interface to the GNU Debugger
|
see Embecosm Application Note 2, `Howto: Porting the GNU Debugger
|
see Embecosm Application Note 2, `Howto: Porting the GNU Debugger
|
Practical Experience with the OpenRISC 1000 Architecture', by
|
Practical Experience with the OpenRISC 1000 Architecture', by
|
Jeremy Bennett, published by Embecosm Limited (`www.embecosm.com').
|
Jeremy Bennett, published by Embecosm Limited (`www.embecosm.com').
|
|
|
Note: `rsp_enabled' may not be enabled with `gdb_enabled'
|
Note: `rsp_enabled' may not be enabled with `gdb_enabled' (see
|
(see below). If both are enabled, a warning is issued and
|
below). If both are enabled, a warning is issued and only
|
only the "Remote Serial Protocol" interface is enabled.
|
the "Remote Serial Protocol" interface is enabled.
|
|
|
`rsp_port = VALUE'
|
`rsp_port = VALUE'
|
VALUE specifies the port to be used for the GDB "Remote Serial
|
VALUE specifies the port to be used for the GDB "Remote Serial
|
Protocol" interface to the GNU Debugger (GDB). Default value
|
Protocol" interface to the GNU Debugger (GDB). Default value
|
51000. If the value 0 is specified, Or1ksim will instead look for
|
51000. If the value 0 is specified, Or1ksim will instead look for
|
a TCP/IP service named `or1ksim-rsp'.
|
a TCP/IP service named `or1ksim-rsp'.
|
|
|
Tip: There is no registered port for Or1ksim "Remote Serial
|
Tip: There is no registered port for Or1ksim "Remote Serial
|
Protocol" service `or1ksim-rsp'. Good practice suggests users
|
Protocol" service `or1ksim-rsp'. Good practice suggests
|
should adopt port values in the "Dynamic" or "Private" port
|
users should adopt port values in the "Dynamic" or "Private"
|
range, i.e. 49152-65535.
|
port range, i.e. 49152-65535.
|
|
|
`gdb_enabled = 0|1'
|
`gdb_enabled = 0|1'
|
If 1 (true), the OpenRISC Remote JTAG protocol server is started,
|
If 1 (true), the OpenRISC Remote JTAG protocol server is started,
|
provding an interface to an external GNU debugger, using the port
|
provding an interface to an external GNU debugger, using the port
|
specified in the `server_port' field (see below), or the `or1ksim'
|
specified in the `server_port' field (see below), or the `or1ksim'
|
TCP/IP service. If 0 (the default), the server is not started, and
|
TCP/IP service. If 0 (the default), the server is not started,
|
no external interface is provided.
|
and no external interface is provided.
|
|
|
For more detailed information on the interface to the GNU Debugger
|
For more detailed information on the interface to the GNU Debugger
|
see Embecosm Application Note 2, `Howto: Porting the GNU Debugger
|
see Embecosm Application Note 2, `Howto: Porting the GNU Debugger
|
Practical Experience with the OpenRISC 1000 Architecture', by
|
Practical Experience with the OpenRISC 1000 Architecture', by
|
Jeremy Bennett, published by Embecosm Limited (`www.embecosm.com').
|
Jeremy Bennett, published by Embecosm Limited (`www.embecosm.com').
|
Line 1464... |
Line 1485... |
OpenRISC, and remains only for backward compatibility. New
|
OpenRISC, and remains only for backward compatibility. New
|
users should adopt the standard GDB "Remote Serial Protocol"
|
users should adopt the standard GDB "Remote Serial Protocol"
|
interface (see `rsp_enabled' above) providing access to a
|
interface (see `rsp_enabled' above) providing access to a
|
wider range of GDB functionality.
|
wider range of GDB functionality.
|
|
|
Note: `gdb_enabled' may not be enabled with `rsp_enabled'. If
|
Note: `gdb_enabled' may not be enabled with `rsp_enabled'.
|
both are enabled, a warning is issued and only the "Remote
|
If both are enabled, a warning is issued and only the "Remote
|
Serial Protocol" interface is enabled.
|
Serial Protocol" interface is enabled.
|
|
|
`server_port = VALUE'
|
`server_port = VALUE'
|
VALUE specifies the port to be used for the OpenRISC Rmote JTAG
|
VALUE specifies the port to be used for the OpenRISC Rmote JTAG
|
protocol interface to the GNU Debugger (GDB). Default value 51000.
|
protocol interface to the GNU Debugger (GDB). Default value
|
If the value 0 is specified, Or1ksim will instead look for a TCP/IP
|
51000. If the value 0 is specified, Or1ksim will instead look for
|
service named `or1ksim'.
|
a TCP/IP service named `or1ksim'.
|
|
|
Tip: There is no registered port for Or1ksim Remote JTAG
|
Tip: There is no registered port for Or1ksim Remote JTAG
|
Interface or service `or1ksim'. Good practice suggests users
|
Interface or service `or1ksim'. Good practice suggests users
|
should adopt port values in the "Dynamic" or "Private" port
|
should adopt port values in the "Dynamic" or "Private" port
|
range, i.e. 49152-65535.
|
range, i.e. 49152-65535.
|
Line 1521... |
Line 1542... |
-------------------------------------
|
-------------------------------------
|
|
|
The memory controller used in Or1ksim is the component implemented at
|
The memory controller used in Or1ksim is the component implemented at
|
OpenCores, and found in the top level CVS directory, `mem_ctrl'. It is
|
OpenCores, and found in the top level CVS directory, `mem_ctrl'. It is
|
described in the document `Memory Controller IP Core' by Rudolf
|
described in the document `Memory Controller IP Core' by Rudolf
|
Usselmann, which can be found in the `doc' subdirectory. It is a memory
|
Usselmann, which can be found in the `doc' subdirectory. It is a
|
mapped component, which resides on the main OpenRISC Wishbone data bus.
|
memory mapped component, which resides on the main OpenRISC Wishbone
|
|
data bus.
|
|
|
The memory controller configuration is described in `section mc'. This
|
The memory controller configuration is described in `section mc'. This
|
section may appear multiple times, specifying multiple memory
|
section may appear multiple times, specifying multiple memory
|
controllers. The following parameters may be specified.
|
controllers. The following parameters may be specified.
|
|
|
`enabled = 0|1'
|
`enabled = 0|1'
|
If 1 (true, the default), this memory controller is enabled. If 0,
|
If 1 (true, the default), this memory controller is enabled. If
|
it is disabled.
|
0, it is disabled.
|
|
|
Note: The memory controller can effectively also be disabled
|
Note: The memory controller can effectively also be disabled
|
by setting an appropriate power on control register value
|
by setting an appropriate power on control register value
|
(see below). However this should only be used if it is
|
(see below). However this should only be used if it is
|
desired to specifically model this behavior of the memory
|
desired to specifically model this behavior of the memory
|
Line 1612... |
Line 1634... |
required).
|
required).
|
|
|
`channel="xterm:ARGS"'
|
`channel="xterm:ARGS"'
|
Create an xterm on startup, write UART Tx traffic to the
|
Create an xterm on startup, write UART Tx traffic to the
|
xterm and take Rx traffic from the keyboard when the xterm
|
xterm and take Rx traffic from the keyboard when the xterm
|
window is selected. Additional arguments to the xterm command
|
window is selected. Additional arguments to the xterm
|
(for example specifying window size may be specified in ARGS,
|
command (for example specifying window size may be specified
|
or this may be left blank.
|
in ARGS, or this may be left blank.
|
|
|
`channel="tcp:VALUE"'
|
`channel="tcp:VALUE"'
|
Open the TCP/IP port specified by VALUE and read and write
|
Open the TCP/IP port specified by VALUE and read and write
|
UART traffic from and to it.
|
UART traffic from and to it.
|
|
|
Line 1672... |
Line 1694... |
-----------------------
|
-----------------------
|
|
|
The DMA controller used in Or1ksim is the component implemented at
|
The DMA controller used in Or1ksim is the component implemented at
|
OpenCores, and found in the top level CVS directory, `wb_dma'. It is
|
OpenCores, and found in the top level CVS directory, `wb_dma'. It is
|
described in the document `Wishbone DMA/Bridge IP Core' by Rudolf
|
described in the document `Wishbone DMA/Bridge IP Core' by Rudolf
|
Usselmann, which can be found in the `doc' subdirectory. It is a memory
|
Usselmann, which can be found in the `doc' subdirectory. It is a
|
mapped component, which resides on the main OpenRISC Wishbone data bus.
|
memory mapped component, which resides on the main OpenRISC Wishbone
|
The present implementation is incomplete, intended only to support the
|
data bus. The present implementation is incomplete, intended only to
|
Ethernet interface (*note Ethernet Configuration::), although the
|
support the Ethernet interface (*note Ethernet Configuration::),
|
Ethernet interface is not yet completed.
|
although the Ethernet interface is not yet completed.
|
|
|
DMA configuration is described in `section dma'. This section may
|
DMA configuration is described in `section dma'. This section may
|
appear multiple times, specifying multiple DMA controllers. The
|
appear multiple times, specifying multiple DMA controllers. The
|
following parameters may be specified.
|
following parameters may be specified.
|
|
|
`enabled = 0|1'
|
`enabled = 0|1'
|
If 1 (true, the default), this DMA controller is enabled. If 0, it
|
If 1 (true, the default), this DMA controller is enabled. If 0,
|
is disabled.
|
it is disabled.
|
|
|
`baseaddr = VALUE'
|
`baseaddr = VALUE'
|
Set the base address of the DMA's memory mapped registers to
|
Set the base address of the DMA's memory mapped registers to
|
VALUE. The default is 0, which is probably not a sensible value.
|
VALUE. The default is 0, which is probably not a sensible value.
|
|
|
The DMA controller has a 10 bit address bus, with a total of 253
|
The DMA controller has a 10 bit address bus, with a total of 253
|
32-bit registers. The first 5 registers at addresses 0x000 through
|
32-bit registers. The first 5 registers at addresses 0x000 through
|
0x010 control the overall behavior of the DMA controller. There are
|
0x010 control the overall behavior of the DMA controller. There
|
then 31 blocks of 8 registers, controlling each of the 31 DMA
|
are then 31 blocks of 8 registers, controlling each of the 31 DMA
|
channels available. Addresses 0x014 through 0x01c are not used.
|
channels available. Addresses 0x014 through 0x01c are not used.
|
|
|
`irq = VALUE'
|
`irq = VALUE'
|
Use VALUE as the IRQ number of this DMA controller. Default value
|
Use VALUE as the IRQ number of this DMA controller. Default value
|
0.
|
0.
|
Line 1717... |
Line 1739... |
|
|
The Ethernet MAC used in Or1ksim is the component implemented at
|
The Ethernet MAC used in Or1ksim is the component implemented at
|
OpenCores, and found in the top level CVS directory, `ethernet'. It
|
OpenCores, and found in the top level CVS directory, `ethernet'. It
|
also forms part of the OpenRISC SoC, ORPSoC. It is described in the
|
also forms part of the OpenRISC SoC, ORPSoC. It is described in the
|
document `Ethernet IP Core Specification' by Igor Mohor, which can be
|
document `Ethernet IP Core Specification' by Igor Mohor, which can be
|
found in the `doc' subdirectory. It is a memory mapped component, which
|
found in the `doc' subdirectory. It is a memory mapped component,
|
resides on the main OpenRISC Wishbone data bus.
|
which resides on the main OpenRISC Wishbone data bus.
|
|
|
Ethernet configuration is described in `section ethernet'. This section
|
Ethernet configuration is described in `section ethernet'. This
|
may appear multiple times, specifying multiple Ethernet interfaces. The
|
section may appear multiple times, specifying multiple Ethernet
|
following parameters may be specified.
|
interfaces. The following parameters may be specified.
|
|
|
`enabled = 0|1'
|
`enabled = 0|1'
|
If 1 (true, the default), this Ethernet MAC is enabled. If 0, it is
|
If 1 (true, the default), this Ethernet MAC is enabled. If 0, it
|
disabled.
|
is disabled.
|
|
|
`baseaddr = VALUE'
|
`baseaddr = VALUE'
|
Set the base address of the MAC's memory mapped registers to
|
Set the base address of the MAC's memory mapped registers to
|
VALUE. The default is 0, which is probably not a sensible value.
|
VALUE. The default is 0, which is probably not a sensible value.
|
|
|
The Ethernet MAC has a 7-bit address bus, with a total of 21
|
The Ethernet MAC has a 7-bit address bus, with a total of 21
|
32-bit registers. Addresses 0x54 through 0x7c are not used.
|
32-bit registers. Addresses 0x54 through 0x7c are not used.
|
|
|
Note: The Ethernet specification describes a Tx control
|
Note: The Ethernet specification describes a Tx control
|
register, `TXCTRL', at address 0x50. However this register is
|
register, `TXCTRL', at address 0x50. However this register
|
not implemented in the Or1ksim model.
|
is not implemented in the Or1ksim model.
|
|
|
`dma = VALUE'
|
`dma = VALUE'
|
VALUE specifies the DMA controller with which this Ethernet is
|
VALUE specifies the DMA controller with which this Ethernet is
|
associated. The default value is 0.
|
associated. The default value is 0.
|
|
|
Line 1754... |
Line 1776... |
`irq = VALUE'
|
`irq = VALUE'
|
Use VALUE as the IRQ number of this Ethernet MAC. Default value 0.
|
Use VALUE as the IRQ number of this Ethernet MAC. Default value 0.
|
|
|
`rtx_type = 0|1'
|
`rtx_type = 0|1'
|
If 1 (true) use a socket interface to the Ethernet (see parameter
|
If 1 (true) use a socket interface to the Ethernet (see parameter
|
`sockif' below). If 0 (the default), use a file interface, reading
|
`sockif' below). If 0 (the default), use a file interface,
|
and writing from and to the files specified in the `rxfile' and
|
reading and writing from and to the files specified in the
|
`txfile' parameters (see below).
|
`rxfile' and `txfile' parameters (see below).
|
|
|
Note: By default the socket interface is not provided in
|
Note: By default the socket interface is not provided in
|
Or1ksim. If it is required, this must be requested when
|
Or1ksim. If it is required, this must be requested when
|
configuring, by use of the `--enable-ethphy' option to
|
configuring, by use of the `--enable-ethphy' option to
|
`configure'.
|
`configure'.
|
Line 1780... |
Line 1802... |
`txfile = "TXFILE"'
|
`txfile = "TXFILE"'
|
When `rtx_type' is 0 (see above), RXFILE specifies the file to use
|
When `rtx_type' is 0 (see above), RXFILE specifies the file to use
|
as input and TXFILE specifies the fie to use as output.
|
as input and TXFILE specifies the fie to use as output.
|
|
|
The file contains a sequence of packets. Each packet consists of a
|
The file contains a sequence of packets. Each packet consists of a
|
packet length (32 bits), followed by that many bytes of data. Once
|
packet length (32 bits), followed by that many bytes of data.
|
the input file is empty, the Ethernet MAC behaves as though there
|
Once the input file is empty, the Ethernet MAC behaves as though
|
were no data on the Ethernet. The default values of these
|
there were no data on the Ethernet. The default values of these
|
parameters are `"eth_rx"' and `"eth_tx"' respectively.
|
parameters are `"eth_rx"' and `"eth_tx"' respectively.
|
|
|
The input file must exist and be readable. The output file must be
|
The input file must exist and be readable. The output file must be
|
writable and will be created if necessary. If either of these
|
writable and will be created if necessary. If either of these
|
conditions is not met, a warning will be given.
|
conditions is not met, a warning will be given.
|
Line 1852... |
Line 1874... |
Or1ksim models a VGA interface to an external monitor. The VGA
|
Or1ksim models a VGA interface to an external monitor. The VGA
|
controller used in Or1ksim is the component implemented at OpenCores,
|
controller used in Or1ksim is the component implemented at OpenCores,
|
and found in the top level CVS directory, `vga_lcd', with no support
|
and found in the top level CVS directory, `vga_lcd', with no support
|
for the optional hardware cursors. It is described in the document
|
for the optional hardware cursors. It is described in the document
|
`VGA/LCD Core v2.0 Specifications' by Richard Herveille, which can be
|
`VGA/LCD Core v2.0 Specifications' by Richard Herveille, which can be
|
found in the `doc' subdirectory. It is a memory mapped component, which
|
found in the `doc' subdirectory. It is a memory mapped component,
|
resides on the main OpenRISC Wishbone data bus.
|
which resides on the main OpenRISC Wishbone data bus.
|
|
|
The current implementation provides only functionality to dump the
|
The current implementation provides only functionality to dump the
|
screen to a file at intervals.
|
screen to a file at intervals.
|
|
|
VGA controller configuration is described in `section vga'. This
|
VGA controller configuration is described in `section vga'. This
|
Line 1917... |
Line 1939... |
If 1 (true, the default), this frame buffer is enabled. If 0, it
|
If 1 (true, the default), this frame buffer is enabled. If 0, it
|
is disabled.
|
is disabled.
|
|
|
`baseaddr = VALUE'
|
`baseaddr = VALUE'
|
Set the base address of the frame buffer's memory mapped registers
|
Set the base address of the frame buffer's memory mapped registers
|
to VALUE. The default is 0, which is probably not a sensible value.
|
to VALUE. The default is 0, which is probably not a sensible
|
|
value.
|
|
|
The frame buffer has an 121-bit address bus, with 4 32-bit
|
The frame buffer has an 121-bit address bus, with 4 32-bit
|
registers, at addresses 0x000 through 0x00c, and a PAL lookup
|
registers, at addresses 0x000 through 0x00c, and a PAL lookup
|
table at addresses 0x400 through 0x4ff. Addresses 0x010 through
|
table at addresses 0x400 through 0x4ff. Addresses 0x010 through
|
0x3fc and addresses 0x500 through 0x7ff are not used.
|
0x3fc and addresses 0x500 through 0x7ff are not used.
|
Line 1955... |
Line 1978... |
|
|
The implementation only provides for keyboard support, which is
|
The implementation only provides for keyboard support, which is
|
modelled as a file of keystrokes. There is no mouse support.
|
modelled as a file of keystrokes. There is no mouse support.
|
|
|
Caution: A standard i8042 device has two registers at addresses
|
Caution: A standard i8042 device has two registers at addresses
|
0x60 (command) and 0x64 (status). Inspection of the code, suggests
|
0x60 (command) and 0x64 (status). Inspection of the code,
|
that the Or1ksim component places these registers at addresses
|
suggests that the Or1ksim component places these registers at
|
0x00 and 0x04.
|
addresses 0x00 and 0x04.
|
|
|
The port of Linux for the OpenRISC 1000, which runs on Or1ksim
|
The port of Linux for the OpenRISC 1000, which runs on Or1ksim
|
implements the i8042 device driver, anticipating these registers
|
implements the i8042 device driver, anticipating these registers
|
reside at their conventional address. It seems unlikel that this
|
reside at their conventional address. It seems unlikel that this
|
code will work.
|
code will work.
|
Line 2005... |
Line 2028... |
|
|
The ATA/ATAPI disc controller used in Or1ksim is the OCIDEC (OpenCores
|
The ATA/ATAPI disc controller used in Or1ksim is the OCIDEC (OpenCores
|
IDE Controller) component implemented at OpenCores, and found in the
|
IDE Controller) component implemented at OpenCores, and found in the
|
top level CVS directory, `ata'. It is described in the document
|
top level CVS directory, `ata'. It is described in the document
|
`ATA/ATAPI-5 Core Specification' by Richard Herveille, which can be
|
`ATA/ATAPI-5 Core Specification' by Richard Herveille, which can be
|
found in the `doc' subdirectory. It is a memory mapped component, which
|
found in the `doc' subdirectory. It is a memory mapped component,
|
resides on the main OpenRISC Wishbone data bus.
|
which resides on the main OpenRISC Wishbone data bus.
|
|
|
ATA/ATAPI configuration is described in `section ata'. This section may
|
ATA/ATAPI configuration is described in `section ata'. This section
|
appear multiple times, specifying multiple disc controllers. The
|
may appear multiple times, specifying multiple disc controllers. The
|
following parameters may be specified.
|
following parameters may be specified.
|
|
|
`enabled = 0|1'
|
`enabled = 0|1'
|
If 1 (true, the default), this ATA/ATAPI interface is enabled. If
|
If 1 (true, the default), this ATA/ATAPI interface is enabled. If
|
0, it is disabled.
|
0, it is disabled.
|
Line 2022... |
Line 2045... |
Set the base address of the ATA/ATAPI interface's memory mapped
|
Set the base address of the ATA/ATAPI interface's memory mapped
|
registers to VALUE. The default is 0, which is probably not a
|
registers to VALUE. The default is 0, which is probably not a
|
sensible value.
|
sensible value.
|
|
|
The ATA/ATAPI PS/2 interface has an 5-bit address bus, with 8
|
The ATA/ATAPI PS/2 interface has an 5-bit address bus, with 8
|
32-bit registers. Depending on the version of the OCIDEC ATA/ATAPI
|
32-bit registers. Depending on the version of the OCIDEC
|
interface selected (see `dev_id' below), not all registers will be
|
ATA/ATAPI interface selected (see `dev_id' below), not all
|
available.
|
registers will be available.
|
|
|
`irq = VALUE'
|
`irq = VALUE'
|
Use VALUE as the IRQ number of this ATA/ATAPI interface. Default
|
Use VALUE as the IRQ number of this ATA/ATAPI interface. Default
|
value 0.
|
value 0.
|
|
|
Line 2069... |
Line 2092... |
`dma_mode0_td = VALUE'
|
`dma_mode0_td = VALUE'
|
`dma_mode0_teoc = VALUE'
|
`dma_mode0_teoc = VALUE'
|
These parameters specify the timings for use with DMA transfers.
|
These parameters specify the timings for use with DMA transfers.
|
They are specified as the number of clock cycles - 2, rounded up
|
They are specified as the number of clock cycles - 2, rounded up
|
to the next highest integer, or zero if that would be negative.
|
to the next highest integer, or zero if that would be negative.
|
The values should not exceed 255. If they do, they will be ignored
|
The values should not exceed 255. If they do, they will be
|
with a warning.
|
ignored with a warning.
|
|
|
See the ATA/ATAPI-5 specification for explanations of each of these
|
See the ATA/ATAPI-5 specification for explanations of each of these
|
timing parameters. The default values are:
|
timing parameters. The default values are:
|
|
|
dma_mode0_tm = 4
|
dma_mode0_tm = 4
|
Line 2088... |
Line 2111... |
Within the `section ata', each device is specified separately. The
|
Within the `section ata', each device is specified separately. The
|
device subsection is introduced by
|
device subsection is introduced by
|
|
|
device VALUE
|
device VALUE
|
|
|
VALUE is the device number, which should be 0 or 1. The subsection ends
|
VALUE is the device number, which should be 0 or 1. The subsection
|
with `enddevice'. Note that if the same device number is specified more
|
ends with `enddevice'. Note that if the same device number is
|
than once, the previous values will be overwritten. Within the `device'
|
specified more than once, the previous values will be overwritten.
|
subsection, the following parameters may appear:
|
Within the `device' subsection, the following parameters may appear:
|
|
|
`type = VALUE'
|
`type = VALUE'
|
VALUEspecifies the type of device: 0 (the default) for "not
|
VALUEspecifies the type of device: 0 (the default) for "not
|
connected", 1 for hard disk simulated in a file and 2 for local
|
connected", 1 for hard disk simulated in a file and 2 for local
|
system hard disk.
|
system hard disk.
|
Line 2216... |
Line 2239... |
|
|
`pr REG VALUE'
|
`pr REG VALUE'
|
Patch register REG with VALUE.
|
Patch register REG with VALUE.
|
|
|
`dm FROMADDR [ TOADDR ]'
|
`dm FROMADDR [ TOADDR ]'
|
Display memory bytes between FROMADDR and TOADDR. If TOADDR is not
|
Display memory bytes between FROMADDR and TOADDR. If TOADDR is
|
given, 64 bytes are displayed, starting at FROMADDR.
|
not given, 64 bytes are displayed, starting at FROMADDR.
|
|
|
Caution: The output from this command is broken (a bug).
|
Caution: The output from this command is broken (a bug).
|
Or1ksim attempts to print out 16 bytes per row. However,
|
Or1ksim attempts to print out 16 bytes per row. However,
|
instead of printing out the address at the start of each row,
|
instead of printing out the address at the start of each row,
|
it prints the address (of the first of the 16 bytes) before
|
it prints the address (of the first of the 16 bytes) before
|
Line 2248... |
Line 2271... |
|
|
`breaks'
|
`breaks'
|
List all set breakpoints
|
List all set breakpoints
|
|
|
`reset'
|
`reset'
|
Reset the simulator. Includes modeling a reset of the processor, so
|
Reset the simulator. Includes modeling a reset of the processor,
|
execution will restart from the reset vector location, 0x100.
|
so execution will restart from the reset vector location, 0x100.
|
|
|
`hist'
|
`hist'
|
If saving the execution history has been configured (*note
|
If saving the execution history has been configured (*note
|
Simulator Behavior: Simulator Behavior.), display the execution
|
Simulator Behavior: Simulator Behavior.), display the execution
|
history.
|
history.
|
Line 2263... |
Line 2286... |
When stalled, the processor can execute no instructions. This
|
When stalled, the processor can execute no instructions. This
|
command is useful when debugging the JTAG interface, used by
|
command is useful when debugging the JTAG interface, used by
|
debuggers such as GDB.
|
debuggers such as GDB.
|
|
|
`unstall'
|
`unstall'
|
Unstall the processor, so that normal execution can continue. This
|
Unstall the processor, so that normal execution can continue.
|
command is useful when debugging the JTAG interface, used by
|
This command is useful when debugging the JTAG interface, used by
|
debuggers such as GDB.
|
debuggers such as GDB.
|
|
|
`stats CATEGORY | clear'
|
`stats CATEGORY | clear'
|
Print the statistics for the given CATEGORY, if available, or
|
Print the statistics for the given CATEGORY, if available, or
|
clear if `clear' is specified. The categories are:
|
clear if `clear' is specified. The categories are:
|
Line 2363... |
Line 2386... |
Run the memory profiling utility. This follows the same usage as
|
Run the memory profiling utility. This follows the same usage as
|
the standalone command (*note Memory Profiling Utility: Memory
|
the standalone command (*note Memory Profiling Utility: Memory
|
Profiling Utility.).
|
Profiling Utility.).
|
|
|
`profile [-vhcq] [-g FILE]'
|
`profile [-vhcq] [-g FILE]'
|
Run the instruction profiling utility. This follows the same usage
|
Run the instruction profiling utility. This follows the same
|
as the standalone command (*note Profiling Utility: Profiling
|
usage as the standalone command (*note Profiling Utility:
|
Utility.).
|
Profiling Utility.).
|
|
|
|
|
For all commands, it is possible to redirect the output to a file, by
|
For all commands, it is possible to redirect the output to a file, by
|
using the redirection operator, `>'.
|
using the redirection operator, `>'.
|
|
|
Line 2388... |
Line 2411... |
|
|
5 Verification API (VAPI)
|
5 Verification API (VAPI)
|
*************************
|
*************************
|
|
|
The Verification API (VAPI) provides a TCP/IP interface to allow
|
The Verification API (VAPI) provides a TCP/IP interface to allow
|
components of the simulation to be controlled externally. The interface
|
components of the simulation to be controlled externally. The
|
is polled for new requests on each simulated clock cycle. Components
|
interface is polled for new requests on each simulated clock cycle.
|
within the simulator may send responses to such requests.
|
Components within the simulator may send responses to such requests.
|
|
|
The inteface is an asynchronous duplex protocol. On the request side it
|
The inteface is an asynchronous duplex protocol. On the request side
|
provides for simple commands, known as VAPI IDs (a 32 bit integer),
|
it provides for simple commands, known as VAPI IDs (a 32 bit integer),
|
with a single piece of data (also a 32 bit integer). On the send side,
|
with a single piece of data (also a 32 bit integer). On the send side,
|
it provides for sending a single VAPI ID and data. However there is no
|
it provides for sending a single VAPI ID and data. However there is no
|
explicit command-response structure. Some components just accept
|
explicit command-response structure. Some components just accept
|
requests (e.g. to set values), some just generate sends (to report
|
requests (e.g. to set values), some just generate sends (to report
|
values), and some do both.
|
values), and some do both.
|
Line 2448... |
Line 2471... |
The UART skew is set from the least significant 16 bits of
|
The UART skew is set from the least significant 16 bits of
|
the data
|
the data
|
|
|
`0x04'
|
`0x04'
|
If the 16th most significant bit of the data is 1, start
|
If the 16th most significant bit of the data is 1, start
|
sending breaks, otherwise stop sending breaks. The breaks are
|
sending breaks, otherwise stop sending breaks. The breaks
|
sent or cleared after the number of UART clock divider ticks
|
are sent or cleared after the number of UART clock divider
|
specified by the data (immediately if the data is zero).
|
ticks specified by the data (immediately if the data is zero).
|
|
|
|
|
DMA
|
DMA
|
Although the DMA unit supports a base VAPI ID in its configuration
|
Although the DMA unit supports a base VAPI ID in its configuration
|
(`section dma'), no VAPI data is sent, nor VAPI requests currently
|
(`section dma'), no VAPI data is sent, nor VAPI requests currently
|
Line 2607... |
Line 2630... |
addresses (`oraddr_t'), unsigned register values (`uorreg_t')
|
addresses (`oraddr_t'), unsigned register values (`uorreg_t')
|
and signed register (`orreg_t') values.
|
and signed register (`orreg_t') values.
|
|
|
|
|
Where new types are defined, they should appear in one of these two
|
Where new types are defined, they should appear in one of these two
|
files as appropriate. Or1ksim specific types appearing in `arch.h'
|
files as appropriate. Or1ksim specific types appearing in
|
should always have the suffix `_h'.
|
`arch.h' should always have the suffix `_h'.
|
|
|
_Don't begin names with underscore_
|
_Don't begin names with underscore_
|
Names beginning with `_' are intended to be part of the C
|
Names beginning with `_' are intended to be part of the C
|
infrastructure. They should not be used in the simulator code.
|
infrastructure. They should not be used in the simulator code.
|
|
|
Line 2625... |
Line 2648... |
_Use of `inline'_
|
_Use of `inline'_
|
Code should not be declared `inline'. Modern compilers can work
|
Code should not be declared `inline'. Modern compilers can work
|
out for themselves what is best in this respect.
|
out for themselves what is best in this respect.
|
|
|
_Initialization_
|
_Initialization_
|
All data structures should be explicitly initialized. In particular
|
All data structures should be explicitly initialized. In
|
code should not rely on static data structures being initialized to
|
particular code should not rely on static data structures being
|
zero.
|
initialized to zero.
|
|
|
The rationale is that in future static data structures may become
|
The rationale is that in future static data structures may become
|
dynamic. This has been a particular source of bugs in Or1ksim
|
dynamic. This has been a particular source of bugs in Or1ksim
|
historically.
|
historically.
|
|
|
Line 2694... |
Line 2717... |
`config.sim'.
|
`config.sim'.
|
|
|
`config'
|
`config'
|
This is a linked list of data structures holding configuration data
|
This is a linked list of data structures holding configuration data
|
for all sections which are not held in the main `config' data
|
for all sections which are not held in the main `config' data
|
structure. In general these are components (such as peripherals and
|
structure. In general these are components (such as peripherals
|
memory) which may occur multiple times. However it also handles
|
and memory) which may occur multiple times. However it also
|
some architectural components which may occur only once, such as
|
handles some architectural components which may occur only once,
|
the memory management units, the instruction cache, the interrupt
|
such as the memory management units, the instruction cache, the
|
controller and branch prediction.
|
interrupt controller and branch prediction.
|
|
|
`runtime'
|
`runtime'
|
The global variable `runtime' of type `struct runtime' holds all
|
The global variable `runtime' of type `struct runtime' holds all
|
the runtime information about the simulation. To access this
|
the runtime information about the simulation. To access this
|
variable, `sim-config.h' must be included.
|
variable, `sim-config.h' must be included.
|
Line 2737... |
Line 2760... |
|
|
6.4 Internal Debugging
|
6.4 Internal Debugging
|
======================
|
======================
|
|
|
The function `debug' is like `printf', but with an extra first
|
The function `debug' is like `printf', but with an extra first
|
argument, which is the debug level. If the debug level specified in the
|
argument, which is the debug level. If the debug level specified in
|
simulator configuration (*note Simulator Behavior: Simulator Behavior.)
|
the simulator configuration (*note Simulator Behavior: Simulator
|
is greater than or equal to this value, the remaining arguments are
|
Behavior.) is greater than or equal to this value, the remaining
|
printed to the current output stream (*note Output Redirection: Output
|
arguments are printed to the current output stream (*note Output
|
Redirection.).
|
Redirection: Output Redirection.).
|
|
|
|
|
File: or1ksim.info, Node: GNU Free Documentation License, Next: Index, Prev: Code Internals, Up: Top
|
File: or1ksim.info, Node: GNU Free Documentation License, Next: Index, Prev: Code Internals, Up: Top
|
|
|
7 GNU Free Documentation License
|
7 GNU Free Documentation License
|
Line 3187... |
Line 3210... |
* Menu:
|
* Menu:
|
|
|
* --cumulative: Profiling Utility. (line 26)
|
* --cumulative: Profiling Utility. (line 26)
|
* --debug-config: Standalone Simulator.
|
* --debug-config: Standalone Simulator.
|
(line 48)
|
(line 48)
|
|
* --disable-all-tests: Configuring the Build.
|
|
(line 128)
|
* --disable-arith-flag: Configuring the Build.
|
* --disable-arith-flag: Configuring the Build.
|
(line 93)
|
(line 93)
|
* --disable-debug: Configuring the Build.
|
* --disable-debug: Configuring the Build.
|
(line 121)
|
(line 121)
|
* --disable-ethphy: Configuring the Build.
|
* --disable-ethphy: Configuring the Build.
|
Line 3199... |
Line 3224... |
(line 70)
|
(line 70)
|
* --disable-profiling: Configuring the Build.
|
* --disable-profiling: Configuring the Build.
|
(line 25)
|
(line 25)
|
* --disable-range-stats: Configuring the Build.
|
* --disable-range-stats: Configuring the Build.
|
(line 64)
|
(line 64)
|
|
* --enable-all-tests: Configuring the Build.
|
|
(line 127)
|
* --enable-arith-flag: Configuring the Build.
|
* --enable-arith-flag: Configuring the Build.
|
(line 92)
|
(line 92)
|
* --enable-debug: Configuring the Build.
|
* --enable-debug: Configuring the Build.
|
(line 120)
|
(line 120)
|
* --enable-ethphy: Configuring the Build.
|
* --enable-ethphy: Configuring the Build.
|
Line 3281... |
Line 3308... |
* 0x03 UART VAPI sub-command (UART verification): Verification API.
|
* 0x03 UART VAPI sub-command (UART verification): Verification API.
|
(line 62)
|
(line 62)
|
* 0x04 UART VAPI sub-command (UART verification): Verification API.
|
* 0x04 UART VAPI sub-command (UART verification): Verification API.
|
(line 66)
|
(line 66)
|
* 16550 (UART configuration): UART Configuration. (line 73)
|
* 16550 (UART configuration): UART Configuration. (line 73)
|
|
* all tests enabled: Configuring the Build.
|
|
(line 128)
|
* Argtable2 debugging: Configuring the Build.
|
* Argtable2 debugging: Configuring the Build.
|
(line 121)
|
(line 121)
|
* ATA/ATAPI configuration: Disc Interface Configuration.
|
* ATA/ATAPI configuration: Disc Interface Configuration.
|
(line 6)
|
(line 6)
|
* ATA/ATAPI device configuration: Disc Interface Configuration.
|
* ATA/ATAPI device configuration: Disc Interface Configuration.
|
Line 3304... |
Line 3333... |
* baseaddr (keyboard configuration): Keyboard Configuration.
|
* baseaddr (keyboard configuration): Keyboard Configuration.
|
(line 36)
|
(line 36)
|
* baseaddr (memory configuration): Memory Configuration.
|
* baseaddr (memory configuration): Memory Configuration.
|
(line 62)
|
(line 62)
|
* baseaddr (memory controller configuration): Memory Controller Configuration.
|
* baseaddr (memory controller configuration): Memory Controller Configuration.
|
(line 28)
|
(line 29)
|
* baseaddr (UART configuration): UART Configuration. (line 22)
|
* baseaddr (UART configuration): UART Configuration. (line 22)
|
* baseaddr (VGA configuration): Display Interface Configuration.
|
* baseaddr (VGA configuration): Display Interface Configuration.
|
(line 26)
|
(line 26)
|
* blocksize (cache configuration): Cache Configuration. (line 29)
|
* blocksize (cache configuration): Cache Configuration. (line 29)
|
* BPB configuration: Branch Prediction Configuration.
|
* BPB configuration: Branch Prediction Configuration.
|
Line 3328... |
Line 3357... |
* byte_enabled (generic peripheral configuration): Generic Peripheral Configuration.
|
* byte_enabled (generic peripheral configuration): Generic Peripheral Configuration.
|
(line 48)
|
(line 48)
|
* cache configuration: Cache Configuration. (line 6)
|
* cache configuration: Cache Configuration. (line 6)
|
* calling_convention (CUC configuration): CUC Configuration. (line 34)
|
* calling_convention (CUC configuration): CUC Configuration. (line 34)
|
* ce (memory configuration): Memory Configuration.
|
* ce (memory configuration): Memory Configuration.
|
(line 91)
|
(line 92)
|
* cfgr (CPU configuration): CPU Configuration. (line 47)
|
* cfgr (CPU configuration): CPU Configuration. (line 47)
|
* channel (UART configuration): UART Configuration. (line 29)
|
* channel (UART configuration): UART Configuration. (line 29)
|
* clear breakpoint (Interactive CLI): Interactive Command Line.
|
* clear breakpoint (Interactive CLI): Interactive Command Line.
|
(line 57)
|
(line 57)
|
* clkcycle (simulator configuration): Simulator Behavior. (line 102)
|
* clkcycle (simulator configuration): Simulator Behavior. (line 103)
|
* cm (Interactive CLI): Interactive Command Line.
|
* cm (Interactive CLI): Interactive Command Line.
|
(line 54)
|
(line 54)
|
* command line for Or1ksim standalone use: Standalone Simulator.
|
* command line for Or1ksim standalone use: Standalone Simulator.
|
(line 6)
|
(line 6)
|
* complex model: Configuring the Build.
|
* complex model: Configuring the Build.
|
Line 3437... |
Line 3466... |
(line 6)
|
(line 6)
|
* Debug Unit verification (VAPI): Verification API. (line 34)
|
* Debug Unit verification (VAPI): Verification API. (line 34)
|
* debugging enabled (Argtable2): Configuring the Build.
|
* debugging enabled (Argtable2): Configuring the Build.
|
(line 121)
|
(line 121)
|
* delayr (memory configuration): Memory Configuration.
|
* delayr (memory configuration): Memory Configuration.
|
(line 109)
|
(line 110)
|
* delayw (memory configuration): Memory Configuration.
|
* delayw (memory configuration): Memory Configuration.
|
(line 115)
|
(line 116)
|
* dependstats (CPU configuration): CPU Configuration. (line 84)
|
* dependstats (CPU configuration): CPU Configuration. (line 84)
|
* dev_id (ATA/ATAPI configuration): Disc Interface Configuration.
|
* dev_id (ATA/ATAPI configuration): Disc Interface Configuration.
|
(line 36)
|
(line 36)
|
* disassemble (Interactive CLI): Interactive Command Line.
|
* disassemble (Interactive CLI): Interactive Command Line.
|
(line 41)
|
(line 41)
|
Line 3504... |
Line 3533... |
* enabled (interrupt controller): Interrupt Configuration.
|
* enabled (interrupt controller): Interrupt Configuration.
|
(line 12)
|
(line 12)
|
* enabled (keyboard configuration): Keyboard Configuration.
|
* enabled (keyboard configuration): Keyboard Configuration.
|
(line 32)
|
(line 32)
|
* enabled (memory controller configuration): Memory Controller Configuration.
|
* enabled (memory controller configuration): Memory Controller Configuration.
|
(line 17)
|
(line 18)
|
* enabled (MMU configuration): Memory Management Configuration.
|
* enabled (MMU configuration): Memory Management Configuration.
|
(line 12)
|
(line 12)
|
* enabled (power management configuration): Power Management Configuration.
|
* enabled (power management configuration): Power Management Configuration.
|
(line 35)
|
(line 35)
|
* enabled (UART configuration): UART Configuration. (line 18)
|
* enabled (UART configuration): UART Configuration. (line 18)
|
Line 3525... |
Line 3554... |
* Ethernet configuration: Ethernet Configuration.
|
* Ethernet configuration: Ethernet Configuration.
|
(line 6)
|
(line 6)
|
* Ethernet verification (VAPI): Verification API. (line 78)
|
* Ethernet verification (VAPI): Verification API. (line 78)
|
* Ethernet via socket, enabling: Configuring the Build.
|
* Ethernet via socket, enabling: Configuring the Build.
|
(line 54)
|
(line 54)
|
* exe_log (simulator configuration): Simulator Behavior. (line 48)
|
* exe_log (simulator configuration): Simulator Behavior. (line 49)
|
* exe_log_end (simulator configuration): Simulator Behavior. (line 88)
|
* exe_log_end (simulator configuration): Simulator Behavior. (line 89)
|
* exe_log_file (simulator configuration): Simulator Behavior. (line 96)
|
* exe_log_file (simulator configuration): Simulator Behavior. (line 97)
|
* exe_log_fn (simulator configuration - deprecated): Simulator Behavior.
|
* exe_log_fn (simulator configuration - deprecated): Simulator Behavior.
|
(line 96)
|
(line 97)
|
* exe_log_marker (simulator configuration): Simulator Behavior.
|
* exe_log_marker (simulator configuration): Simulator Behavior.
|
(line 92)
|
(line 93)
|
* exe_log_start (simulator configuration): Simulator Behavior.
|
* exe_log_start (simulator configuration): Simulator Behavior.
|
(line 85)
|
(line 86)
|
* exe_log_type (simulator configuration): Simulator Behavior. (line 54)
|
* exe_log_type (simulator configuration): Simulator Behavior. (line 55)
|
* exe_log_type=default (simulator configuration): Simulator Behavior.
|
* exe_log_type=default (simulator configuration): Simulator Behavior.
|
(line 57)
|
(line 58)
|
* exe_log_type=hardware (simulator configuration): Simulator Behavior.
|
* exe_log_type=hardware (simulator configuration): Simulator Behavior.
|
(line 61)
|
(line 62)
|
* exe_log_type=simple (simulator configuration): Simulator Behavior.
|
* exe_log_type=simple (simulator configuration): Simulator Behavior.
|
(line 68)
|
(line 69)
|
* exe_log_type=software (simulator configuration): Simulator Behavior.
|
* exe_log_type=software (simulator configuration): Simulator Behavior.
|
(line 73)
|
(line 74)
|
* executing code (Interactive CLI): Interactive Command Line.
|
* executing code (Interactive CLI): Interactive Command Line.
|
(line 23)
|
(line 23)
|
* execution history (Interactive CLI): Interactive Command Line.
|
* execution history (Interactive CLI): Interactive Command Line.
|
(line 67)
|
(line 67)
|
* file (ATA/ATAPI device configuration): Disc Interface Configuration.
|
* file (ATA/ATAPI device configuration): Disc Interface Configuration.
|
(line 104)
|
(line 104)
|
* file (keyboard configuration): Keyboard Configuration.
|
* file (keyboard configuration): Keyboard Configuration.
|
(line 51)
|
(line 51)
|
* filename (frame buffer configuration - deprecated): Frame Buffer Configuration.
|
* filename (frame buffer configuration - deprecated): Frame Buffer Configuration.
|
(line 35)
|
(line 36)
|
* filename (VGA configuration - deprecated): Display Interface Configuration.
|
* filename (VGA configuration - deprecated): Display Interface Configuration.
|
(line 47)
|
(line 47)
|
* firmware (ATA/ATAPI device configuration): Disc Interface Configuration.
|
* firmware (ATA/ATAPI device configuration): Disc Interface Configuration.
|
(line 117)
|
(line 117)
|
* flag setting by instructions: Configuring the Build.
|
* flag setting by instructions: Configuring the Build.
|
Line 3585... |
Line 3614... |
(line 133)
|
(line 133)
|
* hide_device_id (verification API configuration): Verification API Configuration.
|
* hide_device_id (verification API configuration): Verification API Configuration.
|
(line 36)
|
(line 36)
|
* hist (Interactive CLI): Interactive Command Line.
|
* hist (Interactive CLI): Interactive Command Line.
|
(line 67)
|
(line 67)
|
* history (simulator configuration): Simulator Behavior. (line 39)
|
* history (simulator configuration): Simulator Behavior. (line 40)
|
* history of execution (Interactive CLI): Interactive Command Line.
|
* history of execution (Interactive CLI): Interactive Command Line.
|
(line 67)
|
(line 67)
|
* hitdelay (branch prediction configuration): Branch Prediction Configuration.
|
* hitdelay (branch prediction configuration): Branch Prediction Configuration.
|
(line 33)
|
(line 33)
|
* hitdelay (instruction cache configuration): Cache Configuration.
|
* hitdelay (instruction cache configuration): Cache Configuration.
|
Line 3599... |
Line 3628... |
* hw_enabled (generic peripheral configuration): Generic Peripheral Configuration.
|
* hw_enabled (generic peripheral configuration): Generic Peripheral Configuration.
|
(line 49)
|
(line 49)
|
* IMMU configuration: Memory Management Configuration.
|
* IMMU configuration: Memory Management Configuration.
|
(line 6)
|
(line 6)
|
* index (memory controller configuration): Memory Controller Configuration.
|
* index (memory controller configuration): Memory Controller Configuration.
|
(line 50)
|
(line 51)
|
* info (Interactive CLI): Interactive Command Line.
|
* info (Interactive CLI): Interactive Command Line.
|
(line 119)
|
(line 119)
|
* installing Or1ksim: Installation. (line 6)
|
* installing Or1ksim: Installation. (line 6)
|
* instruction cache configuration: Cache Configuration. (line 6)
|
* instruction cache configuration: Cache Configuration. (line 6)
|
* instruction MMU configuration: Memory Management Configuration.
|
* instruction MMU configuration: Memory Management Configuration.
|
Line 3634... |
Line 3663... |
* load_hitdelay (data cache configuration): Cache Configuration.
|
* load_hitdelay (data cache configuration): Cache Configuration.
|
(line 46)
|
(line 46)
|
* load_missdelay (data cache configuration): Cache Configuration.
|
* load_missdelay (data cache configuration): Cache Configuration.
|
(line 50)
|
(line 50)
|
* log (memory configuration): Memory Configuration.
|
* log (memory configuration): Memory Configuration.
|
(line 121)
|
(line 122)
|
* log_enabled (verification API configuration): Verification API Configuration.
|
* log_enabled (verification API configuration): Verification API Configuration.
|
(line 28)
|
(line 28)
|
* long: Simulator Library. (line 73)
|
* long: Simulator Library. (line 74)
|
* mc (memory configuration): Memory Configuration.
|
* mc (memory configuration): Memory Configuration.
|
(line 99)
|
(line 100)
|
* memory configuration: Memory Configuration.
|
* memory configuration: Memory Configuration.
|
(line 6)
|
(line 6)
|
* memory controller configuration: Memory Controller Configuration.
|
* memory controller configuration: Memory Controller Configuration.
|
(line 6)
|
(line 6)
|
* memory copying (Interactive CLI): Interactive Command Line.
|
* memory copying (Interactive CLI): Interactive Command Line.
|
Line 3675... |
Line 3704... |
(line 42)
|
(line 42)
|
* missdelay (MMU configuration): Memory Management Configuration.
|
* missdelay (MMU configuration): Memory Management Configuration.
|
(line 55)
|
(line 55)
|
* MMU configuration: Memory Management Configuration.
|
* MMU configuration: Memory Management Configuration.
|
(line 6)
|
(line 6)
|
* mprof_file (simulator configuration): Simulator Behavior. (line 33)
|
* mprof_file (simulator configuration): Simulator Behavior. (line 34)
|
* mprof_fn (simulator configuration - deprecated): Simulator Behavior.
|
* mprof_fn (simulator configuration - deprecated): Simulator Behavior.
|
(line 33)
|
(line 34)
|
* mprofile (Interactive CLI): Interactive Command Line.
|
* mprofile (Interactive CLI): Interactive Command Line.
|
(line 173)
|
(line 173)
|
* mprofile (simulator configuration): Simulator Behavior. (line 28)
|
* mprofile (simulator configuration): Simulator Behavior. (line 29)
|
* mwdma (ATA/ATAPI device configuration): Disc Interface Configuration.
|
* mwdma (ATA/ATAPI device configuration): Disc Interface Configuration.
|
(line 128)
|
(line 128)
|
* name (generic peripheral configuration): Generic Peripheral Configuration.
|
* name (generic peripheral configuration): Generic Peripheral Configuration.
|
(line 42)
|
(line 42)
|
* name (memory configuration): Memory Configuration.
|
* name (memory configuration): Memory Configuration.
|
(line 82)
|
(line 83)
|
* no_multicycle (CUC configuration): CUC Configuration. (line 42)
|
* no_multicycle (CUC configuration): CUC Configuration. (line 42)
|
* nsets (cache configuration): Cache Configuration. (line 15)
|
* nsets (cache configuration): Cache Configuration. (line 15)
|
* nsets (MMU configuration): Memory Management Configuration.
|
* nsets (MMU configuration): Memory Management Configuration.
|
(line 16)
|
(line 16)
|
* nways (cache configuration): Cache Configuration. (line 22)
|
* nways (cache configuration): Cache Configuration. (line 22)
|
* nways (MMU configuration): Memory Management Configuration.
|
* nways (MMU configuration): Memory Management Configuration.
|
(line 22)
|
(line 22)
|
* or1ksim_get_time_period: Simulator Library. (line 63)
|
* or1ksim_get_time_period: Simulator Library. (line 64)
|
* or1ksim_init: Simulator Library. (line 18)
|
* or1ksim_init: Simulator Library. (line 18)
|
* or1ksim_interrupt: Simulator Library. (line 78)
|
* or1ksim_interrupt: Simulator Library. (line 79)
|
* or1ksim_interrupt_clear: Simulator Library. (line 96)
|
* or1ksim_interrupt_clear: Simulator Library. (line 97)
|
* or1ksim_interrupt_set: Simulator Library. (line 87)
|
* or1ksim_interrupt_set: Simulator Library. (line 88)
|
* or1ksim_is_le: Simulator Library. (line 68)
|
* or1ksim_is_le: Simulator Library. (line 69)
|
* or1ksim_reset_duration: Simulator Library. (line 48)
|
* or1ksim_reset_duration: Simulator Library. (line 49)
|
* or1ksim_run: Simulator Library. (line 43)
|
* or1ksim_run: Simulator Library. (line 44)
|
* or1ksim_set_time_point: Simulator Library. (line 59)
|
* or1ksim_set_time_point: Simulator Library. (line 60)
|
* output rediretion: Concepts. (line 7)
|
* output rediretion: Concepts. (line 7)
|
* overflow flag setting by instructions: Configuring the Build.
|
* overflow flag setting by instructions: Configuring the Build.
|
(line 70)
|
(line 70)
|
* packet (ATA/ATAPI device configuration): Disc Interface Configuration.
|
* packet (ATA/ATAPI device configuration): Disc Interface Configuration.
|
(line 113)
|
(line 113)
|
Line 3747... |
Line 3776... |
* PMR - SUME: Power Management Configuration.
|
* PMR - SUME: Power Management Configuration.
|
(line 24)
|
(line 24)
|
* PMU configuration: Power Management Configuration.
|
* PMU configuration: Power Management Configuration.
|
(line 6)
|
(line 6)
|
* poc (memory controller configuration): Memory Controller Configuration.
|
* poc (memory controller configuration): Memory Controller Configuration.
|
(line 37)
|
(line 38)
|
* port range for TCP/IP: Verification API Configuration.
|
* port range for TCP/IP: Verification API Configuration.
|
(line 23)
|
(line 23)
|
* power management configuration: Power Management Configuration.
|
* power management configuration: Power Management Configuration.
|
(line 6)
|
(line 6)
|
* power management register, DGCE: Power Management Configuration.
|
* power management register, DGCE: Power Management Configuration.
|
Line 3793... |
Line 3822... |
* r (Interactive CLI): Interactive Command Line.
|
* r (Interactive CLI): Interactive Command Line.
|
(line 14)
|
(line 14)
|
* random_seed (memory configuration): Memory Configuration.
|
* random_seed (memory configuration): Memory Configuration.
|
(line 40)
|
(line 40)
|
* refresh_rate (frame buffer configuration): Frame Buffer Configuration.
|
* refresh_rate (frame buffer configuration): Frame Buffer Configuration.
|
(line 29)
|
(line 30)
|
* refresh_rate (VGA configuration): Display Interface Configuration.
|
* refresh_rate (VGA configuration): Display Interface Configuration.
|
(line 41)
|
(line 41)
|
* reg_sim_reset: Concepts. (line 13)
|
* reg_sim_reset: Concepts. (line 13)
|
* register display (Interactive CLI): Interactive Command Line.
|
* register display (Interactive CLI): Interactive Command Line.
|
(line 14)
|
(line 14)
|
Line 3951... |
Line 3980... |
(line 23)
|
(line 23)
|
* TCP/IP port range for or1ksim service: Debug Interface Configuration.
|
* TCP/IP port range for or1ksim service: Debug Interface Configuration.
|
(line 74)
|
(line 74)
|
* TCP/IP port range for or1ksim-rsp service: Debug Interface Configuration.
|
* TCP/IP port range for or1ksim-rsp service: Debug Interface Configuration.
|
(line 41)
|
(line 41)
|
|
* tests, all enabled.: Configuring the Build.
|
|
(line 128)
|
* timings_file (CUC configuration): CUC Configuration. (line 46)
|
* timings_file (CUC configuration): CUC Configuration. (line 46)
|
* timings_fn (CUC configuration - deprecated): CUC Configuration.
|
* timings_fn (CUC configuration - deprecated): CUC Configuration.
|
(line 46)
|
(line 46)
|
* toggle breakpoint (Interactive CLI): Interactive Command Line.
|
* toggle breakpoint (Interactive CLI): Interactive Command Line.
|
(line 57)
|
(line 57)
|
Line 3965... |
Line 3996... |
* tx_channel (Ethernet configuration): Ethernet Configuration.
|
* tx_channel (Ethernet configuration): Ethernet Configuration.
|
(line 60)
|
(line 60)
|
* txfile (Ethernet configuration): Ethernet Configuration.
|
* txfile (Ethernet configuration): Ethernet Configuration.
|
(line 69)
|
(line 69)
|
* txfile (frame buffer configuration): Frame Buffer Configuration.
|
* txfile (frame buffer configuration): Frame Buffer Configuration.
|
(line 35)
|
(line 36)
|
* txfile (VGA configuration): Display Interface Configuration.
|
* txfile (VGA configuration): Display Interface Configuration.
|
(line 47)
|
(line 47)
|
* type (ATA/ATAPI device configuration): Disc Interface Configuration.
|
* type (ATA/ATAPI device configuration): Disc Interface Configuration.
|
(line 99)
|
(line 99)
|
* type (memory configuration): Memory Configuration.
|
* type (memory configuration): Memory Configuration.
|
Line 4031... |
Line 4062... |
|
|
Tag Table:
|
Tag Table:
|
Node: Top814
|
Node: Top814
|
Node: Installation1224
|
Node: Installation1224
|
Node: Preparation1471
|
Node: Preparation1471
|
Node: Configuring the Build1761
|
Node: Configuring the Build1772
|
Node: Build and Install6872
|
Node: Build and Install7257
|
Node: Known Issues7561
|
Node: Known Issues8103
|
Node: Usage9691
|
Node: Usage10249
|
Node: Standalone Simulator9905
|
Node: Standalone Simulator10463
|
Node: Profiling Utility12794
|
Node: Profiling Utility13366
|
Node: Memory Profiling Utility13702
|
Node: Memory Profiling Utility14276
|
Node: Simulator Library15061
|
Node: Simulator Library15641
|
Node: Configuration20523
|
Node: Configuration21126
|
Node: Configuration File Format21129
|
Node: Configuration File Format21735
|
Node: Configuration File Preprocessing21421
|
Node: Configuration File Preprocessing22027
|
Node: Configuration File Syntax21791
|
Node: Configuration File Syntax22398
|
Node: Simulator Configuration24569
|
Node: Simulator Configuration25183
|
Node: Simulator Behavior24860
|
Node: Simulator Behavior25474
|
Node: Verification API Configuration28876
|
Node: Verification API Configuration29518
|
Node: CUC Configuration30805
|
Node: CUC Configuration31458
|
Node: Core OpenRISC Configuration32710
|
Node: Core OpenRISC Configuration33375
|
Node: CPU Configuration33212
|
Node: CPU Configuration33877
|
Node: Memory Configuration37002
|
Node: Memory Configuration37682
|
Node: Memory Management Configuration42278
|
Node: Memory Management Configuration42995
|
Node: Cache Configuration44639
|
Node: Cache Configuration45372
|
Node: Interrupt Configuration47005
|
Node: Interrupt Configuration47758
|
Node: Power Management Configuration47737
|
Node: Power Management Configuration48494
|
Node: Branch Prediction Configuration49009
|
Node: Branch Prediction Configuration49771
|
Node: Debug Interface Configuration50362
|
Node: Debug Interface Configuration51131
|
Node: Peripheral Configuration54562
|
Node: Peripheral Configuration55351
|
Node: Memory Controller Configuration55187
|
Node: Memory Controller Configuration55977
|
Node: UART Configuration57784
|
Node: UART Configuration58582
|
Node: DMA Configuration61290
|
Node: DMA Configuration62101
|
Node: Ethernet Configuration63145
|
Node: Ethernet Configuration63968
|
Node: GPIO Configuration67101
|
Node: GPIO Configuration67946
|
Node: Display Interface Configuration68724
|
Node: Display Interface Configuration69579
|
Node: Frame Buffer Configuration71024
|
Node: Frame Buffer Configuration71888
|
Node: Keyboard Configuration72874
|
Node: Keyboard Configuration73752
|
Node: Disc Interface Configuration75100
|
Node: Disc Interface Configuration75990
|
Node: Generic Peripheral Configuration80015
|
Node: Generic Peripheral Configuration80933
|
Node: Interactive Command Line82299
|
Node: Interactive Command Line83228
|
Node: Verification API89247
|
Node: Verification API90202
|
Node: Code Internals93665
|
Node: Code Internals94632
|
Node: Coding Conventions94222
|
Node: Coding Conventions95192
|
Node: Global Data Structures98637
|
Node: Global Data Structures99619
|
Node: Concepts101289
|
Node: Concepts102276
|
Ref: Output Redirection101434
|
Ref: Output Redirection102421
|
Node: Internal Debugging101971
|
Node: Internal Debugging102960
|
Node: GNU Free Documentation License102467
|
Node: GNU Free Documentation License103457
|
Node: Index124874
|
Node: Index125864
|
|
|
End Tag Table
|
End Tag Table
|