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

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

?? startup.s

?? S3C2440的Steppingstone源代碼
?? S
字號:
   
    OPT 2

    INCLUDE kxarm.h
    INCLUDE option.inc
    INCLUDE s2440addr.inc
    INCLUDE memcfg.inc

    OPT 1
    OPT 128
    
; Pre-defined constants.
;
USERMODE    EQU 	0x10
FIQMODE     EQU 	0x11
IRQMODE     EQU 	0x12
SVCMODE     EQU 	0x13
ABORTMODE   EQU 	0x17
UNDEFMODE   EQU 	0x1b
MODEMASK    EQU 	0x1f
NOINT       EQU 	0xc0

; Stack locations.
;
SVCStack	EQU	(_STACK_BASEADDRESS-0x2800) 	; 0x33ff5800 ~
UserStack	EQU	(_STACK_BASEADDRESS-0x3800)	  	; 0x33ff4800 ~ 
UndefStack	EQU	(_STACK_BASEADDRESS-0x2400) 	; 0x33ff5c00 ~
AbortStack	EQU	(_STACK_BASEADDRESS-0x2000) 	; 0x33ff6000 ~
IRQStack	EQU	(_STACK_BASEADDRESS-0x1000)	  	; 0x33ff7000 ~
FIQStack	EQU	(_STACK_BASEADDRESS-0x0)	    ; 0x33ff8000 ~ 

;------------------------------------------------------------------------------
; Sleep state constants 
; 
; Location of sleep data 

; BUGBUG - this needs to be declared as a local var.

SLEEPDATA_BASE_PHYSICAL         EQU     0x30028000
WORD_SIZE						EQU		0x4
; Sleep State memory locations

SleepState_Data_Start           EQU     (0)
SleepState_WakeAddr             EQU     (SleepState_Data_Start  + 0)
SleepState_MMUCTL               EQU     (SleepState_WakeAddr    + WORD_SIZE)
SleepState_MMUTTB               EQU     (SleepState_MMUCTL      + WORD_SIZE)
SleepState_MMUDOMAIN            EQU     (SleepState_MMUTTB      + WORD_SIZE)
SleepState_SVC_SP               EQU     (SleepState_MMUDOMAIN   + WORD_SIZE)
SleepState_SVC_SPSR             EQU     (SleepState_SVC_SP      + WORD_SIZE)
SleepState_FIQ_SPSR             EQU     (SleepState_SVC_SPSR    + WORD_SIZE)
SleepState_FIQ_R8               EQU     (SleepState_FIQ_SPSR    + WORD_SIZE)
SleepState_FIQ_R9               EQU     (SleepState_FIQ_R8      + WORD_SIZE)
SleepState_FIQ_R10              EQU     (SleepState_FIQ_R9      + WORD_SIZE)
SleepState_FIQ_R11              EQU     (SleepState_FIQ_R10     + WORD_SIZE)
SleepState_FIQ_R12              EQU     (SleepState_FIQ_R11     + WORD_SIZE)
SleepState_FIQ_SP               EQU     (SleepState_FIQ_R12     + WORD_SIZE)
SleepState_FIQ_LR               EQU     (SleepState_FIQ_SP      + WORD_SIZE)
SleepState_ABT_SPSR             EQU     (SleepState_FIQ_LR      + WORD_SIZE)
SleepState_ABT_SP               EQU     (SleepState_ABT_SPSR    + WORD_SIZE)
SleepState_ABT_LR               EQU     (SleepState_ABT_SP      + WORD_SIZE)
SleepState_IRQ_SPSR             EQU     (SleepState_ABT_LR      + WORD_SIZE)
SleepState_IRQ_SP               EQU     (SleepState_IRQ_SPSR    + WORD_SIZE)
SleepState_IRQ_LR               EQU     (SleepState_IRQ_SP      + WORD_SIZE)
SleepState_UND_SPSR             EQU     (SleepState_IRQ_LR      + WORD_SIZE)
SleepState_UND_SP               EQU     (SleepState_UND_SPSR    + WORD_SIZE)
SleepState_UND_LR               EQU     (SleepState_UND_SP      + WORD_SIZE)
SleepState_SYS_SP               EQU     (SleepState_UND_LR      + WORD_SIZE)
SleepState_SYS_LR               EQU     (SleepState_SYS_SP      + WORD_SIZE)
SleepState_Data_End             EQU     (SleepState_SYS_LR      + WORD_SIZE)

