|
@@ -0,0 +1,882 @@
|
|
|
+/* sim.cfg -- Simulator configuration script file
|
|
|
+ Copyright (C) 2001-2002, Marko Mlinar, markom@opencores.org
|
|
|
+
|
|
|
+This file is part of OpenRISC 1000 Architectural Simulator.
|
|
|
+It contains the default configuration and help about configuring
|
|
|
+the simulator.
|
|
|
+
|
|
|
+This program is free software; you can redistribute it and/or modify
|
|
|
+it under the terms of the GNU General Public License as published by
|
|
|
+the Free Software Foundation; either version 2 of the License, or
|
|
|
+(at your option) any later version.
|
|
|
+
|
|
|
+This program is distributed in the hope that it will be useful,
|
|
|
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
+GNU General Public License for more details.
|
|
|
+
|
|
|
+You should have received a copy of the GNU General Public License
|
|
|
+along with this program; if not, write to the Free Software
|
|
|
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|
|
+
|
|
|
+
|
|
|
+/* INTRODUCTION
|
|
|
+
|
|
|
+ The ork1sim has various parameters, that are set in configuration files
|
|
|
+ like this one. The user can switch between configurations at startup by
|
|
|
+ specifying the required configuration file with the -f <filename.cfg> option.
|
|
|
+ If no configuration file is specified or1ksim searches for the default
|
|
|
+ configuration file sim.cfg. First it searches for './sim.cfg'. If this
|
|
|
+ file is not found, it searches for '~/or1k/sim.cfg'. If this file is
|
|
|
+ not found too, it reverts to the built-in default configuration.
|
|
|
+
|
|
|
+ NOTE: Users should not rely on the built-in configuration, since the
|
|
|
+ default configuration may differ between version.
|
|
|
+ Rather create a configuration file that sets all critical values.
|
|
|
+
|
|
|
+ This file may contain (standard C) comments only - no // support.
|
|
|
+
|
|
|
+ Configure files may be be included, using:
|
|
|
+ include "file_name_to_include"
|
|
|
+
|
|
|
+ Like normal configuration files, the included file is divided into
|
|
|
+ sections. Each section is described in detail also.
|
|
|
+
|
|
|
+ Some section have subsections. One example of such a subsection is:
|
|
|
+
|
|
|
+ device <index>
|
|
|
+ instance specific parameters...
|
|
|
+ enddevice
|
|
|
+
|
|
|
+ which creates a device instance.
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+/* MEMORY SECTION
|
|
|
+
|
|
|
+ This section specifies how the memory is generated and the blocks
|
|
|
+ it consists of.
|
|
|
+
|
|
|
+ type = random/unknown/pattern
|
|
|
+ Specifies the initial memory values.
|
|
|
+ 'random' generates random memory using seed 'random_seed'.
|
|
|
+ 'pattern' fills memory with 'pattern'.
|
|
|
+ 'unknown' does not specify how memory should be generated,
|
|
|
+ leaving the memory in a undefined state. This is the fastest
|
|
|
+ option.
|
|
|
+
|
|
|
+ random_seed = <value>
|
|
|
+ random seed for randomizer, used if type = 'random'.
|
|
|
+
|
|
|
+ pattern = <value>
|
|
|
+ pattern to fill memory, used if type = 'pattern'.
|
|
|
+
|
|
|
+ nmemories = <value>
|
|
|
+ number of memory instances connected
|
|
|
+
|
|
|
+ baseaddr = <hex_value>
|
|
|
+ memory start address
|
|
|
+
|
|
|
+ size = <hex_value>
|
|
|
+ memory size
|
|
|
+
|
|
|
+ name = "<string>"
|
|
|
+ memory block name
|
|
|
+
|
|
|
+ ce = <value>
|
|
|
+ chip enable index of the memory instance
|
|
|
+
|
|
|
+ mc = <value>
|
|
|
+ memory controller this memory is connected to
|
|
|
+
|
|
|
+ delayr = <value>
|
|
|
+ cycles, required for read access, -1 if instance does not support reading
|
|
|
+
|
|
|
+ delayw = <value>
|
|
|
+ cycles, required for write access, -1 if instance does not support writing
|
|
|
+
|
|
|
+ log = "<filename>"
|
|
|
+ filename, where to log memory accesses to, no log, if log command is not specified
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+section memory
|
|
|
+ pattern = 0x00
|
|
|
+ type = unknown /* Fastest */
|
|
|
+
|
|
|
+ name = "FLASH"
|
|
|
+ ce = 0
|
|
|
+ mc = 0
|
|
|
+ baseaddr = 0xf0000000
|
|
|
+ size = 0x01000000
|
|
|
+ delayr = 1
|
|
|
+ delayw = -1
|
|
|
+end
|
|
|
+
|
|
|
+section memory
|
|
|
+ pattern = 0x00
|
|
|
+ type = unknown /* Fastest */
|
|
|
+
|
|
|
+ name = "RAM"
|
|
|
+ ce = 1
|
|
|
+ mc = 0
|
|
|
+ baseaddr = 0x00000000
|
|
|
+ size = 0x02000000
|
|
|
+ delayr = 1
|
|
|
+ delayw = 1
|
|
|
+end
|
|
|
+
|
|
|
+section memory
|
|
|
+ pattern = 0x00
|
|
|
+ type = unknown /* Fastest */
|
|
|
+
|
|
|
+ name = "SRAM"
|
|
|
+ mc = 0
|
|
|
+ ce = 2
|
|
|
+ baseaddr = 0xa4000000
|
|
|
+ size = 0x00100000
|
|
|
+ delayr = 1
|
|
|
+ delayw = 2
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* IMMU SECTION
|
|
|
+
|
|
|
+ This section configures the Instruction Memory Manangement Unit
|
|
|
+
|
|
|
+ enabled = 0/1
|
|
|
+ '0': disabled
|
|
|
+ '1': enabled
|
|
|
+ (NOTE: UPR bit is set)
|
|
|
+
|
|
|
+ nsets = <value>
|
|
|
+ number of ITLB sets; must be power of two
|
|
|
+
|
|
|
+ nways = <value>
|
|
|
+ number of ITLB ways
|
|
|
+
|
|
|
+ pagesize = <value>
|
|
|
+ instruction page size; must be power of two
|
|
|
+
|
|
|
+ entrysize = <value>
|
|
|
+ instruction entry size in bytes
|
|
|
+
|
|
|
+ ustates = <value>
|
|
|
+ number of ITLB usage states (2, 3, 4 etc., max is 4)
|
|
|
+
|
|
|
+ hitdelay = <value>
|
|
|
+ number of cycles immu hit costs
|
|
|
+
|
|
|
+ missdelay = <value>
|
|
|
+ number of cycles immu miss costs
|
|
|
+*/
|
|
|
+
|
|
|
+section immu
|
|
|
+ enabled = 1
|
|
|
+ nsets = 64
|
|
|
+ nways = 1
|
|
|
+ pagesize = 8192
|
|
|
+ hitdelay = 0
|
|
|
+ missdelay = 0
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* DMMU SECTION
|
|
|
+
|
|
|
+ This section configures the Data Memory Manangement Unit
|
|
|
+
|
|
|
+ enabled = 0/1
|
|
|
+ '0': disabled
|
|
|
+ '1': enabled
|
|
|
+ (NOTE: UPR bit is set)
|
|
|
+
|
|
|
+ nsets = <value>
|
|
|
+ number of DTLB sets; must be power of two
|
|
|
+
|
|
|
+ nways = <value>
|
|
|
+ number of DTLB ways
|
|
|
+
|
|
|
+ pagesize = <value>
|
|
|
+ data page size; must be power of two
|
|
|
+
|
|
|
+ entrysize = <value>
|
|
|
+ data entry size in bytes
|
|
|
+
|
|
|
+ ustates = <value>
|
|
|
+ number of DTLB usage states (2, 3, 4 etc., max is 4)
|
|
|
+
|
|
|
+ hitdelay = <value>
|
|
|
+ number of cycles dmmu hit costs
|
|
|
+
|
|
|
+ missdelay = <value>
|
|
|
+ number of cycles dmmu miss costs
|
|
|
+*/
|
|
|
+
|
|
|
+section dmmu
|
|
|
+ enabled = 1
|
|
|
+ nsets = 64
|
|
|
+ nways = 1
|
|
|
+ pagesize = 8192
|
|
|
+ hitdelay = 0
|
|
|
+ missdelay = 0
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* IC SECTION
|
|
|
+
|
|
|
+ This section configures the Instruction Cache
|
|
|
+
|
|
|
+ enabled = 0/1
|
|
|
+ '0': disabled
|
|
|
+ '1': enabled
|
|
|
+ (NOTE: UPR bit is set)
|
|
|
+
|
|
|
+ nsets = <value>
|
|
|
+ number of IC sets; must be power of two
|
|
|
+
|
|
|
+ nways = <value>
|
|
|
+ number of IC ways
|
|
|
+
|
|
|
+ blocksize = <value>
|
|
|
+ IC block size in bytes; must be power of two
|
|
|
+
|
|
|
+ ustates = <value>
|
|
|
+ number of IC usage states (2, 3, 4 etc., max is 4)
|
|
|
+
|
|
|
+ hitdelay = <value>
|
|
|
+ number of cycles ic hit costs
|
|
|
+
|
|
|
+ missdelay = <value>
|
|
|
+ number of cycles ic miss costs
|
|
|
+*/
|
|
|
+
|
|
|
+section ic
|
|
|
+ enabled = 1
|
|
|
+ nsets = 512
|
|
|
+ nways = 1
|
|
|
+ blocksize = 16
|
|
|
+ hitdelay = 1
|
|
|
+ missdelay = 1
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* DC SECTION
|
|
|
+
|
|
|
+ This section configures the Data Cache
|
|
|
+
|
|
|
+ enabled = 0/1
|
|
|
+ '0': disabled
|
|
|
+ '1': enabled
|
|
|
+ (NOTE: UPR bit is set)
|
|
|
+
|
|
|
+ nsets = <value>
|
|
|
+ number of DC sets; must be power of two
|
|
|
+
|
|
|
+ nways = <value>
|
|
|
+ number of DC ways
|
|
|
+
|
|
|
+ blocksize = <value>
|
|
|
+ DC block size in bytes; must be power of two
|
|
|
+
|
|
|
+ ustates = <value>
|
|
|
+ number of DC usage states (2, 3, 4 etc., max is 4)
|
|
|
+
|
|
|
+ load_hitdelay = <value>
|
|
|
+ number of cycles dc load hit costs
|
|
|
+
|
|
|
+ load_missdelay = <value>
|
|
|
+ number of cycles dc load miss costs
|
|
|
+
|
|
|
+ store_hitdelay = <value>
|
|
|
+ number of cycles dc load hit costs
|
|
|
+
|
|
|
+ store_missdelay = <value>
|
|
|
+ number of cycles dc load miss costs
|
|
|
+*/
|
|
|
+
|
|
|
+section dc
|
|
|
+ enabled = 1
|
|
|
+ nsets = 512
|
|
|
+ nways = 1
|
|
|
+ blocksize = 16
|
|
|
+ load_hitdelay = 1
|
|
|
+ load_missdelay = 1
|
|
|
+ store_hitdelay = 1
|
|
|
+ store_missdelay = 1
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* SIM SECTION
|
|
|
+
|
|
|
+ This section specifies how or1ksim should behave.
|
|
|
+
|
|
|
+ verbose = 0/1
|
|
|
+ '0': don't print extra messages
|
|
|
+ '1': print extra messages
|
|
|
+
|
|
|
+ debug = 0-9
|
|
|
+ 0 : no debug messages
|
|
|
+ 1-9: debug message level.
|
|
|
+ higher numbers produce more messages
|
|
|
+
|
|
|
+ profile = 0/1
|
|
|
+ '0': don't generate profiling file 'sim.profile'
|
|
|
+ '1': don't generate profiling file 'sim.profile'
|
|
|
+
|
|
|
+ prof_fn = "<filename>"
|
|
|
+ optional filename for the profiling file.
|
|
|
+ valid only if 'profile' is set
|
|
|
+
|
|
|
+ mprofile = 0/1
|
|
|
+ '0': don't generate memory profiling file 'sim.mprofile'
|
|
|
+ '1': generate memory profiling file 'sim.mprofile'
|
|
|
+
|
|
|
+ mprof_fn = "<filename>"
|
|
|
+ optional filename for the memory profiling file.
|
|
|
+ valid only if 'mprofile' is set
|
|
|
+
|
|
|
+ history = 0/1
|
|
|
+ '0': don't track execution flow
|
|
|
+ '1': track execution flow
|
|
|
+ Execution flow can be tracked for the simulator's
|
|
|
+ 'hist' command. Useful for back-trace debugging.
|
|
|
+
|
|
|
+ iprompt = 0/1
|
|
|
+ '0': start in <not interactive prompt> (so what do we start in ???)
|
|
|
+ '1': start in interactive prompt.
|
|
|
+
|
|
|
+ exe_log = 0/1
|
|
|
+ '0': don't generate execution log.
|
|
|
+ '1': generate execution log.
|
|
|
+
|
|
|
+ exe_log = default/hardware/simple/software
|
|
|
+ type of execution log, default is used when not specified
|
|
|
+
|
|
|
+ exe_log_start = <value>
|
|
|
+ index of first instruction to start logging, default = 0
|
|
|
+
|
|
|
+ exe_log_end = <value>
|
|
|
+ index of last instruction to end logging; not limited, if omitted
|
|
|
+
|
|
|
+ exe_log_marker = <value>
|
|
|
+ <value> specifies number of instructions before horizontal marker is
|
|
|
+ printed; if zero, markers are disabled (default)
|
|
|
+
|
|
|
+ exe_log_fn = "<filename>"
|
|
|
+ filename for the exection log file.
|
|
|
+ valid only if 'exe_log' is set
|
|
|
+
|
|
|
+ clkcycle = <value>[ps|ns|us|ms]
|
|
|
+ specifies time measurement for one cycle
|
|
|
+*/
|
|
|
+
|
|
|
+section sim
|
|
|
+ verbose = 1
|
|
|
+ debug = 0
|
|
|
+ profile = 0
|
|
|
+ history = 0
|
|
|
+
|
|
|
+ clkcycle = 10ns
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* SECTION VAPI
|
|
|
+
|
|
|
+ This section configures the Verification API, used for Advanced
|
|
|
+ Core Verification.
|
|
|
+
|
|
|
+ enabled = 0/1
|
|
|
+ '0': disbable VAPI server
|
|
|
+ '1': enable/start VAPI server
|
|
|
+
|
|
|
+ server_port = <value>
|
|
|
+ TCP/IP port to start VAPI server on
|
|
|
+
|
|
|
+ log_enabled = 0/1
|
|
|
+ '0': disable VAPI requests logging
|
|
|
+ '1': enable VAPI requests logging
|
|
|
+
|
|
|
+ hide_device_id = 0/1
|
|
|
+ '0': don't log device id (for compatability with old version)
|
|
|
+ '1': log device id
|
|
|
+
|
|
|
+
|
|
|
+ vapi_fn = <filename>
|
|
|
+ filename for the log file.
|
|
|
+ valid only if log_enabled is set
|
|
|
+*/
|
|
|
+
|
|
|
+section VAPI
|
|
|
+ enabled = 0
|
|
|
+ server_port = 9998
|
|
|
+ log_enabled = 0
|
|
|
+ vapi_log_fn = "vapi.log"
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* CPU SECTION
|
|
|
+
|
|
|
+ This section specifies various CPU parameters.
|
|
|
+
|
|
|
+ ver = <value>
|
|
|
+ rev = <value>
|
|
|
+ specifies version and revision of the CPU used
|
|
|
+
|
|
|
+ upr = <value>
|
|
|
+ changes the upr register
|
|
|
+
|
|
|
+ sr = <value>
|
|
|
+ sets the initial Supervision Register value
|
|
|
+ supervisor mode (SM) and fixed one (FO) set = 0x8001
|
|
|
+ exception prefix high (EPH, vectors@0xf0000000) = 0x4000
|
|
|
+ together, (SM | FO | EPH) = 0xc001
|
|
|
+ superscalar = 0/1
|
|
|
+ '0': CPU is scalar
|
|
|
+ '1': CPU is superscalar
|
|
|
+ (modify cpu/or32/execute.c to tune superscalar model)
|
|
|
+
|
|
|
+ hazards = 0/1
|
|
|
+ '0': don't track data hazards in superscalar CPU
|
|
|
+ '1': track data hazards in superscalar CPU
|
|
|
+ If tracked, data hazards can be displayed using the
|
|
|
+ simulator's 'r' command.
|
|
|
+
|
|
|
+ dependstats = 0/1
|
|
|
+ '0': don't calculate inter-instruction dependencies.
|
|
|
+ '1': calculate inter-instruction dependencies.
|
|
|
+ If calculated, inter-instruction dependencies can be
|
|
|
+ displayed using the simulator's 'stat' command.
|
|
|
+
|
|
|
+ sbuf_len = <value>
|
|
|
+ length of store buffer (<= 256), 0 = disabled
|
|
|
+*/
|
|
|
+
|
|
|
+section cpu
|
|
|
+ ver = 0x12
|
|
|
+ cfg = 0x00
|
|
|
+ rev = 0x01
|
|
|
+ sr = 0x8001 /*SPR_SR_FO | SPR_SR_SM | SPR_SR_EPH */
|
|
|
+ /* upr = */
|
|
|
+ superscalar = 0
|
|
|
+ hazards = 0
|
|
|
+ dependstats = 0
|
|
|
+ sbuf_len = 0
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* PM SECTION
|
|
|
+
|
|
|
+ This section specifies Power Management parameters
|
|
|
+
|
|
|
+ enabled = 0/1
|
|
|
+ '0': disable power management
|
|
|
+ '1': enable power management
|
|
|
+*/
|
|
|
+
|
|
|
+section pm
|
|
|
+ enabled = 0
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* BPB SECTION
|
|
|
+
|
|
|
+ This section specifies how branch prediction should behave.
|
|
|
+
|
|
|
+ enabled = 0/1
|
|
|
+ '0': disable branch prediction
|
|
|
+ '1': enable branch prediction
|
|
|
+
|
|
|
+ btic = 0/1
|
|
|
+ '0': disable branch target instruction cache model
|
|
|
+ '1': enable branch target instruction cache model
|
|
|
+
|
|
|
+ sbp_bf_fwd = 0/1
|
|
|
+ Static branch prediction for 'l.bf'
|
|
|
+ '0': don't use forward prediction
|
|
|
+ '1': use forward prediction
|
|
|
+
|
|
|
+ sbp_bnf_fwd = 0/1
|
|
|
+ Static branch prediction for 'l.bnf'
|
|
|
+ '0': don't use forward prediction
|
|
|
+ '1': use forward prediction
|
|
|
+
|
|
|
+ hitdelay = <value>
|
|
|
+ number of cycles bpb hit costs
|
|
|
+
|
|
|
+ missdelay = <value>
|
|
|
+ number of cycles bpb miss costs
|
|
|
+*/
|
|
|
+
|
|
|
+section bpb
|
|
|
+ enabled = 0
|
|
|
+ btic = 0
|
|
|
+ sbp_bf_fwd = 0
|
|
|
+ sbp_bnf_fwd = 0
|
|
|
+ hitdelay = 0
|
|
|
+ missdelay = 0
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* DEBUG SECTION
|
|
|
+
|
|
|
+ This sections specifies how the debug unit should behave.
|
|
|
+
|
|
|
+ enabled = 0/1
|
|
|
+ '0': disable debug unit
|
|
|
+ '1': enable debug unit
|
|
|
+
|
|
|
+ gdb_enabled = 0/1
|
|
|
+ '0': don't start gdb server
|
|
|
+ '1': start gdb server at port 'server_port'
|
|
|
+
|
|
|
+ server_port = <value>
|
|
|
+ TCP/IP port to start gdb server on
|
|
|
+ valid only if gdb_enabled is set
|
|
|
+
|
|
|
+ vapi_id = <hex_value>
|
|
|
+ Used to create "fake" vapi log file containing the JTAG proxy messages.
|
|
|
+*/
|
|
|
+section debug
|
|
|
+ enabled = 0
|
|
|
+/* gdb_enabled = 0 */
|
|
|
+/* server_port = 9999*/
|
|
|
+ rsp_enabled = 1
|
|
|
+ rsp_port = 50001
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* MC SECTION
|
|
|
+
|
|
|
+ This section configures the memory controller
|
|
|
+
|
|
|
+ enabled = 0/1
|
|
|
+ '0': disable memory controller
|
|
|
+ '1': enable memory controller
|
|
|
+
|
|
|
+ baseaddr = <hex_value>
|
|
|
+ address of first MC register
|
|
|
+
|
|
|
+ POC = <hex_value>
|
|
|
+ Power On Configuration register
|
|
|
+
|
|
|
+ index = <value>
|
|
|
+ Index of this memory controller amongst all the memory controllers
|
|
|
+*/
|
|
|
+
|
|
|
+section mc
|
|
|
+ enabled = 0
|
|
|
+ baseaddr = 0x93000000
|
|
|
+ POC = 0x00000008 /* Power on configuration register */
|
|
|
+ index = 0
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* UART SECTION
|
|
|
+
|
|
|
+ This section configures the UARTs
|
|
|
+
|
|
|
+ enabled = <0|1>
|
|
|
+ Enable/disable the peripheral. By default if it is enabled.
|
|
|
+
|
|
|
+ baseaddr = <hex_value>
|
|
|
+ address of first UART register for this device
|
|
|
+
|
|
|
+
|
|
|
+ channel = <channeltype>:<args>
|
|
|
+
|
|
|
+ The channel parameter indicates the source of received UART characters
|
|
|
+ and the sink for transmitted UART characters.
|
|
|
+
|
|
|
+ The <channeltype> can be either "file", "xterm", "tcp", "fd", or "tty"
|
|
|
+ (without quotes).
|
|
|
+
|
|
|
+ A) To send/receive characters from a pair of files, use a file
|
|
|
+ channel:
|
|
|
+
|
|
|
+ channel=file:<rxfile>,<txfile>
|
|
|
+
|
|
|
+ B) To create an interactive terminal window, use an xterm channel:
|
|
|
+
|
|
|
+ channel=xterm:[<xterm_arg>]*
|
|
|
+
|
|
|
+ C) To create a bidirectional tcp socket which one could, for example,
|
|
|
+ access via telnet, use a tcp channel:
|
|
|
+
|
|
|
+ channel=tcp:<port number>
|
|
|
+
|
|
|
+ D) To cause the UART to read/write from existing numeric file
|
|
|
+ descriptors, use an fd channel:
|
|
|
+
|
|
|
+ channel=fd:<rx file descriptor num>,<tx file descriptor num>
|
|
|
+
|
|
|
+ E) To connect the UART to a physical serial port, create a tty
|
|
|
+ channel:
|
|
|
+
|
|
|
+ channel=tty:device=/dev/ttyS0,baud=9600
|
|
|
+
|
|
|
+ irq = <value>
|
|
|
+ irq number for this device
|
|
|
+
|
|
|
+ 16550 = 0/1
|
|
|
+ '0': this device is a UART16450
|
|
|
+ '1': this device is a UART16550
|
|
|
+
|
|
|
+ jitter = <value>
|
|
|
+ in msecs... time to block, -1 to disable it
|
|
|
+
|
|
|
+ vapi_id = <hex_value>
|
|
|
+ VAPI id of this instance
|
|
|
+*/
|
|
|
+
|
|
|
+section uart
|
|
|
+ enabled = 1
|
|
|
+ baseaddr = 0x90000000
|
|
|
+ irq = 2
|
|
|
+ /* channel = "file:uart0.rx,uart0.tx" */
|
|
|
+ /* channel = "tcp:10084" */
|
|
|
+ channel = "xterm:"
|
|
|
+ jitter = -1 /* async behaviour */
|
|
|
+ 16550 = 1
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* DMA SECTION
|
|
|
+
|
|
|
+ This section configures the DMAs
|
|
|
+
|
|
|
+ enabled = <0|1>
|
|
|
+ Enable/disable the peripheral. By default if it is enabled.
|
|
|
+
|
|
|
+ baseaddr = <hex_value>
|
|
|
+ address of first DMA register for this device
|
|
|
+
|
|
|
+ irq = <value>
|
|
|
+ irq number for this device
|
|
|
+
|
|
|
+ vapi_id = <hex_value>
|
|
|
+ VAPI id of this instance
|
|
|
+*/
|
|
|
+
|
|
|
+section dma
|
|
|
+ enabled = 1
|
|
|
+ baseaddr = 0x9a000000
|
|
|
+ irq = 11
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* ETHERNET SECTION
|
|
|
+
|
|
|
+ This section configures the ETHERNETs
|
|
|
+
|
|
|
+ enabled = <0|1>
|
|
|
+ Enable/disable the peripheral. By default if it is enabled.
|
|
|
+
|
|
|
+ baseaddr = <hex_value>
|
|
|
+ address of first ethernet register for this device
|
|
|
+
|
|
|
+ dma = <value>
|
|
|
+ which controller is this ethernet "connected" to
|
|
|
+
|
|
|
+ irq = <value>
|
|
|
+ ethernet mac IRQ level
|
|
|
+
|
|
|
+ rtx_type = <value>
|
|
|
+ use 0 - file interface, 1 - socket interface
|
|
|
+
|
|
|
+ rx_channel = <value>
|
|
|
+ DMA channel used for RX
|
|
|
+
|
|
|
+ tx_channel = <value>
|
|
|
+ DMA channel used for TX
|
|
|
+
|
|
|
+ rxfile = "<filename>"
|
|
|
+ filename, where to read data from
|
|
|
+
|
|
|
+ txfile = "<filename>"
|
|
|
+ filename, where to write data to
|
|
|
+
|
|
|
+ sockif = "<ifacename>"
|
|
|
+ interface name of ethernet socket
|
|
|
+
|
|
|
+ vapi_id = <hex_value>
|
|
|
+ VAPI id of this instance
|
|
|
+*/
|
|
|
+
|
|
|
+section ethernet
|
|
|
+ enabled = 1
|
|
|
+ baseaddr = 0x92000000
|
|
|
+ /* dma = 0 */
|
|
|
+ irq = 4
|
|
|
+ rtx_type = "tap"
|
|
|
+ tap_dev = "tap0"
|
|
|
+ /* tx_channel = 0 */
|
|
|
+ /* rx_channel = 1 */
|
|
|
+ rxfile = "eth0.rx"
|
|
|
+ txfile = "eth0.tx"
|
|
|
+ sockif = "eth0"
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* GPIO SECTION
|
|
|
+
|
|
|
+ This section configures the GPIOs
|
|
|
+
|
|
|
+ enabled = <0|1>
|
|
|
+ Enable/disable the peripheral. By default if it is enabled.
|
|
|
+
|
|
|
+ baseaddr = <hex_value>
|
|
|
+ address of first GPIO register for this device
|
|
|
+
|
|
|
+ irq = <value>
|
|
|
+ irq number for this device
|
|
|
+
|
|
|
+ base_vapi_id = <hex_value>
|
|
|
+ first VAPI id of this instance
|
|
|
+ GPIO uses 8 consecutive VAPI IDs
|
|
|
+*/
|
|
|
+
|
|
|
+section gpio
|
|
|
+ enabled = 0
|
|
|
+ baseaddr = 0x91000000
|
|
|
+ irq = 3
|
|
|
+ base_vapi_id = 0x0200
|
|
|
+end
|
|
|
+
|
|
|
+/* VGA SECTION
|
|
|
+
|
|
|
+ This section configures the VGA/LCD controller
|
|
|
+
|
|
|
+ enabled = <0|1>
|
|
|
+ Enable/disable the peripheral. By default if it is enabled.
|
|
|
+
|
|
|
+ baseaddr = <hex_value>
|
|
|
+ address of first VGA register
|
|
|
+
|
|
|
+ irq = <value>
|
|
|
+ irq number for this device
|
|
|
+
|
|
|
+ refresh_rate = <value>
|
|
|
+ number of cycles between screen dumps
|
|
|
+
|
|
|
+ filename = "<filename>"
|
|
|
+ template name for generated names (e.g. "primary" produces "primary0023.bmp")
|
|
|
+*/
|
|
|
+
|
|
|
+section vga
|
|
|
+ enabled = 0
|
|
|
+ baseaddr = 0x97100000
|
|
|
+ irq = 8
|
|
|
+ refresh_rate = 100000
|
|
|
+ filename = "primary"
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* TICK TIMER SECTION
|
|
|
+
|
|
|
+ This section configures tick timer
|
|
|
+
|
|
|
+ enabled = 0/1
|
|
|
+ whether tick timer is enabled
|
|
|
+*/
|
|
|
+
|
|
|
+section pic
|
|
|
+ enabled = 1
|
|
|
+ edge_trigger = 1
|
|
|
+end
|
|
|
+
|
|
|
+/* FB SECTION
|
|
|
+
|
|
|
+ This section configures the frame buffer
|
|
|
+
|
|
|
+ enabled = <0|1>
|
|
|
+ Enable/disable the peripheral. By default if it is enabled.
|
|
|
+
|
|
|
+ baseaddr = <hex_value>
|
|
|
+ base address of frame buffer
|
|
|
+
|
|
|
+ paladdr = <hex_value>
|
|
|
+ base address of first palette entry
|
|
|
+
|
|
|
+ refresh_rate = <value>
|
|
|
+ number of cycles between screen dumps
|
|
|
+
|
|
|
+ filename = "<filename>"
|
|
|
+ template name for generated names (e.g. "primary" produces "primary0023.bmp")
|
|
|
+*/
|
|
|
+
|
|
|
+section fb
|
|
|
+ enabled = 0
|
|
|
+ baseaddr = 0x97000000
|
|
|
+ refresh_rate = 1000000
|
|
|
+ filename = "primary"
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* KBD SECTION
|
|
|
+
|
|
|
+ This section configures the PS/2 compatible keyboard
|
|
|
+
|
|
|
+ baseaddr = <hex_value>
|
|
|
+ base address of the keyboard device
|
|
|
+
|
|
|
+ rxfile = "<filename>"
|
|
|
+ filename, where to read data from
|
|
|
+*/
|
|
|
+
|
|
|
+section kbd
|
|
|
+ enabled = 0
|
|
|
+ irq = 5
|
|
|
+ baseaddr = 0x94000000
|
|
|
+ rxfile = "kbd.rx"
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+/* ATA SECTION
|
|
|
+
|
|
|
+ This section configures the ATA/ATAPI host controller
|
|
|
+
|
|
|
+ baseaddr = <hex_value>
|
|
|
+ address of first ATA register
|
|
|
+
|
|
|
+ enabled = <0|1>
|
|
|
+ Enable/disable the peripheral. By default if it is enabled.
|
|
|
+
|
|
|
+ irq = <value>
|
|
|
+ irq number for this device
|
|
|
+
|
|
|
+ debug = <value>
|
|
|
+ debug level for ata models.
|
|
|
+ 0: no debug messages
|
|
|
+ 1: verbose messages
|
|
|
+ 3: normal messages (more messages than verbose)
|
|
|
+ 5: debug messages (normal debug messages)
|
|
|
+ 7: flow control messages (debug statemachine flows)
|
|
|
+ 9: low priority message (display everything the code does)
|
|
|
+
|
|
|
+ dev_type0/1 = <value>
|
|
|
+ ata device 0 type
|
|
|
+ 0: NO_CONNeCT: none (not connected)
|
|
|
+ 1: FILE : simulated harddisk
|
|
|
+ 2: LOCAL : local system harddisk
|
|
|
+
|
|
|
+ dev_file0/1 = "<filename>"
|
|
|
+ filename for simulated ATA device
|
|
|
+ valid only if dev_type0 == 1
|
|
|
+
|
|
|
+ dev_size0/1 = <value>
|
|
|
+ size of simulated hard-disk (in MBytes)
|
|
|
+ valid only if dev_type0 == 1
|
|
|
+
|
|
|
+ dev_packet0/1 = <value>
|
|
|
+ 0: simulated ATA device does NOT implement PACKET command feature set
|
|
|
+ 1: simulated ATA device does implement PACKET command feature set
|
|
|
+
|
|
|
+ FIXME: irq number
|
|
|
+*/
|
|
|
+
|
|
|
+section ata
|
|
|
+ enabled = 0
|
|
|
+ baseaddr = 0x9e000000
|
|
|
+ irq = 15
|
|
|
+
|
|
|
+end
|