Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/net/ethernet/mscc/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 25 kB image not shown  

Quelle  vsc7514_regs.c   Sprache: C

 
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Microsemi Ocelot Switch driver
 *
 * Copyright (c) 2017 Microsemi Corporation
 * Copyright (c) 2021 Innovative Advantage
 */

#include <soc/mscc/ocelot_vcap.h>
#include <soc/mscc/vsc7514_regs.h>
#include "ocelot.h"

const struct reg_field vsc7514_regfields[REGFIELD_MAX] = {
 [ANA_ADVLEARN_VLAN_CHK] = REG_FIELD(ANA_ADVLEARN, 11, 11),
 [ANA_ADVLEARN_LEARN_MIRROR] = REG_FIELD(ANA_ADVLEARN, 0, 10),
 [ANA_ANEVENTS_MSTI_DROP] = REG_FIELD(ANA_ANEVENTS, 27, 27),
 [ANA_ANEVENTS_ACLKILL] = REG_FIELD(ANA_ANEVENTS, 26, 26),
 [ANA_ANEVENTS_ACLUSED] = REG_FIELD(ANA_ANEVENTS, 25, 25),
 [ANA_ANEVENTS_AUTOAGE] = REG_FIELD(ANA_ANEVENTS, 24, 24),
 [ANA_ANEVENTS_VS2TTL1] = REG_FIELD(ANA_ANEVENTS, 23, 23),
 [ANA_ANEVENTS_STORM_DROP] = REG_FIELD(ANA_ANEVENTS, 22, 22),
 [ANA_ANEVENTS_LEARN_DROP] = REG_FIELD(ANA_ANEVENTS, 21, 21),
 [ANA_ANEVENTS_AGED_ENTRY] = REG_FIELD(ANA_ANEVENTS, 20, 20),
 [ANA_ANEVENTS_CPU_LEARN_FAILED] = REG_FIELD(ANA_ANEVENTS, 19, 19),
 [ANA_ANEVENTS_AUTO_LEARN_FAILED] = REG_FIELD(ANA_ANEVENTS, 18, 18),
 [ANA_ANEVENTS_LEARN_REMOVE] = REG_FIELD(ANA_ANEVENTS, 17, 17),
 [ANA_ANEVENTS_AUTO_LEARNED] = REG_FIELD(ANA_ANEVENTS, 16, 16),
 [ANA_ANEVENTS_AUTO_MOVED] = REG_FIELD(ANA_ANEVENTS, 15, 15),
 [ANA_ANEVENTS_DROPPED] = REG_FIELD(ANA_ANEVENTS, 14, 14),
 [ANA_ANEVENTS_CLASSIFIED_DROP] = REG_FIELD(ANA_ANEVENTS, 13, 13),
 [ANA_ANEVENTS_CLASSIFIED_COPY] = REG_FIELD(ANA_ANEVENTS, 12, 12),
 [ANA_ANEVENTS_VLAN_DISCARD] = REG_FIELD(ANA_ANEVENTS, 11, 11),
 [ANA_ANEVENTS_FWD_DISCARD] = REG_FIELD(ANA_ANEVENTS, 10, 10),
 [ANA_ANEVENTS_MULTICAST_FLOOD] = REG_FIELD(ANA_ANEVENTS, 9, 9),
 [ANA_ANEVENTS_UNICAST_FLOOD] = REG_FIELD(ANA_ANEVENTS, 8, 8),
 [ANA_ANEVENTS_DEST_KNOWN] = REG_FIELD(ANA_ANEVENTS, 7, 7),
 [ANA_ANEVENTS_BUCKET3_MATCH] = REG_FIELD(ANA_ANEVENTS, 6, 6),
 [ANA_ANEVENTS_BUCKET2_MATCH] = REG_FIELD(ANA_ANEVENTS, 5, 5),
 [ANA_ANEVENTS_BUCKET1_MATCH] = REG_FIELD(ANA_ANEVENTS, 4, 4),
 [ANA_ANEVENTS_BUCKET0_MATCH] = REG_FIELD(ANA_ANEVENTS, 3, 3),
 [ANA_ANEVENTS_CPU_OPERATION] = REG_FIELD(ANA_ANEVENTS, 2, 2),
 [ANA_ANEVENTS_DMAC_LOOKUP] = REG_FIELD(ANA_ANEVENTS, 1, 1),
 [ANA_ANEVENTS_SMAC_LOOKUP] = REG_FIELD(ANA_ANEVENTS, 0, 0),
 [ANA_TABLES_MACACCESS_B_DOM] = REG_FIELD(ANA_TABLES_MACACCESS, 18, 18),
 [ANA_TABLES_MACTINDX_BUCKET] = REG_FIELD(ANA_TABLES_MACTINDX, 10, 11),
 [ANA_TABLES_MACTINDX_M_INDEX] = REG_FIELD(ANA_TABLES_MACTINDX, 0, 9),
 [QSYS_TIMED_FRAME_ENTRY_TFRM_VLD] = REG_FIELD(QSYS_TIMED_FRAME_ENTRY, 20, 20),
 [QSYS_TIMED_FRAME_ENTRY_TFRM_FP] = REG_FIELD(QSYS_TIMED_FRAME_ENTRY, 8, 19),
 [QSYS_TIMED_FRAME_ENTRY_TFRM_PORTNO] = REG_FIELD(QSYS_TIMED_FRAME_ENTRY, 4, 7),
 [QSYS_TIMED_FRAME_ENTRY_TFRM_TM_SEL] = REG_FIELD(QSYS_TIMED_FRAME_ENTRY, 1, 3),
 [QSYS_TIMED_FRAME_ENTRY_TFRM_TM_T] = REG_FIELD(QSYS_TIMED_FRAME_ENTRY, 0, 0),
 [SYS_RESET_CFG_CORE_ENA] = REG_FIELD(SYS_RESET_CFG, 2, 2),
 [SYS_RESET_CFG_MEM_ENA] = REG_FIELD(SYS_RESET_CFG, 1, 1),
 [SYS_RESET_CFG_MEM_INIT] = REG_FIELD(SYS_RESET_CFG, 0, 0),
 /* Replicated per number of ports (12), register size 4 per port */
 [QSYS_SWITCH_PORT_MODE_PORT_ENA] = REG_FIELD_ID(QSYS_SWITCH_PORT_MODE, 14, 14, 12, 4),
 [QSYS_SWITCH_PORT_MODE_SCH_NEXT_CFG] = REG_FIELD_ID(QSYS_SWITCH_PORT_MODE, 11, 13, 12, 4),
 [QSYS_SWITCH_PORT_MODE_YEL_RSRVD] = REG_FIELD_ID(QSYS_SWITCH_PORT_MODE, 10, 10, 12, 4),
 [QSYS_SWITCH_PORT_MODE_INGRESS_DROP_MODE] = REG_FIELD_ID(QSYS_SWITCH_PORT_MODE, 9, 9, 12, 4),
 [QSYS_SWITCH_PORT_MODE_TX_PFC_ENA] = REG_FIELD_ID(QSYS_SWITCH_PORT_MODE, 1, 8, 12, 4),
 [QSYS_SWITCH_PORT_MODE_TX_PFC_MODE] = REG_FIELD_ID(QSYS_SWITCH_PORT_MODE, 0, 0, 12, 4),
 [SYS_PORT_MODE_DATA_WO_TS] = REG_FIELD_ID(SYS_PORT_MODE, 5, 6, 12, 4),
 [SYS_PORT_MODE_INCL_INJ_HDR] = REG_FIELD_ID(SYS_PORT_MODE, 3, 4, 12, 4),
 [SYS_PORT_MODE_INCL_XTR_HDR] = REG_FIELD_ID(SYS_PORT_MODE, 1, 2, 12, 4),
 [SYS_PORT_MODE_INCL_HDR_ERR] = REG_FIELD_ID(SYS_PORT_MODE, 0, 0, 12, 4),
 [SYS_PAUSE_CFG_PAUSE_START] = REG_FIELD_ID(SYS_PAUSE_CFG, 10, 18, 12, 4),
 [SYS_PAUSE_CFG_PAUSE_STOP] = REG_FIELD_ID(SYS_PAUSE_CFG, 1, 9, 12, 4),
 [SYS_PAUSE_CFG_PAUSE_ENA] = REG_FIELD_ID(SYS_PAUSE_CFG, 0, 1, 12, 4),
};
EXPORT_SYMBOL(vsc7514_regfields);

