mirror of
https://github.com/GOSTSec/sgminer
synced 2025-03-09 20:21:01 +00:00
Add an --avalon-cutoff feature which puts the avalon idle should it reach this temperature, defaulting to 60, re-enabling it when it gets to target temperature.
This commit is contained in:
parent
7806383592
commit
9b45daba6b
18
ASIC-README
18
ASIC-README
@ -79,11 +79,25 @@ possible to plug a USB cable from a PC into the Avalon device and mine using
|
|||||||
cgminer as per any other device. It will autodetect and hotplug using default
|
cgminer as per any other device. It will autodetect and hotplug using default
|
||||||
options. You can customise the avalon behaviour by using the avalon-options
|
options. You can customise the avalon behaviour by using the avalon-options
|
||||||
command, and adjust its fan control-temperature relationship with avalon-temp.
|
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.
|
||||||
|
|
||||||
|
Avalon commands:
|
||||||
|
|
||||||
|
--avalon-cutoff <arg> Set avalon overheat cut off temperature (default: 60)
|
||||||
|
--avalon-options <arg> Set avalon options baud:miners:asic:timeout:freq
|
||||||
|
--avalon-temp <arg> Set avalon target temperature (default: 50)
|
||||||
|
|
||||||
eg:
|
eg:
|
||||||
--avalon-temp 50
|
--avalon-cutoff 65
|
||||||
|
|
||||||
This will adjust fanspeed to keep the temperature at or slightly below 50.
|
This will cut off the avalon should it get up to 65 degrees and will then
|
||||||
|
re-enable it when it gets to the target temperature as specified by avalon-temp.
|
||||||
|
|
||||||
|
eg:
|
||||||
|
--avalon-temp 55
|
||||||
|
|
||||||
|
This will adjust fanspeed to keep the temperature at or slightly below 55.
|
||||||
If you wish the fans to run at maximum speed, setting the target temperature
|
If you wish the fans to run at maximum speed, setting the target temperature
|
||||||
very low such as 0 will achieve this. This option can be added to the "More
|
very low such as 0 will achieve this. This option can be added to the "More
|
||||||
options" entry in the web interface if you do not have a direct way of setting
|
options" entry in the web interface if you do not have a direct way of setting
|
||||||
|
1
README
1
README
@ -233,6 +233,7 @@ See SCRYPT-README for more information regarding litecoin mining.
|
|||||||
ASIC and FPGA mining boards (BFL ASIC, BitForce, Icarus, ModMiner, Ztex)
|
ASIC and FPGA mining boards (BFL ASIC, BitForce, Icarus, ModMiner, Ztex)
|
||||||
only options:
|
only options:
|
||||||
|
|
||||||
|
--avalon-cutoff <arg> Set avalon overheat cut off temperature (default: 60)
|
||||||
--avalon-options <arg> Set avalon options baud:miners:asic:timeout:freq
|
--avalon-options <arg> Set avalon options baud:miners:asic:timeout:freq
|
||||||
--avalon-temp <arg> Set avalon target temperature (default: 50)
|
--avalon-temp <arg> Set avalon target temperature (default: 50)
|
||||||
--bfl-range Use nonce range on bitforce devices if supported
|
--bfl-range Use nonce range on bitforce devices if supported
|
||||||
|
@ -1057,6 +1057,9 @@ static struct opt_table opt_config_table[] = {
|
|||||||
opt_hidden),
|
opt_hidden),
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_AVALON
|
#ifdef USE_AVALON
|
||||||
|
OPT_WITH_ARG("--avalon-cutoff",
|
||||||
|
set_int_0_to_100, opt_show_intval, &opt_avalon_overheat,
|
||||||
|
"Set avalon overheat cut off temperature"),
|
||||||
OPT_WITH_ARG("--avalon-options",
|
OPT_WITH_ARG("--avalon-options",
|
||||||
set_avalon_options, NULL, NULL,
|
set_avalon_options, NULL, NULL,
|
||||||
"Set avalon options baud:miners:asic:timeout:freq"),
|
"Set avalon options baud:miners:asic:timeout:freq"),
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
int opt_avalon_temp = AVALON_TEMP_TARGET;
|
int opt_avalon_temp = AVALON_TEMP_TARGET;
|
||||||
|
int opt_avalon_overheat = AVALON_TEMP_OVERHEAT;
|
||||||
static int option_offset = -1;
|
static int option_offset = -1;
|
||||||
struct device_drv avalon_drv;
|
struct device_drv avalon_drv;
|
||||||
|
|
||||||
@ -870,7 +871,7 @@ static void *avalon_send_tasks(void *userdata)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (likely(j < avalon->queued)) {
|
if (likely(j < avalon->queued && !info->overheat)) {
|
||||||
info->idle = false;
|
info->idle = false;
|
||||||
avalon_init_task(&at, 0, 0, info->fan_pwm,
|
avalon_init_task(&at, 0, 0, info->fan_pwm,
|
||||||
info->timeout, info->asic_count,
|
info->timeout, info->asic_count,
|
||||||
@ -1059,6 +1060,13 @@ static void avalon_update_temps(struct cgpu_info *avalon, struct avalon_info *in
|
|||||||
info->temp_history_index = 0;
|
info->temp_history_index = 0;
|
||||||
info->temp_sum = 0;
|
info->temp_sum = 0;
|
||||||
}
|
}
|
||||||
|
if (unlikely(info->temp_old >= opt_avalon_overheat)) {
|
||||||
|
applog(LOG_WARNING, "AVA%d overheat! Idling", avalon->device_id);
|
||||||
|
info->overheat = true;
|
||||||
|
} else if (info->overheat && info->temp_old <= opt_avalon_temp) {
|
||||||
|
applog(LOG_WARNING, "AVA%d cooled, restarting", avalon->device_id);
|
||||||
|
info->overheat = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void get_avalon_statline_before(char *buf, struct cgpu_info *avalon)
|
static void get_avalon_statline_before(char *buf, struct cgpu_info *avalon)
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define AVALON_DEFAULT_FAN_MIN_PWM 0x20 /* 20% */
|
#define AVALON_DEFAULT_FAN_MIN_PWM 0x20 /* 20% */
|
||||||
#define AVALON_TEMP_TARGET 50
|
#define AVALON_TEMP_TARGET 50
|
||||||
#define AVALON_TEMP_HYSTERESIS 3
|
#define AVALON_TEMP_HYSTERESIS 3
|
||||||
|
#define AVALON_TEMP_OVERHEAT 60
|
||||||
|
|
||||||
#define AVALON_DEFAULT_TIMEOUT 0x2D
|
#define AVALON_DEFAULT_TIMEOUT 0x2D
|
||||||
#define AVALON_DEFAULT_FREQUENCY 282
|
#define AVALON_DEFAULT_FREQUENCY 282
|
||||||
@ -119,6 +120,7 @@ struct avalon_info {
|
|||||||
|
|
||||||
bool idle;
|
bool idle;
|
||||||
bool reset;
|
bool reset;
|
||||||
|
bool overheat;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define AVALON_WRITE_SIZE (sizeof(struct avalon_task))
|
#define AVALON_WRITE_SIZE (sizeof(struct avalon_task))
|
||||||
@ -139,6 +141,7 @@ ASSERT1(sizeof(uint32_t) == 4);
|
|||||||
|
|
||||||
extern struct avalon_info **avalon_info;
|
extern struct avalon_info **avalon_info;
|
||||||
extern int opt_avalon_temp;
|
extern int opt_avalon_temp;
|
||||||
|
extern int opt_avalon_overheat;
|
||||||
|
|
||||||
#endif /* USE_AVALON */
|
#endif /* USE_AVALON */
|
||||||
#endif /* AVALON_H */
|
#endif /* AVALON_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user