SLEEPDATA_SIZE                  EQU     (SleepState_Data_End - SleepState_Data_Start) / 4


	IMPORT main    ; C entrypoint for Steppingstone loader.

	EXPORT MMU_EnableICache
 	EXPORT MMU_SetAsyncBusMode
  
    STARTUPTEXT
    LEAF_ENTRY StartUp
    
    b	ResetHandler  
    b	.
    b	.
    b	.		
    b	.		
    b	.		
    b	.			
    b	.
    		
PowerOffCPU
	str		r1, [r0]		; Enable SDRAM self-refresh
	str		r3, [r2]		; MISCCR Setting
	str     r5, [r4]		; Power Off !!
	b       .

    ; Resume handler code.
    ;
WAKEUP_POWER_OFF
    ; Release SCLKn after wake-up from the POWER_OFF mode.
    ldr		r1, =MISCCR
    ldr		r0, [r1]
    bic		r0, r0, #(7<<17) ; SCLK0:0->SCLK, SCLK1:0->SCLK, SCKE:L->H.
    str		r0, [r1]

    ; Set up the memory control registers.
    ;
    add     r0, pc, #SMRDATA - (. + 8)
    ldr		r1, =BWSCON	     ; BWSCON Address.
    add		r2, r0, #52	     ; End address of SMRDATA.
3       
    ldr		r3, [r0], #4    
    str		r3, [r1], #4    
    cmp		r2, r0		
    bne		%B3

	mov     r0, #0x2000
4
	subs    r0, r0, #1
	bne     %B4

;------------------------------------------------------------------------------
;   Recover Process : Starting Point
;
;   1. Checksum Calculation saved Data
	ldr     r5, =SLEEPDATA_BASE_PHYSICAL    ; pointer to physical address of reserved Sleep mode info data structure 
	mov     r3, r5                          ; pointer for checksum calculation
	ldr     r2, =0x0
	ldr     r0, =(SLEEPDATA_SIZE-1)             ; get size of data structure to do checksum on
50	
	ldr     r1, [r3], #4                    ; pointer to SLEEPDATA
	and     r1, r1, #0x1
	mov     r1, r1, ROR #31
	add     r2, r2, r1
	subs    r0, r0, #1                      ; dec the count
	bne     %b50                            ; loop till done    

	ldr     r0,=GSTATUS3
	ldr     r3, [r0]                        ; get the Sleep data checksum from the Power Manager Scratch pad register
	cmp     r2, r3                          ; compare to what we saved before going to sleep
	bne     BringUpWinCE                    ; bad news - do a cold boot
   
