mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-22 20:44:19 +00:00
CMR handle baud options
This commit is contained in:
parent
df8566a78c
commit
05cbbd99bb
@ -244,9 +244,10 @@ static void _transfer(struct cgpu_info *icarus, uint8_t request_type, uint8_t bR
|
|||||||
#define transfer(icarus, request_type, bRequest, wValue, wIndex, cmd) \
|
#define transfer(icarus, request_type, bRequest, wValue, wIndex, cmd) \
|
||||||
_transfer(icarus, request_type, bRequest, wValue, wIndex, NULL, 0, cmd)
|
_transfer(icarus, request_type, bRequest, wValue, wIndex, NULL, 0, cmd)
|
||||||
|
|
||||||
// TODO: handle baud
|
static void icarus_initialise(struct cgpu_info *icarus, int baud)
|
||||||
static void icarus_initialise(struct cgpu_info *icarus, __maybe_unused int baud)
|
|
||||||
{
|
{
|
||||||
|
uint16_t wValue, wIndex;
|
||||||
|
|
||||||
if (icarus->usbinfo.nodev)
|
if (icarus->usbinfo.nodev)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -276,15 +277,32 @@ static void icarus_initialise(struct cgpu_info *icarus, __maybe_unused int baud)
|
|||||||
if (icarus->usbinfo.nodev)
|
if (icarus->usbinfo.nodev)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// TODO: Get the baud settings for the 2 CMRs
|
// default to BLT/LLT 115200
|
||||||
if (icarus->usbdev->ident != IDENT_CMR1 &&
|
wValue = FTDI_VALUE_BAUD_BLT;
|
||||||
icarus->usbdev->ident != IDENT_CMR2) {
|
wIndex = FTDI_INDEX_BAUD_BLT;
|
||||||
// Set the baud
|
|
||||||
transfer(icarus, FTDI_TYPE_OUT, FTDI_REQUEST_BAUD, FTDI_VALUE_BAUD_BLT,
|
if (icarus->usbdev->ident == IDENT_CMR1 ||
|
||||||
(FTDI_INDEX_BAUD_BLT & 0xff00) | icarus->usbdev->found->interface,
|
icarus->usbdev->ident == IDENT_CMR2) {
|
||||||
C_SETBAUD);
|
switch (baud) {
|
||||||
|
case 115200:
|
||||||
|
wValue = FTDI_VALUE_BAUD_CMR_115;
|
||||||
|
wIndex = FTDI_INDEX_BAUD_CMR_115;
|
||||||
|
break;
|
||||||
|
case 57600:
|
||||||
|
wValue = FTDI_VALUE_BAUD_CMR_57;
|
||||||
|
wIndex = FTDI_INDEX_BAUD_CMR_57;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
quit(1, "icarus_intialise() invalid baud (%d) for Cairnsmore1", baud);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set the baud
|
||||||
|
transfer(icarus, FTDI_TYPE_OUT, FTDI_REQUEST_BAUD, wValue,
|
||||||
|
(wIndex & 0xff00) | icarus->usbdev->found->interface,
|
||||||
|
C_SETBAUD);
|
||||||
|
|
||||||
if (icarus->usbinfo.nodev)
|
if (icarus->usbinfo.nodev)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ static struct usb_find_devices find_dev[] = {
|
|||||||
.interface = 0,
|
.interface = 0,
|
||||||
.timeout = ICARUS_TIMEOUT_MS,
|
.timeout = ICARUS_TIMEOUT_MS,
|
||||||
.epcount = ARRAY_SIZE(cmr1_eps),
|
.epcount = ARRAY_SIZE(cmr1_eps),
|
||||||
.eps = cmr_eps },
|
.eps = cmr1_eps },
|
||||||
{
|
{
|
||||||
.drv = DRV_ICARUS,
|
.drv = DRV_ICARUS,
|
||||||
.name = "CMR",
|
.name = "CMR",
|
||||||
@ -269,7 +269,7 @@ static struct usb_find_devices find_dev[] = {
|
|||||||
.interface = 0,
|
.interface = 0,
|
||||||
.timeout = ICARUS_TIMEOUT_MS,
|
.timeout = ICARUS_TIMEOUT_MS,
|
||||||
.epcount = ARRAY_SIZE(cmr2_eps),
|
.epcount = ARRAY_SIZE(cmr2_eps),
|
||||||
.eps = cmr_eps },
|
.eps = cmr2_eps },
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_ZTEX
|
#ifdef USE_ZTEX
|
||||||
// This is here so cgminer -n shows them
|
// This is here so cgminer -n shows them
|
||||||
|
@ -40,6 +40,13 @@
|
|||||||
#define FTDI_VALUE_BAUD_BLT 0x001a
|
#define FTDI_VALUE_BAUD_BLT 0x001a
|
||||||
#define FTDI_INDEX_BAUD_BLT 0x0000
|
#define FTDI_INDEX_BAUD_BLT 0x0000
|
||||||
|
|
||||||
|
// CMR = 115200 & 57600
|
||||||
|
#define FTDI_VALUE_BAUD_CMR_115 0xc068
|
||||||
|
#define FTDI_INDEX_BAUD_CMR_115 0x0200
|
||||||
|
|
||||||
|
#define FTDI_VALUE_BAUD_CMR_57 0x80d0
|
||||||
|
#define FTDI_INDEX_BAUD_CMR_57 0x0200
|
||||||
|
|
||||||
// Data control
|
// Data control
|
||||||
#define FTDI_VALUE_DATA_BFL 0
|
#define FTDI_VALUE_DATA_BFL 0
|
||||||
#define FTDI_VALUE_DATA_BAS FTDI_VALUE_DATA_BFL
|
#define FTDI_VALUE_DATA_BAS FTDI_VALUE_DATA_BFL
|
||||||
|
Loading…
x
Reference in New Issue
Block a user