@@ -37,7 +37,8 @@ struct fs_file_t file = {0};
3737struct fs_dirent * my_finfo ;
3838
3939#define MAX_BASE_URL_LEN 256
40- static char base_url_s [MAX_BASE_URL_LEN ] = "https://devkit.devedge.t-mobile.com/bin/latest/" ;
40+ #define MAX_BASE_URL_DIR_LEN 32
41+ static char base_url_s [MAX_BASE_URL_LEN ] = "https://devkit.devedge.t-mobile.com/bin/" ;
4142
4243static int iface_s = WIFI_ID ; // Default iface is wifi
4344
@@ -149,54 +150,68 @@ int dfu_download(const struct dfu_file_t *dfu_file, enum dfu_tgts dfu_tgt)
149150 return totalbytes ;
150151}
151152
152- void generate_mcu_filename (struct dfu_file_t * dfu_files_mcu , char * base , char * version , int slots ) {
153- for (int i = 0 ; i < slots ; i ++ ) {
154- /* BIN */
155- sprintf (dfu_files_mcu [i ].desc , "%s %d/%d" , base ,i + 1 , slots * 2 );
156- sprintf (dfu_files_mcu [i ].lfile , "/tmo/zephyr.slot%d.bin" , i );
157- sprintf (dfu_files_mcu [i ].rfile , "%s.slot%d.%s.bin" ,base , i , version );
158- memset (dfu_files_mcu [i ].sha1 , 0 , DFU_SHA1_LEN );
159-
160- /* SHA1 */
161- sprintf (dfu_files_mcu [i + slots ].desc , "%s %d/%d" , base , i + (1 + slots ), slots * 2 );
162- sprintf (dfu_files_mcu [i + slots ].lfile , "%s.sha1" , dfu_files_mcu [i ].lfile );
163- sprintf (dfu_files_mcu [i + slots ].rfile , "%s.sha1" ,dfu_files_mcu [i ].rfile );
164- memset (dfu_files_mcu [i + slots ].sha1 , 0 , DFU_SHA1_LEN );
153+ void generate_mcu_filename (struct dfu_file_t * dfu_files_mcu , char * base , int slots , char * version )
154+ {
155+ int total_files = (slots * 2 ) + 1 ;
156+
157+ sprintf (dfu_files_mcu [0 ].desc , "%s 1/%d" , base , total_files );
158+ sprintf (dfu_files_mcu [0 ].lfile , "/tmo/zephyr.bin" );
159+ sprintf (dfu_files_mcu [0 ].rfile , "%s.%s.bin" ,base ,version );
160+ memset (dfu_files_mcu [0 ].sha1 , 0 , DFU_SHA1_LEN );
161+
162+ for (int i = 1 ; i <= slots ; i ++ ) {
163+
164+ /* BIN */
165+ sprintf (dfu_files_mcu [i ].desc , "%s %d/%d" , base ,i + 1 , total_files );
166+ sprintf (dfu_files_mcu [i ].lfile , "/tmo/zephyr.slot%d.bin" , i - 1 );
167+ sprintf (dfu_files_mcu [i ].rfile , "%s.%s.slot%d.bin" ,base ,version , i - 1 );
168+ memset (dfu_files_mcu [i ].sha1 , 0 , DFU_SHA1_LEN );
169+
170+ /* SHA1 */
171+ sprintf (dfu_files_mcu [i + slots ].desc , "%s %d/%d" , base ,(i + slots )+ 1 , total_files );
172+ sprintf (dfu_files_mcu [i + slots ].lfile , "%s.sha1" , dfu_files_mcu [i ].lfile );
173+ sprintf (dfu_files_mcu [i + slots ].rfile , "%s.sha1" ,dfu_files_mcu [i ].rfile );
174+ memset (dfu_files_mcu [i + slots ].sha1 , 0 , DFU_SHA1_LEN );
165175 }
166176}
167177
168178int tmo_dfu_download (const struct shell * shell , enum dfu_tgts dfu_tgt , char * base , char * version )
169179{
170180 mbedtls_sha1_init (& sha1_ctx );
171181 const struct dfu_file_t * dfu_files = NULL ;
172- struct dfu_file_t dfu_files_mcu_gen [5 ];
182+ struct dfu_file_t dfu_files_mcu_gen [6 ];
183+ char base_url [MAX_BASE_URL_LEN ];
173184
174- memset (dfu_files_mcu_gen ,0 ,sizeof (struct dfu_file_t ) * 5 );
185+ memset (dfu_files_mcu_gen ,0 ,sizeof (struct dfu_file_t ) * 6 );
175186
176187 switch (dfu_tgt ) {
177188 case DFU_GECKO :
178- if (base == NULL )
189+ if (base == NULL ) {
179190 dfu_files = dfu_files_mcu ;
180- else {
181- generate_mcu_filename (dfu_files_mcu_gen ,base ,version ,2 );
191+ set_dfu_base_url ("https://devkit.devedge.t-mobile.com/bin/latest/" );
192+ } else {
193+ generate_mcu_filename (dfu_files_mcu_gen ,base ,2 , version );
182194 dfu_files = dfu_files_mcu_gen ;
195+
196+ sprintf (base_url , "https://devkit.devedge.t-mobile.com/bin/%s/" , version );
197+ set_dfu_base_url (base_url );
183198 }
184199 break ;
185200
186201 case DFU_MODEM :
187- sprintf ((char * )dfu_files_modem [0 ].desc , "%s 1/2 " ,base );
202+ sprintf ((char * )dfu_files_modem [0 ].desc , "%s" ,base );
188203 sprintf ((char * )dfu_files_modem [0 ].rfile , "%s.ua" ,base );
189- sprintf ((char * )dfu_files_modem [1 ].desc , "%s 2/2 " ,base );
190- sprintf ((char * )dfu_files_modem [1 ].rfile , "%s.sha1" ,dfu_files_modem [0 ].rfile );
191204 dfu_files = dfu_files_modem ;
205+
206+ set_dfu_base_url ("https://devkit.devedge.t-mobile.com/bin/murata_1sc/" );
192207 break ;
193208
194209 case DFU_9116W :
195- sprintf ((char * )dfu_files_rs9116w [0 ].desc , "%s 1/2 " ,base );
210+ sprintf ((char * )dfu_files_rs9116w [0 ].desc , "%s" ,base );
196211 sprintf ((char * )dfu_files_rs9116w [0 ].rfile , "%s.rps" ,base );
197- sprintf ((char * )dfu_files_rs9116w [1 ].desc , "%s 2/2" ,base );
198- sprintf ((char * )dfu_files_rs9116w [1 ].rfile , "%s.sha1" ,dfu_files_rs9116w [0 ].rfile );
199212 dfu_files = dfu_files_rs9116w ;
213+
214+ set_dfu_base_url ("https://devkit.devedge.t-mobile.com/bin/rs9116w/" );
200215 break ;
201216
202217 default :
0 commit comments