⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 system_.s

📁 s3c6400 ADS下官方测试程序
💻 S
字号:
;/*************************************************************************************
; 
;	Project Name : S3C6400 Validation
;
;	Copyright 2006 by Samsung Electronics, Inc.
;	All rights reserved.
;
;	Project Description :
;		This software is only for validating functions of the S3C6400.
;		Anybody can use this software without our permission.
;  
;--------------------------------------------------------------------------------------
; 
;	File Name : system_.s
;  
;	File Description : This file implements CP15 control.
;
;	Author	: Haksoo,Kim
;	Dept. : AP Development Team
;	Created Date : 2006/11/08
;	Version : 0.1 
; 
;	History
;	- Created(Haksoo,Kim 2006/11/08)
;  
;*************************************************************************************/


				AREA	|C$$code|, CODE, READONLY
;;===============================================================================
;;
;;	Exception
;;
						EXPORT	SYSTEM_EnableVIC
SYSTEM_EnableVIC		PROC
						mrc 	p15,0,r0,c1,c0,0
						orr 	r0,r0,#(1<<24)
						mcr 	p15,0,r0,c1,c0,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_DisableVIC
SYSTEM_DisableVIC		PROC
						mrc 	p15,0,r0,c1,c0,0
						bic 	r0,r0,#(1<<24)
						mcr 	p15,0,r0,c1,c0,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_EnableIRQ
SYSTEM_EnableIRQ		PROC
						mrs		r0,cpsr
						bic		r0,r0,#(1<<7)
						msr		cpsr_cxsf,r0             
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_DisableIRQ				
SYSTEM_DisableIRQ		PROC
						mrs		r0,cpsr
						orr		r0,r0,#(1<<7)
						msr		cpsr_cxsf,r0             
						mov		pc,lr
						ENDP
				
				

						EXPORT	SYSTEM_EnableFIQ
SYSTEM_EnableFIQ		PROC
						mrs		r0,cpsr
						bic		r0,r0,#(1<<6)
						msr		cpsr_cxsf,r0             
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_DisableFIQ
SYSTEM_DisableFIQ		PROC
						mrs		r0,cpsr
						orr		r0,r0,#(1<<6)
						msr		cpsr_cxsf,r0             
						mov		pc,lr
						ENDP
;;
;;===============================================================================
			   EXPORT Stop_WFI_Test
Stop_WFI_Test		 PROC

					 ;stmfd	sp!, {r0-r13}
					 stmfd	sp!, {r0-r6}

					 ldr r5, =0x7E00FA1C		; Inform7
					 ldr r6, [r5]		 
					 mov r0, #0
					 ldr r1, =0x7E00F90C
					 
					 mov r3, #0
					 mov r4, #0

					 
LOOP_STOP					 
					 add r3, r3, #1
					 cmp r3, #0x2
					 blt Wait_BLK_PWR1
					 
					 
					 mcr p15,0,r0,c7,c10,5 ; Data Memory Barrier
					 mcr p15,0,r0,c7,c10,4 ; test, Data Sync. Barrier 
					 
   					 mcr p15,0,r0,c7,c0,4
   					   					 
   					 
Wait_BLK_PWR1
   					 ldr r2, [r1]
   					 ;cmp r2, #0x7F
   					 ;cmp r2, #0x51
   					 cmp r2, r6
   					 bne Wait_BLK_PWR1
   					 
   					 add r4, r4, #1
   					 cmp r4, #2
   					 blt LOOP_STOP
   								
   					 ldmfd sp!, {r0-r6}
   					 					 
   					 mov pc,lr
					 ENDP

			   EXPORT Stop_WFI_Test1
Stop_WFI_Test1		 PROC

					 ;stmfd	sp!, {r0-r13}
					 stmfd	sp!, {r0-r6}

					 ldr r5, =0x7E00FA1C		; Inform7
					 ldr r6, [r5]		 
					 mov r0, #0
					 ldr r1, =0x7E00F90C
					 
					 mov r3, #0
					 mov r4, #0

					 
LOOP_STOP1					 
					 add r3, r3, #1
					 cmp r3, #0x2
					 blt Wait_BLK_PWR2
					 
					 
					 ldr r1, =0x7E00F800
					 mov r0, #0x2
					 str r0, [r1]
					 
					 nop
					 nop
					 nop
					 nop
					 nop
					 nop
					 nop
					 nop
					 nop
					 nop
					 
					 ;mcr p15,0,r0,c7,c10,5 ; Data Memory Barrier
					 ;mcr p15,0,r0,c7,c10,4 ; test, Data Sync. Barrier 
					 
   					 ;mcr p15,0,r0,c7,c0,4
   					 
   					  b .  					 
   					 