static const u32 vsc7514_ana_regmap[] = {
 REG(ANA_ADVLEARN,    0x009000),
 REG(ANA_VLANMASK,    0x009004),
 REG(ANA_PORT_B_DOMAIN,    0x009008),
 REG(ANA_ANAGEFIL,    0x00900c),
 REG(ANA_ANEVENTS,    0x009010),
 REG(ANA_STORMLIMIT_BURST,   0x009014),
 REG(ANA_STORMLIMIT_CFG,    0x009018),
 REG(ANA_ISOLATED_PORTS,    0x009028),
 REG(ANA_COMMUNITY_PORTS,   0x00902c),
 REG(ANA_AUTOAGE,    0x009030),
 REG(ANA_MACTOPTIONS,    0x009034),
 REG(ANA_LEARNDISC,    0x009038),
 REG(ANA_AGENCTRL,    0x00903c),
 REG(ANA_MIRRORPORTS,    0x009040),
 REG(ANA_EMIRRORPORTS,    0x009044),
 REG(ANA_FLOODING,    0x009048),
 REG(ANA_FLOODING_IPMC,    0x00904c),
 REG(ANA_SFLOW_CFG,    0x009050),
 REG(ANA_PORT_MODE,    0x009080),
 REG(ANA_PGID_PGID,    0x008c00),
 REG(ANA_TABLES_ANMOVED,    0x008b30),
 REG(ANA_TABLES_MACHDATA,   0x008b34),
 REG(ANA_TABLES_MACLDATA,   0x008b38),
 REG(ANA_TABLES_MACACCESS,   0x008b3c),
 REG(ANA_TABLES_MACTINDX,   0x008b40),
 REG(ANA_TABLES_VLANACCESS,   0x008b44),
 REG(ANA_TABLES_VLANTIDX,   0x008b48),
 REG(ANA_TABLES_ISDXACCESS,   0x008b4c),
 REG(ANA_TABLES_ISDXTIDX,   0x008b50),
 REG(ANA_TABLES_ENTRYLIM,   0x008b00),
 REG(ANA_TABLES_PTP_ID_HIGH,   0x008b54),
 REG(ANA_TABLES_PTP_ID_LOW,   0x008b58),
 REG(ANA_MSTI_STATE,    0x008e00),
 REG(ANA_PORT_VLAN_CFG,    0x007000),
 REG(ANA_PORT_DROP_CFG,    0x007004),
 REG(ANA_PORT_QOS_CFG,    0x007008),
 REG(ANA_PORT_VCAP_CFG,    0x00700c),
 REG(ANA_PORT_VCAP_S1_KEY_CFG,   0x007010),
 REG(ANA_PORT_VCAP_S2_CFG,   0x00701c),
 REG(ANA_PORT_PCP_DEI_MAP,   0x007020),
 REG(ANA_PORT_CPU_FWD_CFG,   0x007060),
 REG(ANA_PORT_CPU_FWD_BPDU_CFG,   0x007064),
 REG(ANA_PORT_CPU_FWD_GARP_CFG,   0x007068),
 REG(ANA_PORT_CPU_FWD_CCM_CFG,   0x00706c),
 REG(ANA_PORT_PORT_CFG,    0x007070),
 REG(ANA_PORT_POL_CFG,    0x007074),
 REG(ANA_PORT_PTP_CFG,    0x007078),
 REG(ANA_PORT_PTP_DLY1_CFG,   0x00707c),
 REG(ANA_OAM_UPM_LM_CNT,    0x007c00),
 REG(ANA_PORT_PTP_DLY2_CFG,   0x007080),
 REG(ANA_PFC_PFC_CFG,    0x008800),
 REG(ANA_PFC_PFC_TIMER,    0x008804),
 REG(ANA_IPT_OAM_MEP_CFG,   0x008000),
 REG(ANA_IPT_IPT,    0x008004),
 REG(ANA_PPT_PPT,    0x008ac0),
 REG(ANA_FID_MAP_FID_MAP,   0x000000),
 REG(ANA_AGGR_CFG,    0x0090b4),
 REG(ANA_CPUQ_CFG,    0x0090b8),
 REG(ANA_CPUQ_CFG2,    0x0090bc),
 REG(ANA_CPUQ_8021_CFG,    0x0090c0),
 REG(ANA_DSCP_CFG,    0x009100),
 REG(ANA_DSCP_REWR_CFG,    0x009200),
 REG(ANA_VCAP_RNG_TYPE_CFG,   0x009240),
 REG(ANA_VCAP_RNG_VAL_CFG,   0x009260),
 REG(ANA_VRAP_CFG,    0x009280),
 REG(ANA_VRAP_HDR_DATA,    0x009284),
 REG(ANA_VRAP_HDR_MASK,    0x009288),
 REG(ANA_DISCARD_CFG,    0x00928c),
 REG(ANA_FID_CFG,    0x009290),
 REG(ANA_POL_PIR_CFG,    0x004000),
 REG(ANA_POL_CIR_CFG,    0x004004),
 REG(ANA_POL_MODE_CFG,    0x004008),
 REG(ANA_POL_PIR_STATE,    0x00400c),
 REG(ANA_POL_CIR_STATE,    0x004010),
 REG(ANA_POL_STATE,    0x004014),
 REG(ANA_POL_FLOWC,    0x008b80),
 REG(ANA_POL_HYST,    0x008bec),
 REG(ANA_POL_MISC_CFG,    0x008bf0),
};

