From 96fba30b6b7c4c14ed43d5633e36bd08dccae302 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Wed, 4 Jul 2012 17:31:02 +1000 Subject: [PATCH] Attempt to detect nonce range support in BFL by sending work requring its support. --- driver-bitforce.c | 20 ++++++++++++++++++++ miner.h | 1 + 2 files changed, 21 insertions(+) diff --git a/driver-bitforce.c b/driver-bitforce.c index 4b0304b8..a80acb5d 100644 --- a/driver-bitforce.c +++ b/driver-bitforce.c @@ -203,6 +203,26 @@ void bitforce_init(struct cgpu_info *bitforce) bitforce->device_fd = fdDev; bitforce->sleep_ms = BITFORCE_SLEEP_MS; + + /* Look for nonce range support */ + BFwrite(fdDev, "ZPX", 3); + BFgets(pdevbuf, sizeof(pdevbuf), fdDev); + if (strncasecmp(pdevbuf, "ERR", 3)) { + unsigned char ob[70]; + uint32_t *nonce; + + memset(ob, 0, 68); + sprintf((char *)ob, ">>>>>>>>"); + sprintf((char *)ob + 60, ">>>>>>>>"); + nonce = (uint32_t *)(ob + 56); + *nonce = htobe32(0x7FFFFFFF); + BFwrite(fdDev, ob, 68); + BFgets(pdevbuf, sizeof(pdevbuf), fdDev); + if (!strncasecmp(pdevbuf, "OK", 2)) { + applog(LOG_DEBUG, "BFL%i: Found nonce range support"); + bitforce->nonce_range = true; + } + } mutex_unlock(&bitforce->device_mutex); } diff --git a/miner.h b/miner.h index d3fa2095..cbca9351 100644 --- a/miner.h +++ b/miner.h @@ -322,6 +322,7 @@ struct cgpu_info { #ifdef USE_BITFORCE unsigned int wait_ms; unsigned int sleep_ms; + bool nonce_range; #endif pthread_mutex_t device_mutex;