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

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

?? pci.c

?? 根據添加了fs2410平臺的arch目錄
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * BRIEF MODULE DESCRIPTION * Galileo Evaluation Boards PCI support. * * The general-purpose functions to read/write and configure the GT64120A's * PCI registers (function names start with pci0 or pci1) are either direct * copies of functions written by Galileo Technology, or are modifications * of their functions to work with Linux 2.4 vs Linux 2.2.  These functions * are Copyright - Galileo Technology. * * Other functions are derived from other MIPS PCI implementations, or were * written by RidgeRun, Inc,  Copyright (C) 2000 RidgeRun, Inc. *   glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com * * Copyright 2001 MontaVista Software Inc. * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net * *  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  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT, *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *  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 <linux/config.h>#include <linux/types.h>#include <linux/pci.h>#include <linux/kernel.h>#include <linux/slab.h>#include <linux/version.h>#include <asm/pci.h>#include <asm/io.h>#include <asm/gt64120/gt64120.h>#include <linux/init.h>#ifdef CONFIG_PCI#define SELF 0/* * These functions and structures provide the BIOS scan and mapping of the PCI * devices. */#define MAX_PCI_DEVS 10struct pci_device {	u32 slot;	u32 BARtype[6];	u32 BARsize[6];};static void __init scan_and_initialize_pci(void);static u32 __init scan_pci_bus(struct pci_device *pci_devices);static void __init allocate_pci_space(struct pci_device *pci_devices);/* * The functions that actually read and write to the controller. * *  Copied from or modified from Galileo Technology code. */static unsigned int pci0ReadConfigReg(int offset, struct pci_dev *device);static void pci0WriteConfigReg(unsigned int offset,			       struct pci_dev *device, unsigned int data);static unsigned int pci1ReadConfigReg(int offset, struct pci_dev *device);static void pci1WriteConfigReg(unsigned int offset,			       struct pci_dev *device, unsigned int data);static void pci0MapIOspace(unsigned int pci0IoBase,			   unsigned int pci0IoLength);static void pci1MapIOspace(unsigned int pci1IoBase,			   unsigned int pci1IoLength);static void pci0MapMemory0space(unsigned int pci0Mem0Base,				unsigned int pci0Mem0Length);static void pci1MapMemory0space(unsigned int pci1Mem0Base,				unsigned int pci1Mem0Length);static void pci0MapMemory1space(unsigned int pci0Mem1Base,				unsigned int pci0Mem1Length);static void pci1MapMemory1space(unsigned int pci1Mem1Base,				unsigned int pci1Mem1Length);static unsigned int pci0GetIOspaceBase(void);static unsigned int pci0GetIOspaceSize(void);static unsigned int pci0GetMemory0Base(void);static unsigned int pci0GetMemory0Size(void);static unsigned int pci0GetMemory1Base(void);static unsigned int pci0GetMemory1Size(void);static unsigned int pci1GetIOspaceBase(void);static unsigned int pci1GetIOspaceSize(void);static unsigned int pci1GetMemory0Base(void);static unsigned int pci1GetMemory0Size(void);static unsigned int pci1GetMemory1Base(void);static unsigned int pci1GetMemory1Size(void);/*  Functions to implement "pci ops"  */static int galileo_pcibios_read_config_word(struct pci_dev *dev,					    int offset, u16 * val);static int galileo_pcibios_read_config_byte(struct pci_dev *dev,					    int offset, u8 * val);static int galileo_pcibios_read_config_dword(struct pci_dev *dev,					     int offset, u32 * val);static int galileo_pcibios_write_config_byte(struct pci_dev *dev,					     int offset, u8 val);static int galileo_pcibios_write_config_word(struct pci_dev *dev,					     int offset, u16 val);static int galileo_pcibios_write_config_dword(struct pci_dev *dev,					      int offset, u32 val);static void galileo_pcibios_set_master(struct pci_dev *dev);/* *  General-purpose PCI functions. *//* * pci0MapIOspace - Maps PCI0 IO space for the master. * Inputs: base and length of pci0Io */static void pci0MapIOspace(unsigned int pci0IoBase,			   unsigned int pci0IoLength){	unsigned int pci0IoTop =	    (unsigned int) (pci0IoBase + pci0IoLength);	if (pci0IoLength == 0)		pci0IoTop++;	pci0IoBase = (unsigned int) (pci0IoBase >> 21);	pci0IoTop = (unsigned int) (((pci0IoTop - 1) & 0x0fffffff) >> 21);	GT_WRITE(GT_PCI0IOLD_OFS, pci0IoBase);	GT_WRITE(GT_PCI0IOHD_OFS, pci0IoTop);}/* * pci1MapIOspace - Maps PCI1 IO space for the master. * Inputs: base and length of pci1Io */static void pci1MapIOspace(unsigned int pci1IoBase,			   unsigned int pci1IoLength){	unsigned int pci1IoTop =	    (unsigned int) (pci1IoBase + pci1IoLength);	if (pci1IoLength == 0)		pci1IoTop++;	pci1IoBase = (unsigned int) (pci1IoBase >> 21);	pci1IoTop = (unsigned int) (((pci1IoTop - 1) & 0x0fffffff) >> 21);	GT_WRITE(GT_PCI1IOLD_OFS, pci1IoBase);	GT_WRITE(GT_PCI1IOHD_OFS, pci1IoTop);}/* * pci0MapMemory0space - Maps PCI0 memory0 space for the master. * Inputs: base and length of pci0Mem0 */static void pci0MapMemory0space(unsigned int pci0Mem0Base,				unsigned int pci0Mem0Length){	unsigned int pci0Mem0Top = pci0Mem0Base + pci0Mem0Length;	if (pci0Mem0Length == 0)		pci0Mem0Top++;	pci0Mem0Base = pci0Mem0Base >> 21;	pci0Mem0Top = ((pci0Mem0Top - 1) & 0x0fffffff) >> 21;	GT_WRITE(GT_PCI0M0LD_OFS, pci0Mem0Base);	GT_WRITE(GT_PCI0M0HD_OFS, pci0Mem0Top);}/* * pci1MapMemory0space - Maps PCI1 memory0 space for the master. * Inputs: base and length of pci1Mem0 */static void pci1MapMemory0space(unsigned int pci1Mem0Base,				unsigned int pci1Mem0Length){	unsigned int pci1Mem0Top = pci1Mem0Base + pci1Mem0Length;	if (pci1Mem0Length == 0)		pci1Mem0Top++;	pci1Mem0Base = pci1Mem0Base >> 21;	pci1Mem0Top = ((pci1Mem0Top - 1) & 0x0fffffff) >> 21;	GT_WRITE(GT_PCI1M0LD_OFS, pci1Mem0Base);	GT_WRITE(GT_PCI1M0HD_OFS, pci1Mem0Top);}/* * pci0MapMemory1space - Maps PCI0 memory1 space for the master. * Inputs: base and length of pci0Mem1 */static void pci0MapMemory1space(unsigned int pci0Mem1Base,				unsigned int pci0Mem1Length){	unsigned int pci0Mem1Top = pci0Mem1Base + pci0Mem1Length;	if (pci0Mem1Length == 0)		pci0Mem1Top++;	pci0Mem1Base = pci0Mem1Base >> 21;	pci0Mem1Top = ((pci0Mem1Top - 1) & 0x0fffffff) >> 21;	GT_WRITE(GT_PCI0M1LD_OFS, pci0Mem1Base);	GT_WRITE(GT_PCI0M1HD_OFS, pci0Mem1Top);}/* * pci1MapMemory1space - Maps PCI1 memory1 space for the master. * Inputs: base and length of pci1Mem1 */static void pci1MapMemory1space(unsigned int pci1Mem1Base,				unsigned int pci1Mem1Length){	unsigned int pci1Mem1Top = pci1Mem1Base + pci1Mem1Length;	if (pci1Mem1Length == 0)		pci1Mem1Top++;	pci1Mem1Base = pci1Mem1Base >> 21;	pci1Mem1Top = ((pci1Mem1Top - 1) & 0x0fffffff) >> 21;	GT_WRITE(GT_PCI1M1LD_OFS, pci1Mem1Base);	GT_WRITE(GT_PCI1M1HD_OFS, pci1Mem1Top);}/* * pci0GetIOspaceBase - Return PCI0 IO Base Address. * Inputs: N/A * Returns: PCI0 IO Base Address. */static unsigned int pci0GetIOspaceBase(void){	unsigned int base;	GT_READ(GT_PCI0IOLD_OFS, &base);	base = base << 21;	return base;}/* * pci0GetIOspaceSize - Return PCI0 IO Bar Size. * Inputs: N/A * Returns: PCI0 IO Bar Size. */static unsigned int pci0GetIOspaceSize(void){	unsigned int top, base, size;	GT_READ(GT_PCI0IOLD_OFS, &base);	base = base << 21;	GT_READ(GT_PCI0IOHD_OFS, &top);	top = (top << 21);	size = ((top - base) & 0xfffffff);	size = size | 0x1fffff;	return (size + 1);}/* * pci0GetMemory0Base - Return PCI0 Memory 0 Base Address. * Inputs: N/A * Returns: PCI0 Memory 0 Base Address. */static unsigned int pci0GetMemory0Base(void){	unsigned int base;	GT_READ(GT_PCI0M0LD_OFS, &base);	base = base << 21;	return base;}/* * pci0GetMemory0Size - Return PCI0 Memory 0 Bar Size. * Inputs: N/A * Returns: PCI0 Memory 0 Bar Size. */static unsigned int pci0GetMemory0Size(void){	unsigned int top, base, size;	GT_READ(GT_PCI0M0LD_OFS, &base);	base = base << 21;	GT_READ(GT_PCI0M0HD_OFS, &top);	top = (top << 21);	size = ((top - base) & 0xfffffff);	size = size | 0x1fffff;	return (size + 1);}/* * pci0GetMemory1Base - Return PCI0 Memory 1 Base Address. * Inputs: N/A * Returns: PCI0 Memory 1 Base Address. */static unsigned int pci0GetMemory1Base(void){	unsigned int base;	GT_READ(GT_PCI0M1LD_OFS, &base);	base = base << 21;	return base;}/* * pci0GetMemory1Size - Return PCI0 Memory 1 Bar Size. * Inputs: N/A * Returns: PCI0 Memory 1 Bar Size. */static unsigned int pci0GetMemory1Size(void){	unsigned int top, base, size;	GT_READ(GT_PCI0M1LD_OFS, &base);	base = base << 21;	GT_READ(GT_PCI0M1HD_OFS, &top);	top = (top << 21);	size = ((top - base) & 0xfffffff);	size = size | 0x1fffff;	return (size + 1);}/* * pci1GetIOspaceBase - Return PCI1 IO Base Address. * Inputs: N/A * Returns: PCI1 IO Base Address. */static unsigned int pci1GetIOspaceBase(void){	unsigned int base;	GT_READ(GT_PCI1IOLD_OFS, &base);	base = base << 21;	return base;}/* * pci1GetIOspaceSize - Return PCI1 IO Bar Size. * Inputs: N/A * Returns: PCI1 IO Bar Size. */static unsigned int pci1GetIOspaceSize(void){	unsigned int top, base, size;	GT_READ(GT_PCI1IOLD_OFS, &base);	base = base << 21;	GT_READ(GT_PCI1IOHD_OFS, &top);	top = (top << 21);	size = ((top - base) & 0xfffffff);	size = size | 0x1fffff;	return (size + 1);}/* * pci1GetMemory0Base - Return PCI1 Memory 0 Base Address. * Inputs: N/A * Returns: PCI1 Memory 0 Base Address. */static unsigned int pci1GetMemory0Base(void){	unsigned int base;	GT_READ(GT_PCI1M0LD_OFS, &base);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一级片网站| 一区二区三区四区不卡在线 | 国产精品一卡二| 久久国内精品自在自线400部| 一区二区三区**美女毛片| 一区视频在线播放| 国产网站一区二区三区| 久久久久久久综合日本| 欧美一区二区人人喊爽| 欧美日韩国产电影| 欧美日韩一本到| 91精品国产综合久久香蕉的特点| 91啪亚洲精品| 欧洲一区二区三区在线| 欧美裸体bbwbbwbbw| 欧美视频一二三区| 色狠狠色噜噜噜综合网| 日本二三区不卡| 91福利在线看| 欧美天堂一区二区三区| 91老师片黄在线观看| 色综合中文综合网| 91麻豆精品国产91久久久| 欧美日韩久久一区二区| 在线观看中文字幕不卡| 欧美中文字幕一区二区三区| 在线观看亚洲a| 成人综合在线观看| 成人理论电影网| 一本久久精品一区二区 | 亚洲欧洲三级电影| 亚洲码国产岛国毛片在线| 亚洲图片自拍偷拍| 午夜av一区二区| 免费日韩伦理电影| 日本成人中文字幕| 久久99国产精品尤物| 99久久伊人精品| 欧美福利视频导航| 久久久蜜桃精品| 亚洲日本在线观看| 久久精品国产免费| av在线不卡观看免费观看| 欧美丰满少妇xxxxx高潮对白| 欧美不卡在线视频| 一区二区三区四区亚洲| 国产精品91一区二区| 在线一区二区视频| 久久影院视频免费| 亚洲国产日韩a在线播放性色| 青草国产精品久久久久久| 毛片av中文字幕一区二区| 色综合天天性综合| 日韩欧美一区在线| 欧美色电影在线| 欧美性受xxxx黑人xyx| 成人午夜伦理影院| 五月天亚洲婷婷| 亚洲成人av资源| 激情图片小说一区| 国产精品一区二区久久精品爱涩 | 国产+成+人+亚洲欧洲自线| 99综合电影在线视频| 欧美体内she精高潮| 欧美电视剧在线看免费| www国产精品av| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲激情一二三区| 日韩综合一区二区| 成人永久免费视频| 欧美亚洲综合另类| 26uuu国产电影一区二区| 亚洲日本va在线观看| 国产亚洲一本大道中文在线| 日韩视频在线永久播放| 亚洲欧美在线高清| 亚洲第一福利视频在线| 视频在线观看一区二区三区| 黄一区二区三区| 91电影在线观看| 欧美—级在线免费片| 亚洲v日本v欧美v久久精品| 国产一区二区电影| 欧美日韩精品高清| 欧美国产日韩亚洲一区| 日韩国产欧美在线视频| 懂色av一区二区三区免费看| 国产精品视频免费| 亚洲一区影音先锋| 国产一区二区在线影院| 欧美中文字幕亚洲一区二区va在线 | 亚洲免费伊人电影| 成人精品亚洲人成在线| 日韩一级高清毛片| 国产精品国产三级国产aⅴ原创 | 日本在线播放一区二区三区| 国产精品1024久久| 欧美一二区视频| 亚洲一区二区三区视频在线播放| 国产精品白丝jk黑袜喷水| 3751色影院一区二区三区| 一区在线观看视频| 成人手机电影网| 日韩女优电影在线观看| 精品国产一二三区| 欧美精品tushy高清| 日韩一区二区视频| 午夜视频在线观看一区二区三区| 97精品电影院| 最新高清无码专区| jvid福利写真一区二区三区| 久久众筹精品私拍模特| 久久激情五月激情| 日韩欧美一区二区不卡| 免费一级欧美片在线观看| 欧美精品久久久久久久久老牛影院| 一区在线观看视频| 成人免费毛片app| 久久久久久9999| 久久精品国产亚洲a| 精品国产伦一区二区三区免费| 日本aⅴ亚洲精品中文乱码| 91精品国产黑色紧身裤美女| 亚洲成人精品一区| 欧美一级二级在线观看| 国产精品亚洲综合一区在线观看| 久久精品一区二区三区av| 国产91丝袜在线观看| 亚洲精品免费在线观看| 在线观看日韩高清av| 一区二区三区欧美日韩| 懂色av一区二区三区免费看| 久久免费视频色| 99免费精品视频| 亚洲一区av在线| 欧美成人vps| 99久久精品免费| 一区二区三区资源| 51久久夜色精品国产麻豆| 精品一区二区在线观看| 国产精品久久久久国产精品日日| 99精品一区二区三区| 一区二区三区日本| 福利一区福利二区| 成人av在线看| 日韩精品色哟哟| 久久一区二区三区四区| 色婷婷精品大视频在线蜜桃视频| 国产成人超碰人人澡人人澡| 日韩理论在线观看| 欧美一级精品大片| 99久久精品国产麻豆演员表| 日本特黄久久久高潮| xnxx国产精品| 欧美视频中文字幕| 国产盗摄一区二区| 精品国产一区二区亚洲人成毛片 | 日本少妇一区二区| 精品播放一区二区| 99re成人精品视频| 久久精品久久综合| 亚洲国产精品久久不卡毛片| 欧美激情在线免费观看| 欧美精品aⅴ在线视频| 国产福利不卡视频| 亚洲444eee在线观看| 国产精品嫩草久久久久| 91精品国产综合久久婷婷香蕉| 国产精品一区免费在线观看| 亚洲成av人片在线观看无码| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 91麻豆精品91久久久久久清纯| 成人午夜av电影| 国产一区二区精品在线观看| 日韩黄色小视频| 亚洲妇熟xx妇色黄| 国产精品国产三级国产普通话99 | 欧美无砖专区一中文字| 日韩一区二区免费在线电影| 日韩欧美国产高清| 亚洲精品一二三| 国产精品一卡二卡在线观看| 91精品国产综合久久蜜臀| 欧美高清在线视频| 精品一区二区三区av| 欧美日韩亚州综合| 亚洲综合另类小说| 欧美日韩在线一区二区| 一区二区三区日韩精品视频| av不卡一区二区三区| 欧美国产日韩一二三区| 国产福利精品一区| 国产亚洲综合色| 国产麻豆精品theporn| 日韩精品一区二区三区视频播放 | 国内精品久久久久影院薰衣草| 欧美性做爰猛烈叫床潮| 亚洲自拍偷拍综合| 欧美精品v日韩精品v韩国精品v| 午夜久久久影院|