static const u32 vsc7514_qs_regmap[] = {
 REG(QS_XTR_GRP_CFG,    0x000000),
 REG(QS_XTR_RD,     0x000008),
 REG(QS_XTR_FRM_PRUNING,    0x000010),
 REG(QS_XTR_FLUSH,    0x000018),
 REG(QS_XTR_DATA_PRESENT,   0x00001c),
 REG(QS_XTR_CFG,     0x000020),
 REG(QS_INJ_GRP_CFG,    0x000024),
 REG(QS_INJ_WR,     0x00002c),
 REG(QS_INJ_CTRL,    0x000034),
 REG(QS_INJ_STATUS,    0x00003c),
 REG(QS_INJ_ERR,     0x000040),
 REG(QS_INH_DBG,     0x000048),
};

static const u32 vsc7514_qsys_regmap[] = {
 REG(QSYS_PORT_MODE,    0x011200),
 REG(QSYS_SWITCH_PORT_MODE,   0x011234),
 REG(QSYS_STAT_CNT_CFG,    0x011264),
 REG(QSYS_EEE_CFG,    0x011268),
 REG(QSYS_EEE_THRES,    0x011294),
 REG(QSYS_IGR_NO_SHARING,   0x011298),
 REG(QSYS_EGR_NO_SHARING,   0x01129c),
 REG(QSYS_SW_STATUS,    0x0112a0),
 REG(QSYS_EXT_CPU_CFG,    0x0112d0),
 REG(QSYS_PAD_CFG,    0x0112d4),
 REG(QSYS_CPU_GROUP_MAP,    0x0112d8),
 REG(QSYS_QMAP,     0x0112dc),
 REG(QSYS_ISDX_SGRP,    0x011400),
 REG(QSYS_TIMED_FRAME_ENTRY,   0x014000),
 REG(QSYS_TFRM_MISC,    0x011310),
 REG(QSYS_TFRM_PORT_DLY,    0x011314),
 REG(QSYS_TFRM_TIMER_CFG_1,   0x011318),
 REG(QSYS_TFRM_TIMER_CFG_2,   0x01131c),
 REG(QSYS_TFRM_TIMER_CFG_3,   0x011320),
 REG(QSYS_TFRM_TIMER_CFG_4,   0x011324),
 REG(QSYS_TFRM_TIMER_CFG_5,   0x011328),
 REG(QSYS_TFRM_TIMER_CFG_6,   0x01132c),
 REG(QSYS_TFRM_TIMER_CFG_7,   0x011330),
 REG(QSYS_TFRM_TIMER_CFG_8,   0x011334),
 REG(QSYS_RED_PROFILE,    0x011338),
 REG(QSYS_RES_QOS_MODE,    0x011378),
 REG(QSYS_RES_CFG,    0x012000),
 REG(QSYS_RES_STAT,    0x012004),
 REG(QSYS_EGR_DROP_MODE,    0x01137c),
 REG(QSYS_EQ_CTRL,    0x011380),
 REG(QSYS_EVENTS_CORE,    0x011384),
 REG(QSYS_CIR_CFG,    0x000000),
 REG(QSYS_EIR_CFG,    0x000004),
 REG(QSYS_SE_CFG,    0x000008),
 REG(QSYS_SE_DWRR_CFG,    0x00000c),
 REG(QSYS_SE_CONNECT,    0x00003c),
 REG(QSYS_SE_DLB_SENSE,    0x000040),
 REG(QSYS_CIR_STATE,    0x000044),
 REG(QSYS_EIR_STATE,    0x000048),
 REG(QSYS_SE_STATE,    0x00004c),
 REG(QSYS_HSCH_MISC_CFG,    0x011388),
};

static const u32 vsc7514_rew_regmap[] = {
 REG(REW_PORT_VLAN_CFG,    0x000000),
 REG(REW_TAG_CFG,    0x000004),
 REG(REW_PORT_CFG,    0x000008),
 REG(REW_DSCP_CFG,    0x00000c),
 REG(REW_PCP_DEI_QOS_MAP_CFG,   0x000010),
 REG(REW_PTP_CFG,    0x000050),
 REG(REW_PTP_DLY1_CFG,    0x000054),
 REG(REW_DSCP_REMAP_DP1_CFG,   0x000690),
 REG(REW_DSCP_REMAP_CFG,    0x000790),
 REG(REW_STAT_CFG,    0x000890),
 REG(REW_PPT,     0x000680),
};

