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

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

?? bsestart.s

?? ucos移植到mpc860的源碼
?? S
字號:
#
# bsestart.s
#
# Barnett Systems Engineering
# MPC823 Poweron Reset Initialization Assembly Source File
#
# Author: Harry E. Barnett 9/27/99
# harryb@hbbse.com http://www.hbbse.com
#
# Version V1.00
#
#########################################################################
	.list
	.file   "bsestart.s"
	.title	"BSE MPC823 Poweron Reset Init Assembly Source File"

	.text
	.align	2

# PPC register equivalents
	rTOC			.equ		2
	XRTOC			.equ		20

# Memory Mapped Register Offsets

	CS_BR0			.equ		0x100
	CS_BR1			.equ		0x108
	CS_BR2			.equ		0x110
	CS_BR4			.equ		0x120
	CS_OR0			.equ		0x104
	CS_OR1			.equ		0x10C
	CS_OR2			.equ		0x114
	CS_OR4			.equ		0x124
	MAMR			.equ		0x170
	MAR			.equ		0x164
	MBMR			.equ		0x174
	MCR			.equ		0x168
	MDR			.equ		0x17C
	MPTPR			.equ		0x17A
	PISCR			.equ		0x240
	PISCRK			.equ		0x340
	PLPRCR			.equ		0x284
	PLPRCRK			.equ		0x384	
	RTC			.equ		0x224
	RTCAL			.equ		0x22C
	RTCALK			.equ		0x32C
	RTCK			.equ		0x324
	RTCSC			.equ		0x220
	RTCSCK			.equ		0x320
	RTSEC			.equ		0x228
	RTSECK			.equ		0x328
	SCCR			.equ		0x280
	SCCRK			.equ		0x380		
	SIUMCR			.equ		0x000
	SYPCR			.equ		0x004
	TBSCR			.equ		0x200
	TBSCRK			.equ		0x300

# Initializations

	# SRN
	# CS0,CS1 -> FLASH; CS2 -> SDRAM

	#CS_BR0_INIT		.equ		0x40000801
	#CS_BR1_INIT		.equ		0x40200801
	#CS_BR2_INIT		.equ		0x00000081
	#CS_OR0_INIT		.equ		0xFFE00160
	#CS_OR1_INIT		.equ		0xFFE00160
	#CS_OR2_INIT		.equ		0xFF000A00

	CS_BR0_INIT		.equ		0x00000801
	CS_BR1_INIT		.equ		0x00200801
	CS_BR2_INIT		.equ		0xff000081
	CS_OR0_INIT		.equ		0xFFE00160
	CS_OR1_INIT		.equ		0xFFE00160
	CS_OR2_INIT		.equ		0xFF000A00


	DC_DISABLE		.equ		0x04000000
	DC_ENABLE		.equ		0x02000000
	DEC_INIT_MAX		.equ		0x7FFFFFFF

	# srn
	# Change for New Vec location
	
	MSR_INIT		.equ		0x00009042
	MSR_INIT_NO_EE		.equ		0x00001042
	
	
	DER_INIT		.equ		0xFDC3400F

	ICTRL_INIT		.equ		0x00000007
	IC_DISABLE		.equ		0x04000000
	IC_ENABLE		.equ		0x02000000

	IMMR_INIT		.equ		0x80000000
	TEMP_STACK		.equ		0x80002ff0
	
	KEY_UNLOCK		.equ		0x55CCAA33

	# srn 04.06.27
	# SCCR.RTDIV=0, RT-clk divided by 4
	# SCCR.RTSEL=0, select OSCM
	SCCR_INIT		.equ		0x01000000

	# SRN
	# INIT VALUE OF HHPPC'SDRAM (SEE mpc.init)
	
	MAMR_INIT		.equ		0xD0802114
	MAR_UPMA_INIT		.equ		0x00000088
	MCR_UPMA_SETUP_INIT 	.equ		0x80004105
	MCR_UPMA_REFRESH_INIT 	.equ		0x80004830
	MCR_UPMA_LAST_INIT	.equ		0x80004106
	MCR_UPMA_WRITE_INIT 	.equ		0x00004000
	MPTPR_INIT		.equ		0x0400
	PISCR_INIT		.equ		0x0082
	
	# srn 04.06.27
	# GCLK = (9 + 1) * 5MHz = 50MHz
	PLPRCR_INIT		.equ		0x0090C000

	RTCAL_INIT		.equ		0xFFFFFFFF
	RTCSC_INIT		.equ		0x00D3
	RTC_INIT		.equ		0x00000000
	RTSEC_INIT		.equ		0xFFFFFFFF

	SIUMCR_INIT		.equ		0x00012440
	SYPCR_INIT		.equ		0xFFFFFF88
	TBSCR_INIT		.equ		0x00C3

