mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 02:15:45 +01:00 
			
		
		
		
	When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
		
			
				
	
	
		
			194 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			194 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0+ */
 | |
| /*
 | |
|  * Copyright (C) 2007-2008
 | |
|  * Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
 | |
|  *
 | |
|  * Copyright (C) 2007
 | |
|  * Kenati Technologies, Inc.
 | |
|  *
 | |
|  * board/MigoR/lowlevel_init.S
 | |
|  */
 | |
| 
 | |
| #include <config.h>
 | |
| 
 | |
| #include <asm/processor.h>
 | |
| #include <asm/macro.h>
 | |
| 
 | |
| /*
 | |
|  * Board specific low level init code, called _very_ early in the
 | |
|  * startup sequence. Relocation to SDRAM has not happened yet, no
 | |
|  * stack is available, bss section has not been initialised, etc.
 | |
|  *
 | |
|  * (Note: As no stack is available, no subroutines can be called...).
 | |
|  */
 | |
| 
 | |
| 	.global	lowlevel_init
 | |
| 
 | |
| 	.text
 | |
| 	.align	2
 | |
| 
 | |
| lowlevel_init:
 | |
| 	write32	CCR_A, CCR_D		! Address of Cache Control Register
 | |
| 					! Instruction Cache Invalidate
 | |
| 
 | |
| 	write32	MMUCR_A, MMUCR_D	! Address of MMU Control Register
 | |
| 					! TI == TLB Invalidate bit
 | |
| 
 | |
| 	write32	MSTPCR0_A, MSTPCR0_D	! Address of Power Control Register 0
 | |
| 
 | |
| 	write32	MSTPCR2_A, MSTPCR2_D	! Address of Power Control Register 2
 | |
| 
 | |
| 	write16	PFC_PULCR_A, PFC_PULCR_D
 | |
| 
 | |
| 	write16	PFC_DRVCR_A, PFC_DRVCR_D
 | |
| 
 | |
| 	write16	SBSCR_A, SBSCR_D
 | |
| 
 | |
| 	write16	PSCR_A, PSCR_D
 | |
| 
 | |
| 	write16	RWTCSR_A, RWTCSR_D_1	! 0xA4520004 (Watchdog Control / Status Register)
 | |
| 					! 0xA507 -> timer_STOP / WDT_CLK = max
 | |
| 
 | |
| 	write16	RWTCNT_A, RWTCNT_D	! 0xA4520000 (Watchdog Count Register)
 | |
| 					! 0x5A00 -> Clear
 | |
| 
 | |
| 	write16	RWTCSR_A, RWTCSR_D_2	! 0xA4520004 (Watchdog Control / Status Register)
 | |
| 					! 0xA504 -> timer_STOP / CLK = 500ms
 | |
| 
 | |
| 	write32	DLLFRQ_A, DLLFRQ_D	! 20080115
 | |
| 					! 20080115
 | |
| 
 | |
| 	write32	FRQCR_A, FRQCR_D	! 0xA4150000 Frequency control register
 | |
| 					! 20080115
 | |
| 
 | |
| 	write32	CCR_A, CCR_D_2		! Address of Cache Control Register
 | |
| 					! ??
 | |
| 
 | |
| bsc_init:
 | |
| 	write32	CMNCR_A, CMNCR_D
 | |
| 
 | |
| 	write32	CS0BCR_A, CS0BCR_D
 | |
| 
 | |
| 	write32	CS4BCR_A, CS4BCR_D
 | |
| 
 | |
| 	write32	CS5ABCR_A, CS5ABCR_D
 | |
| 
 | |
| 	write32	CS5BBCR_A, CS5BBCR_D
 | |
| 
 | |
| 	write32	CS6ABCR_A, CS6ABCR_D
 | |
| 
 | |
| 	write32	CS0WCR_A, CS0WCR_D
 | |
| 
 | |
| 	write32	CS4WCR_A, CS4WCR_D
 | |
| 
 | |
| 	write32	CS5AWCR_A, CS5AWCR_D
 | |
| 
 | |
| 	write32	CS5BWCR_A, CS5BWCR_D
 | |
| 
 | |
| 	write32	CS6AWCR_A, CS6AWCR_D
 | |
| 
 | |
| 	! SDRAM initialization
 | |
| 	write32	SDCR_A, SDCR_D
 | |
| 
 | |
| 	write32	SDWCR_A, SDWCR_D
 | |
| 
 | |
| 	write32	SDPCR_A, SDPCR_D
 | |
| 
 | |
| 	write32	RTCOR_A, RTCOR_D
 | |
| 
 | |
| 	write32	RTCNT_A, RTCNT_D
 | |
| 
 | |
| 	write32	RTCSR_A, RTCSR_D
 | |
| 
 | |
| 	write32	RFCR_A, RFCR_D
 | |
| 
 | |
