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

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

?? pci.c

?? u-boot-1.1.6 源碼包
?? C
?? 第 1 頁 / 共 2 頁
字號:
		return 0;	return (high + 1 - low) << 20;}/********************************************************************* pciMapMemoryBank - Maps PCI_host memory bank "bank" for the slave.** Inputs: base and size of PCI SCS*********************************************************************/void pciMapMemoryBank (PCI_HOST host, MEMORY_BANK bank,		       unsigned int pciDramBase, unsigned int pciDramSize){	pciDramBase = pciDramBase & 0xfffff000;	pciDramBase = pciDramBase | (pciReadConfigReg (host,						       PCI_SCS_0_BASE_ADDRESS						       + 4 * bank,						       SELF) & 0x00000fff);	pciWriteConfigReg (host, PCI_SCS_0_BASE_ADDRESS + 4 * bank, SELF,			   pciDramBase);	if (pciDramSize == 0)		pciDramSize++;	GT_REG_WRITE (pci_scs_bank_size[host][bank], pciDramSize - 1);}/********************************************************************* pciSetRegionFeatures - This function modifys one of the 8 regions with*                         feature bits given as an input.*                       - Be advised to check the spec before modifying them.* Inputs: PCI_PROTECT_REGION region - one of the eight regions.*         unsigned int features - See file: pci.h there are defintion for those*                                 region features.*         unsigned int baseAddress - The region base Address.*         unsigned int topAddress - The region top Address.* Returns: false if one of the parameters is erroneous true otherwise.*********************************************************************/bool pciSetRegionFeatures (PCI_HOST host, PCI_ACCESS_REGIONS region,			   unsigned int features, unsigned int baseAddress,			   unsigned int regionLength){	unsigned int accessLow;	unsigned int accessHigh;	unsigned int accessTop = baseAddress + regionLength;	if (regionLength == 0) {	/* close the region. */		pciDisableAccessRegion (host, region);		return true;	}	/* base Address is store is bits [11:0] */	accessLow = (baseAddress & 0xfff00000) >> 20;	/* All the features are update according to the defines in pci.h (to be on	   the safe side we disable bits: [11:0] */	accessLow = accessLow | (features & 0xfffff000);	/* write to the Low Access Region register */	GT_REG_WRITE (pci_access_control_base_0_low[host] + 0x10 * region,		      accessLow);	accessHigh = (accessTop & 0xfff00000) >> 20;	/* write to the High Access Region register */	GT_REG_WRITE (pci_access_control_top_0[host] + 0x10 * region,		      accessHigh - 1);	return true;}/********************************************************************* pciDisableAccessRegion - Disable The given Region by writing MAX size*                           to its low Address and MIN size to its high Address.** Inputs:   PCI_ACCESS_REGIONS region - The region we to be Disabled.* Returns:  N/A.*********************************************************************/void pciDisableAccessRegion (PCI_HOST host, PCI_ACCESS_REGIONS region){	/* writing back the registers default values. */	GT_REG_WRITE (pci_access_control_base_0_low[host] + 0x10 * region,		      0x01001fff);	GT_REG_WRITE (pci_access_control_top_0[host] + 0x10 * region, 0);}/********************************************************************* pciArbiterEnable - Enables PCI-0`s Arbitration mechanism.** Inputs:   N/A* Returns:  true.*********************************************************************/bool pciArbiterEnable (PCI_HOST host){	unsigned int regData;	GT_REG_READ (pci_arbiter_control[host], &regData);	GT_REG_WRITE (pci_arbiter_control[host], regData | BIT31);	return true;}/********************************************************************* pciArbiterDisable - Disable PCI-0`s Arbitration mechanism.** Inputs:   N/A* Returns:  true*********************************************************************/bool pciArbiterDisable (PCI_HOST host){	unsigned int regData;	GT_REG_READ (pci_arbiter_control[host], &regData);	GT_REG_WRITE (pci_arbiter_control[host], regData & 0x7fffffff);	return true;}/********************************************************************* pciParkingDisable - Park on last option disable, with this function you can*                      disable the park on last mechanism for each agent.*                      disabling this option for all agents results parking*                      on the internal master.** Inputs: PCI_AGENT_PARK internalAgent -  parking Disable for internal agent.*         PCI_AGENT_PARK externalAgent0 - parking Disable for external#0 agent.*         PCI_AGENT_PARK externalAgent1 - parking Disable for external#1 agent.*         PCI_AGENT_PARK externalAgent2 - parking Disable for external#2 agent.*         PCI_AGENT_PARK externalAgent3 - parking Disable for external#3 agent.*         PCI_AGENT_PARK externalAgent4 - parking Disable for external#4 agent.*         PCI_AGENT_PARK externalAgent5 - parking Disable for external#5 agent.* Returns:  true*********************************************************************/bool pciParkingDisable (PCI_HOST host, PCI_AGENT_PARK internalAgent,			PCI_AGENT_PARK externalAgent0,			PCI_AGENT_PARK externalAgent1,			PCI_AGENT_PARK externalAgent2,			PCI_AGENT_PARK externalAgent3,			PCI_AGENT_PARK externalAgent4,			PCI_AGENT_PARK externalAgent5){	unsigned int regData;	unsigned int writeData;	GT_REG_READ (pci_arbiter_control[host], &regData);	writeData = (internalAgent << 14) + (externalAgent0 << 15) +		(externalAgent1 << 16) + (externalAgent2 << 17) +		(externalAgent3 << 18) + (externalAgent4 << 19) +		(externalAgent5 << 20);	regData = (regData & ~(0x7f << 14)) | writeData;	GT_REG_WRITE (pci_arbiter_control[host], regData);	return true;}/********************************************************************* pciSetRegionSnoopMode - This function modifys one of the 4 regions which*                          supports Cache Coherency in the PCI_n interface.* Inputs: region - One of the four regions.*         snoopType - There is four optional Types:*                        1. No Snoop.*                        2. Snoop to WT region.*                        3. Snoop to WB region.*                        4. Snoop & Invalidate to WB region.*         baseAddress - Base Address of this region.*         regionLength - Region length.* Returns: false if one of the parameters is wrong otherwise return true.*********************************************************************/bool pciSetRegionSnoopMode (PCI_HOST host, PCI_SNOOP_REGION region,			    PCI_SNOOP_TYPE snoopType,			    unsigned int baseAddress,			    unsigned int regionLength){	unsigned int snoopXbaseAddress;	unsigned int snoopXtopAddress;	unsigned int data;	unsigned int snoopHigh = baseAddress + regionLength;	if ((region > PCI_SNOOP_REGION3) || (snoopType > PCI_SNOOP_WB))		return false;	snoopXbaseAddress =		pci_snoop_control_base_0_low[host] + 0x10 * region;	snoopXtopAddress = pci_snoop_control_top_0[host] + 0x10 * region;	if (regionLength == 0) {	/* closing the region */		GT_REG_WRITE (snoopXbaseAddress, 0x0000ffff);		GT_REG_WRITE (snoopXtopAddress, 0);		return true;	}	baseAddress = baseAddress & 0xfff00000;	/* Granularity of 1MByte */	data = (baseAddress >> 20) | snoopType << 12;	GT_REG_WRITE (snoopXbaseAddress, data);	snoopHigh = (snoopHigh & 0xfff00000) >> 20;	GT_REG_WRITE (snoopXtopAddress, snoopHigh - 1);	return true;}/* * */static int gt_read_config_dword (struct pci_controller *hose,				 pci_dev_t dev, int offset, u32 * value){	int bus = PCI_BUS (dev);	if ((bus == local_buses[0]) || (bus == local_buses[1])) {		*value = pciReadConfigReg ((PCI_HOST) hose->cfg_addr, offset,					   PCI_DEV (dev));	} else {		*value = pciOverBridgeReadConfigReg ((PCI_HOST) hose->						     cfg_addr, offset,						     PCI_DEV (dev), bus);	}	return 0;}static int gt_write_config_dword (struct pci_controller *hose,				  pci_dev_t dev, int offset, u32 value){	int bus = PCI_BUS (dev);	if ((bus == local_buses[0]) || (bus == local_buses[1])) {		pciWriteConfigReg ((PCI_HOST) hose->cfg_addr, offset,				   PCI_DEV (dev), value);	} else {		pciOverBridgeWriteConfigReg ((PCI_HOST) hose->cfg_addr,					     offset, PCI_DEV (dev), value,					     bus);	}	return 0;}/* * */static void gt_setup_ide (struct pci_controller *hose,			  pci_dev_t dev, struct pci_config_table *entry){	static const int ide_bar[] = { 8, 4, 8, 4, 0, 0 };	u32 bar_response, bar_value;	int bar;	for (bar = 0; bar < 6; bar++) {		pci_write_config_dword (dev, PCI_BASE_ADDRESS_0 + bar * 4,					0x0);		pci_read_config_dword (dev, PCI_BASE_ADDRESS_0 + bar * 4,				       &bar_response);		pciauto_region_allocate (bar_response &					 PCI_BASE_ADDRESS_SPACE_IO ? hose->					 pci_io : hose->pci_mem, ide_bar[bar],					 &bar_value);		pci_write_config_dword (dev, PCI_BASE_ADDRESS_0 + bar * 4,					bar_value);	}}#ifndef CONFIG_P3G4static void gt_fixup_irq (struct pci_controller *hose, pci_dev_t dev){	unsigned char pin, irq;	pci_read_config_byte (dev, PCI_INTERRUPT_PIN, &pin);	if (pin == 1) {		/* only allow INT A */		irq = pci_irq_swizzle[(PCI_HOST) hose->				      cfg_addr][PCI_DEV (dev)];		if (irq)			pci_write_config_byte (dev, PCI_INTERRUPT_LINE, irq);	}}#endifstruct pci_config_table gt_config_table[] = {	{PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE,	 PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, gt_setup_ide},	{}};struct pci_controller pci0_hose = {#ifndef CONFIG_P3G4	fixup_irq:gt_fixup_irq,#endif	config_table:gt_config_table,};struct pci_controller pci1_hose = {#ifndef CONFIG_P3G4	fixup_irq:gt_fixup_irq,#endif	config_table:gt_config_table,};void pci_init_board (void){	unsigned int command;	pci0_hose.first_busno = 0;	pci0_hose.last_busno = 0xff;	local_buses[0] = pci0_hose.first_busno;	/* PCI memory space */	pci_set_region (pci0_hose.regions + 0,			CFG_PCI0_0_MEM_SPACE,			CFG_PCI0_0_MEM_SPACE,			CFG_PCI0_MEM_SIZE, PCI_REGION_MEM);	/* PCI I/O space */	pci_set_region (pci0_hose.regions + 1,			CFG_PCI0_IO_SPACE_PCI,			CFG_PCI0_IO_SPACE, CFG_PCI0_IO_SIZE, PCI_REGION_IO);	pci_set_ops (&pci0_hose,		     pci_hose_read_config_byte_via_dword,		     pci_hose_read_config_word_via_dword,		     gt_read_config_dword,		     pci_hose_write_config_byte_via_dword,		     pci_hose_write_config_word_via_dword,		     gt_write_config_dword);	pci0_hose.region_count = 2;	pci0_hose.cfg_addr = (unsigned int *) PCI_HOST0;	pci_register_hose (&pci0_hose);#ifndef CONFIG_P3G4	pciArbiterEnable (PCI_HOST0);	pciParkingDisable (PCI_HOST0, 1, 1, 1, 1, 1, 1, 1);#endif	command = pciReadConfigReg (PCI_HOST0, PCI_COMMAND, SELF);	command |= PCI_COMMAND_MASTER;	pciWriteConfigReg (PCI_HOST0, PCI_COMMAND, SELF, command);	pci0_hose.last_busno = pci_hose_scan (&pci0_hose);	command = pciReadConfigReg (PCI_HOST0, PCI_COMMAND, SELF);	command |= PCI_COMMAND_MEMORY;	pciWriteConfigReg (PCI_HOST0, PCI_COMMAND, SELF, command);	pci1_hose.first_busno = pci0_hose.last_busno + 1;	pci1_hose.last_busno = 0xff;	pci1_hose.current_busno = pci0_hose.current_busno;	local_buses[1] = pci1_hose.first_busno;	/* PCI memory space */	pci_set_region (pci1_hose.regions + 0,			CFG_PCI1_0_MEM_SPACE,			CFG_PCI1_0_MEM_SPACE,			CFG_PCI1_MEM_SIZE, PCI_REGION_MEM);	/* PCI I/O space */	pci_set_region (pci1_hose.regions + 1,			CFG_PCI1_IO_SPACE_PCI,			CFG_PCI1_IO_SPACE, CFG_PCI1_IO_SIZE, PCI_REGION_IO);	pci_set_ops (&pci1_hose,		     pci_hose_read_config_byte_via_dword,		     pci_hose_read_config_word_via_dword,		     gt_read_config_dword,		     pci_hose_write_config_byte_via_dword,		     pci_hose_write_config_word_via_dword,		     gt_write_config_dword);	pci1_hose.region_count = 2;	pci1_hose.cfg_addr = (unsigned int *) PCI_HOST1;	pci_register_hose (&pci1_hose);#ifndef CONFIG_P3G4	pciArbiterEnable (PCI_HOST1);	pciParkingDisable (PCI_HOST1, 1, 1, 1, 1, 1, 1, 1);#endif	command = pciReadConfigReg (PCI_HOST1, PCI_COMMAND, SELF);	command |= PCI_COMMAND_MASTER;	pciWriteConfigReg (PCI_HOST1, PCI_COMMAND, SELF, command);	pci1_hose.last_busno = pci_hose_scan (&pci1_hose);	command = pciReadConfigReg (PCI_HOST1, PCI_COMMAND, SELF);	command |= PCI_COMMAND_MEMORY;	pciWriteConfigReg (PCI_HOST1, PCI_COMMAND, SELF, command);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区三区不卡| 一区二区三区日本| 一区二区三区欧美激情| 麻豆精品国产91久久久久久| 99精品视频一区二区三区| 日韩欧美的一区二区| 一区二区三区在线视频免费观看| 国产一区二区视频在线| 欧美一区二区网站| 亚洲精品大片www| 成人激情免费电影网址| 日韩精品自拍偷拍| 亚洲a一区二区| 欧洲激情一区二区| 亚洲日本在线视频观看| 播五月开心婷婷综合| 精品va天堂亚洲国产| 美国十次综合导航| 日韩一区二区精品葵司在线| 亚洲高清免费观看高清完整版在线观看| 成人午夜视频在线| 欧美激情一区二区三区在线| 国产麻豆视频一区二区| 精品国产91九色蝌蚪| 久久se精品一区精品二区| 69堂国产成人免费视频| 丝袜诱惑亚洲看片| 在线播放中文一区| 图片区小说区区亚洲影院| 欧美理论电影在线| 日韩中文字幕亚洲一区二区va在线| 一本色道亚洲精品aⅴ| 日韩伦理电影网| 91蜜桃免费观看视频| 日韩理论在线观看| 欧美婷婷六月丁香综合色| 亚洲影视在线观看| 在线不卡a资源高清| 麻豆国产欧美日韩综合精品二区 | 欧美狂野另类xxxxoooo| 亚洲午夜精品久久久久久久久| 91成人在线精品| 婷婷综合另类小说色区| 7777精品伊人久久久大香线蕉经典版下载 | 一区二区三区精密机械公司| 91成人免费在线视频| 香蕉影视欧美成人| 884aa四虎影成人精品一区| 免费观看一级欧美片| 欧美精品一区二| av高清不卡在线| 亚洲欧洲综合另类| 91精品国产一区二区| 国内精品免费在线观看| 国产精品久久免费看| 欧美日韩中文字幕一区二区| 日本aⅴ免费视频一区二区三区| 欧美成人bangbros| 成人综合在线网站| 亚洲一区二区在线视频| 日韩精品专区在线| 91丨porny丨蝌蚪视频| 香蕉加勒比综合久久| 久久亚洲一区二区三区四区| 菠萝蜜视频在线观看一区| 日韩精品色哟哟| 国产女主播在线一区二区| 欧美吞精做爰啪啪高潮| 国产一区二区在线视频| 亚洲一区二区三区四区在线观看| 欧美不卡一二三| 91小视频免费观看| 久久99国产精品久久| 最新国产精品久久精品| 日韩欧美二区三区| 欧美中文字幕亚洲一区二区va在线 | 精品一区二区日韩| 国产精品情趣视频| 日韩情涩欧美日韩视频| 91一区二区在线| 国产主播一区二区三区| 婷婷成人综合网| 国产精品国产精品国产专区不蜜| 日韩一级二级三级精品视频| 91无套直看片红桃| 国产剧情一区在线| 日韩高清不卡一区| 亚洲精品第1页| 国产精品拍天天在线| 精品日韩av一区二区| 欧美日韩高清一区| 一本久久a久久免费精品不卡| 国产激情一区二区三区四区| 亚欧色一区w666天堂| 一区二区三区在线视频观看58| 久久久久久一二三区| 日韩精品一区在线观看| 欧美日韩国产免费一区二区| 色综合亚洲欧洲| 不卡高清视频专区| 顶级嫩模精品视频在线看| 国产最新精品免费| 久久国产婷婷国产香蕉| 日本特黄久久久高潮| 午夜精品久久久| 亚洲成a人片在线观看中文| 亚洲人吸女人奶水| 日韩久久一区二区| 中文字幕中文在线不卡住| 国产欧美一区二区精品久导航| 精品久久久久久久久久久院品网 | 久久久久成人黄色影片| 精品国产成人系列| 久久综合一区二区| 久久午夜电影网| 国产亚洲精品7777| 亚洲国产精品99久久久久久久久| 2017欧美狠狠色| 久久人人97超碰com| 26uuu另类欧美亚洲曰本| 国产亚洲一区字幕| 久久精品人人爽人人爽| 国产精品久久久久久久久晋中| 中文字幕不卡在线播放| 中文字幕一区二区三区av| 亚洲精选一二三| 天涯成人国产亚洲精品一区av| 午夜激情一区二区| 极品瑜伽女神91| 粉嫩一区二区三区在线看| 97超碰欧美中文字幕| 在线观看免费一区| 欧美成人video| 国产精品素人一区二区| 亚洲女人****多毛耸耸8| 亚洲一区二区三区四区在线观看| 午夜不卡在线视频| 国产麻豆日韩欧美久久| 91麻豆.com| 欧美人xxxx| 国产亚洲精品精华液| 亚洲精品一二三| 捆绑调教一区二区三区| 成人精品免费网站| 欧美精品电影在线播放| 久久精品亚洲麻豆av一区二区| 综合自拍亚洲综合图不卡区| 日韩av一区二区三区| 成人av资源网站| 欧美一区二区三区四区五区| 欧美韩国一区二区| 日韩av一级片| 99在线热播精品免费| 91麻豆精品国产91久久久更新时间| 精品国产麻豆免费人成网站| 亚洲精品国产一区二区精华液 | 日韩影院免费视频| 国产精品一二一区| 在线看不卡av| xnxx国产精品| 亚洲成人av在线电影| 国产精品影音先锋| 欧美精品久久天天躁| 国产精品国产自产拍高清av王其| 五月综合激情网| 91在线丨porny丨国产| 日韩精品一区二| 亚洲国产中文字幕在线视频综合| 精品一区二区三区欧美| 欧美日免费三级在线| 中文字幕一区二区视频| 久久se这里有精品| 欧美日产国产精品| 亚洲精品日日夜夜| 成人v精品蜜桃久久一区| 日韩精品一区国产麻豆| 亚洲午夜免费电影| 91亚洲精品一区二区乱码| 久久久久久9999| 精品一区二区在线视频| 欧美日韩精品一二三区| 亚洲靠逼com| 成年人国产精品| 久久人人超碰精品| 美国欧美日韩国产在线播放| 欧美性生活一区| 亚洲精品视频一区| 99r精品视频| 亚洲欧美日韩中文播放| 成人99免费视频| 国产精品剧情在线亚洲| 国产不卡一区视频| 日本一区二区免费在线观看视频| 国内成人精品2018免费看| 日韩免费在线观看| 国产自产高清不卡| 久久亚洲精品小早川怜子| 韩国成人在线视频| 久久久久久久久久久久久夜| 国产美女娇喘av呻吟久久|