static const u32 vsc7514_sys_regmap[] = {
 REG(SYS_COUNT_RX_OCTETS,   0x000000),
 REG(SYS_COUNT_RX_UNICAST,   0x000004),
 REG(SYS_COUNT_RX_MULTICAST,   0x000008),
 REG(SYS_COUNT_RX_BROADCAST,   0x00000c),
 REG(SYS_COUNT_RX_SHORTS,   0x000010),
 REG(SYS_COUNT_RX_FRAGMENTS,   0x000014),
 REG(SYS_COUNT_RX_JABBERS,   0x000018),
 REG(SYS_COUNT_RX_CRC_ALIGN_ERRS,  0x00001c),
 REG(SYS_COUNT_RX_SYM_ERRS,   0x000020),
 REG(SYS_COUNT_RX_64,    0x000024),
 REG(SYS_COUNT_RX_65_127,   0x000028),
 REG(SYS_COUNT_RX_128_255,   0x00002c),
 REG(SYS_COUNT_RX_256_511,   0x000030),
 REG(SYS_COUNT_RX_512_1023,   0x000034),
 REG(SYS_COUNT_RX_1024_1526,   0x000038),
 REG(SYS_COUNT_RX_1527_MAX,   0x00003c),
 REG(SYS_COUNT_RX_PAUSE,    0x000040),
 REG(SYS_COUNT_RX_CONTROL,   0x000044),
 REG(SYS_COUNT_RX_LONGS,    0x000048),
 REG(SYS_COUNT_RX_CLASSIFIED_DROPS,  0x00004c),
 REG(SYS_COUNT_RX_RED_PRIO_0,   0x000050),
 REG(SYS_COUNT_RX_RED_PRIO_1,   0x000054),
 REG(SYS_COUNT_RX_RED_PRIO_2,   0x000058),
 REG(SYS_COUNT_RX_RED_PRIO_3,   0x00005c),
 REG(SYS_COUNT_RX_RED_PRIO_4,   0x000060),
 REG(SYS_COUNT_RX_RED_PRIO_5,   0x000064),
 REG(SYS_COUNT_RX_RED_PRIO_6,   0x000068),
 REG(SYS_COUNT_RX_RED_PRIO_7,   0x00006c),
 REG(SYS_COUNT_RX_YELLOW_PRIO_0,   0x000070),
 REG(SYS_COUNT_RX_YELLOW_PRIO_1,   0x000074),
 REG(SYS_COUNT_RX_YELLOW_PRIO_2,   0x000078),
 REG(SYS_COUNT_RX_YELLOW_PRIO_3,   0x00007c),
 REG(SYS_COUNT_RX_YELLOW_PRIO_4,   0x000080),
 REG(SYS_COUNT_RX_YELLOW_PRIO_5,   0x000084),
 REG(SYS_COUNT_RX_YELLOW_PRIO_6,   0x000088),
 REG(SYS_COUNT_RX_YELLOW_PRIO_7,   0x00008c),
 REG(SYS_COUNT_RX_GREEN_PRIO_0,   0x000090),
 REG(SYS_COUNT_RX_GREEN_PRIO_1,   0x000094),
 REG(SYS_COUNT_RX_GREEN_PRIO_2,   0x000098),
 REG(SYS_COUNT_RX_GREEN_PRIO_3,   0x00009c),
 REG(SYS_COUNT_RX_GREEN_PRIO_4,   0x0000a0),
 REG(SYS_COUNT_RX_GREEN_PRIO_5,   0x0000a4),
 REG(SYS_COUNT_RX_GREEN_PRIO_6,   0x0000a8),
 REG(SYS_COUNT_RX_GREEN_PRIO_7,   0x0000ac),
 REG(SYS_COUNT_TX_OCTETS,   0x000100),
 REG(SYS_COUNT_TX_UNICAST,   0x000104),
 REG(SYS_COUNT_TX_MULTICAST,   0x000108),
 REG(SYS_COUNT_TX_BROADCAST,   0x00010c),
 REG(SYS_COUNT_TX_COLLISION,   0x000110),
 REG(SYS_COUNT_TX_DROPS,    0x000114),
 REG(SYS_COUNT_TX_PAUSE,    0x000118),
 REG(SYS_COUNT_TX_64,    0x00011c),
 REG(SYS_COUNT_TX_65_127,   0x000120),
 REG(SYS_COUNT_TX_128_255,   0x000124),
 REG(SYS_COUNT_TX_256_511,   0x000128),
 REG(SYS_COUNT_TX_512_1023,   0x00012c),
 REG(SYS_COUNT_TX_1024_1526,   0x000130),
 REG(SYS_COUNT_TX_1527_MAX,   0x000134),
 REG(SYS_COUNT_TX_YELLOW_PRIO_0,   0x000138),
 REG(SYS_COUNT_TX_YELLOW_PRIO_1,   0x00013c),
 REG(SYS_COUNT_TX_YELLOW_PRIO_2,   0x000140),
 REG(SYS_COUNT_TX_YELLOW_PRIO_3,   0x000144),
 REG(SYS_COUNT_TX_YELLOW_PRIO_4,   0x000148),
 REG(SYS_COUNT_TX_YELLOW_PRIO_5,   0x00014c),
 REG(SYS_COUNT_TX_YELLOW_PRIO_6,   0x000150),
 REG(SYS_COUNT_TX_YELLOW_PRIO_7,   0x000154),
 REG(SYS_COUNT_TX_GREEN_PRIO_0,   0x000158),
 REG(SYS_COUNT_TX_GREEN_PRIO_1,   0x00015c),
 REG(SYS_COUNT_TX_GREEN_PRIO_2,   0x000160),
 REG(SYS_COUNT_TX_GREEN_PRIO_3,   0x000164),
 REG(SYS_COUNT_TX_GREEN_PRIO_4,   0x000168),
 REG(SYS_COUNT_TX_GREEN_PRIO_5,   0x00016c),
 REG(SYS_COUNT_TX_GREEN_PRIO_6,   0x000170),
 REG(SYS_COUNT_TX_GREEN_PRIO_7,   0x000174),
 REG(SYS_COUNT_TX_AGED,    0x000178),
 REG(SYS_COUNT_DROP_LOCAL,   0x000200),
 REG(SYS_COUNT_DROP_TAIL,   0x000204),
 REG(SYS_COUNT_DROP_YELLOW_PRIO_0,  0x000208),
 REG(SYS_COUNT_DROP_YELLOW_PRIO_1,  0x00020c),
 REG(SYS_COUNT_DROP_YELLOW_PRIO_2,  0x000210),
 REG(SYS_COUNT_DROP_YELLOW_PRIO_3,  0x000214),
 REG(SYS_COUNT_DROP_YELLOW_PRIO_4,  0x000218),
 REG(SYS_COUNT_DROP_YELLOW_PRIO_5,  0x00021c),
 REG(SYS_COUNT_DROP_YELLOW_PRIO_6,  0x000220),
 REG(SYS_COUNT_DROP_YELLOW_PRIO_7,  0x000224),
 REG(SYS_COUNT_DROP_GREEN_PRIO_0,  0x000228),
 REG(SYS_COUNT_DROP_GREEN_PRIO_1,  0x00022c),
 REG(SYS_COUNT_DROP_GREEN_PRIO_2,  0x000230),
 REG(SYS_COUNT_DROP_GREEN_PRIO_3,  0x000234),
 REG(SYS_COUNT_DROP_GREEN_PRIO_4,  0x000238),
 REG(SYS_COUNT_DROP_GREEN_PRIO_5,  0x00023c),
 REG(SYS_COUNT_DROP_GREEN_PRIO_6,  0x000240),
 REG(SYS_COUNT_DROP_GREEN_PRIO_7,  0x000244),
 REG(SYS_RESET_CFG,    0x000508),
 REG(SYS_CMID,     0x00050c),
 REG(SYS_VLAN_ETYPE_CFG,    0x000510),
 REG(SYS_PORT_MODE,    0x000514),
 REG(SYS_FRONT_PORT_MODE,   0x000548),
 REG(SYS_FRM_AGING,    0x000574),
 REG(SYS_STAT_CFG,    0x000578),
 REG(SYS_SW_STATUS,    0x00057c),
 REG(SYS_MISC_CFG,    0x0005ac),
 REG(SYS_REW_MAC_HIGH_CFG,   0x0005b0),
 REG(SYS_REW_MAC_LOW_CFG,   0x0005dc),
 REG(SYS_CM_ADDR,    0x000500),
 REG(SYS_CM_DATA,    0x000504),
 REG(SYS_PAUSE_CFG,    0x000608),
 REG(SYS_PAUSE_TOT_CFG,    0x000638),
 REG(SYS_ATOP,     0x00063c),
 REG(SYS_ATOP_TOT_CFG,    0x00066c),
 REG(SYS_MAC_FC_CFG,    0x000670),
 REG(SYS_MMGT,     0x00069c),
 REG(SYS_MMGT_FAST,    0x0006a0),
 REG(SYS_EVENTS_DIF,    0x0006a4),
 REG(SYS_EVENTS_CORE,    0x0006b4),
 REG(SYS_PTP_STATUS,    0x0006b8),
 REG(SYS_PTP_TXSTAMP,    0x0006bc),
 REG(SYS_PTP_NXT,    0x0006c0),
 REG(SYS_PTP_CFG,    0x0006c4),
};

