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