cvmx-qlm-tables.c revision 232809
1#ifdef CVMX_BUILD_FOR_LINUX_KERNEL 2#include <asm/octeon/cvmx.h> 3#include <asm/octeon/cvmx-qlm.h> 4#else 5#include <cvmx.h> 6#include <cvmx-qlm.h> 7#endif 8 9const __cvmx_qlm_jtag_field_t __cvmx_qlm_jtag_field_cn56xx[] = 10{ 11 {"prbs_error_count", 267, 220}, // BIST/PRBS error count (only valid if pbrs_lock asserted) 12 {"prbs_unlock_count", 219, 212}, // BIST/PRBS unlock count (only valid if pbrs_lock asserted) 13 {"prbs_locked", 211, 211}, // BIST/PRBS lock (asserted after QLM achieves lock) 14 {"reset_prbs", 210, 210}, // BIST/PRBS reset (write 0 to reset) 15 {"run_prbs", 209, 209}, // run PRBS test pattern 16 {"run_bist", 208, 208}, // run bist (May only work for PCIe ?) 17 {"unknown", 207, 202}, // 18 {"biasdrvsel", 201, 199}, // assign biasdrvsel = fus_cfg_reg[201:199] ^ jtg_cfg_reg[201:199] ^ ((pi_qlm_cfg == 2'h0) ? 3'h4 : (pi_qlm_cfg == 2'h2) ? 3'h7 : 3'h2); 19 {"biasbuffsel", 198, 196}, // assign biasbuffsel = fus_cfg_reg[198:196] ^ jtg_cfg_reg[198:196] ^ 3'h4; 20 {"tcoeff", 195, 192}, // assign tcoeff = fus_cfg_reg[195:192] ^ jtg_cfg_reg[195:192] ^ (pi_qlm_cfg[1] ? 4'h0 : 4'hc); 21 {"mb5000", 181, 181}, // assign mb5000 = fus_cfg_reg[181] ^ jtg_cfg_reg[181] ^ 1'h0; 22 {"interpbw", 180, 176}, // assign interpbw = fus_cfg_reg[180:176] ^ jtg_cfg_reg[180:176] ^ ((qlm_spd == 2'h0) ? 5'h1f : (qlm_spd == 2'h1) ? 5'h10 : 5'h0); 23 {"mb", 175, 172}, // assign mb = fus_cfg_reg[175:172] ^ jtg_cfg_reg[175:172] ^ 4'h0; 24 {"bwoff", 171, 160}, // assign bwoff = fus_cfg_reg[171:160] ^ jtg_cfg_reg[171:160] ^ 12'h0; 25 {"bg_ref_sel", 153, 153}, // assign bg_ref_sel = fus_cfg_reg[153] ^ jtg_cfg_reg[153] ^ 1'h0; 26 {"div2en", 152, 152}, // assign div2en = fus_cfg_reg[152] ^ jtg_cfg_reg[152] ^ 1'h0; 27 {"trimen", 151, 150}, // assign trimen = fus_cfg_reg[151:150] ^ jtg_cfg_reg[151:150] ^ 2'h0; 28 {"clkr", 149, 144}, // assign clkr = fus_cfg_reg[149:144] ^ jtg_cfg_reg[149:144] ^ 6'h0; 29 {"clkf", 143, 132}, // assign clkf = fus_cfg_reg[143:132] ^ jtg_cfg_reg[143:132] ^ 12'h18; 30 {"bwadj", 131, 120}, // assign bwadj = fus_cfg_reg[131:120] ^ jtg_cfg_reg[131:120] ^ 12'h30; 31 {"shlpbck", 119, 118}, // assign shlpbck = fus_cfg_reg[119:118] ^ jtg_cfg_reg[119:118] ^ 2'h0; 32 {"serdes_pll_byp", 117, 117}, // assign serdes_pll_byp = fus_cfg_reg[117] ^ jtg_cfg_reg[117] ^ 1'h0; 33 {"ic50dac", 116, 112}, // assign ic50dac = fus_cfg_reg[116:112] ^ jtg_cfg_reg[116:112] ^ 5'h11; 34 {"sl_posedge_sample", 111, 111}, // assign sl_posedge_sample = fus_cfg_reg[111] ^ jtg_cfg_reg[111] ^ 1'h0; 35 {"sl_enable", 110, 110}, // assign sl_enable = fus_cfg_reg[110] ^ jtg_cfg_reg[110] ^ 1'h0; 36 {"rx_rout_comp_bypass", 109, 109}, // assign rx_rout_comp_bypass = fus_cfg_reg[109] ^ jtg_cfg_reg[109] ^ 1'h0; 37 {"ir50dac", 108, 104}, // assign ir50dac = fus_cfg_reg[108:104] ^ jtg_cfg_reg[108:104] ^ 5'h11; 38 {"rx_res_offset", 103, 100}, // assign rx_res_offset = fus_cfg_reg[103:100] ^ jtg_cfg_reg[103:100] ^ 4'h2; 39 {"rx_rout_comp_value", 99, 96}, // assign rx_rout_comp_value = fus_cfg_reg[99:96] ^ jtg_cfg_reg[99:96] ^ 4'h7; 40 {"tx_rout_comp_value", 95, 92}, // assign tx_rout_comp_value = fus_cfg_reg[95:92] ^ jtg_cfg_reg[95:92] ^ 4'h7; 41 {"tx_res_offset", 91, 88}, // assign tx_res_offset = fus_cfg_reg[91:88] ^ jtg_cfg_reg[91:88] ^ 4'h1; 42 {"tx_rout_comp_bypass", 87, 87}, // assign tx_rout_comp_bypass = fus_cfg_reg[87] ^ jtg_cfg_reg[87] ^ 1'h0; 43 {"idle_dac", 86, 84}, // assign idle_dac = fus_cfg_reg[86:84] ^ jtg_cfg_reg[86:84] ^ 3'h4; 44 {"hyst_en", 83, 83}, // assign hyst_en = fus_cfg_reg[83] ^ jtg_cfg_reg[83] ^ 1'h1; 45 {"rndt", 82, 82}, // assign rndt = fus_cfg_reg[82] ^ jtg_cfg_reg[82] ^ 1'h0; 46 {"cfg_tx_com", 79, 79}, // CN52XX cfg_tx_com = fus_cfg_reg[79] ^ jtg_cfg_reg[79] ^ 1'h0; 47 {"cfg_cdr_errcor", 78, 78}, // CN52XX cfg_cdr_errcor = fus_cfg_reg[78] ^ jtg_cfg_reg[78] ^ 1'h0; 48 {"cfg_cdr_secord", 77, 77}, // CN52XX cfg_cdr_secord = fus_cfg_reg[77] ^ jtg_cfg_reg[77] ^ 1'h1; 49 {"cfg_cdr_rotate", 76, 76}, // assign cfg_cdr_rotate = fus_cfg_reg[76] ^ jtg_cfg_reg[76] ^ 1'h0; 50 {"cfg_cdr_rqoffs", 75, 68}, // assign cfg_cdr_rqoffs = fus_cfg_reg[75:68] ^ jtg_cfg_reg[75:68] ^ 8'h40; 51 {"cfg_cdr_incx", 67, 64}, // assign cfg_cdr_incx = fus_cfg_reg[67:64] ^ jtg_cfg_reg[67:64] ^ 4'h2; 52 {"cfg_cdr_state", 63, 56}, // assign cfg_cdr_state = fus_cfg_reg[63:56] ^ jtg_cfg_reg[63:56] ^ 8'h0; 53 {"cfg_cdr_bypass", 55, 55}, // assign cfg_cdr_bypass = fus_cfg_reg[55] ^ jtg_cfg_reg[55] ^ 1'h0; 54 {"cfg_tx_byp", 54, 54}, // assign cfg_tx_byp = fus_cfg_reg[54] ^ jtg_cfg_reg[54] ^ 1'h0; 55 {"cfg_tx_val", 53, 44}, // assign cfg_tx_val = fus_cfg_reg[53:44] ^ jtg_cfg_reg[53:44] ^ 10'h0; 56 {"cfg_rx_pol_set", 43, 43}, // assign cfg_rx_pol_set = fus_cfg_reg[43] ^ jtg_cfg_reg[43] ^ 1'h0; 57 {"cfg_rx_pol_clr", 42, 42}, // assign cfg_rx_pol_clr = fus_cfg_reg[42] ^ jtg_cfg_reg[42] ^ 1'h0; 58 {"cfg_cdr_bw_ctl", 41, 40}, // assign cfg_cdr_bw_ctl = fus_cfg_reg[41:40] ^ jtg_cfg_reg[41:40] ^ 2'h0; 59 {"cfg_rst_n_set", 39, 39}, // assign cfg_rst_n_set = fus_cfg_reg[39] ^ jtg_cfg_reg[39] ^ 1'h0; 60 {"cfg_rst_n_clr", 38, 38}, // assign cfg_rst_n_clr = fus_cfg_reg[38] ^ jtg_cfg_reg[38] ^ 1'h0; 61 {"cfg_tx_clk2", 37, 37}, // assign cfg_tx_clk2 = fus_cfg_reg[37] ^ jtg_cfg_reg[37] ^ 1'h0; 62 {"cfg_tx_clk1", 36, 36}, // assign cfg_tx_clk1 = fus_cfg_reg[36] ^ jtg_cfg_reg[36] ^ 1'h0; 63 {"cfg_tx_pol_set", 35, 35}, // assign cfg_tx_pol_set = fus_cfg_reg[35] ^ jtg_cfg_reg[35] ^ 1'h0; 64 {"cfg_tx_pol_clr", 34, 34}, // assign cfg_tx_pol_clr = fus_cfg_reg[34] ^ jtg_cfg_reg[34] ^ 1'h0; 65 {"cfg_tx_one", 33, 33}, // assign cfg_tx_one = fus_cfg_reg[33] ^ jtg_cfg_reg[33] ^ 1'h0; 66 {"cfg_tx_zero", 32, 32}, // assign cfg_tx_zero = fus_cfg_reg[32] ^ jtg_cfg_reg[32] ^ 1'h0; 67 {"cfg_rxd_wait", 31, 28}, // assign cfg_rxd_wait = fus_cfg_reg[31:28] ^ jtg_cfg_reg[31:28] ^ 4'h3; 68 {"cfg_rxd_short", 27, 27}, // assign cfg_rxd_short = fus_cfg_reg[27] ^ jtg_cfg_reg[27] ^ 1'h0; 69 {"cfg_rxd_set", 26, 26}, // assign cfg_rxd_set = fus_cfg_reg[26] ^ jtg_cfg_reg[26] ^ 1'h0; 70 {"cfg_rxd_clr", 25, 25}, // assign cfg_rxd_clr = fus_cfg_reg[25] ^ jtg_cfg_reg[25] ^ 1'h0; 71 {"cfg_loopback", 24, 24}, // assign cfg_loopback = fus_cfg_reg[24] ^ jtg_cfg_reg[24] ^ 1'h0; 72 {"cfg_tx_idle_set", 23, 23}, // assign cfg_tx_idle_set = fus_cfg_reg[23] ^ jtg_cfg_reg[23] ^ 1'h0; 73 {"cfg_tx_idle_clr", 22, 22}, // assign cfg_tx_idle_clr = fus_cfg_reg[22] ^ jtg_cfg_reg[22] ^ 1'h0; 74 {"cfg_rx_idle_set", 21, 21}, // assign cfg_rx_idle_set = fus_cfg_reg[21] ^ jtg_cfg_reg[21] ^ 1'h0; 75 {"cfg_rx_idle_clr", 20, 20}, // assign cfg_rx_idle_clr = fus_cfg_reg[20] ^ jtg_cfg_reg[20] ^ 1'h0; 76 {"cfg_rx_idle_thr", 19, 16}, // assign cfg_rx_idle_thr = fus_cfg_reg[19:16] ^ jtg_cfg_reg[19:16] ^ 4'h0; 77 {"cfg_com_thr", 15, 12}, // assign cfg_com_thr = fus_cfg_reg[15:12] ^ jtg_cfg_reg[15:12] ^ 4'h3; 78 {"cfg_rx_offset", 11, 8}, // assign cfg_rx_offset = fus_cfg_reg[11:8] ^ jtg_cfg_reg[11:8] ^ 4'h4; 79 {"cfg_skp_max", 7, 4}, // assign cfg_skp_max = fus_cfg_reg[7:4] ^ jtg_cfg_reg[7:4] ^ 4'hc; 80 {"cfg_skp_min", 3, 0}, // assign cfg_skp_min = fus_cfg_reg[3:0] ^ jtg_cfg_reg[3:0] ^ 4'h4; 81 {NULL, -1, -1} 82}; 83 84const __cvmx_qlm_jtag_field_t __cvmx_qlm_jtag_field_cn52xx[] = 85{ 86 {"prbs_error_count", 267, 220}, // BIST/PRBS error count (only valid if pbrs_lock asserted) 87 {"prbs_unlock_count", 219, 212}, // BIST/PRBS unlock count (only valid if pbrs_lock asserted) 88 {"prbs_locked", 211, 211}, // BIST/PRBS lock (asserted after QLM achieves lock) 89 {"reset_prbs", 210, 210}, // BIST/PRBS reset (write 0 to reset) 90 {"run_prbs", 209, 209}, // run PRBS test pattern 91 {"run_bist", 208, 208}, // run bist (May only work for PCIe ?) 92 {"unknown", 207, 202}, // 93 94 {"biasdrvsel", 201, 199}, // assign biasdrvsel = fus_cfg_reg[201:199] ^ jtg_cfg_reg[201:199] ^ ((pi_qlm_cfg == 2'h0) ? 3'h4 : (pi_qlm_cfg == 2'h2) ? 3'h7 : 3'h2); 95 {"biasbuffsel", 198, 196}, // assign biasbuffsel = fus_cfg_reg[198:196] ^ jtg_cfg_reg[198:196] ^ 3'h4; 96 {"tcoeff", 195, 192}, // assign tcoeff = fus_cfg_reg[195:192] ^ jtg_cfg_reg[195:192] ^ (pi_qlm_cfg[1] ? 4'h0 : 4'hc); 97 {"mb5000", 181, 181}, // assign mb5000 = fus_cfg_reg[181] ^ jtg_cfg_reg[181] ^ 1'h0; 98 {"interpbw", 180, 176}, // assign interpbw = fus_cfg_reg[180:176] ^ jtg_cfg_reg[180:176] ^ ((qlm_spd == 2'h0) ? 5'h1f : (qlm_spd == 2'h1) ? 5'h10 : 5'h0); 99 {"mb", 175, 172}, // assign mb = fus_cfg_reg[175:172] ^ jtg_cfg_reg[175:172] ^ 4'h0; 100 {"bwoff", 171, 160}, // assign bwoff = fus_cfg_reg[171:160] ^ jtg_cfg_reg[171:160] ^ 12'h0; 101 {"bg_ref_sel", 153, 153}, // assign bg_ref_sel = fus_cfg_reg[153] ^ jtg_cfg_reg[153] ^ 1'h0; 102 {"div2en", 152, 152}, // assign div2en = fus_cfg_reg[152] ^ jtg_cfg_reg[152] ^ 1'h0; 103 {"trimen", 151, 150}, // assign trimen = fus_cfg_reg[151:150] ^ jtg_cfg_reg[151:150] ^ 2'h0; 104 {"clkr", 149, 144}, // assign clkr = fus_cfg_reg[149:144] ^ jtg_cfg_reg[149:144] ^ 6'h0; 105 {"clkf", 143, 132}, // assign clkf = fus_cfg_reg[143:132] ^ jtg_cfg_reg[143:132] ^ 12'h18; 106 {"bwadj", 131, 120}, // assign bwadj = fus_cfg_reg[131:120] ^ jtg_cfg_reg[131:120] ^ 12'h30; 107 {"shlpbck", 119, 118}, // assign shlpbck = fus_cfg_reg[119:118] ^ jtg_cfg_reg[119:118] ^ 2'h0; 108 {"serdes_pll_byp", 117, 117}, // assign serdes_pll_byp = fus_cfg_reg[117] ^ jtg_cfg_reg[117] ^ 1'h0; 109 {"ic50dac", 116, 112}, // assign ic50dac = fus_cfg_reg[116:112] ^ jtg_cfg_reg[116:112] ^ 5'h11; 110 {"sl_posedge_sample", 111, 111}, // assign sl_posedge_sample = fus_cfg_reg[111] ^ jtg_cfg_reg[111] ^ 1'h0; 111 {"sl_enable", 110, 110}, // assign sl_enable = fus_cfg_reg[110] ^ jtg_cfg_reg[110] ^ 1'h0; 112 {"rx_rout_comp_bypass", 109, 109}, // assign rx_rout_comp_bypass = fus_cfg_reg[109] ^ jtg_cfg_reg[109] ^ 1'h0; 113 {"ir50dac", 108, 104}, // assign ir50dac = fus_cfg_reg[108:104] ^ jtg_cfg_reg[108:104] ^ 5'h11; 114 {"rx_res_offset", 103, 100}, // assign rx_res_offset = fus_cfg_reg[103:100] ^ jtg_cfg_reg[103:100] ^ 4'h2; 115 {"rx_rout_comp_value", 99, 96}, // assign rx_rout_comp_value = fus_cfg_reg[99:96] ^ jtg_cfg_reg[99:96] ^ 4'h7; 116 {"tx_rout_comp_value", 95, 92}, // assign tx_rout_comp_value = fus_cfg_reg[95:92] ^ jtg_cfg_reg[95:92] ^ 4'h7; 117 {"tx_res_offset", 91, 88}, // assign tx_res_offset = fus_cfg_reg[91:88] ^ jtg_cfg_reg[91:88] ^ 4'h1; 118 {"tx_rout_comp_bypass", 87, 87}, // assign tx_rout_comp_bypass = fus_cfg_reg[87] ^ jtg_cfg_reg[87] ^ 1'h0; 119 {"idle_dac", 86, 84}, // assign idle_dac = fus_cfg_reg[86:84] ^ jtg_cfg_reg[86:84] ^ 3'h4; 120 {"hyst_en", 83, 83}, // assign hyst_en = fus_cfg_reg[83] ^ jtg_cfg_reg[83] ^ 1'h1; 121 {"rndt", 82, 82}, // assign rndt = fus_cfg_reg[82] ^ jtg_cfg_reg[82] ^ 1'h0; 122 {"cfg_tx_com", 79, 79}, // CN52XX cfg_tx_com = fus_cfg_reg[79] ^ jtg_cfg_reg[79] ^ 1'h0; 123 {"cfg_cdr_errcor", 78, 78}, // CN52XX cfg_cdr_errcor = fus_cfg_reg[78] ^ jtg_cfg_reg[78] ^ 1'h0; 124 {"cfg_cdr_secord", 77, 77}, // CN52XX cfg_cdr_secord = fus_cfg_reg[77] ^ jtg_cfg_reg[77] ^ 1'h1; 125 {"cfg_cdr_rotate", 76, 76}, // assign cfg_cdr_rotate = fus_cfg_reg[76] ^ jtg_cfg_reg[76] ^ 1'h0; 126 {"cfg_cdr_rqoffs", 75, 68}, // assign cfg_cdr_rqoffs = fus_cfg_reg[75:68] ^ jtg_cfg_reg[75:68] ^ 8'h40; 127 {"cfg_cdr_incx", 67, 64}, // assign cfg_cdr_incx = fus_cfg_reg[67:64] ^ jtg_cfg_reg[67:64] ^ 4'h2; 128 {"cfg_cdr_state", 63, 56}, // assign cfg_cdr_state = fus_cfg_reg[63:56] ^ jtg_cfg_reg[63:56] ^ 8'h0; 129 {"cfg_cdr_bypass", 55, 55}, // assign cfg_cdr_bypass = fus_cfg_reg[55] ^ jtg_cfg_reg[55] ^ 1'h0; 130 {"cfg_tx_byp", 54, 54}, // assign cfg_tx_byp = fus_cfg_reg[54] ^ jtg_cfg_reg[54] ^ 1'h0; 131 {"cfg_tx_val", 53, 44}, // assign cfg_tx_val = fus_cfg_reg[53:44] ^ jtg_cfg_reg[53:44] ^ 10'h0; 132 {"cfg_rx_pol_set", 43, 43}, // assign cfg_rx_pol_set = fus_cfg_reg[43] ^ jtg_cfg_reg[43] ^ 1'h0; 133 {"cfg_rx_pol_clr", 42, 42}, // assign cfg_rx_pol_clr = fus_cfg_reg[42] ^ jtg_cfg_reg[42] ^ 1'h0; 134 {"cfg_cdr_bw_ctl", 41, 40}, // assign cfg_cdr_bw_ctl = fus_cfg_reg[41:40] ^ jtg_cfg_reg[41:40] ^ 2'h0; 135 {"cfg_rst_n_set", 39, 39}, // assign cfg_rst_n_set = fus_cfg_reg[39] ^ jtg_cfg_reg[39] ^ 1'h0; 136 {"cfg_rst_n_clr", 38, 38}, // assign cfg_rst_n_clr = fus_cfg_reg[38] ^ jtg_cfg_reg[38] ^ 1'h0; 137 {"cfg_tx_clk2", 37, 37}, // assign cfg_tx_clk2 = fus_cfg_reg[37] ^ jtg_cfg_reg[37] ^ 1'h0; 138 {"cfg_tx_clk1", 36, 36}, // assign cfg_tx_clk1 = fus_cfg_reg[36] ^ jtg_cfg_reg[36] ^ 1'h0; 139 {"cfg_tx_pol_set", 35, 35}, // assign cfg_tx_pol_set = fus_cfg_reg[35] ^ jtg_cfg_reg[35] ^ 1'h0; 140 {"cfg_tx_pol_clr", 34, 34}, // assign cfg_tx_pol_clr = fus_cfg_reg[34] ^ jtg_cfg_reg[34] ^ 1'h0; 141 {"cfg_tx_one", 33, 33}, // assign cfg_tx_one = fus_cfg_reg[33] ^ jtg_cfg_reg[33] ^ 1'h0; 142 {"cfg_tx_zero", 32, 32}, // assign cfg_tx_zero = fus_cfg_reg[32] ^ jtg_cfg_reg[32] ^ 1'h0; 143 {"cfg_rxd_wait", 31, 28}, // assign cfg_rxd_wait = fus_cfg_reg[31:28] ^ jtg_cfg_reg[31:28] ^ 4'h3; 144 {"cfg_rxd_short", 27, 27}, // assign cfg_rxd_short = fus_cfg_reg[27] ^ jtg_cfg_reg[27] ^ 1'h0; 145 {"cfg_rxd_set", 26, 26}, // assign cfg_rxd_set = fus_cfg_reg[26] ^ jtg_cfg_reg[26] ^ 1'h0; 146 {"cfg_rxd_clr", 25, 25}, // assign cfg_rxd_clr = fus_cfg_reg[25] ^ jtg_cfg_reg[25] ^ 1'h0; 147 {"cfg_loopback", 24, 24}, // assign cfg_loopback = fus_cfg_reg[24] ^ jtg_cfg_reg[24] ^ 1'h0; 148 {"cfg_tx_idle_set", 23, 23}, // assign cfg_tx_idle_set = fus_cfg_reg[23] ^ jtg_cfg_reg[23] ^ 1'h0; 149 {"cfg_tx_idle_clr", 22, 22}, // assign cfg_tx_idle_clr = fus_cfg_reg[22] ^ jtg_cfg_reg[22] ^ 1'h0; 150 {"cfg_rx_idle_set", 21, 21}, // assign cfg_rx_idle_set = fus_cfg_reg[21] ^ jtg_cfg_reg[21] ^ 1'h0; 151 {"cfg_rx_idle_clr", 20, 20}, // assign cfg_rx_idle_clr = fus_cfg_reg[20] ^ jtg_cfg_reg[20] ^ 1'h0; 152 {"cfg_rx_idle_thr", 19, 16}, // assign cfg_rx_idle_thr = fus_cfg_reg[19:16] ^ jtg_cfg_reg[19:16] ^ 4'h0; 153 {"cfg_com_thr", 15, 12}, // assign cfg_com_thr = fus_cfg_reg[15:12] ^ jtg_cfg_reg[15:12] ^ 4'h3; 154 {"cfg_rx_offset", 11, 8}, // assign cfg_rx_offset = fus_cfg_reg[11:8] ^ jtg_cfg_reg[11:8] ^ 4'h4; 155 {"cfg_skp_max", 7, 4}, // assign cfg_skp_max = fus_cfg_reg[7:4] ^ jtg_cfg_reg[7:4] ^ 4'hc; 156 {"cfg_skp_min", 3, 0}, // assign cfg_skp_min = fus_cfg_reg[3:0] ^ jtg_cfg_reg[3:0] ^ 4'h4; 157 {NULL, -1, -1} 158}; 159 160 161const __cvmx_qlm_jtag_field_t __cvmx_qlm_jtag_field_cn63xx[] = 162{ 163 {"prbs_err_cnt", 299, 252}, // prbs_err_cnt[47..0] 164 {"prbs_lock", 251, 251}, // prbs_lock 165 {"jtg_prbs_rst_n", 250, 250}, // jtg_prbs_rst_n 166 {"jtg_run_prbs31", 249, 249}, // jtg_run_prbs31 167 {"jtg_run_prbs7", 248, 248}, // jtg_run_prbs7 168 {"Unused1", 247, 245}, // 0 169 {"cfg_pwrup_set", 244, 244}, // cfg_pwrup_set 170 {"cfg_pwrup_clr", 243, 243}, // cfg_pwrup_clr 171 {"cfg_rst_n_set", 242, 242}, // cfg_rst_n_set 172 {"cfg_rst_n_clr", 241, 241}, // cfg_rst_n_clr 173 {"cfg_tx_idle_set", 240, 240}, // cfg_tx_idle_set 174 {"cfg_tx_idle_clr", 239, 239}, // cfg_tx_idle_clr 175 {"cfg_tx_byp", 238, 238}, // cfg_tx_byp 176 {"cfg_tx_byp_inv", 237, 237}, // cfg_tx_byp_inv 177 {"cfg_tx_byp_val", 236, 227}, // cfg_tx_byp_val[9..0] 178 {"cfg_loopback", 226, 226}, // cfg_loopback 179 {"shlpbck", 225, 224}, // shlpbck[1..0] 180 {"sl_enable", 223, 223}, // sl_enable 181 {"sl_posedge_sample", 222, 222}, // sl_posedge_sample 182 {"trimen", 221, 220}, // trimen[1..0] 183 {"serdes_tx_byp", 219, 219}, // serdes_tx_byp 184 {"serdes_pll_byp", 218, 218}, // serdes_pll_byp 185 {"lowf_byp", 217, 217}, // lowf_byp 186 {"spdsel_byp", 216, 216}, // spdsel_byp 187 {"div4_byp", 215, 215}, // div4_byp 188 {"clkf_byp", 214, 208}, // clkf_byp[6..0] 189 {"Unused2", 207, 206}, // 0 190 {"biasdrv_hs_ls_byp", 205, 201}, // biasdrv_hs_ls_byp[4..0] 191 {"tcoeff_hf_ls_byp", 200, 197}, // tcoeff_hf_ls_byp[3..0] 192 {"biasdrv_hf_byp", 196, 192}, // biasdrv_hf_byp[4..0] 193 {"tcoeff_hf_byp", 191, 188}, // tcoeff_hf_byp[3..0] 194 {"Unused3", 187, 186}, // 0 195 {"biasdrv_lf_ls_byp", 185, 181}, // biasdrv_lf_ls_byp[4..0] 196 {"tcoeff_lf_ls_byp", 180, 177}, // tcoeff_lf_ls_byp[3..0] 197 {"biasdrv_lf_byp", 176, 172}, // biasdrv_lf_byp[4..0] 198 {"tcoeff_lf_byp", 171, 168}, // tcoeff_lf_byp[3..0] 199 {"Unused4", 167, 167}, // 0 200 {"interpbw", 166, 162}, // interpbw[4..0] 201 {"pll_cpb", 161, 159}, // pll_cpb[2..0] 202 {"pll_cps", 158, 156}, // pll_cps[2..0] 203 {"pll_diffamp", 155, 152}, // pll_diffamp[3..0] 204 {"Unused5", 151, 150}, // 0 205 {"cfg_rx_idle_set", 149, 149}, // cfg_rx_idle_set 206 {"cfg_rx_idle_clr", 148, 148}, // cfg_rx_idle_clr 207 {"cfg_rx_idle_thr", 147, 144}, // cfg_rx_idle_thr[3..0] 208 {"cfg_com_thr", 143, 140}, // cfg_com_thr[3..0] 209 {"cfg_rx_offset", 139, 136}, // cfg_rx_offset[3..0] 210 {"cfg_skp_max", 135, 132}, // cfg_skp_max[3..0] 211 {"cfg_skp_min", 131, 128}, // cfg_skp_min[3..0] 212 {"cfg_fast_pwrup", 127, 127}, // cfg_fast_pwrup 213 {"Unused6", 126, 100}, // 0 214 {"detected_n", 99, 99}, // detected_n 215 {"detected_p", 98, 98}, // detected_p 216 {"dbg_res_rx", 97, 94}, // dbg_res_rx[3..0] 217 {"dbg_res_tx", 93, 90}, // dbg_res_tx[3..0] 218 {"cfg_tx_pol_set", 89, 89}, // cfg_tx_pol_set 219 {"cfg_tx_pol_clr", 88, 88}, // cfg_tx_pol_clr 220 {"cfg_rx_pol_set", 87, 87}, // cfg_rx_pol_set 221 {"cfg_rx_pol_clr", 86, 86}, // cfg_rx_pol_clr 222 {"cfg_rxd_set", 85, 85}, // cfg_rxd_set 223 {"cfg_rxd_clr", 84, 84}, // cfg_rxd_clr 224 {"cfg_rxd_wait", 83, 80}, // cfg_rxd_wait[3..0] 225 {"cfg_cdr_limit", 79, 79}, // cfg_cdr_limit 226 {"cfg_cdr_rotate", 78, 78}, // cfg_cdr_rotate 227 {"cfg_cdr_bw_ctl", 77, 76}, // cfg_cdr_bw_ctl[1..0] 228 {"cfg_cdr_trunc", 75, 74}, // cfg_cdr_trunc[1..0] 229 {"cfg_cdr_rqoffs", 73, 64}, // cfg_cdr_rqoffs[9..0] 230 {"cfg_cdr_inc2", 63, 58}, // cfg_cdr_inc2[5..0] 231 {"cfg_cdr_inc1", 57, 52}, // cfg_cdr_inc1[5..0] 232 {"fusopt_voter_sync", 51, 51}, // fusopt_voter_sync 233 {"rndt", 50, 50}, // rndt 234 {"hcya", 49, 49}, // hcya 235 {"hyst", 48, 48}, // hyst 236 {"idle_dac", 47, 45}, // idle_dac[2..0] 237 {"bg_ref_sel", 44, 44}, // bg_ref_sel 238 {"ic50dac", 43, 39}, // ic50dac[4..0] 239 {"ir50dac", 38, 34}, // ir50dac[4..0] 240 {"tx_rout_comp_bypass", 33, 33}, // tx_rout_comp_bypass 241 {"tx_rout_comp_value", 32, 29}, // tx_rout_comp_value[3..0] 242 {"tx_res_offset", 28, 25}, // tx_res_offset[3..0] 243 {"rx_rout_comp_bypass", 24, 24}, // rx_rout_comp_bypass 244 {"rx_rout_comp_value", 23, 20}, // rx_rout_comp_value[3..0] 245 {"rx_res_offset", 19, 16}, // rx_res_offset[3..0] 246 {"rx_cap_gen2", 15, 12}, // rx_cap_gen2[3..0] 247 {"rx_eq_gen2", 11, 8}, // rx_eq_gen2[3..0] 248 {"rx_cap_gen1", 7, 4}, // rx_cap_gen1[3..0] 249 {"rx_eq_gen1", 3, 0}, // rx_eq_gen1[3..0] 250 {NULL, -1, -1} 251}; 252 253const __cvmx_qlm_jtag_field_t __cvmx_qlm_jtag_field_cn66xx[] = 254{ 255 {"prbs_err_cnt", 303, 256}, // prbs_err_cnt[47..0] 256 {"prbs_lock", 255, 255}, // prbs_lock 257 {"jtg_prbs_rx_rst_n", 254, 254}, // jtg_prbs_rx_rst_n 258 {"jtg_prbs_tx_rst_n", 253, 253}, // jtg_prbs_tx_rst_n 259 {"jtg_prbs_mode", 252, 251}, // jtg_prbs_mode[252:251] 260 {"jtg_prbs_rst_n", 250, 250}, // jtg_prbs_rst_n 261 {"jtg_run_prbs31", 249, 249}, // jtg_run_prbs31 - Use jtg_prbs_mode instead 262 {"jtg_run_prbs7", 248, 248}, // jtg_run_prbs7 - Use jtg_prbs_mode instead 263 {"Unused1", 247, 246}, // 0 264 {"div5_byp", 245, 245}, // div5_byp 265 {"cfg_pwrup_set", 244, 244}, // cfg_pwrup_set 266 {"cfg_pwrup_clr", 243, 243}, // cfg_pwrup_clr 267 {"cfg_rst_n_set", 242, 242}, // cfg_rst_n_set 268 {"cfg_rst_n_clr", 241, 241}, // cfg_rst_n_clr 269 {"cfg_tx_idle_set", 240, 240}, // cfg_tx_idle_set 270 {"cfg_tx_idle_clr", 239, 239}, // cfg_tx_idle_clr 271 {"cfg_tx_byp", 238, 238}, // cfg_tx_byp 272 {"cfg_tx_byp_inv", 237, 237}, // cfg_tx_byp_inv 273 {"cfg_tx_byp_val", 236, 227}, // cfg_tx_byp_val[9..0] 274 {"cfg_loopback", 226, 226}, // cfg_loopback 275 {"shlpbck", 225, 224}, // shlpbck[1..0] 276 {"sl_enable", 223, 223}, // sl_enable 277 {"sl_posedge_sample", 222, 222}, // sl_posedge_sample 278 {"trimen", 221, 220}, // trimen[1..0] 279 {"serdes_tx_byp", 219, 219}, // serdes_tx_byp 280 {"serdes_pll_byp", 218, 218}, // serdes_pll_byp 281 {"lowf_byp", 217, 217}, // lowf_byp 282 {"spdsel_byp", 216, 216}, // spdsel_byp 283 {"div4_byp", 215, 215}, // div4_byp 284 {"clkf_byp", 214, 208}, // clkf_byp[6..0] 285 {"biasdrv_hs_ls_byp", 207, 203}, // biasdrv_hs_ls_byp[4..0] 286 {"tcoeff_hf_ls_byp", 202, 198}, // tcoeff_hf_ls_byp[4..0] 287 {"biasdrv_hf_byp", 197, 193}, // biasdrv_hf_byp[4..0] 288 {"tcoeff_hf_byp", 192, 188}, // tcoeff_hf_byp[4..0] 289 {"biasdrv_lf_ls_byp", 187, 183}, // biasdrv_lf_ls_byp[4..0] 290 {"tcoeff_lf_ls_byp", 182, 178}, // tcoeff_lf_ls_byp[4..0] 291 {"biasdrv_lf_byp", 177, 173}, // biasdrv_lf_byp[4..0] 292 {"tcoeff_lf_byp", 172, 168}, // tcoeff_lf_byp[4..0] 293 {"Unused4", 167, 167}, // 0 294 {"interpbw", 166, 162}, // interpbw[4..0] 295 {"pll_cpb", 161, 159}, // pll_cpb[2..0] 296 {"pll_cps", 158, 156}, // pll_cps[2..0] 297 {"pll_diffamp", 155, 152}, // pll_diffamp[3..0] 298 {"cfg_err_thr", 151, 150}, // cfg_err_thr 299 {"cfg_rx_idle_set", 149, 149}, // cfg_rx_idle_set 300 {"cfg_rx_idle_clr", 148, 148}, // cfg_rx_idle_clr 301 {"cfg_rx_idle_thr", 147, 144}, // cfg_rx_idle_thr[3..0] 302 {"cfg_com_thr", 143, 140}, // cfg_com_thr[3..0] 303 {"cfg_rx_offset", 139, 136}, // cfg_rx_offset[3..0] 304 {"cfg_skp_max", 135, 132}, // cfg_skp_max[3..0] 305 {"cfg_skp_min", 131, 128}, // cfg_skp_min[3..0] 306 {"cfg_fast_pwrup", 127, 127}, // cfg_fast_pwrup 307 {"Unused6", 126, 101}, // 0 308 {"cfg_indep_dis", 100, 100}, // cfg_indep_dis 309 {"detected_n", 99, 99}, // detected_n 310 {"detected_p", 98, 98}, // detected_p 311 {"dbg_res_rx", 97, 94}, // dbg_res_rx[3..0] 312 {"dbg_res_tx", 93, 90}, // dbg_res_tx[3..0] 313 {"cfg_tx_pol_set", 89, 89}, // cfg_tx_pol_set 314 {"cfg_tx_pol_clr", 88, 88}, // cfg_tx_pol_clr 315 {"cfg_rx_pol_set", 87, 87}, // cfg_rx_pol_set 316 {"cfg_rx_pol_clr", 86, 86}, // cfg_rx_pol_clr 317 {"cfg_rxd_set", 85, 85}, // cfg_rxd_set 318 {"cfg_rxd_clr", 84, 84}, // cfg_rxd_clr 319 {"cfg_rxd_wait", 83, 80}, // cfg_rxd_wait[3..0] 320 {"cfg_cdr_limit", 79, 79}, // cfg_cdr_limit 321 {"cfg_cdr_rotate", 78, 78}, // cfg_cdr_rotate 322 {"cfg_cdr_bw_ctl", 77, 76}, // cfg_cdr_bw_ctl[1..0] 323 {"cfg_cdr_trunc", 75, 74}, // cfg_cdr_trunc[1..0] 324 {"cfg_cdr_rqoffs", 73, 64}, // cfg_cdr_rqoffs[9..0] 325 {"cfg_cdr_inc2", 63, 58}, // cfg_cdr_inc2[5..0] 326 {"cfg_cdr_inc1", 57, 52}, // cfg_cdr_inc1[5..0] 327 {"fusopt_voter_sync", 51, 51}, // fusopt_voter_sync 328 {"rndt", 50, 50}, // rndt 329 {"hcya", 49, 49}, // hcya 330 {"hyst", 48, 48}, // hyst 331 {"idle_dac", 47, 45}, // idle_dac[2..0] 332 {"bg_ref_sel", 44, 44}, // bg_ref_sel 333 {"ic50dac", 43, 39}, // ic50dac[4..0] 334 {"ir50dac", 38, 34}, // ir50dac[4..0] 335 {"tx_rout_comp_bypass", 33, 33}, // tx_rout_comp_bypass 336 {"tx_rout_comp_value", 32, 29}, // tx_rout_comp_value[3..0] 337 {"tx_res_offset", 28, 25}, // tx_res_offset[3..0] 338 {"rx_rout_comp_bypass", 24, 24}, // rx_rout_comp_bypass 339 {"rx_rout_comp_value", 23, 20}, // rx_rout_comp_value[3..0] 340 {"rx_res_offset", 19, 16}, // rx_res_offset[3..0] 341 {"rx_cap_gen2", 15, 12}, // rx_cap_gen2[3..0] 342 {"rx_eq_gen2", 11, 8}, // rx_eq_gen2[3..0] 343 {"rx_cap_gen1", 7, 4}, // rx_cap_gen1[3..0] 344 {"rx_eq_gen1", 3, 0}, // rx_eq_gen1[3..0] 345 {NULL, -1, -1} 346}; 347 348const __cvmx_qlm_jtag_field_t __cvmx_qlm_jtag_field_cn68xx[] = 349{ 350 {"prbs_err_cnt", 303, 256}, // prbs_err_cnt[47..0] 351 {"prbs_lock", 255, 255}, // prbs_lock 352 {"jtg_prbs_rx_rst_n", 254, 254}, // jtg_prbs_rx_rst_n 353 {"jtg_prbs_tx_rst_n", 253, 253}, // jtg_prbs_tx_rst_n 354 {"jtg_prbs_mode", 252, 251}, // jtg_prbs_mode[252:251] 355 {"jtg_prbs_rst_n", 250, 250}, // jtg_prbs_rst_n 356 {"jtg_run_prbs31", 249, 249}, // jtg_run_prbs31 - Use jtg_prbs_mode instead 357 {"jtg_run_prbs7", 248, 248}, // jtg_run_prbs7 - Use jtg_prbs_mode instead 358 {"Unused1", 247, 245}, // 0 359 {"cfg_pwrup_set", 244, 244}, // cfg_pwrup_set 360 {"cfg_pwrup_clr", 243, 243}, // cfg_pwrup_clr 361 {"cfg_rst_n_set", 242, 242}, // cfg_rst_n_set 362 {"cfg_rst_n_clr", 241, 241}, // cfg_rst_n_clr 363 {"cfg_tx_idle_set", 240, 240}, // cfg_tx_idle_set 364 {"cfg_tx_idle_clr", 239, 239}, // cfg_tx_idle_clr 365 {"cfg_tx_byp", 238, 238}, // cfg_tx_byp 366 {"cfg_tx_byp_inv", 237, 237}, // cfg_tx_byp_inv 367 {"cfg_tx_byp_val", 236, 227}, // cfg_tx_byp_val[9..0] 368 {"cfg_loopback", 226, 226}, // cfg_loopback 369 {"shlpbck", 225, 224}, // shlpbck[1..0] 370 {"sl_enable", 223, 223}, // sl_enable 371 {"sl_posedge_sample", 222, 222}, // sl_posedge_sample 372 {"trimen", 221, 220}, // trimen[1..0] 373 {"serdes_tx_byp", 219, 219}, // serdes_tx_byp 374 {"serdes_pll_byp", 218, 218}, // serdes_pll_byp 375 {"lowf_byp", 217, 217}, // lowf_byp 376 {"spdsel_byp", 216, 216}, // spdsel_byp 377 {"div4_byp", 215, 215}, // div4_byp 378 {"clkf_byp", 214, 208}, // clkf_byp[6..0] 379 {"biasdrv_hs_ls_byp", 207, 203}, // biasdrv_hs_ls_byp[4..0] 380 {"tcoeff_hf_ls_byp", 202, 198}, // tcoeff_hf_ls_byp[4..0] 381 {"biasdrv_hf_byp", 197, 193}, // biasdrv_hf_byp[4..0] 382 {"tcoeff_hf_byp", 192, 188}, // tcoeff_hf_byp[4..0] 383 {"biasdrv_lf_ls_byp", 187, 183}, // biasdrv_lf_ls_byp[4..0] 384 {"tcoeff_lf_ls_byp", 182, 178}, // tcoeff_lf_ls_byp[4..0] 385 {"biasdrv_lf_byp", 177, 173}, // biasdrv_lf_byp[4..0] 386 {"tcoeff_lf_byp", 172, 168}, // tcoeff_lf_byp[4..0] 387 {"Unused4", 167, 167}, // 0 388 {"interpbw", 166, 162}, // interpbw[4..0] 389 {"pll_cpb", 161, 159}, // pll_cpb[2..0] 390 {"pll_cps", 158, 156}, // pll_cps[2..0] 391 {"pll_diffamp", 155, 152}, // pll_diffamp[3..0] 392 {"cfg_err_thr", 151, 150}, // cfg_err_thr 393 {"cfg_rx_idle_set", 149, 149}, // cfg_rx_idle_set 394 {"cfg_rx_idle_clr", 148, 148}, // cfg_rx_idle_clr 395 {"cfg_rx_idle_thr", 147, 144}, // cfg_rx_idle_thr[3..0] 396 {"cfg_com_thr", 143, 140}, // cfg_com_thr[3..0] 397 {"cfg_rx_offset", 139, 136}, // cfg_rx_offset[3..0] 398 {"cfg_skp_max", 135, 132}, // cfg_skp_max[3..0] 399 {"cfg_skp_min", 131, 128}, // cfg_skp_min[3..0] 400 {"cfg_fast_pwrup", 127, 127}, // cfg_fast_pwrup 401 {"Unused6", 126, 100}, // 0 402 {"detected_n", 99, 99}, // detected_n 403 {"detected_p", 98, 98}, // detected_p 404 {"dbg_res_rx", 97, 94}, // dbg_res_rx[3..0] 405 {"dbg_res_tx", 93, 90}, // dbg_res_tx[3..0] 406 {"cfg_tx_pol_set", 89, 89}, // cfg_tx_pol_set 407 {"cfg_tx_pol_clr", 88, 88}, // cfg_tx_pol_clr 408 {"cfg_rx_pol_set", 87, 87}, // cfg_rx_pol_set 409 {"cfg_rx_pol_clr", 86, 86}, // cfg_rx_pol_clr 410 {"cfg_rxd_set", 85, 85}, // cfg_rxd_set 411 {"cfg_rxd_clr", 84, 84}, // cfg_rxd_clr 412 {"cfg_rxd_wait", 83, 80}, // cfg_rxd_wait[3..0] 413 {"cfg_cdr_limit", 79, 79}, // cfg_cdr_limit 414 {"cfg_cdr_rotate", 78, 78}, // cfg_cdr_rotate 415 {"cfg_cdr_bw_ctl", 77, 76}, // cfg_cdr_bw_ctl[1..0] 416 {"cfg_cdr_trunc", 75, 74}, // cfg_cdr_trunc[1..0] 417 {"cfg_cdr_rqoffs", 73, 64}, // cfg_cdr_rqoffs[9..0] 418 {"cfg_cdr_inc2", 63, 58}, // cfg_cdr_inc2[5..0] 419 {"cfg_cdr_inc1", 57, 52}, // cfg_cdr_inc1[5..0] 420 {"fusopt_voter_sync", 51, 51}, // fusopt_voter_sync 421 {"rndt", 50, 50}, // rndt 422 {"hcya", 49, 49}, // hcya 423 {"hyst", 48, 48}, // hyst 424 {"idle_dac", 47, 45}, // idle_dac[2..0] 425 {"bg_ref_sel", 44, 44}, // bg_ref_sel 426 {"ic50dac", 43, 39}, // ic50dac[4..0] 427 {"ir50dac", 38, 34}, // ir50dac[4..0] 428 {"tx_rout_comp_bypass", 33, 33}, // tx_rout_comp_bypass 429 {"tx_rout_comp_value", 32, 29}, // tx_rout_comp_value[3..0] 430 {"tx_res_offset", 28, 25}, // tx_res_offset[3..0] 431 {"rx_rout_comp_bypass", 24, 24}, // rx_rout_comp_bypass 432 {"rx_rout_comp_value", 23, 20}, // rx_rout_comp_value[3..0] 433 {"rx_res_offset", 19, 16}, // rx_res_offset[3..0] 434 {"rx_cap_gen2", 15, 12}, // rx_cap_gen2[3..0] 435 {"rx_eq_gen2", 11, 8}, // rx_eq_gen2[3..0] 436 {"rx_cap_gen1", 7, 4}, // rx_cap_gen1[3..0] 437 {"rx_eq_gen1", 3, 0}, // rx_eq_gen1[3..0] 438 {NULL, -1, -1} 439}; 440 441