|
|
@@ -1,3 +1,245 @@
|
|
|
+Version 3.2.0
|
|
|
+
|
|
|
+- Add FAQ about windows USB keyboards and hotplug interactions.
|
|
|
+- Fix mingw build warnings in icarus driver.
|
|
|
+- Make usb_ftdi_cts use the _usb_transfer_read function.
|
|
|
+- Update ASIC-README with avalon info regarding default behaviour.
|
|
|
+- Break out of idling loop in avalon_idle if the buffer is full.
|
|
|
+- 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.
|
|
|
+- usbutils automatically track IO errors
|
|
|
+- usbutils allow a short wait for resources to be released
|
|
|
+- correct semaphore timeout comment
|
|
|
+- Set the fanspeed to the nominal chosen for GPUs.
|
|
|
+- Inverted sem_init logic.
|
|
|
+- Document avalon options in ASIC-README
|
|
|
+- Do avalon driver detection last as it will try to claim any similar device and
|
|
|
+they are not reliably detected.
|
|
|
+- Clamp initial GPU fanspeed to within user specified range.
|
|
|
+- Use a counting semaphore to signal the usb resource thread that it has work to
|
|
|
+do.
|
|
|
+- Avalon fan factor is already multiplied into the info values.
|
|
|
+- Get rid of zeros which corrupt display.
|
|
|
+- Logic fail on minimum fanspeed reporting.
|
|
|
+- Provide a workaround for fan0 sensor not being used on avalon and pad fan RPM
|
|
|
+with zeros.
|
|
|
+- Add ambient temp and lowest fan RPM information to avalon statline.
|
|
|
+- Display max temperature and fanspeed data for avalon.
|
|
|
+- Set devices to disabled after they exit the hashing loops to prevent the
|
|
|
+watchdog thread from trying to act on them.
|
|
|
+- Add avalon driver to hotplug.
|
|
|
+- Shut down the avalon mining thread if the device disappears.
|
|
|
+- Check for no usb device in usb_ftdi_cts
|
|
|
+- Check for valid usbdev in _usb_read in case the device has been unplugged.
|
|
|
+- Scanhash functions perform driver shutdown so don't repeat it.
|
|
|
+- Change the opencl shutdown sequence.
|
|
|
+- Send the shutdown message to threads and do the thread shutdown functions
|
|
|
+before more forcefully sending pthread_cancel to threads.
|
|
|
+- Use the cgpu_info shutdown to determine when to stop the avalon read and write
|
|
|
+threads.
|
|
|
+- 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.
|
|
|
+- Remove now unneeded fgpautils.h include from avalon.
|
|
|
+- usb_transfer_read should also not play with the endianness.
|
|
|
+- Use the USB wrappers for avalon, telling usbutils that we want the raw data.
|
|
|
+- Use separate ep for avalon tasks vs avalon reset and do not loop in write
|
|
|
+indefinitely.
|
|
|
+- Remove unneeded function and checks in avalon write code.
|
|
|
+- CMR handle baud options
|
|
|
+- work_restart is reset within the queued hash work loop.
|
|
|
+- Fix avalon shutdown sequence.
|
|
|
+- Execute driver shutdown sequence during kill_work.
|
|
|
+- Use nusleep in avalon_get_results in place of nmsleep.
|
|
|
+- Provide an nusleep equivalent function to nmsleep.
|
|
|
+- usb/ica add more (incomplete) CMR settings
|
|
|
+- Give a buffer of perceived results in avalon during idle periods to allow for
|
|
|
+results once it becomes active again.
|
|
|
+- libusb_control_transfer are meant to be endian specific, but host endianness
|
|
|
+so no conversion is needed.
|
|
|
+- Reuse old MTX Handle
|
|
|
+- usbutils check all memory allocation
|
|
|
+- usb separate thread for resource locking and modified windows locking code
|
|
|
+- Icarus report data direction with comms errors
|
|
|
+- Set the read and write threads for avalon to not cancel within libusb
|
|
|
+functions and wait for the threads to pthread_join on shutdown.
|
|
|
+- Offset needs to be incremented after avalon reads.
|
|
|
+- Make the avalon_read function parse the ftdi responses appopriately.
|
|
|
+- Use the avalon read timeout to completion if no data has been read.
|
|
|
+- wait_avalon_ready should only be used before writes.
|
|
|
+- Ask for the correct amount to read in avalon get results.
|
|
|
+- Spawn the avalon read thread first with info->reset set to discard any data
|
|
|
+till work is adequately queued.
|
|
|
+- Use direct usb read commands to avoid ftdi data being automatically cut off in
|
|
|
+avalon reads.
|
|
|
+- Do a simple usb_read_once for the avalon result from a reset command.
|
|
|
+- Make sure avalon is ready to receive more usb commands before sending them.
|
|
|
+- Implement avalon_ready and avalon_wait_ready functions for when usb is ready
|
|
|
+to receive commands.
|
|
|
+- avalon_read should not loop but just return whatever it has succeeded in
|
|
|
+reading.
|
|
|
+- Set avalon_info to device data void struct.
|
|
|
+- Specify avalon in avalon_reset.
|
|
|
+- First pass rewriting serialdev into direct usb dev for avalon driver.
|
|
|
+- Define a cts equivalent for direct usb and use it for avalon driver full.
|
|
|
+- Compile usbutils into avalon driver.
|
|
|
+- Check results come in at least at 2/3 the rate they should be on avalon and if
|
|
|
+not, reset it.
|
|
|
+- Give a warning but don't reset if the avalon buffer is full early.
|
|
|
+- Discard any reads obtained from the avalon get results thread during a reset.
|
|
|
+- Differentiate initial reset in avalon from subsequent ones.
|
|
|
+- Perform a mandatory reset if the avalon buffer signals it's full before it has
|
|
|
+queued its normal quota of work.
|
|
|
+- Wait till buffer is cleared after sending idle tasks to avalon before
|
|
|
+returning from avalon_idle.
|
|
|
+- Lock qlock mutex during reset from read thread in avalon to prevent more work
|
|
|
+being sent till the reset is over.
|
|
|
+- Reset avalon if we continue to be unable to send all the work items.
|
|
|
+- Add avalon reset response to debugging output.
|
|
|
+- Do a wait_avalon_ready before sending a reset code.
|
|
|
+- Iterate over spare bytes in the avalon result returned from a reset request
|
|
|
+trying to find the beginning of the reset.
|
|
|
+- Idle avalon after reset.
|
|
|
+- Check for nothing but consecutive bad results on avalon and reset the FPGA if
|
|
|
+it happens.
|
|
|
+- Make submit_nonce return a bool for whether it's a valid share or not.
|
|
|
+- 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.
|
|
|
+- Implement an avalon_flush_work function for work restarts.
|
|
|
+- Shut down avalon read and write threads and idle the miners on closing it.
|
|
|
+- Tighter control over work submissions in avalon allows us to use a smaller
|
|
|
+array.
|
|
|
+- Rotate avalon array to reset the queued count before releasing the lock so
|
|
|
+work will always be available on next pass.
|
|
|
+- 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.
|
|
|
+- Wait till the avalon_send_tasks thread has filled the avalon with idle work
|
|
|
+before starting the avalon_get_results thread.
|
|
|
+- Use AVA_GETS_OK macro in avalon_read.
|
|
|
+- Do all writes on avalon with a select() timeout to prevent indefinite blocking
|
|
|
+and loop if less than desired is written.
|
|
|
+- Check explicitly that ava_buffer_full equals the macro.
|
|
|
+- Send initial reset as an avalon task to remove avalon_write function.
|
|
|
+- avalon_clear_readbuf is no longer required.
|
|
|
+- Check for 2 stray bytes on avalon reset.
|
|
|
+- 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.
|
|
|
+- usbutils ensure it compiles without stats
|
|
|
+- usbutils include transfer mode in usbstats
|
|
|
+- Give the avalon get results thread name the device number as well.
|
|
|
+- Make sure we're not adjusting temps on every successful work retrieval on
|
|
|
+avalon.
|
|
|
+- Count missing work items from behind a successful work read in avalon as well.
|
|
|
+- Change message for work not found in avalon parser.
|
|
|
+- usbutils handle bulk_transfer partial writes
|
|
|
+- Simplify debugging and only discard from avalon read buffer if at least one
|
|
|
+full result has been discarded.
|
|
|
+- Only display discarded bytes in avalon if they're not used as nonces.
|
|
|
+- Only loop once through avalon_parse_results, but do so after timeouts as well.
|
|
|
+- Only debug and move ram if spare bytes exist in avalon buffer.
|
|
|
+- Remove off by one error.
|
|
|
+- Inverted logic.
|
|
|
+- Add more debugging to avalon reads.
|
|
|
+- Convert unsigned size_ts to ints for parsing avalon messages.
|
|
|
+- Cope with not finding nonces in avalon parsing gracefully by not overflowing
|
|
|
+buffers.
|
|
|
+- Adjust avalon temp values on one lot of valid nonces from the parser.
|
|
|
+- Created a threaded message parser for avalon reads.
|
|
|
+- Avalon_wait_write is not effective during resets so do it after going idle.
|
|
|
+- Send only a single byte reset.
|
|
|
+- Repeat going idle after avalon reset, and wait for write ready before sending
|
|
|
+each reset request instead of some arbitrary sleep time.
|
|
|
+- Timeouts on avalon_read and avalon_write should be 100ms.
|
|
|
+- Don't close avalon after detecting it until we're cleaning up, instead using
|
|
|
+reset for comms failures.
|
|
|
+- Check for avalon_wait_write before sending reset command.
|
|
|
+- Sleep in avalon_write_ready.
|
|
|
+- Make avalon_wait_write a bool function and check its return value.
|
|
|
+- Show how many idle tasks are sent to avalon if it aborts on buffer full.
|
|
|
+- Reset avalon->device_fd after it is closed.
|
|
|
+- Create an avalon_wait_write function that is used before sending avalon idle
|
|
|
+command.
|
|
|
+- Avoid repeating avalon_idle in do_avalon_close and extra sleep.
|
|
|
+- Pass fd to avalon_idle.
|
|
|
+- Do avalon_reset after info structure is set up.
|
|
|
+- Rework avalon reset sequence to include idling of chips and waiting for them
|
|
|
+to go idle followed by 2nd reset and then checking result.
|
|
|
+- Do a non-blocking read of anything in the avalon buffer after opening the
|
|
|
+device.
|
|
|
+- Assign the avalon info data to the device_data in cgpu_info.
|
|
|
+- thread shutdown is different on windows
|
|
|
+- usbutils make all windows timeouts 999ms
|
|
|
+- usb add another Cairnsmore1 USB chip
|
|
|
+- icarus do the full detect test twice if required
|
|
|
+- CMR usb config guess
|
|
|
+- usb add transfer_read and commented out in icarus
|
|
|
+- usbutils allow unrounded control transfers
|
|
|
+- icarus ICA initialisation
|
|
|
+- icarus report err on read failure
|
|
|
+- icarus correct device_id and use device_data for icarus_info
|
|
|
+- miner.h remove unused device_file and add device_data
|
|
|
+- miner.h icarus no long uses fd
|
|
|
+- icarus AMU config transfers
|
|
|
+- Create a logwin_update function which mandatorily updates the logwin and use
|
|
|
+it when input is expected to prevent display refresh delays.
|
|
|
+- usbutils force an unknown IDENT for zero
|
|
|
+- icarus set default options/timing based on device
|
|
|
+- Must unlock curses as well in logwin_update.
|
|
|
+- Create a logwin_update function which mandatorily updates the logwin and use
|
|
|
+it when input is expected to prevent display refresh delays.
|
|
|
+- icarus report usb write error information
|
|
|
+- Add name to icarus copyright notice.
|
|
|
+- Check for *pth dereference on pthread_join
|
|
|
+- usbutils name latency correctly
|
|
|
+- Check for restart before buffering more reads in Icarus.
|
|
|
+- Icarus should timeout if it's greater than the timeout duration even if it's
|
|
|
+receiving data.
|
|
|
+- We should check for amount buffered in icarus get_nonce against amount already
|
|
|
+received.
|
|
|
+- Make mining threads report out during work submission.
|
|
|
+- submit_work_async is no longer used directly by driver code.
|
|
|
+- Fix first read timeout on icarus get nonce.
|
|
|
+- Retry icarus_initialise if the first read attempt fails.
|
|
|
+- Properly pthread_join miner threads on shutdown.
|
|
|
+- Properly pthread_join miner threads on shutdown.
|
|
|
+- Use a persistent single separate thread for stratum share submission that uses
|
|
|
+workqueues since all stratum sends are serialised.
|
|
|
+- All stratum calls to recv_line are serialised from the one place so there is
|
|
|
+no need to use locking around recv().
|
|
|
+- Only allow the mining thread to be cancelled when it is not within driver
|
|
|
+code, making for cleaner shutdown and allowing us to pthread_join the miner
|
|
|
+threads on kill_work().
|
|
|
+- Only allow the mining thread to be cancelled when it is not within driver
|
|
|
+code, making for cleaner shutdown and allowing us to pthread_join the miner
|
|
|
+threads on kill_work().
|
|
|
+- Set pool->probed to true after an attempt to resolve the url via stratum code.
|
|
|
+- icarus test nodev everywhere
|
|
|
+- usbutils/icarus separate FTDI transfer values and more debug
|
|
|
+- add icarus to hotplug
|
|
|
+- usbutils add rest of icarus
|
|
|
+- simple serial-USB python test script
|
|
|
+- icarus->USB v0.1 incomplete - missing initialise()
|
|
|
+- README spelling
|
|
|
+- Update documentation for icarus switch to USB
|
|
|
+- Add USB rules for supported USB devices
|
|
|
+- switch icarus configuration to usb
|
|
|
+- usbutils new command for icarus
|
|
|
+- usb add a numeric sub-indentity for each name
|
|
|
+- usbutils - make FTDI handling automatic
|
|
|
+- fix duplicate name
|
|
|
+- usbutils set Black Arrow Lancelot's as BAL and match the lot->llt name
|
|
|
+- usbutils identify Icarus devices
|
|
|
+- libusb_control_transfer 16 bit words are endian specific.
|
|
|
+- usb_applog separate amt display
|
|
|
+- Show pool difficulty more verbosely if it changes via stratum.
|
|
|
+- Attribute whatever stats we can get on untracked stratum shares based on
|
|
|
+current pool diff.
|
|
|
+- Provide a --lowmem option which does not cache shares on failed submission to
|
|
|
+prevent low memory hardware (eg Avalon) from crashing.
|
|
|
+- Update util.c
|
|
|
+
|
|
|
+
|
|
|
Version 3.1.1 - May 11th, 2013
|
|
|
|
|
|
- Use a discrete device target for scrypt that dynamically changes to ensure we
|