static const u32 vsc7514_vcap_regmap[] = {
 /* VCAP_CORE_CFG */
 REG(VCAP_CORE_UPDATE_CTRL,   0x000000),
 REG(VCAP_CORE_MV_CFG,    0x000004),
 /* VCAP_CORE_CACHE */
 REG(VCAP_CACHE_ENTRY_DAT,   0x000008),
 REG(VCAP_CACHE_MASK_DAT,   0x000108),
 REG(VCAP_CACHE_ACTION_DAT,   0x000208),
 REG(VCAP_CACHE_CNT_DAT,    0x000308),
 REG(VCAP_CACHE_TG_DAT,    0x000388),
 /* VCAP_CONST */
 REG(VCAP_CONST_VCAP_VER,   0x000398),
 REG(VCAP_CONST_ENTRY_WIDTH,   0x00039c),
 REG(VCAP_CONST_ENTRY_CNT,   0x0003a0),
 REG(VCAP_CONST_ENTRY_SWCNT,   0x0003a4),
 REG(VCAP_CONST_ENTRY_TG_WIDTH,   0x0003a8),
 REG(VCAP_CONST_ACTION_DEF_CNT,   0x0003ac),
 REG(VCAP_CONST_ACTION_WIDTH,   0x0003b0),
 REG(VCAP_CONST_CNT_WIDTH,   0x0003b4),
 REG(VCAP_CONST_CORE_CNT,   0x0003b8),
 REG(VCAP_CONST_IF_CNT,    0x0003bc),
};

static const u32 vsc7514_ptp_regmap[] = {
 REG(PTP_PIN_CFG,    0x000000),
 REG(PTP_PIN_TOD_SEC_MSB,   0x000004),
 REG(PTP_PIN_TOD_SEC_LSB,   0x000008),
 REG(PTP_PIN_TOD_NSEC,    0x00000c),
 REG(PTP_PIN_WF_HIGH_PERIOD,   0x000014),
 REG(PTP_PIN_WF_LOW_PERIOD,   0x000018),
 REG(PTP_CFG_MISC,    0x0000a0),
 REG(PTP_CLK_CFG_ADJ_CFG,   0x0000a4),
 REG(PTP_CLK_CFG_ADJ_FREQ,   0x0000a8),
};

static const u32 vsc7514_dev_gmii_regmap[] = {
 REG(DEV_CLOCK_CFG,    0x0),
 REG(DEV_PORT_MISC,    0x4),
 REG(DEV_EVENTS,     0x8),
 REG(DEV_EEE_CFG,    0xc),
 REG(DEV_RX_PATH_DELAY,    0x10),
 REG(DEV_TX_PATH_DELAY,    0x14),
 REG(DEV_PTP_PREDICT_CFG,   0x18),
 REG(DEV_MAC_ENA_CFG,    0x1c),
 REG(DEV_MAC_MODE_CFG,    0x20),
 REG(DEV_MAC_MAXLEN_CFG,    0x24),
 REG(DEV_MAC_TAGS_CFG,    0x28),
 REG(DEV_MAC_ADV_CHK_CFG,   0x2c),
 REG(DEV_MAC_IFG_CFG,    0x30),
 REG(DEV_MAC_HDX_CFG,    0x34),
 REG(DEV_MAC_DBG_CFG,    0x38),
 REG(DEV_MAC_FC_MAC_LOW_CFG,   0x3c),
 REG(DEV_MAC_FC_MAC_HIGH_CFG,   0x40),
 REG(DEV_MAC_STICKY,    0x44),
 REG(PCS1G_CFG,     0x48),
 REG(PCS1G_MODE_CFG,    0x4c),
 REG(PCS1G_SD_CFG,    0x50),
 REG(PCS1G_ANEG_CFG,    0x54),
 REG(PCS1G_ANEG_NP_CFG,    0x58),
 REG(PCS1G_LB_CFG,    0x5c),
 REG(PCS1G_DBG_CFG,    0x60),
 REG(PCS1G_CDET_CFG,    0x64),
 REG(PCS1G_ANEG_STATUS,    0x68),
 REG(PCS1G_ANEG_NP_STATUS,   0x6c),
 REG(PCS1G_LINK_STATUS,    0x70),
 REG(PCS1G_LINK_DOWN_CNT,   0x74),
 REG(PCS1G_STICKY,    0x78),
 REG(PCS1G_DEBUG_STATUS,    0x7c),
 REG(PCS1G_LPI_CFG,    0x80),
 REG(PCS1G_LPI_WAKE_ERROR_CNT,   0x84),
 REG(PCS1G_LPI_STATUS,    0x88),
 REG(PCS1G_TSTPAT_MODE_CFG,   0x8c),
 REG(PCS1G_TSTPAT_STATUS,   0x90),
 REG(DEV_PCS_FX100_CFG,    0x94),
 REG(DEV_PCS_FX100_STATUS,   0x98),
};