# END OF DEFINE

# GLOBALS  

	.global	poreset		# start of system code 
	.extern	DECIntr
	.extern	_start
	.entry 	poreset
	.text
	.align 2

# SRN
# 07.23
#
# ADD FOR BURN FLASH

	.org (0x00000000)
	.string "2004.07.23"



# System Reset entry point: Offset 0x100

	.org (0x00000100)
poreset:
	b bsestart

# Decrementer exception entry point 0x900

	.org (0x00000900)
dec_exc:
	b DECIntr

# System Call exception entry point 0xC00

	.org (0x00000C00)
sc_exc:
	b OSCtxSw

	.org (0x00000D00)
trace_exc:
	b .
	.org (0x00000E00)
	b .
	.org (0x00001000)
	b .
	.org (0x00001100)
	rfi
	.org (0x00001200)
	rfi
	.org (0x00001300)
	rfi
	.org (0x00001400)
	rfi
	.org (0x00001C00)
	b .
	.org (0x00001D00)
	b .
	.org (0x00001E00)
	b .
	.org (0x00001F00)
	b .



##################################
#
#    START OF INITIALIZATION  
#
##################################

# Spotty chip initialization for the moment

	# .org 0x40003000
	# ASSIGNED BY LINKER COMMAND FILE

	.text
	
bsestart:

	################################
	#
	# Init Temp Stack first
	#
	################################
	
	lis		r1, TEMP_STACK@h
	ori		r1, r1, TEMP_STACK@l

	################################



	# Setup Unlock Key register r5: r5 is reserved from here to end of module  
	lis		r5, KEY_UNLOCK@h
	ori		r5, r5, KEY_UNLOCK@l 

SPR_Init:
	# Initialize MSR and SRR1   
	lis		r12, MSR_INIT_NO_EE@h
	ori		r12, r12, MSR_INIT_NO_EE@l
	mtmsr 	r12
	mtspr	SRR1, r12

	# Initialize Instruction Support Control Register   
	lis		r12, ICTRL_INIT@h
	ori		r12, r12, ICTRL_INIT@l
	mtspr	ICTRL, r12

	# Initialize Debug Enable Register 
	lis		r12, DER_INIT@h
	ori		r12, r12, DER_INIT@l
	mtspr	DER, r12

	# Initialize Decrementer Register 
	lis		r12, DEC_INIT_MAX@h
	ori		r12, r12, DEC_INIT_MAX@l
	mtspr	DEC, r12

	# Initialize Interrupt Cause Register 
	# clear all interrupt causes by reading the ICR  
	mfspr	r12, ICR

IMMR_Init:
	# Initialize the IMMR register 
	# r4 is reserved from here to end of module  
	lis		r4, IMMR_INIT@h
	mtspr	IMMR, r4		# initialize the IMMR register 
	mfspr	r4, IMMR		# read it back 
	rlwinm  r4, r4, 0, 0, 15	# only high 16 bits count 


ClockInit:
	# Initialize System Clock Control Register  
	stw		r5, SCCRK(r4)  # Unlock  
	lis		r12, SCCR_INIT@h
	ori		r12, r12, SCCR_INIT@l
	stw		r12, SCCR(r4)

	# Initialize the PLL, Low Power, and Reset Control Register  
	stw		r5, PLPRCRK(r4)  # Unlock  
	lis		r12, PLPRCR_INIT@h
	ori		r12, r12, PLPRCR_INIT@l
	stw		r12, PLPRCR(r4)

SIU_Init:
	# Initialize SIU Module Configuration Register  
	lis		r12, SIUMCR_INIT@h
	ori		r12, r12, SIUMCR_INIT@l
	stw		r12, SIUMCR(r4)

	# Initialize the System Protection Control Register  
	lis		r12, SYPCR_INIT@h
	ori		r12, r12, SYPCR_INIT@l
	stw		r12, SYPCR(r4)