| 	write8	SDMR3_A, SDMR3_D
 | |
| 
 | |
| 	! BL bit off (init = ON) (?!?)
 | |
| 
 | |
| 	stc	sr, r0				! BL bit off(init=ON)
 | |
| 	mov.l	SR_MASK_D, r1
 | |
| 	and	r1, r0
 | |
| 	ldc	r0, sr
 | |
| 
 | |
| 	rts
 | |
| 	mov	#0, r0
 | |
| 
 | |
| 	.align	4
 | |
| 
 | |
| CCR_A:		.long	CCR
 | |
| MMUCR_A:	.long	MMUCR
 | |
| MSTPCR0_A:	.long	MSTPCR0
 | |
| MSTPCR2_A:	.long	MSTPCR2
 | |
| PFC_PULCR_A:	.long	PULCR
 | |
| PFC_DRVCR_A:	.long	DRVCR
 | |
| SBSCR_A:	.long	SBSCR
 | |
| PSCR_A:		.long	PSCR
 | |
| RWTCSR_A:	.long	RWTCSR
 | |
| RWTCNT_A:	.long	RWTCNT
 | |
| FRQCR_A:	.long	FRQCR
 | |
| PLLCR_A:	.long	PLLCR
 | |
| DLLFRQ_A:	.long	DLLFRQ
 | |
| 
 | |
| CCR_D:		.long	0x00000800
 | |
| CCR_D_2:	.long	0x00000103
 | |
| MMUCR_D:	.long	0x00000004
 | |
| MSTPCR0_D:	.long	0x00001001
 | |
| MSTPCR2_D:	.long	0xffffffff
 | |
| PFC_PULCR_D:	.long	0x6000
 | |
| PFC_DRVCR_D:	.long	0x0464
 | |
| FRQCR_D:	.long	0x07033639
 | |
| PLLCR_D:	.long	0x00005000
 | |
| DLLFRQ_D:	.long	0x000004F6
 | |
| 
 | |
| CMNCR_A:	.long	CMNCR
 | |
| CMNCR_D:	.long	0x0000001B
 | |
| CS0BCR_A:	.long	CS0BCR
 | |
| CS0BCR_D:	.long	0x24920400
 | |
| CS4BCR_A:	.long	CS4BCR
 | |
| CS4BCR_D:	.long	0x00003400
 | |
| CS5ABCR_A:	.long	CS5ABCR
 | |
| CS5ABCR_D:	.long	0x24920400
 | |
| CS5BBCR_A:	.long	CS5BBCR
 | |
| CS5BBCR_D:	.long	0x24920400
 | |
| CS6ABCR_A:	.long	CS6ABCR
 | |
| CS6ABCR_D:	.long	0x24920400
 | |
| 
 | |
| CS0WCR_A:	.long	CS0WCR
 | |
| CS0WCR_D:	.long	0x00000380
 | |
| CS4WCR_A:	.long	CS4WCR
 | |
| CS4WCR_D:	.long	0x00110080
 | |
| CS5AWCR_A:	.long	CS5AWCR
 | |
| CS5AWCR_D:	.long	0x00000300
 | |
| CS5BWCR_A:	.long	CS5BWCR
 | |
| CS5BWCR_D:	.long	0x00000300
 | |
| CS6AWCR_A:	.long	CS6AWCR
 | |
| CS6AWCR_D:	.long	0x00000300
 | |
| 
 | |
| SDCR_A:		.long	SBSC_SDCR
 | |
| SDCR_D:		.long	0x80160809
 | |
| SDWCR_A:	.long	SBSC_SDWCR
 | |
| SDWCR_D:	.long	0x0014450C
 | |
| SDPCR_A:	.long	SBSC_SDPCR
 | |
| SDPCR_D:	.long	0x00000087
 | |
| RTCOR_A:	.long	SBSC_RTCOR
 | |
| RTCNT_A:	.long	SBSC_RTCNT
 | |
| RTCNT_D:	.long	0xA55A0012
 | |
| RTCOR_D:	.long	0xA55A001C
 | |
| RTCSR_A:	.long	SBSC_RTCSR
 | |
| RFCR_A:		.long	SBSC_RFCR
 | |
| RFCR_D:		.long	0xA55A0221
 | |
| RTCSR_D:	.long	0xA55A009a
 | |
| SDMR3_A:	.long	0xFE581180
 | |
| SDMR3_D:	.long	0x0
 | |
| 
 | |
| SR_MASK_D:	.long	0xEFFFFF0F
 | |
| 
 | |
| 	.align	2
 | |
| 
 | |
| SBSCR_D:	.word	0x0044
 | |
| PSCR_D:		.word	0x0000
 | |
| RWTCSR_D_1:	.word	0xA507
 | |
| RWTCSR_D_2:	.word	0xA504
 | |
| RWTCNT_D:	.word	0x5A00
 |