mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-22 12:34:27 +00:00
Merge pull request #509 from roybadami/master
Improvements to support for BitBurner boards
This commit is contained in:
commit
f9d3d008da
77
ASIC-README
77
ASIC-README
@ -102,11 +102,13 @@ ASIC SPECIFIC COMMANDS
|
||||
--avalon-options <arg> Set avalon options baud:miners:asic:timeout:freq
|
||||
--avalon-temp <arg> Set avalon target temperature (default: 50)
|
||||
--bflsc-overheat <arg> Set overheat temperature where BFLSC devices throttle, 0 to disable (default: 90)
|
||||
--bitburner-voltage <arg> Set BitBurner core voltage, in millivolts
|
||||
--bitburner-fury-options <arg> Override avalon-options for BitBurner Fury boards baud:miners:asic:timeout:freq
|
||||
--bitburner-fury-voltage <arg> Set BitBurner Fury core voltage, in millivolts
|
||||
--bitburner-voltage <arg> Set BitBurner (Avalon) core voltage, in millivolts
|
||||
--klondike-options <arg> Set klondike options clock:temp1:temp2:fan
|
||||
|
||||
|
||||
AVALON DEVICES
|
||||
AVALON AND BITBURNER DEVICES
|
||||
|
||||
Currently all known Avalon devices come with their own operating system and
|
||||
a preinstalled version of cgminer as part of the flash firmware, based on the
|
||||
@ -118,6 +120,9 @@ command, and adjust its fan control-temperature relationship with avalon-temp.
|
||||
By default the avalon will also cut off when its temperature reaches 60
|
||||
degrees.
|
||||
|
||||
All current BitBurner devices (BitBurner X, BitBurner XX and BitBurner Fury)
|
||||
emulate Avalon devices, whether or not they use Avalon chips.
|
||||
|
||||
Avalon commands:
|
||||
|
||||
--avalon-auto Adjust avalon overclock frequency dynamically for best hashrate
|
||||
@ -126,7 +131,9 @@ Avalon commands:
|
||||
--avalon-freq <arg> Set frequency range for avalon-auto, single value or range
|
||||
--avalon-options <arg> Set avalon options baud:miners:asic:timeout:freq
|
||||
--avalon-temp <arg> Set avalon target temperature (default: 50)
|
||||
--bitburner-voltage <arg> Set BitBurner core voltage, in millivolts
|
||||
--bitburner-fury-options <arg> Override avalon-options for BitBurner Fury boards baud:miners:asic:timeout:freq
|
||||
--bitburner-fury-voltage <arg> Set BitBurner Fury core voltage, in millivolts
|
||||
--bitburner-voltage <arg> Set BitBurner (Avalon) core voltage, in millivolts
|
||||
|
||||
|
||||
Avalon auto will enable dynamic overclocking gradually increasing and
|
||||
@ -177,8 +184,15 @@ Miners:
|
||||
Most Avalons are 3 module devices, which come to 24 miners. 4 module devices
|
||||
would use 32 here.
|
||||
|
||||
For BitBurner X and BitBurner XX devices you should use twice the number of
|
||||
boards in the stack. e.g. for a two-board stack you would use 4. For
|
||||
BitBurner Fury devices you should use the total number of BitFury chips in the
|
||||
stack (i.e. 16 times the number of boards). e.g. for a two-board stack you
|
||||
would use 32.
|
||||
|
||||
Asic count:
|
||||
Virtually all have 10, so don't change this.
|
||||
Virtually all have 10, so don't change this. BitBurner devices use 10 here
|
||||
even if the boards have some other number of ASICs.
|
||||
|
||||
Timeout:
|
||||
This is how long the device will work on a work item before accepting new work
|
||||
@ -198,16 +212,61 @@ Sample settings for valid different frequencies (last 2 values):
|
||||
50:256
|
||||
|
||||
Frequency:
|
||||
This is the clock speed of the devices. Only specific values work, 256, 270,
|
||||
282 (default), 300, 325, 350 and 375.
|
||||
This is the clock speed of the devices. For Avalon devices, only specific
|
||||
values work, 256, 270, 282 (default), 300, 325, 350 and 375. For BitBurner
|
||||
devices, other values can be used.
|
||||
|
||||
Note that setting a value with an asterisk next to it will be using your
|
||||
avalon outside its spec and you do so at your own risk.
|
||||
|
||||
eg:
|
||||
--bitburner-voltage <arg> Set BitBurner core voltage, in millivolts
|
||||
The default frequency for BitBurner X and BitBurner XX boards is 282. The
|
||||
default frequency for BitBurner Fury boards is 256. Overclocking is
|
||||
possible - please consult the product documentation and/or manufacturer for
|
||||
information on safe values. Values outside this range are used at your own
|
||||
risk. Underclocking is also possible, at least with the X and XX boards.
|
||||
|
||||
eg:
|
||||
--bitburner-fury-options <arg> Override avalon-options for BitBurner Fury boards baud:miners:asic:timeout:freq
|
||||
|
||||
This option takes the same format as --avalon-options. When specified, it
|
||||
will be used for BitBurner Fury boards in preference to the values specified
|
||||
in --avalon-options. (If not specified, BitBurner Fury boards will be
|
||||
controlled by the values used in --avalon options.) See --avalon-options for
|
||||
a detailed description of the fields.
|
||||
|
||||
This option is particularly useful when using a mixture of different BitBurner
|
||||
devices as BitBurner Fury devices generally require significantly different
|
||||
clock frequencies from Avalon-based devices. This option is only available
|
||||
for boards with recent firmware that are recognized by cgminer as BBF.
|
||||
|
||||
eg:
|
||||
--bitburner-fury-voltage <arg> Set BitBurner Fury core voltage, in millivolts
|
||||
|
||||
Sets the core voltage for the BitBurner Fury boards. The default value is
|
||||
900. Overvolting is possible - please consult the product documentation
|
||||
and/or manufaturer about the safe range of values. Values outside this range
|
||||
are used at your own risk.
|
||||
|
||||
This option is only available for boards with recent firmware that are
|
||||
recognized by cgminer as BBF. For boards recognized as BTB, see
|
||||
--bitburner-voltage
|
||||
|
||||
eg:
|
||||
--bitburner-voltage <arg> Set BitBurner (Avalon) core voltage, in millivolts
|
||||
|
||||
Sets the core voltage for the Avalon-based BitBurner X and BitBurner XX
|
||||
boards. The default value is 1200. Overvolting and undervolting is
|
||||
possible - please consult the product documentation and/or the manufacturer
|
||||
for information about the safe range. Values outside this range are used at
|
||||
your own risk.
|
||||
|
||||
Older BitBurner Fury firmware emulates a BitBurner XX board and is identified
|
||||
by cgminer as BTB. On these devices, --bitburner-voltage is used to control
|
||||
the voltage of the BitBurner Fury board. The actual core voltage will be
|
||||
300mV less than the requested voltage, so to run a BitBurner Fury board at
|
||||
950mV use --bitburner-voltage 1250. The default value of 1200 therefore
|
||||
corresponds to the default core voltage of 900mV.
|
||||
|
||||
Self evident.
|
||||
|
||||
If you use the full curses based interface with Avalons you will get this
|
||||
information:
|
||||
|
4
README
4
README
@ -220,7 +220,9 @@ ASIC only options:
|
||||
--avalon-options <arg> Set avalon options baud:miners:asic:timeout:freq
|
||||
--avalon-temp <arg> Set avalon target temperature (default: 50)
|
||||
--bflsc-overheat <arg> Set overheat temperature where BFLSC devices throttle, 0 to disable (default: 90)
|
||||
--bitburner-voltage <arg> Set BitBurner core voltage, in millivolts
|
||||
--bitburner-fury-options <arg> Override avalon-options for BitBurner Fury boards baud:miners:asic:timeout:freq
|
||||
--bitburner-fury-voltage <arg> Set BitBurner Fury core voltage, in millivolts
|
||||
--bitburner-voltage <arg> Set BitBurner (Avalon) core voltage, in millivolts
|
||||
|
||||
See ASIC-README for more information regarding these.
|
||||
|
||||
|
11
cgminer.c
11
cgminer.c
@ -167,6 +167,7 @@ char *opt_icarus_timing = NULL;
|
||||
bool opt_worktime;
|
||||
#ifdef USE_AVALON
|
||||
char *opt_avalon_options = NULL;
|
||||
char *opt_bitburner_fury_options = NULL;
|
||||
#endif
|
||||
#ifdef USE_KLONDIKE
|
||||
char *opt_klondike_options = NULL;
|
||||
@ -1036,6 +1037,13 @@ static char *set_avalon_options(const char *arg)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static char *set_bitburner_fury_options(const char *arg)
|
||||
{
|
||||
opt_set_charp(arg, &opt_bitburner_fury_options);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef USE_KLONDIKE
|
||||
@ -1255,6 +1263,9 @@ static struct opt_table opt_config_table[] = {
|
||||
OPT_WITH_ARG("--bitburner-fury-voltage",
|
||||
opt_set_intval, NULL, &opt_bitburner_fury_core_voltage,
|
||||
"Set BitBurner Fury core voltage, in millivolts"),
|
||||
OPT_WITH_ARG("--bitburner-fury-options",
|
||||
set_bitburner_fury_options, NULL, NULL,
|
||||
"Override avalon-options for BitBurner Fury boards baud:miners:asic:timeout:freq"),
|
||||
#endif
|
||||
#ifdef USE_KLONDIKE
|
||||
OPT_WITH_ARG("--klondike-options",
|
||||
|
@ -53,6 +53,7 @@ int opt_bitburner_fury_core_voltage = BITBURNER_FURY_DEFAULT_CORE_VOLTAGE;
|
||||
bool opt_avalon_auto;
|
||||
|
||||
static int option_offset = -1;
|
||||
static int bbf_option_offset = -1;
|
||||
|
||||
static int avalon_init_task(struct avalon_task *at,
|
||||
uint8_t reset, uint8_t ff, uint8_t fan,
|
||||
@ -400,7 +401,7 @@ static int avalon_calc_timeout(int frequency)
|
||||
}
|
||||
|
||||
static bool get_options(int this_option_offset, int *baud, int *miner_count,
|
||||
int *asic_count, int *timeout, int *frequency)
|
||||
int *asic_count, int *timeout, int *frequency, char *options)
|
||||
{
|
||||
char buf[BUFSIZ+1];
|
||||
char *ptr, *comma, *colon, *colon2, *colon3, *colon4;
|
||||
@ -408,10 +409,10 @@ static bool get_options(int this_option_offset, int *baud, int *miner_count,
|
||||
size_t max;
|
||||
int i, tmp;
|
||||
|
||||
if (opt_avalon_options == NULL)
|
||||
if (options == NULL)
|
||||
buf[0] = '\0';
|
||||
else {
|
||||
ptr = opt_avalon_options;
|
||||
ptr = options;
|
||||
for (i = 0; i < this_option_offset; i++) {
|
||||
comma = strchr(ptr, ',');
|
||||
if (comma == NULL)
|
||||
@ -754,7 +755,7 @@ static void bitburner_get_version(struct cgpu_info *avalon)
|
||||
static bool avalon_detect_one(libusb_device *dev, struct usb_find_devices *found)
|
||||
{
|
||||
int baud, miner_count, asic_count, timeout, frequency;
|
||||
int this_option_offset = ++option_offset;
|
||||
int this_option_offset;
|
||||
struct avalon_info *info;
|
||||
struct cgpu_info *avalon;
|
||||
bool configured;
|
||||
@ -768,12 +769,14 @@ static bool avalon_detect_one(libusb_device *dev, struct usb_find_devices *found
|
||||
timeout = AVALON_DEFAULT_TIMEOUT;
|
||||
frequency = AVALON_DEFAULT_FREQUENCY;
|
||||
|
||||
configured = get_options(this_option_offset, &baud, &miner_count,
|
||||
&asic_count, &timeout, &frequency);
|
||||
|
||||
if (!usb_init(avalon, dev, found))
|
||||
goto shin;
|
||||
|
||||
this_option_offset = usb_ident(avalon) == IDENT_BBF ? ++bbf_option_offset : ++option_offset;
|
||||
configured = get_options(this_option_offset, &baud, &miner_count,
|
||||
&asic_count, &timeout, &frequency,
|
||||
(usb_ident(avalon) == IDENT_BBF && opt_bitburner_fury_options != NULL) ? opt_bitburner_fury_options : opt_avalon_options);
|
||||
|
||||
/* Even though this is an FTDI type chip, we want to do the parsing
|
||||
* all ourselves so set it to std usb type */
|
||||
avalon->usbdev->usb_type = USB_TYPE_STD;
|
||||
@ -796,10 +799,18 @@ static bool avalon_detect_one(libusb_device *dev, struct usb_find_devices *found
|
||||
info->frequency = frequency;
|
||||
} else {
|
||||
info->baud = AVALON_IO_SPEED;
|
||||
info->miner_count = AVALON_DEFAULT_MINER_NUM;
|
||||
info->asic_count = AVALON_DEFAULT_ASIC_NUM;
|
||||
info->timeout = AVALON_DEFAULT_TIMEOUT;
|
||||
info->frequency = AVALON_DEFAULT_FREQUENCY;
|
||||
switch (usb_ident(avalon)) {
|
||||
case IDENT_BBF:
|
||||
info->miner_count = BITBURNER_FURY_DEFAULT_MINER_NUM;
|
||||
info->timeout = BITBURNER_FURY_DEFAULT_TIMEOUT;
|
||||
info->frequency = BITBURNER_FURY_DEFAULT_FREQUENCY;
|
||||
break;
|
||||
default:
|
||||
info->miner_count = AVALON_DEFAULT_MINER_NUM;
|
||||
info->timeout = AVALON_DEFAULT_TIMEOUT;
|
||||
info->frequency = AVALON_DEFAULT_FREQUENCY;
|
||||
}
|
||||
}
|
||||
|
||||
info->fan_pwm = AVALON_DEFAULT_FAN_MIN_PWM;
|
||||
|
@ -55,6 +55,12 @@
|
||||
#define AVALON_MAX_MINER_NUM 0x100
|
||||
#define AVALON_DEFAULT_ASIC_NUM 0xA
|
||||
|
||||
/* Default number of miners for Bitburner Fury is for a stack of 8 boards,
|
||||
but it will work acceptably for smaller stacks, too */
|
||||
#define BITBURNER_FURY_DEFAULT_MINER_NUM 128
|
||||
#define BITBURNER_FURY_DEFAULT_FREQUENCY 256
|
||||
#define BITBURNER_FURY_DEFAULT_TIMEOUT 50
|
||||
|
||||
#define AVALON_AUTO_CYCLE 1024
|
||||
|
||||
#define AVALON_FTDI_READSIZE 510
|
||||
|
Loading…
x
Reference in New Issue
Block a user