11use crate :: {
2- jtag:: {
3- self , TransferInfo , TransferResult , JTAG_IR_ABORT , JTAG_IR_APACC , JTAG_IR_DPACC ,
4- JTAG_IR_IDCODE ,
5- } ,
2+ jtag:: { self , TransferResult , JTAG_IR_ABORT , JTAG_IR_APACC , JTAG_IR_DPACC , JTAG_IR_IDCODE } ,
63 swd:: { self , APnDP , RnW } ,
74 swj, swo, usb,
85} ;
@@ -814,18 +811,10 @@ where
814811 return ;
815812 }
816813
817- const DP_RDBUFF : u8 = 0x0C ;
818- let read_rdbuff = TransferInfo {
819- r_nw : RnW :: R ,
820- ..TransferInfo :: from ( DP_RDBUFF )
821- } ;
822-
823814 let mut post_read = false ;
824815 let mut ir = 0 ;
825816 let mut response_value = TransferResult :: Fault ;
826- let retry = transfer_config. wait_retries ;
827817 let mut response_count = 0 ;
828- let wait_retries = transfer_config. wait_retries ;
829818
830819 while ntransfers > 0 {
831820 debug ! ( "JTAG transfer {}/{}" , response_count + 1 , transfer_count) ;
@@ -843,13 +832,8 @@ where
843832 if ir == request_ir && !request_value. match_value {
844833 // Read previous data and post next read
845834
846- response_value = transfer_with_retry (
847- jtag,
848- request_value,
849- transfer_config,
850- 0 ,
851- wait_retries,
852- ) ;
835+ response_value =
836+ transfer_with_retry ( jtag, request_value, transfer_config, 0 ) ;
853837 } else {
854838 // Select JTAG chain
855839 if ir != JTAG_IR_DPACC {
@@ -860,10 +844,9 @@ where
860844 // Read previous data
861845 response_value = transfer_with_retry (
862846 jtag,
863- read_rdbuff ,
847+ jtag :: TransferInfo :: RDBUFF ,
864848 transfer_config,
865849 0 ,
866- wait_retries,
867850 ) ;
868851 post_read = false ;
869852 }
@@ -891,19 +874,13 @@ where
891874 jtag. shift_ir ( ir) ;
892875 }
893876 // Post DP/AP read
894- response_value =
895- transfer_with_retry ( jtag, request_value, transfer_config, 0 , wait_retries) ;
877+ response_value = transfer_with_retry ( jtag, request_value, transfer_config, 0 ) ;
896878 if !matches ! ( response_value, TransferResult :: Ok ( _) ) {
897879 break ;
898880 }
899881 loop {
900- response_value = transfer_with_retry (
901- jtag,
902- request_value,
903- transfer_config,
904- 0 ,
905- wait_retries,
906- ) ;
882+ response_value =
883+ transfer_with_retry ( jtag, request_value, transfer_config, 0 ) ;
907884 match response_value {
908885 TransferResult :: Ok ( data)
909886 if ( data & transfer_config. match_mask ) != match_value => { }
@@ -933,13 +910,8 @@ where
933910 jtag. shift_ir ( ir) ;
934911 }
935912 // Post DP/AP read
936- response_value = transfer_with_retry (
937- jtag,
938- request_value,
939- transfer_config,
940- 0 ,
941- wait_retries,
942- ) ;
913+ response_value =
914+ transfer_with_retry ( jtag, request_value, transfer_config, 0 ) ;
943915 if !matches ! ( response_value, TransferResult :: Ok ( _) ) {
944916 break ;
945917 }
@@ -960,7 +932,7 @@ where
960932 }
961933 // Read previous data
962934 response_value =
963- transfer_with_retry ( jtag, read_rdbuff , transfer_config, 0 , wait_retries ) ;
935+ transfer_with_retry ( jtag, jtag :: TransferInfo :: RDBUFF , transfer_config, 0 ) ;
964936
965937 if let TransferResult :: Ok ( data) = response_value {
966938 // Store previous data
@@ -984,7 +956,7 @@ where
984956 }
985957
986958 response_value =
987- transfer_with_retry ( jtag, request_value, transfer_config, data, retry ) ;
959+ transfer_with_retry ( jtag, request_value, transfer_config, data) ;
988960 if !matches ! ( response_value, TransferResult :: Ok ( _) ) {
989961 break ;
990962 }
@@ -1000,7 +972,7 @@ where
1000972 while ntransfers > 0 {
1001973 ntransfers -= 1 ;
1002974 // Process canceled requests
1003- let request_value = TransferInfo :: from ( req. next_u8 ( ) ) ;
975+ let request_value = jtag :: TransferInfo :: from ( req. next_u8 ( ) ) ;
1004976 if request_value. r_nw == RnW :: R {
1005977 // Read register
1006978 if request_value. match_value {
@@ -1021,7 +993,7 @@ where
1021993
1022994 // Check last write, or read previous read's result.
1023995 response_value =
1024- transfer_with_retry ( jtag, read_rdbuff , transfer_config, 0 , wait_retries ) ;
996+ transfer_with_retry ( jtag, jtag :: TransferInfo :: RDBUFF , transfer_config, 0 ) ;
1025997
1026998 if post_read {
1027999 // Read previous data
@@ -1129,17 +1101,10 @@ where
11291101 mut req : Request ,
11301102 resp : & mut ResponseWriter ,
11311103 ) {
1132- const DP_RDBUFF : u8 = 0x0C ;
1133- let read_rdbuff = TransferInfo {
1134- r_nw : RnW :: R ,
1135- ..TransferInfo :: from ( DP_RDBUFF )
1136- } ;
1137- let retry = transfer_config. wait_retries ;
1138-
11391104 let idx = req. next_u8 ( ) ;
11401105 let request_count = req. next_u16 ( ) ;
11411106 let mut nrequests = request_count;
1142- let mut request_value = TransferInfo :: from ( req. next_u8 ( ) ) ;
1107+ let mut request_value = jtag :: TransferInfo :: from ( req. next_u8 ( ) ) ;
11431108
11441109 let mut response_count = 0 ;
11451110 resp. skip ( 3 ) ;
@@ -1171,7 +1136,7 @@ where
11711136 if request_value. r_nw == RnW :: R {
11721137 // Post read
11731138 debug ! ( "Posting read for {} transfers" , request_count) ;
1174- response_value = transfer_with_retry ( jtag, request_value, transfer_config, 0 , retry ) ;
1139+ response_value = transfer_with_retry ( jtag, request_value, transfer_config, 0 ) ;
11751140 if matches ! ( response_value, TransferResult :: Ok ( _) ) {
11761141 // Read register block
11771142 while nrequests > 0 {
@@ -1183,10 +1148,9 @@ where
11831148 if ir != JTAG_IR_APACC {
11841149 jtag. shift_ir ( JTAG_IR_APACC ) ;
11851150 }
1186- request_value = read_rdbuff ;
1151+ request_value = jtag :: TransferInfo :: RDBUFF ;
11871152 }
1188- response_value =
1189- transfer_with_retry ( jtag, request_value, transfer_config, 0 , retry) ;
1153+ response_value = transfer_with_retry ( jtag, request_value, transfer_config, 0 ) ;
11901154 if let TransferResult :: Ok ( data) = response_value {
11911155 // Store data
11921156 resp. write_u32 ( data) ;
@@ -1205,8 +1169,7 @@ where
12051169 // Load data
12061170 let data = req. next_u32 ( ) ;
12071171 // Write DP/AP register
1208- response_value =
1209- transfer_with_retry ( jtag, request_value, transfer_config, data, retry) ;
1172+ response_value = transfer_with_retry ( jtag, request_value, transfer_config, data) ;
12101173 if !matches ! ( response_value, TransferResult :: Ok ( _) ) {
12111174 // goto end
12121175 break ;
@@ -1219,7 +1182,7 @@ where
12191182 jtag. shift_ir ( JTAG_IR_DPACC ) ;
12201183 }
12211184 response_value =
1222- transfer_with_retry ( jtag, read_rdbuff , transfer_config, 0 , retry ) ;
1185+ transfer_with_retry ( jtag, jtag :: TransferInfo :: RDBUFF , transfer_config, 0 ) ;
12231186 }
12241187 }
12251188 }
@@ -1278,8 +1241,8 @@ fn transfer_with_retry<DEPS>(
12781241 info : jtag:: TransferInfo ,
12791242 transfer_config : & TransferConfig ,
12801243 data : u32 ,
1281- mut retry : usize ,
12821244) -> jtag:: TransferResult {
1245+ let mut retry = transfer_config. wait_retries ;
12831246 let mut response_value;
12841247
12851248 if info. r_nw == RnW :: W {
0 commit comments