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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mpc8641hpcn.c

?? u-boot1.3.0的原碼,從配了網(wǎng)絡(luò)驅(qū)動和FLASH的驅(qū)動,并該用ESC竟如
?? C
字號:
/* * Copyright 2006, 2007 Freescale Semiconductor. * * 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. * * 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., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */#include <common.h>#include <pci.h>#include <asm/processor.h>#include <asm/immap_86xx.h>#include <asm/immap_fsl_pci.h>#include <spd.h>#include <asm/io.h>#if defined(CONFIG_OF_FLAT_TREE)#include <ft_build.h>extern void ft_cpu_setup(void *blob, bd_t *bd);#endif#include "../common/pixis.h"#if defined(CONFIG_DDR_ECC) && !defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER)extern void ddr_enable_ecc(unsigned int dram_size);#endif#if defined(CONFIG_SPD_EEPROM)#include "spd_sdram.h"#endifvoid sdram_init(void);long int fixed_sdram(void);int board_early_init_f(void){	return 0;}int checkboard(void){	puts("Board: MPC8641HPCN\n");	return 0;}long intinitdram(int board_type){	long dram_size = 0;#if defined(CONFIG_SPD_EEPROM)	dram_size = spd_sdram();#else	dram_size = fixed_sdram();#endif#if defined(CFG_RAMBOOT)	puts("    DDR: ");	return dram_size;#endif#if defined(CONFIG_DDR_ECC) && !defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER)	/*	 * Initialize and enable DDR ECC.	 */	ddr_enable_ecc(dram_size);#endif	puts("    DDR: ");	return dram_size;}#if defined(CFG_DRAM_TEST)inttestdram(void){	uint *pstart = (uint *) CFG_MEMTEST_START;	uint *pend = (uint *) CFG_MEMTEST_END;	uint *p;	puts("SDRAM test phase 1:\n");	for (p = pstart; p < pend; p++)		*p = 0xaaaaaaaa;	for (p = pstart; p < pend; p++) {		if (*p != 0xaaaaaaaa) {			printf("SDRAM test fails at: %08x\n", (uint) p);			return 1;		}	}	puts("SDRAM test phase 2:\n");	for (p = pstart; p < pend; p++)		*p = 0x55555555;	for (p = pstart; p < pend; p++) {		if (*p != 0x55555555) {			printf("SDRAM test fails at: %08x\n", (uint) p);			return 1;		}	}	puts("SDRAM test passed.\n");	return 0;}#endif#if !defined(CONFIG_SPD_EEPROM)/* * Fixed sdram init -- doesn't use serial presence detect. */long intfixed_sdram(void){#if !defined(CFG_RAMBOOT)	volatile immap_t *immap = (immap_t *) CFG_IMMR;	volatile ccsr_ddr_t *ddr = &immap->im_ddr1;	ddr->cs0_bnds = CFG_DDR_CS0_BNDS;	ddr->cs0_config = CFG_DDR_CS0_CONFIG;	ddr->ext_refrec = CFG_DDR_EXT_REFRESH;	ddr->timing_cfg_0 = CFG_DDR_TIMING_0;	ddr->timing_cfg_1 = CFG_DDR_TIMING_1;	ddr->timing_cfg_2 = CFG_DDR_TIMING_2;	ddr->sdram_mode_1 = CFG_DDR_MODE_1;	ddr->sdram_mode_2 = CFG_DDR_MODE_2;	ddr->sdram_interval = CFG_DDR_INTERVAL;	ddr->sdram_data_init = CFG_DDR_DATA_INIT;	ddr->sdram_clk_cntl = CFG_DDR_CLK_CTRL;	ddr->sdram_ocd_cntl = CFG_DDR_OCD_CTRL;	ddr->sdram_ocd_status = CFG_DDR_OCD_STATUS;#if defined (CONFIG_DDR_ECC)	ddr->err_disable = 0x0000008D;	ddr->err_sbe = 0x00ff0000;#endif	asm("sync;isync");	udelay(500);#if defined (CONFIG_DDR_ECC)	/* Enable ECC checking */	ddr->sdram_cfg_1 = (CFG_DDR_CONTROL | 0x20000000);#else	ddr->sdram_cfg_1 = CFG_DDR_CONTROL;	ddr->sdram_cfg_2 = CFG_DDR_CONTROL2;#endif	asm("sync; isync");	udelay(500);#endif	return CFG_SDRAM_SIZE * 1024 * 1024;}#endif	/* !defined(CONFIG_SPD_EEPROM) */#if defined(CONFIG_PCI)/* * Initialize PCI Devices, report devices found. */#ifndef CONFIG_PCI_PNPstatic struct pci_config_table pci_fsl86xxads_config_table[] = {	{PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,	 PCI_IDSEL_NUMBER, PCI_ANY_ID,	 pci_cfgfunc_config_device, {PCI_ENET0_IOADDR,				     PCI_ENET0_MEMADDR,				     PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER}},	{}};#endifstatic struct pci_controller pci1_hose = {#ifndef CONFIG_PCI_PNP	config_table:pci_mpc86xxcts_config_table#endif};#endif /* CONFIG_PCI */#ifdef CONFIG_PCI2static struct pci_controller pci2_hose;#endif	/* CONFIG_PCI2 */int first_free_busno = 0;void pci_init_board(void){	volatile immap_t *immap = (immap_t *) CFG_CCSRBAR;	volatile ccsr_gur_t *gur = &immap->im_gur;	uint devdisr = gur->devdisr;	uint io_sel = (gur->pordevsr & MPC86xx_PORDEVSR_IO_SEL) >> 16;#ifdef CONFIG_PCI1{	volatile ccsr_fsl_pci_t *pci = (ccsr_fsl_pci_t *) CFG_PCI1_ADDR;	extern void fsl_pci_init(struct pci_controller *hose);	struct pci_controller *hose = &pci1_hose;#ifdef DEBUG	uint host1_agent = (gur->porbmsr & MPC86xx_PORBMSR_HA) >> 17;	uint pex1_agent = (host1_agent == 0) || (host1_agent == 1);#endif	if ((io_sel == 2 || io_sel == 3 || io_sel == 5	     || io_sel == 6 || io_sel == 7 || io_sel == 0xF)	    && !(devdisr & MPC86xx_DEVDISR_PCIEX1)) {		debug("PCI-EXPRESS 1: %s \n", pex1_agent ? "Agent" : "Host");		debug("0x%08x=0x%08x ", &pci->pme_msg_det, pci->pme_msg_det);		if (pci->pme_msg_det) {			pci->pme_msg_det = 0xffffffff;			debug(" with errors.  Clearing.  Now 0x%08x",			      pci->pme_msg_det);		}		debug("\n");		/* inbound */		pci_set_region(hose->regions + 0,			       CFG_PCI_MEMORY_BUS,			       CFG_PCI_MEMORY_PHYS,			       CFG_PCI_MEMORY_SIZE,			       PCI_REGION_MEM | PCI_REGION_MEMORY);		/* outbound memory */		pci_set_region(hose->regions + 1,			       CFG_PCI1_MEM_BASE,			       CFG_PCI1_MEM_PHYS,			       CFG_PCI1_MEM_SIZE,			       PCI_REGION_MEM);		/* outbound io */		pci_set_region(hose->regions + 2,			       CFG_PCI1_IO_BASE,			       CFG_PCI1_IO_PHYS,			       CFG_PCI1_IO_SIZE,			       PCI_REGION_IO);		hose->region_count = 3;		hose->first_busno=first_free_busno;		pci_setup_indirect(hose, (int) &pci->cfg_addr, (int) &pci->cfg_data);		fsl_pci_init(hose);		first_free_busno=hose->last_busno+1;		printf ("    PCI-EXPRESS 1 on bus %02x - %02x\n",			hose->first_busno,hose->last_busno);		/*		 * Activate ULI1575 legacy chip by performing a fake		 * memory access.  Needed to make ULI RTC work.		 */		in_be32((unsigned *) ((char *)(CFG_PCI1_MEM_BASE				       + CFG_PCI1_MEM_SIZE - 0x1000000)));	} else {		puts("PCI-EXPRESS 1: Disabled\n");	}}#else	puts("PCI-EXPRESS1: Disabled\n");#endif /* CONFIG_PCI1 */#ifdef CONFIG_PCI2{	volatile ccsr_fsl_pci_t *pci = (ccsr_fsl_pci_t *) CFG_PCI2_ADDR;	extern void fsl_pci_init(struct pci_controller *hose);	struct pci_controller *hose = &pci2_hose;	/* inbound */	pci_set_region(hose->regions + 0,		       CFG_PCI_MEMORY_BUS,		       CFG_PCI_MEMORY_PHYS,		       CFG_PCI_MEMORY_SIZE,		       PCI_REGION_MEM | PCI_REGION_MEMORY);	/* outbound memory */	pci_set_region(hose->regions + 1,		       CFG_PCI2_MEM_BASE,		       CFG_PCI2_MEM_PHYS,		       CFG_PCI2_MEM_SIZE,		       PCI_REGION_MEM);	/* outbound io */	pci_set_region(hose->regions + 2,		       CFG_PCI2_IO_BASE,		       CFG_PCI2_IO_PHYS,		       CFG_PCI2_IO_SIZE,		       PCI_REGION_IO);	hose->region_count = 3;	hose->first_busno=first_free_busno;	pci_setup_indirect(hose, (int) &pci->cfg_addr, (int) &pci->cfg_data);	fsl_pci_init(hose);	first_free_busno=hose->last_busno+1;	printf ("    PCI-EXPRESS 2 on bus %02x - %02x\n",		hose->first_busno,hose->last_busno);}#else	puts("PCI-EXPRESS 2: Disabled\n");#endif /* CONFIG_PCI2 */}#if defined(CONFIG_OF_FLAT_TREE) && defined(CONFIG_OF_BOARD_SETUP)voidft_board_setup(void *blob, bd_t *bd){	u32 *p;	int len;	ft_cpu_setup(blob, bd);	p = ft_get_prop(blob, "/memory/reg", &len);	if (p != NULL) {		*p++ = cpu_to_be32(bd->bi_memstart);		*p = cpu_to_be32(bd->bi_memsize);	}#ifdef CONFIG_PCI1	p = (u32 *)ft_get_prop(blob, "/" OF_SOC "/pcie@8000/bus-range", &len);	if (p != NULL) {		p[0] = 0;		p[1] = pci1_hose.last_busno - pci1_hose.first_busno;		debug("PCI@8000 first_busno=%d last_busno=%d\n",p[0],p[1]);	}#endif#ifdef CONFIG_PCI2	p = (u32 *)ft_get_prop(blob, "/" OF_SOC "/pcie@9000/bus-range", &len);	if (p != NULL) {		p[0] = 0;		p[1] = pci2_hose.last_busno - pci2_hose.first_busno;		debug("PCI@9000 first_busno=%d last_busno=%d\n",p[0],p[1]);	}#endif}#endif/* * get_board_sys_clk *      Reads the FPGA on board for CONFIG_SYS_CLK_FREQ */unsigned longget_board_sys_clk(ulong dummy){	u8 i, go_bit, rd_clks;	ulong val = 0;	go_bit = in8(PIXIS_BASE + PIXIS_VCTL);	go_bit &= 0x01;	rd_clks = in8(PIXIS_BASE + PIXIS_VCFGEN0);	rd_clks &= 0x1C;	/*	 * Only if both go bit and the SCLK bit in VCFGEN0 are set	 * should we be using the AUX register. Remember, we also set the	 * GO bit to boot from the alternate bank on the on-board flash	 */	if (go_bit) {		if (rd_clks == 0x1c)			i = in8(PIXIS_BASE + PIXIS_AUX);		else			i = in8(PIXIS_BASE + PIXIS_SPD);	} else {		i = in8(PIXIS_BASE + PIXIS_SPD);	}	i &= 0x07;	switch (i) {	case 0:		val = 33000000;		break;	case 1:		val = 40000000;		break;	case 2:		val = 50000000;		break;	case 3:		val = 66000000;		break;	case 4:		val = 83000000;		break;	case 5:		val = 100000000;		break;	case 6:		val = 134000000;		break;	case 7:		val = 166000000;		break;	}	return val;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产精品青草| 亚洲一区二区三区四区不卡| 精品噜噜噜噜久久久久久久久试看| 欧美在线|欧美| 91精品国产一区二区人妖| 国产一区二区视频在线| 国产.精品.日韩.另类.中文.在线.播放 | 95精品视频在线| 色综合av在线| 精品电影一区二区三区| 久久久久久99久久久精品网站| 日韩午夜精品电影| 久久久久久久久伊人| 中文字幕一区av| 亚洲成人综合视频| 精品亚洲成a人| 91麻豆swag| 日韩一区二区麻豆国产| 欧美国产精品中文字幕| 丝袜美腿一区二区三区| 樱花草国产18久久久久| 国内精品伊人久久久久av影院| 成人av手机在线观看| 欧美伦理影视网| 亚洲另类春色国产| 国产麻豆日韩欧美久久| 欧美日韩国产小视频在线观看| 久久久夜色精品亚洲| 亚洲成av人**亚洲成av**| 国产精品123| 精品理论电影在线| 在线观看区一区二| 精品亚洲aⅴ乱码一区二区三区| 日韩高清国产一区在线| 91丨porny丨首页| 国产日韩欧美a| 午夜一区二区三区在线观看| 成人在线视频一区| 国产无人区一区二区三区| 日本aⅴ精品一区二区三区| 欧美色老头old∨ideo| 亚洲成av人片一区二区| 欧美天堂亚洲电影院在线播放| 亚洲精品免费在线观看| 国产一区二区美女诱惑| 91精品国产91久久综合桃花| 国产精品久久久久久久久快鸭| 国内外成人在线视频| 欧美精品一区二区在线播放| 亚洲chinese男男1069| 91成人免费在线视频| 亚洲国产欧美另类丝袜| 欧美丰满一区二区免费视频| 免费观看久久久4p| 国产精品你懂的在线| 色综合激情五月| 久草在线在线精品观看| 久久亚洲一级片| 波多野结衣精品在线| 国产精品久久久久久一区二区三区| 成人黄色网址在线观看| 亚洲一区免费在线观看| 久久噜噜亚洲综合| 在线精品国精品国产尤物884a| 蜜桃精品视频在线| 久久精品水蜜桃av综合天堂| 欧洲一区在线电影| 国产一区 二区 三区一级| 亚洲一级在线观看| 国产欧美一区二区三区在线看蜜臀 | 国产宾馆实践打屁股91| 一级精品视频在线观看宜春院| 51精品国自产在线| 日本高清视频一区二区| 国产高清在线精品| 亚洲二区在线观看| 亚洲美女精品一区| 国产亚洲一区二区在线观看| 91免费版在线| 久久成人免费网站| 日韩在线一区二区| 亚洲国产一区二区在线播放| 欧美高清在线一区| 欧美—级在线免费片| 国产午夜精品福利| 久久久五月婷婷| 久久久精品2019中文字幕之3| 亚洲精品一区二区三区在线观看 | 久久99精品国产.久久久久久| 亚洲高清免费在线| 亚洲一线二线三线视频| 亚洲国产精品嫩草影院| 日韩av一区二区在线影视| 亚洲成av人**亚洲成av**| 五月天婷婷综合| 久久精品99国产精品日本| 经典三级在线一区| 视频一区中文字幕| 免费不卡在线视频| 91麻豆成人久久精品二区三区| 欧美日韩国产首页| 中文字幕免费在线观看视频一区| 亚洲精品大片www| 国产精品一区二区视频| 色8久久精品久久久久久蜜 | 蜜桃av噜噜一区二区三区小说| 夫妻av一区二区| 欧美成人一级视频| 亚洲成人av电影在线| 99精品在线免费| 国产精品天干天干在观线| 久久国产精品露脸对白| 欧美亚洲国产一区二区三区va | 在线国产亚洲欧美| 亚洲激情欧美激情| av电影一区二区| 亚洲国产精品嫩草影院| 91在线播放网址| 国产精品国模大尺度视频| 国产99久久久精品| 久久久久久**毛片大全| 国产精品乡下勾搭老头1| 日韩精品在线看片z| 蜜桃精品在线观看| 久久亚洲欧美国产精品乐播| 久久99热狠狠色一区二区| 日韩精品在线网站| 国产剧情一区在线| 国产精品久久久久国产精品日日| 国产一区二区免费视频| 久久精品在线免费观看| 波多野结衣中文字幕一区二区三区| 日本一区二区三区免费乱视频| 国产盗摄视频一区二区三区| 中国av一区二区三区| 99久久精品国产麻豆演员表| 亚洲日本在线天堂| 欧美福利视频导航| 精品一区二区成人精品| 国产精品美女久久久久久久| 在线观看日韩国产| 激情综合网天天干| 一区二区久久久| 欧美一区二区三区四区高清| 久久机这里只有精品| 日韩精品自拍偷拍| 日本不卡视频一二三区| 久久嫩草精品久久久久| 成人在线视频一区| 亚洲在线观看免费视频| 精品国产sm最大网站| 欧美亚洲精品一区| 成人免费看视频| 黄网站免费久久| 香蕉乱码成人久久天堂爱免费| 久久久久久一二三区| 欧美一区二区免费视频| 色av综合在线| 成人黄色一级视频| 成人国产精品视频| 久久99精品久久久久久动态图 | 精品视频一区 二区 三区| 波多野结衣精品在线| 国产91富婆露脸刺激对白| 蜜桃视频一区二区三区在线观看| 亚洲国产精品久久人人爱| 亚洲精品成人悠悠色影视| 国产精品嫩草99a| 国产免费成人在线视频| 国产午夜精品在线观看| 国产亚洲女人久久久久毛片| 欧美v国产在线一区二区三区| 91精品国产综合久久久蜜臀粉嫩 | 国产剧情在线观看一区二区| 久久成人av少妇免费| 亚洲h在线观看| 狠狠网亚洲精品| 成人av在线观| 欧美日韩一区二区三区视频 | 偷拍一区二区三区| 热久久一区二区| 成人免费高清视频| 欧美三级视频在线观看| 精品国产精品一区二区夜夜嗨| 久久九九久精品国产免费直播| 国产精品动漫网站| 天使萌一区二区三区免费观看| 国内久久婷婷综合| 欧美三级资源在线| 日本一二三四高清不卡| 艳妇臀荡乳欲伦亚洲一区| 麻豆成人久久精品二区三区小说| 国产成人精品免费在线| 欧洲在线/亚洲| 国产精品不卡视频| 日本欧洲一区二区| 欧美中文字幕不卡| 中文字幕第一区综合| 蓝色福利精品导航| 欧美日韩视频不卡|