123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #ifndef INCLUDE_DRIVER_ZEUS_H
- #define INCLUDE_DRIVER_ZEUS_H
- #ifdef USE_ZEUS
- #define ZEUS_PROTOCOL_DEBUG 1
- #define ZEUS_CHIP_GEN 1
- #define ZEUS_CHIP_GEN1_CORES 8
- #define ZEUS_CHIP_CORES ZEUS_CHIP_GEN1_CORES
- #define ZEUS_MIN_CHIPS 6
- #define ZEUS_MAX_CHIPS 1024
- #define ZEUS_IO_SPEED 115200
- #define ZEUS_READ_FAULT_DECISECONDS 2
- #define ZEUS_COMMAND_PKT_LEN 84
- #define ZEUS_EVENT_PKT_LEN 4
- #define ZEUS_READ_BUFFER ZEUS_EVENT_PKT_LEN + 2 // 2 = max value of read_data_offset; allows 2 extra FTDI status bytes
- #define ZEUS_CLK_MAX 382 // 0xff * 3/2
- #define ZEUS_CLK_MIN 328
- #define ZEUS_USB_ID_MODEL_STR1 "CP2102_USB_to_UART_Bridge_Controller"
- #define ZEUS_USB_ID_MODEL_STR2 "FT232R_USB_UART"
- #define PIPE_R 0
- #define PIPE_W 1
- struct ZEUS_INFO {
- char device_name[24];
- int device_fd;
- int using_libusb;
- bool serial_reopen;
- unsigned int nonce_count[ZEUS_MAX_CHIPS][ZEUS_CHIP_CORES];
- unsigned int error_count[ZEUS_MAX_CHIPS][ZEUS_CHIP_CORES];
- unsigned int workdone;
- struct timeval workstart;
- struct timeval workend;
- struct timeval scanwork_time;
- struct timeval work_timeout;
- double hashes_per_s;
- uint64_t golden_speed_per_core; // speed per core per sec
- uint32_t read_count;
- uint32_t last_nonce;
- int next_chip_clk;
- unsigned char freqcode;
- struct thr_info *thr;
- pthread_t sworkpth;
- pthread_mutex_t lock;
- cgsem_t wusem;
- struct work *current_work;
- int baud;
- int cores_per_chip;
- int chips_count_max;
- int chips_count;
- int chip_clk;
- int chips_bit_num; // log2(chips_count_max)
- int read_data_offset;
- };
- extern struct device_drv zeus_drv;
- #endif /* USE_ZEUS */
- #endif /* INCLUDE_DRIVER_ZEUS_H */
|