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

Subversion Repositories or1k

[/] [or1k/] [tags/] [tn_m001/] [or1ksim/] [toplevel.c] - Diff between revs 257 and 261

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 257 Rev 261
Line 47... Line 47...
#endif /* HAVE_LIBREADLINE */
#endif /* HAVE_LIBREADLINE */
 
 
#include "arch.h"
#include "arch.h"
#include "parse.h"
#include "parse.h"
#include "abstract.h"
#include "abstract.h"
 
#include "labels.h"
#include "trace.h"
#include "trace.h"
#include "execute.h"
#include "execute.h"
#include "sim-config.h"
#include "sim-config.h"
#include "spr_defs.h"
#include "spr_defs.h"
#include "dma.h"
#include "dma.h"
Line 76... Line 77...
static int gdb_read(void*,int);
static int gdb_read(void*,int);
static int gdb_write(void*,int);
static int gdb_write(void*,int);
void BlockJTAG(void);
void BlockJTAG(void);
 
 
/* CVS revision number. */
/* CVS revision number. */
const char rcsrev[] = "$Revision: 1.30 $";
const char rcsrev[] = "$Revision: 1.31 $";
 
 
/* Continuos run versus single step tracing switch. */
/* Continuos run versus single step tracing switch. */
int cont_run;
int cont_run;
 
 
/* History of execution */
/* History of execution */
Line 223... Line 224...
     char *argv[];
     char *argv[];
{
{
        char *linestr;
        char *linestr;
        char item1[500], b2[500], prev_str[500] = "";
        char item1[500], b2[500], prev_str[500] = "";
        char *redirstr;
        char *redirstr;
        int hush;
        int hush = 0;
        unsigned long endaddr = 0xFFFFFFFF;
        unsigned long endaddr = 0xFFFFFFFF;
        int first_prompt = 1;
        int first_prompt = 1;
        int trace_fd = 0;
        int trace_fd = 0;
 
 
        srand(getpid());
        srand(getpid());
Line 277... Line 278...
      fprintf(config.fprof, "+00000000 FFFFFFFF FFFFFFFF main\n");
      fprintf(config.fprof, "+00000000 FFFFFFFF FFFFFFFF main\n");
  }
  }
 
 
  /* Read configuration file.  */
  /* Read configuration file.  */
  read_script_file("sim.cfg");
  read_script_file("sim.cfg");
 
  init_labels();
 
  init_breakpoints();
        print_config();
        print_config();
        signal(SIGINT, ctrl_c);
        signal(SIGINT, ctrl_c);
        initstats();
        initstats();
        build_automata();
        build_automata();
 
 
