@@ -1141,7 +1141,8 @@ where
11411141 let retry = transfer_config. wait_retries ;
11421142
11431143 let idx = req. next_u8 ( ) ;
1144- let mut request_count = req. next_u16 ( ) ;
1144+ let request_count = req. next_u16 ( ) ;
1145+ let mut nrequests = request_count;
11451146 let mut request_value = TransferInfo :: from ( req. next_u8 ( ) ) ;
11461147
11471148 let mut response_count = 0 ;
@@ -1155,7 +1156,7 @@ where
11551156 return ;
11561157 }
11571158
1158- if request_count == 0 {
1159+ if nrequests == 0 {
11591160 // goto end
11601161 resp. write_u16_at ( 1 , response_count) ;
11611162 resp. write_u8_at ( 3 , 0 ) ;
@@ -1173,20 +1174,23 @@ where
11731174 let mut response_value = jtag:: TransferResult :: Nack ;
11741175 if request_value. r_nw == RnW :: R {
11751176 // Post read
1177+ debug ! ( "Posting read for {} transfers" , request_count) ;
11761178 response_value = transfer_with_retry ( jtag, request_value, transfer_config, 0 , retry) ;
11771179 if matches ! ( response_value, TransferResult :: Ok ( _) ) {
11781180 // Read register block
1179- while request_count > 0 {
1180- request_count -= 1 ;
1181+ while nrequests > 0 {
1182+ debug ! ( "Reading {}/{}" , response_count + 1 , request_count) ;
1183+ nrequests -= 1 ;
11811184 // Read DP/AP register
1182- if request_count == 0 {
1185+ if nrequests == 0 {
11831186 // Last read
11841187 if ir != JTAG_DPACC {
11851188 jtag. shift_ir ( JTAG_DPACC ) ;
11861189 }
11871190 request_value = read_rdbuff;
11881191 }
1189- transfer_with_retry ( jtag, request_value, transfer_config, 0 , retry) ;
1192+ response_value =
1193+ transfer_with_retry ( jtag, request_value, transfer_config, 0 , retry) ;
11901194 if let TransferResult :: Ok ( data) = response_value {
11911195 // Store data
11921196 resp. write_u32 ( data) ;
@@ -1199,8 +1203,9 @@ where
11991203 }
12001204 } else {
12011205 // Write register block
1202- while request_count > 0 {
1203- request_count -= 1 ;
1206+ while nrequests > 0 {
1207+ debug ! ( "Writing {}/{}" , response_count + 1 , request_count) ;
1208+ nrequests -= 1 ;
12041209 // Load data
12051210 let data = req. next_u32 ( ) ;
12061211 // Write DP/AP register
0 commit comments