Replies: 3 comments 2 replies
-
That statement isn't accurate, bzm2 supports 2-bit version rolling as well as the timestamp. It also supports unicast of the full nonce range to all engines, as well as broadcast of a partial nonce range. |
Beta Was this translation helpful? Give feedback.
-
We've been referring to ASIC "version rolling" as in the ASIC increments the version field and creates the midstates internally. I think this needs to be done in firmware for the BZM2. |
Beta Was this translation helpful? Give feedback.
-
LFG! 🔥 As you can see, the idea is once you're behind the board and hash thread abstractions, you can implement things pretty much however you want, and bring in useful, shared components... eh, compositionally. Random thoughts:
Everything's open for modification and extension. It's early days, so these type and interfaces probably don't support everything they should yet. Footnotes
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Looking into adding BZM2 modules to mujina.
The BZM2 doesn't support version rolling so its implementation will be closest to the bm1397. It does do ntime rolling, though, so the frequency of work sent to the chips should take this into account. It uses a 9bit serial so adjustments will need to be made to get it working with the modified bitaxe-raw/emberone fw that does 8bit to 9bit translation. It defaults to 5mbps baud. It has a built in self test feature. And finally, It has a voltage and temperature sensor and sends readings back periodically. I think those are the major differences that might require some modification to common interfaces. The rest should work similar enough (init, frequency ramp, work generation, and response parsing).
Here is what I think are the work items to get this implemented.
Define BIRDS board and implement usb detection. Can implement it as BIRDS Board and then rename to BitaxeBonanza or just start with BitaxeBonanza.
Implement 8bit-to-9bit serial in transport crate.
Add BIRDS control uart (GPIO) to the board definition
Define core BZM2 protocol and codecs. This should include all of the basic op codes, registers, and constants. Should be able to validate NOOP is working at this point as well as register setting a reading.
BIRDS reset/power-up and thread start. At this point should configure the BZM2 and initialize the threads for sending work and parsing responses.
BZM job pipeline with timestamp rolling. At this point should be able to demo mining with the BZM2.
Post-mining features.
Add support for bitaxeBonanza/BIRDS voltage regulator
Add support for bitaxeBonanaza fan controller
Thermal and voltage readings
This is how I'm thinking about breaking down the work for this. Let me know your thoughts and if this makes sense and any core pieces that might be missing.
Beta Was this translation helpful? Give feedback.
All reactions