Line 315... Line 318...
                  for (cur_area = dev_list; cur_area; cur_area = cur_area->next)
                  for (cur_area = dev_list; cur_area; cur_area = cur_area->next)
        for(i = 0; i < cur_area->size; i++) {
        for(i = 0; i < cur_area->size; i++) {
          val = random();
          val = random();
                      if(random() > RAND_MAX/2)
                      if(random() > RAND_MAX/2)
                        val |= 0x80000000;
                        val |= 0x80000000;
          set_mem8(i + cur_area->start, val, &breakpoint);
          set_mem8(i + cur_area->addr_compare, val, &breakpoint);
        }
        }
    } else if(config.pattern_mem) {
    } else if(config.pattern_mem) {
                        int breakpoint = 0;
                        int breakpoint = 0;
                  for (cur_area = dev_list; cur_area; cur_area = cur_area->next)
                  for (cur_area = dev_list; cur_area; cur_area = cur_area->next)
        for(i = 0; i < cur_area->size; i++)
        for(i = 0; i < cur_area->size; i++)
          set_mem8(i + cur_area->start, config.pattern_mem, &breakpoint);
          set_mem8(i + cur_area->addr_compare, config.pattern_mem, &breakpoint);
    } else {
    } else {
                        int breakpoint = 0;
                        int breakpoint = 0;
                  for (cur_area = dev_list; cur_area; cur_area = cur_area->next)
                  for (cur_area = dev_list; cur_area; cur_area = cur_area->next)
        for(i = 0; i < cur_area->size; i++)
        for(i = 0; i < cur_area->size; i++)
          set_mem8(i + cur_area->start, 0, &breakpoint);
          set_mem8(i + cur_area->addr_compare, 0, &breakpoint);
    }
    }
  }
  }
 
 
        uart_reset();
        uart_reset();
        dma_reset();
        dma_reset();
        eth_reset();
        eth_reset();
        tick_reset();
        tick_reset();
        pm_reset();
        pm_reset();
        pic_reset();
        pic_reset();
 
        mc_reset();
        reset();
        reset();
 
 
        while(1) {
        while(1) {
                if (config.iprompt) {
                if (config.iprompt) {
                  if(server_fd)
                  if(server_fd)
Line 623... Line 627...
                        printf("%s: Unknown command.\n", linestr);
                        printf("%s: Unknown command.\n", linestr);
                }
                }
 
 
                /* MM: 'run -1' means endless execution.  */
                /* MM: 'run -1' means endless execution.  */
                while(cont_run != 0) {
                while(cont_run != 0) {
 
                  int debug_slowdown = DEBUG_SLOWDOWN;
                  extern int cycle_delay;  /* Added by CZ 27/05/01. Set during exception. */
                  extern int cycle_delay;  /* Added by CZ 27/05/01. Set during exception. */
                  extern int cpu_stalled;  /* CZ from debug_interface */
                  extern int cpu_stalled;  /* CZ from debug_interface */
 
 
                  if(cpu_stalled)
                  if(cpu_stalled)
                    {
                    {
Line 694... Line 699...
                          tick_clock();
                          tick_clock();
                        pm_clock();
                        pm_clock();
                        uart_clock();
                        uart_clock();
                        dma_clock();
                        dma_clock();
                        eth_clock();
                        eth_clock();
 
 
#ifndef DEBUGMOD_OFF
#ifndef DEBUGMOD_OFF
 
      if (debug_slowdown-- == 0) {
 
        debug_slowdown = DEBUG_SLOWDOWN;
                        HandleServerSocket(false); /* block & check_stdin = false */
                        HandleServerSocket(false); /* block & check_stdin = false */
 
                        }
#endif
#endif
                }
                }
                hush = 0;
                hush = 0;
                fflush(stdout);
                fflush(stdout);
                freopen("/dev/fd/0", "w+", stdout);
                freopen("/dev/fd/0", "w+", stdout);
Line 824... Line 833...
void debugmem( unsigned long from, unsigned long to )
void debugmem( unsigned long from, unsigned long to )
{
{
  int i;
  int i;
  printf("starting to dump mem...\n");
  printf("starting to dump mem...\n");
  for(i=from; i<to; ) {
  for(i=from; i<to; ) {
    struct mem_entry *entry;
    struct label_entry *entry;
    unsigned int _insn;
    unsigned int _insn;
    printf("(%x) ", i);
    printf("i=%x :: ", i);
    if (verify_memoryarea(i) && cur_area->getentry && (entry = cur_area->getentry(i)) && entry->label)
 
      printf("label: %s |", entry->label->name);
    if (verify_memoryarea(i) && (entry = get_label(i)))
 
      printf("label: %s |", entry->name);
 
 
    iqueue[0].insn = _insn = evalsim_mem32(i);
    iqueue[0].insn = _insn = evalsim_mem32(i);
    iqueue[0].insn_index = insn_decode(_insn);
    iqueue[0].insn_index = insn_decode(_insn);
    disassemble_insn (_insn);
    disassemble_insn (_insn);
    printf("%08x %s\n", _insn, disassembled);
    printf("%08x %s\n", _insn, disassembled);

powered by: WebSVN 2.1.0

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