SI_TimersInit:
	# Initialize the Time Base Status and Control register 
	stw		r5, TBSCRK(r4) # Unlock  
	li		r12, TBSCR_INIT
	sth		r12, TBSCR(r4)

	# Initialize Real Time Clock Register  
	stw		r5, RTCK(r4)  # Unlock  
	lis		r12, RTC_INIT@h
	ori		r12, r12, RTC_INIT@l
	stw		r12, RTC(r4)

	# Initialize Real Time Clock Status and Control Register  
	stw		r5, RTCSCK(r4)  # Unlock  
	li		r12, RTCSC_INIT
	sth		r12, RTCSC(r4)

	# Initialize Real Time Clock Alarm Register  
	stw		r5, RTCALK(r4)  # Unlock  
	lis		r12, RTCAL_INIT@h
	ori		r12, r12, RTCAL_INIT@l
	stw		r12, RTCAL(r4)

	# Initialize Real Time Clock Alarm Seconds Register  
	stw		r5, RTSECK(r4)  # Unlock  
	lis		r12, RTSEC_INIT@h
	ori		r12, r12, RTSEC_INIT@l
	stw		r12, RTSEC(r4)

	# Check...
	lwz		r12,RTSEC(r4)

	# Initialize Periodic Interrupt Status and Control Register 
	stw		r5, PISCRK(r4)  # Unlock  
	li		r12, PISCR_INIT
	sth		r12, PISCR(r4)


MEMC_Init:


	# program BR0
	lis		r12, CS_BR0_INIT@h
	ori		r12, r12, CS_BR0_INIT@l 
	stw		r12, CS_BR0(r4)
	
	# program OR0 
	lis		r9, CS_OR0_INIT@h
	ori		r9, r9, CS_OR0_INIT@l 
	stw		r9, CS_OR0(r4)


	# program OR1 
	lis		r9, CS_OR1_INIT@h
	ori		r9, r9, CS_OR1_INIT@l 
	stw		r9, CS_OR1(r4)

	# program BR1 
	lis		r12, CS_BR1_INIT@h
	ori		r12, r12, CS_BR1_INIT@l 
	stw		r12, CS_BR1(r4)


	# Initialize UPMA (SDRAM) 

UPMASetup:

	# Set up for 50 MHz clock commands
	
	lis		r12, UPMATable_50End@ha
	ori		r12, r12, UPMATable_50End@l
	la		r9, 0(r12)

	lis		r12, UPMATable_50@ha
	ori		r12, r12, UPMATable_50@l
	la		r12, 0(r12)

	sub		r9, r9, r12		# compute table size 
	srawi		r9, r9, 2		# in words 
	mtctr		r9			# set up counter  
	subi		r12, r12, 4		# set up pointer to table  

	# program MCR with initial write command 
	lis		r9, MCR_UPMA_WRITE_INIT@h
	ori		r9, r9, MCR_UPMA_WRITE_INIT@l

UPMAInit:	
	lwzu	r8, 4(r12)			# get data from table 
	stw		r8, MDR(r4)		# store data to MD register 
	stw		r9, MCR(r4)		# issue write command to MCR register 
	addi	r9, r9, 1			# update UPMB address in write command 
	bdnz	UPMAInit

	# Make SDRAM Ready

	# Initialize Memory Periodic Timer  Prescalar Register, MPTPR  
	li		r12, MPTPR_INIT
	sth		r12, MPTPR(r4)

	# Initialize Machine A Mode Register, MAMR, 4 beats
	lis		r12, MAMR_INIT@h
	ori		r12, r12, MAMR_INIT@l
	stw		r12, MAMR(r4)

	# Map CS2 to SDRAM
	
	
	# program OR2 
	lis		r12, CS_OR2_INIT@h
	ori		r12, r12, CS_OR2_INIT@l 
	stw		r12, CS_OR2(r4)


	# program BR2 
	lis		r12, CS_BR2_INIT@h
	ori		r12, r12, CS_BR2_INIT@l 
	stw		r12, CS_BR2(r4)


	# program MAR 
	lis		r12, MAR_UPMA_INIT@h
	ori		r12, r12, MAR_UPMA_INIT@l 
	stw		r12, MAR(r4)

	# program MCR with setup
	lis		r12, MCR_UPMA_SETUP_INIT@h
	ori		r12, r12, MCR_UPMA_SETUP_INIT@l 
	# run setup
	stw		r12, MCR(r4)

	# program MCR with execute refresh
	lis		r12, MCR_UPMA_REFRESH_INIT@h
	ori		r12, r12, MCR_UPMA_REFRESH_INIT@l 
	# run refresh
	stw		r12, MCR(r4)

	# program MCR last
	lis		r12, MCR_UPMA_LAST_INIT@h
	ori		r12, r12, MCR_UPMA_LAST_INIT@l 
	# run last
	stw		r12, MCR(r4)

	#SDRAM is now ready to use

UPMBProgramEnd:
	
	# End

