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

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

?? pci.c

?? 嵌入式試驗箱S3C2410的bootloader源代碼
?? 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一区二区三区免费野_久草精品视频
色婷婷狠狠综合| 国产**成人网毛片九色| 欧美日本乱大交xxxxx| 亚洲国产成人高清精品| 欧美肥大bbwbbw高潮| 裸体一区二区三区| 久久众筹精品私拍模特| 国产成人av一区二区三区在线| 久久精品一区二区| av在线不卡电影| 亚洲成人在线免费| 久久久不卡影院| 亚洲伦理在线精品| 91精品欧美久久久久久动漫| 精品在线免费观看| 国产精品青草久久| 欧美日韩dvd在线观看| 久久精品免费观看| 国产精品色婷婷久久58| 欧美三级乱人伦电影| 久草精品在线观看| 亚洲欧洲国产日韩| 这里是久久伊人| 成人黄色综合网站| 日韩精品国产欧美| 中文字幕电影一区| 欧美日本国产视频| 成人一区二区三区中文字幕| 偷偷要91色婷婷| 久久精品视频一区| 欧美日韩第一区日日骚| 成人性生交大片| 日韩av网站免费在线| 中文字幕日韩一区| 精品毛片乱码1区2区3区 | 亚洲成人精品影院| 久久精品视频免费| 91精品国产一区二区三区香蕉| 风间由美性色一区二区三区| 无码av中文一区二区三区桃花岛| 国产丝袜欧美中文另类| 69久久99精品久久久久婷婷| 99久久精品国产精品久久| 韩国一区二区视频| 亚洲成av人影院在线观看网| 国产精品第13页| 久久美女高清视频| 欧美美女激情18p| 色菇凉天天综合网| 成人免费福利片| 久久精品国产精品亚洲红杏| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品水嫩水嫩| 久久日一线二线三线suv| 欧美放荡的少妇| 欧美日韩在线播放| 日本精品一区二区三区高清| 成人午夜激情在线| 国产成人av福利| 国产在线一区二区| 久草这里只有精品视频| 免费成人av在线播放| 午夜电影网亚洲视频| 亚洲综合色网站| 一区二区三区四区精品在线视频| 欧美国产乱子伦 | 91在线观看视频| 成人精品视频一区| 不卡av电影在线播放| 国产不卡高清在线观看视频| 国产在线精品一区二区| 国产一区二区三区观看| 久久成人综合网| 国产真实乱对白精彩久久| 久久99国产精品麻豆| 久久激情五月激情| 国内精品在线播放| 国产激情一区二区三区| 成人蜜臀av电影| 白白色 亚洲乱淫| 色婷婷精品久久二区二区蜜臀av| 99久久久久久99| 91精品福利视频| 欧美日韩一区三区四区| 欧美日韩aaaaa| 精品人伦一区二区色婷婷| 久久久久久免费| 国产精品国产三级国产三级人妇| 国产精品黄色在线观看| 一区二区三区色| 天天综合色天天综合色h| 日本不卡视频一二三区| 黄页视频在线91| 成人的网站免费观看| 日本精品一区二区三区四区的功能| 欧美性感一区二区三区| 日韩欧美卡一卡二| 国产亚洲精品资源在线26u| 国产精品欧美久久久久一区二区| 亚洲欧美视频一区| 首页国产欧美久久| 国产成人精品www牛牛影视| 色综合久久综合| 日韩欧美国产一区在线观看| 久久久久久免费| 亚洲一区二区三区影院| 久久精品久久精品| 91丨porny丨最新| 欧美一卡二卡在线观看| 国产精品久久久久aaaa樱花| 亚洲高清免费在线| 国产寡妇亲子伦一区二区| 色哦色哦哦色天天综合| 日韩三级视频在线看| 国产精品久久久久久妇女6080 | 精品日韩在线观看| 国产精品久久久久四虎| 日韩高清在线不卡| 成人av手机在线观看| 91精品午夜视频| 国产精品乱人伦中文| 奇米影视一区二区三区小说| 成人h版在线观看| 日韩欧美一级二级| 亚洲自拍偷拍图区| 成人国产精品视频| 欧美一区二区视频在线观看 | 一区二区三区四区中文字幕| 精品亚洲国产成人av制服丝袜| 色噜噜狠狠色综合欧洲selulu| 欧美成人在线直播| 亚洲成人tv网| 91丨国产丨九色丨pron| 久久久久久久电影| 人人狠狠综合久久亚洲| 欧美午夜理伦三级在线观看| 国产清纯在线一区二区www| 日韩激情一区二区| 91麻豆国产精品久久| 日本一区二区三区四区| 久久国产夜色精品鲁鲁99| 在线免费观看日韩欧美| 国产精品久久久久久亚洲伦| 韩国av一区二区三区四区| 欧美一区二区三区在线观看视频| 综合分类小说区另类春色亚洲小说欧美| 激情偷乱视频一区二区三区| 欧美日韩一区二区欧美激情| 中文字幕一区二区在线播放| 国产精品一区三区| 精品国产欧美一区二区| 日本v片在线高清不卡在线观看| 91福利区一区二区三区| 中文字幕亚洲在| 波多野结衣中文字幕一区二区三区 | 日韩av高清在线观看| 欧美日韩国产一区二区三区地区| 亚洲人精品一区| 色综合久久综合网欧美综合网| 国产精品免费看片| av午夜一区麻豆| 亚洲日本欧美天堂| 色婷婷综合中文久久一本| 亚洲视频一区二区免费在线观看| 成人激情动漫在线观看| 国产精品热久久久久夜色精品三区| 国产精品影视网| 欧美国产精品专区| www.在线成人| 亚洲欧美色一区| 在线日韩av片| 天天影视色香欲综合网老头| 欧美日韩激情在线| 日本成人在线看| 欧美成人a∨高清免费观看| 狠狠狠色丁香婷婷综合激情| 国产日本亚洲高清| 91老师片黄在线观看| 亚洲国产你懂的| 制服.丝袜.亚洲.中文.综合| 日韩激情在线观看| 久久久久久夜精品精品免费| 成人免费视频一区二区| 亚洲麻豆国产自偷在线| 欧美日韩1区2区| 国产一区二区三区四| 最新不卡av在线| 欧美日韩国产另类不卡| 经典三级在线一区| 国产精品护士白丝一区av| 欧美丝袜自拍制服另类| 久久精品国产亚洲高清剧情介绍| 国产亚洲欧美色| 欧美羞羞免费网站| 国内国产精品久久| 亚洲欧美色图小说| 欧美电视剧免费观看| 一本在线高清不卡dvd| 老色鬼精品视频在线观看播放| 国产精品私人影院|