Wait_BLK_PWR2
   					 nop;
   					 nop;
   					 nop;
   					 nop;
   					 nop;
   					 nop;
   					 nop; 					 
   					 add r4, r4, #1
   					 cmp r4, #2
   					 blt LOOP_STOP1
   								
   					 ;b .
   					 			
   					 ldmfd sp!, {r0-r6}
   					 					 
   					 mov pc,lr
					 ENDP




			   EXPORT MMU_WaitForInterrupt
MMU_WaitForInterrupt PROC
					 mov r0, #0
;					 ldr r1, =0x7E00F90C
					 
					 mcr p15,0,r0,c7,c10,5 ; Data Memory Barrier
					 mcr p15,0,r0,c7,c10,4 ; test, Data Sync. Barrier 
					 ;mcr p15,0,r0,c7,c5,4	; Flush Prefetch Buffer
					 
   					 mcr p15,0,r0,c7,c0,4
   					 
   					 ;for test
   					 ;nop
   					 ;nop
   					 ;nop
   					 ;nop
   					 ;nop
   					 ;nop
   					 ;nop
   					 ;nop
   					 ;nop
   					 ;nop
   					 ;bl SYSTEM_EnableIRQ
   					 
   					 ;ldr r1, =0x71200014
   					 ;ldr r2, =0xffffffff
   					 ;str r2, [r1]
   					 
   					 ;ldr r1, =0x71200F00
   					 ;ldr r2, =0x0
   					 ;str r2, [r1]
   					 
   					 
;Wait_BLK_PWR
;   					  ldr r2, [r1]
;   					  cmp r2, #0x7F
;  					  bne Wait_BLK_PWR
   					 
   										 
  					 mov pc,lr
 
					 ENDP
					 
;;===============================================================================
;;
;;	MMU/Cache
;;
					 
						EXPORT	SYSTEM_EnableBP
SYSTEM_EnableBP			PROC				
						mrc		p15,0,r0,c1,c0,0
						orr		r0,r0,#(1<<11)
						mcr		p15,0,r0,c1,c0,0
						mov		pc,lr
						ENDP
				
						EXPORT	SYSTEM_EnableICache
SYSTEM_EnableICache		PROC				
						mrc		p15,0,r0,c1,c0,0
						orr		r0,r0,#(1<<12)
						mcr		p15,0,r0,c1,c0,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_DisableICache
SYSTEM_DisableICache	PROC
						mrc		p15,0,r0,c1,c0,0
						bic		r0,r0,#(1<<12)
						mcr		p15,0,r0,c1,c0,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_EnableDCache
SYSTEM_EnableDCache		PROC
						mrc		p15,0,r0,c1,c0,0
						orr		r0,r0,#(1<<2)
						mcr		p15,0,r0,c1,c0,0
						mov		pc,lr
		   				ENDP


						EXPORT	SYSTEM_DisableDCache
SYSTEM_DisableDCache	PROC
						mrc		p15,0,r0,c1,c0,0
						bic		r0,r0,#(1<<2)
						mcr		p15,0,r0,c1,c0,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_InvalidateEntireICache
SYSTEM_InvalidateEntireICache	PROC
						mov		r0,#0
						mcr		p15,0,r0,c7,c5,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_InvalidateEntireDCache
SYSTEM_InvalidateEntireDCache	PROC
						mov		r0,#0
						mcr		p15,0,r0,c7,c6,0
						mov		pc,lr
						ENDP
				
				
						EXPORT	SYSTEM_InvalidateBothCache
SYSTEM_InvalidateBothCache	PROC
						mov		r0,#0
						mcr		p15,0,r0,c7,c7,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_CleanEntireDCache
SYSTEM_CleanEntireDCache	PROC
						mov		r0,#0
						mcr		p15,0,r0,c7,c10,0
						mov		pc,lr
						ENDP

				
						EXPORT	SYSTEM_CleanInvalidateEntireDCache
SYSTEM_CleanInvalidateEntireDCache	PROC
						mov		r0,#0
						mcr		p15,0,r0,c7,c14,0
						mov		pc,lr
						ENDP



						EXPORT	SYSTEM_EnableMMU
SYSTEM_EnableMMU		PROC
						mrc		p15,0,r0,c1,c0,0
						orr		r0,r0,#(1<<0)
						mcr		p15,0,r0,c1,c0,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_DisableMMU
SYSTEM_DisableMMU		PROC
						mrc		p15,0,r0,c1,c0,0
						bic		r0,r0,#(1<<0)
						mcr		p15,0,r0,c1,c0,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_InvalidateTLB
