亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cs8900.h

?? U—boot中使用的cs8900網卡芯片驅動程序。結構完整
?? H
字號:
/*
 * Cirrus Logic CS8900A Ethernet
 *
 * (C) Copyright 2002
 * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
 * Marius Groeger <mgroeger@sysgo.de>
 *
 * Copyright (C) 1999 Ben Williamson <benw@pobox.com>
 *
 * See file CREDITS for list of people who contributed to this
 * project.
 *
 * This program is loaded into SRAM in bootstrap mode, where it waits
 * for commands on UART1 to read and write memory, jump to code etc.
 * A design goal for this program is to be entirely independent of the
 * target board.  Anything with a CL-PS7111 or EP7211 should be able to run
 * this code in bootstrap mode.  All the board specifics can be handled on
 * the host.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <asm/types.h>
#include <config.h>

#ifdef CONFIG_DRIVER_CS8900

/* although the registers are 16 bit, they are 32-bit aligned on the
   EDB7111. so we have to read them as 32-bit registers and ignore the
   upper 16-bits. i'm not sure if this holds for the EDB7211. */

#ifdef CS8900_BUS16
  /* 16 bit aligned registers, 16 bit wide */
  #define CS8900_REG u16
  #define CS8900_OFF 0x02
  #define CS8900_BUS16_0  *(volatile u8 *)(CS8900_BASE+0x00)
  #define CS8900_BUS16_1  *(volatile u8 *)(CS8900_BASE+0x01)
#elif  defined(CS8900_BUS32)
  /* 32 bit aligned registers, 16 bit wide (we ignore upper 16 bits) */
  #define CS8900_REG u32
  #define CS8900_OFF 0x04
#else
  #error unknown bussize ...
#endif

#define CS8900_RTDATA *(volatile CS8900_REG *)(CS8900_BASE+0x00*CS8900_OFF)
#define CS8900_TxCMD  *(volatile CS8900_REG *)(CS8900_BASE+0x02*CS8900_OFF)
#define CS8900_TxLEN  *(volatile CS8900_REG *)(CS8900_BASE+0x03*CS8900_OFF)
#define CS8900_ISQ    *(volatile CS8900_REG *)(CS8900_BASE+0x04*CS8900_OFF)
#define CS8900_PPTR   *(volatile CS8900_REG *)(CS8900_BASE+0x05*CS8900_OFF)
#define CS8900_PDATA  *(volatile CS8900_REG *)(CS8900_BASE+0x06*CS8900_OFF)


#define ISQ_RxEvent     0x04
#define ISQ_TxEvent     0x08
#define ISQ_BufEvent    0x0C
#define ISQ_RxMissEvent 0x10
#define ISQ_TxColEvent  0x12
#define ISQ_EventMask   0x3F

/* packet page register offsets */

/* bus interface registers */
#define PP_ChipID    0x0000  /* Chip identifier - must be 0x630E */
#define PP_ChipRev   0x0002  /* Chip revision, model codes */

#define PP_IntReg    0x0022  /* Interrupt configuration */
#define PP_IntReg_IRQ0         0x0000  /* Use INTR0 pin */
#define PP_IntReg_IRQ1         0x0001  /* Use INTR1 pin */
#define PP_IntReg_IRQ2         0x0002  /* Use INTR2 pin */
#define PP_IntReg_IRQ3         0x0003  /* Use INTR3 pin */

/* status and control registers */

#define PP_RxCFG     0x0102  /* Receiver configuration */
#define PP_RxCFG_Skip1         0x0040  /* Skip (i.e. discard) current frame */
#define PP_RxCFG_Stream        0x0080  /* Enable streaming mode */
#define PP_RxCFG_RxOK          0x0100  /* RxOK interrupt enable */
#define PP_RxCFG_RxDMAonly     0x0200  /* Use RxDMA for all frames */
#define PP_RxCFG_AutoRxDMA     0x0400  /* Select RxDMA automatically */
#define PP_RxCFG_BufferCRC     0x0800  /* Include CRC characters in frame */
#define PP_RxCFG_CRC           0x1000  /* Enable interrupt on CRC error */
#define PP_RxCFG_RUNT          0x2000  /* Enable interrupt on RUNT frames */
#define PP_RxCFG_EXTRA         0x4000  /* Enable interrupt on frames with extra data */

