Browse Source

Attempt to detect nonce range support in BFL by sending work requring its support.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
96fba30b6b
  1. 20
      driver-bitforce.c
  2. 1
      miner.h

20
driver-bitforce.c

@ -203,6 +203,26 @@ void bitforce_init(struct cgpu_info *bitforce) @@ -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);
}

1
miner.h

@ -322,6 +322,7 @@ struct cgpu_info { @@ -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;

Loading…
Cancel
Save