1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-01 18:55:36 +00:00
Commit Graph

238 Commits

Author SHA1 Message Date
Con Kolivas
36b556aa66 Set the avalon idle frequency to lowest if avalon auto is enabled and we have an overheat condition. 2013-07-01 15:15:36 +10:00
Con Kolivas
ce214e1270 Decrease avalon frequency in auto mode if we are unable to maintain the temperature in the optimal range. 2013-07-01 15:10:56 +10:00
Con Kolivas
d7c99cd116 Use a more conservative upper limit of 1% for hardware errors with avalon auto frequency. 2013-07-01 10:43:33 +10:00
Con Kolivas
f142a4de23 Allow the avalon fanspeed range to be passed as parameter on the command line, default to 20-100% 2013-07-01 10:41:22 +10:00
Con Kolivas
34547596b3 Support all avalon frequencies on the command line. 2013-06-27 08:26:53 +10:00
Con Kolivas
18f9112e48 Reset the other auto counters in avalon when idling a device. 2013-06-26 21:46:58 +10:00
Con Kolivas
e811c4dc77 Add an avalon-auto option which enables dynamic overclocking based on hardware error rate for maximum effective hashrate. 2013-06-26 00:15:04 +10:00
Con Kolivas
9b45daba6b Add an --avalon-cutoff feature which puts the avalon idle should it reach this temperature, defaulting to 60, re-enabling it when it gets to target temperature. 2013-06-25 19:39:42 +10:00
Con Kolivas
1fca632f7c Add an --avalon-temp option to allow a user specified target temperature. 2013-06-24 11:04:02 +10:00
Con Kolivas
6bdfed3db4 Demote no matching work message to verbose logging only on avalon. 2013-06-24 10:39:41 +10:00
Con Kolivas
6cc09aa1e9 Make the fan control on the avalon a simple PID controller with a target temperature of 45. 2013-06-24 10:38:47 +10:00
Con Kolivas
c64d95f267 Support new overclocking speeds for avalon: 325, 350 and 375 2013-06-21 21:59:44 +10:00
Con Kolivas
df81ce6784 Use the nusleep function for sleeping after sending work in avalon. 2013-06-21 18:17:34 +10:00
Con Kolivas
a36e55b754 Set the avalon preferred packet size to 512. 2013-06-21 17:39:26 +10:00
Con Kolivas
581afcf9ab Use only one cgsem in avalon signalling when the write thread should commit work by reading the status bytes off during an avalon_read, minimising the number of usb calls and resetting from only one place. 2013-06-21 11:18:00 +10:00
Con Kolivas
cf13d02d5f Change avalon no valid work message to no matching work to match API terminology. 2013-06-21 11:03:03 +10:00
Con Kolivas
7c683cf2b1 Use low latency usb transfers on the avalon, sleeping up to half a buffer's worth only if no data is returning to increase hashrate, abolish lost work and decrease CPU. 2013-06-21 10:59:55 +10:00
Con Kolivas
e487d3d2f0 Minimise the sleep times in avalon read to avoid result loss. 2013-06-21 01:58:18 +10:00
Con Kolivas
b810dea33b Revert "Sleep for less time in wait_avalon_ready till we have a better signalling system from read thread to write."
This reverts commit 98862b4f46.
2013-06-21 01:32:41 +10:00
Con Kolivas
7e6cbf080e Use a half nonce range before cycling through avalon's scanwork to ensure it gets a chance to fill work if time is tight for the write thread to signal a wakeup. 2013-06-21 01:23:38 +10:00
Con Kolivas
98862b4f46 Sleep for less time in wait_avalon_ready till we have a better signalling system from read thread to write. 2013-06-20 23:59:17 +10:00
Kano
7eba963477 remove varargs from logging/quit/in general as much as possible 2013-06-15 22:03:56 +10:00
Con Kolivas
bd6bc6bd23 Decrease the sleep duration before reading in avalon to not let the read buffer overflow. 2013-06-13 16:13:52 +10:00
Con Kolivas
9604cbee98 Sleep if the avalon buffer is empty and we've requested a read to allow the write thread to take precedence. 2013-06-13 13:59:17 +10:00
Con Kolivas
261b1299ac Add the cgpu_info structure before avalon reset. 2013-06-13 13:01:27 +10:00
Kano
b8b137aeef USB make device_path handled by usbutils 2013-06-10 15:59:02 +10:00
Kano
749fa78d8a tidy up free in device detect functions 2013-06-10 15:39:44 +10:00
Kano
9287ee90f6 USB control creation and free of cgpu 2013-06-10 15:22:37 +10:00
Con Kolivas
059aa5abb2 Shorten the avalon statline to fit in the curses interface and show the lowest speed fan cooling the asic devices. 2013-06-07 08:52:58 +10:00
ckolivas
b59c33800b Implement cgminer specific cgsem semaphores to imitate unnamed semaphore behaviour on osx which does not support them. 2013-06-06 13:08:00 +10:00
Con Kolivas
5e94a97223 Set the avalon read transfer latency to avoid sleeping when no data is returned after very short latency settings. 2013-06-04 23:31:26 +10:00
Con Kolivas
a60a1b0fce Break out of idling loop in avalon_idle if the buffer is full. 2013-05-30 16:35:58 +10:00
Con Kolivas
c0c5c060bd Provide some defaults for avalon if none are specified and do not try to claim the device if it fails to reset with them and no options are specified. 2013-05-30 16:32:12 +10:00
Con Kolivas
dfab6a98af Avalon fan factor is already multiplied into the info values. 2013-05-30 10:18:09 +10:00
Con Kolivas
06b9e0c4d9 Get rid of zeros which corrupt display. 2013-05-30 10:16:04 +10:00
Con Kolivas
2373638399 Logic fail on minimum fanspeed reporting. 2013-05-30 10:14:10 +10:00
Con Kolivas
8bbb1793f7 Provide a workaround for fan0 sensor not being used on avalon and pad fan RPM with zeros. 2013-05-30 10:12:14 +10:00
Con Kolivas
86b59c4724 Add ambient temp and lowest fan RPM information to avalon statline. 2013-05-30 10:05:16 +10:00
Con Kolivas
6dcdd543cb Display max temperature and fanspeed data for avalon. 2013-05-30 09:22:35 +10:00
Con Kolivas
a10371b98e Shut down the avalon mining thread if the device disappears. 2013-05-29 23:03:32 +10:00
ckolivas
173119d59b Use the cgpu_info shutdown to determine when to stop the avalon read and write threads. 2013-05-29 11:49:10 +10:00
ckolivas
60bb463cf1 Use semaphores to signal a reset to pause the read thread while the write thread does the actual reset, making all writes come from the same place. 2013-05-29 11:45:47 +10:00
ckolivas
2f4280b4a2 Remove now unneeded fgpautils.h include from avalon. 2013-05-29 09:19:34 +10:00
Con Kolivas
0177b41010 Use the USB wrappers for avalon, telling usbutils that we want the raw data. 2013-05-29 00:33:56 +10:00
Con Kolivas
d1337427fd Use separate ep for avalon tasks vs avalon reset and do not loop in write indefinitely. 2013-05-29 00:15:30 +10:00
Con Kolivas
772b354ea9 Remove unneeded function and checks in avalon write code. 2013-05-28 23:59:07 +10:00
Con Kolivas
33e83eb764 work_restart is reset within the queued hash work loop. 2013-05-28 23:54:16 +10:00
Con Kolivas
5900c0244d Fix avalon shutdown sequence. 2013-05-28 23:48:26 +10:00
Con Kolivas
7c645ffda9 Use nusleep in avalon_get_results in place of nmsleep. 2013-05-28 23:02:29 +10:00
Con Kolivas
7740ed839a Give a buffer of perceived results in avalon during idle periods to allow for results once it becomes active again. 2013-05-28 21:15:33 +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
9650bfd6a3 Compile usbutils into avalon driver. 2013-05-27 14:58:08 +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
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
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
Con Kolivas
c87f4c303f Give the avalon get results thread name the device number as well. 2013-05-26 09:04:24 +10:00
Con Kolivas
4076e6b36e Make sure we're not adjusting temps on every successful work retrieval on avalon. 2013-05-26 08:57:02 +10:00
Con Kolivas
4784ecce75 Count missing work items from behind a successful work read in avalon as well. 2013-05-26 08:55:03 +10:00
Con Kolivas
70a3e885e0 Change message for work not found in avalon parser. 2013-05-26 08:42:41 +10:00
Con Kolivas
fba70ff593 Simplify debugging and only discard from avalon read buffer if at least one full result has been discarded. 2013-05-26 01:51:20 +10:00
Con Kolivas
7324a33b55 Only display discarded bytes in avalon if they're not used as nonces. 2013-05-26 01:38:51 +10:00