#define PP_RxCTL     0x0104  /* Receiver control */
#define PP_RxCTL_IAHash        0x0040  /* Accept frames that match hash */
#define PP_RxCTL_Promiscuous   0x0080  /* Accept any frame */
#define PP_RxCTL_RxOK          0x0100  /* Accept well formed frames */
#define PP_RxCTL_Multicast     0x0200  /* Accept multicast frames */
#define PP_RxCTL_IA            0x0400  /* Accept frame that matches IA */
#define PP_RxCTL_Broadcast     0x0800  /* Accept broadcast frames */
#define PP_RxCTL_CRC           0x1000  /* Accept frames with bad CRC */
#define PP_RxCTL_RUNT          0x2000  /* Accept runt frames */
#define PP_RxCTL_EXTRA         0x4000  /* Accept frames that are too long */

#define PP_TxCFG     0x0106  /* Transmit configuration */
#define PP_TxCFG_CRS           0x0040  /* Enable interrupt on loss of carrier */
#define PP_TxCFG_SQE           0x0080  /* Enable interrupt on Signal Quality Error */
#define PP_TxCFG_TxOK          0x0100  /* Enable interrupt on successful xmits */
#define PP_TxCFG_Late          0x0200  /* Enable interrupt on "out of window" */
#define PP_TxCFG_Jabber        0x0400  /* Enable interrupt on jabber detect */
#define PP_TxCFG_Collision     0x0800  /* Enable interrupt if collision */
#define PP_TxCFG_16Collisions  0x8000  /* Enable interrupt if > 16 collisions */

#define PP_TxCmd     0x0108  /* Transmit command status */
#define PP_TxCmd_TxStart_5     0x0000  /* Start after 5 bytes in buffer */
#define PP_TxCmd_TxStart_381   0x0040  /* Start after 381 bytes in buffer */
#define PP_TxCmd_TxStart_1021  0x0080  /* Start after 1021 bytes in buffer */
#define PP_TxCmd_TxStart_Full  0x00C0  /* Start after all bytes loaded */
#define PP_TxCmd_Force         0x0100  /* Discard any pending packets */
#define PP_TxCmd_OneCollision  0x0200  /* Abort after a single collision */
#define PP_TxCmd_NoCRC         0x1000  /* Do not add CRC */
#define PP_TxCmd_NoPad         0x2000  /* Do not pad short packets */

#define PP_BufCFG    0x010A  /* Buffer configuration */
#define PP_BufCFG_SWI          0x0040  /* Force interrupt via software */
#define PP_BufCFG_RxDMA        0x0080  /* Enable interrupt on Rx DMA */
#define PP_BufCFG_TxRDY        0x0100  /* Enable interrupt when ready for Tx */
#define PP_BufCFG_TxUE         0x0200  /* Enable interrupt in Tx underrun */
#define PP_BufCFG_RxMiss       0x0400  /* Enable interrupt on missed Rx packets */
#define PP_BufCFG_Rx128        0x0800  /* Enable Rx interrupt after 128 bytes */
#define PP_BufCFG_TxCol        0x1000  /* Enable int on Tx collision ctr overflow */
#define PP_BufCFG_Miss         0x2000  /* Enable int on Rx miss ctr overflow */
#define PP_BufCFG_RxDest       0x8000  /* Enable int on Rx dest addr match */

#define PP_LineCTL   0x0112  /* Line control */
#define PP_LineCTL_Rx          0x0040  /* Enable receiver */
#define PP_LineCTL_Tx          0x0080  /* Enable transmitter */
#define PP_LineCTL_AUIonly     0x0100  /* AUI interface only */
#define PP_LineCTL_AutoAUI10BT 0x0200  /* Autodetect AUI or 10BaseT interface */
#define PP_LineCTL_ModBackoffE 0x0800  /* Enable modified backoff algorithm */
#define PP_LineCTL_PolarityDis 0x1000  /* Disable Rx polarity autodetect */
#define PP_LineCTL_2partDefDis 0x2000  /* Disable two-part defferal */
#define PP_LineCTL_LoRxSquelch 0x4000  /* Reduce receiver squelch threshold */

