Back to home page

OSCL-LXR

 
 

    


0001 /***********************license start***************
0002  * Author: Cavium Networks
0003  *
0004  * Contact: support@caviumnetworks.com
0005  * This file is part of the OCTEON SDK
0006  *
0007  * Copyright (c) 2003-2012 Cavium Networks
0008  *
0009  * This file is free software; you can redistribute it and/or modify
0010  * it under the terms of the GNU General Public License, Version 2, as
0011  * published by the Free Software Foundation.
0012  *
0013  * This file is distributed in the hope that it will be useful, but
0014  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
0015  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
0016  * NONINFRINGEMENT.  See the GNU General Public License for more
0017  * details.
0018  *
0019  * You should have received a copy of the GNU General Public License
0020  * along with this file; if not, write to the Free Software
0021  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
0022  * or visit http://www.gnu.org/licenses/.
0023  *
0024  * This file may also be available under a different license from Cavium.
0025  * Contact Cavium Networks for more information
0026  ***********************license end**************************************/
0027 
0028 #ifndef __CVMX_PESCX_DEFS_H__
0029 #define __CVMX_PESCX_DEFS_H__
0030 
0031 #define CVMX_PESCX_BIST_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000018ull) + ((block_id) & 1) * 0x8000000ull)
0032 #define CVMX_PESCX_BIST_STATUS2(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000418ull) + ((block_id) & 1) * 0x8000000ull)
0033 #define CVMX_PESCX_CFG_RD(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000030ull) + ((block_id) & 1) * 0x8000000ull)
0034 #define CVMX_PESCX_CFG_WR(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000028ull) + ((block_id) & 1) * 0x8000000ull)
0035 #define CVMX_PESCX_CPL_LUT_VALID(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000098ull) + ((block_id) & 1) * 0x8000000ull)
0036 #define CVMX_PESCX_CTL_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000000ull) + ((block_id) & 1) * 0x8000000ull)
0037 #define CVMX_PESCX_CTL_STATUS2(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000400ull) + ((block_id) & 1) * 0x8000000ull)
0038 #define CVMX_PESCX_DBG_INFO(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000008ull) + ((block_id) & 1) * 0x8000000ull)
0039 #define CVMX_PESCX_DBG_INFO_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800C80000A0ull) + ((block_id) & 1) * 0x8000000ull)
0040 #define CVMX_PESCX_DIAG_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000020ull) + ((block_id) & 1) * 0x8000000ull)
0041 #define CVMX_PESCX_P2N_BAR0_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000080ull) + ((block_id) & 1) * 0x8000000ull)
0042 #define CVMX_PESCX_P2N_BAR1_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000088ull) + ((block_id) & 1) * 0x8000000ull)
0043 #define CVMX_PESCX_P2N_BAR2_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000090ull) + ((block_id) & 1) * 0x8000000ull)
0044 #define CVMX_PESCX_P2P_BARX_END(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000048ull) + (((offset) & 3) + ((block_id) & 1) * 0x800000ull) * 16)
0045 #define CVMX_PESCX_P2P_BARX_START(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000040ull) + (((offset) & 3) + ((block_id) & 1) * 0x800000ull) * 16)
0046 #define CVMX_PESCX_TLP_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000038ull) + ((block_id) & 1) * 0x8000000ull)
0047 
0048 union cvmx_pescx_bist_status {
0049     uint64_t u64;
0050     struct cvmx_pescx_bist_status_s {
0051 #ifdef __BIG_ENDIAN_BITFIELD
0052         uint64_t reserved_13_63:51;
0053         uint64_t rqdata5:1;
0054         uint64_t ctlp_or:1;
0055         uint64_t ntlp_or:1;
0056         uint64_t ptlp_or:1;
0057         uint64_t retry:1;
0058         uint64_t rqdata0:1;
0059         uint64_t rqdata1:1;
0060         uint64_t rqdata2:1;
0061         uint64_t rqdata3:1;
0062         uint64_t rqdata4:1;
0063         uint64_t rqhdr1:1;
0064         uint64_t rqhdr0:1;
0065         uint64_t sot:1;
0066 #else
0067         uint64_t sot:1;
0068         uint64_t rqhdr0:1;
0069         uint64_t rqhdr1:1;
0070         uint64_t rqdata4:1;
0071         uint64_t rqdata3:1;
0072         uint64_t rqdata2:1;
0073         uint64_t rqdata1:1;
0074         uint64_t rqdata0:1;
0075         uint64_t retry:1;
0076         uint64_t ptlp_or:1;
0077         uint64_t ntlp_or:1;
0078         uint64_t ctlp_or:1;
0079         uint64_t rqdata5:1;
0080         uint64_t reserved_13_63:51;
0081 #endif
0082     } s;
0083     struct cvmx_pescx_bist_status_cn52xxp1 {
0084 #ifdef __BIG_ENDIAN_BITFIELD
0085         uint64_t reserved_12_63:52;
0086         uint64_t ctlp_or:1;
0087         uint64_t ntlp_or:1;
0088         uint64_t ptlp_or:1;
0089         uint64_t retry:1;
0090         uint64_t rqdata0:1;
0091         uint64_t rqdata1:1;
0092         uint64_t rqdata2:1;
0093         uint64_t rqdata3:1;
0094         uint64_t rqdata4:1;
0095         uint64_t rqhdr1:1;
0096         uint64_t rqhdr0:1;
0097         uint64_t sot:1;
0098 #else
0099         uint64_t sot:1;
0100         uint64_t rqhdr0:1;
0101         uint64_t rqhdr1:1;
0102         uint64_t rqdata4:1;
0103         uint64_t rqdata3:1;
0104         uint64_t rqdata2:1;
0105         uint64_t rqdata1:1;
0106         uint64_t rqdata0:1;
0107         uint64_t retry:1;
0108         uint64_t ptlp_or:1;
0109         uint64_t ntlp_or:1;
0110         uint64_t ctlp_or:1;
0111         uint64_t reserved_12_63:52;
0112 #endif
0113     } cn52xxp1;
0114 };
0115 
0116 union cvmx_pescx_bist_status2 {
0117     uint64_t u64;
0118     struct cvmx_pescx_bist_status2_s {
0119 #ifdef __BIG_ENDIAN_BITFIELD
0120         uint64_t reserved_14_63:50;
0121         uint64_t cto_p2e:1;
0122         uint64_t e2p_cpl:1;
0123         uint64_t e2p_n:1;
0124         uint64_t e2p_p:1;
0125         uint64_t e2p_rsl:1;
0126         uint64_t dbg_p2e:1;
0127         uint64_t peai_p2e:1;
0128         uint64_t rsl_p2e:1;
0129         uint64_t pef_tpf1:1;
0130         uint64_t pef_tpf0:1;
0131         uint64_t pef_tnf:1;
0132         uint64_t pef_tcf1:1;
0133         uint64_t pef_tc0:1;
0134         uint64_t ppf:1;
0135 #else
0136         uint64_t ppf:1;
0137         uint64_t pef_tc0:1;
0138         uint64_t pef_tcf1:1;
0139         uint64_t pef_tnf:1;
0140         uint64_t pef_tpf0:1;
0141         uint64_t pef_tpf1:1;
0142         uint64_t rsl_p2e:1;
0143         uint64_t peai_p2e:1;
0144         uint64_t dbg_p2e:1;
0145         uint64_t e2p_rsl:1;
0146         uint64_t e2p_p:1;
0147         uint64_t e2p_n:1;
0148         uint64_t e2p_cpl:1;
0149         uint64_t cto_p2e:1;
0150         uint64_t reserved_14_63:50;
0151 #endif
0152     } s;
0153 };
0154 
0155 union cvmx_pescx_cfg_rd {
0156     uint64_t u64;
0157     struct cvmx_pescx_cfg_rd_s {
0158 #ifdef __BIG_ENDIAN_BITFIELD
0159         uint64_t data:32;
0160         uint64_t addr:32;
0161 #else
0162         uint64_t addr:32;
0163         uint64_t data:32;
0164 #endif
0165     } s;
0166 };
0167 
0168 union cvmx_pescx_cfg_wr {
0169     uint64_t u64;
0170     struct cvmx_pescx_cfg_wr_s {
0171 #ifdef __BIG_ENDIAN_BITFIELD
0172         uint64_t data:32;
0173         uint64_t addr:32;
0174 #else
0175         uint64_t addr:32;
0176         uint64_t data:32;
0177 #endif
0178     } s;
0179 };
0180 
0181 union cvmx_pescx_cpl_lut_valid {
0182     uint64_t u64;
0183     struct cvmx_pescx_cpl_lut_valid_s {
0184 #ifdef __BIG_ENDIAN_BITFIELD
0185         uint64_t reserved_32_63:32;
0186         uint64_t tag:32;
0187 #else
0188         uint64_t tag:32;
0189         uint64_t reserved_32_63:32;
0190 #endif
0191     } s;
0192 };
0193 
0194 union cvmx_pescx_ctl_status {
0195     uint64_t u64;
0196     struct cvmx_pescx_ctl_status_s {
0197 #ifdef __BIG_ENDIAN_BITFIELD
0198         uint64_t reserved_28_63:36;
0199         uint64_t dnum:5;
0200         uint64_t pbus:8;
0201         uint64_t qlm_cfg:2;
0202         uint64_t lane_swp:1;
0203         uint64_t pm_xtoff:1;
0204         uint64_t pm_xpme:1;
0205         uint64_t ob_p_cmd:1;
0206         uint64_t reserved_7_8:2;
0207         uint64_t nf_ecrc:1;
0208         uint64_t dly_one:1;
0209         uint64_t lnk_enb:1;
0210         uint64_t ro_ctlp:1;
0211         uint64_t reserved_2_2:1;
0212         uint64_t inv_ecrc:1;
0213         uint64_t inv_lcrc:1;
0214 #else
0215         uint64_t inv_lcrc:1;
0216         uint64_t inv_ecrc:1;
0217         uint64_t reserved_2_2:1;
0218         uint64_t ro_ctlp:1;
0219         uint64_t lnk_enb:1;
0220         uint64_t dly_one:1;
0221         uint64_t nf_ecrc:1;
0222         uint64_t reserved_7_8:2;
0223         uint64_t ob_p_cmd:1;
0224         uint64_t pm_xpme:1;
0225         uint64_t pm_xtoff:1;
0226         uint64_t lane_swp:1;
0227         uint64_t qlm_cfg:2;
0228         uint64_t pbus:8;
0229         uint64_t dnum:5;
0230         uint64_t reserved_28_63:36;
0231 #endif
0232     } s;
0233     struct cvmx_pescx_ctl_status_cn56xx {
0234 #ifdef __BIG_ENDIAN_BITFIELD
0235         uint64_t reserved_28_63:36;
0236         uint64_t dnum:5;
0237         uint64_t pbus:8;
0238         uint64_t qlm_cfg:2;
0239         uint64_t reserved_12_12:1;
0240         uint64_t pm_xtoff:1;
0241         uint64_t pm_xpme:1;
0242         uint64_t ob_p_cmd:1;
0243         uint64_t reserved_7_8:2;
0244         uint64_t nf_ecrc:1;
0245         uint64_t dly_one:1;
0246         uint64_t lnk_enb:1;
0247         uint64_t ro_ctlp:1;
0248         uint64_t reserved_2_2:1;
0249         uint64_t inv_ecrc:1;
0250         uint64_t inv_lcrc:1;
0251 #else
0252         uint64_t inv_lcrc:1;
0253         uint64_t inv_ecrc:1;
0254         uint64_t reserved_2_2:1;
0255         uint64_t ro_ctlp:1;
0256         uint64_t lnk_enb:1;
0257         uint64_t dly_one:1;
0258         uint64_t nf_ecrc:1;
0259         uint64_t reserved_7_8:2;
0260         uint64_t ob_p_cmd:1;
0261         uint64_t pm_xpme:1;
0262         uint64_t pm_xtoff:1;
0263         uint64_t reserved_12_12:1;
0264         uint64_t qlm_cfg:2;
0265         uint64_t pbus:8;
0266         uint64_t dnum:5;
0267         uint64_t reserved_28_63:36;
0268 #endif
0269     } cn56xx;
0270 };
0271 
0272 union cvmx_pescx_ctl_status2 {
0273     uint64_t u64;
0274     struct cvmx_pescx_ctl_status2_s {
0275 #ifdef __BIG_ENDIAN_BITFIELD
0276         uint64_t reserved_2_63:62;
0277         uint64_t pclk_run:1;
0278         uint64_t pcierst:1;
0279 #else
0280         uint64_t pcierst:1;
0281         uint64_t pclk_run:1;
0282         uint64_t reserved_2_63:62;
0283 #endif
0284     } s;
0285     struct cvmx_pescx_ctl_status2_cn52xxp1 {
0286 #ifdef __BIG_ENDIAN_BITFIELD
0287         uint64_t reserved_1_63:63;
0288         uint64_t pcierst:1;
0289 #else
0290         uint64_t pcierst:1;
0291         uint64_t reserved_1_63:63;
0292 #endif
0293     } cn52xxp1;
0294 };
0295 
0296 union cvmx_pescx_dbg_info {
0297     uint64_t u64;
0298     struct cvmx_pescx_dbg_info_s {
0299 #ifdef __BIG_ENDIAN_BITFIELD
0300         uint64_t reserved_31_63:33;
0301         uint64_t ecrc_e:1;
0302         uint64_t rawwpp:1;
0303         uint64_t racpp:1;
0304         uint64_t ramtlp:1;
0305         uint64_t rarwdns:1;
0306         uint64_t caar:1;
0307         uint64_t racca:1;
0308         uint64_t racur:1;
0309         uint64_t rauc:1;
0310         uint64_t rqo:1;
0311         uint64_t fcuv:1;
0312         uint64_t rpe:1;
0313         uint64_t fcpvwt:1;
0314         uint64_t dpeoosd:1;
0315         uint64_t rtwdle:1;
0316         uint64_t rdwdle:1;
0317         uint64_t mre:1;
0318         uint64_t rte:1;
0319         uint64_t acto:1;
0320         uint64_t rvdm:1;
0321         uint64_t rumep:1;
0322         uint64_t rptamrc:1;
0323         uint64_t rpmerc:1;
0324         uint64_t rfemrc:1;
0325         uint64_t rnfemrc:1;
0326         uint64_t rcemrc:1;
0327         uint64_t rpoison:1;
0328         uint64_t recrce:1;
0329         uint64_t rtlplle:1;
0330         uint64_t rtlpmal:1;
0331         uint64_t spoison:1;
0332 #else
0333         uint64_t spoison:1;
0334         uint64_t rtlpmal:1;
0335         uint64_t rtlplle:1;
0336         uint64_t recrce:1;
0337         uint64_t rpoison:1;
0338         uint64_t rcemrc:1;
0339         uint64_t rnfemrc:1;
0340         uint64_t rfemrc:1;
0341         uint64_t rpmerc:1;
0342         uint64_t rptamrc:1;
0343         uint64_t rumep:1;
0344         uint64_t rvdm:1;
0345         uint64_t acto:1;
0346         uint64_t rte:1;
0347         uint64_t mre:1;
0348         uint64_t rdwdle:1;
0349         uint64_t rtwdle:1;
0350         uint64_t dpeoosd:1;
0351         uint64_t fcpvwt:1;
0352         uint64_t rpe:1;
0353         uint64_t fcuv:1;
0354         uint64_t rqo:1;
0355         uint64_t rauc:1;
0356         uint64_t racur:1;
0357         uint64_t racca:1;
0358         uint64_t caar:1;
0359         uint64_t rarwdns:1;
0360         uint64_t ramtlp:1;
0361         uint64_t racpp:1;
0362         uint64_t rawwpp:1;
0363         uint64_t ecrc_e:1;
0364         uint64_t reserved_31_63:33;
0365 #endif
0366     } s;
0367 };
0368 
0369 union cvmx_pescx_dbg_info_en {
0370     uint64_t u64;
0371     struct cvmx_pescx_dbg_info_en_s {
0372 #ifdef __BIG_ENDIAN_BITFIELD
0373         uint64_t reserved_31_63:33;
0374         uint64_t ecrc_e:1;
0375         uint64_t rawwpp:1;
0376         uint64_t racpp:1;
0377         uint64_t ramtlp:1;
0378         uint64_t rarwdns:1;
0379         uint64_t caar:1;
0380         uint64_t racca:1;
0381         uint64_t racur:1;
0382         uint64_t rauc:1;
0383         uint64_t rqo:1;
0384         uint64_t fcuv:1;
0385         uint64_t rpe:1;
0386         uint64_t fcpvwt:1;
0387         uint64_t dpeoosd:1;
0388         uint64_t rtwdle:1;
0389         uint64_t rdwdle:1;
0390         uint64_t mre:1;
0391         uint64_t rte:1;
0392         uint64_t acto:1;
0393         uint64_t rvdm:1;
0394         uint64_t rumep:1;
0395         uint64_t rptamrc:1;
0396         uint64_t rpmerc:1;
0397         uint64_t rfemrc:1;
0398         uint64_t rnfemrc:1;
0399         uint64_t rcemrc:1;
0400         uint64_t rpoison:1;
0401         uint64_t recrce:1;
0402         uint64_t rtlplle:1;
0403         uint64_t rtlpmal:1;
0404         uint64_t spoison:1;
0405 #else
0406         uint64_t spoison:1;
0407         uint64_t rtlpmal:1;
0408         uint64_t rtlplle:1;
0409         uint64_t recrce:1;
0410         uint64_t rpoison:1;
0411         uint64_t rcemrc:1;
0412         uint64_t rnfemrc:1;
0413         uint64_t rfemrc:1;
0414         uint64_t rpmerc:1;
0415         uint64_t rptamrc:1;
0416         uint64_t rumep:1;
0417         uint64_t rvdm:1;
0418         uint64_t acto:1;
0419         uint64_t rte:1;
0420         uint64_t mre:1;
0421         uint64_t rdwdle:1;
0422         uint64_t rtwdle:1;
0423         uint64_t dpeoosd:1;
0424         uint64_t fcpvwt:1;
0425         uint64_t rpe:1;
0426         uint64_t fcuv:1;
0427         uint64_t rqo:1;
0428         uint64_t rauc:1;
0429         uint64_t racur:1;
0430         uint64_t racca:1;
0431         uint64_t caar:1;
0432         uint64_t rarwdns:1;
0433         uint64_t ramtlp:1;
0434         uint64_t racpp:1;
0435         uint64_t rawwpp:1;
0436         uint64_t ecrc_e:1;
0437         uint64_t reserved_31_63:33;
0438 #endif
0439     } s;
0440 };
0441 
0442 union cvmx_pescx_diag_status {
0443     uint64_t u64;
0444     struct cvmx_pescx_diag_status_s {
0445 #ifdef __BIG_ENDIAN_BITFIELD
0446         uint64_t reserved_4_63:60;
0447         uint64_t pm_dst:1;
0448         uint64_t pm_stat:1;
0449         uint64_t pm_en:1;
0450         uint64_t aux_en:1;
0451 #else
0452         uint64_t aux_en:1;
0453         uint64_t pm_en:1;
0454         uint64_t pm_stat:1;
0455         uint64_t pm_dst:1;
0456         uint64_t reserved_4_63:60;
0457 #endif
0458     } s;
0459 };
0460 
0461 union cvmx_pescx_p2n_bar0_start {
0462     uint64_t u64;
0463     struct cvmx_pescx_p2n_bar0_start_s {
0464 #ifdef __BIG_ENDIAN_BITFIELD
0465         uint64_t addr:50;
0466         uint64_t reserved_0_13:14;
0467 #else
0468         uint64_t reserved_0_13:14;
0469         uint64_t addr:50;
0470 #endif
0471     } s;
0472 };
0473 
0474 union cvmx_pescx_p2n_bar1_start {
0475     uint64_t u64;
0476     struct cvmx_pescx_p2n_bar1_start_s {
0477 #ifdef __BIG_ENDIAN_BITFIELD
0478         uint64_t addr:38;
0479         uint64_t reserved_0_25:26;
0480 #else
0481         uint64_t reserved_0_25:26;
0482         uint64_t addr:38;
0483 #endif
0484     } s;
0485 };
0486 
0487 union cvmx_pescx_p2n_bar2_start {
0488     uint64_t u64;
0489     struct cvmx_pescx_p2n_bar2_start_s {
0490 #ifdef __BIG_ENDIAN_BITFIELD
0491         uint64_t addr:25;
0492         uint64_t reserved_0_38:39;
0493 #else
0494         uint64_t reserved_0_38:39;
0495         uint64_t addr:25;
0496 #endif
0497     } s;
0498 };
0499 
0500 union cvmx_pescx_p2p_barx_end {
0501     uint64_t u64;
0502     struct cvmx_pescx_p2p_barx_end_s {
0503 #ifdef __BIG_ENDIAN_BITFIELD
0504         uint64_t addr:52;
0505         uint64_t reserved_0_11:12;
0506 #else
0507         uint64_t reserved_0_11:12;
0508         uint64_t addr:52;
0509 #endif
0510     } s;
0511 };
0512 
0513 union cvmx_pescx_p2p_barx_start {
0514     uint64_t u64;
0515     struct cvmx_pescx_p2p_barx_start_s {
0516 #ifdef __BIG_ENDIAN_BITFIELD
0517         uint64_t addr:52;
0518         uint64_t reserved_0_11:12;
0519 #else
0520         uint64_t reserved_0_11:12;
0521         uint64_t addr:52;
0522 #endif
0523     } s;
0524 };
0525 
0526 union cvmx_pescx_tlp_credits {
0527     uint64_t u64;
0528     struct cvmx_pescx_tlp_credits_s {
0529 #ifdef __BIG_ENDIAN_BITFIELD
0530         uint64_t reserved_0_63:64;
0531 #else
0532         uint64_t reserved_0_63:64;
0533 #endif
0534     } s;
0535     struct cvmx_pescx_tlp_credits_cn52xx {
0536 #ifdef __BIG_ENDIAN_BITFIELD
0537         uint64_t reserved_56_63:8;
0538         uint64_t peai_ppf:8;
0539         uint64_t pesc_cpl:8;
0540         uint64_t pesc_np:8;
0541         uint64_t pesc_p:8;
0542         uint64_t npei_cpl:8;
0543         uint64_t npei_np:8;
0544         uint64_t npei_p:8;
0545 #else
0546         uint64_t npei_p:8;
0547         uint64_t npei_np:8;
0548         uint64_t npei_cpl:8;
0549         uint64_t pesc_p:8;
0550         uint64_t pesc_np:8;
0551         uint64_t pesc_cpl:8;
0552         uint64_t peai_ppf:8;
0553         uint64_t reserved_56_63:8;
0554 #endif
0555     } cn52xx;
0556     struct cvmx_pescx_tlp_credits_cn52xxp1 {
0557 #ifdef __BIG_ENDIAN_BITFIELD
0558         uint64_t reserved_38_63:26;
0559         uint64_t peai_ppf:8;
0560         uint64_t pesc_cpl:5;
0561         uint64_t pesc_np:5;
0562         uint64_t pesc_p:5;
0563         uint64_t npei_cpl:5;
0564         uint64_t npei_np:5;
0565         uint64_t npei_p:5;
0566 #else
0567         uint64_t npei_p:5;
0568         uint64_t npei_np:5;
0569         uint64_t npei_cpl:5;
0570         uint64_t pesc_p:5;
0571         uint64_t pesc_np:5;
0572         uint64_t pesc_cpl:5;
0573         uint64_t peai_ppf:8;
0574         uint64_t reserved_38_63:26;
0575 #endif
0576     } cn52xxp1;
0577 };
0578 
0579 #endif