forked from rockminerinc/cgminer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
executable file
·6606 lines (6127 loc) · 320 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Version 4.3.3 - 3rd May 2014
- Fix typo
- Work should be freed when aged, fixing a massive memory leak for bxf devices
- miner.php fix single rig summary/config field formatting
- miner.php fix single rig total formatting
Version 4.3.2 - 2nd May 2014
- Fix accounting bug with nrolltime drivers
Version 4.3.1 - 2nd May 2014
- upgrade some int to int64_t to avoid overflows in reporting
- Make reconnection messages more explanatory
- Stratum client.reconnect require matching URL
- Fix memory leak in submit_noffset_nonce
- Clean up any work that may not have been used in the work scheduler
- Avoid unnecessary deref now that it's done within discard_work
- Clean work pointers after one way usage functions
- Avoid unnecessary total_work_inc in generating local work
- Cosmetic fixes
- Fix idle bug, when redirected client can't auth
- Rename spond temp rate to asics total rate
- Build fixes
- Set the unique id only for usb devices with serial strings longer than 4 chars
long
- Use usb serial strings as unique id if devices have them
- Discretely identify the onestring miners as OSM
- Add bxf debugging option and osm led modes
- A1: modularize board selector / add initial CCR support
- A1: cleanup tca9535 logging
- A1: fix and extend PLL parameters
- A1: clean up compile warnings
- A1: use real level in hexdump
- Add identification for onestring miner variants
- Avalon2: Parser the power good signal
- driver-avalon2: this functions used on detect, which don't have thr setup yet
Version 4.3.0 - 18th April 2014
- Put sleep in spond hash instead of queue full function
- Remove unused function for when compiled without curses
- Fix typo
- Add temperature rate, front, rear and device temperature to spond API output
- Limit bxf sleep in bxf_scan to 100ms minimum for strings of many chips
- -Werror=format-security error on driver-bitmain.c
- Fix parameters passed with getblockhash
- Check the block hash with the proper command when looking for orphan chains
- syslog requires a facility ... in more than one place
- Shuffle windows headers included
- Adjust the bxf sleep time according to the number of chips detected
- Fix off by one error in bxf chip count when adjusting device size
- Recalloc correct pointer
- Make instructions associated with winusb error even more explicit
- Add midsing headers to cgminer source in Makefile
- Trivial style changes to mg proto parser
- Trivial style and warning clean ups on spondoolies driver
- Merge spondoolies driver patch
- Call any BXF device with 3-6 chips reported HXF
- Avoid derefrence when calling statline before on hfa device during init
sequence
- Calloc the info structures even on failed hfa reset to prevent later possible
dereference
- Load all hfa devices based on identification alone and defer init sequence
till mining thread init sequence to allow all devices to be recognised rapidly
but each device initialisation not delay others
- Do not do thread shutdown unless thread init succeeded
- Remove unnecessary check for thread_prepare function
- Recognise variations on BXF based on chip value returned in responses
- Provide helper function for recallocing memory
- syslog requires a facility
Version 4.2.3 - 3rd April 2014
- Decay the per device hashrates when only the watchdog is calling the hashmeter
- Fix parsing of config files failing on custom parsing
- Allow an arbitrary number of chips in the BXF driver, showing results from
each chip in the API and identify the hexfury, naming it HXF
- Disable toggling display by default and offer a --widescreen option to have
all the information on an extra wide display.
- Use OPT_WITH_CBARG for all custom parsing functions to allow their values to
be written generically when writing the config file from the menu.
- Provide a ccan variant OPT_WITH_CBARG that assigns the arguments passed as a
string and then performs the callback function on the string.
- Define strings to store special option parsing parameters leaving no
OPT_WITH_ARG missing args
- Correct the writing of special case options to the config file
- Provide support for writing anu freq from menu write option
- Update to diver-avalon2.c
- Generalise a lot more of the command line options simplifying the write config
function and making it write far more values unaided
- Use the general opt_set_charp functions for setting api parameters
- Json escape any strings written to the config file
- Store standard charp options when writing config files
- Add support for all the integer range options when writing the config file
from the menu
- Remove the --device and --remove-disabled options which don't work in a
meaningful way any more
- Make the bxf bits configurable on the command line
- Provide a --btc-sig option to optionally add a custom signature to the solo
mining coinbsae
- Compact gbt solo extra data and store the length, allowing it to be variable,
leaving room for a signature
- miner.php - Kano summary Pool Acc/Rej should be only work submitted
- miner.php add best share and gen formatting for pool summary
- miner.php - remove BGEN/GEN eval() errors from the web log
- miner.php allow optional fields when gen is disabled
- miner.php dont format missing gen fields
- miner.php make Summary a custompage
- miner.php allow uers and system lists of customsummarypages and add more
examples
- Fix getwork share submission
- Cosmetic fix to udev rules
- Put WU on the hashrate status to compact lines further
- miner.php show api/rig errors at the top of a customsummarypage
Version 4.2.2 - 29th March 2014
- Minor correctness fix for unnecessary free
- Clean up various curl build issues
- allow url based config files
- Frequency only needs 3 digits for cointerra statline
- Use the serial number as unique_id for cta display
- Make it possible to enable/disable the status window from switching via the
display menu
- We should not update the tv hashmeter time unless we're updating the hashrates
- Add cointerra devices to udev rules.
- Use hashfast unique id instead of number since the unique id is displayed
- Remove displayed space
- Left align the displayed unique id
- Use the hashfast opname as its unique identifier
- Display BF1 serial number as its unique identifier
- Display a unique identifier instead of a number if the device has one
- Use an alternating status display to return to a compact width of 80
characters, allowing more information to be displayed.
- No need for looking for khash hashrates in summary any more
- Fix two potential minor mem leaks
- Fix memory leaks in setup and generate work for gbt solo.
- Fix off by one malloc size error
- Fix memory leak in update_gbt_solo
- Put sanity check on decay_time to prevent updates with no time
- Add 3 rolling average hashrates to API output for summary and devs.
- Use the extra status screen real estate better, displaying rolling 1/5/15min
average hashrates as well.
- Revamp the ageing crufty hashmeter code to have proper exponential decaying
values and store rolling 1/5/15min hashrates.
- Increment total_work under control lock.
- Trivial variable reuse
- Add support for other usb3 hubs on windows
Version 4.2.1 - 24th March 2014
- Fix various ava2 build issues generically
- Minimise the amount of heap memory allocations/frees when submitting gbt
shares.
- Make varint in gbt submission a stack object.
- Fix big endian problems with gbt submissions.
- Fix 32bit overflow on relative diff shown.
- ants1 - stop results read hard looping
- ants1 - slow down mining if overheat occurs
- miner.php allow gen before (bgen) and after (gen) grouping
- Change default solo mining to failing when no btc address is specified.
- Use upgrade cglock variants in get_gbt_curl
- Provide a cg_uilock to unlock the intermediate variant of cglocks.
- Use the one curl instance for all gbt solo operations, protecting its use with
a bool set under gbt lock.
- Only start block detection with gbt solo if setup succeeded
- One less block detection message
- Toss out the curl handle after each solo poll
- Don't reuse any curl handles for solo mining and break out of the lp thread if
the pool is removed.
- Make sure to only start the lognpoll thread once on gbt solo.
- Don't keep RPC connections open for solo mining since bitcoind doesn't like
having many persistent connections.
- GBT solo pools should be considered localgen pools.
- miner.php - speed up formatting and allow calc on gen fields
- Always show the address we're solo mining to to avoid confusion for when no
address is set.
Version 4.2.0 - 18th March 2014
- Fix missing htobe16 on windows and meaningless >u32 string warning.
- Software ntime roll for all hashfast devices.
- Silence harmless warning.
- Drop a failed restart icarus device to allow it to be rehotplugged if
possible.
- Work with more than one transaction.
- Kill gbt solo pools that don't respond to the gbt request 5 times
sequentially.
- Fix ser_number for no remaining val byte.
- Create a work item and stage it when updating the gbt solo template to allow
new block detection and restart code to work.
- Test block hash as well as block height when solo mining to ensure we haven't
been mining on an orphan branch.
- Fix transaction processing for gbt solo.
- Encode height using integer varint format.
- Make new block detection message not show in gbt solo from test_work_current
- Add block detection via getblockcount polling in gbt solo and update gbt
template every 60 seconds.
- Iterate over transactions twice to malloc only once when copying all the
transaction data.
- Update solo coinbase regularly and submit as gbt work
- Only show merkle hashes for solo mining in debug mode.
- Set correct flag for solo work.
- Generate gbt solo work emulating stratum work construction.
- Set the diff as a double sdiff from gbt solo data.
- Move swork.diff out of the stratum work section to be shared as sdiff.
- Generate a header bin from gbt solo as per the cached stratum one.
- Store strings similar to stratum's when decoding gbt solo
- Avoid allocing and freeing stratum strings that should be fixed length.
- Run parser through detect_stratum after stratum+tcp:// is force added
- Remove unnecessary header length calculation for stratum header binary and
only binary convert the correct length of the header.
- Share more fields between stratum and gbt
- Share coinbase_len variable b/w stratum and gbt and setup more gbt solo
parameters.
- Generate a valid coinbase and set nonce2offset for gbt solo
- Move scriptsig header bin conversion to setup gbt solo
- Create our own custom scriptsig base.
- Add helper functions for creating script signature templates and beging
building template.
- Do gbt solo decoding under gbt lock.
- Add more gbt variable decoding from gbt solo information.
- Store all the transaction data in binary form when using GBT
- When setting up solo mining, check validity of bitcoin address against
bitcoind
- Make pooled GBT mining use merkle bin optimisations slated for solo mining.
- Abstract out the merkle bin calculation for gbt solo
- Implement efficient merkle tree base from solo GBT information.
- miner.php custom formatting and row counter '#'
- Drillbit: Fix for underestimating hash rate from Bitfury devices
- Send per-core hashrates at regular ~5min intervals back to cta devices.
- Calculate the cta per core hashrate at 5 minute intervals.
- Check the bits of the correct core in cta bit count.
- Display the bit count along with the bitmap for each cta core in the API stats
output.
- Store and display the per core hashrate on cta relative to each work restart.
- Decrease the time we wait for unsetting a core on the cta bitmap to correspond
with the lower max diff of 32.
- Set max diff on cointerra devices to 32 which is still only 11 shares per
second but allows for earlier confirmation of per core hashrates.
- Keep track of when the last restart and work updates were triggered and
provide helper functions for knowing the time since then.
- hashfast make api stats field names unique
- Fix gcc longjmp warning in api.c
- Add a per-core hashrate to the cta API stats.
- miner.php support edevs and estats
- API - put edevstatus where it was supposed to be
- Icarus - allow timing mode to work with ANU and not slow it down
- drillbit - remove warnings
- drillbit - minor code tidy up
- Drillbit: Change language around 'void' to warning about limiter disabled
- Drillbit: Fix accidental over-counting of HW errors
- Drillbit: --drillbit-auto parameter for tweakable custom tuning of ASIC speeds
- Drillbit: Output warning if board reports void warranty
- Drillbit: Add Avalon & drillbit-autotune notes to ASIC-README
- Drillbit: Limit work sent out to 8 units in a single pass, was DoSing a full
double scroll
- Drillbit: Move drillbit_empty_buffer calls to only when errors occur, were
limiting performance on Windows
- Fix Windows bug with libusb_reset_device returning SUCCESS for disconnected
device
- Drillbit: Fix some warnings
- Drillbit: Add --drillbit-autotune option for device to dynamically alter clock
speed
- Drillbit: Fix typo in previous commit
- Drillbit: Remove default config in cgminer, rely on defaults in firmware
- Drillbit: Combine split USB transfer for sending new work, reduce overhead
- Drillbit: Add support for protocol V4, with device-agnostic board
configuration data
- Drillbit driver: Add support for Avalon-based Drillbit miners
- API - add edevs and estats - to only show enabled devices
- Check device data exists on a hfa instance before trying to reinit it.
- Print off what quadrant regulator failed if known in hfa driver.
- Reset all the stats on autovoltage complete in cta driver.
- Use correct diff instead of diffbits in cta driver.
- Whitelist all firmwares <= 0.5 on hfa for software rolling of ntime.
- Avoid a memory leak by reusing the ntime field when rolling stratum work.
- Clear the pipe bitmap on cta only when no share has occurred for 2 hours
instead of 1.
- Cta share_hashes should be added, and we can base it on device wdiff instead
of pool work difficulty for more accurate hashrates.
- Since the device runtime is now reset, the Raw hashrate entry in the cta API
output is no longer meaningful.
- Look for autovoltage returning to zero on cta driver and reset stats at that
point since the hashrate is unreliable till then.
- ants1 - cgminerise applog calls
- Default to stratum+tcp:// on any urls that don't have a prefix instead of
http.
- Trivial cta style changes.
- ants1 - fix/enable temperature checking and remove unneeded temp_old
- ants1 - move local cgpu variables to info structure
- ants1 use a klist to store work and copied work
- Simplify dramatically the cross-process cgminer locking through use of flock
instead of sysv semaphores.
Version 4.1.0 - 8th March 2014
- Correct fix for dev start time being adjusted for stat zeroing.
- Make per device stats work for average after a stat zeroing.
- Add an hfa-options command line that allows the clockspeed to be chosen per
device by name comma separated, with a function that can be expanded with more
options in the future.
- Off by one drv_rolllimit check against jobs
- Free the work that may be lost, leaking memory, in a failed hfa_send_frame
- Roll the ntime for work within the hfa driver for firmware we know doesn't do
it internally as an optimisation.
- Export the roll_work function to be usable by driver code and make it
compatible with rolling stratum work.
- Make opt_queue be respected as a maximum value for staged items.
- Disable mistakenly enabled lock tracking.
- api version update for HEX32
- api.c - HEX32 type needs quotes
- Disable the MAX_CLOCK_DIFF check for newer hashfast firmwares since it's not
required.
- Store the hardware and firmware revision in the info struct for easy use in
the hfa driver.
- Only decrease the hfa clock rate if the device has been running for less than
an hour before dying.
- Change lack of op name response message in hfa driver
- Check for lost devices at every write/read in hfa_detect_common
- Make bxm bits configurable.
- Move avalon2 options to ~alphabetic position in help.
- Do a shutdown routine on bxm close.
- Provide support for 2 chips in libbitfury sendhashdata and enable the 2nd chip
on BXM devices.
- Remove unnecessary opayload and newbuf members of bitfury info struct.
- Add an spi add fasync command.
- Cope with older hfa firmware not even responding to op_name.
- Forcibly kill everything silently with an exit code of 1 should we fail to
cleanly shut down and use a completion timeout for the __kill_work in
app_restart.
- Make __kill_work itself also be a completion timeout.
- Generalise more of libbitfury for more reuse in both nf1 and bxm drivers.
- Remove redundant init components of bxm driver.
- Set default osc6 bits on bxm to 50
- Enable the transaction translator emulator for bxm devices and use a dummy spi
tx the size of a normal payload.
- Store usb11 and tt flags as booleans in cgusbdev allowing them to be
discretely enabled as well as detected by the device data.
- Add bxm scan function and check spi txrx returns only as much as sent.
- Add init sequence to bxm detect one.
- Add a bxm specific txrx function for spi transfers.
- Add bxm close to bitfury shutdown switch.
- Add reset/purge/cshigh/low sequence to bxm init
- Add bitmode init to bxm open sequence.
- Add initial bxm opening sequence for detect one.
- Add identifiers for bxm bitfury devices.
- Clean up parse_method
- More gracefully break out of parse_notify on a corrupted hex string error,
checking the return value of all hex2bin conversions and being consistent with
using stack memory. Fix an unlocking error in cases of failure.
- AntS1 - add detection information to usbutils
- Enable Bitmain Ant S1 code and make it conform to cgminer requirements
- Make the cointerra displayed hashrate based on valid share generation.
- Convert and update values shown in the cointerra api output.
- Export the api_add_int16 function.
- Use a custom mystrstr function in cointerra driver.
- Add api_add_int16 to API functions.
- Add support for Bitmain Multi Chain and Single Chain and optimize the
efficiency
- Add support for bitmain devices
- Perfect function of BitMain Multi Chain
- Add support for Bitmain Multi Chain and Single Chain and optimize the
efficiency
- Add support for bitmain devices
Version 4.0.1 - 28th February 2014
- Refresh the log window on pool failure message at startup.
- Rework the pool fail to connect at startup to not get stuck indefinitely
repeatedly probing pools with new threads and to exit immediately when any key
is pressed.
- Use an early_quit function for shutting down when we have not successfully
initialised that does not try to clean up.
- Add more information to a hfa bad sequence tail event.
- Increase the work queue at the top end if we've hit the bottom as well.
- Set the work generation thread high priority, not the miner threads.
- Bringing each hfa device online takes a lot of work generation so only ever do
one at a time.
- Increase the opt_queue if we can hit the maximum amount asked for but are
still bottoming out.
- Keep the old hfa device data intact with a clean thread shutdown to allow it
to be re-hotplugged with the old information.
- Cope with the API calling hfa on partially initialised devices having no info.
- Show only as many digits as are required to display the number of devices.
- Cold plug only one hashfast device to get started, and then hotplug many to
minimise startup delays and possible communication delays causing failed first
starts.
- Send a shutdown and do a usb_nodev if hfa_reset fails.
- Null a device driver should thread prepare fail.
- Add a function for making all driver functions noops.
- Don't try to reinit a device that's disabled.
- Disable a device that fails to prepare.
- Check for lack of thread in watchdog thread for a failed startup.
- Make all device_data dereferences in the hfa driver safe by not accessing it
in statline before when it's non-existent.
- Add an option to disable dynamic core shedding on hashfast devices.
- Do not remove the info struct on a failure to hfa prepare.
- Detect an hfa device purely on the basis of getting a valid header response to
an OP_NAME query, leaving init to hfa_prepare which will allow multiple devices
to start without holding each other up at startup.
- Store the presence and validity of opname in the hfa info.
- api - buffer size off by 1 for joined commands
- minion - clean up statline
- Only break out of usb_detect_one when a new device is found.
- Use usb_detect_one in the hfa driver.
- Provide a usb_detect_one wrapper which only plugs one device at a time,
breaking out otherwise.
- Issue a usb_nodev on a bad work sequence tail in hfa
- Read in hfa stream until we get a HF_PREAMBLE
- Add shed count to hfa API stats output.
- Display the base clockrate for hfa devices with a different name to per die
clockrates to be able to easily distinguish them.
- Use op_name if possible first with hfa devices to detect old instances and be
able to choose the starting clockspeed before sending an init sequence,
reverting to setting op name and serial number as fallbacks.
- Make hfa resets properly inherit across a shutdown.
- Don't break out of hfa_old_device early if there's no serial number.
- Fix harmless warning.
- Allow the drop in MHz per hfa failure to be specified on the command line.
- Icarus - ignore HW errors in hash rate ... and fix detection of them
- Enable the hfa shed supported feature by default.
- Add to udev rules hfa devices for firmware writing.
- Remove ENV from hashfast udev rules.
- Add a --hfa-name command that allows one to specify the unique opname for a
hashfast device.
- Ava2 decode the voltage, get the temp_max
- Set the clock rate with a work restart instead of an init when changing to old
clocks for hfa
- Set opname on hfa devices without a serial number to a hex value based on time
to not overflow the field.
- Add op name to hfa API stats output if it exists.
- Set the actual op_name in hfa devices if cgminer is choosing it itself due to
it being invalid.
- Re-init an hfa device to its old data before setting up info structures as
their sizes may change.
- Remove the usb device whenever we do a running shutdown on hfa and do a
shutdown as the imitated reinit to allow it to hotplug again.
- Reset opt hfa dfu boot after it's used.
- Comment out windows only transfer on hfa startup.
- Clean up structures unused in case of all failures in hfa detect common
- Clear all structures should we fail to hfa reset on adjusting clock on a
hotplug.
- Set master and copy cgpu hash clock rate for hfa when dropping it on a
restart.
- Set the master hfa clock speed to lower when shutting down a copy.
- Do a clear readbuf on any hfa reset in case the device has not yet cleanly
shut down.
- Increase hfa fanspeed slightly more when it's rising in the optimal range than
falling.
- Always decrease hfa clock speed on a running shutdown and don't try sending an
init frame since it will be dropped regardless.
- Match hfa devices to old ones based on OP_NAME values before serial numbers if
possible.
- Read off the OP_NAME if it exists and is supported on hfa devices, setting it
to the device serial number or a timestamp if it is invalid.
- Updated hf protocol
- Check for an amount along with no error in hfa clear readbuf
- Hfa clear readbuf can return a nonsense amount when there's a return error so
ignore the amount.
- Running resets always cause a shutdown on hfa meaning the device will
disappear with modern firmware so always kill off the threads to allow
re-hotplugging.
- Reset the hfa hash clock rate to the old one if we find an old instance, only
setting the device id in hfa_prepare
- Keep the device_id on the original zombie thread for HFA in case of further
resets.
- Break out of hfa inherit if there is no device data.
- Inherit the hfa zombie instance after the device id has been allocated.
- The list_for_each_cgpu macro will dereference when there are no mining threads
yet.
- Make hfa hotplug inherit some parameters from a previous instance if the
serial number exists and is matching, avoiding dropping the clock on all
devices.
- Per device last getwork won't work if the device stops asking for work.
- Use the share_work_tdiff function in the driver watchdogs.
- Provide a helper function for determining time between valid share and getwork
per device.
- Store last_getwork time on a per-device basis.
- Limit the decrease of hfa clock rate on reset to the default clockrate.
- Base the hfa failure time on the current expected hashrate instead of a static
15 seconds.
- We shouldn't be trying to read from the hfa_send_shutdown function itself.
- Reset the icarus failing flag only when a valid nonce is found.
- Transferred value is corrupt on a NODEV error in usbutils.
- Set each miner thread last valid work just before starting its hash loop in
case there are delays at startup.
- Only memcopy *transferred data in usbutils if we have received only success or
a non-fatal error.
- Increase to 25 nonce ranges on icarus fail detect.
- Set icarus device fail time to be dependent on device speed to avoid falsely
detecting failure on slower AMU devices.
- Updated hf protocol header.
- Updated BE hf protocol header.
- Take into account shed cores on hfa devices when determining how many jobs to
send.
- Fix compilation error with two avalon types.
- Fix missing A1 files from distribution.
Version 4.0.0 - 21st February 2014
- Check for error from setfloatval
- Halfdelay cannot be larger than 255.
- Allow any arbitrary frequency to be specified for ANU devices and try to find
the nearest frequency when initialising it, reporting if the frequency is not
exactly as requested.
- Only show system libusb warning when appropriate during configure.
- Merge branch 'avalon2' of https://github.com/xiangfu/cgminer into
xiangfu-avalon2
- Hfa cooling remains satisfactory down to a minimum fanspeed of 5%
- Give a nodev error if we have already set nodev in hfa clear readbuf to avoid
further usb comms attempts.
- Fix missing include
- Move bitmine options to alphabetic positioning.
- bab - missed a few 'DEAD's in last commit
- bab - use 'bad' instead of 'dead' as per the screen B:
- bab - roll work if possible to reduce CPU
- Update the per die hash clock data on a running reset on hfa devices.
- Set the per die clock on hfa to the known starting base clock instead of our
requested clock rate.
- Hfa device failure can be detected within 15 seconds so we should try
restarting it sooner to avoid tripping the device's own watchdog.
- Check return result of hfa clear readbuf to minimise error messages on device
failure.
- Put MHz into cta statline description.
- Send a work restart with every shutdown message to hfa devices to clear any
work that might be stale on the next restart.
- Store the hfa hash_clock rate and display it in the statline.
- Store the maximum board temperature for hfa devices and take that into
consideration when calculating the highest temperature as well as the dies.
- A1: CoinCraft-Desk driver variant
- Initial import of Bitmine.ch A1 SPI driver
- klondike ensure stats type matches
- avalon, bab, drillbit, klondike use more screen space rather than truncating
info
- Add hashfast fanspeed% to statline display.
- Move driver statline padding to cgminer.c, expanding width of maximum
displayable statistics and window width to add more info.
- Prune old stratum shares that we've seen no response for over 2 minutes to
avoid memory leaks for pools that don't respond about some shares.
- Add warning if system libusb is being added.
- Only run ./configure with autogen.sh if extra parameters are passed to it.
- Updated cointerra features.
- Add le16toh defines for platforms that may be missing it.
- Remove modminer bitstreams from distribution and replace with a README saying
what file needs to be added if modminer build is still desired.
- Use the simplelog function from usb_list()
- Add a simplelog function that does not log date and time.
- Use a unique usb_list function displaying only pertinent information when
listing usb devices from the menu.
- Abstract out the _in_use function to take different linked lists.
- Break out of linked list loop in remove_in_use in case we've gone over the
whole list.
- Check for hfa invalid hash clockrate after other error messages.
- Detect non-responsive icarus devices and attempt a usb reset before killing
them after 2 minutes of no hashes.
- Detect non-responsive bitfury devices and try a usb reset on them before
killing their instances off after 2 minutes of no activity.
- Allow hotplug interval to be changed from the USB menu.
- Prevent recursive loop in __is_in_use linked list walking.
- Add the ability to whitelist previously blacklisted usb devices from the menu.
- Use a bool in struct cgpu to know when a usb device has been blacklisted,
avoiding blacklisting it more than once.
- bab - ensure disabled chips are counted in the screen dead chip counter
- bab - only disable the chip once ...
- bab - short work list skip disabled chips
- api.c avoid incorrect gcc warning
- cgminer -h crash fix
- Add blacklisting as an option to the USB menu.
- Add a mechanism to blacklist a usb device from its cgpu.
- Add an option to the USB menu to list all known devices.
- Add an option to send a USB reset via the USB menu.
- Add a usb_reset by cgpu function to usbutils.
- Add warning for attempting to unplug a usb device that is already removed.
- Add USB Unplug option to USB management device management menu.
- Add enable and disable USB device functions to the menu.
- Add a [U]SB menu item, initially with just statistics per device, adding
device number to the device status window display.
- Reuse the cgpu temp entry for avalon and bitfury devices, changing avalon to a
damped value.
- Store the cointerra maximum temperature in the cgpu struct as an exponentially
changing value based on the maximum temperature.
- Reuse the cgpu->temp entry for max temperature in hfa driver.
- bab - disable chips that return only bad results
- Add driver for cointerra devices.
- Add Avalon2 (2U size machine) support
- miner.php - define a default rigport (that can be changed) and don't require a
port number in the rigs array
- miner.php allow links for rig buttons in tables and allow using the 4th IP
octet if no rig name - default disabled for both
- format fix and bad variable usage fix for --benchfile
- Allow running cgminer in benchmark mode with a work file --benchfile
- ANU frequency is in MHz, not hex.
- Remove bitfury devices from the usb list on shutdown in case they have stopped
responding but have not had a fatal usb error.
Version 3.12.3 - 8th February 2014
- Put the hashfast temperature into the cgpu structure so that it shows up in
the devs API call.
- We shouldn't block on no work situations directly from the getwork scheduler
itself.
- Revert "Make the pthread cond wait in the getwork scheduler a timed wait in
case we miss a wakeup."
Version 3.12.2 - 8th February 2014
- Adjust antminer U1 timing according to command line frequency set, fixing the
need for icarus timing on the command line.
- Read pipe errors that don't clear are worth attempting to reset the usb.
- Revert "Do away with usb resets entirely since we retry on both pipe and io
errors now and they're of dubious value."
- Make the pthread cond wait in the getwork scheduler a timed wait in case we
miss a wakeup.
Version 3.12.1 - 7th February 2014
- Document new features for antminer U1 and hfa devices.
- Add support for ANU overclocking.
- Increase hfa fanspeed by more if we're rising in temp above the target than if
the temp is staying the same.
- Add debug output when get_work() is blocked for an extended period and add
grace time to the device's last valid work to prevent false positives for device
failure.
- Issue a shutdown prior to a reset command for hfa devices and lock access to
reads awaiting the response if the device is already running.
- Do not register as successful a hfa init sequence that reports the clockrate
as zero.
- Show device info in noffset nonce share above target message.
- Widen lines in top menu to fit extra large share values.
- Only show one decimal place if pool diff is not an integer.
- Show serial number as a hex value in hfa verbose startup.
- Slowly remove work even if it's not being used to keep the getwork counter
incrementing even if work is not used and as a test that pools are still
working.
- Increase the maximum diff between hfa dies to 100Mhz.
- Show which hfa die is bringing down all the others when decreasing all the
clock speeds.
- Increase the decrease when temp has increased more and we want to decrease it
on hfa.
- Give device info with share above target message.
- Allow throttling of hfa dies more frequently and increasing of speeds less
frequently.
- Wait after sending a hfa shutdown to allow the device to properly shut down
before possibly sending it more commands.
- Minimise the die clock differences in hfa to no more than 50Mhz.
- Check for when errno is set on windows as well as the windows variant for
errors.
- Revert "Update to libusb-1.0.18"
- Disable fan/die clock control in hfa if the firmware does not support it, with
notification.
- Add ability to enter ANU frequency as a multiple of 25 from 150-500.
- Decrease hfa clock by 10 if a reset is attempted due to the device remaining
idle.
- ifdef out icarus options unused without icarus built in.
- Reorder command line options alphabetically.
- Add no matching work to hfa API output.
- Change various logging message levels in the hfa driver.
- Only adjust clocks if there is no restart in hfa to avoid 2 restarts back to
back.
- Ensure we iterate over all dies adjusting temperate for hfa by starting
iterating after the last die modified.
- Clamp initial hfa fanspeed to min/max if passed as parameters.
- Allow hfa fanspeed to be set via command line.
- Further relax the target temperatures on hfa driver, targetting 88 degrees.
- Try one more time to get the hfa header on init since it can take 2 seconds
for all 3 boards on a sierra.
- Update authors for removal of gpu/scrypt.
- Wait for 5 temperature updates in hfa before adjusting fanspeed.
- Have some leeway before starting to throttle hfa dies.
- Use increments of 10 when increasing hfa clock since it may not have 5 MHz
granularity internally.
- Only perform a hfa fan speed update if we have new temps to work with.
- Correctly measure the hfa max temp and smooth out the changes in its value.
- Choose better defaults for min/max/default fan settings for hfa driver.
- bab - reduce def speed, fix speed staying in ranges and report bank/chips in
ioctl() errors
- bab - add info about number of boards/chips to each Dead Chain
- These may not be longs (eg: OSX)... fo a safe cast to ensure.
- bab - add dead boards and dead chains to stats
- Add fanspeed to hfa api output and set initial fanspeed to 10%
- Add hfa fanspeed control to try and maintain a target temperature.
- API-README correct new text format documentation
- API allow multiple commands/replies in one request
- Add op commands necessary to control hfa fanspeeds.
- Add OP_FAN to hf protocol header.
- Always show the stratum share lag time in debug mode.
- Add stratum share response lag time to verbose output if it's greater than 1
second.
- Add stratum share submission lag time to verbose information if it's over 1
second.
- Check for more interrupted conditions in util.c and handle them gracefully.
- Send a ping to hfa devices if nothing is sent for over 5 seconds.
- Add OP_PING to hfa commands
- Display the hfa serial number as a hexadecimal value.
- Add the ability to display a hexadecimal 32 bit unsigned integer to the API.
- Limit all hfa restarts for temperature control to no closer than 15 seconds
apart.
- Allow the hfa temp target to be disabled by setting it to zero.
- Handle interruptions to various select calls in util.c
- Add sanity check for silly overflows in hfa die temperature readings.
- Add per-die throttling control for hfa driver based on each die's temperature,
issuing a suitable reset to maintain the temperature below a configurable target
temperature.
- Update hf protocol
- Do not memcpy in usbutils unless data was transferred.
- Send a full allotment of jobs to the hfa device after a restart instead of
reading the status.
- Export the flush_queue function for use by drivers.
- Remove wrong goto
- Remove the unqueued work reference when we discard work from get queued as
well.
- Wake the global work scheduler when we remove a work item from the unqueued
work pointer.
- Discard work that is stale in the get_queued() function, returning NULL
instead.
- Add a call to a driver specific zero stats function when zero stats is called
to allow each driver to reset its own stats as well if desired.
Version 3.12.0 - 29th January 2014
- Add support for AntminerU1 devices with the icarus driver.
- Add antminer U1 to comment in udev rules.
- Do away with usb resets entirely since we retry on both pipe and io errors now
and they're of dubious value.
- Retry on usb IO errors instead of faking success.
- Check that we've cleared the pipe error after a clear request, not the err
value which is unchanged.
- Update to libusb-1.0.18
- Change hfa overheat limit to 90 degrees.
- Relax timeout in hf get header to 500ms to match the usb timeout.
- Minion - check/clear interrupts for all chips
- Set info work to null after it is freed in nf1 after a restart to prevent
double free later.
- The second_run bool in libbitfury should be per device. Microoptimise its and
job_switched usage, removing the unused results array for NF1 devices.
- Fix displayed diff when solo mining at >2^32 diff.
- bab - stop stale work accumulating
- bab - set the default SPI speed back to 96000
Version 3.11.0 - 25th January 2014
- Add hashfast documentation to ASIC README
- Support the variable HFA naming throughout the driver notices.
- Set the global hfa hash clock rate to equal the lowest if we are lowering it
for a device reset since it may be re-hotplugged after failing reset.
- Decrease the hfa clock rate if it is overclocked and we have had to try
resetting it.
- Put a sanity check on the measured temperature in the hfa driver for obviously
wrong values.
- Avoid calling applog from within hfa statline before to avoid a deadlock.
- Add throttling control to hfa driver, configurable at command line, nominally
set to 85 degrees.
- Reset hfa device if no valid hashes are seen for 1 minute from the last work.
- Store when the last getwork was retrieved and display it in the API summary.
- bab - also report dead chip count screen
- Count share based hashes in the hfa driver with the device diff to get more
frequent updates.
- Only count 2/3 of the accumulated hashes on each pass through the hfa scan
work loop to smooth out displayed hashrate.
- bab add total history HW% to API stats
- Test valid nonces in the hashfast driver allowing us to check against the
target when trying to submit them.
- No point casting a double to a uint64
- Convert the hfa hashmeter to one based on successful share return and display
the raw and calculated hash totals in the API.
- bab - remove libbitfury dependency since it requires USB
- Add description to hfa hash clock command.
- Add hfa board temperatures to API output.
- Wait for up to 0.5 seconds in the hashfast scanwork loop if no jobs are
required.
- Label HFA devices as B or S when their configuration matches babyjet or
sierra.
- Fix libbitfury being compiled in always by mistake.
- bab - spelling
- Add bab-options
- bab - tune the chip speed based on error rates
- bab record/report spie and miso errors
- Win32 falsely comes up as big endian pulling in the wrong hf protocol header.
- Remove unused components in hashfast driver.
- Check in all usb communication places for hashfast driver that the device
still exists.
- Do not send a usb reset on a usb read pipe error.
- Don't replace usb pipe errors with the pipe reset return code.
- Updated hf protocol header.
- The search for extra nonce is not worth performing in the hashfast driver.
- Add core address to hfa parse nonce debugging.
- Retry sending a frame once if it has failed in hfa_send_frame
- Add extra hfa usb init errors.
- Quiet now unused variable warning in hfa detect.
- Remove unused variable.
- Add board temperature to hfa debug
- Make submit_tested_work return a bool about whether it meets the work target
or not.
- Provide a helper function for determining dev runtime and use it in the
hashmeters used.
- Look for hfa usb init header for 2 seconds, then resend the init twice more
before failing.
- Really only set up the hfa crc table once.
- Generically increase the queue if we are mining on a pool without local work
generation each time we run out of work.
- Change new block detection message since longpoll is rarely relevant today.
- Change the default clockspeed bits on nanofury devices to 50 and add a command
line option to allow it to be changed.
- Use unused line at the top of the log window which often gets stuck
unchanging.
- Clear pool work on a stratum reconnect message.
- bab record/report spie and miso errors
- bab - cleanup old work for dead chips also
- bab add avg fail tests to API stats
- bab report bank/board/chip for dead and v.slow chips
- bab process all nonce replies per chip together
- bab reduce work delays
- bab record the number of E0s discarded
- bab - modified result parsing
- bab restore removed unused flag
- configure - correct minion name
- bab only scan valid nonce offsets
- bab record continuous (and max) bad nonces
- bab display Banks/Boards/Chips in the device window
- Modify thread naming to make them easier to identify
- bab reduce the work send delay
- bab remove results polling
- bab report SPI wait in seconds
- bab report missing chips at start and API
- bab ensure there's enough space for the nonce reply
- bab correct stats 'Send Max'
- bab allow long enough wait on ioctl() per board
- bab more I/O stats
- api.c 2014
- api allow any size stats data
- bab add processed links which excludes expired links skipped
- bab report chips per bank, hw% and ghs per chip
- bab lock access to new_nonces to ensure correct reporting
- bab report V2 banks/boards during initialisation
- bab expire chip work
- bab use only k_lists and make work handling more refined
- klist - allow adding to tail
- bab remove old unused #define
- bab correct for master git
- correct klist reallocs
- klist lists for bab
- api.c correct DEVICECODE and ordering
- Maxchips should be 384 (16 chips/board 24 boards/controller)
- bab more detailed stats and delay less when waiting for a buffer
- api add data type AVG float 3 decimal
- bab - add V2 detect with bug fix in detect
- api.c set the actual version number to 3.0
- API V3.0 unlimited socket reply size
- README update --usb
- Check for loss of device in usb read before any other code on the usbdev
- Change stratum strings under stratum_lock in reconnect and free old strings.
- Add mcp2210 compilation to want_libbitfury configs.
- Fix HF driver typo.
Version 3.10.0 - 9th January 2014
- Set the mcp2210 transfer setting only when it changes.
- Buffer sizes in nanofury device data are unnecessarily large.
- Only perform spi reset on init, not with each transaction.
- Remove spi_detect_bitfury at nanofury startup and fix incorrect refresh time.
- Use a simple serialised work model for nanofury
- Use bitfury_checkresults to avoid hashing results twice in nanofury.
- Export bitfury_checkresults in libbitfury
- Pass extra parameters for later use in libbitfury_sendHashData
- Avoid double handling bswap of the nonce value in nanofury
- Avoid unnecessary rehashing in nanofury nonce checking.
- Remove the unused portions of atrvec in the nanofury driver
- Age work in nf1_scan to avoid risk of losing a work item and leaking memory.
- bitfury_work_to_payload is double handling the data unnecessarily
- Default bitrate on nanofury should be 200kHz
- localvec should be only 80 bytes not 80 words
- Wrong init value for nanofury
- Remove unused rehash values from nanofury driver.
- Only update info work in nanofury driver when it's empty.
- Fill the appropriate type of usb transfer when we know if it's an interrupt
transfer instead of a bulk one.
- Use the internal knowledge of the usb epinfo to determine whether we should be
doing an interrupt instead of a bulk transfer, and do not send a ZLP if so, and
limit read transfer to expected size automatically.
- Avoid bin2hex memleak when we start getting nanofury nonces
- Set atrvec only once and use a local array for each device's work.
- Cancel any spi transfers on nf1 close
- Add bitfury detection loop to nanofury startup
- Move spi init code to libbitfury
- Remove inappropriate extra config reg in nanofury setup.
- Status 0x30 should never happen with spi transfers.
- Fix spi transfer data size transmission mistakes.
- Minor correctness change in spi_add_data
- spi_txrx should always send and receive the same size message
- Random libbitfury changes.
- Set value of gpio pins to low on closing nanofury.
- Fix more init sequence for nanofury.
- Add basic initialisation for nf1 devices
- Add basic nf1_scan function.
- Basic import of libbitfury functions from nanofury branch
- Import functions from nanofury fork for libbitfury
- Meter out spi sends to only 2 bytes at a time, offsetting according to how
much data returns.
- Use the usb read limit function for mcp2210 reads.
- Provide a way for usb reads to just read the size asked for with a limit bool.
- Get pin value after an nf1 spi reset.
- Make sure what we send in the buffer doesn't change during spi reset for
nanofury
- Remove all standalone gpio setting change functions in mcp2210 and just use
the one global setting function.
- Set gpio values in the one function with all values for nanofury.
- Provide a helper function for setting all mcp2210 gpio settings.
- Add a helper function for getting all mcp2210 gpio settings.
- Set all pin designations and directions in one call for nanofury and don't
bother storing their values in the info struct.
- Provide helper functions for setting all pins and dirs on mcp2210
- Set all nanofury pin designations in one call
- Provide a helper function for setting all pin designations on mcp2210
- Store the spi settings in a struct for nanofury devices.
- Check the received status in mcp2210 spi transfers and repeat a zero byte send
if it's in progress.
- Set the bytes per spi transfer prior to each mcp2210 transfer.
- Separate out the send and receive functions for mcp2210 and check response
value in return.
- Check that mcp2210 spi settings have taken and check the value of the pin
during nanofury setup.
- Don't set GPIO pin designations after initial setting in nanofury since the
direction and values will be changed.
- Provide an mcp 2210 set gpio input helper function that sets a pin to gpio and
input.
- Move the set gpio output function to a generic mcp2210 version from nanofury
which also sets the pin to gpio.
- Implement a nanofury txrx with a larger buffer and cycling over data too large
to send.
- Implement magic spi reset sequence for nanofury.
- Add more spi magic to the nanofury init sequence.
- Add lots of magic spi initialisation to nanofury.
- Export reused components of bitfury management into a libbitfury and use for
bab and bitfury drivers.
- More init sequence for nanofury and implement a close function that sets all
pins to input.
- Reword offset header handling in hfa_get_header
- Sanity check in hfa_get_header
- Add more checks in hashfast driver for lost devices.
- Change spimode and send more data in nanofury setup.
- Add basic setup comms to nanofury.
- Implement an mcp2210 spi transfer function.
- Set the initial spi settings for nanofury driver.
- Provide a helper function for gettings mcp2210 spi settings.
- Implement an mcp2210 set spi transfer settings function.
- Cancel any SPI transfers in progress in nanofury after initial setup.
- Implement an mcp2210 spi cancel function.
- Return only binary values for mcp2210 GPIO values.
- Set GPIO LED and power to high in nanofury driver.
- Implement initial part of nanofury init sequence for GPIO pin settings and add
output debugging of set values.
- Add helper functions for getting and setting mcp2210 gpio pin designations.
- Don't return an error in usb read if we've managed to get the whole read
length we've asked for.
- Use correct endpoint order for nanofury devices and read with a short timeout
on return loop from send_recv.
- Add mcp2210 helper functions for getting and setting one GPIO pin val and
direction.
- Create a generic gpio pin struct and add helpers for mcp get pin val and dirs.
- Check the receive msg of a send/receive cycle on mcp2210 matches the send
message.
- Add a set of usb commands to the usbutils defines for mcp2210 comms, and use
the same command name for send and receive.
- Create a generic mcp2210 send_rcv function.
- Include mcp header for bitfury and fix extra params in macro.
- Add basic SPI comms defines for mcp2210 and build rules for bitfury.
- Minion set some core defaults similar to final requirements
- minion compile warnings
- move driver-minion.c to main directory
- Minion with ioctl() stats, settings to attempt to emulate 21TH/s
- minion driver with results interrupt working
- tested working driver-minion.c without interrupts
- Working driver-minion.c v0.1
- driver-minion.c compilable untested
- minion driver - incomplete
- Add minion driver into cgminer
- Add basic device detection and updated udev rules for nanofury devices.
- Remove GPU from share logging example.
- Don't keep resetting BXF clockspeed to default.
- If no pools are active on startup wait 60s before trying to reconnect since we
likely have the wrong credentials rather than all the pools being out.