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

Quelle  fsl_ucc_hdlc.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Freescale QUICC Engine HDLC Device Driver
 *
 * Copyright 2014 Freescale Semiconductor Inc.
 */


#ifndef _UCC_HDLC_H_
#define _UCC_HDLC_H_

#include <linux/kernel.h>
#include <linux/list.h>

#include <soc/fsl/qe/immap_qe.h>
#include <soc/fsl/qe/qe.h>

#include <soc/fsl/qe/ucc.h>
#include <soc/fsl/qe/ucc_fast.h>

/* UCC HDLC event register */
#define UCCE_HDLC_RX_EVENTS \
(UCC_HDLC_UCCE_RXF | UCC_HDLC_UCCE_RXB | UCC_HDLC_UCCE_BSY)
#define UCCE_HDLC_TX_EVENTS (UCC_HDLC_UCCE_TXB | UCC_HDLC_UCCE_TXE)

struct ucc_hdlc_param {
 __be16 riptr;
 __be16 tiptr;
 __be16 res0;
 __be16 mrblr;
 __be32 rstate;
 __be32 rbase;
 __be16 rbdstat;
 __be16 rbdlen;
 __be32 rdptr;
 __be32 tstate;
 __be32 tbase;
 __be16 tbdstat;
 __be16 tbdlen;
 __be32 tdptr;
 __be32 rbptr;
 __be32 tbptr;
 __be32 rcrc;
 __be32 res1;
 __be32 tcrc;
 __be32 res2;
 __be32 res3;
 __be32 c_mask;
 __be32 c_pres;
 __be16 disfc;
 __be16 crcec;
 __be16 abtsc;
 __be16 nmarc;
 __be32 max_cnt;
 __be16 mflr;
 __be16 rfthr;
 __be16 rfcnt;
 __be16 hmask;
 __be16 haddr1;
 __be16 haddr2;
 __be16 haddr3;
 __be16 haddr4;
 __be16 ts_tmp;
 __be16 tmp_mb;
};

struct ucc_hdlc_private {
 struct ucc_tdm *utdm;
 struct ucc_tdm_info *ut_info;
 struct ucc_fast_private *uccf;
 struct device *dev;
 struct net_device *ndev;
 struct napi_struct napi;
 struct ucc_fast __iomem *uf_regs; /* UCC Fast registers */
 struct ucc_hdlc_param __iomem *ucc_pram;
 u16 tsa;
 bool hdlc_busy;
 bool loopback;
 bool hdlc_bus;

 u8 *tx_buffer;
 u8 *rx_buffer;
 dma_addr_t dma_tx_addr;
 dma_addr_t dma_rx_addr;

 struct qe_bd *tx_bd_base;
 struct qe_bd *rx_bd_base;
 dma_addr_t dma_tx_bd;
 dma_addr_t dma_rx_bd;
 struct qe_bd *curtx_bd;
 struct qe_bd *currx_bd;
 struct qe_bd *dirty_tx;
 u16 currx_bdnum;

 struct sk_buff **tx_skbuff;
 struct sk_buff **rx_skbuff;
 u16 skb_curtx;
 u16 skb_currx;
 unsigned short skb_dirtytx;

 unsigned short tx_ring_size;
 unsigned short rx_ring_size;
 s32 ucc_pram_offset;

 unsigned short encoding;
 unsigned short parity;
 unsigned short hmask;
 u32 clocking;
 spinlock_t lock; /* lock for Tx BD and Tx buffer */
#ifdef CONFIG_PM
 struct ucc_hdlc_param *ucc_pram_bak;
 u32 gumr;
 u8 guemr;
 u32 cmxsi1cr_l, cmxsi1cr_h;
 u32 cmxsi1syr;
 u32 cmxucr[4];
#endif
};

#define TX_BD_RING_LEN 0x10
#define RX_BD_RING_LEN 0x20
#define RX_CLEAN_MAX 0x10
#define NUM_OF_BUF 4
#define MAX_RX_BUF_LENGTH (48 * 0x20)
#define MAX_FRAME_LENGTH (MAX_RX_BUF_LENGTH + 8)
#define ALIGNMENT_OF_UCC_HDLC_PRAM 64
#define SI_BANK_SIZE 128
#define MAX_HDLC_NUM 4
#define HDLC_HEAD_LEN 2
#define HDLC_CRC_SIZE 2
#define TX_RING_MOD_MASK(size) (size - 1)
#define RX_RING_MOD_MASK(size) (size - 1)

#define HDLC_HEAD_MASK  0x0000
#define DEFAULT_HDLC_HEAD 0xff44
#define DEFAULT_ADDR_MASK 0x00ff
#define DEFAULT_HDLC_ADDR 0x00ff

#define BMR_GBL   0x20000000
#define BMR_BIG_ENDIAN  0x10000000
#define CRC_16BIT_MASK  0x0000F0B8
#define CRC_16BIT_PRES  0x0000FFFF
#define DEFAULT_RFTHR  1

#define DEFAULT_PPP_HEAD    0xff03

#endif

Messung V0.5
C=93 H=92 G=92

¤ Dauer der Verarbeitung: 0.2 Sekunden  ¤

*© 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.