const u32 *vsc7514_regmap[TARGET_MAX] = {
 [ANA] = vsc7514_ana_regmap,
 [QS] = vsc7514_qs_regmap,
 [QSYS] = vsc7514_qsys_regmap,
 [REW] = vsc7514_rew_regmap,
 [SYS] = vsc7514_sys_regmap,
 [S0] = vsc7514_vcap_regmap,
 [S1] = vsc7514_vcap_regmap,
 [S2] = vsc7514_vcap_regmap,
 [PTP] = vsc7514_ptp_regmap,
 [DEV_GMII] = vsc7514_dev_gmii_regmap,
};
EXPORT_SYMBOL(vsc7514_regmap);

static const struct vcap_field vsc7514_vcap_es0_keys[] = {
 [VCAP_ES0_EGR_PORT]   = { 0,   4 },
 [VCAP_ES0_IGR_PORT]   = { 4,   4 },
 [VCAP_ES0_RSV]    = { 8,   2 },
 [VCAP_ES0_L2_MC]   = { 10,  1 },
 [VCAP_ES0_L2_BC]   = { 11,  1 },
 [VCAP_ES0_VID]    = { 12, 12 },
 [VCAP_ES0_DP]    = { 24,  1 },
 [VCAP_ES0_PCP]    = { 25,  3 },
};

static const struct vcap_field vsc7514_vcap_es0_actions[]   = {
 [VCAP_ES0_ACT_PUSH_OUTER_TAG]  = { 0,   2 },
 [VCAP_ES0_ACT_PUSH_INNER_TAG]  = { 2,   1 },
 [VCAP_ES0_ACT_TAG_A_TPID_SEL]  = { 3,   2 },
 [VCAP_ES0_ACT_TAG_A_VID_SEL]  = { 5,   1 },
 [VCAP_ES0_ACT_TAG_A_PCP_SEL]  = { 6,   2 },
 [VCAP_ES0_ACT_TAG_A_DEI_SEL]  = { 8,   2 },
 [VCAP_ES0_ACT_TAG_B_TPID_SEL]  = { 10,  2 },
 [VCAP_ES0_ACT_TAG_B_VID_SEL]  = { 12,  1 },
 [VCAP_ES0_ACT_TAG_B_PCP_SEL]  = { 13,  2 },
 [VCAP_ES0_ACT_TAG_B_DEI_SEL]  = { 15,  2 },
 [VCAP_ES0_ACT_VID_A_VAL]  = { 17, 12 },
 [VCAP_ES0_ACT_PCP_A_VAL]  = { 29,  3 },
 [VCAP_ES0_ACT_DEI_A_VAL]  = { 32,  1 },
 [VCAP_ES0_ACT_VID_B_VAL]  = { 33, 12 },
 [VCAP_ES0_ACT_PCP_B_VAL]  = { 45,  3 },
 [VCAP_ES0_ACT_DEI_B_VAL]  = { 48,  1 },
 [VCAP_ES0_ACT_RSV]   = { 49, 24 },
 [VCAP_ES0_ACT_HIT_STICKY]  = { 73,  1 },
};

static const struct vcap_field vsc7514_vcap_is1_keys[] = {
 [VCAP_IS1_HK_TYPE]   = { 0,    1 },
 [VCAP_IS1_HK_LOOKUP]   = { 1,    2 },
 [VCAP_IS1_HK_IGR_PORT_MASK]  = { 3,   12 },
 [VCAP_IS1_HK_RSV]   = { 15,   9 },
 [VCAP_IS1_HK_OAM_Y1731]   = { 24,   1 },
 [VCAP_IS1_HK_L2_MC]   = { 25,   1 },
 [VCAP_IS1_HK_L2_BC]   = { 26,   1 },
 [VCAP_IS1_HK_IP_MC]   = { 27,   1 },
 [VCAP_IS1_HK_VLAN_TAGGED]  = { 28,   1 },
 [VCAP_IS1_HK_VLAN_DBL_TAGGED]  = { 29,   1 },
 [VCAP_IS1_HK_TPID]   = { 30,   1 },
 [VCAP_IS1_HK_VID]   = { 31,  12 },
 [VCAP_IS1_HK_DEI]   = { 43,   1 },
 [VCAP_IS1_HK_PCP]   = { 44,   3 },
 /* Specific Fields for IS1 Half Key S1_NORMAL */
 [VCAP_IS1_HK_L2_SMAC]   = { 47,  48 },
 [VCAP_IS1_HK_ETYPE_LEN]   = { 95,   1 },
 [VCAP_IS1_HK_ETYPE]   = { 96,  16 },
 [VCAP_IS1_HK_IP_SNAP]   = { 112,  1 },
 [VCAP_IS1_HK_IP4]   = { 113,  1 },
 /* Layer-3 Information */
 [VCAP_IS1_HK_L3_FRAGMENT]  = { 114,  1 },
 [VCAP_IS1_HK_L3_FRAG_OFS_GT0]  = { 115,  1 },
 [VCAP_IS1_HK_L3_OPTIONS]  = { 116,  1 },
 [VCAP_IS1_HK_L3_DSCP]   = { 117,  6 },
 [VCAP_IS1_HK_L3_IP4_SIP]  = { 123, 32 },
 /* Layer-4 Information */
 [VCAP_IS1_HK_TCP_UDP]   = { 155,  1 },
 [VCAP_IS1_HK_TCP]   = { 156,  1 },
 [VCAP_IS1_HK_L4_SPORT]   = { 157, 16 },
 [VCAP_IS1_HK_L4_RNG]   = { 173,  8 },
 /* Specific Fields for IS1 Half Key S1_5TUPLE_IP4 */
 [VCAP_IS1_HK_IP4_INNER_TPID]  = { 47,   1 },
 [VCAP_IS1_HK_IP4_INNER_VID]  = { 48,  12 },
 [VCAP_IS1_HK_IP4_INNER_DEI]  = { 60,   1 },
 [VCAP_IS1_HK_IP4_INNER_PCP]  = { 61,   3 },
 [VCAP_IS1_HK_IP4_IP4]   = { 64,   1 },
 [VCAP_IS1_HK_IP4_L3_FRAGMENT]  = { 65,   1 },
 [VCAP_IS1_HK_IP4_L3_FRAG_OFS_GT0] = { 66,   1 },
 [VCAP_IS1_HK_IP4_L3_OPTIONS]  = { 67,   1 },
 [VCAP_IS1_HK_IP4_L3_DSCP]  = { 68,   6 },
 [VCAP_IS1_HK_IP4_L3_IP4_DIP]  = { 74,  32 },
 [VCAP_IS1_HK_IP4_L3_IP4_SIP]  = { 106, 32 },
 [VCAP_IS1_HK_IP4_L3_PROTO]  = { 138,  8 },
 [VCAP_IS1_HK_IP4_TCP_UDP]  = { 146,  1 },
 [VCAP_IS1_HK_IP4_TCP]   = { 147,  1 },
 [VCAP_IS1_HK_IP4_L4_RNG]  = { 148,  8 },
 [VCAP_IS1_HK_IP4_IP_PAYLOAD_S1_5TUPLE] = { 156, 32 },
};

