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

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

?? pci.c

?? u-boot1.3.0的原碼,從配了網絡驅動和FLASH的驅動,并該用ESC竟如
?? C
字號:
/* * Copyright (C) 2006 Freescale Semiconductor, Inc. * * See file CREDITS for list of people who contributed to this * project. * * 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. *//* * PCI Configuration space access support for MPC83xx PCI Bridge */#include <asm/mmu.h>#include <asm/io.h>#include <common.h>#include <pci.h>#include <i2c.h>#if defined(CONFIG_OF_FLAT_TREE)#include <ft_build.h>#elif defined(CONFIG_OF_LIBFDT)#include <libfdt.h>#endif#include <asm/fsl_i2c.h>DECLARE_GLOBAL_DATA_PTR;#if defined(CONFIG_PCI)#define PCI_FUNCTION_CONFIG   0x44#define PCI_FUNCTION_CFG_LOCK 0x20/* * Initialize PCI Devices, report devices found */#ifndef CONFIG_PCI_PNPstatic struct pci_config_table pci_mpc83xxemds_config_table[] = {	{		PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,		pci_cfgfunc_config_device,		{PCI_ENET0_IOADDR,		PCI_ENET0_MEMADDR,		PCI_COMMON_MEMORY | PCI_COMMAND_MASTER}	},	{}}#endifstatic struct pci_controller hose[] = {	{#ifndef CONFIG_PCI_PNP		config_table:pci_mpc83xxemds_config_table,#endif	},};/********************************************************************** * pci_init_board() *********************************************************************/void pci_init_board(void)#ifdef CONFIG_PCISLAVE{	u16 reg16;	volatile immap_t *immr;	volatile law83xx_t *pci_law;	volatile pot83xx_t *pci_pot;	volatile pcictrl83xx_t *pci_ctrl;	volatile pciconf83xx_t *pci_conf;	immr = (immap_t *) CFG_IMMR;	pci_law = immr->sysconf.pcilaw;	pci_pot = immr->ios.pot;	pci_ctrl = immr->pci_ctrl;	pci_conf = immr->pci_conf;	/*	 * Configure PCI Inbound Translation Windows	 */	pci_ctrl[0].pitar0 = 0x0;	pci_ctrl[0].pibar0 = 0x0;	pci_ctrl[0].piwar0 = PIWAR_EN | PIWAR_RTT_SNOOP |	    PIWAR_WTT_SNOOP | PIWAR_IWS_4K;	pci_ctrl[0].pitar1 = 0x0;	pci_ctrl[0].pibar1 = 0x0;	pci_ctrl[0].piebar1 = 0x0;	pci_ctrl[0].piwar1 &= ~PIWAR_EN;	pci_ctrl[0].pitar2 = 0x0;	pci_ctrl[0].pibar2 = 0x0;	pci_ctrl[0].piebar2 = 0x0;	pci_ctrl[0].piwar2 &= ~PIWAR_EN;	hose[0].first_busno = 0;	hose[0].last_busno = 0xff;	pci_setup_indirect(&hose[0],			   (CFG_IMMR + 0x8300), (CFG_IMMR + 0x8304));	reg16 = 0xff;	pci_hose_read_config_word(&hose[0], PCI_BDF(0, 0, 0),				  PCI_COMMAND, &reg16);	reg16 |= PCI_COMMAND_SERR | PCI_COMMAND_MEMORY;	pci_hose_write_config_word(&hose[0], PCI_BDF(0, 0, 0),				   PCI_COMMAND, reg16);	/*	 * Clear non-reserved bits in status register.	 */	pci_hose_write_config_word(&hose[0], PCI_BDF(0, 0, 0),				   PCI_STATUS, 0xffff);	pci_hose_write_config_byte(&hose[0], PCI_BDF(0, 0, 0),				   PCI_LATENCY_TIMER, 0x80);	/*	 * Unlock configuration lock in PCI function configuration register.	 */	pci_hose_read_config_word(&hose[0], PCI_BDF(0, 0, 0),				  PCI_FUNCTION_CONFIG, &reg16);	reg16 &= ~(PCI_FUNCTION_CFG_LOCK);	pci_hose_write_config_word(&hose[0], PCI_BDF(0, 0, 0),				   PCI_FUNCTION_CONFIG, reg16);	printf("Enabled PCI 32bit Agent Mode\n");}#else{	volatile immap_t *immr;	volatile clk83xx_t *clk;	volatile law83xx_t *pci_law;	volatile pot83xx_t *pci_pot;	volatile pcictrl83xx_t *pci_ctrl;	volatile pciconf83xx_t *pci_conf;	u16 reg16;	u32 val32;	u32 dev;	immr = (immap_t *) CFG_IMMR;	clk = (clk83xx_t *) & immr->clk;	pci_law = immr->sysconf.pcilaw;	pci_pot = immr->ios.pot;	pci_ctrl = immr->pci_ctrl;	pci_conf = immr->pci_conf;	/*	 * Configure PCI controller and PCI_CLK_OUTPUT both in 66M mode	 */	val32 = clk->occr;	udelay(2000);#if defined(PCI_66M)	clk->occr = OCCR_PCICOE0 | OCCR_PCICOE1 | OCCR_PCICOE2;	printf("PCI clock is 66MHz\n");#elif defined(PCI_33M)	clk->occr = OCCR_PCICOE0 | OCCR_PCICOE1 | OCCR_PCICOE2 |	    OCCR_PCICD0 | OCCR_PCICD1 | OCCR_PCICD2 | OCCR_PCICR;	printf("PCI clock is 33MHz\n");#else	clk->occr = OCCR_PCICOE0 | OCCR_PCICOE1 | OCCR_PCICOE2;	printf("PCI clock is 66MHz\n");#endif	udelay(2000);	/*	 * Configure PCI Local Access Windows	 */	pci_law[0].bar = CFG_PCI_MEM_PHYS & LAWBAR_BAR;	pci_law[0].ar = LAWAR_EN | LAWAR_SIZE_512M;	pci_law[1].bar = CFG_PCI_IO_PHYS & LAWBAR_BAR;	pci_law[1].ar = LAWAR_EN | LAWAR_SIZE_1M;	/*	 * Configure PCI Outbound Translation Windows	 */	/* PCI mem space - prefetch */	pci_pot[0].potar = (CFG_PCI_MEM_BASE >> 12) & POTAR_TA_MASK;	pci_pot[0].pobar = (CFG_PCI_MEM_PHYS >> 12) & POBAR_BA_MASK;	pci_pot[0].pocmr =	    POCMR_EN | POCMR_SE | (POCMR_CM_256M & POCMR_CM_MASK);	/* PCI mmio - non-prefetch mem space */	pci_pot[1].potar = (CFG_PCI_MMIO_BASE >> 12) & POTAR_TA_MASK;	pci_pot[1].pobar = (CFG_PCI_MMIO_PHYS >> 12) & POBAR_BA_MASK;	pci_pot[1].pocmr = POCMR_EN | (POCMR_CM_256M & POCMR_CM_MASK);	/* PCI IO space */	pci_pot[2].potar = (CFG_PCI_IO_BASE >> 12) & POTAR_TA_MASK;	pci_pot[2].pobar = (CFG_PCI_IO_PHYS >> 12) & POBAR_BA_MASK;	pci_pot[2].pocmr = POCMR_EN | POCMR_IO | (POCMR_CM_1M & POCMR_CM_MASK);	/*	 * Configure PCI Inbound Translation Windows	 */	pci_ctrl[0].pitar1 = (CFG_PCI_SLV_MEM_LOCAL >> 12) & PITAR_TA_MASK;	pci_ctrl[0].pibar1 = (CFG_PCI_SLV_MEM_BUS >> 12) & PIBAR_MASK;	pci_ctrl[0].piebar1 = 0x0;	pci_ctrl[0].piwar1 =	    PIWAR_EN | PIWAR_PF | PIWAR_RTT_SNOOP | PIWAR_WTT_SNOOP |	    PIWAR_IWS_2G;	/*	 * Release PCI RST Output signal	 */	udelay(2000);	pci_ctrl[0].gcr = 1;	udelay(2000);	hose[0].first_busno = 0;	hose[0].last_busno = 0xff;	/* PCI memory prefetch space */	pci_set_region(hose[0].regions + 0,		       CFG_PCI_MEM_BASE,		       CFG_PCI_MEM_PHYS,		       CFG_PCI_MEM_SIZE, PCI_REGION_MEM | PCI_REGION_PREFETCH);	/* PCI memory space */	pci_set_region(hose[0].regions + 1,		       CFG_PCI_MMIO_BASE,		       CFG_PCI_MMIO_PHYS, CFG_PCI_MMIO_SIZE, PCI_REGION_MEM);	/* PCI IO space */	pci_set_region(hose[0].regions + 2,		       CFG_PCI_IO_BASE,		       CFG_PCI_IO_PHYS, CFG_PCI_IO_SIZE, PCI_REGION_IO);	/* System memory space */	pci_set_region(hose[0].regions + 3,		       CFG_PCI_SLV_MEM_LOCAL,		       CFG_PCI_SLV_MEM_BUS,		       CFG_PCI_SLV_MEM_SIZE,		       PCI_REGION_MEM | PCI_REGION_MEMORY);	hose[0].region_count = 4;	pci_setup_indirect(&hose[0],			   (CFG_IMMR + 0x8300), (CFG_IMMR + 0x8304));	pci_register_hose(hose);	/*	 * Write command register	 */	reg16 = 0xff;	dev = PCI_BDF(0, 0, 0);	pci_hose_read_config_word(&hose[0], dev, PCI_COMMAND, &reg16);	reg16 |= PCI_COMMAND_SERR | PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY;	pci_hose_write_config_word(&hose[0], dev, PCI_COMMAND, reg16);	/*	 * Clear non-reserved bits in status register.	 */	pci_hose_write_config_word(&hose[0], dev, PCI_STATUS, 0xffff);	pci_hose_write_config_byte(&hose[0], dev, PCI_LATENCY_TIMER, 0x80);	pci_hose_write_config_byte(&hose[0], dev, PCI_CACHE_LINE_SIZE, 0x08);	/*	 * Hose scan.	 */	hose->last_busno = pci_hose_scan(hose);}#endif				/* CONFIG_PCISLAVE */#if defined(CONFIG_OF_LIBFDT)voidft_pci_setup(void *blob, bd_t *bd){	int nodeoffset;	int err;	int tmp[2];	nodeoffset = fdt_find_node_by_path(blob, "/" OF_SOC "/pci@8500");	if (nodeoffset >= 0) {		tmp[0] = cpu_to_be32(hose[0].first_busno);		tmp[1] = cpu_to_be32(hose[0].last_busno);		err = fdt_setprop(blob, nodeoffset, "bus-range",				  tmp, sizeof(tmp));		tmp[0] = cpu_to_be32(gd->pci_clk);		err = fdt_setprop(blob, nodeoffset, "clock-frequency",				  tmp, sizeof(tmp[0]));	}}#elif defined(CONFIG_OF_FLAT_TREE)voidft_pci_setup(void *blob, bd_t *bd){	u32 *p;	int len;	p = (u32 *)ft_get_prop(blob, "/" OF_SOC "/pci@8500/bus-range", &len);	if (p != NULL) {		p[0] = hose[0].first_busno;		p[1] = hose[0].last_busno;	}}#endif				/* CONFIG_OF_FLAT_TREE */#endif				/* CONFIG_PCI */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区电影网| 成人av第一页| 国产成人综合网站| 欧洲一区在线观看| 欧美成人a在线| 亚洲韩国一区二区三区| 风间由美一区二区av101| 色婷婷激情综合| 国产亚洲欧洲997久久综合| 一区二区三区在线免费观看| 国产露脸91国语对白| 在线成人免费视频| 亚洲一二三区在线观看| 成人av网站大全| 精品久久国产字幕高潮| 无吗不卡中文字幕| 亚洲一区二区精品3399| 毛片av一区二区| 欧美亚一区二区| 国产精品二三区| 成人影视亚洲图片在线| 国产日韩综合av| 国产高清亚洲一区| wwwwww.欧美系列| 蜜臀av国产精品久久久久| 欧美日韩欧美一区二区| 亚洲在线成人精品| 欧洲一区二区三区免费视频| 亚洲欧洲无码一区二区三区| 成人综合婷婷国产精品久久蜜臀 | 视频一区二区三区在线| 在线观看一区二区视频| 依依成人综合视频| 欧美午夜电影在线播放| 一区二区久久久| 色婷婷激情综合| 国产精品第一页第二页第三页| 午夜精品免费在线| 91天堂素人约啪| 国产精品久久久久久久岛一牛影视| 国产九色精品成人porny| 精品99久久久久久| 国产一区二区伦理片| 中文字幕精品—区二区四季| 欧美日韩一区二区三区在线看| 欧美精品久久久久久久久老牛影院| 欧美精品 日韩| 爽好久久久欧美精品| 欧美精品乱人伦久久久久久| 日韩激情视频网站| 精品精品国产高清a毛片牛牛| 蜜桃传媒麻豆第一区在线观看| 欧美一区二区三区视频| 激情图片小说一区| 国产精品久久久久婷婷| 国产一区二区三区不卡在线观看| 中文字幕精品在线不卡| 成人精品小蝌蚪| 悠悠色在线精品| 日韩一区二区在线看片| 久久国产精品99精品国产| 国产精品久久久久9999吃药| 国产一区999| 91国偷自产一区二区开放时间 | 欧美午夜影院一区| 欧美日本视频在线| 欧美激情艳妇裸体舞| 青草国产精品久久久久久| 国产一区二区三区在线观看精品| 欧美欧美欧美欧美首页| 亚洲va欧美va国产va天堂影院| 国产色综合一区| 在线精品观看国产| 亚洲最新在线观看| 欧美剧情片在线观看| 蜜桃一区二区三区在线观看| 在线观看亚洲专区| 国产日韩亚洲欧美综合| 国产91对白在线观看九色| 国产精品天美传媒沈樵| 91福利视频在线| 日韩影视精彩在线| 久久精品视频免费观看| 91香蕉视频mp4| 美女在线视频一区| 一区二区三区美女| 久久影院午夜论| 亚洲一区视频在线观看视频| 欧美主播一区二区三区美女| 偷拍与自拍一区| 国产精品久久久久一区二区三区共| 成人av网站免费观看| 亚洲资源在线观看| 欧美va亚洲va在线观看蝴蝶网| 国产一区福利在线| 久久精品国产亚洲高清剧情介绍| 成人黄色片在线观看| 亚洲一区二区三区四区在线免费观看| 91超碰这里只有精品国产| 成人综合在线观看| 国产精品12区| 久久精品国产色蜜蜜麻豆| 亚洲色图在线看| 国产日韩欧美精品一区| 欧美成人一区二区三区在线观看| 国产精品进线69影院| 国产成人av影院| 国产真实乱对白精彩久久| 久久无码av三级| 国产91精品一区二区麻豆亚洲| 亚洲国产一区二区三区| 日韩你懂的在线播放| 91成人国产精品| 国产自产v一区二区三区c| 狠狠色丁香久久婷婷综合丁香| 成人三级伦理片| 欧美一区二区三区爱爱| 久久精品一区二区三区av| 欧美成人福利视频| 日韩小视频在线观看专区| 国产婷婷精品av在线| 一区二区高清在线| 粉嫩绯色av一区二区在线观看 | 国产欧美一区二区三区网站| 国产精品污网站| 日韩av一区二区在线影视| 国产91丝袜在线观看| 欧美日韩激情在线| 91精品国产手机| 国产三级精品视频| 日韩激情中文字幕| 懂色av一区二区三区免费观看| 色欧美片视频在线观看在线视频| 欧美猛男男办公室激情| 国产性天天综合网| 日韩和欧美一区二区| 91麻豆精品国产91久久久使用方法| 日韩欧美综合一区| 亚洲色图在线播放| 日本怡春院一区二区| 国产精品系列在线播放| 欧美色中文字幕| 国产日韩欧美麻豆| 一区二区高清免费观看影视大全| 五月婷婷综合在线| 日本久久一区二区| 最新国产成人在线观看| 成人中文字幕电影| 中文字幕欧美激情一区| 麻豆成人91精品二区三区| 欧美日韩一区二区三区在线| 亚洲色大成网站www久久九九| 国产99精品国产| 亚洲天堂中文字幕| 99久久国产综合色|国产精品| 一区二区三区在线免费观看 | 久久成人av少妇免费| 亚洲国产色一区| 成人国产精品视频| 日本人妖一区二区| 国产精品国产三级国产aⅴ无密码| 91啪在线观看| 国内精品在线播放| 日韩片之四级片| 一区二区在线观看视频在线观看| av在线一区二区三区| 性久久久久久久| 国产午夜精品一区二区| 91行情网站电视在线观看高清版| 婷婷综合五月天| 国产欧美一区二区三区网站| 色呦呦一区二区三区| 捆绑紧缚一区二区三区视频| 国产精品日产欧美久久久久| 欧美日韩www| 一本色道久久加勒比精品 | 国产成人8x视频一区二区| 中文字幕一区二区三区不卡| 日韩精品中文字幕一区二区三区| 91高清在线观看| 欧美日本一区二区在线观看| 欧美性生活大片视频| 欧美日韩三级一区| 久久麻豆一区二区| 国产精品伦理在线| 亚洲福利国产精品| 免费在线欧美视频| 高潮精品一区videoshd| 成人激情小说网站| 欧美日韩国产大片| 久久久777精品电影网影网 | 一区二区三区视频在线观看| 欧美日韩激情一区二区三区| 免费看欧美女人艹b| 国产精品电影院| 最新热久久免费视频| 国产精品毛片高清在线完整版| 久久久五月婷婷| 国产精品久久久久一区二区三区| 国产女同性恋一区二区|