1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-09 22:38:01 +00:00
Commit Graph

4763 Commits

Author SHA1 Message Date
Kano
2f94ec8025 usb separate thread for resource locking and modified windows locking code 2013-05-27 23:30:18 +10:00
Kano
64b6b7cbef Icarus report data direction with comms errors 2013-05-27 21:39:10 +10:00
Con Kolivas
7ef11e2b3d Set the read and write threads for avalon to not cancel within libusb functions and wait for the threads to pthread_join on shutdown. 2013-05-27 21:02:32 +10:00
Con Kolivas
7506e499b9 Offset needs to be incremented after avalon reads. 2013-05-27 20:37:21 +10:00
Con Kolivas
7748c46943 Make the avalon_read function parse the ftdi responses appopriately. 2013-05-27 20:29:35 +10:00
Con Kolivas
2a222ecffa Use the avalon read timeout to completion if no data has been read. 2013-05-27 20:04:12 +10:00
Con Kolivas
e255f74763 wait_avalon_ready should only be used before writes. 2013-05-27 19:55:02 +10:00
Con Kolivas
51a44fa779 Ask for the correct amount to read in avalon get results. 2013-05-27 17:52:34 +10:00
Con Kolivas
0316592b95 Spawn the avalon read thread first with info->reset set to discard any data till work is adequately queued. 2013-05-27 17:48:54 +10:00
Con Kolivas
6ce6cd547e Use direct usb read commands to avoid ftdi data being automatically cut off in avalon reads. 2013-05-27 17:42:51 +10:00
Con Kolivas
b73ab48814 Do a simple usb_read_once for the avalon result from a reset command. 2013-05-27 17:28:49 +10:00
Con Kolivas
f1ffe9860b Make sure avalon is ready to receive more usb commands before sending them. 2013-05-27 17:18:49 +10:00
Con Kolivas
a32e521d0a Implement avalon_ready and avalon_wait_ready functions for when usb is ready to receive commands. 2013-05-27 17:17:42 +10:00
Con Kolivas
7ad8af19b9 avalon_read should not loop but just return whatever it has succeeded in reading. 2013-05-27 17:08:06 +10:00
Con Kolivas
2c633fdbe4 Set avalon_info to device data void struct. 2013-05-27 15:54:07 +10:00
Con Kolivas
c478b302ce Specify avalon in avalon_reset. 2013-05-27 15:48:54 +10:00
Con Kolivas
269a8de977 First pass rewriting serialdev into direct usb dev for avalon driver. 2013-05-27 15:43:22 +10:00
Con Kolivas
8fea60f384 Define a cts equivalent for direct usb and use it for avalon driver full. 2013-05-27 15:01:13 +10:00
Con Kolivas
9650bfd6a3 Compile usbutils into avalon driver. 2013-05-27 14:58:08 +10:00
Con Kolivas
2d4a1db57e Merge branch 'icarus-dev' into avalon-usbdev 2013-05-27 14:37:41 +10:00
Con Kolivas
8595f3bd74 Check results come in at least at 2/3 the rate they should be on avalon and if not, reset it. 2013-05-27 13:41:57 +10:00
Con Kolivas
91edf84c60 Give a warning but don't reset if the avalon buffer is full early. 2013-05-27 12:39:32 +10:00
Con Kolivas
abfaf36112 Discard any reads obtained from the avalon get results thread during a reset. 2013-05-27 12:30:13 +10:00
Con Kolivas
c1dd052596 Differentiate initial reset in avalon from subsequent ones. 2013-05-27 12:20:34 +10:00
Con Kolivas
589e08772e Perform a mandatory reset if the avalon buffer signals it's full before it has queued its normal quota of work. 2013-05-27 11:11:44 +10:00
Con Kolivas
b790153990 Wait till buffer is cleared after sending idle tasks to avalon before returning from avalon_idle. 2013-05-27 01:33:54 +10:00
Con Kolivas
f164446282 Lock qlock mutex during reset from read thread in avalon to prevent more work being sent till the reset is over. 2013-05-27 01:32:31 +10:00
Con Kolivas
499b25068c Reset avalon if we continue to be unable to send all the work items. 2013-05-27 01:29:57 +10:00
Con Kolivas
b2b594b80e Revert "Don't reset result counter to zero if it's negative in avalon on just one successful share."
This reverts commit ce0a9cd3a4.