CacheDisable:
	# Disable the instruction/data cache 
	lis		r12, IC_DISABLE@h		# load disable cmd 
	ori		r12, r12,IC_DISABLE@l
	isync
	mtspr	IC_CST, r12				# disable I cache 

	lis		r12, DC_DISABLE@h		# load disable cmd 
	ori		r12, r12, DC_DISABLE@l
	sync 
	mtspr	DC_CST, r12				# disable D cache 


# initialize the stack pointer, just in case
init_stack:
	lis		r1,__SP_INIT@h
	ori		r1,r1,__SP_INIT@l
	addi		r1,r1,-0x20



	# END OF INITIALIZATION  
	# GO TO bsecrt0.s


	######### Test ############################

	#bl		SetLed
		
	######### End  ############################




	b	 	_start

# Should never get here, but in case we do...  
poststart:
	b		poststart
	nop
	nop
	nop


# UPMA setup for HHPPC860 16 MB SDRAM
# for clocks 32-50 MHz

UPMATable_50:
# single read.  (offset 0x0 in UPM RAM)  
	.long	0x1f07fc04, 0xeeaefc04, 0x11adfc04, 0xefbbbc00
	.long	0x1ff77c47, 0x1ff77c35, 0xefeabc34, 0x1fb57c35
# burst read. (offset 0x8 in UPM RAM) 
	.long	0x1f07fc04, 0xeeaefc04, 0x10adfc04, 0xf0affc00
	.long	0xf0affc00, 0xf1affc00, 0xefbbbc00, 0x1ff77c47
	.long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
	.long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
# single write. (offset 0x18 in UPM RAM) 
	.long	0x1f27fc04, 0xeeaebc00, 0x01b93c04, 0x1ff77c47
	.long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
# burst write. (offset 0x20 in UPM RAM) 
	.long	0x1f07fc04, 0xeeaebc00, 0x10ad7c00, 0xf0affc00
	.long	0xf0affc00, 0xe1bbbc04, 0x1ff77c47, 0xffffffff
	.long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
	.long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
# refresh. (offset 0x30 in UPM RAM) 
	.long	0x1ff5fc84, 0xfffffc04, 0xfffffc04, 0xfffffc04
	.long	0xfffffc84, 0xfffffc07, 0xffffffff, 0xffffffff
	.long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
# exception. (offset 0x3c in UPM RAM) 
	.long	0x7ffffc07, 0xffffffff, 0xffffffff, 0xffffffff
