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

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

?? cache.s

?? Atmel 91系列ARM的boot loader啟動代碼
?? S
字號:
#include <config.h>#include <74xx_7xx.h>#include <version.h>#include <ppc_asm.tmpl>#include <ppc_defs.h>#include <asm/cache.h>#include <asm/mmu.h>#ifndef CACHE_LINE_SIZE# define CACHE_LINE_SIZE L1_CACHE_BYTES#endif#if CACHE_LINE_SIZE == 128#define LG_CACHE_LINE_SIZE 7#elif CACHE_LINE_SIZE == 32#define LG_CACHE_LINE_SIZE 5#elif CACHE_LINE_SIZE == 16#define LG_CACHE_LINE_SIZE 4#elif CACHE_LINE_SIZE == 8#define LG_CACHE_LINE_SIZE 3#else# error "Invalid cache line size!"#endif/* * Invalidate L1 instruction cache. */_GLOBAL(invalidate_l1_instruction_cache)	mfspr	r3,PVR	rlwinm	r3,r3,16,16,31	cmpi	0,r3,1	beqlr			/* for 601, do nothing */	/* 603/604 processor - use invalidate-all bit in HID0 */	mfspr	r3,HID0	ori	r3,r3,HID0_ICFI	mtspr	HID0,r3	isync	blr/* * Invalidate L1 data cache. */_GLOBAL(invalidate_l1_data_cache)	mfspr	r3,HID0	ori	r3,r3,HID0_DCFI	mtspr	HID0,r3	isync	blr/* * Flush data cache. */_GLOBAL(flush_data_cache)	lis	r3,0	lis	r5,CACHE_LINE_SIZEflush:	cmp	0,1,r3,r5	bge	done	lwz	r5,0(r3)	lis	r5,CACHE_LINE_SIZE	addi	r3,r3,0x4	b	flushdone:	blr/* * Write any modified data cache blocks out to memory * and invalidate the corresponding instruction cache blocks. * This is a no-op on the 601. * * flush_icache_range(unsigned long start, unsigned long stop) */_GLOBAL(flush_icache_range)	mfspr	r5,PVR	rlwinm	r5,r5,16,16,31	cmpi	0,r5,1	beqlr				/* for 601, do nothing */	li	r5,CACHE_LINE_SIZE-1	andc	r3,r3,r5	subf	r4,r3,r4	add	r4,r4,r5	srwi.	r4,r4,LG_CACHE_LINE_SIZE	beqlr	mtctr	r4	mr	r6,r31:	dcbst	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	sync				/* wait for dcbst's to get to ram */	mtctr	r42:	icbi	0,r6	addi	r6,r6,CACHE_LINE_SIZE	bdnz	2b	sync				/* additional sync needed on g4 */	isync	blr/* * Write any modified data cache blocks out to memory. * Does not invalidate the corresponding cache lines (especially for * any corresponding instruction cache). * * clean_dcache_range(unsigned long start, unsigned long stop) */_GLOBAL(clean_dcache_range)	li	r5,CACHE_LINE_SIZE-1	andc	r3,r3,r5	/* align r3 down to cache line */	subf	r4,r3,r4	/* r4 = offset of stop from start of cache line */	add	r4,r4,r5	/* r4 += cache_line_size-1 */	srwi.	r4,r4,LG_CACHE_LINE_SIZE  /* r4 = number of cache lines to flush */	beqlr				  /* if r4 == 0 return */	mtctr	r4			  /* ctr = r4 */	sync1:	dcbst	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	sync				/* wait for dcbst's to get to ram */	blr/* * Write any modified data cache blocks out to memory * and invalidate the corresponding instruction cache blocks. * * flush_dcache_range(unsigned long start, unsigned long stop) */_GLOBAL(flush_dcache_range)	li	r5,CACHE_LINE_SIZE-1	andc	r3,r3,r5	subf	r4,r3,r4	add	r4,r4,r5	srwi.	r4,r4,LG_CACHE_LINE_SIZE	beqlr	mtctr	r4	sync1:	dcbf	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	sync				/* wait for dcbf's to get to ram */	blr/* * Like above, but invalidate the D-cache.  This is used by the 8xx * to invalidate the cache so the PPC core doesn't get stale data * from the CPM (no cache snooping here :-). * * invalidate_dcache_range(unsigned long start, unsigned long stop) */_GLOBAL(invalidate_dcache_range)	li	r5,CACHE_LINE_SIZE-1	andc	r3,r3,r5	subf	r4,r3,r4	add	r4,r4,r5	srwi.	r4,r4,LG_CACHE_LINE_SIZE	beqlr	mtctr	r4	sync1:	dcbi	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	sync				/* wait for dcbi's to get to ram */	blr/* * Flush a particular page from the data cache to RAM. * Note: this is necessary because the instruction cache does *not* * snoop from the data cache. * This is a no-op on the 601 which has a unified cache. * *	void __flush_page_to_ram(void *page) */_GLOBAL(__flush_page_to_ram)	mfspr	r5,PVR	rlwinm	r5,r5,16,16,31	cmpi	0,r5,1	beqlr				/* for 601, do nothing */	rlwinm	r3,r3,0,0,19		/* Get page base address */	li	r4,4096/CACHE_LINE_SIZE	/* Number of lines in a page */	mtctr	r4	mr	r6,r30:	dcbst	0,r3			/* Write line to ram */	addi	r3,r3,CACHE_LINE_SIZE	bdnz	0b	sync	mtctr	r41:	icbi	0,r6	addi	r6,r6,CACHE_LINE_SIZE	bdnz	1b	sync	isync	blr/* * Flush a particular page from the instruction cache. * Note: this is necessary because the instruction cache does *not* * snoop from the data cache. * This is a no-op on the 601 which has a unified cache. * *	void __flush_icache_page(void *page) */_GLOBAL(__flush_icache_page)	mfspr	r5,PVR	rlwinm	r5,r5,16,16,31	cmpi	0,r5,1	beqlr				/* for 601, do nothing */	li	r4,4096/CACHE_LINE_SIZE	/* Number of lines in a page */	mtctr	r41:	icbi	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	sync	isync	blr/* * Clear a page using the dcbz instruction, which doesn't cause any * memory traffic (except to write out any cache lines which get * displaced).  This only works on cacheable memory. */_GLOBAL(clear_page)	li	r0,4096/CACHE_LINE_SIZE	mtctr	r01:	dcbz	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	blr/* * Enable L1 Instruction cache */_GLOBAL(icache_enable)	mfspr	r3, HID0	li	r5, HID0_ICFI|HID0_ILOCK	andc	r3, r3, r5	ori	r3, r3, HID0_ICE	ori	r5, r3, HID0_ICFI	mtspr	HID0, r5	mtspr	HID0, r3	isync	blr/* * Disable L1 Instruction cache */_GLOBAL(icache_disable)	mfspr	r3, HID0	li	r5, 0	ori	r5, r5, HID0_ICE	andc	r3, r3, r5	mtspr	HID0, r3	isync	blr/* * Is instruction cache enabled? */_GLOBAL(icache_status)	mfspr	r3, HID0	andi.	r3, r3, HID0_ICE	blr_GLOBAL(l1dcache_enable)	mfspr	r3, HID0	li	r5, HID0_DCFI|HID0_DLOCK	andc	r3, r3, r5	mtspr	HID0, r3		/* no invalidate, unlock */	ori	r3, r3, HID0_DCE	ori	r5, r3, HID0_DCFI	mtspr	HID0, r5		/* enable + invalidate */	mtspr	HID0, r3		/* enable */	sync	blr/* * Enable data cache(s) - L1 and optionally L2 * Calls l2cache_enable. LR saved in r5 */_GLOBAL(dcache_enable)	mfspr	r3, HID0	li	r5, HID0_DCFI|HID0_DLOCK	andc	r3, r3, r5	mtspr	HID0, r3		/* no invalidate, unlock */	ori	r3, r3, HID0_DCE	ori	r5, r3, HID0_DCFI	mtspr	HID0, r5		/* enable + invalidate */	mtspr	HID0, r3		/* enable */	sync#ifdef CFG_L2	mflr	r5	bl	l2cache_enable		/* uses r3 and r4 */	sync	mtlr	r5#endif	blr/* * Disable data cache(s) - L1 and optionally L2 * Calls flush_data_cache and l2cache_disable_no_flush. * LR saved in r4 */_GLOBAL(dcache_disable)	mflr	r4			/* save link register */	bl	flush_data_cache	/* uses r3 and r5 */	sync	mfspr	r3, HID0	li	r5, HID0_DCFI|HID0_DLOCK	andc	r3, r3, r5	mtspr	HID0, r3		/* no invalidate, unlock */	li	r5, HID0_DCE|HID0_DCFI	andc	r3, r3, r5		/* no enable, no invalidate */	mtspr	HID0, r3	sync#ifdef CFG_L2	bl	l2cache_disable_no_flush /* uses r3 */#endif	mtlr	r4			/* restore link register */	blr/* * Is data cache enabled? */_GLOBAL(dcache_status)	mfspr	r3, HID0	andi.	r3, r3, HID0_DCE	blr/* * Invalidate L2 cache using L2I and polling L2IP */_GLOBAL(l2cache_invalidate)	sync	oris	r3, r3, L2CR_L2I@h	sync	mtspr	l2cr, r3	syncinvl2:	mfspr	r3, l2cr	andi.	r3, r3, L2CR_L2IP	bne	invl2	/* turn off the global invalidate bit */	mfspr	r3, l2cr	rlwinm	r3, r3, 0, 11, 9	sync	mtspr	l2cr, r3	sync	blr/* * Enable L2 cache * Calls l2cache_invalidate. LR is saved in r4 */_GLOBAL(l2cache_enable)	mflr	r4			/* save link register */	bl	l2cache_invalidate	/* uses r3 */	sync	lis	r3, L2_ENABLE@h	ori	r3, r3, L2_ENABLE@l	mtspr	l2cr, r3	isync	mtlr	r4			/* restore link register */	blr/* * Disable L2 cache * Calls flush_data_cache. LR is saved in r4 */_GLOBAL(l2cache_disable)	mflr	r4			/* save link register */	bl	flush_data_cache	/* uses r3 and r5 */	sync	mtlr	r4			/* restore link register */l2cache_disable_no_flush:		/* provide way to disable L2 w/o flushing */	lis	r3, L2_INIT@h	ori	r3, r3, L2_INIT@l	mtspr	l2cr, r3	isync	blr

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久一区二区三区四区| 成人v精品蜜桃久久一区| 亚洲桃色在线一区| 国产三区在线成人av| 精品乱人伦小说| 欧美v亚洲v综合ⅴ国产v| 日韩一本二本av| 日韩三级高清在线| 精品福利视频一区二区三区| 精品sm捆绑视频| 国产日韩精品视频一区| 亚洲国产精品精华液ab| 国产精品国模大尺度视频| 国产精品美女久久久久久2018| 日本一区二区三区免费乱视频| 国产日韩精品一区| 亚洲精品第一国产综合野| 亚洲自拍欧美精品| 免费人成网站在线观看欧美高清| 全国精品久久少妇| 国产一区二区三区四| 丁香婷婷深情五月亚洲| 91猫先生在线| 欧美一区二区三区免费视频| 精品人在线二区三区| 日本一区二区高清| 亚洲免费观看高清完整| 奇米精品一区二区三区在线观看 | 午夜国产精品一区| 日本sm残虐另类| av网站一区二区三区| 欧美亚日韩国产aⅴ精品中极品| 欧美日韩国产一级二级| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲图片欧美视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产一区二区三区久久久| 色综合久久中文字幕| 777午夜精品免费视频| 亚洲国产成人在线| 日韩国产在线观看一区| 成人免费观看av| 91精品在线一区二区| 欧美激情艳妇裸体舞| 午夜不卡av在线| 成人免费精品视频| 日韩欧美另类在线| 一区二区三区四区不卡在线| 国产精品一区免费在线观看| 欧美精品电影在线播放| 成人欧美一区二区三区黑人麻豆| 亚洲第一狼人社区| 99在线视频精品| 久久亚洲捆绑美女| 奇米综合一区二区三区精品视频| 91视频国产资源| 久久久国产午夜精品| 五月婷婷欧美视频| 91网站最新地址| 久久综合给合久久狠狠狠97色69| 亚洲制服丝袜一区| 日韩网站在线看片你懂的| 综合激情成人伊人| 国产丝袜欧美中文另类| 欧美一级高清大全免费观看| 国产精品美女一区二区| 精品综合久久久久久8888| 在线中文字幕一区二区| 国产精品视频观看| 国产成人免费在线视频| 欧美不卡激情三级在线观看| 丝袜亚洲另类欧美| 欧美日韩久久一区| 亚洲成人一区在线| 欧美久久久一区| 日本免费新一区视频| 91精品国产综合久久福利| 亚洲成人高清在线| 91精品在线一区二区| 日本午夜一本久久久综合| 欧美日高清视频| 视频一区欧美精品| 欧美人妇做爰xxxⅹ性高电影| 一区二区三区高清在线| 在线精品视频免费播放| 亚洲一卡二卡三卡四卡五卡| 在线观看国产日韩| 亚洲va韩国va欧美va| 欧美精品一卡两卡| 久久精品久久精品| 国产片一区二区三区| 91亚洲精品久久久蜜桃| 亚洲国产精品嫩草影院| 欧美一区二区三区在线看| 国产一二三精品| 国产精品国产自产拍高清av| 91成人免费在线视频| 日韩影院免费视频| 精品国产自在久精品国产| 福利一区福利二区| 亚洲国产中文字幕| 日韩亚洲国产中文字幕欧美| 国产精品亚洲一区二区三区妖精 | 88在线观看91蜜桃国自产| 美女尤物国产一区| 国产欧美日韩在线看| 91日韩精品一区| 日本成人在线视频网站| 国产片一区二区三区| 欧美在线一二三| 麻豆国产精品一区二区三区| 2014亚洲片线观看视频免费| 菠萝蜜视频在线观看一区| 玉米视频成人免费看| 日韩一区二区电影网| 成人国产电影网| 亚洲国产精品久久人人爱蜜臀| 日韩欧美亚洲国产另类| 91丨porny丨在线| 国产精品一区二区三区四区| 一区二区三区精品在线观看| 欧美不卡视频一区| 欧美亚洲一区二区在线| 国产白丝精品91爽爽久久| 日产国产高清一区二区三区| 专区另类欧美日韩| ww亚洲ww在线观看国产| 欧美人伦禁忌dvd放荡欲情| 99视频有精品| 国产一区啦啦啦在线观看| 五月天精品一区二区三区| 国产精品久久久久久久久图文区 | 国产91精品入口| 麻豆国产精品一区二区三区| 一区二区三区高清在线| 亚洲精品福利视频网站| 国产亚洲综合性久久久影院| 欧美电影在哪看比较好| 色婷婷综合久久久久中文一区二区 | 色综合色狠狠综合色| 久久av中文字幕片| 蜜桃视频在线一区| 日韩福利视频导航| 亚洲主播在线播放| 亚洲综合免费观看高清完整版在线| 久久久不卡网国产精品一区| 欧美videossexotv100| 91精品国产综合久久精品性色| 欧美艳星brazzers| 在线观看日韩av先锋影音电影院| 97久久精品人人做人人爽50路| 黑人精品欧美一区二区蜜桃| 美腿丝袜一区二区三区| 婷婷六月综合网| 亚洲一区在线观看免费观看电影高清| 国产欧美精品在线观看| 久久网这里都是精品| 久久精品亚洲精品国产欧美kt∨| 日韩久久久久久| www欧美成人18+| 国产日韩影视精品| 中文字幕中文字幕中文字幕亚洲无线| 中文在线一区二区| 国产精品视频yy9299一区| 亚洲欧洲色图综合| 亚洲乱码国产乱码精品精的特点| 亚洲男同1069视频| 亚洲bt欧美bt精品777| 日日摸夜夜添夜夜添亚洲女人| 日韩在线观看一区二区| 麻豆成人久久精品二区三区红 | 高清在线成人网| 91在线国产观看| 欧美日韩综合在线免费观看| 日韩一区二区三区视频| 国产欧美一二三区| 亚洲免费在线看| 麻豆成人久久精品二区三区小说| 日本va欧美va欧美va精品| 久久66热re国产| 99久久精品久久久久久清纯| 欧美日韩国产高清一区二区| 欧美sm极限捆绑bd| 亚洲乱码中文字幕| 精品一区二区三区免费| 99久久婷婷国产综合精品电影 | 久久国产综合精品| k8久久久一区二区三区| 欧美日韩成人综合在线一区二区| 欧美videos大乳护士334| 国产精品传媒视频| 麻豆视频观看网址久久| 99国产精品一区| 欧美xxxx在线观看| 亚洲影院免费观看| 国产mv日韩mv欧美| 日韩精品一区国产麻豆| 亚洲欧美日韩国产一区二区三区| 狂野欧美性猛交blacked| 日本精品视频一区二区|