static const struct vcap_field vsc7514_vcap_is1_actions[] = {
 [VCAP_IS1_ACT_DSCP_ENA]   = { 0,   1 },
 [VCAP_IS1_ACT_DSCP_VAL]   = { 1,   6 },
 [VCAP_IS1_ACT_QOS_ENA]   = { 7,   1 },
 [VCAP_IS1_ACT_QOS_VAL]   = { 8,   3 },
 [VCAP_IS1_ACT_DP_ENA]   = { 11,  1 },
 [VCAP_IS1_ACT_DP_VAL]   = { 12,  1 },
 [VCAP_IS1_ACT_PAG_OVERRIDE_MASK] = { 13,  8 },
 [VCAP_IS1_ACT_PAG_VAL]   = { 21,  8 },
 [VCAP_IS1_ACT_RSV]   = { 29,  9 },
 /* The fields below are incorrectly shifted by 2 in the manual */
 [VCAP_IS1_ACT_VID_REPLACE_ENA]  = { 38,  1 },
 [VCAP_IS1_ACT_VID_ADD_VAL]  = { 39, 12 },
 [VCAP_IS1_ACT_FID_SEL]   = { 51,  2 },
 [VCAP_IS1_ACT_FID_VAL]   = { 53, 13 },
 [VCAP_IS1_ACT_PCP_DEI_ENA]  = { 66,  1 },
 [VCAP_IS1_ACT_PCP_VAL]   = { 67,  3 },
 [VCAP_IS1_ACT_DEI_VAL]   = { 70,  1 },
 [VCAP_IS1_ACT_VLAN_POP_CNT_ENA]  = { 71,  1 },
 [VCAP_IS1_ACT_VLAN_POP_CNT]  = { 72,  2 },
 [VCAP_IS1_ACT_CUSTOM_ACE_TYPE_ENA] = { 74,  4 },
 [VCAP_IS1_ACT_HIT_STICKY]  = { 78,  1 },
};