#end of MPC823FADS UPMB programming
UPMATable_50End:

	.end 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品亚洲一区二区三区妖精| 亚洲精选免费视频| 91精品国产综合久久久久久漫画 | 亚洲激情五月婷婷| 亚洲国产精品久久久久婷婷884| 偷偷要91色婷婷| 精品影视av免费| 91蝌蚪porny成人天涯| 欧美日韩国产成人在线91| 日韩久久久精品| 亚洲一区精品在线| 成人精品一区二区三区四区 | 国产一区在线不卡| 色综合婷婷久久| 精品国产乱码久久| 亚洲成人免费av| 欧美日韩国产在线观看| 精品国产3级a| 亚洲成av人综合在线观看| 国产精品一级在线| 欧美一区二区三区四区在线观看 | 大美女一区二区三区| 91精品国产综合久久福利| 亚洲美女精品一区| 成人黄色片在线观看| 精品国产一区二区三区不卡| 日韩精品三区四区| 欧美揉bbbbb揉bbbbb| 一区二区三区在线影院| 在线观看亚洲精品视频| 亚洲精品视频一区二区| 97精品电影院| 亚洲码国产岛国毛片在线| 99久久久精品| 亚洲午夜免费电影| 欧美私模裸体表演在线观看| 亚洲影院免费观看| 日韩欧美亚洲国产另类| 九九精品一区二区| 国产午夜精品一区二区三区嫩草| 久久99国产精品免费| 久久精品视频网| 99精品视频在线免费观看| 成人欧美一区二区三区视频网页| 99精品视频中文字幕| 亚洲一区在线看| 久久久综合视频| 色综合久久天天| 成人一级片在线观看| 一区二区三区在线播放| 欧美一区二区三区系列电影| 国产成人亚洲精品青草天美| ...中文天堂在线一区| 8x福利精品第一导航| 国产精品自拍av| 亚洲成av人片在线观看无码| 精品国产乱码久久久久久久| 91免费视频观看| 国产成人自拍在线| 奇米一区二区三区av| 国产日产欧美一区二区三区 | 日本大胆欧美人术艺术动态| 久久久一区二区三区| 欧美日韩国产一级| 在线观看三级视频欧美| 国产成人亚洲综合a∨猫咪| 亚洲高清视频的网址| 自拍偷在线精品自拍偷无码专区 | 高清不卡一区二区| 黑人巨大精品欧美黑白配亚洲 | 欧美精品三级在线观看| 91农村精品一区二区在线| 国产a区久久久| 福利一区二区在线观看| 久久se精品一区精品二区| 日韩中文字幕不卡| 亚洲v日本v欧美v久久精品| 亚洲精品中文在线| 蜜臀av一区二区在线观看 | 6080yy午夜一二三区久久| 色94色欧美sute亚洲线路二| 色婷婷国产精品| 在线精品视频小说1| 欧美三区在线观看| 日韩一区二区电影| 亚洲精品在线三区| 中文在线资源观看网站视频免费不卡| 亚洲精品在线三区| 国产精品传媒入口麻豆| 亚洲免费观看高清完整版在线| 亚洲综合区在线| 日本最新不卡在线| 成人黄色综合网站| 欧美在线不卡视频| 精品国产免费人成电影在线观看四季 | 国产成人综合网站| 欧美在线观看视频一区二区 | 91国产福利在线| 日韩亚洲国产中文字幕欧美| 国产欧美精品一区二区色综合| 亚洲桃色在线一区| 老司机精品视频线观看86 | 国产精品久久久久婷婷| 亚洲一区二区三区美女| 成人一级黄色片| 欧美成人精品3d动漫h| 亚洲乱码国产乱码精品精可以看| 玖玖九九国产精品| 欧美精选午夜久久久乱码6080| 精品美女在线播放| 日韩国产在线观看| 欧美日本在线观看| 一区二区三区中文字幕电影| 国产不卡高清在线观看视频| 日韩三级中文字幕| 五月激情综合网| 欧美日韩专区在线| 午夜精品国产更新| 91福利在线免费观看| 一区二区三区在线视频观看| 成人a区在线观看| 国产精品美日韩| 成人精品在线视频观看| 中文字幕不卡在线观看| 高清国产午夜精品久久久久久| 久久影视一区二区| 国产91富婆露脸刺激对白| 国产精品久久久久婷婷| av一本久道久久综合久久鬼色| 精品国免费一区二区三区| 久久五月婷婷丁香社区| 亚洲欧美一区二区三区孕妇| 99久久婷婷国产精品综合| 亚洲欧洲一区二区在线播放| 99国产精品久久久久久久久久| 成人免费在线播放视频| 在线观看av一区二区| 国产精品国产自产拍在线| 99r国产精品| 尤物视频一区二区| 日韩一级免费观看| 国产一区二区美女诱惑| 亚洲一区二区影院| 久久先锋影音av鲁色资源网| 91麻豆swag| 激情综合色综合久久| 一区二区三区四区蜜桃 | 亚洲自拍偷拍九九九| 欧美日韩国产高清一区二区三区 | 一区二区在线免费| 欧美大白屁股肥臀xxxxxx| 国产在线播精品第三| 亚洲r级在线视频| 亚洲欧洲无码一区二区三区| 91精品国产91久久综合桃花| 成人激情av网| 韩国成人在线视频| 蜜臀av性久久久久蜜臀aⅴ| 国产精品二区一区二区aⅴ污介绍| 欧美二区三区的天堂| 欧美日韩综合色| 91国产视频在线观看| av中文字幕在线不卡| 国产在线精品一区在线观看麻豆| 亚洲综合免费观看高清完整版 | 欧美另类z0zxhd电影| av中文字幕亚洲| 成人综合婷婷国产精品久久蜜臀| 日韩国产高清在线| 麻豆精品一区二区三区| 香港成人在线视频| 日韩在线播放一区二区| 亚洲不卡一区二区三区| 日韩成人午夜精品| 九一九一国产精品| 国产乱码精品1区2区3区| 国产一区二区看久久| 久久国产剧场电影| 成人av网站在线| 色综合天天综合网国产成人综合天| 91在线免费看| 在线观看亚洲一区| 日韩欧美国产一区在线观看| 日韩三级电影网址| 亚洲人成网站影音先锋播放| 亚洲三级小视频| 久久99国产精品久久99| 国产电影一区二区三区| 99re热视频这里只精品| 日韩一区二区三免费高清| 国产欧美一区在线| 日本怡春院一区二区| 丁香婷婷深情五月亚洲| 在线看不卡av| 国产精品美女视频| 综合欧美亚洲日本| 国产九九视频一区二区三区| 91年精品国产| 中文字幕在线一区免费| 日av在线不卡|