From b115cba9263cdbd38bb1fe9794c32a4f6f7f9fdf Mon Sep 17 00:00:00 2001 From: "Walter F.J. Mueller" Date: Mon, 17 Apr 2017 21:21:04 +0200 Subject: [PATCH] tcl support for DEUNA --- tools/tcl/ibd_deuna/util.tcl | 96 +++++++++++++++++++++++++++++++++++ tools/tcl/rw11util/regmap.tcl | 6 ++- tools/tcl/setup_packages | 3 +- 3 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 tools/tcl/ibd_deuna/util.tcl diff --git a/tools/tcl/ibd_deuna/util.tcl b/tools/tcl/ibd_deuna/util.tcl new file mode 100644 index 00000000..0387bb22 --- /dev/null +++ b/tools/tcl/ibd_deuna/util.tcl @@ -0,0 +1,96 @@ +# $Id: util.tcl 874 2017-04-14 17:53:07Z mueller $ +# +# Copyright 2014-2017 by Walter F.J. Mueller +# +# This program is free software; you may redistribute and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation, either version 2, or at your option any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for complete details. +# +# Revision History: +# Date Rev Version Comment +# 2017-04-14 874 1.0 Initial version +# 2014-06-09 561 0.1 First draft +# + +package provide ibd_deuna 1.0 + +package require rlink +package require rw11util +package require rw11 + +namespace eval ibd_deuna { + # + # setup register descriptions for ibd_deuna -------------------------------- + # + + set pcmdtxt "s:NOOP:GETPCB:GETCMD:SELFTST:START:BOOT:CU06:CU07:PDMD:CU11:CU12:CU13:CU14:CU15:CU16:STOP" + regdsc PR0 {seri 15} {pcei 14} {rxi 13} {txi 12} {dni 11} {rcbi 10} \ + {usci 8} {intr 7} {inte 6} {rset 5} \ + [list "pcmd" 3 4 $pcmdtxt] + regdsc PR0RR [list "pcmdbp" 15 4 $pcmdtxt] {busy 9} {pcwwb 8}\ + {intr 7} {inte 6} {rset 5} {brst 4} \ + [list "pcmd" 3 4 $pcmdtxt] + regdsc PR0RW {seri 15} {pcei 14} {rxi 13} {txi 12} {dni 11} {rcbi 10} \ + {busy 9} {usci 8} {rset 5} {brst 4} + unset pcmdtxt + + variable PCMD_NOOP [bvi b4 "0000"] + variable PCMD_GETPCB [bvi b4 "0001"] + variable PCMD_GETCMD [bvi b4 "0010"] + variable PCMD_SELFTST [bvi b4 "0011"] + variable PCMD_START [bvi b4 "0100"] + variable PCMD_BOOT [bvi b4 "0101"] + variable PCMD_PDMD [bvi b4 "1000"] + variable PCMD_STOP [bvi b4 "1111"] + + regdsc PR1 {xpwr 15} {icab 14} {pcto 7} {deuna 4} \ + {state 3 4 "s:RESET:PLOAD:READY:RUN:SU04:UHALT:NHALT:NUHALT:PHALT:SU11:SU12:SU13:SU14:SU15:SU16:SLOAD"} + + variable STATE_RESET [bvi b4 "0000"] + variable STATE_PLOAD [bvi b4 "0001"] + variable STATE_READY [bvi b4 "0010"] + variable STATE_RUN [bvi b4 "0011"] + variable STATE_UHALT [bvi b4 "0101"] + variable STATE_NHALT [bvi b4 "0110"] + variable STATE_NUHALT [bvi b4 "0111"] + variable STATE_PHALT [bvi b4 "1000"] + variable STATE_SLOAD [bvi b4 "1111"] + + rw11util::regmap_add ibd_deuna xu?.pr0 {l? PR0 rr PR0RR rw PR0RW} + rw11util::regmap_add ibd_deuna xu?.pr1 {?? PR1} + + variable ANUM 9 + + # + # setup: create controller with default attributes ------------------------- + # + proc setup {{cpu "cpu0"}} { + return [rw11::setup_cntl $cpu "deuna" "xua"] + } + + # + # rdump: register dump - rem view ------------------------------------------ + # + proc rdump {{cpu "cpu0"}} { + set rval {} + $cpu cp -ribr "xua.pr0" pr0 \ + -ribr "xua.pr1" pr1 \ + -ribr "xua.pr2" pr2 \ + -ribr "xua.pr3" pr3 + + set pcbb [expr {$pr2 + ($pr3<<16) }] + + append rval "Controller registers:" + append rval [format "\n pr0: %6.6o %s" $pr0 [regtxt ibd_deuna::PR0 $pr0]] + append rval [format "\n pr1: %6.6o %s" $pr1 [regtxt ibd_deuna::PR1 $pr1]] + append rval [format "\n pr2: %6.6o" $pr2] + append rval [format "\n pr3: %6.6o %s" $pr3 [format "pcbb: %7.7o" $pcbb]] + + return $rval + } +} diff --git a/tools/tcl/rw11util/regmap.tcl b/tools/tcl/rw11util/regmap.tcl index 2c0199e9..dfcf7e6a 100644 --- a/tools/tcl/rw11util/regmap.tcl +++ b/tools/tcl/rw11util/regmap.tcl @@ -1,6 +1,6 @@ -# $Id: regmap.tcl 720 2015-12-28 14:52:45Z mueller $ +# $Id: regmap.tcl 858 2017-03-05 17:41:37Z mueller $ # -# Copyright 2015- by Walter F.J. Mueller +# Copyright 2015-2017 by Walter F.J. Mueller # # This program is free software; you may redistribute and/or modify it under # the terms of the GNU General Public License as published by the Free @@ -13,6 +13,7 @@ # # Revision History: # Date Rev Version Comment +# 2017-03-04 858 1.0.1 add ibd_deuna # 2015-12-28 720 1.0 Initial version # 2015-12-26 719 0.1 First draft # @@ -82,6 +83,7 @@ namespace eval rw11util { variable regmap_loaded package require rw11 package require ibd_dl11 + package require ibd_deuna package require ibd_ibmon package require ibd_lp11 package require ibd_pc11 diff --git a/tools/tcl/setup_packages b/tools/tcl/setup_packages index da36860b..ad46154b 100755 --- a/tools/tcl/setup_packages +++ b/tools/tcl/setup_packages @@ -1,5 +1,5 @@ #! /usr/bin/env tclshcpp -# $Id: setup_packages 741 2016-03-12 23:49:03Z mueller $ +# $Id: setup_packages 847 2017-01-29 22:38:42Z mueller $ # pkg_mkIndex -verbose ../lib \ librlinktpp.so \ @@ -19,6 +19,7 @@ pkg_mkIndex -verbose rbsysmon *.tcl pkg_mkIndex -verbose rw11 *.tcl pkg_mkIndex -verbose rw11util *.tcl # +pkg_mkIndex -verbose ibd_deuna *.tcl pkg_mkIndex -verbose ibd_dl11 *.tcl pkg_mkIndex -verbose ibd_ibmon *.tcl pkg_mkIndex -verbose ibd_lp11 *.tcl