;   2. MMU Enable
	ldr     r10, [r5, #SleepState_MMUDOMAIN] ; load the MMU domain access info
	ldr     r9,  [r5, #SleepState_MMUTTB]    ; load the MMU TTB info 
	ldr     r8,  [r5, #SleepState_MMUCTL]    ; load the MMU control info 
	ldr     r7,  [r5, #SleepState_WakeAddr ] ; load the LR address
	nop         
	nop
	nop
	nop
	nop

; if software reset
	mov     r1, #0
	teq     r1, r7
	bne     %f60
	b      	BringUpWinCE

; wakeup routine
60	mcr     p15, 0, r10, c3, c0, 0          ; setup access to domain 0
	mcr     p15, 0, r9,  c2, c0, 0          ; PT address
	mcr     p15, 0, r0,  c8, c7, 0          ; flush I+D TLBs
	mcr     p15, 0, r8,  c1, c0, 0          ; restore MMU control

;   3. Jump to Kernel Image's fw.s (Awake_address)
	mov     pc, r7                          ;  jump to new VA (back up Power management stack)
	nop

BringUpWinCE
	; bad news, data lose, bring up wince again
	mov 	r0, #2
	ldr		r1, =GSTATUS2
	str		r0, [r1]
	
  LTORG   
	
;-----------------------------------
; Steppingstone loader entry point.
;-----------------------------------
ResetHandler
    ldr		r0, =WTCON       ; disable the watchdog timer.
    ldr		r1, =0x0         
    str		r1, [r0]

    ldr		r0, =INTMSK      ; mask all first-level interrupts.
    ldr		r1, =0xffffffff
    str		r1, [r0]

    ldr		r0, =INTSUBMSK   ; mask all second-level interrupts.
    ldr		r1, =0x7fff
    str		r1, [r0]

    ; CLKDIVN
    ldr 	r0,=CLKDIVN
    ldr 	r1,=0x7     ; 0x0 = 1:1:1  ,  0x1 = 1:1:2	, 0x2 = 1:2:2  ,  0x3 = 1:2:4,  0x4 = 1:4:4,  0x5 = 1:4:8, 0x6 = 1:3:3, 0x7 = 1:3:6
    str 	r1,[r0]

	; BATT_FLT
    ldr		r1, =MISCCR
    ldr		r0, [r1]
    bic		r0, r0, #(7<<20)
    orr		r0, r0, #(4<<20)
    str		r0, [r1]

    ; MMU_SetAsyncBusMode FCLK:HCLK= 1:2
    ands 	r1, r1, #0x2
    beq 	%F5
    bl		MMU_SetAsyncBusMode
5

; TODO: to reduce PLL lock time, adjust the LOCKTIME register. 
    ldr		r0, =LOCKTIME
    ldr		r1, =0xffffff
    str		r1, [r0]
  
    ; Configure the clock PLL.
    ;      
  	[ PLL_ON_START
	
	ldr		r0, =UPLLCON          
    ldr		r1, =((0x3c<<12)+(0x4<<4)+0x2)  ; Fin=16.9344MHz, Fout=48MHz.
    str		r1, [r0]

	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop

	ldr		r0, =MPLLCON          
    ldr		r1, =((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV)  ; Fin=16.9344MHz, Fout=400MHz.
    str		r1, [r0]

    mov     r0, #0x2000
10   
    subs    r0, r0, #1
    bne     %B10
	]

    ; Are we waking up from a suspended state?
    ;
    ldr		r1, =GSTATUS2
    ldr		r0, [r1]
    tst		r0, #0x2
    ; Yes?  Then go to the resume handler code...
    bne		WAKEUP_POWER_OFF

    ; Set up the memory control registers.
    ;
    add     r0, pc, #SMRDATA - (. + 8)
    ldr		r1, =BWSCON	     ; BWSCON Address.
    add		r2, r0, #52	     ; End address of SMRDATA.
15       
    ldr		r3, [r0], #4    
    str		r3, [r1], #4    
    cmp		r2, r0		
    bne		%B15
        
    ; Turn on all LEDs.
    ;
    ldr		r0, =GPFCON
    ldr		r1, =0x55aa
    str		r1, [r0]
    ldr		r0, =GPFUP
    ldr		r1, =0xff
    str		r1, [r0]
    ldr		r0, =GPFDAT
    ldr		r1, =0x0
    str		r1, [r0]
  
    ; If this is a cold boot or a warm reset, clear RAM because the RAM filesystem may be
    ; bad.  If this is a software reboot (triggered by the watchdog timer), don't clear RAM.
    ;
    ldr		r1, =GSTATUS2   ; Determine why we're in the startup code.
    ldr		r10, [r1]       ; 
    str  	r10, [r1]       ; Clear GPSTATUS2.
    tst		r10, #0x4       ; Watchdog (software) reboot?  Skip code that clears RAM.
    bne		%F30
     
    ; Clear RAM.
    ;
    mov 	r1,#0
    mov 	r2,#0
    mov 	r3,#0
    mov 	r4,#0
    mov 	r5,#0
    mov 	r6,#0
    mov 	r7,#0
    mov 	r8,#0
	
    ldr		r0,=0x30000000   ; Start address (physical 0x3000.0000).
    ldr		r9,=0x04000000   ; 64MB of RAM.
20	
    stmia	r0!, {r1-r8}
    subs	r9, r9, #32 
    bne		%B20

    ; Initialize stacks.
    ;
30
    mrs		r0, cpsr
    bic		r0, r0, #MODEMASK|NOINT
    orr		r1, r0, #SVCMODE
    msr		cpsr_cxsf, r1		  ; SVCMode.
    ldr		sp, =SVCStack
	
    ; Jump to main C routine.
    ;
    bl		main

	LTORG

SMRDATA DATA
    ; Memory configuration should be optimized for best performance .
    ; The following parameter is not optimized.                     
    ; Memory access cycle parameter strategy
    ; 1) The memory settings is  safe parameters even at HCLK=75Mhz.
    ; 2) SDRAM refresh period is for HCLK=75Mhz. 
    ;
    DCD (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
    DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))   ;GCS0
    DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))   ;GCS1 
    DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))   ;GCS2
    DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))   ;GCS3
    DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))   ;GCS4
    DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))   ;GCS5
    DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))                                                        ;GCS6
    DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))                                                        ;GCS7
    DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)    
    
    DCD (0x32|0x80)     ; SCLK power saving mode, BANKSIZE 128M/128M, 4-burst.

    DCD 0x20            ; MRSR6 CL=3clk.
    DCD 0x20            ; MRSR7.


