⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wanxl.h

📁 linux-2.6.15.6
💻 H
字号:
/* * wanXL serial card driver for Linux * definitions common to host driver and card firmware * * Copyright (C) 2003 Krzysztof Halasa <khc@pm.waw.pl> * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License * as published by the Free Software Foundation. */#define RESET_WHILE_LOADING 0/* you must rebuild the firmware if any of the following is changed */#define DETECT_RAM 0		/* needed for > 4MB RAM, 16 MB maximum */#define QUICC_MEMCPY_USES_PLX 1	/* must be used if the host has > 256 MB RAM */#define STATUS_CABLE_V35	2#define STATUS_CABLE_X21	3#define STATUS_CABLE_V24	4#define STATUS_CABLE_EIA530	5#define STATUS_CABLE_INVALID	6#define STATUS_CABLE_NONE	7#define STATUS_CABLE_DCE	0x8000#define STATUS_CABLE_DSR	0x0010#define STATUS_CABLE_DCD	0x0008#define STATUS_CABLE_PM_SHIFT	5#define PDM_OFFSET 0x1000#define TX_BUFFERS 10		/* per port */#define RX_BUFFERS 30#define RX_QUEUE_LENGTH 40	/* card->host queue length - per card */#define PACKET_EMPTY		0x00#define PACKET_FULL		0x10#define PACKET_SENT		0x20 /* TX only */#define PACKET_UNDERRUN		0x30 /* TX only */#define PACKET_PORT_MASK	0x03 /* RX only *//* bit numbers in PLX9060 doorbell registers */#define DOORBELL_FROM_CARD_TX_0		0 /* packet sent by the card */#define DOORBELL_FROM_CARD_TX_1		1#define DOORBELL_FROM_CARD_TX_2		2#define DOORBELL_FROM_CARD_TX_3		3#define DOORBELL_FROM_CARD_RX		4#define DOORBELL_FROM_CARD_CABLE_0	5 /* cable/PM/etc. changed */#define DOORBELL_FROM_CARD_CABLE_1	6#define DOORBELL_FROM_CARD_CABLE_2	7#define DOORBELL_FROM_CARD_CABLE_3	8#define DOORBELL_TO_CARD_OPEN_0		0#define DOORBELL_TO_CARD_OPEN_1		1#define DOORBELL_TO_CARD_OPEN_2		2#define DOORBELL_TO_CARD_OPEN_3		3#define DOORBELL_TO_CARD_CLOSE_0	4#define DOORBELL_TO_CARD_CLOSE_1	5#define DOORBELL_TO_CARD_CLOSE_2	6#define DOORBELL_TO_CARD_CLOSE_3	7#define DOORBELL_TO_CARD_TX_0		8 /* outbound packet queued */#define DOORBELL_TO_CARD_TX_1		9#define DOORBELL_TO_CARD_TX_2		10#define DOORBELL_TO_CARD_TX_3		11/* firmware-only status bits, starting from last DOORBELL_TO_CARD + 1 */#define TASK_SCC_0			12#define TASK_SCC_1			13#define TASK_SCC_2			14#define TASK_SCC_3			15#define ALIGN32(x) (((x) + 3) & 0xFFFFFFFC)#define BUFFER_LENGTH	ALIGN32(HDLC_MAX_MRU + 4) /* 4 bytes for 32-bit CRC *//* Address of TX and RX buffers in 68360 address space */#define BUFFERS_ADDR	0x4000	/* 16 KB */#ifndef __ASSEMBLER__#define PLX_OFFSET		0#else#define PLX_OFFSET		PLX + 0x80#endif#define PLX_MAILBOX_0		(PLX_OFFSET + 0x40)#define PLX_MAILBOX_1		(PLX_OFFSET + 0x44)#define PLX_MAILBOX_2		(PLX_OFFSET + 0x48)#define PLX_MAILBOX_3		(PLX_OFFSET + 0x4C)#define PLX_MAILBOX_4		(PLX_OFFSET + 0x50)#define PLX_MAILBOX_5		(PLX_OFFSET + 0x54)#define PLX_MAILBOX_6		(PLX_OFFSET + 0x58)#define PLX_MAILBOX_7		(PLX_OFFSET + 0x5C)#define PLX_DOORBELL_TO_CARD	(PLX_OFFSET + 0x60)#define PLX_DOORBELL_FROM_CARD	(PLX_OFFSET + 0x64)#define PLX_INTERRUPT_CS	(PLX_OFFSET + 0x68)#define PLX_CONTROL		(PLX_OFFSET + 0x6C)#ifdef __ASSEMBLER__#define PLX_DMA_0_MODE		(PLX + 0x100)#define PLX_DMA_0_PCI		(PLX + 0x104)#define PLX_DMA_0_LOCAL		(PLX + 0x108)#define PLX_DMA_0_LENGTH	(PLX + 0x10C)#define PLX_DMA_0_DESC		(PLX + 0x110)#define PLX_DMA_1_MODE		(PLX + 0x114)#define PLX_DMA_1_PCI		(PLX + 0x118)#define PLX_DMA_1_LOCAL		(PLX + 0x11C)#define PLX_DMA_1_LENGTH	(PLX + 0x120)#define PLX_DMA_1_DESC		(PLX + 0x124)#define PLX_DMA_CMD_STS		(PLX + 0x128)#define PLX_DMA_ARBITR_0	(PLX + 0x12C)#define PLX_DMA_ARBITR_1	(PLX + 0x130)#endif#define DESC_LENGTH 12/* offsets from start of status_t *//* card to host */#define STATUS_OPEN		0#define STATUS_CABLE		(STATUS_OPEN + 4)#define STATUS_RX_OVERRUNS	(STATUS_CABLE + 4)#define STATUS_RX_FRAME_ERRORS	(STATUS_RX_OVERRUNS + 4)/* host to card */#define STATUS_PARITY		(STATUS_RX_FRAME_ERRORS + 4)#define STATUS_ENCODING		(STATUS_PARITY + 4)#define STATUS_CLOCKING		(STATUS_ENCODING + 4)#define STATUS_TX_DESCS		(STATUS_CLOCKING + 4)#ifndef __ASSEMBLER__typedef struct {	volatile u32 stat;	u32 address;		/* PCI address */	volatile u32 length;}desc_t;typedef struct {// Card to host	volatile u32 open;	volatile u32 cable;	volatile u32 rx_overruns;	volatile u32 rx_frame_errors;// Host to card	u32 parity;	u32 encoding;	u32 clocking;	desc_t tx_descs[TX_BUFFERS];}port_status_t;#endif /* __ASSEMBLER__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -