посмотрел даташиты, настройки клоков и правда у них кардинально различаются:
для A3255:
bit[20:16] clock input divider R
bit[27:21] clock feedback divider F
bit[29:28] clock output divider OD
hash unit working clock frequency = XCLKIN frequency * (F+1)/((R+1)*(2^OD)).
F, R and OD configuration should satisfy the following three conditions:
10MHz <= XCLKIN/(R+1) <= 50MHz
500MHz <= XCLKIN*(F+1)/(R+1) <= 1000MHz
62.5MHz <= XCLKIN*(F+1)/((R+1)*(2^OD)) <= 1000MHz
для A3256:
bit[28:18]:clock main divider N
bit[34:29]:clock input divider R
hash unit working clock frequency = XCLKIN frequency * N/(2*R).
N and R configuration should satisfy the following two conditions:
0.2MHz < XCLKIN/(2*R) < 6MHz 500MHz < XCLKIN*N/R < 900MHz
обрати внимание даже адреса коэффициентов PLL в разных местах
поэтому cgminer для Avalon1 работать не будет т.к. выставятся кривые делители PLL
а cgminer для Avalon2 ожидает увидеть вообще другой контроллер и возможно другой протокол.
как вариант бери исходники cgminer для Avalon1 и меняй расположение и значение инициализирующих коэффициентов PLL под характеристики A3255 в драйвере авалона.
небольшой апдейт:
все немного хуже, структуру регистров PLL для чипов инициализирует контроллер, cgminer передает только один байт делителя
struct avalon_task {
uint8_t reset :1;
uint8_t flush_fifo :1;
uint8_t fan_eft :1;
uint8_t timer_eft :1;
uint8_t asic_num :4;
uint8_t fan_pwm_data;
uint8_t timeout_data;
uint8_t miner_num;
uint8_t nonce_elf :1;
uint8_t gate_miner_elf :1;
uint8_t asic_pll :1;
uint8_t gate_miner :1;
uint8_t _pad0 :4;
uint8_t _pad1[3];
uint32_t _pad2;
uint8_t midstate[32];
uint8_t data[12];
} __attribute__((packed, aligned(4)));
поле asic_pll
так что под эти чипы должна быть особая прошивка FPGA контроллера и непонятно какое значение этой самой asic_pll
похоже кстати:
https://en.bitcoin.it/wiki/Avalon2_prototypeпрошивка как раз 20131229
параметры для cgminer:
MINER_NUM:CHIP_NUM:FREQUENCY:TIMEOUT
==> 16:10:1000:12 works fine
==> 16:10:1500:8 works fine
==> 24:10:1000:12 works fine
==> 24:10:1500:8 works fine
==> 32:6:1000:21 works fine
==> 32:6:1500:12 works fine
==> 32:10:1000:12 works fine
==> 32:10:1500:8 not working