From 45d6961fb029c61d32775897f530fa4de410dd30 Mon Sep 17 00:00:00 2001 From: Jan Michel Date: Fri, 11 Jul 2014 15:23:04 +0200 Subject: [PATCH] fixed SPI when lock bit is stuck --- web/htdocs/commands/getpadiwa.pl | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/web/htdocs/commands/getpadiwa.pl b/web/htdocs/commands/getpadiwa.pl index d4b7a5d..b704c60 100755 --- a/web/htdocs/commands/getpadiwa.pl +++ b/web/htdocs/commands/getpadiwa.pl @@ -36,9 +36,22 @@ $board = hex($board); sub sendcmd { my ($cmd,$chain) = @_; my $c = [$cmd,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1<<$chain,0x10001]; - do{ + my $errcnt = 0; + while(1){ trb_register_write_mem($board,0xd400,0,$c,scalar @{$c}); - } while(trb_strerror() ne "No Error"); + if (trb_strerror() ne "No Error") { + sleep 1; + if($errcnt >= 12) { + die "SPI still blocked\n"; + } + elsif($errcnt++ >= 10) { + trb_register_read($board,0xd412); + } + } + else { + last; + } + } return trb_register_read($board,0xd412); } -- 2.43.0