This wasn't the problem.
2013-05-27 00:53:24 +10:00
Con Kolivas
ce0a9cd3a4 Don't reset result counter to zero if it's negative in avalon on just one successful share. 2013-05-27 00:28:56 +10:00
Con Kolivas
4c3fe39e94 Add avalon reset response to debugging output. 2013-05-26 21:50:31 +10:00
Con Kolivas
d0132a7702 Do a wait_avalon_ready before sending a reset code. 2013-05-26 21:34:53 +10:00
Con Kolivas
1f493d6462 Iterate over spare bytes in the avalon result returned from a reset request trying to find the beginning of the reset. 2013-05-26 21:30:55 +10:00
Con Kolivas
467d149785 Idle avalon after reset. 2013-05-26 21:21:11 +10:00
Con Kolivas
1ef027c444 Check for nothing but consecutive bad results on avalon and reset the FPGA if it happens. 2013-05-26 21:14:17 +10:00
Con Kolivas
44736b3012 Make submit_nonce return a bool for whether it's a valid share or not. 2013-05-26 20:59:40 +10:00
Con Kolivas
e90cf62af1 Unset the work restart flag sooner in avalon_flush_work to avoid re-entering the flush work function and just reset the queued counter instead of rotating the array to avoid runs of no valid work. 2013-05-26 17:07:27 +10:00
Con Kolivas
0a9d7ca6b3 Implement an avalon_flush_work function for work restarts. 2013-05-26 16:46:43 +10:00
Con Kolivas
3c39d75fc9 Shut down avalon read and write threads and idle the miners on closing it. 2013-05-26 16:26:42 +10:00
Con Kolivas
c9ca6ca7e3 Tighter control over work submissions in avalon allows us to use a smaller array. 2013-05-26 16:15:10 +10:00
Con Kolivas
db7c72b892 Rotate avalon array to reset the queued count before releasing the lock so work will always be available on next pass. 2013-05-26 14:59:05 +10:00
Con Kolivas
66e27a10c5 Move avalon read thread start till after conditional wait, store idle status in avalon_info and use it to determine whether an error is appropriate or not. 2013-05-26 14:37:45 +10:00
Con Kolivas
0763070cb0 Wait till the avalon_send_tasks thread has filled the avalon with idle work before starting the avalon_get_results thread. 2013-05-26 14:29:28 +10:00
Con Kolivas
7cf154bfa5 Use AVA_GETS_OK macro in avalon_read. 2013-05-26 14:23:14 +10:00
Con Kolivas
ebf885520d Do all writes on avalon with a select() timeout to prevent indefinite blocking and loop if less than desired is written. 2013-05-26 14:18:21 +10:00
Con Kolivas
596784aaf3 Check explicitly that ava_buffer_full equals the macro. 2013-05-26 14:08:21 +10:00
Con Kolivas
e9e6ad821d Send initial reset as an avalon task to remove avalon_write function. 2013-05-26 13:58:12 +10:00
Con Kolivas
e27ca54408 avalon_clear_readbuf is no longer required. 2013-05-26 13:53:02 +10:00
Con Kolivas
7dc3485fc2 Check for 2 stray bytes on avalon reset. 2013-05-26 13:39:42 +10:00
Con Kolivas
629feb5f3f Create a separate thread for handling all work and idle submission to the avalon which messages the scanhash function it has completed to update statistics. 2013-05-26 13:16:19 +10:00