SYSTEM_InvalidateTLB	PROC
						mov		r0,#0x0     
						mcr		p15,0,r0,c8,c7,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_SetTTBase
SYSTEM_SetTTBase		PROC				;	r0=TTBase
						mcr		p15,0,r0,c2,c0,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_SetDomain
SYSTEM_SetDomain		PROC				;	r0=Domain
						mcr		p15,0,r0,c3,c0,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_SetFCSEPID
SYSTEM_SetFCSEPID		PROC        		;	r0= FCSEPID
						mcr		p15,0,r0,c13,c0,0
						mov		pc,lr
						ENDP
   

						EXPORT	SYSTEM_EnableAlignFault
SYSTEM_EnableAlignFault	PROC
						mrc		p15,0,r0,c1,c0,0
						orr		r0,r0,#(1<<1)
						mcr		p15,0,r0,c1,c0,0
						mov		pc,lr
		   				ENDP


						EXPORT	SYSTEM_DisableAlignFault
SYSTEM_DisableAlignFault	PROC
						mrc		p15,0,r0,c1,c0,0
						bic		r0,r0,#(1<<1)
						mcr		p15,0,r0,c1,c0,0
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_ReadDFSR
SYSTEM_ReadDFSR			PROC
						mrc		p15,0,r0,c5,c0,0
						mov		pc,lr
						ENDP
				

						EXPORT	SYSTEM_ReadIFSR
SYSTEM_ReadIFSR			PROC
						mrc		p15,0,r0,c5,c0,1
						mov		pc,lr
						ENDP


						EXPORT	SYSTEM_ReadFAR
SYSTEM_ReadFAR			PROC
						mrc		p15,0,r0,c6,c0,0
						mov		pc,lr
						ENDP   

						EXPORT	EBI_Test_Assem
EBI_Test_Assem			PROC

						ldr	r1, =0x70200010	; Dest Addr of NFCON
						ldr	r2, =0x55555555
						ldr	r3, =0xaaaaaaaa
						ldr	r4, =0xffffffff
						ldr	r5, =0x5a5a5a5a

						ldr	r8, =0x00005555	; DATA
						ldr	r9, =0x70200010	; NFCON DATA Register
						
						ldr	r6, =0x0000aaaa	; DATA
						ldr	r7, =0x7030192C	; CFCON Register

						;---------- WW --------------
						; Store to NFCON Data register
						str	r8,[r9]			; DATA -> NFCON Data Register
						; Store to CFCON Register
						str	r6, [r7]			; DATA -> CFCON Data Register

						nop
						nop

						;---------- WR --------------						
						; Store to NFCON Data register
						str	r8,[r9]			; DATA -> NFCON Data Register
						; Read from CFCON Register
						ldr	r0, [r7]			; CFCON Data Register -> Register

						nop
						nop

						;---------- BWW --------------												
						stm	r1,{r2-r5}			; DATA -> NFCON Data Register
						; Store to CFCON Register
						str	r6, [r7]			; DATA -> CFCON Data Register

						nop
						nop

						;---------- BWR --------------																		
						stm	r1,{r2-r5}			; DATA -> NFCON Data Register
						; Read from CFCON Register
						ldr	r0, [r7]			; CFCON Data Register -> Register

						nop
						nop
						ENDP   

						EXPORT	Set_Ata_Cmd_START
Set_Ata_Cmd_START		PROC
						ldr		r8, = 0x0
						ldr		r9, =0x1				; START command
						ldr		r10, =0x70301908		; ATA_COMMAND register
						swp		r8, r9, [r10]			; swap operation
						mov		pc,lr
						ENDP   

						EXPORT	Set_Ata_Cmd_STOP
Set_Ata_Cmd_STOP		PROC
						ldr		r8, = 0x0
						ldr		r9, =0x0				; STOP command
						ldr		r10, =0x70301908		; ATA_COMMAND register
						swp		r8, r9, [r10]			; swap operation
						mov		pc,lr
						ENDP   

						EXPORT	Set_Ata_Cmd_ABORT
Set_Ata_Cmd_ABORT		PROC
						ldr		r8, = 0x0
						ldr		r9, =0x2				; ABORT command
						ldr		r10, =0x70301908		; ATA_COMMAND register
						swp		r8, r9, [r10]			; swap operation
						mov		pc,lr
						ENDP   

						EXPORT	Set_Ata_Cmd_CONTINUE
Set_Ata_Cmd_CONTINUE	PROC
						ldr		r8, = 0x0
						ldr		r9, =0x3				; CONTINUE command
						ldr		r10, =0x70301908		; ATA_COMMAND register
						swp		r8, r9, [r10]			; swap operation
						mov		pc,lr
						ENDP   
												
						
;;
;;===============================================================================

				END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -