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

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

?? p3mx.c

?? U-boot latest tarball
?? C
?? 第 1 頁 / 共 2 頁
字號:
	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 (CONFIG_SYS_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 (CONFIG_SYS_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 *) CONFIG_SYS_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 /* CONFIG_SYS_DRAM_TEST_DATA */#if defined (CONFIG_SYS_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 *) CONFIG_SYS_MEMTEST_START;	const unsigned int size = (CONFIG_SYS_MEMTEST_END - CONFIG_SYS_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 /* CONFIG_SYS_DRAM_TEST_ADDRESS */#if defined (CONFIG_SYS_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 /* CONFIG_SYS_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 *) CONFIG_SYS_MEMTEST_START;	const unsigned long size = (CONFIG_SYS_MEMTEST_END - CONFIG_SYS_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 CONFIG_SYS_DRAM_TEST_DATA	s = getenv ("testdramdata");	rundata = (s && (*s == 'y')) ? 1 : 0;#endif#ifdef CONFIG_SYS_DRAM_TEST_ADDRESS	s = getenv ("testdramaddress");	runaddress = (s && (*s == 'y')) ? 1 : 0;#endif#ifdef CONFIG_SYS_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",			CONFIG_SYS_MEMTEST_START, CONFIG_SYS_MEMTEST_END);#ifdef CONFIG_SYS_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 CONFIG_SYS_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 CONFIG_SYS_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 /* CONFIG_SYS_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);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久不见久久见中文字幕免费| 久久久高清一区二区三区| 一区二区三区在线影院| 成年人国产精品| 亚洲嫩草精品久久| 欧美吞精做爰啪啪高潮| 亚洲成人av电影| 欧美tickling挠脚心丨vk| 国产麻豆精品在线| 国产精品少妇自拍| 欧美午夜不卡视频| 久久精品国产**网站演员| 久久亚洲影视婷婷| 99riav久久精品riav| 亚洲bt欧美bt精品777| 精品福利av导航| 97久久超碰精品国产| 亚洲18色成人| 国产日韩欧美a| 91福利在线导航| 蜜桃精品视频在线观看| 国产女同互慰高潮91漫画| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲第一狼人社区| 欧美精品一区二区三| 波多野结衣在线一区| 天天色综合成人网| 国产欧美日韩视频在线观看| 91福利视频在线| 黑人精品欧美一区二区蜜桃 | 亚洲视频一二三区| 欧美性色黄大片| 国产高清在线观看免费不卡| 一区二区三区在线观看动漫| 日韩精品一区二区三区老鸭窝| 成人一区二区三区中文字幕| 亚洲成av人片| 国产精品久久夜| 日韩欧美国产电影| 91麻豆文化传媒在线观看| 久草精品在线观看| 亚洲综合区在线| 国产欧美精品一区二区色综合 | 2023国产精品自拍| 欧美性大战久久久久久久| 国产中文一区二区三区| 亚洲大片免费看| 中文字幕一区二区日韩精品绯色| 欧美福利视频导航| 在线视频一区二区三| 成人免费av网站| 狠狠色综合播放一区二区| 亚洲第一二三四区| 亚洲美女区一区| 亚洲国产精品高清| 欧美精品一区二区三区高清aⅴ | 在线观看av不卡| 丁香啪啪综合成人亚洲小说| 狠狠色丁香久久婷婷综合_中| 偷拍亚洲欧洲综合| 亚洲国产成人高清精品| 亚洲色图视频网站| 国产精品九色蝌蚪自拍| 精品国产伦理网| 日韩欧美精品三级| 日韩一区二区三区在线观看 | 亚洲不卡在线观看| 亚洲女同ⅹxx女同tv| 国产精品美女久久福利网站| 国产欧美精品一区| 国产欧美视频一区二区| 国产日产欧产精品推荐色| 久久这里只有精品6| 久久久综合激的五月天| 精品久久久久一区| xnxx国产精品| 国产欧美1区2区3区| 国产精品色呦呦| 国产精品不卡在线| 亚洲图片你懂的| 亚洲欧美日韩国产成人精品影院| 国产精品天天摸av网| 国产精品久久久久影院色老大 | 亚洲色图一区二区三区| 亚洲欧美日韩国产另类专区 | 欧美在线免费视屏| 欧美视频一区二区三区在线观看| 欧美日韩一级视频| 欧美肥妇bbw| 精品伦理精品一区| 国产欧美一区二区精品性色超碰 | 亚洲午夜精品网| 天天爽夜夜爽夜夜爽精品视频| 日韩影院精彩在线| 激情久久五月天| 国产激情一区二区三区| 成人黄色网址在线观看| 色94色欧美sute亚洲线路一久 | 成人免费视频app| 成人久久视频在线观看| 在线看日本不卡| 欧美一区二视频| 久久久国产精品不卡| 亚洲美女淫视频| 日日摸夜夜添夜夜添国产精品 | 国产高清亚洲一区| 色先锋aa成人| 51精品国自产在线| 中文字幕av在线一区二区三区| 综合av第一页| 免费观看91视频大全| 丁香婷婷综合网| 欧美在线一二三| 久久久久久夜精品精品免费| 亚洲欧美日韩中文字幕一区二区三区| 爽好多水快深点欧美视频| 精品一二三四在线| 色哟哟国产精品免费观看| 精品人伦一区二区色婷婷| 国产精品不卡一区| 美国毛片一区二区| 色婷婷av久久久久久久| 日韩精品在线看片z| 亚洲欧美日韩国产综合| 国产一区二区0| 欧美性猛交xxxx乱大交退制版 | 综合久久国产九一剧情麻豆| 美女爽到高潮91| 在线观看亚洲精品视频| 久久久国际精品| 日韩成人dvd| 91成人看片片| 国产欧美日韩不卡免费| 日本成人在线看| 在线亚洲一区二区| 欧美极品美女视频| 精品系列免费在线观看| 欧美影视一区在线| 国产精品的网站| 国产九九视频一区二区三区| 欧美久久免费观看| 亚洲精品久久7777| 播五月开心婷婷综合| 精品日韩成人av| 日韩中文字幕1| 欧美日韩美少妇| 亚洲综合区在线| 色999日韩国产欧美一区二区| 中文字幕第一页久久| 国内精品自线一区二区三区视频| 欧美日韩精品一区二区三区蜜桃 | 五月婷婷久久综合| 在线观看91视频| 亚洲精品中文字幕乱码三区| 国产91精品欧美| 国产丝袜在线精品| 国产经典欧美精品| 久久婷婷一区二区三区| 黑人巨大精品欧美一区| 欧美哺乳videos| 久久国产生活片100| 日韩亚洲欧美在线| 日韩av在线发布| 欧美精品精品一区| 石原莉奈在线亚洲二区| 欧美三级乱人伦电影| 亚洲一区成人在线| 欧美日韩中文国产| 亚洲国产综合人成综合网站| 欧美色网一区二区| 图片区小说区国产精品视频| 欧美麻豆精品久久久久久| 亚洲大片免费看| 91精品国产综合久久精品性色 | 精品国产3级a| 精品一二三四区| 国产亚洲欧美在线| av在线播放成人| 亚洲乱码中文字幕| 欧美在线三级电影| 日韩中文字幕区一区有砖一区| 91精品国产综合久久精品app| 麻豆久久久久久| 久久久综合激的五月天| 波多野洁衣一区| 亚洲精品久久嫩草网站秘色| 欧美日本在线看| 看片的网站亚洲| 国产肉丝袜一区二区| 99久久综合99久久综合网站| 亚洲黄色片在线观看| 欧美肥妇毛茸茸| 国产成人免费视频| 亚洲乱码精品一二三四区日韩在线| 欧美体内she精高潮| 黄色精品一二区| 国产精品成人免费| 91精品啪在线观看国产60岁| 国产福利视频一区二区三区| 亚洲美女屁股眼交|