send mostly 0 (ignore) for EXTEST using o[offset]=010
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 12 Jun 2016 13:41:46 +0000 (15:41 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 12 Jun 2016 13:41:46 +0000 (15:41 +0200)
openocd-jtag-boundary-scan.pl

index 393ae5d..3169f1b 100755 (executable)
@@ -180,9 +180,13 @@ if ( $cmd =~ /(p|o)(\d+)=(\d+)/ ) {
                        . substr($old_bsr,$bit+3)
                        ;
 
+
        } elsif ( $what eq 'o' && $p < 288 ) {
                my $o = $p;
-               $b = substr($old_bsr,0,$o) . reverse $v . substr($old_bsr,$o+length($v));
+               #$b = substr($old_bsr,0,$o) . reverse $v . substr($old_bsr,$o+length($v));
+               $b = ( "0" x $o ) . reverse $v . ( "0" x ( length($old_bsr) - $o - length($v) ) );
+warn "XXX",length($old_bsr), " == ",length($b);
+               $old_bsr = "0" x length($old_bsr);
        } else {
                print "IGNORED ",dump( $what, $p, $v );
        }
@@ -191,10 +195,10 @@ if ( $cmd =~ /(p|o)(\d+)=(\d+)/ ) {
 
        diff_bits( $BSR, $b ), $/;
 
-       print $sock "irscan x300.tap 0x55\n"; # SAMPLE/PRELOAD
+#      print $sock "irscan x300.tap 0x55\n"; # SAMPLE/PRELOAD
        print $sock "drscan x300.tap 288 0x", bin2hex($b), "\n";
        print $sock "irscan x300.tap 0x00\n"; # EXTEST
-       print $sock "drscan x300.tap 288 0x", bin2hex($b), "\n";
+#      print $sock "drscan x300.tap 288 0x", bin2hex($b), "\n";
 
 } elsif ( $cmd =~ m/\?/ ) {
        $last_bits = '';