static const struct vcap_field vsc7514_vcap_is2_keys[] = {
 /* Common: 46 bits */
 [VCAP_IS2_TYPE]    = { 0,    4 },
 [VCAP_IS2_HK_FIRST]   = { 4,    1 },
 [VCAP_IS2_HK_PAG]   = { 5,    8 },
 [VCAP_IS2_HK_IGR_PORT_MASK]  = { 13,  12 },
 [VCAP_IS2_HK_RSV2]   = { 25,   1 },
 [VCAP_IS2_HK_HOST_MATCH]  = { 26,   1 },
 [VCAP_IS2_HK_L2_MC]   = { 27,   1 },
 [VCAP_IS2_HK_L2_BC]   = { 28,   1 },
 [VCAP_IS2_HK_VLAN_TAGGED]  = { 29,   1 },
 [VCAP_IS2_HK_VID]   = { 30,  12 },
 [VCAP_IS2_HK_DEI]   = { 42,   1 },
 [VCAP_IS2_HK_PCP]   = { 43,   3 },
 /* MAC_ETYPE / MAC_LLC / MAC_SNAP / OAM common */
 [VCAP_IS2_HK_L2_DMAC]   = { 46,  48 },
 [VCAP_IS2_HK_L2_SMAC]   = { 94,  48 },
 /* MAC_ETYPE (TYPE=000) */
 [VCAP_IS2_HK_MAC_ETYPE_ETYPE]  = { 142, 16 },
 [VCAP_IS2_HK_MAC_ETYPE_L2_PAYLOAD0] = { 158, 16 },
 [VCAP_IS2_HK_MAC_ETYPE_L2_PAYLOAD1] = { 174,  8 },
 [VCAP_IS2_HK_MAC_ETYPE_L2_PAYLOAD2] = { 182,  3 },
 /* MAC_LLC (TYPE=001) */
 [VCAP_IS2_HK_MAC_LLC_L2_LLC]  = { 142, 40 },
 /* MAC_SNAP (TYPE=010) */
 [VCAP_IS2_HK_MAC_SNAP_L2_SNAP]  = { 142, 40 },
 /* MAC_ARP (TYPE=011) */
 [VCAP_IS2_HK_MAC_ARP_SMAC]  = { 46,  48 },
 [VCAP_IS2_HK_MAC_ARP_ADDR_SPACE_OK] = { 94,   1 },
 [VCAP_IS2_HK_MAC_ARP_PROTO_SPACE_OK] = { 95,   1 },
 [VCAP_IS2_HK_MAC_ARP_LEN_OK]  = { 96,   1 },
 [VCAP_IS2_HK_MAC_ARP_TARGET_MATCH] = { 97,   1 },
 [VCAP_IS2_HK_MAC_ARP_SENDER_MATCH] = { 98,   1 },
 [VCAP_IS2_HK_MAC_ARP_OPCODE_UNKNOWN] = { 99,   1 },
 [VCAP_IS2_HK_MAC_ARP_OPCODE]  = { 100,  2 },
 [VCAP_IS2_HK_MAC_ARP_L3_IP4_DIP] = { 102, 32 },
 [VCAP_IS2_HK_MAC_ARP_L3_IP4_SIP] = { 134, 32 },
 [VCAP_IS2_HK_MAC_ARP_DIP_EQ_SIP] = { 166,  1 },
 /* IP4_TCP_UDP / IP4_OTHER common */
 [VCAP_IS2_HK_IP4]   = { 46,   1 },
 [VCAP_IS2_HK_L3_FRAGMENT]  = { 47,   1 },
 [VCAP_IS2_HK_L3_FRAG_OFS_GT0]  = { 48,   1 },
 [VCAP_IS2_HK_L3_OPTIONS]  = { 49,   1 },
 [VCAP_IS2_HK_IP4_L3_TTL_GT0]  = { 50,   1 },
 [VCAP_IS2_HK_L3_TOS]   = { 51,   8 },
 [VCAP_IS2_HK_L3_IP4_DIP]  = { 59,  32 },
 [VCAP_IS2_HK_L3_IP4_SIP]  = { 91,  32 },
 [VCAP_IS2_HK_DIP_EQ_SIP]  = { 123,  1 },
 /* IP4_TCP_UDP (TYPE=100) */
 [VCAP_IS2_HK_TCP]   = { 124,  1 },
 [VCAP_IS2_HK_L4_DPORT]   = { 125, 16 },
 [VCAP_IS2_HK_L4_SPORT]   = { 141, 16 },
 [VCAP_IS2_HK_L4_RNG]   = { 157,  8 },
 [VCAP_IS2_HK_L4_SPORT_EQ_DPORT]  = { 165,  1 },
 [VCAP_IS2_HK_L4_SEQUENCE_EQ0]  = { 166,  1 },
 [VCAP_IS2_HK_L4_FIN]   = { 167,  1 },
 [VCAP_IS2_HK_L4_SYN]   = { 168,  1 },
 [VCAP_IS2_HK_L4_RST]   = { 169,  1 },
 [VCAP_IS2_HK_L4_PSH]   = { 170,  1 },
 [VCAP_IS2_HK_L4_ACK]   = { 171,  1 },
 [VCAP_IS2_HK_L4_URG]   = { 172,  1 },
 [VCAP_IS2_HK_L4_1588_DOM]  = { 173,  8 },
 [VCAP_IS2_HK_L4_1588_VER]  = { 181,  4 },
 /* IP4_OTHER (TYPE=101) */
 [VCAP_IS2_HK_IP4_L3_PROTO]  = { 124,  8 },
 [VCAP_IS2_HK_L3_PAYLOAD]  = { 132, 56 },
 /* IP6_STD (TYPE=110) */
 [VCAP_IS2_HK_IP6_L3_TTL_GT0]  = { 46,   1 },
 [VCAP_IS2_HK_L3_IP6_SIP]  = { 47, 128 },
 [VCAP_IS2_HK_IP6_L3_PROTO]  = { 175,  8 },
 /* OAM (TYPE=111) */
 [VCAP_IS2_HK_OAM_MEL_FLAGS]  = { 142,  7 },
 [VCAP_IS2_HK_OAM_VER]   = { 149,  5 },
 [VCAP_IS2_HK_OAM_OPCODE]  = { 154,  8 },
 [VCAP_IS2_HK_OAM_FLAGS]   = { 162,  8 },
 [VCAP_IS2_HK_OAM_MEPID]   = { 170, 16 },
 [VCAP_IS2_HK_OAM_CCM_CNTS_EQ0]  = { 186,  1 },
 [VCAP_IS2_HK_OAM_IS_Y1731]  = { 187,  1 },
};

static const struct vcap_field vsc7514_vcap_is2_actions[] = {
 [VCAP_IS2_ACT_HIT_ME_ONCE]  = { 0,   1 },
 [VCAP_IS2_ACT_CPU_COPY_ENA]  = { 1,   1 },
 [VCAP_IS2_ACT_CPU_QU_NUM]  = { 2,   3 },
 [VCAP_IS2_ACT_MASK_MODE]  = { 5,   2 },
 [VCAP_IS2_ACT_MIRROR_ENA]  = { 7,   1 },
 [VCAP_IS2_ACT_LRN_DIS]   = { 8,   1 },
 [VCAP_IS2_ACT_POLICE_ENA]  = { 9,   1 },
 [VCAP_IS2_ACT_POLICE_IDX]  = { 10,  9 },
 [VCAP_IS2_ACT_POLICE_VCAP_ONLY]  = { 19,  1 },
 [VCAP_IS2_ACT_PORT_MASK]  = { 20, 11 },
 [VCAP_IS2_ACT_REW_OP]   = { 31,  9 },
 [VCAP_IS2_ACT_SMAC_REPLACE_ENA]  = { 40,  1 },
 [VCAP_IS2_ACT_RSV]   = { 41,  2 },
 [VCAP_IS2_ACT_ACL_ID]   = { 43,  6 },
 [VCAP_IS2_ACT_HIT_CNT]   = { 49, 32 },
};

struct vcap_props vsc7514_vcap_props[] = {
 [VCAP_ES0] = {
  .action_type_width = 0,
  .action_table = {
   [ES0_ACTION_TYPE_NORMAL] = {
    .width = 73, /* HIT_STICKY not included */
    .count = 1,
   },
  },
  .target = S0,
  .keys = vsc7514_vcap_es0_keys,
  .actions = vsc7514_vcap_es0_actions,
 },
 [VCAP_IS1] = {
  .action_type_width = 0,
  .action_table = {
   [IS1_ACTION_TYPE_NORMAL] = {
    .width = 78, /* HIT_STICKY not included */
    .count = 4,
   },
  },
  .target = S1,
  .keys = vsc7514_vcap_is1_keys,
  .actions = vsc7514_vcap_is1_actions,
 },
 [VCAP_IS2] = {
  .action_type_width = 1,
  .action_table = {
   [IS2_ACTION_TYPE_NORMAL] = {
    .width = 49,
    .count = 2
   },
   [IS2_ACTION_TYPE_SMAC_SIP] = {
    .width = 6,
    .count = 4
   },
  },
  .target = S2,
  .keys = vsc7514_vcap_is2_keys,
  .actions = vsc7514_vcap_is2_actions,
 },
};
EXPORT_SYMBOL(vsc7514_vcap_props);

Messung V0.5
C=97 H=100 G=98

¤ Dauer der Verarbeitung: 0.15 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.