#define PP_SelfCTL   0x0114  /* Chip self control */
#define PP_SelfCTL_Reset       0x0040  /* Self-clearing reset */
#define PP_SelfCTL_SWSuspend   0x0100  /* Initiate suspend mode */
#define PP_SelfCTL_HWSleepE    0x0200  /* Enable SLEEP input */
#define PP_SelfCTL_HWStandbyE  0x0400  /* Enable standby mode */
#define PP_SelfCTL_HC0E        0x1000  /* use HCB0 for LINK LED */
#define PP_SelfCTL_HC1E        0x2000  /* use HCB1 for BSTATUS LED */
#define PP_SelfCTL_HCB0        0x4000  /* control LINK LED if HC0E set */
#define PP_SelfCTL_HCB1        0x8000  /* control BSTATUS LED if HC1E set */

#define PP_BusCTL    0x0116  /* Bus control */
#define PP_BusCTL_ResetRxDMA   0x0040  /* Reset RxDMA pointer */
#define PP_BusCTL_DMAextend    0x0100  /* Extend DMA cycle */
#define PP_BusCTL_UseSA        0x0200  /* Assert MEMCS16 on address decode */
#define PP_BusCTL_MemoryE      0x0400  /* Enable memory mode */
#define PP_BusCTL_DMAburst     0x0800  /* Limit DMA access burst */
#define PP_BusCTL_IOCHRDYE     0x1000  /* Set IOCHRDY high impedence */
#define PP_BusCTL_RxDMAsize    0x2000  /* Set DMA buffer size 64KB */
#define PP_BusCTL_EnableIRQ    0x8000  /* Generate interrupt on interrupt event */

#define PP_TestCTL   0x0118  /* Test control */
#define PP_TestCTL_DisableLT   0x0080  /* Disable link status */
#define PP_TestCTL_ENDECloop   0x0200  /* Internal loopback */
#define PP_TestCTL_AUIloop     0x0400  /* AUI loopback */
#define PP_TestCTL_DisBackoff  0x0800  /* Disable backoff algorithm */
#define PP_TestCTL_FDX         0x4000  /* Enable full duplex mode */

#define PP_ISQ       0x0120  /* Interrupt Status Queue */

#define PP_RER       0x0124  /* Receive event */
#define PP_RER_IAHash          0x0040  /* Frame hash match */
#define PP_RER_Dribble         0x0080  /* Frame had 1-7 extra bits after last byte */
#define PP_RER_RxOK            0x0100  /* Frame received with no errors */
#define PP_RER_Hashed          0x0200  /* Frame address hashed OK */
#define PP_RER_IA              0x0400  /* Frame address matched IA */
#define PP_RER_Broadcast       0x0800  /* Broadcast frame */
#define PP_RER_CRC             0x1000  /* Frame had CRC error */
#define PP_RER_RUNT            0x2000  /* Runt frame */
#define PP_RER_EXTRA           0x4000  /* Frame was too long */

#define PP_TER       0x0128 /* Transmit event */
#define PP_TER_CRS             0x0040  /* Carrier lost */
#define PP_TER_SQE             0x0080  /* Signal Quality Error */
#define PP_TER_TxOK            0x0100  /* Packet sent without error */
#define PP_TER_Late            0x0200  /* Out of window */
#define PP_TER_Jabber          0x0400  /* Stuck transmit? */
#define PP_TER_NumCollisions   0x7800  /* Number of collisions */
#define PP_TER_16Collisions    0x8000  /* > 16 collisions */

#define PP_BER       0x012C /* Buffer event */
#define PP_BER_SWint           0x0040 /* Software interrupt */
#define PP_BER_RxDMAFrame      0x0080 /* Received framed DMAed */
#define PP_BER_Rdy4Tx          0x0100 /* Ready for transmission */
#define PP_BER_TxUnderrun      0x0200 /* Transmit underrun */
#define PP_BER_RxMiss          0x0400 /* Received frame missed */
#define PP_BER_Rx128           0x0800 /* 128 bytes received */
#define PP_BER_RxDest          0x8000 /* Received framed passed address filter */

#define PP_RxMiss    0x0130  /*  Receiver miss counter */

#define PP_TxCol     0x0132  /*  Transmit collision counter */

#define PP_LineSTAT  0x0134  /* Line status */
#define PP_LineSTAT_LinkOK     0x0080  /* Line is connected and working */
#define PP_LineSTAT_AUI        0x0100  /* Connected via AUI */
#define PP_LineSTAT_10BT       0x0200  /* Connected via twisted pair */
#define PP_LineSTAT_Polarity   0x1000  /* Line polarity OK (10BT only) */
#define PP_LineSTAT_CRS        0x4000  /* Frame being received */

