/* 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.

 * SPDX-License-Identifier:	GPL-2.0+
 */


/* 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
