123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017 |
- Version 4.9.0 - 16th December 2014
- - Minor fix
- - Fix MM41 voltage setting
- - Fix the default settings of new module
- - Count non matching stratum as a hw error on ava4
- - Fix ava4 build incompatibilites and missing write config parameters
- - Use strcasecmp for device matching in usbutils in case of subtle manufacturer
- changes
- - Add manufacturer and product definitions for ava4
- - Cosmetic ava4 change
- - Cosmetic ava4 message fixes
- - Add sanity check for NULL data being passed to usb_perform_transfer
- - All write errors should be treated as fatal for ava4 devices
- - Change initial fan start speed, mins and max for avalon4 to ensure fan starts
- spinning but can go lower RPM
- - Disable zero length packets on ava4 before trying to init
- - Add a cgpu device option to disable zero length packets and enable it for
- avalon4
- - Display ava4 stats consistent with other devices
- - Add ava4 to udev rules file
- - Fix build warnings on ava4
- - Fix ava4 build
- - Add Avalon4 support
- - Filter duplicate stratum shares from being submitted upstream
- - Do rudimentary detection of duplicate shares per device
- Version 4.8.0 - 25th November 2014
- - Allow forcing of building driver combinations with
- - Put spaces between name and id in avalon2 and icarus
- - Relax detection of a failing ava2 to more than 1 minute and perform the test
- after polling for results
- - Cap maximum diff on ava2 in order to still get shares
- - Put space between device name and id to prevent device names with numbers in
- them confusing the display
- - USB write errors are always fatal so they should be treated as such on ava2
- - Issue a usb reset for ava2 that is not returning valid shares and then drop it
- if it persists for over a minute
- - Process share results without a result value
- - Damp out hashrate displayed for antminer USBs
- - Add voltage and speed where relevant to antminer USBs
- - Don't estimate time on any antminer usb during a timeout
- - Return icarus nonce ok only when the nonce size matches the device or more
- - Don't discard old workids until we cycle back to them on antusb and look for
- more nonces in the buffer
- - Adjust ant usb timing for queued work
- - Use a cyclical list for the ant queued work
- - Mask and limit workid for antusb and dont clear buffer
- - Check the nonce on the worked item, not the submitted work
- - Skip over unfinished work that we can't free in ant usb
- - Use a workid and array if possible for the small ant usb work queue
- - Create an array for antworks for antminer usb devices
- - On U3 calculate hashrate purely on shares, not timeouts
- - Add switches for AU3
- - Adjust icarus wait timeout according to device
- - Differentiate U3 from U1/2 as a separate driver with different parameters and
- adjust timing accordingly
- - Skip ANUs detected in rock detect
- - Try U3 after trying other icarus options
- - Add rudimentary ANU voltage setting support for U3
- - Fix ignoring unprefixed v6 address in api allow list
- - Fix minor typos in Spondoolies SP10 and SP30 drivers
- - Implement a basic rock_flush function to discard the base work we are rolling
- work from.
- - Task_no for rockminer from the nonce bin should simply be masked
- - Change rbox default correction times to 5 in a revised frequency order
- - Change default frequency on T1 to 330
- - Reinstate last received check and resend in rockminer, being more lenient at 2
- seconds to allow for dither errors at 1
- - Roll work for the rbox when possible
- Version 4.7.1 - 4th November 2014
- - Selectively yield on dropping a lock only on single CPU platforms
- - Make it impossible to configure in more than one device that is meant to be
- standalone. Add more information to configure help, along with comments for new
- drivers.
- - Add warning against system libusb in configure help
- - stratum_rthread sleep only 3s when all the pool have disconnected
- - Filter responses that don't have a result
- - Implement support for pool ping and json integers of zero in getversion and
- ping
- - Fix segfault when writing config with hashratio built in
- - Save pools in priority order at time of writing config
- - Set the correct flag for close on exec for sockets
- - Suspend stratum on removing a pool
- - Set CLOEXEC on sockets on linux
- - Drivers that take a diff should specify a max diff or it is assumed they don't
- support one so set max_diff to 1 if unset
- - Send hfa generic frame only if voltage was specified on the command line for
- that device
- - Set hashfast voltage settings only when really needed
- - Hashfast voltage support
- - Increase max diff on sp30 to 1024
- - Reset ipv6 flag to false in every api-allow loop
- - undeclared identifier 'IPV6_ADD_MEMBERSHIP' fix for apple
- - two back temps spondoolies2
- - two back temps spondoolies
- - correct suggest_difficulty json rpc call
- - Add more usb3 hub identifiers for windows
- - Set driver max diff to large value if unset
- - Wake gws on get queued
- - Implement blacklisting of attempting to match known products from ones without
- identifiers
- - Fix hfa driver building without libcurl
- - Enable building libusb without udev
- - Fix off by one calculation error in sp30 leading zeroes
- - Send correct diff work to sp30 for hashmeter to be correct
- - Do the sleep in spondoolies_queue_full_sp30 after dropping the lock
- - Minor tidy in sp30 driver
- - Fix sp30 warnings
- Version 4.7.0 - 14th October 2014
- - Implement generic inet_pton for windows
- - Fix warnings
- - Fix bulk of remaining style in blockerupter.c
- - Tidy style in blockerupter.h
- - Tidy bulk of style in blockerupter.c
- - Fix missing minimum diff setting for blockerupter
- - Fix unused variable warnings
- - remove unnecessary sleep; fix potenital div by 0 errs; use min_diff in driver
- definition
- - Fix coding style
- - Make the sp30 hashrate meter based on valid share generation
- - Change default max queue back to 1 in line with speed of most current asic
- controllers
- - Change diff limits to values suitable for sp30
- - Add pool number to response from addpool to the API
- - Make the restart and quit API commands valid json responses
- - Fix number of nos
- - Add option to set clock ('
- - compatible with X24 board
- - Fix error when using v6 without mask in api-allow
- - Support ipv6 multicast
- - Set min_diff to 1
- - Allow arbitrary clamping of lower device diffs for slow controllers by driver
- - Don't set default fan to max on hashratio
- - The 2nd read never gets anything on ava2 so remove it entirely and just return
- an error if we are out of sync
- - Implement support for mining.suggest_difficulty
- - Fix client ip address output
- - Free addrinfo garbage
- - Remove the brackets when using v6 pool address
- - Add ipv6 support for api listen
- - Avalon Nano: Add support Avalon Nano usb miner
- - fix bug in setdiff
- - limit minimum diff to 64
- - Add BlockErupter Driver
- - Avalon2: display currect max temperature on statline
- - Remove unused variable
- Version 4.6.1 - 20th September 2014
- - Throttle bflsc28 devices when they hit the overheat limit
- - Add whitelisting of firmware used in final bflsc28 products
- - API.java - remove lowercase of all data sent
- - Avalon2: Add 3 bytes nonce2 support
- - Avalon2: MM needs n2size length <= 4
- - Use fan min as fan speed when run with --avalon2-fixed-speed
- - Clear the pool submit fail bool after adding shares to the stratum hashtable
- to minimise window the share is not in the table
- - api-example unlimited socket works
- - Add custom strcasestr and use custom gnu type functions in bflsc
- - Fix windows build of bflsc driver
- - Fix possible deref in bflsc28
- Version 4.6.0 - 7th September 2014
- - We should not be checking for pool_unworkable in cnx_needed as it is keeping
- stratum connections open on unused pools
- - Properly handle lack of input when adding pool via menu
- - Allow workers without passwords
- - minion - increase max chip number
- - Avalon2: add more comments on Avalon2 options
- - Avalon2: add polling delay option, long coinbase support, LED status on API,
- change overheat from 88 to 98
- - minion - add a ' before non-zero core error counts
- - minion - hidden optional per core nonce stats
- - bflsc28 - clock is hex
- - bflsc28 - allow setting clock and volt from the API ascset command
- - bflsc28 - add chip count to stats
- - bflsc28 stats
- - Simplehacks to better serve bflsc28
- - Only use one hashtable for bflsc28 work queued
- - Copy back the buffer after we've stripped the inprocess field on bflsc
- - Parse results for BMA based on uid and remove work from the queue when found
- - Strip out the inprocess details from bflsc results if it exists
- - Create a hashtable of work by uid as it's accepted by BMA
- - Add some rudimentary values for BMA sleep times
- - Fix various errors in queueing work for bflsc28 and limit job queueing to 10
- to fit within a usb frame
- - Create preliminary work queueing for bflsc28 using jobs of up to 20 at a time
- by rolling work where possible
- - Convert all bflsc transfers to the full 512 bytes
- - Don't mistake bflsc28 for fpga
- - Do initial detection of bflsc28 devices
- Version 4.5.0 - 29th July 2014
- - Fix windows build for hashratio and ava2
- - Demote bad checksum message in cointerra driver but allow message to still be
- parsed since it won't allow existing firmwares to work otherwise
- - Reorder and document the configure options
- - Merge https://github.com/KnCMiner/cgminer into knc
- - Change default voltage on ava2 to 0.666V because Satan
- - Enable combined building of avalon2 and hashratio
- - Fix stratum embedded fpgas to not duplicate work with other devices
- - Implement smarter PID type fan control for ava2 allowing more generous
- temperatures and far lower fan speeds for optimal power and noise usage. Adjust
- default frequency to 450 as per recommendation.
- - Fix various warnings in ava2
- - Go back to polling design since async will not work for ava2 and fix various
- read design errors
- - Fix error in 2nd read functions for av2 and hro
- - Correct init and read sequence for ava2, and convert from a polling mechanism
- to a separate read thread
- - Initial commit of ava2 conversion to direct USB
- - Display frequency and voltage with ava2 on the statline
- - Store fan percentage and display temp and fan percent for ava2
- - Set avalon2 frequency and voltage to appropriate defaults if none are
- specified on the command line
- - Demote some ava2 messages that don't need to be errors and remove unused works
- array
- - Fix broken fan logic for ava2
- - Fix hexdump on 64bit
- - rockminer frequency is between 200 and 400 MHz
- - fix jansson include path in cgminer-api compile instructions
- - Remove requirement for ifndefs for avalon2 from the generic driver work
- function
- - Fix hashratio device name
- - Make submit_nonce2_nonce return whether the share was valid or not
- - Reinstate missing necessary init sequence for hashratio
- - Handle disconnected hashratio devices
- - Add hashratio frequency command line
- - Fix stratum updates not being passed to hashratio devices and clean up
- - Move to updated avalon2 type driver model for hashratio device
- - Initial import and conversion of hashratio driver to direct USB
- - Increase the internal buffer for API response, as "stats" command response
- can grow greater than 8K
- - Detach test pool thread only if we have a blocking startup
- Version 4.4.2 - 17th July 2014
- - Remove the use of the pthread_tryjoin_np which is currently unimplemented on
- many platforms
- - Fix processarg parameters loaded from a config file not being saveable
- - We only use the jansson in our source tree so no need for special case
- handling of older versions
- - Upgrade jansson to 2.6
- - Only clear sockbuf if it's been allocated
- - Fix missing osm-led-mode support in write config
- - Deal with nanosecond overflow in both directions on both addition and
- subtration of timespecs
- - Rename sp10 driver internally from spondoolies to sp10
- - minion - add a 2nd (optional - disabled) reset test
- - production stats added, reset queue added
- - minion - correct led ghs2 choice
- - minion - correct ghs2 display
- - minion - reset the led counter when doing a chip RSTN full reset
- - minion - don't reset the led counter for an SPI reset
- - minion - led per chip and use all time average
- - minion - report spi error counts and settings in stats
- - minion - undeclared fix
- - minion - chip power cycle option
- - minion - record 0xff error history and reduce screen output
- - minion - reset on result or fifo 0xff
- - minion - clarify the 0 value of spireset
- - minion - make SPI reset more configurable
- - minion - make the SPI reset ms sleep a parameter and API settable
- - sp10 sensors
- - sp30
- - minion - led+more api setting
- - Avoid blocking all pool testing if one pool fails to ever init
- - There is no point storing the hints addrinfo in struct pool
- - minion - 'reset' SPI when getting errors
- - initialise more pool values in benchmark
- - minion - auto adjust freq
- - merge upstream frequency changes
- - icarus - timing history in its own function
- - rbox - add lotsa stats, tidy up a bit more
- - Fix an off-by-one.
- - icarus - detect stat should be LOG_DEBUG
- - icarus - tidy up rbox code, remove statics, and add rocketbox
- - minion - do an early reset to clear the chip status
- - minion - use descriptive names for the list types
- - Avalon2: automatic adjust fan speed, using crc16 on job_id compare, turn on
- the led by API, detect twice when start, remember the last stratum message
- increase the hashrate, add cutoff option
- - fix AntS1 breakages from AntS2 changes
- - minion - disable dup nonce check
- - minion - add an ioseq number for each ioctl to simplify work ordering
- - minion - redo old work expiry based on txrx order
- - minion - more work stats, minimise queued work, free flushed queued work
- - minion - allow resetting a chip via the API
- - minion - correct 'WQue Count' in stats
- - minion - delay after reset, reset history also, add dups to api stats
- - noncedup - give access to the internal stats
- - minion - increase reset to 75%
- - minion - dup checking, disable reread by default and extra ioctl debugging
- - minion - always check the chip queue before queuing new work
- Version 4.4.1 - 21st June 2014
- - Move icarus driver to being seen as an asic
- - Clear usb reads on each pass through icarus detect to hopefully prevent false
- positives for detecting rboxes
- - Clean up pool failure and failover code for stratum
- Version 4.4.0 - 16th June 2014
- - Tidy unused rockminer variables
- - Tidy rockminer defines
- - Make rockminer driver compatible with other icarus drivers being present
- - Import basic rbox driver
- - minion - add optional (on) GPIO chip selection
- - Clear the pool idle flag in the pool test thread
- - CoreFmatch in cointerra should be a uint16
- - Display error message if we receive one on share rejects
- - Allow zero length strings to be passed to valid_hex
- - delete unused roundl definition
- Version 4.3.5 - 10th June 2014
- - Cointerra driver updates.
- - Sleep before retrying in the test pool thread after a pool has died
- - Use valid_ascii testing for job_id since it need not be hex only
- - Only show slow/down message till pool is flagged idle
- - Do some random sanity checking for stratum message parsing
- - Keep looking for when a pool comes to life at startup and touch the logwin so
- the message is not invisible
- - Fix no libcurl build
- - Added Drillbit Thumb to udev rules.
- - Avoid dereference on getting API stats on partially initialised HFA instances
- - A1: add support for updated product variants, small fixes
- - Add one more usbutils fix
- - Convert uses of usbutils memcpy to cg_memcpy
- - Add a sanity checking memcpy function which checks for overflows
- - minion - count force use reread
- - minion - add a disabled ioctl() test
- - minion - add more checking of SPI results for corruption
- - minion - optional (disabled) ioctl() debug
- - Increase S1 overheat to 75 degrees C
- - Add ruby api-example to API-README
- - minion - allow core selection at runtime
- - API - lcd all-in-one brief summary
- Version 4.3.4 - 25th May 2014
- - Add support for 2 nonces per block in spond driver
- - Increase timeout on reset in cta driver to 5 seconds
- - Increase max diff on spondoolies driver slightly to be well below spi comms
- limitations
- - Use the active contents lock and safe list iteration within the linux usbfs
- code
- - Add Ruby Api Example
- - Automatic detect the small miners
- - Update default modules from 3 to 4
- - Fix the temp max. we should use currect max temp
- - add avalon2-cutoff options
- - Enable the cutofftemp to Avalon2. ignore longer coinbase and longer merkles
- stratum
- - Fix the diff value used on MM firmware
- - Mark pool as idle if stratum restart is failed
- - Add hacky workaround for double list removal race in libusb
- - Make the work given in benchmark mode deterministic on a per-device basis
- - Rework the benchmarking code to use a deterministic set of work items with a
- known number of diff share nonces at regular spaced intervals
- - minion - restrict nonce read result size to ioctl() limit
- - minion - must check temp when overheated
- - minion - idle chips that hit >100C until back to 80C
- - minion - report the chip/reg when aborting due to an invalid ioctl() size
- - minion - all freq in Mhz but only convert when used
- - minion - remove unused ioctl debug
- - minion - command queue is now larger
- - minion - check rolled in stale work cleanup
- - Work stats should be based on device_diff not work_difficulty since non-shares
- haven't been filtered out yet
- - Prevent a segfault when writing a config file containing 'rotate' option
- - minion - comment out HW debug message
- - minion - roll work to reduce CPU
- - minion - report init_freq in stats
- - api - howoldsec is only used for USB
- - minion - allow setting the frequency
- - minion - disable iostats by default since it slows down mining
- - minion - define frequency value table
- - minion - report temp/cores/freq and handle temp formatting
- - minion - item is undefined
- - Rationalise diffs stored in the work struct and document them to avoid further
- confusion
- - Add basic API stats for nfu drivers to see how many submits each chip returns
- - Add output direction for the EN0 pin on nfu driver
- - Support power management optimisations in newer nf* firmware
- - Support variable numbers of chips with NFU and BXM drivers
- - Identify number of chips in nanofury devices and change name accordingly
- - Rename nf1 driver to nfu in anticipation of support for more chips
- - Make hashfast reset counter rise on old instances when inheriting the value on
- new ones
- 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
- 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: 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
- 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
- - Allow running cgminer in benchmark mode with a work file
- - 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
- - 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
- - 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.
- - Discard bad crc packets for hashfast driver instead of trying to process them.
- - Update documentation for modified avalon options syntax and document relevant
- 55nm details.
- - Modify the auto tuning sequence to work with the 50MHz changes required to
- work with 55nm Avalon.
- - 55nm avalon requires the delays between writes reinstated for stability.
- - Use an equation instead of a lookup table to set the frequency for 55nm avalon
- allowing arbitrary values to be used.
- - Make the result return rate low detection on avalon less trigger happy.
- - Always send the bxf device a clockspeed after parsing the temperature in case
- the device has changed the clockspeed itself without notification.
- - Fix BXF being inappropriately dependent on drillbit.
- Version 3.9.0 - 23rd December 2013
- - drillbit asic - enable in api.c
- - Fix trivial warnings in knc driver.
- - Reinstate work utility based hashmeter for knc.
- - drillbit format %z not valid on windows
- - drillbit more formatting changes
- - usbutils remove old code added back
- - Memset the spi tx buffer under lock in knc driver.
- - drillbit fix temp display to fit in standard space
- - Drillbit formatting
- - drillbit - use one drvlog and display dname before add_cgpu
- - Keep orginal naming for the bitfury driver
- - knc: Bugfix - good shares wrongly reported as HW errors. Root cause of the
- problem: several work items were assigned the same work_id in the active works
- queue of the knc driver. Thus when good nonce report arrived from the FPGA,
- wrong work item was picked up from the queue, and submit_nonce evaluated that
- as an error. Fix: Limit the work_id counter update rate. Update it only to the
- number of works actually consumed by the FPGA, not to the number of works
- send.
- - Store per-chip submit information for bxf device and show them in the API.
- - Check for removed bxf devices before trying to update work or send messages.
- - api.c no decref if not json
- - Minimise risk of nonce2 overflow with small nonce2 lengths by always encoding
- the work little endian, and increasing the maximum size of nonce2 to 8 bytes.
- - Change default hashfast timeout to 500ms.
- - Ensure we can look up the work item in the hashfast driver or print out an
- error if we don't.
- - Drillbit source formatting - reindent and retabify
- - Add ASIC count, temperature status to drillbit API output (closes
- - Many warning fixes
- - knc: Do not include variable "last minute" data into the "last hour" per-core
- stats
- - knc: Make per-core statistics available through API
- - Implement command line control of the bxf target temperature.
- - Add a simple PID-like controller to bi*fury devices to dynamically alter the
- clock setting to maintain a nominal target temperature set to 82 degrees.
- - Add data to BXF API output.
- - Add support for newer protocol bi*fury commands job, clock and hwerror,
- setting clock to default 54 value, turning parsing into a compact macro.
- - Look for the thermal overload flag in the gwq status message in the hashfast
- driver and send it a shutdown followed by an attempted reset.
- - Log message fixups
- - Fix for "Timing out unresponsive ASIC" for pools which send early reconnect
- requests, and then take a short time to send work (ie BTCGuild)
- - Shorten initial config line, win32/pdcurses doesn't like long lines during
- early logging
- - Pull back the very long timeouts set in fe478953cf50
- - Fix bug where work restart during results scan could lead to bad device state
- - Align device status lines same regardless of number of temp status or >10
- ASICs
- - Tag log lines from brand new devices as DRB-1 until they are initialised
- - Tag log lines as 'DRB0' rather than 'DRB 0', same as other places in cgminer
- - Print a summary of the device settings at level NOTICE during initialisation
- - Allow chosing device settings based on 'short' product names shown in status
- line
- - Allow per-device settings to use "DRBnn" as an identifier instead
- - Issue an ASIC restart during a work_restart, removes spurious timeout messages
- from ASICs and probably some rejected shares
- - Check all results against all work instead of just taking the first match
- (avoids some rejected submissions to the pool, ASIC can produce multiple
- candidate results.)
- - Fix memory leak caused by unnecesarily copied work
- - Fix bug with find_settings not returning default value
- - Set timeouts on write, set very long timeouts
- - Merge drillbit driver
- Version 3.8.5 - 10th December 2013
- - Increase the BFLSC overtemp to 75 for fanspeed to maximum.
- - Set bflsc cutoff temperature to 85 degrees and throttle 3 degrees below the
- cutoff temperature.
- - Only set LIBUSB_TRANSFER_ADD_ZERO_PACKET for libusb versions we know include
- support for.
- - Provide a helper function that can reset cgsems to zero.
- - Add to cgminer_CPPFLAGS instead of redefining them.
- - Attempt a libusb reset device on usb devices that have stopped responding.
- - Replace deprecated use of INCLUDES with _CPPFLAGS.
- - Remove more unused GPU code.
- - Attempt USB device resets on usb read/write errors that will normally cause
- the device to drop out.
- - Quieten down jansson component of build.
- - Cache the bool value for usb1.1 in _usb_write
- - Initialise usb locks within usbutils.c instead of exporting them.
- - Imitate a transaction translator for all usb1.1 device writes to compensate
- for variable quality hubs and operating system support.
- - Rationalise variables passed to usb_bulk_transfer.
- - Unlink files opened as semaphores on releasing them.
- - Remove user configuration flag from pll bypass enabling in hashfast driver.
- - Provide an hfa-dfu-boot option for resetting hashfast devices for
- reprogramming.
- - Fixed one byte stack overflow in mcast recvfrom.
- - Having changed C_MAX means we don't calloc enough for usb stats, off by one.
- - Don't free the info struct on hashfast shutdown since it's still accessed
- after a device is removed.
- Version 3.8.4 - 1st December 2013
- - Deprecate the usb usecps function and just split up transfers equal to the
- maxpacketsize on usb1.1 devices.
- - Retry sending after successfully clearing a pipe error.
- - Drop logging of timeout overrun message to verbose level.
- - Use a much longer callback timeout for USB writes on windows only as a last
- resort since cancellations work so poorly.
- - Use vcc2 in bflsc voltage displayed.
- - Increment per core errors on false nonces in bflsc and add per core statistics
- to api stats, removing debugging.
- - Store a per-core nonce and hw error count for bflsc.
- - Fix json parsing in api.c
- - Add debugging to hfa driver for how many jobs are being sent.
- - Shut down the hfa read thread if the device disappears.
- - Add debug output saying what frame command is being sent in hfa driver.
- - Revert "Disable USB stats which were not meant to be enabled by default and
- add extra memory for a memory error when stats are enabled."
- - Reset work restart flag in hfa driver since we may check for it again in
- restart_wait.
- - Add more op usb init errors for hfa driver.
- - Perform basic displaying of hfa notices received.
- - Add hfa op usb notice macros.
- - Update hf protocol header.
- - Use sync usb transfers in lowmem mode.
- - Go back to allowing timeout errors on USB writes to be passed back to the
- driver without removing the device in case the driver wishes to manage them.
- - Initialise more values for the hfa data structures.
- - A USB control error must be < 0
- - Simplify USB NODEV error checking to success only for writes and control
- transfers, and success and timeout for reads.
- - libusb error IO should be fatal as well if it gets through usb read and write.
- - Allow IO errors in usb reads/writes to be ignored up to retry max times.
- - Use correct padding for bxf temperature display.
- - Initialise devices before attempting to connect to pools to allow their thread
- prepare function to be called before having to connect to pools.
- - Add hidden hfa options to set hash clock, group ntime roll and pll bypass,
- fixing frame sent on reset to include extra data.
- - Relax the timeouts for the slower usb devices on linux.
- - Add big endian hf protocol header to Makefile
- - Check for correct big endian macro in hf_protocol
- - Use an absolute timeout in hfa_get_header to cope with buffered usb reads
- returning instantly confusing the 200ms counter.
- - Update hfa_detect_one to use the new detect function API.
- Version 3.8.3 - 23rd November 2013
- - Set the bitfury device start times from when we first get valid work.
- - Fix stack corruption of zeroing too much in bf1 driver.
- - Make usb_detect return the cgpu associated with it to check if it succeeds to
- decide on whether to increment the device count or not.
- - Set tv work start time for bxf driver.
- - Age the bxf work items over 90 seconds, not the bf1 work items.
- - Zero the read buffer in _usb_read to avoid stale data and only use stack
- memory instead of using the bulkbuf since it is only used in _usb_read.
- - Leave room for temperatures above 100 degrees and pad consistently for bxf
- statline.
- - Drop json stratum auth failed message log level to verbose.
- - Change the processed value not the bufsiz in response to an end of message
- marker.
- - Don't lose data beyond the end of message in a usb read.
- - Silence irrelevant warning.
- - Only check strlen on end if end exists.
- - Simplify the end of message detection in _usb_read and allow it to return
- without doing another read if the message is already in the buffer.
- - Increase work ageing time to 90 seconds for bxf driver to account for firmware
- changes.
- - Use the age_queued_work function in the bitfury driver.
- - Provide a function to discard queued work based on age.
- - The json_val in api.c is a borrowed reference, not a new one so don't decref
- it.
- - Decrement json references in api.c to not leak memory.
- - line 2913 added urlencode
- - With reliable writes to the avalon there is no need for the sleep delays
- between writes.
- - There is no need to limit usb write transfers to maxpacketsize and it's
- harmful for large transfers on slow devices such as wrt routers.
- - Disable USB stats which were not meant to be enabled by default and add extra
- memory for a memory error when stats are enabled.
- - Set limit and count to integers to not overflow during failed hotplug attempts
- and then not trying again.
- - Update api example compilation instructions.
- Version 3.8.2 - 16th November 2013
- - Add more verbose documentation to the readme files for windows users.
- - Add more information on libusb failure to init telling users to check README
- file.
- - Add information on unloading cdc drivers on osx to README
- - Prevent a deadlock with use of restart_threads by spawning a thread to send
- the driver flush work messages.
- - Set priority of various threads if possible.
- - Add bxf data to api output.
- - Do not hold the mining thread lock in restart_threads when calling the driver
- flush work commands.
- - Send extra work regularly to the bxf device and parse the needwork command by
- sending the amount of work it requests.
- - Allow messages to have arbitrary offsets in the bxf parser in case we have
- lingering buffered data.
- - Send the maxroll command to the bxf driver and store the value to see if we
- need to update it.
- - Add sending of flush command to bxf on flush_work
- - Add flush and version commands to bxf start up, flush buffer and try to parse
- version response string.
- - Abstract out bxf recv message.
- - Add extra bxf commands to usbutils
- - Abstract out bxf send message to allow us to easily add extra commands.
- - Don't run device restart code if the device is not enabled.
- - Expand size of bitfury statline
- - Various driver fixes for bitfury devices, including a flag from when first
- valid work appears.
- - Look up work results in bxf driver from correct variable.
- - Correct incorrect error code in bxf driver for usb writes and add debugging.
- - Add bxf details to usbutils.
- - Implement a statline showing temperature for bxf
- - Add api data for bxf device, sharing the hashrate function with bf1.
- - Count no matching work as a hw error on bxf
- - Add BXF to udev rules.
- - Work id should be hexadecimal in bxf messages.
- - Add unrecognised string debugging to bxf driver.
- - Implement the main scanloop for bxf, trying to prevent it from ntime rolling
- work if the work protocol does not allow it.
- - Parse bxf work submits fully, submitting the results.
- - Provide a function for setting the work ntime.
- - Implement a skeleton parse bxf submit function.
- - Use the bxf read thread to set the device target and send its first work item.
- - Implement a bxf send work function and set update and restart functions to
- sending new work since that's the equivalent for that device.
- - Add temperature parsing to bxf driver
- - Create and destroy a basic bxf read thread.
- - Remove the buffer from bitfury info since it is only used on one pass in the
- bf1 device.
- - Add a rudimentary bxf detect one function.
- - Rename all bf1 specific functions in the bitfury driver, using a switch to
- choose correct function.
- - Rename bitfury_getinfo to bf1_getinfo since it's unique to bf1 devices.
- - Separate out the bf1 reset from bitfury reset.
- - Store the bitfury identity in the info struct.
- - BaB - updated tested OS comment
- - Uniquely identify the BF1 and BXF bitfury devices.
- - Remove the default libusb WinUsb pipe policies that don't suit us.
- - Only set the winusb pipe policy if it doesn't match our requirements instead
- of every transfer.
- - klondike - dont try to flush if not initialised
- - api.c trylock() add missing locklock
- - Use our new zero length packet support directly in windows.
- - Enable support for zero length packet on windows and auto clear pipe stalls.
- - util.c: Decreasing reference count on allocated JSON obects to prevent memory
- leak
- - api.c: Release apisock on error in api()
- - api.c: Release io_data->ptr when releasing io_data in io_free()
- - We can't connect to a GBT pool at all with fix protocol enabled.
- - Initialise the stgd lock mutex earlier to prevent dereferences when pool
- testing occurs before it.
- - Klondike support I2C USB layout also - as KLI
- - Return error codes in avalon_read() if they're not timeouts.
- - Break out of the avalon idle loop if we get a send error.
- - Set avalon ftdi latency to just less than the time it would take to fill the
- ftdi buffer at 115200 baud
- - Update example.conf
- - Only limit packetsize on usb out writes.
- - We must chop up every 64 bytes returned on an ftdi chip, not just the first 2
- bytes so revert to parsing the data internally in the avalon instead of using
- usbutils' simple ftdi parser.
- - Only retry 3 times in hfa_reset.
- - Only add_cgpu in hashfast driver once we have a real driver set up.
- - Clean up properly if hfa_detect_common fails in the hashfast driver.
- - --shares should be scaled to diff1 not absolute number of shares
- Version 3.8.1 - 11th November 2013
- - Revert "Send a zero length packet at the end of every usb transfer on windows
- in case libusb internally has batched them into one maxpacket sized."
- Version 3.8.0 - 10th November 2013
- - api update version to 2.0 and remove GPU form API-README
- -Remove now unused scrypt files.
- - api.c remove all GPU/gpu references and correct code as required
- - Rudimentary removal of GPU OpenCL and Scrypt features from api.c
- - Reorder configure alphabetically for devices to compile and fail if no support
- is selected to be compiled in.
- - BaB update/format some comments
- - BlackArrowBitfury early GPIO V1 driver
- - Fine tune the reading of results in bitfury driver to not lose any across work
- restarts or corrupt due to store results not parsed during restart.
- - Send a zero length packet at the end of every usb transfer on windows in case
- libusb internally has batched them into one maxpacket sized.
- - Framework for ntime rolling, keep looking for OP_USB_INIT replies when other
- packets received
- - Configure source for a new BaB driver
- - sha2 allow external access to some macros and the K array
- - Fixed a math issue when reporting fan speed on the status line.
- - Use the main hashlist to store work done in the bitfury driver and remove work
- from the list by time, thereby fixing the duplicates at startup. Count hardware
- errors for when no match occurs.
- - Add a get and queue helper work function.
- - Remove GPU mining code.
- - Use libusb's own zero length packet support unless we have to emulate it on
- windows since only libusb knows for sure if it's needed.
- - Unlock the avalon qlock while sending tasks to not hold the lock for an
- extended period.
- - Sleep in avalon send task on return to the function to allow other code to
- work during the sleep period.
- - Send zero length packets when terminating a usb write aligned to
- maxpacketsize.
- - Do the driver flush in avalon code lockless since it can lead to deadlocks.
- - Reset the work_restart bool after the scanwork loop in case the driver flushes
- work synchronously.
- - Only check for the stratum clean message if we have had a valid message.
- - Get rid of the stage thread since all work can be asynchronously added now via
- hash_push anyway.
- - Remove the now incorrect faq entry regarding scrypt difficulty.
- - Check for fatal read errors and break out of the read loop in avalon.
- - Send errors are basically fatal in avalon driver so break out of the send
- tasks loop.
- - Make the avalon driver return -1 for hash count when usb fails, allowing the
- main loop code to send it the shutdown flag.
- - Break out of the hash work loops when a failure is detected instead of
- dropping into mt disable.
- - Use usbutils' own ftdi parser for avalon and the ftdir's own latency for
- managing timeouts since we can wait on reads with completely asynchronous
- reads+writes.
- - Use usbutils' own cps function for slowing rate of usb writes on avalon.
- - Fix build for no libcurl
- - Check length before submitting sync transfers
- Version 3.7.2 - 5th November 2013
- - Clean up completely on avalon shutdown.
- - Use cgsem timed waits in avalon driver to not miss any queued wake ups to
- account for async messages coming during a flush work.
- - Statline before is too long on icarus that doesn't have monitoring.
- - Different windows+usb combinations respond with varying levels of reliability
- wrt timeouts so use a nominal extra 40ms before cancelling transfers that fail
- to time out on their own.
- - Do all hotplug_process under the write mining_thr_lock
- - Fix for opt_worktime on big endian machines.
- - Correct set_blockdiff for big endian machines.
- - Make sure cgpu exists in the restart threads loop in cases of hotplug etc.
- - Treat usb write timeout errors as unrecoverable.
- - Transfer errors are filtered out in usbutils now so no need to look for them
- in NODEV checks.
- - Remove now unused entries from struct cg_usb_device
- - Do not double up with checking for end of timeout measurements in usb
- read/write.
- - Do get_work in fill_queue without holding other locks.
- - Initialise usb after all the locks and conditionals are initialised.
- - Use only a trylock in flush queue to prevent deadlocks.
- - Add a wr_trylock wrapper for pthread rw lock write trylock.
- - Scale diff for scrypt when testing for block solves.
- - Fix for non curses build.
- Version 3.7.0 - 4th November 2013
- - Use WRITEIOERR macro check for all usb writes.
- - Always use a usb read buffer instead of having to explicitly enable it.
- - Force unlocking of the console lock on restart to avoid corrupting the console
- state when we finally quit.
- - Never wait indefinitely for a pthread conditional in the hash_pop loop in case
- the work scheduler misses the last wakeup.
- - Make hash_pop signal the work scheduler each time it waits on the conditional
- that it should look for more work.
- - Discriminate between libusb transfer errors and regular libusb errors and make
- sure to capture them all.
- - Always read a full sized transfer for bulk reads.
- - Deprecate preferred packet size functions in usbutils since they're unhelpful.
- - Copy known transferred amount back to buffer for usb reads instead of
- requested length.
- - Treat timeout errors on usb writes as IO errors.
- - Ignore iManufacturer from bitfury devices to support bluefury as well as
- redfury.
- - Add more debugging info for when usb details don't match.
- - Look for timeout overruns in usb read/write.
- - Use an int for usb_read/write to identify overruns.
- - Use the callback timeout as a safety mechanism only on windows.
- - Instead of using complicated sleeps to emulate characters per second on usb
- writes, submit only as many characters as can be transferred per usb poll of
- 1ms, and use timeouts in bulk transfers, cancelling transfers only as a
- failsafe.
- - Remove discarded work from quota used.
- - Display works completed in summary and API data.
- - Store how many work items are worked on per pool.
- - Make each pool store its on reference for what the most current block is and
- fine tune management of block change in shared pool failover strategies using
- the information.
- - Rationalise use of current_hash to a single hex string the length of the
- previous block and display only the first non zero hex chars of the block in the
- status window.
- - Update uthash to latest.
- - show_hash doesn't know the size of the string so hard code the max size.
- - Remove as many initial zeroes as exist on share display, abstracting out a
- hash show function to use across different submission mechanisms.
- - Add missing endian swap functions for 64bits.
- - Sanity check for absurd target setting and divide by zero.
- - Abstract out conversion of a 256 bit endian number to a double, correcting
- errors and use it for determining any magnitude share diff.
- - Avoid the extra generation of a byte flipped hash2 in struct work and directly
- use the LE work hash.
- - Add a sanity check to avoid divide by zero crashes in set_target
- - Calculate diff from target accurately for all 256 bits.
- - Set a true 256bit binary target based on any diff value in set_target()
- - Provide a copy_work_noffset function for copying a work struct but changing
- its ntime.
- - Make calls to flush queue and flush work asynchronous wrt to the main work
- loops.
- - Share is also above target for submit noffset nonce.
- - Use round for displaying current pool diff.
- - Use round for stratum share diff display instead of floor.
- - Use round instead of floor for displayed pool difficulty.
- - Allow arbitrary diffs to be tested against nonces via a test_nonce_diff
- function.
- - Abstract out the rebuilding of hash2 in work.
- - Share is above, not below target, when it doesn't meet it.
- - Add the ability to add uint8 and uint16 entities to api data.
- - Use a non blocking connect with a 1 second select timeout when initiating
- stratum to allow us to iterate over all IPs returned by getaddrinfo in round
- robin DNS pools.
- - Minor style changes to output.
- - Revert two different hash_sequence(_head)'s to one variable, use
- HF_SEQUENCE_DISTANCE in both places
- - Remove duplicate HF_SEQUENCE_DISTANCE() macro, and duplicate hash_sequence
- from info structure
- - Change SEQUENCE_DISTANCE() macro to HF_SEQUENCE_DISTANCE()
- - Structure changes for OP_NONCE, add big endian header
- - klondike - initialise stat_lock
- - klondike - better to unlock locks than to lock them twice :)
- - Add copyright notice to knc driver.
- - Trivial style changes to knc driver.
- - Improve performance of work generation by optimizing hex2bin and bin2hex
- - klondike - change options to clock and temptarget only
- - klondike - fix another uninit dev warning
- - klondike - downgrade 'late update' but add an idle detect - and correct error
- levels
- - klondike - fix isc uninit warning
- - Use a mutex to protect data in the knc structure, to prevent loading more work
- during a flush, and unlock and return to main between calls to get_queued_work.
- - Use the existing device_data for knc state data.
- - Only count successful nonces as hashrate in the knc driver.
- - Fix trivial warnings in knc driver.
- - Add KNC to api
- - klondike - drop the device for hotplug if it's unresponsive
- - usbutils - usb_nodev() allow a driver to drop a device
- - klondike - single 'shutdown' and ensure it happens
- - klondike remove SCNu8 - unsupported on windows
- - Correctly calculate sleep_estimate in usbutils that may have been preventing
- usecps from working.
- - Use a sanity check on timeout on windows.
- - Better HW error count; disable permanently those cores which fail often
- - KnC driver: knc-spi-fpga ASIC driver
- - Fixup jansson & libusb include paths when using separate build directory
- - 'llround' is more suitable here than 'roundl'
- - Silence warning if MAX/MIN is already defined
- - Remove prebuild ccan/opt dependencies
- - Reinstate block solve testing.
- - Dramatically simplify the calculation of blockdiff.
- - Simplify the set_target function, allowing it to work properly for fractional
- diffs.
- - Merge hashfast driver
- - Merge KnC driver
- Version 3.6.6 - 26th October 2013
- - Remove inappropriate extra locking in _usb_transfer_read
- Version 3.6.5 - 26th October 2013
- - klondike - fix uninitialised dev bug
- - Adjust the binary ntime data in submit_noffset_nonce even when there is no hex
- ntime string for eg. gbt.
- - Put an entry into the work struct telling drivers how much they can roll the
- ntime themselves.
- - Only set libusb cancellable status if the transfer succeeds.
- - Remove the applog on miner threads dying to prevent deadlocks on exit.
- - Do one extra guaranteed libusb event handling before testing if there are any
- pending async usb transfers.
- - Use a linked list for all usb transfers instead of just cancellable ones.
- - Provide a mechanism for informing drivers of updated work templates for
- stratum and gbt mining.
- - Add cancellable transfers correctly to the ct_list
- - Check for presence of thr in icarus get nonce for startup nonce testing to
- work.
- - Use cancellable usb transfers in the icarus driver to avoid having to loop and
- poll when waiting for a response and to speed up work restart response time.
- - Add a usb_read_ii_timeout_cancellable wrapper
- - Add usb transfer cancellation on shutdown and documentation regarding where
- cancellable transfers are suitable.
- - Use cancellable transfers on bitfury device.
- - Cancel cancellable usb transfers on work restart messages.
- - Don't bother having a separate cancellable transfer struct for usb transfers,
- simply include the list in the usb_transfer struct.
- - Add wrappers for usb_read_cancellable and usb_read_timeout_cancellable
- - Specifically set the cancellable state for it to not be uninitialised in the
- usb transfer struct.
- - Alter the usb cancellable list only under cgusb_fd_lock write lock.
- - Pass the cancellable option to _usb_read options to decide on whether to add
- usb transfers to the list of cancellable transfers.
- - Create a linked list of potentially cancellable usb transfers.
- - Don't attempt to disable curses or print a summary during an app restart to
- prevent deadlocks.
- - Keep the libusb event handle polling thread active until there are no async
- usb transfers in progress.
- - Keep a global counter of how many async usb transfers are in place.
- - Perform libusb_submit_transfer under the write variant of cgusb_fd_lock
- - klondike - error condition handling
- - Avoid entering static libusb directory if --with-system-libusb is enabled.
- - Minor opencl build corrections.
- - Enable dynamic linking against system libusb --with-system-libusb
- - Modify Makefile to only include opencl related code when configured in.
- - Convert opencl to need to be explicitly enabled during build with
- --enable-opencl
- - Implement a cglock_destroy function.
- - Implement a rwlock_destroy function.
- - Implement a mutex_destroy function.
- - Add usb command name to critical libusb error reporting.
- - Use windows' own higher resolution time and handlers allowing us to have
- higher precision absolute timeouts.
- - Fix lldiv error in windows cgminer_t calculation.
- - miner.php correct sort gen field names largest to smallest
- - api ... the code related to device elapsed
- - api add device elapsed since hotplug devices Elapsed is less than cgminer
- Elapsed
- - Drop usb buffering message to debug logging level.
- - Do the ntime binary modification to the work struct when submitting an ntime
- offset nonce within submit_noffset_nonce
- - Code cleanup and improved documentation
- - Improvements to support for BitBurner boards
- - Convert libusb transfer errors to regular libusb error messages to allow for
- accurate message reporting.
- Version 3.6.4 - 18th October 2013
- - Fixing the memory leak for remaining semaphores means we can go back to using
- async transfers on other OSes with our own timeout management again.
- - Use the forcelog function on shutdown to cope with indeterminate console lock
- states due to killing of threads.
- - Add a forcelog variant of applog which invalidates any console lock to force
- output.
- - Send pthread_cancel to failed completion_timeout that has timed out.
- - Simplify queued hashtable by storing unqueued work separately in a single
- pointer.
- - bflsc use getinfo chip parallelization if it is present
- - bflsc - fix brackets so [Chips] isn't always null
- - Remove unused variables.
- - Use cgcompletion timeouts for the unreliable shutdown functions on kill_work.
- - Fix cgcompletion return code and free on successful completion.
- - Provide a cg_completion_timeout helper function for unreliable functions that
- takes arbitrary functions and parameters and reliably returns.
- - Perform sync transfers on shutdown to allow final transfers to complete.
- - Destroy cgsems used after transfers to not leave open files on osx.
- - klondike rewrite work control
- - allow __work_complete() access
- - miner.h allow devices to tv_stamp work
- Version 3.6.3 - 17th October 2013
- - API add 'MHS %ds' to 'summary'
- - Optional lock tracking and stats via the API
- - Speed up polling repeat again in usb poll thread and handle async after the
- message to disable polling is complete.
- - Revert to using timeouts on !linux since libusb leaks memory without them.
- - Revert to libusb instead of libusbx
- Version 3.6.2 - 17th October 2013
- - Remove unused components of jansson
- - Remove unused parts of libusb
- - Work around older libtoolize that fails without top ltmain.sh not being
- present during autogen
- - Fix open coded use of autoreconf in autogen
- - Update jansson to only build parts we require and suited to our build
- environment.
- - Initial import of jansson-2.5
- - Prevent further USB transfers from occurring once the shutdown signal has been
- sent to prevent transfers getting stuck and libusb failing to shut down.
- - Make the USB polling thread poll every second to potentially aid longer
- timeout transfers.
- - Set device_diff on work in get_work to not be missed with drivers that use
- get_work directly.
- - Convert icarus driver to hash_driver_work model.
- - bflsc - also allow ' 0' in DEVICES IN CHAIN
- - bflsc - allow a 0 in DEVICES IN CHAIN
- - Add needed EXTRA_DIST for libusbx.
- - Update libusbx configure.ac changes.
- - Revert libusb Makefile changes from going to libusbx.
- - Fix trivial libusbx warnings.
- - Convert libusb-1.0.16-rc10 to libusbx-1.0.17
- Version 3.6.1 - 14th October 2013
- - Emulate the libusb_control_transfer sync setup in our async variant.
- - usbutils - make all libusb_error_name messages the same
- Version 3.6.0 - 14th October 2013
- - increasing max miners for avalon driver
- - using separate identifier for bitburner fury boards
- - changes to bitburner driver for bitburner fury boards
- - hexstr is too small in test_work_current
- - Windows uses errno for WSAETIMEDOUT
- - Convert the usb callback function to using cgsem_t timed waits to avoid race
- conditions with conditionals/mutexes.
- - Give correct return code in cgsem_mswait
- - Check for correct timeout error in cgsem_mswait
- - Fix util.h exports for cgsem_mswait
- - Implement a generic cgsem_mswait similar to sem_timedwait
- - Use the one LIBUSB_ERROR_TIMEOUT for cancelled transactions since this error
- is explicitly tested for in various drivers.
- - Do not use locking on usb callback function pthread signalling to prevent
- deadlock with libusb's own event lock.
- - Use a write lock when performing any USB control transfers to prevent
- concurrent transfers.
- - Free a libusb transfer after we have finished using it to avoid a dereference
- in usb_control_transfer
- - Do not perform bfi int patching for opencl1.2 or later.
- - Although async transfers are meant to use heap memory, we never return before
- the transfer function has completed so stack memory will suffice for control
- transfers, fixing a memory leak in the process.
- - klondike - correct/reverse min/max stats
- - api incorrect message name
- - klondike - use a link list queue rather than a circular buffer - and add
- timing stats
- - Use a timeout with usb handle events set to a nominal 200ms and wait for the
- polling thread to shut down before deinitialising libusb.
- - Use stack memory for hex used in stratum share submissions.
- - Use stack memory in test_work_current, avoiding a malloc/free cycle each time.
- - Provide a lower level __bin2hex function that does not allocate memory itself.
- - Convert the bitfury driver to use the hash_driver_work version of hash_work.
- - Add a hash_driver_work function to allow for drivers that wish to do their own
- work queueing and management.
- - Convert all usb control transfers to asynchronous communication with our own
- timeout management as well.
- - Klondike - increase circular read buffer size
- - Klondike - extra zero value and range checking in temp conversion
- - klondike - display MHz also
- - Make pthread conditional timeouts handle all bulk usb transfer timeouts
- performing libusb_cancel_transfer, disabling timeouts within libusb itself.
- - Avoid calling get_statline_before on exit to avoid trying to use it on drivers
- in an indeterminate state.
- - Avoid calling get_statline on exit.
- - Add a small amount to the usb timeout before cancelling to allow for a regular
- usb polling interval to pass.
- - Do not attempt to clear a usb halt before sending the cancel message since all
- transfers should normally be cancelled before attempting to clear a halt
- condition, and only change the return message to a timeout if it's consistent
- with a cancellation.
- - Retry up to USB_RETRY_MAX times to clear a halt condition before failing.
- - Show the error number as well as the description in erroring bulk transfers.
- - Drop logging level for failed to connect to stratum to verbose mode only since
- we hit it regularly.
- - We are always dependent on libusb handling events so use the blocking
- libusb_handle_events in the polling thread and use a bool to know if we should
- continue polling.
- - Use fractional hashrate return values in bitfury_scanhash to minimise the
- number of times we return 0 based on hashrate so far to further damp out
- displayed hashrate.
- - Check for presence of driver name in DRIVER_COUNT_FOUND to prevent strcmp on a
- null pointer when a driver is not built in.
- - CMR allow sending flash and clock commands
- - Kill off threads that have failed using hash_sole_work instead of just
- disabling them.
- - Make the bf1 getinfo size a macro
- - Failing to add_cgpu in bitfury should be a terminal failure.
- - Check return values when attempting to open a BF1 device and set the msg size
- as a macro.
- - Display errors on failed usb read and write and consider sequential IO errors
- a permanent failure.
- - Use libusb's own error name function instead of hand coding the error names.
- - Limit ms_tdiff to 1 hour as a sanity check.
- - Enable the usb buffer in avalon driver.
- - Check for async transfer variants of error messages.
- - Remove unused variables.
- - Try switching pools if for some reason we end up with only idle pools and have
- ended up current_pool set to an idle one.
- - Check a pool is stable for >5 mins before switching back to it.
- - Minimise the time between dropping the read devlock and grabbing the write
- devlock to avoid tons of logging spam in the interim.
- - Check for libusb transfer stall error to be consistent with async IO errors
- returned for a halt condition.
- - Check for continuous IO errors on USB and consider the device inactive if more
- than retry max.
- - Make the devlock a cglock in usbutils and only grab the write lock for
- fundamental changes allowing us to send and receive transfers concurrently
- without lock contention.
- - Prevent overflows in us_tdiff and ms_tdiff.
- - Change second initialise message on bitfury verbose mode.
- - Submitting an ntime offset nonce needs to be done on a copy of the work
- instead of the original so abstract out shared components as much as possible,
- minimising strdups in copy_work and make submit_work_async work take copied
- work, cleaning up code in the process.
- - Provide a way for drivers to submit work that it has internally rolled the
- ntime value by returning the amount it has ntime rolled to be added.
- - Typo in configure.ac
- - Remove unmaintained broken ztex driver.
- - Icarus - use a data structure for I/O rather than magic numbers
- - delete old tracked ccan/opt
|