]> git.sur5r.net Git - u-boot/blob - board/openrisc/openrisc-generic/or1ksim.cfg
powerpc/83xx/km: make local functions and structs static
[u-boot] / board / openrisc / openrisc-generic / or1ksim.cfg
1 /* sim.cfg -- Simulator configuration script file
2    Copyright (C) 2001-2002, Marko Mlinar, markom@opencores.org
3
4 This file is part of OpenRISC 1000 Architectural Simulator.
5 It contains the default configuration and help about configuring
6 the simulator.
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
21
22
23 /* INTRODUCTION
24
25    The ork1sim has various parameters, that are set in configuration files
26    like this one. The user can switch between configurations at startup by
27    specifying the required configuration file with the -f <filename.cfg> option.
28    If no configuration file is specified or1ksim searches for the default
29    configuration file sim.cfg. First it searches for './sim.cfg'. If this
30    file is not found, it searches for '~/or1k/sim.cfg'. If this file is
31    not found too, it reverts to the built-in default configuration.
32
33    NOTE: Users should not rely on the built-in configuration, since the
34          default configuration may differ between version.
35          Rather create a configuration file that sets all critical values.
36
37    This file may contain (standard C) comments only - no // support.
38
39    Configure files may be be included, using:
40    include "file_name_to_include"
41
42    Like normal configuration files, the included file is divided into
43    sections. Each section is described in detail also.
44
45    Some section have subsections. One example of such a subsection is:
46
47    device <index>
48      instance specific parameters...
49    enddevice
50
51    which creates a device instance.
52 */
53
54
55 /* MEMORY SECTION
56
57    This section specifies how the memory is generated and the blocks
58    it consists of.
59
60    type = random/unknown/pattern
61       Specifies the initial memory values.
62       'random' generates random memory using seed 'random_seed'.
63       'pattern' fills memory with 'pattern'.
64       'unknown' does not specify how memory should be generated,
65       leaving the memory in a undefined state. This is the fastest
66       option.
67
68    random_seed = <value>
69       random seed for randomizer, used if type = 'random'.
70
71    pattern = <value>
72       pattern to fill memory, used if type = 'pattern'.
73
74    nmemories = <value>
75       number of memory instances connected
76
77    baseaddr = <hex_value>
78       memory start address
79
80    size = <hex_value>
81       memory size
82
83    name = "<string>"
84       memory block name
85
86    ce = <value>
87       chip enable index of the memory instance
88
89    mc = <value>
90       memory controller this memory is connected to
91
92    delayr = <value>
93       cycles, required for read access, -1 if instance does not support reading
94
95    delayw = <value>
96       cycles, required for write access, -1 if instance does not support writing
97
98    log = "<filename>"
99       filename, where to log memory accesses to, no log, if log command is not specified
100 */
101
102
103 section memory
104   pattern = 0x00
105   type = unknown /* Fastest */
106
107   name = "FLASH"
108   ce = 0
109   mc = 0
110   baseaddr = 0xf0000000
111   size = 0x01000000
112   delayr =  1
113   delayw = -1
114 end
115
116 section memory
117   pattern = 0x00
118   type = unknown /* Fastest */
119
120   name = "RAM"
121   ce = 1
122   mc = 0
123   baseaddr = 0x00000000
124   size = 0x02000000
125   delayr = 1
126   delayw = 1
127 end
128
129 section memory
130   pattern = 0x00
131   type = unknown /* Fastest */
132
133   name = "SRAM"
134   mc = 0
135   ce = 2
136   baseaddr = 0xa4000000
137   size = 0x00100000
138   delayr = 1
139   delayw = 2
140 end
141
142
143 /* IMMU SECTION
144
145     This section configures the Instruction Memory Manangement Unit
146
147     enabled = 0/1
148        '0': disabled
149        '1': enabled
150        (NOTE: UPR bit is set)
151
152     nsets = <value>
153        number of ITLB sets; must be power of two
154
155     nways = <value>
156        number of ITLB ways
157
158     pagesize = <value>
159        instruction page size; must be power of two
160
161     entrysize = <value>
162        instruction entry size in bytes
163
164     ustates = <value>
165        number of ITLB usage states (2, 3, 4 etc., max is 4)
166
167     hitdelay = <value>
168        number of cycles immu hit costs
169
170     missdelay = <value>
171        number of cycles immu miss costs
172 */
173
174 section immu
175   enabled = 1
176   nsets = 64
177   nways = 1
178   pagesize = 8192
179   hitdelay = 0
180   missdelay = 0
181 end
182
183
184 /* DMMU SECTION
185
186     This section configures the Data Memory Manangement Unit
187
188     enabled = 0/1
189        '0': disabled
190        '1': enabled
191        (NOTE: UPR bit is set)
192
193     nsets = <value>
194        number of DTLB sets; must be power of two
195
196     nways = <value>
197        number of DTLB ways
198
199     pagesize = <value>
200        data page size; must be power of two
201
202     entrysize = <value>
203        data entry size in bytes
204
205     ustates = <value>
206        number of DTLB usage states (2, 3, 4 etc., max is 4)
207
208     hitdelay = <value>
209        number of cycles dmmu hit costs
210
211     missdelay = <value>
212        number of cycles dmmu miss costs
213 */
214
215 section dmmu
216   enabled = 1
217   nsets = 64
218   nways = 1
219   pagesize = 8192
220   hitdelay = 0
221   missdelay = 0
222 end
223
224
225 /* IC SECTION
226
227    This section configures the Instruction Cache
228
229    enabled = 0/1
230        '0': disabled
231        '1': enabled
232       (NOTE: UPR bit is set)
233
234    nsets = <value>
235       number of IC sets; must be power of two
236
237    nways = <value>
238       number of IC ways
239
240    blocksize = <value>
241       IC block size in bytes; must be power of two
242
243    ustates = <value>
244       number of IC usage states (2, 3, 4 etc., max is 4)
245
246    hitdelay = <value>
247       number of cycles ic hit costs
248
249     missdelay = <value>
250       number of cycles ic miss costs
251 */
252
253 section ic
254   enabled = 1
255   nsets = 512
256   nways = 1
257   blocksize = 16
258   hitdelay = 1
259   missdelay = 1
260 end
261
262
263 /* DC SECTION
264
265    This section configures the Data Cache
266
267    enabled = 0/1
268        '0': disabled
269        '1': enabled
270       (NOTE: UPR bit is set)
271
272    nsets = <value>
273       number of DC sets; must be power of two
274
275    nways = <value>
276       number of DC ways
277
278    blocksize = <value>
279       DC block size in bytes; must be power of two
280
281    ustates = <value>
282       number of DC usage states (2, 3, 4 etc., max is 4)
283
284    load_hitdelay = <value>
285       number of cycles dc load hit costs
286
287    load_missdelay = <value>
288       number of cycles dc load miss costs
289
290    store_hitdelay = <value>
291       number of cycles dc load hit costs
292
293    store_missdelay = <value>
294       number of cycles dc load miss costs
295 */
296
297 section dc
298   enabled = 1
299   nsets = 512
300   nways = 1
301   blocksize = 16
302   load_hitdelay = 1
303   load_missdelay = 1
304   store_hitdelay = 1
305   store_missdelay = 1
306 end
307
308
309 /* SIM SECTION
310
311   This section specifies how or1ksim should behave.
312
313   verbose = 0/1
314        '0': don't print extra messages
315        '1': print extra messages
316
317   debug = 0-9
318       0  : no debug messages
319       1-9: debug message level.
320            higher numbers produce more messages
321
322   profile = 0/1
323       '0': don't generate profiling file 'sim.profile'
324       '1': don't generate profiling file 'sim.profile'
325
326   prof_fn = "<filename>"
327       optional filename for the profiling file.
328       valid only if 'profile' is set
329
330   mprofile = 0/1
331       '0': don't generate memory profiling file 'sim.mprofile'
332       '1': generate memory profiling file 'sim.mprofile'
333
334   mprof_fn = "<filename>"
335       optional filename for the memory profiling file.
336       valid only if 'mprofile' is set
337
338   history = 0/1
339       '0': don't track execution flow
340       '1': track execution flow
341       Execution flow can be tracked for the simulator's
342       'hist' command. Useful for back-trace debugging.
343
344   iprompt = 0/1
345      '0': start in <not interactive prompt> (so what do we start in ???)
346      '1': start in interactive prompt.
347
348   exe_log = 0/1
349       '0': don't generate execution log.
350       '1': generate execution log.
351
352   exe_log = default/hardware/simple/software
353       type of execution log, default is used when not specified
354
355   exe_log_start = <value>
356       index of first instruction to start logging, default = 0
357
358   exe_log_end = <value>
359       index of last instruction to end logging; not limited, if omitted
360
361   exe_log_marker = <value>
362       <value> specifies number of instructions before horizontal marker is
363       printed; if zero, markers are disabled (default)
364
365   exe_log_fn = "<filename>"
366       filename for the exection log file.
367       valid only if 'exe_log' is set
368
369   clkcycle = <value>[ps|ns|us|ms]
370       specifies time measurement for one cycle
371 */
372
373 section sim
374   verbose = 1
375   debug = 0
376   profile = 0
377   history = 0
378
379   clkcycle = 10ns
380 end
381
382
383 /* SECTION VAPI
384
385     This section configures the Verification API, used for Advanced
386     Core Verification.
387
388     enabled = 0/1
389         '0': disbable VAPI server
390         '1': enable/start VAPI server
391
392     server_port = <value>
393         TCP/IP port to start VAPI server on
394
395     log_enabled = 0/1
396        '0': disable VAPI requests logging
397        '1': enable VAPI requests logging
398
399     hide_device_id = 0/1
400        '0': don't log device id (for compatability with old version)
401        '1': log device id
402
403
404     vapi_fn = <filename>
405        filename for the log file.
406        valid only if log_enabled is set
407 */
408
409 section VAPI
410   enabled = 0
411   server_port = 9998
412   log_enabled = 0
413   vapi_log_fn = "vapi.log"
414 end
415
416
417 /* CPU SECTION
418
419    This section specifies various CPU parameters.
420
421    ver = <value>
422    rev = <value>
423       specifies version and revision of the CPU used
424
425    upr = <value>
426       changes the upr register
427
428    sr = <value>
429       sets the initial Supervision Register value
430       supervisor mode (SM) and fixed one (FO) set = 0x8001
431       exception prefix high (EPH, vectors@0xf0000000) = 0x4000
432       together, (SM | FO | EPH) = 0xc001
433    superscalar = 0/1
434       '0': CPU is scalar
435       '1': CPU is superscalar
436       (modify cpu/or32/execute.c to tune superscalar model)
437
438    hazards = 0/1
439       '0': don't track data hazards in superscalar CPU
440       '1': track data hazards in superscalar CPU
441       If tracked, data hazards can be displayed using the
442       simulator's 'r' command.
443
444    dependstats = 0/1
445       '0': don't calculate inter-instruction dependencies.
446       '1': calculate inter-instruction dependencies.
447       If calculated, inter-instruction dependencies can be
448       displayed using the simulator's 'stat' command.
449
450    sbuf_len = <value>
451       length of store buffer (<= 256), 0 = disabled
452 */
453
454 section cpu
455   ver = 0x12
456   cfg = 0x00
457   rev = 0x01
458   sr =  0x8001 /*SPR_SR_FO  | SPR_SR_SM | SPR_SR_EPH */
459   /* upr = */
460   superscalar = 0
461   hazards = 0
462   dependstats = 0
463   sbuf_len = 0
464 end
465
466
467 /* PM SECTION
468
469    This section specifies Power Management parameters
470
471    enabled = 0/1
472       '0': disable power management
473       '1': enable power management
474 */
475
476 section pm
477   enabled = 0
478 end
479
480
481 /* BPB SECTION
482
483    This section specifies how branch prediction should behave.
484
485    enabled = 0/1
486      '0': disable branch prediction
487      '1': enable branch prediction
488
489    btic = 0/1
490      '0': disable branch target instruction cache model
491      '1': enable branch target instruction cache model
492
493    sbp_bf_fwd = 0/1
494      Static branch prediction for 'l.bf'
495      '0': don't use forward prediction
496      '1': use forward prediction
497
498    sbp_bnf_fwd = 0/1
499      Static branch prediction for 'l.bnf'
500      '0': don't use forward prediction
501      '1': use forward prediction
502
503    hitdelay = <value>
504        number of cycles bpb hit costs
505
506    missdelay = <value>
507        number of cycles bpb miss costs
508 */
509
510 section bpb
511   enabled = 0
512   btic = 0
513   sbp_bf_fwd = 0
514   sbp_bnf_fwd = 0
515   hitdelay = 0
516   missdelay = 0
517 end
518
519
520 /* DEBUG SECTION
521
522    This sections specifies how the debug unit should behave.
523
524    enabled = 0/1
525       '0': disable debug unit
526       '1': enable debug unit
527
528    gdb_enabled = 0/1
529       '0': don't start gdb server
530       '1': start gdb server at port 'server_port'
531
532    server_port = <value>
533       TCP/IP port to start gdb server on
534       valid only if gdb_enabled is set
535
536    vapi_id = <hex_value>
537       Used to create "fake" vapi log file containing the JTAG proxy messages.
538 */
539 section debug
540   enabled = 0
541 /*  gdb_enabled = 0 */
542 /*  server_port = 9999*/
543   rsp_enabled = 1
544   rsp_port = 50001
545 end
546
547
548 /* MC SECTION
549
550    This section configures the memory controller
551
552    enabled = 0/1
553      '0': disable memory controller
554      '1': enable memory controller
555
556    baseaddr = <hex_value>
557       address of first MC register
558
559    POC = <hex_value>
560       Power On Configuration register
561
562    index = <value>
563       Index of this memory controller amongst all the memory controllers
564 */
565
566 section mc
567   enabled = 0
568   baseaddr = 0x93000000
569   POC = 0x00000008                 /* Power on configuration register */
570   index = 0
571 end
572
573
574 /* UART SECTION
575
576    This section configures the UARTs
577
578      enabled = <0|1>
579         Enable/disable the peripheral.  By default if it is enabled.
580
581      baseaddr = <hex_value>
582         address of first UART register for this device
583
584
585      channel = <channeltype>:<args>
586
587         The channel parameter indicates the source of received UART characters
588         and the sink for transmitted UART characters.
589
590         The <channeltype> can be either "file", "xterm", "tcp", "fd", or "tty"
591         (without quotes).
592
593           A) To send/receive characters from a pair of files, use a file
594              channel:
595
596                channel=file:<rxfile>,<txfile>
597
598           B) To create an interactive terminal window, use an xterm channel:
599
600                channel=xterm:[<xterm_arg>]*
601
602           C) To create a bidirectional tcp socket which one could, for example,
603              access via telnet, use a tcp channel:
604
605                channel=tcp:<port number>
606
607           D) To cause the UART to read/write from existing numeric file
608              descriptors, use an fd channel:
609
610                channel=fd:<rx file descriptor num>,<tx file descriptor num>
611
612           E) To connect the UART to a physical serial port, create a tty
613              channel:
614
615                channel=tty:device=/dev/ttyS0,baud=9600
616
617      irq = <value>
618         irq number for this device
619
620      16550 = 0/1
621         '0': this device is a UART16450
622         '1': this device is a UART16550
623
624      jitter = <value>
625         in msecs... time to block, -1 to disable it
626
627      vapi_id = <hex_value>
628         VAPI id of this instance
629 */
630
631 section uart
632   enabled = 1
633   baseaddr = 0x90000000
634   irq = 2
635   /* channel = "file:uart0.rx,uart0.tx" */
636   /* channel = "tcp:10084" */
637   channel = "xterm:"
638   jitter = -1                     /* async behaviour */
639   16550 = 1
640 end
641
642
643 /* DMA SECTION
644
645    This section configures the DMAs
646
647      enabled = <0|1>
648         Enable/disable the peripheral.  By default if it is enabled.
649
650      baseaddr = <hex_value>
651         address of first DMA register for this device
652
653      irq = <value>
654         irq number for this device
655
656      vapi_id = <hex_value>
657         VAPI id of this instance
658 */
659
660 section dma
661   enabled = 1
662   baseaddr = 0x9a000000
663   irq = 11
664 end
665
666
667 /* ETHERNET SECTION
668
669    This section configures the ETHERNETs
670
671      enabled = <0|1>
672         Enable/disable the peripheral.  By default if it is enabled.
673
674      baseaddr = <hex_value>
675         address of first ethernet register for this device
676
677      dma = <value>
678         which controller is this ethernet "connected" to
679
680      irq = <value>
681         ethernet mac IRQ level
682
683      rtx_type = <value>
684         use 0 - file interface, 1 - socket interface
685
686      rx_channel = <value>
687         DMA channel used for RX
688
689      tx_channel = <value>
690         DMA channel used for TX
691
692      rxfile = "<filename>"
693         filename, where to read data from
694
695      txfile = "<filename>"
696         filename, where to write data to
697
698      sockif = "<ifacename>"
699         interface name of ethernet socket
700
701      vapi_id = <hex_value>
702         VAPI id of this instance
703 */
704
705 section ethernet
706   enabled = 1
707   baseaddr = 0x92000000
708   /* dma = 0 */
709   irq = 4
710   rtx_type = "tap"
711   tap_dev = "tap0"
712   /* tx_channel = 0 */
713   /* rx_channel = 1 */
714   rxfile = "eth0.rx"
715   txfile = "eth0.tx"
716   sockif = "eth0"
717 end
718
719
720 /* GPIO SECTION
721
722    This section configures the GPIOs
723
724      enabled = <0|1>
725         Enable/disable the peripheral.  By default if it is enabled.
726
727      baseaddr = <hex_value>
728         address of first GPIO register for this device
729
730      irq = <value>
731         irq number for this device
732
733      base_vapi_id = <hex_value>
734         first VAPI id of this instance
735         GPIO uses 8 consecutive VAPI IDs
736 */
737
738 section gpio
739   enabled = 0
740   baseaddr = 0x91000000
741   irq = 3
742   base_vapi_id = 0x0200
743 end
744
745 /* VGA SECTION
746
747     This section configures the VGA/LCD controller
748
749       enabled = <0|1>
750         Enable/disable the peripheral.  By default if it is enabled.
751
752       baseaddr = <hex_value>
753         address of first VGA register
754
755       irq = <value>
756         irq number for this device
757
758       refresh_rate = <value>
759         number of cycles between screen dumps
760
761       filename = "<filename>"
762         template name for generated names (e.g. "primary" produces "primary0023.bmp")
763 */
764
765 section vga
766   enabled = 0
767   baseaddr = 0x97100000
768   irq = 8
769   refresh_rate = 100000
770   filename = "primary"
771 end
772
773
774 /* TICK TIMER SECTION
775
776     This section configures tick timer
777
778     enabled = 0/1
779       whether tick timer is enabled
780 */
781
782 section pic
783   enabled = 1
784   edge_trigger = 1
785 end
786
787 /* FB SECTION
788
789     This section configures the frame buffer
790
791     enabled = <0|1>
792       Enable/disable the peripheral.  By default if it is enabled.
793
794     baseaddr = <hex_value>
795       base address of frame buffer
796
797     paladdr = <hex_value>
798       base address of first palette entry
799
800     refresh_rate = <value>
801       number of cycles between screen dumps
802
803     filename = "<filename>"
804       template name for generated names (e.g. "primary" produces "primary0023.bmp")
805 */
806
807 section fb
808   enabled = 0
809   baseaddr = 0x97000000
810   refresh_rate = 1000000
811   filename = "primary"
812 end
813
814
815 /* KBD SECTION
816
817     This section configures the PS/2 compatible keyboard
818
819     baseaddr = <hex_value>
820       base address of the keyboard device
821
822     rxfile = "<filename>"
823       filename, where to read data from
824 */
825
826 section kbd
827   enabled = 0
828   irq = 5
829   baseaddr = 0x94000000
830   rxfile = "kbd.rx"
831 end
832
833
834 /* ATA SECTION
835
836     This section configures the ATA/ATAPI host controller
837
838       baseaddr = <hex_value>
839         address of first ATA register
840
841       enabled = <0|1>
842         Enable/disable the peripheral.  By default if it is enabled.
843
844       irq = <value>
845         irq number for this device
846
847       debug = <value>
848         debug level for ata models.
849         0: no debug messages
850         1: verbose messages
851         3: normal messages (more messages than verbose)
852         5: debug messages (normal debug messages)
853         7: flow control messages (debug statemachine flows)
854         9: low priority message (display everything the code does)
855
856       dev_type0/1 = <value>
857         ata device 0 type
858         0: NO_CONNeCT: none (not connected)
859         1: FILE      : simulated harddisk
860         2: LOCAL     : local system harddisk
861
862       dev_file0/1 = "<filename>"
863         filename for simulated ATA device
864         valid only if dev_type0 == 1
865
866       dev_size0/1 = <value>
867         size of simulated hard-disk (in MBytes)
868         valid only if dev_type0 == 1
869
870       dev_packet0/1 = <value>
871         0: simulated ATA device does NOT implement PACKET command feature set
872         1: simulated ATA device does implement PACKET command feature set
873
874    FIXME: irq number
875 */
876
877 section ata
878   enabled = 0
879   baseaddr = 0x9e000000
880   irq = 15
881
882 end