;------------------------------------
; MMU Cache/TLB/etc on/off functions
;------------------------------------
R1_I	EQU	(1<<12)
R1_C	EQU	(1<<2)
R1_A	EQU	(1<<1)
R1_M  	EQU	(1)
R1_iA	EQU	(1<<31)
R1_nF 	EQU	(1<<30)

; void MMU_EnableICache(void);
;
    LEAF_ENTRY MMU_EnableICache	
    
    mrc 	p15, 0, r0, c1, c0, 0
    orr 	r0, r0, #R1_I
    mcr 	p15, 0, r0, c1, c0, 0
    mov 	pc, lr

; void MMU_SetAsyncBusMode(void);
; FCLK:HCLK= 1:2
;
    LEAF_ENTRY MMU_SetAsyncBusMode
    mrc 	p15, 0, r0, c1, c0, 0
    orr 	r0, r0, #R1_nF:OR:R1_iA
    mcr 	p15, 0, r0, c1, c0, 0
    mov 	pc, lr


; NAND code...
;
A410_BASE_ADDR	EQU	0x2000000

;;;	MACRO
;;;	LDR4STR1 $src,$tmp1,$tmp2	
;;;	ldrb	$tmp1,[$src]
;;;	ldrb	$tmp2,[$src]
;;;	orr		$tmp1,$tmp1,$tmp2,LSL #8
;;;	ldrb	$tmp2,[$src]
;;;	orr		$tmp1,$tmp1,$tmp2,LSL #16
;;;	ldrb	$tmp2,[$src]
;;;	orr		$tmp1,$tmp1,$tmp2,LSL #24
;;;	MEND

	EXPORT	__RdPage512
__RdPage512
	;input:a1(r0)=pPage
	stmfd	sp!,{r1-r11}

	ldr	r1,=0x4e000010  ;NFDATA
	mov	r2,#0x200