#define PP_SelfSTAT  0x0136  /* Chip self status */
#define PP_SelfSTAT_33VActive  0x0040  /* supply voltage is 3.3V */
#define PP_SelfSTAT_InitD      0x0080  /* Chip initialization complete */
#define PP_SelfSTAT_SIBSY      0x0100  /* EEPROM is busy */
#define PP_SelfSTAT_EEPROM     0x0200  /* EEPROM present */
#define PP_SelfSTAT_EEPROM_OK  0x0400  /* EEPROM checks out */
#define PP_SelfSTAT_ELPresent  0x0800  /* External address latch logic available */
#define PP_SelfSTAT_EEsize     0x1000  /* Size of EEPROM */

#define PP_BusSTAT   0x0138  /* Bus status */
#define PP_BusSTAT_TxBid       0x0080  /* Tx error */
#define PP_BusSTAT_TxRDY       0x0100  /* Ready for Tx data */

#define PP_TDR       0x013C  /* AUI Time Domain Reflectometer */

/* initiate transmit registers */

#define PP_TxCommand 0x0144  /* Tx Command */
#define PP_TxLength  0x0146  /* Tx Length */


/* address filter registers */

#define PP_LAF       0x0150  /* Logical address filter (6 bytes) */
#define PP_IA        0x0158  /* Individual address (MAC) */

/* EEPROM Kram */
#define SI_BUSY 0x0100
#define PP_SelfST 0x0136	/*  Self State register */
#define PP_EECMD 0x0040		/*  NVR Interface Command register */
#define PP_EEData 0x0042	/*  NVR Interface Data Register */
#define EEPROM_WRITE_EN		0x00F0
#define EEPROM_WRITE_DIS	0x0000
#define EEPROM_WRITE_CMD	0x0100
#define EEPROM_READ_CMD		0x0200
#define EEPROM_ERASE_CMD	0x0300

extern int cs8900_e2prom_read(uchar, ushort *);
extern int cs8900_e2prom_write(uchar, ushort);

