/* config.h -- Simulator configuration header file
|
/* config.h -- Simulator configuration header file
|
Copyright (C) 1999 Damjan Lampret, lampret@opencores.org
|
Copyright (C) 1999 Damjan Lampret, lampret@opencores.org
|
|
|
This file is part of OpenRISC 1000 Architectural Simulator.
|
This file is part of OpenRISC 1000 Architectural Simulator.
|
|
|
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
(at your option) any later version.
|
(at your option) any later version.
|
|
|
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
GNU General Public License for more details.
|
GNU General Public License for more details.
|
|
|
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|
|
#include <stdio.h>
|
#include <stdio.h>
|
|
|
/* Simulator configuration macros. Eventually this one will be a lot bigger. */
|
/* Simulator configuration macros. Eventually this one will be a lot bigger. */
|
|
|
#define NR_UARTS 4 /* Number of UARTs simulated */
|
#define NR_UARTS 4 /* Number of UARTs simulated */
|
#define NR_DMAS 1 /* Number of DMA controllers */
|
#define NR_DMAS 1 /* Number of DMA controllers */
|
|
#define NR_ETHERNETS 2 /* Number of Ethernet MACs */
|
#define NONE 0
|
#define NONE 0
|
#define VIRTUAL 1
|
#define VIRTUAL 1
|
#define PHYSICAL 2
|
#define PHYSICAL 2
|
|
|
#define STR_SIZE (256)
|
#define STR_SIZE (256)
|
|
|
struct config {
|
struct config {
|
struct {
|
struct {
|
int tagtype;
|
int tagtype;
|
} dc;
|
} dc;
|
|
|
struct {
|
struct {
|
int tagtype;
|
int tagtype;
|
} ic;
|
} ic;
|
|
|
struct {
|
struct {
|
int bpb_sim;
|
int bpb_sim;
|
int btic_sim;
|
int btic_sim;
|
} bp; /* Branch prediction */
|
} bp; /* Branch prediction */
|
int clkcycle_ns; /* Clock cycle in nanoseconds */
|
int clkcycle_ns; /* Clock cycle in nanoseconds */
|
|
|
struct {
|
struct {
|
char *rxfile; /* File for RX */
|
char *rxfile; /* File for RX */
|
char *txfile; /* File for TX (required) */
|
char *txfile; /* File for TX (required) */
|
int jitter; /* CZ 250801 - in msecs...time to block */
|
int jitter; /* CZ 250801 - in msecs...time to block */
|
unsigned long baseaddr; /* Naturally aligned base address */
|
unsigned long baseaddr; /* Naturally aligned base address */
|
} uarts[NR_UARTS];
|
} uarts[NR_UARTS];
|
|
|
struct {
|
struct {
|
unsigned long baseaddr;
|
unsigned long baseaddr;
|
unsigned irq;
|
unsigned irq;
|
} dmas[NR_DMAS];
|
} dmas[NR_DMAS];
|
|
|
|
struct {
|
|
unsigned long baseaddr;
|
|
unsigned dma; /* Which controller is this ethernet "connected" to */
|
|
unsigned tx_channel; /* DMA channel used for TX */
|
|
unsigned rx_channel; /* DMA channel used for RX */
|
|
char *rxfile;
|
|
char *txfile;
|
|
} ethernets[NR_ETHERNETS];
|
|
|
struct {
|
struct {
|
char memory_table_file[STR_SIZE]; /* Memory table filename */
|
char memory_table_file[STR_SIZE]; /* Memory table filename */
|
int enable; /* is MC enabled? */
|
int enable; /* is MC enabled? */
|
unsigned POC; /* power on reset configuration register */
|
unsigned POC; /* power on reset configuration register */
|
} mc;
|
} mc;
|
|
|
int simdebug; /* Simulator debugging */
|
int simdebug; /* Simulator debugging */
|
int profile; /* Is profiler running */
|
int profile; /* Is profiler running */
|
FILE *fprof; /* profiler file */
|
FILE *fprof; /* profiler file */
|
int iprompt; /* Interactive prompt */
|
int iprompt; /* Interactive prompt */
|
int dependstats;/* Calculation of dependency statistics */
|
int dependstats;/* Calculation of dependency statistics */
|
int dependency; /* Calculation of dependency (implied by dependstats) */
|
int dependency; /* Calculation of dependency (implied by dependstats) */
|
int history; /* Instruction stream history remembered by the simulator */
|
int history; /* Instruction stream history remembered by the simulator */
|
int superscalar;/* "Superscalar" simulation */
|
int superscalar;/* "Superscalar" simulation */
|
int slp;
|
int slp;
|
int inhibit_server; /* Don't start up the JTAG proxy server */
|
int inhibit_server; /* Don't start up the JTAG proxy server */
|
int server_port; /* A user specified port number for services */
|
int server_port; /* A user specified port number for services */
|
int pattern_mem; /* A user specified memory initialization pattern */
|
int pattern_mem; /* A user specified memory initialization pattern */
|
int random_mem; /* Initialize the memory with random values */
|
int random_mem; /* Initialize the memory with random values */
|
|
|
char* filename; /* Original Command Simulator file (CZ) */
|
char* filename; /* Original Command Simulator file (CZ) */
|
};
|
};
|
|
|
extern struct config config;
|
extern struct config config;
|
|
|
/* Read environment from a script file. Does not fail - assumes defaukt configuration instead. */
|
/* Read environment from a script file. Does not fail - assumes defaukt configuration instead. */
|
void read_script_file (char *filename);
|
void read_script_file (char *filename);
|
|
|