1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685 |
- 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
- 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
- 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
|