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

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

?? p3mx.c

?? u-boot1.3.0的原碼,從配了網(wǎng)絡(luò)驅(qū)動和FLASH的驅(qū)動,并該用ESC竟如
?? C
?? 第 1 頁 / 共 2 頁
字號:
	/* CPU's PCI windows */	for (i = 0; i <= PCI_HOST1; i++) {		printf ("\nCPU's PCI %d windows\n", i);		base = pciGetSpaceBase (i, PCI_IO);		size = pciGetSpaceSize (i, PCI_IO);		printf ("      IO: base - 0x%08x\tsize - %dM bytes\n", base,			size >> 20);		/* ronen currently only first PCI MEM is used 3 */		for (j = 0; j <= PCI_REGION0; j++) {			base = pciGetSpaceBase (i, j);			size = pciGetSpaceSize (i, j);			printf ("MEMORY %d: base - 0x%08x\tsize - %dM bytes\n",				j, base, size >> 20);		}	}#endif /* of CONFIG_PCI */	/* Bootrom */	base = memoryGetDeviceBaseAddress (BOOT_DEVICE);	/* Boot */	size = memoryGetDeviceSize (BOOT_DEVICE);	width = memoryGetDeviceWidth (BOOT_DEVICE) * 8;	printf (" BOOT:  base - 0x%08x  size - %dM bytes\twidth - %d bits\t- FLASH\n",		base, size >> 20, width);	return (0);}/* DRAM check routines copied from gw8260 */#if defined (CFG_DRAM_TEST)/*********************************************************************//* NAME:  move64() -  moves a double word (64-bit)		     *//*								     *//* DESCRIPTION:							     *//*   this function performs a double word move from the data at	     *//*   the source pointer to the location at the destination pointer.  *//*								     *//* INPUTS:							     *//*   unsigned long long *src  - pointer to data to move		     *//*								     *//* OUTPUTS:							     *//*   unsigned long long *dest - pointer to locate to move data	     *//*								     *//* RETURNS:							     *//*   None							     *//*								     *//* RESTRICTIONS/LIMITATIONS:					     *//*   May cloober fr0.						     *//*								     *//*********************************************************************/static void move64 (unsigned long long *src, unsigned long long *dest){	asm ("lfd  0, 0(3)\n\t"	/* fpr0   =  *scr       */	     "stfd 0, 0(4)"	/* *dest  =  fpr0       */	     : : : "fr0");		/* Clobbers fr0         */	return;}#if defined (CFG_DRAM_TEST_DATA)unsigned long long pattern[] = {	0xaaaaaaaaaaaaaaaaULL,	0xccccccccccccccccULL,	0xf0f0f0f0f0f0f0f0ULL,	0xff00ff00ff00ff00ULL,	0xffff0000ffff0000ULL,	0xffffffff00000000ULL,	0x00000000ffffffffULL,	0x0000ffff0000ffffULL,	0x00ff00ff00ff00ffULL,	0x0f0f0f0f0f0f0f0fULL,	0x3333333333333333ULL,	0x5555555555555555ULL};/*********************************************************************//* NAME:  mem_test_data() -  test data lines for shorts and opens    *//*								     *//* DESCRIPTION:							     *//*   Tests data lines for shorts and opens by forcing adjacent data  *//*   to opposite states. Because the data lines could be routed in   *//*   an arbitrary manner the must ensure test patterns ensure that   *//*   every case is tested. By using the following series of binary   *//*   patterns every combination of adjacent bits is test regardless  *//*   of routing.						     *//*								     *//*     ...101010101010101010101010				     *//*     ...110011001100110011001100				     *//*     ...111100001111000011110000				     *//*     ...111111110000000011111111				     *//*								     *//*   Carrying this out, gives us six hex patterns as follows:	     *//*								     *//*     0xaaaaaaaaaaaaaaaa					     *//*     0xcccccccccccccccc					     *//*     0xf0f0f0f0f0f0f0f0					     *//*     0xff00ff00ff00ff00					     *//*     0xffff0000ffff0000					     *//*     0xffffffff00000000					     *//*								     *//*   The number test patterns will always be given by:		     *//*								     *//*   log(base 2)(number data bits) = log2 (64) = 6		     *//*								     *//*   To test for short and opens to other signals on our boards. we  *//*   simply							     *//*   test with the 1's complemnt of the paterns as well.	     *//*								     *//* OUTPUTS:							     *//*   Displays failing test pattern				     *//*								     *//* RETURNS:							     *//*   0 -  Passed test						     *//*   1 -  Failed test						     *//*								     *//* RESTRICTIONS/LIMITATIONS:					     *//*  Assumes only one one SDRAM bank				     *//*								     *//*********************************************************************/int mem_test_data (void){	unsigned long long *pmem = (unsigned long long *) CFG_MEMTEST_START;	unsigned long long temp64 = 0;	int num_patterns = sizeof (pattern) / sizeof (pattern[0]);	int i;	unsigned int hi, lo;	for (i = 0; i < num_patterns; i++) {		move64 (&(pattern[i]), pmem);		move64 (pmem, &temp64);		/* hi = (temp64>>32) & 0xffffffff;          */		/* lo = temp64 & 0xffffffff;                */		/* printf("\ntemp64 = 0x%08x%08x", hi, lo); */		hi = (pattern[i] >> 32) & 0xffffffff;		lo = pattern[i] & 0xffffffff;		/* printf("\npattern[%d] = 0x%08x%08x", i, hi, lo);  */		if (temp64 != pattern[i]) {			printf ("\n   Data Test Failed, pattern 0x%08x%08x",				hi, lo);			return 1;		}	}	return 0;}#endif /* CFG_DRAM_TEST_DATA */#if defined (CFG_DRAM_TEST_ADDRESS)/*********************************************************************//* NAME:  mem_test_address() -	test address lines		     *//*								     *//* DESCRIPTION:							     *//*   This function performs a test to verify that each word im	     *//*   memory is uniquly addressable. The test sequence is as follows: *//*								     *//*   1) write the address of each word to each word.		     *//*   2) verify that each location equals its address		     *//*								     *//* OUTPUTS:							     *//*   Displays failing test pattern and address			     *//*								     *//* RETURNS:							     *//*   0 -  Passed test						     *//*   1 -  Failed test						     *//*								     *//* RESTRICTIONS/LIMITATIONS:					     *//*								     *//*								     *//*********************************************************************/int mem_test_address (void){	volatile unsigned int *pmem =		(volatile unsigned int *) CFG_MEMTEST_START;	const unsigned int size = (CFG_MEMTEST_END - CFG_MEMTEST_START) / 4;	unsigned int i;	/* write address to each location */	for (i = 0; i < size; i++)		pmem[i] = i;	/* verify each loaction */	for (i = 0; i < size; i++) {		if (pmem[i] != i) {			printf ("\n   Address Test Failed at 0x%x", i);			return 1;		}	}	return 0;}#endif /* CFG_DRAM_TEST_ADDRESS */#if defined (CFG_DRAM_TEST_WALK)/*********************************************************************//* NAME:   mem_march() -  memory march				     *//*								     *//* DESCRIPTION:							     *//*   Marches up through memory. At each location verifies rmask if   *//*   read = 1. At each location write wmask if	write = 1. Displays  *//*   failing address and pattern.				     *//*								     *//* INPUTS:							     *//*   volatile unsigned long long * base - start address of test	     *//*   unsigned int size - number of dwords(64-bit) to test	     *//*   unsigned long long rmask - read verify mask		     *//*   unsigned long long wmask - wrtie verify mask		     *//*   short read - verifies rmask if read = 1			     *//*   short write  - writes wmask if write = 1			     *//*								     *//* OUTPUTS:							     *//*   Displays failing test pattern and address			     *//*								     *//* RETURNS:							     *//*   0 -  Passed test						     *//*   1 -  Failed test						     *//*								     *//* RESTRICTIONS/LIMITATIONS:					     *//*								     *//*								     *//*********************************************************************/int mem_march (volatile unsigned long long *base,	       unsigned int size,	       unsigned long long rmask,	       unsigned long long wmask, short read, short write){	unsigned int i;	unsigned long long temp = 0;	unsigned int hitemp, lotemp, himask, lomask;	for (i = 0; i < size; i++) {		if (read != 0) {			/* temp = base[i]; */			move64 ((unsigned long long *) &(base[i]), &temp);			if (rmask != temp) {				hitemp = (temp >> 32) & 0xffffffff;				lotemp = temp & 0xffffffff;				himask = (rmask >> 32) & 0xffffffff;				lomask = rmask & 0xffffffff;				printf ("\n Walking one's test failed: address = 0x%08x," "\n\texpected 0x%08x%08x, found 0x%08x%08x", i << 3, himask, lomask, hitemp, lotemp);				return 1;			}		}		if (write != 0) {			/*  base[i] = wmask; */			move64 (&wmask, (unsigned long long *) &(base[i]));		}	}	return 0;}#endif /* CFG_DRAM_TEST_WALK *//*********************************************************************//* NAME:   mem_test_walk() -  a simple walking ones test	     *//*								     *//* DESCRIPTION:							     *//*   Performs a walking ones through entire physical memory. The     *//*   test uses as series of memory marches, mem_march(), to verify   *//*   and write the test patterns to memory. The test sequence is as  *//*   follows:							     *//*     1) march writing 0000...0001				     *//*     2) march verifying 0000...0001  , writing  0000...0010	     *//*     3) repeat step 2 shifting masks left 1 bit each time unitl    *//*	   the write mask equals 1000...0000			     *//*     4) march verifying 1000...0000				     *//*   The test fails if any of the memory marches return a failure.   *//*								     *//* OUTPUTS:							     *//*   Displays which pass on the memory test is executing	     *//*								     *//* RETURNS:							     *//*   0 -  Passed test						     *//*   1 -  Failed test						     *//*								     *//* RESTRICTIONS/LIMITATIONS:					     *//*								     *//*								     *//*********************************************************************/int mem_test_walk (void){	unsigned long long mask;	volatile unsigned long long *pmem =		(volatile unsigned long long *) CFG_MEMTEST_START;	const unsigned long size = (CFG_MEMTEST_END - CFG_MEMTEST_START) / 8;	unsigned int i;	mask = 0x01;	printf ("Initial Pass");	mem_march (pmem, size, 0x0, 0x1, 0, 1);	printf ("\b\b\b\b\b\b\b\b\b\b\b\b");	printf ("		");	printf ("         ");	printf ("\b\b\b\b\b\b\b\b\b\b\b\b");	for (i = 0; i < 63; i++) {		printf ("Pass %2d", i + 2);		if (mem_march (pmem, size, mask, mask << 1, 1, 1) != 0) {			/*printf("mask: 0x%x, pass: %d, ", mask, i); */			return 1;		}		mask = mask << 1;		printf ("\b\b\b\b\b\b\b");	}	printf ("Last Pass");	if (mem_march (pmem, size, 0, mask, 0, 1) != 0) {		/* printf("mask: 0x%x", mask); */		return 1;	}	printf ("\b\b\b\b\b\b\b\b\b");	printf ("	     ");	printf ("\b\b\b\b\b\b\b\b\b");	return 0;}/*********************************************************************//* NAME:    testdram() -  calls any enabled memory tests	     *//*								     *//* DESCRIPTION:							     *//*   Runs memory tests if the environment test variables are set to  *//*   'y'.							     *//*								     *//* INPUTS:							     *//*   testdramdata    - If set to 'y', data test is run.		     *//*   testdramaddress - If set to 'y', address test is run.	     *//*   testdramwalk    - If set to 'y', walking ones test is run	     *//*								     *//* OUTPUTS:							     *//*   None							     *//*								     *//* RETURNS:							     *//*   0 -  Passed test						     *//*   1 -  Failed test						     *//*								     *//* RESTRICTIONS/LIMITATIONS:					     *//*								     *//*								     *//*********************************************************************/int testdram (void){	char *s;	int rundata    = 0;	int runaddress = 0;	int runwalk    = 0;#ifdef CFG_DRAM_TEST_DATA	s = getenv ("testdramdata");	rundata = (s && (*s == 'y')) ? 1 : 0;#endif#ifdef CFG_DRAM_TEST_ADDRESS	s = getenv ("testdramaddress");	runaddress = (s && (*s == 'y')) ? 1 : 0;#endif#ifdef CFG_DRAM_TEST_WALK	s = getenv ("testdramwalk");	runwalk = (s && (*s == 'y')) ? 1 : 0;#endif	if ((rundata == 1) || (runaddress == 1) || (runwalk == 1))		printf ("Testing RAM from 0x%08x to 0x%08x ...  "			"(don't panic... that will take a moment !!!!)\n",			CFG_MEMTEST_START, CFG_MEMTEST_END);#ifdef CFG_DRAM_TEST_DATA	if (rundata == 1) {		printf ("Test DATA ...  ");		if (mem_test_data () == 1) {			printf ("failed \n");			return 1;		} else			printf ("ok \n");	}#endif#ifdef CFG_DRAM_TEST_ADDRESS	if (runaddress == 1) {		printf ("Test ADDRESS ...  ");		if (mem_test_address () == 1) {			printf ("failed \n");			return 1;		} else			printf ("ok \n");	}#endif#ifdef CFG_DRAM_TEST_WALK	if (runwalk == 1) {		printf ("Test WALKING ONEs ...  ");		if (mem_test_walk () == 1) {			printf ("failed \n");			return 1;		} else			printf ("ok \n");	}#endif	if ((rundata == 1) || (runaddress == 1) || (runwalk == 1))		printf ("passed\n");	return 0;}#endif /* CFG_DRAM_TEST *//* ronen - the below functions are used by the bootm function           *//*  - we map the base register to fbe00000 (same mapping as in the LSP) *//*  - we turn off the RX gig dmas - to prevent the dma from overunning  *//*    the kernel data areas.                                            *//*  - we diable and invalidate the icache and dcache.                   */void my_remap_gt_regs_bootm (u32 cur_loc, u32 new_loc){	u32 temp;	temp = in_le32 ((u32 *) (new_loc + INTERNAL_SPACE_DECODE));	if ((temp & 0xffff) == new_loc >> 16)		return;	temp = (in_le32 ((u32 *) (cur_loc + INTERNAL_SPACE_DECODE)) &		0xffff0000) | (new_loc >> 16);	out_le32 ((u32 *) (cur_loc + INTERNAL_SPACE_DECODE), temp);	while ((WORD_SWAP (*((volatile unsigned int *) (NONE_CACHEABLE |							new_loc |							(INTERNAL_SPACE_DECODE)))))	       != temp);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品视频一区| 日韩一级大片在线观看| 精品国产百合女同互慰| 亚洲女厕所小便bbb| 国内精品在线播放| 欧美日本一区二区| 一个色综合网站| 91亚洲国产成人精品一区二区三| 欧美一区二区黄色| 一区二区三区高清不卡| 91在线精品一区二区| 欧美激情一区不卡| 麻豆91在线播放免费| 欧美日韩成人激情| 免费日韩伦理电影| 日韩午夜激情免费电影| 蜜乳av一区二区三区| 精品日韩一区二区三区免费视频| 亚洲国产精品久久不卡毛片| 日本精品一级二级| 亚洲欧美一区二区视频| 一本一本大道香蕉久在线精品 | 三级在线观看一区二区| 精品视频1区2区| 看电影不卡的网站| 2欧美一区二区三区在线观看视频| 国产一区福利在线| 国产精品久久久久久久久果冻传媒| 成人美女视频在线看| 亚洲男人的天堂在线aⅴ视频| 99久久精品国产观看| 亚洲一区成人在线| 欧美午夜精品免费| 一区av在线播放| 日韩三级视频在线观看| 成人黄色小视频在线观看| 亚洲国产精品一区二区久久| 欧美一级在线观看| 色女孩综合影院| 国产精品自拍一区| 亚洲亚洲精品在线观看| 久久综合九色综合97婷婷| 91福利视频网站| 国产成人一级电影| 日韩av电影天堂| 亚洲精品成人天堂一二三| 久久久综合精品| 日韩一区二区三区在线视频| 懂色av一区二区夜夜嗨| 日韩电影在线一区二区| 亚洲精品午夜久久久| 2024国产精品视频| 9191国产精品| 色视频一区二区| 色综合久久综合网欧美综合网| 国产一区不卡精品| 国产一区二区三区在线看麻豆 | 精品综合久久久久久8888| 国产精品对白交换视频| 91精品国产一区二区人妖| 91亚洲国产成人精品一区二区三 | 久久综合九色综合欧美就去吻| 国产成人丝袜美腿| 国产在线一区观看| 极品销魂美女一区二区三区| 日本不卡视频在线观看| 亚洲国产综合色| 五月天丁香久久| 日韩高清不卡在线| 久久99精品久久久久久国产越南| 精品一区二区三区视频在线观看| 人人爽香蕉精品| 国产aⅴ综合色| 91在线小视频| 99精品在线观看视频| 色琪琪一区二区三区亚洲区| 欧美日韩三级一区| 日韩精品一区二区三区视频| 久久精品网站免费观看| 国产精品美女久久久久久久久| 久久久午夜精品| 亚洲激情图片一区| 卡一卡二国产精品| 在线免费观看日本欧美| 日韩三级视频中文字幕| 国产精品麻豆久久久| 亚洲资源中文字幕| 国产精品综合在线视频| 91国偷自产一区二区开放时间 | 久久精品男人天堂av| 午夜精品久久久久久| 亚洲五码中文字幕| 日日夜夜精品视频天天综合网| 一区二区三区鲁丝不卡| 亚洲午夜久久久久久久久电影院| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美日韩成人在线一区| 久久超级碰视频| 亚洲图片另类小说| 2021中文字幕一区亚洲| 欧美在线免费观看视频| 国产一区二区精品在线观看| 亚洲国产精品99久久久久久久久| 亚洲午夜免费视频| 日本vs亚洲vs韩国一区三区二区| 欧美aaa在线| 日韩黄色在线观看| 久久精品国产**网站演员| 欧美视频在线播放| 亚洲无线码一区二区三区| 色一区在线观看| 久久精品日韩一区二区三区| 青娱乐精品视频在线| 91浏览器入口在线观看| 一区二区三区在线免费| 日本韩国视频一区二区| 亚洲视频在线一区| 粉嫩嫩av羞羞动漫久久久 | wwwwxxxxx欧美| 欧美一级搡bbbb搡bbbb| 天堂av在线一区| 亚洲欧美影音先锋| 欧美乱妇一区二区三区不卡视频| 久久超碰97中文字幕| 亚洲国产精品黑人久久久| 欧美亚洲动漫制服丝袜| 国产乱子轮精品视频| 国产精品久久777777| 日韩视频在线观看一区二区| 91丨国产丨九色丨pron| 精品一区二区综合| 亚洲一区二区在线免费观看视频| 久久久一区二区| 日韩一区二区电影网| 欧美亚洲精品一区| 99精品视频在线播放观看| 毛片不卡一区二区| 亚洲1区2区3区4区| 综合亚洲深深色噜噜狠狠网站| 久久久久成人黄色影片| 日韩免费高清视频| 国产一区二区中文字幕| 国产精品视频一二三| 亚洲三级视频在线观看| 亚洲图片欧美视频| 国产iv一区二区三区| 欧亚洲嫩模精品一区三区| 欧美xxx久久| 亚洲免费观看高清| 极品少妇一区二区| 在线视频欧美精品| 久久精品在这里| 午夜精品久久久久久久99水蜜桃| 韩国成人在线视频| 欧美日韩在线精品一区二区三区激情 | 国产精品18久久久久久久久 | 蜜桃一区二区三区在线观看| 亚洲高清在线精品| 日精品一区二区三区| 日本在线不卡视频| 国产剧情av麻豆香蕉精品| 国产乱码精品一区二区三| 成人18精品视频| 欧美美女喷水视频| 久久久午夜电影| 亚洲精品国产一区二区精华液| 午夜影院在线观看欧美| 国产在线精品一区二区夜色| 99久久精品久久久久久清纯| 欧美无乱码久久久免费午夜一区 | 天天综合网天天综合色| 毛片一区二区三区| 色欧美日韩亚洲| www国产成人免费观看视频 深夜成人网| 久久人人97超碰com| 亚洲欧美偷拍另类a∨色屁股| 三级成人在线视频| zzijzzij亚洲日本少妇熟睡| 欧美日韩国产一级片| 国产精品久久久久影视| 免费av网站大全久久| 91黄视频在线观看| 国产精品视频一二三| 国产一二精品视频| 欧美夫妻性生活| 亚洲精品免费电影| 高清久久久久久| 精品91自产拍在线观看一区| 日韩精品视频网| 欧美日韩激情一区二区三区| 亚洲品质自拍视频| av影院午夜一区| 国产精品精品国产色婷婷| 国产美女av一区二区三区| 日韩一卡二卡三卡四卡| 一区二区三区不卡视频| 色综合久久99| 亚洲国产日韩在线一区模特| 色av综合在线| 亚洲国产成人91porn|