aboutsummaryrefslogtreecommitdiff
path: root/sim/mips/interp.c
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@redhat.com>1998-06-09 16:54:09 +0000
committerFrank Ch. Eigler <fche@redhat.com>1998-06-09 16:54:09 +0000
commitcc9bc93202f868d3e6bd38e96a292d775285d5d8 (patch)
tree62edf34b91d661ab2ccd1d9e6487215aaa434c90 /sim/mips/interp.c
parent895a7dc2aa8fc1903f0bd3e160ae2eccfbb328f4 (diff)
downloadbinutils-cc9bc93202f868d3e6bd38e96a292d775285d5d8.zip
binutils-cc9bc93202f868d3e6bd38e96a292d775285d5d8.tar.gz
binutils-cc9bc93202f868d3e6bd38e96a292d775285d5d8.tar.bz2
* Updates to tx3904 peripheral simulations for ECC.
Tue Jun 9 12:29:50 1998 Frank Ch. Eigler <fche@cygnus.com> * dv-tx3904cpu.c (deliver_*_interrupt,*_port_event): Set the CAUSE register upon non-zero interrupt event level, clear upon zero event value. * dv-tx3904irc.c (*_port_event): Handle deactivated interrupt signal by passing zero event value. (*_io_{read,write}_buffer): Endianness fixes. * dv-tx3904tmr.c (*_io_{read,write}_buffer): Endianness fixes. (deliver_*_tick): Reduce sim event interval to 75% of count interval. * interp.c (sim_open): Added jmr3904pal board type that adds PAL-based serial I/O and timer module at base address 0xFFFF0000.
Diffstat (limited to 'sim/mips/interp.c')
-rw-r--r--sim/mips/interp.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/sim/mips/interp.c b/sim/mips/interp.c
index f35674a..104e0d8 100644
--- a/sim/mips/interp.c
+++ b/sim/mips/interp.c
@@ -363,6 +363,8 @@ static const OPTION mips_options[] =
/* start-sanitize-tx3904 */
#define BOARD_JMR3904 "jmr3904"
"|" BOARD_JMR3904
+#define BOARD_JMR3904_PAL "jmr3904pal"
+ "|" BOARD_JMR3904_PAL
#define BOARD_JMR3904_DEBUG "jmr3904debug"
"|" BOARD_JMR3904_DEBUG
/* end-sanitize-tx3904 */
@@ -481,6 +483,7 @@ sim_open (kind, cb, abfd, argv)
#if (WITH_HW)
if (board != NULL
&& (strcmp(board, BOARD_JMR3904) == 0 ||
+ strcmp(board, BOARD_JMR3904_PAL) == 0 ||
strcmp(board, BOARD_JMR3904_DEBUG) == 0))
{
/* match VIRTUAL memory layout of JMR-TX3904 board */
@@ -518,6 +521,19 @@ sim_open (kind, cb, abfd, argv)
sim_hw_parse (sd, "/tx3904tmr@0xfffff100 > int tmr1 /tx3904irc");
sim_hw_parse (sd, "/tx3904tmr@0xfffff200 > int tmr2 /tx3904irc");
+ /* add PAL timer & I/O module */
+ if(! strcmp(board, BOARD_JMR3904_PAL))
+ {
+ /* the device */
+ sim_hw_parse (sd, "/pal@0xffff0000");
+ sim_hw_parse (sd, "/pal@0xffff0000/reg 0xffff0000 64");
+
+ /* wire up interrupt ports to irc */
+ sim_hw_parse (sd, "/pal@0x31000000 > countdown tmr0 /tx3904irc");
+ sim_hw_parse (sd, "/pal@0x31000000 > timer tmr1 /tx3904irc");
+ sim_hw_parse (sd, "/pal@0x31000000 > int int0 /tx3904irc");
+ }
+
if(! strcmp(board, BOARD_JMR3904_DEBUG))
{
/* -- DEBUG: glue interrupt generators --- */