#endif /* CONFIG_DRIVER_CS8900 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产一区二区在线播放| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 99re在线精品| 高清成人免费视频| 粉嫩久久99精品久久久久久夜| 黑人巨大精品欧美黑白配亚洲| 日本美女一区二区三区| 日本女优在线视频一区二区 | 精品国产一区二区三区av性色| 欧美怡红院视频| 欧美日韩国产123区| 欧美日韩免费观看一区二区三区| 91久久一区二区| 欧美日韩精品一区二区三区| 欧美性大战久久久久久久蜜臀| 欧美日韩黄色影视| 欧美日产国产精品| 欧美一区二区三区在| 欧美不卡视频一区| 国产午夜精品久久久久久免费视| 国产拍欧美日韩视频二区| 中文字幕日韩精品一区| 亚洲黄色录像片| 日韩av中文字幕一区二区三区| 美国十次了思思久久精品导航| 国内精品国产成人国产三级粉色| 成人av先锋影音| 欧美午夜精品理论片a级按摩| 777久久久精品| 国产精品久久久久久福利一牛影视| 亚洲综合另类小说| 久久国产福利国产秒拍| www.欧美精品一二区| 欧美伊人久久久久久午夜久久久久| 欧美精品电影在线播放| 欧美成人性福生活免费看| 中文字幕中文字幕一区二区| 婷婷丁香久久五月婷婷| 国产精品99久久久久久久vr | 国产麻豆精品在线观看| 成人一级片网址| 欧美日韩一区在线| 国产欧美一区二区精品秋霞影院| 亚洲一区二区三区四区中文字幕| 国产主播一区二区| 欧美人与禽zozo性伦| 中日韩av电影| 蜜桃av噜噜一区二区三区小说| 99精品国产视频| 久久免费午夜影院| 日韩激情av在线| 色天天综合色天天久久| 欧美国产欧美综合| 免费在线观看不卡| 欧美性淫爽ww久久久久无| 欧美国产成人精品| 激情综合色丁香一区二区| 欧美在线你懂得| 亚洲欧洲成人精品av97| 国产一区视频在线看| 欧美一区二区精品| 亚洲成a人片在线观看中文| 粉嫩绯色av一区二区在线观看| 欧美精品在线观看播放| 亚洲一区在线视频观看| 91在线视频网址| 中文字幕一区二区三区色视频| 久久草av在线| 欧美成人精品福利| 日本不卡视频在线观看| 91.麻豆视频| 天堂va蜜桃一区二区三区漫画版| 一本色道久久综合亚洲91| 国产精品视频yy9299一区| 国产盗摄女厕一区二区三区| 久久久亚洲精华液精华液精华液 | 欧美精品一区二区在线播放| 蜜桃av一区二区| 欧美成人乱码一区二区三区| 激情图片小说一区| 精品日韩在线一区| 极品少妇xxxx精品少妇偷拍 | 在线视频观看一区| 亚洲精品国产一区二区精华液 | 午夜精品一区二区三区免费视频| 在线免费精品视频| 亚洲中国最大av网站| 欧美群妇大交群中文字幕| 天天操天天色综合| 精品国产sm最大网站| 激情深爱一区二区| 国产精品丝袜在线| 91行情网站电视在线观看高清版| 亚洲午夜免费福利视频| 91精品国产综合久久精品麻豆| 日本中文一区二区三区| 日韩免费视频一区二区| 国产91精品一区二区麻豆网站| 中文字幕一区免费在线观看| 在线一区二区视频| 老司机午夜精品| 国产精品激情偷乱一区二区∴| 日本韩国精品在线| 精品在线免费视频| 中文字幕在线一区免费| 欧美电影影音先锋| 国产精品18久久久久| 国产精品人妖ts系列视频| 欧美优质美女网站| 国产一区二区电影| 一区二区三区中文免费| 精品三级在线观看| 在线欧美一区二区| 国模无码大尺度一区二区三区| |精品福利一区二区三区| 91精品婷婷国产综合久久性色| 国产福利一区在线观看| 爽好久久久欧美精品| 国产精品免费看片| 日韩一区二区三区四区五区六区| 成人免费看视频| 蜜臀久久久久久久| 亚洲三级理论片| 久久综合久久久久88| 欧美视频第二页| 成人99免费视频| 久久成人久久鬼色| 亚洲chinese男男1069| 欧美国产一区二区在线观看| 在线电影院国产精品| 91看片淫黄大片一级在线观看| 国模一区二区三区白浆| 亚洲不卡av一区二区三区| 国产精品乱码一区二区三区软件| 欧美一区二区私人影院日本| 色哟哟国产精品| 波波电影院一区二区三区| 精品一区二区三区免费观看| 天堂蜜桃一区二区三区| 亚洲国产精品久久不卡毛片| 中文字幕乱码一区二区免费| 精品国产一区二区亚洲人成毛片 | 国产成人啪免费观看软件| 秋霞午夜av一区二区三区 | 欧美日韩精品二区第二页| 91在线视频网址| 成人av资源站| 国产xxx精品视频大全| 国产美女久久久久| 国产在线播放一区二区三区| 经典三级视频一区| 久久精品国产免费| 久久国产精品无码网站| 久久国产精品99精品国产| 久久 天天综合| 国产精品资源网站| 国产成人自拍网| 91片在线免费观看| 99精品在线观看视频| 色综合天天综合狠狠| 91蜜桃在线观看| 色成年激情久久综合| 欧美午夜电影在线播放| 4438x亚洲最大成人网| 日韩一区二区麻豆国产| 337p粉嫩大胆色噜噜噜噜亚洲| 精品欧美黑人一区二区三区| 久久精品一区二区三区不卡牛牛| 国产日韩v精品一区二区| 亚洲欧美综合色| 亚洲v精品v日韩v欧美v专区| 久久精品国产亚洲a| 国产一二精品视频| 99re热这里只有精品免费视频| 欧美中文一区二区三区| 欧美一级一区二区| 国产欧美一区二区在线| 国产精品国产三级国产aⅴ原创| 亚洲免费观看视频| 麻豆一区二区在线| 成人免费视频一区| 欧美日本在线视频| 国产视频911| 婷婷综合另类小说色区| 久久 天天综合| 色婷婷av久久久久久久| 欧美xxx久久| 日韩美女精品在线| 蜜臀久久99精品久久久久宅男| 国产 日韩 欧美大片| 欧美三级韩国三级日本一级| 日韩久久精品一区| 亚洲精品免费播放| 国产精品一区二区男女羞羞无遮挡| 成人app软件下载大全免费| 欧美日本视频在线| 国产精品嫩草影院av蜜臀| 秋霞影院一区二区| 在线一区二区观看| 国产亚洲欧洲997久久综合 |