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

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

?? util.s

?? linux內核源碼
?? S
字號:
/* * Useful bootup functions, which are more easily done in asm than C. * * NOTE:  Be very very careful about the registers you use here. *	We don't follow any ABI calling convention among the *	assembler functions that call each other, especially early *	in the initialization.  Please preserve at least r3 and r4 *	for these early functions, as they often contain information *	passed from boot roms into the C decompress function. * * Author: Tom Rini *	   trini@mvista.com * Derived from arch/ppc/boot/prep/head.S (Cort Dougan, many others). * * 2001-2004 (c) MontaVista, Software, Inc.  This file is licensed under * the terms of the GNU General Public License version 2.  This program * is licensed "as is" without any warranty of any kind, whether express * or implied. */#include <asm/processor.h>#include <asm/cache.h>#include <asm/ppc_asm.h>	.text#ifdef CONFIG_6xx	.globl	disable_6xx_mmudisable_6xx_mmu:	/* Establish default MSR value, exception prefix 0xFFF.	 * If necessary, this function must fix up the LR if we	 * return to a different address space once the MMU is	 * disabled.	 */	li	r8,MSR_IP|MSR_FP	mtmsr	r8	isync	/* Test for a 601 */	mfpvr	r10	srwi	r10,r10,16	cmpwi	0,r10,1		/* 601 ? */	beq	.clearbats_601	/* Clear BATs */	li	r8,0	mtspr	SPRN_DBAT0U,r8	mtspr	SPRN_DBAT0L,r8	mtspr	SPRN_DBAT1U,r8	mtspr	SPRN_DBAT1L,r8	mtspr	SPRN_DBAT2U,r8	mtspr	SPRN_DBAT2L,r8	mtspr	SPRN_DBAT3U,r8	mtspr	SPRN_DBAT3L,r8.clearbats_601:	mtspr	SPRN_IBAT0U,r8	mtspr	SPRN_IBAT0L,r8	mtspr	SPRN_IBAT1U,r8	mtspr	SPRN_IBAT1L,r8	mtspr	SPRN_IBAT2U,r8	mtspr	SPRN_IBAT2L,r8	mtspr	SPRN_IBAT3U,r8	mtspr	SPRN_IBAT3L,r8	isync	sync	sync	/* Set segment registers */	li	r8,16		/* load up segment register values */	mtctr	r8		/* for context 0 */	lis	r8,0x2000	/* Ku = 1, VSID = 0 */	li	r10,03:	mtsrin	r8,r10	addi	r8,r8,0x111	/* increment VSID */	addis	r10,r10,0x1000	/* address of next segment */	bdnz	3b	blr	.globl	disable_6xx_l1cachedisable_6xx_l1cache:	/* Enable, invalidate and then disable the L1 icache/dcache. */	li	r8,0	ori	r8,r8,(HID0_ICE|HID0_DCE|HID0_ICFI|HID0_DCI)	mfspr	r11,SPRN_HID0	or	r11,r11,r8	andc	r10,r11,r8	isync	mtspr	SPRN_HID0,r8	sync	isync	mtspr	SPRN_HID0,r10	sync	isync	blr#endif	.globl	_setup_L2CR_setup_L2CR:/* * We should be skipping this section on CPUs where this results in an * illegal instruction.  If not, please send trini@kernel.crashing.org * the PVR of your CPU. */	/* Invalidate/disable L2 cache */	sync	isync	mfspr	r8,SPRN_L2CR	rlwinm	r8,r8,0,1,31	oris	r8,r8,L2CR_L2I@h	sync	isync	mtspr	SPRN_L2CR,r8	sync	isync	/* Wait for the invalidation to complete */	mfspr   r8,SPRN_PVR	srwi    r8,r8,16	cmplwi	cr0,r8,0x8000			/* 7450 */	cmplwi	cr1,r8,0x8001			/* 7455 */	cmplwi	cr2,r8,0x8002			/* 7457 */	cror	4*cr0+eq,4*cr0+eq,4*cr1+eq	/* Now test if any are true. */	cror	4*cr0+eq,4*cr0+eq,4*cr2+eq	bne     2f1:	mfspr	r8,SPRN_L2CR	/* On 745x, poll L2I bit (bit 10) */	rlwinm.	r9,r8,0,10,10	bne	1b	b	3f2:      mfspr   r8,SPRN_L2CR	/* On 75x & 74[01]0, poll L2IP bit (bit 31) */	rlwinm. r9,r8,0,31,31	bne     2b3:	rlwinm	r8,r8,0,11,9	/* Turn off L2I bit */	sync	isync	mtspr	SPRN_L2CR,r8	sync	isync	blr	.globl	_setup_L3CR_setup_L3CR:	/* Invalidate/disable L3 cache */	sync	isync	mfspr	r8,SPRN_L3CR	rlwinm	r8,r8,0,1,31	ori	r8,r8,L3CR_L3I@l	sync	isync	mtspr	SPRN_L3CR,r8	sync	isync	/* Wait for the invalidation to complete */1:	mfspr	r8,SPRN_L3CR	rlwinm.	r9,r8,0,21,21	bne	1b	rlwinm	r8,r8,0,22,20		/* Turn off L3I bit */	sync	isync	mtspr	SPRN_L3CR,r8	sync	isync	blr/* udelay (on non-601 processors) needs to know the period of the * timebase in nanoseconds.  This used to be hardcoded to be 60ns * (period of 66MHz/4).  Now a variable is used that is initialized to * 60 for backward compatibility, but it can be overridden as necessary * with code something like this: *    extern unsigned long timebase_period_ns; *    timebase_period_ns = 1000000000 / bd->bi_tbfreq; */	.data	.globl timebase_period_nstimebase_period_ns:	.long	60	.text/* * Delay for a number of microseconds */	.globl	udelayudelay:	mfspr	r4,SPRN_PVR	srwi	r4,r4,16	cmpwi	0,r4,1		/* 601 ? */	bne	.udelay_not_60100:	li	r0,86	/* Instructions / microsecond? */	mtctr	r010:	addi	r0,r0,0 /* NOP */	bdnz	10b	subic.	r3,r3,1	bne	00b	blr.udelay_not_601:	mulli	r4,r3,1000	/* nanoseconds */	/*  Change r4 to be the number of ticks using:		 *	(nanoseconds + (timebase_period_ns - 1 )) / timebase_period_ns	 *  timebase_period_ns defaults to 60 (16.6MHz) */	lis	r5,timebase_period_ns@ha	lwz	r5,timebase_period_ns@l(r5)	add	r4,r4,r5	addi	r4,r4,-1	divw	r4,r4,r5	/* BUS ticks */1:	mftbu	r5	mftb	r6	mftbu	r7	cmpw	0,r5,r7	bne	1b		/* Get [synced] base time */	addc	r9,r6,r4	/* Compute end time */	addze	r8,r52:	mftbu	r5	cmpw	0,r5,r8	blt	2b	bgt	3f	mftb	r6	cmpw	0,r6,r9	blt	2b3:	blr	.section ".relocate_code","xa"/* * Flush and enable instruction cache * First, flush the data cache in case it was enabled and may be * holding instructions for copy back. */        .globl flush_instruction_cacheflush_instruction_cache:        	mflr	r6	bl	flush_data_cache#ifdef CONFIG_8xx	lis	r3, IDC_INVALL@h	mtspr	SPRN_IC_CST, r3	lis	r3, IDC_ENABLE@h	mtspr	SPRN_IC_CST, r3	lis	r3, IDC_DISABLE@h	mtspr	SPRN_DC_CST, r3#elif CONFIG_4xx	lis	r3,start@h		# r9 = &_start	lis	r4,_etext@ha	addi	r4,r4,_etext@l		# r8 = &_etext1:	dcbf	r0,r3			# Flush the data cache	icbi	r0,r3			# Invalidate the instruction cache	addi	r3,r3,0x10		# Increment by one cache line	cmplw	cr0,r3,r4		# Are we at the end yet?	blt	1b			# No, keep flushing and invalidating#else	/* Enable, invalidate and then disable the L1 icache/dcache. */	li	r3,0	ori	r3,r3,(HID0_ICE|HID0_DCE|HID0_ICFI|HID0_DCI)	mfspr	r4,SPRN_HID0	or	r5,r4,r3	isync	mtspr	SPRN_HID0,r5	sync	isync	ori	r5,r4,HID0_ICE	/* Enable cache */	mtspr	SPRN_HID0,r5	sync	isync#endif	mtlr	r6	blr#define NUM_CACHE_LINES 128*8#define cache_flush_buffer 0x1000/* * Flush data cache * Do this by just reading lots of stuff into the cache. */        .globl flush_data_cacheflush_data_cache:       	lis	r3,cache_flush_buffer@h	ori	r3,r3,cache_flush_buffer@l	li	r4,NUM_CACHE_LINES	mtctr	r400:	lwz	r4,0(r3)	addi	r3,r3,L1_CACHE_BYTES	/* Next line, please */	bdnz	00b10:	blr	.previous

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女诱惑一区二区| 91猫先生在线| 91论坛在线播放| 欧美一级日韩不卡播放免费| 日本一区二区三区久久久久久久久不| 亚洲免费在线看| 国产成人在线视频播放| 欧美一区二区三区喷汁尤物| 最新中文字幕一区二区三区| 国内精品国产成人国产三级粉色 | 国产一区二区三区香蕉| 色爱区综合激月婷婷| 久久久久久久综合| 免费看黄色91| 欧美精品视频www在线观看 | 亚洲国产精品高清| 激情图区综合网| 91精品午夜视频| 午夜电影久久久| 91成人免费在线视频| 中文字幕日韩一区| 成人av动漫网站| 国产精品无遮挡| 成人小视频免费观看| 久久久久久久久久久久久夜| 免费成人av在线播放| 91精品婷婷国产综合久久性色| 亚洲高清免费在线| 欧美日韩成人综合| 日韩综合一区二区| 制服丝袜成人动漫| 蜜桃av噜噜一区二区三区小说| 在线不卡欧美精品一区二区三区| 亚洲电影一级片| 69久久99精品久久久久婷婷| 天堂久久久久va久久久久| 欧美高清视频一二三区| 美国三级日本三级久久99| 91麻豆精品久久久久蜜臀| 日本大胆欧美人术艺术动态| 欧美一区二区免费视频| 精品在线你懂的| 中文字幕精品一区二区精品绿巨人| 高清在线观看日韩| 亚洲精品视频观看| 91.xcao| 国产在线看一区| 国产精品久久久久久久久免费桃花 | 有码一区二区三区| 欧美视频日韩视频在线观看| 日本aⅴ亚洲精品中文乱码| 91精品国产入口| 国产成人小视频| 亚洲最新在线观看| 337p亚洲精品色噜噜| 国产精品一区免费在线观看| 中文字幕亚洲综合久久菠萝蜜| 91成人在线观看喷潮| 久久99这里只有精品| 国产精品免费免费| 欧美色图第一页| 国产一区二区视频在线播放| 日韩伦理电影网| 91精品久久久久久久91蜜桃 | 蜜桃视频一区二区| 久久九九99视频| 欧美无人高清视频在线观看| 精品伊人久久久久7777人| 中文字幕一区二| 欧美成人免费网站| 色综合天天综合给合国产| 奇米精品一区二区三区在线观看 | 成人污视频在线观看| 午夜不卡av在线| 国产精品网友自拍| 91精品国产色综合久久不卡电影| 成人毛片在线观看| 日韩精品亚洲一区二区三区免费| 国产精品乱人伦中文| 欧美一区二区精美| 色屁屁一区二区| 国产一区二区精品在线观看| 亚洲成人免费视频| 国产精品久久久一本精品| 日韩免费性生活视频播放| 91久久奴性调教| 国产 日韩 欧美大片| 日韩和的一区二区| 亚洲欧美日韩系列| 久久久久久毛片| 日韩一区二区精品葵司在线 | 亚洲成人在线免费| 国产精品成人午夜| 久久精品男人的天堂| 欧美久久婷婷综合色| 91女厕偷拍女厕偷拍高清| 国产精华液一区二区三区| 日韩成人午夜精品| 亚洲第一会所有码转帖| 亚洲另类在线制服丝袜| 国产精品国产三级国产a | 亚洲视频免费看| 国产欧美日韩精品一区| 久久久综合视频| 2021中文字幕一区亚洲| 91麻豆精品国产自产在线观看一区 | 亚洲精品国产第一综合99久久 | 亚洲国产高清aⅴ视频| 日韩免费高清电影| 日韩视频一区二区三区在线播放| 在线观看国产日韩| 91国偷自产一区二区三区观看| 99九九99九九九视频精品| 成人的网站免费观看| 丁香天五香天堂综合| 国产成人在线观看| 成人高清视频在线观看| 成人午夜激情在线| www.久久久久久久久| 成年人网站91| 欧美亚洲自拍偷拍| 欧美亚洲日本一区| 精品视频1区2区3区| 欧美日韩亚洲丝袜制服| 欧美日本在线观看| 欧美xxxxx牲另类人与| 久久久五月婷婷| 国产精品免费视频网站| 亚洲精品乱码久久久久| 午夜精品久久久久久久久| 蜜臀久久99精品久久久久久9 | 国产三级一区二区| 久久影院电视剧免费观看| 久久久精品国产免费观看同学| 亚洲国产精品成人久久综合一区| 亚洲欧美一区二区三区久本道91| 一区二区免费在线播放| 日韩va亚洲va欧美va久久| 国产一区二区三区观看| 97久久人人超碰| 欧美日韩精品一二三区| 精品国产sm最大网站免费看| 国产精品美女久久久久高潮| 性做久久久久久| 久久成人羞羞网站| 91免费观看视频在线| 欧美夫妻性生活| 中文字幕一区二区三区乱码在线| 亚洲一区免费在线观看| 九一九一国产精品| 91碰在线视频| 久久奇米777| 亚洲一区二区中文在线| 国产精品一级片| 欧美在线一区二区| 久久精品免费在线观看| 亚洲国产欧美日韩另类综合 | 亚洲综合免费观看高清在线观看| 视频精品一区二区| bt7086福利一区国产| 欧美一级黄色片| 亚洲男帅同性gay1069| 精品一区二区三区不卡 | 成人小视频在线| 欧美一级二级在线观看| 亚洲视频你懂的| 高清成人免费视频| 欧美一卡二卡在线| 一区二区三区在线高清| 国产成人精品三级| 精品久久久久久久久久久久久久久久久 | 男人的天堂亚洲一区| 91小宝寻花一区二区三区| 日韩片之四级片| 亚洲成人av一区| av在线免费不卡| 国产喂奶挤奶一区二区三区| 视频在线观看91| 在线免费观看日本一区| 中文一区一区三区高中清不卡| 玖玖九九国产精品| 欧美日本国产一区| 亚洲综合在线视频| 一本一道波多野结衣一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 国产一区二区三区免费在线观看| 欧美精品免费视频| 亚洲第一在线综合网站| 91福利小视频| 亚洲午夜三级在线| 欧洲精品在线观看| 一区二区欧美国产| 欧美在线综合视频| 亚洲aaa精品| 欧美剧在线免费观看网站| 午夜伦欧美伦电影理论片| 欧美午夜免费电影| 亚洲第一久久影院| 欧美一级欧美三级在线观看| 久久精品国内一区二区三区|