10	
	ldr 	r4,[r1]
	ldr 	r5,[r1]
	ldr 	r6,[r1]
	ldr 	r7,[r1]
	ldr 	r8,[r1]
	ldr 	r9,[r1]
	ldr 	r10,[r1]
	ldr 	r11,[r1]
	stmia		r0!,{r4-r11}
	subs		r2,r2,#32
	bne			%B10

	ldmfd		sp!,{r1-r11}
	mov			pc,lr


    END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线精品一区二区三区激情 | 91福利视频在线| 精品一区二区精品| 视频一区视频二区在线观看| 一区二区三区精密机械公司| 亚洲视频香蕉人妖| 亚洲免费大片在线观看| 亚洲一区二区三区四区五区中文 | 激情综合网激情| 极品尤物av久久免费看| 国产精品99久久久久久宅男| 国产成人aaa| aa级大片欧美| 精品视频一区二区三区免费| 欧美电影一区二区三区| 日韩欧美在线观看一区二区三区| 日韩精品一区二区三区在线观看| 久久综合99re88久久爱| 国产色综合一区| 欧美国产一区二区| 亚洲精品成a人| 视频在线观看国产精品| 韩国女主播一区| 成人h动漫精品| 欧美日韩国产综合一区二区三区 | 国产精品资源在线看| 处破女av一区二区| 日本高清无吗v一区| 欧美日韩日日摸| 久久你懂得1024| 亚洲欧洲日韩综合一区二区| 亚洲chinese男男1069| 韩国欧美国产一区| 在线观看网站黄不卡| 精品剧情在线观看| 一区二区三区在线影院| 国产一区二三区好的| 91亚洲资源网| 精品久久久久久无| 亚洲永久免费视频| 国产精品乡下勾搭老头1| 欧美中文字幕一区二区三区亚洲| wwwwww.欧美系列| 一区二区日韩av| 粉嫩蜜臀av国产精品网站| 91精品久久久久久久99蜜桃| 亚洲欧洲av在线| 精品在线播放免费| 在线观看av一区| 中文字幕一区二区三区不卡在线| 美女在线一区二区| 欧美亚洲禁片免费| 国产精品不卡视频| 国产伦精品一区二区三区在线观看 | 国产精品亲子伦对白| 免费久久99精品国产| 精品视频资源站| 一区二区三区免费观看| 丁香天五香天堂综合| 欧美成人福利视频| 日韩综合在线视频| 欧美日韩免费观看一区二区三区| 中文字幕制服丝袜成人av| 久久99在线观看| 欧美一卡二卡三卡| 天天综合网 天天综合色| 色偷偷久久一区二区三区| 国产日产精品一区| 国产精品综合一区二区| 精品国产123| 国产一区二区三区免费看| 日韩三区在线观看| 日韩 欧美一区二区三区| 欧美性猛片xxxx免费看久爱| 一区二区欧美在线观看| 91福利在线看| 午夜伦理一区二区| 欧美日韩成人综合在线一区二区| 一区二区三区电影在线播| 色偷偷88欧美精品久久久| 亚洲欧洲av另类| 91丨porny丨中文| 亚洲欧美精品午睡沙发| 色婷婷av一区二区三区大白胸| 亚洲精品乱码久久久久久黑人| 欧美综合一区二区三区| 婷婷开心久久网| 日韩欧美高清在线| 国产精品一区二区果冻传媒| 国产精品久久久久三级| 91碰在线视频| 无码av免费一区二区三区试看| 91精品视频网| 国产中文字幕精品| 国产精品伦一区| 欧美色男人天堂| 精品制服美女久久| 国产精品久久久久三级| 日本乱人伦aⅴ精品| 天天综合网 天天综合色| 精品国产99国产精品| 成人深夜在线观看| 婷婷综合另类小说色区| 久久亚洲精华国产精华液| 处破女av一区二区| 亚洲成av人片在线观看| 精品黑人一区二区三区久久| 99久久久精品| 蜜臀久久99精品久久久久宅男| 中文字幕av一区二区三区| 欧美日韩一区不卡| 国产乱人伦精品一区二区在线观看| 国产精品久久毛片| 欧美一级片免费看| 成人av在线影院| 另类人妖一区二区av| 亚洲欧美日韩一区| 精品国产91九色蝌蚪| 欧美系列日韩一区| 成人性生交大片免费看在线播放| 天天色 色综合| √…a在线天堂一区| 欧美精品一区二区久久婷婷| 91九色最新地址| 成人精品免费看| 久久精品二区亚洲w码| 一区二区三区在线视频免费| 日本一区二区三级电影在线观看| 欧美顶级少妇做爰| 91亚洲国产成人精品一区二三| 久色婷婷小香蕉久久| 亚洲精品视频观看| 亚洲欧美综合在线精品| 国产欧美综合色| 精品成a人在线观看| 91精品国产综合久久久久久久久久 | 欧美极品xxx| 日韩女同互慰一区二区| 在线一区二区观看| 不卡一区在线观看| 国产成人亚洲精品青草天美| 久久精品国内一区二区三区 | 2020国产精品自拍| 欧美老肥妇做.爰bbww视频| 99re热这里只有精品免费视频 | 成人涩涩免费视频| 国产一区亚洲一区| 国内外成人在线| 精品在线一区二区三区| 九九精品视频在线看| 久久成人精品无人区| 麻豆精品蜜桃视频网站| 五月天激情综合网| 免费欧美高清视频| 精品亚洲成av人在线观看| 久久国产福利国产秒拍| 久久电影网站中文字幕| 久久国产精品99久久人人澡| 久久99精品一区二区三区三区| 美女网站一区二区| 久久国产精品无码网站| 国产一区二区在线免费观看| 国产成人免费视频网站高清观看视频| 精品一区二区三区视频在线观看| 韩国精品在线观看| 国产成人久久精品77777最新版本| 国产福利一区在线| 成人黄色电影在线| 欧美专区日韩专区| 欧美一区二区三区在线看| 欧美成人猛片aaaaaaa| 国产欧美一区二区精品婷婷 | 日韩va亚洲va欧美va久久| 毛片av一区二区| 国产成人av电影在线| 91丝袜呻吟高潮美腿白嫩在线观看| 在线观看一区日韩| 精品欧美一区二区久久| 国产精品五月天| 一区二区免费在线播放| 人妖欧美一区二区| 成人涩涩免费视频| 欧美剧情电影在线观看完整版免费励志电影| 欧美日韩www| 中文字幕不卡在线播放| 亚洲va欧美va人人爽| 国内精品嫩模私拍在线| 日本韩国一区二区三区| 日韩欧美国产三级| 亚洲美女精品一区| 天涯成人国产亚洲精品一区av| 国产成人在线电影| 欧美猛男男办公室激情| 国产日产欧美一区| 日本成人在线电影网| 99久久久精品| 久久免费美女视频| 调教+趴+乳夹+国产+精品| 99精品偷自拍| 精品播放一区二区|