+ if( *(DWORD*)0x102000 == 0xFFFFFFFF && *(DWORD*)0x102004 == 0xAA995566 )\r
+ DownloadFPGA((char*)0x102000, 10524*4, 1);\r
+}\r
+\r
+void FpgaGatherVersion(char *dst, int len)\r
+{\r
+ char *fpga_info; \r
+ unsigned int fpga_info_len;\r
+ dst[0] = 0;\r
+ if(!bitparse_find_section('e', &fpga_info, &fpga_info_len)) {\r
+ strncat(dst, "FPGA image: legacy image without version information", len-1);\r
+ } else {\r
+ strncat(dst, "FPGA image built", len-1);\r
+ /* USB packets only have 48 bytes data payload, so be terse */\r
+#if 0\r
+ if(bitparse_find_section('a', &fpga_info, &fpga_info_len) && fpga_info[fpga_info_len-1] == 0 ) {\r
+ strncat(dst, " from ", len-1);\r
+ strncat(dst, fpga_info, len-1);\r
+ }\r
+ if(bitparse_find_section('b', &fpga_info, &fpga_info_len) && fpga_info[fpga_info_len-1] == 0 ) {\r
+ strncat(dst, " for ", len-1);\r
+ strncat(dst, fpga_info, len-1);\r
+ }\r
+#endif\r
+ if(bitparse_find_section('c', &fpga_info, &fpga_info_len) && fpga_info[fpga_info_len-1] == 0 ) {\r
+ strncat(dst, " on ", len-1);\r
+ strncat(dst, fpga_info, len-1);\r
+ }\r
+ if(bitparse_find_section('d', &fpga_info, &fpga_info_len) && fpga_info[fpga_info_len-1] == 0 ) {\r
+ strncat(dst, " at ", len-1);\r
+ strncat(dst, fpga_info, len-1);\r
+ }\r
+ }\r