s3c6410.inc

来自「SAMSUNG S3C6410 CPU BSP for winmobile6」· INC 代码 · 共 717 行 · 第 1/2 页

INC
717
字号
;
; Copyright (c) Microsoft Corporation.  All rights reserved.
;
;
; Use of this source code is subject to the terms of the Microsoft end-user
; license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
; If you did not accept the terms of the EULA, you are not authorized to use
; this source code. For a copy of the EULA, please see the LICENSE.RTF on your
; install media.
;
;-------------------------------------------------------------------------------
;
;  Header: s3c6410.inc
;
;  This header file defines only those registers required by the startup
;  code. All addresses are based off the physical addresses (PA) defined
;  in s3c6410_base_reg.h (s3c6410_base_reg.inc).
;
;-------------------------------------------------------------------------------

; Include the base register definitions
;-------------------------------------------------------------------------------
; Definitions for POP Option
; POP_OPTION : 0, S3C6410
; POP_OPTION : 1, SC36410-X5A  --> S3C6410 + OneNAND(256MB) + mDDR(128MB)
;-------------------------------------------------------------------------------
POP_NONE	EQU	0
POP_X5A		EQU	1


	GBLA	POP_OPTION

;-------------------------------------------------
; Change Package Option for Package Types
;-------------------------------------------------
;POP_OPTION	SETA	POP_X5A
POP_OPTION	SETA	POP_NONE
;-------------------------------------------------




;------------------------------------------------------------------------------
; CPU_Name Definition 
;------------------------------------------------------------------------------
S3C6400		EQU	1
S3C6410		EQU	2

	;INCLUDE s3c6410_base_regs.inc

;-------------------------------------------------
; CPU Revision Definition
;-------------------------------------------------
EVT1		EQU	1
EVT2		EQU	2

;-------------------------------------------------
; System Clock Definition
;-------------------------------------------------

CLK_200MHZ	EQU	200000000
CLK_266MHZ	EQU	266000000
CLK_300MHZ	EQU	300000000
CLK_400MHZ	EQU	400000000
CLK_532MHZ	EQU	532000000
CLK_634MHZ	EQU	634000000

ECLK_96MHZ	EQU	96000000
ECLK_84MHZ	EQU	84666667	; for IIS 44.1 KHz
ECLK_92MHZ	EQU	92160000	; for IIS 48 KHz

	GBLA	CPU_NAME
	GBLA	CPU_REVISION
	GBLA	S3C6410_APLL_CLK
	GBLA	S3C6410_ECLK
	GBLL	CHANGE_PLL_CLKDIV_ON_EBOOT
	GBLL	CHANGE_PLL_CLKDIV_ON_KERNEL
	GBLL	CLEAR_DRAM_ON_EBOOT
	GBLL	CLEAR_DRAM_ON_KERNEL

CHANGE_PLL_CLKDIV_ON_EBOOT	SETL	{TRUE}
CHANGE_PLL_CLKDIV_ON_KERNEL	SETL	{FALSE}
CLEAR_DRAM_ON_EBOOT		SETL	{FALSE}
CLEAR_DRAM_ON_KERNEL		SETL	{FALSE}
	

;------------------------------------------------------------------------------
; Define: CPU_Name 
;
; CPU_Name used to make bsp compatible between previous platform and new released platform
;------------------------------------------------------------------------------
CPU_NAME	SETA	S3C6410

;------------------------------------------------------------------------------
; Define: SYNCMODE 
;
; SYNCMODE used to set cpu operation mode to syncronous mode or asyncronous mode
;------------------------------------------------------------------------------

	[ CPU_NAME = S3C6410
	GBLL	SYNCMODE
	
SYNCMODE	SETL	{TRUE}
CLK_667MHZ	EQU	667000000
CLK_800MHZ	EQU	800000000				; Just for the test, remove when release
CLK_1066MHZ	EQU	1066000000			; Just for the test, remove when release
	]

;-------------------------------------------------
; Change CPU Revision (EVT0 is no longer supported)
;-------------------------------------------------
;CPU_REVISION	SETA	EVT1
CPU_REVISION	SETA	EVT2
;-------------------------------------------------

;-------------------------------------------------
; Change S3C6410_APLL_CLK definition for StartUp code
;-------------------------------------------------
;S3C6410_APLL_CLK	SETA	CLK_400MHZ
S3C6410_APLL_CLK	SETA	CLK_532MHZ
;S3C6410_APLL_CLK	SETA	CLK_634MHZ
	[ CPU_NAME = S3C6410			; This configuration will work only on S3C6410
;S3C6410_APLL_CLK	SETA	CLK_667MHZ
;S3C6410_APLL_CLK	SETA	CLK_800MHZ
;S3C6410_APLL_CLK	SETA	CLK_1066MHZ
	]
FIN		EQU	12000000
;-------------------------------------------------

; Include the base register definitions

	INCLUDE s3c6410_base_regs.inc


;-------------------------------------------------
; Note!!! : EVT1 support Only 400 MHz
;-------------------------------------------------
	[ CPU_REVISION = EVT1
S3C6410_APLL_CLK	SETA	CLK_400MHZ
	]
;-------------------------------------------------

;-------------------------------------------------
; Change S3C6410_ECLK definition for EPLL Fout
;-------------------------------------------------
;S3C6410_ECLK	SETA	ECLK_96MHZ
S3C6410_ECLK	SETA	ECLK_84MHZ
;S3C6410_ECLK	SETA	ECLK_92MHZ
;-------------------------------------------------


	; 400:100:25 (S3C6410 support only Asyncronous Mode)
	[ S3C6410_APLL_CLK = CLK_400MHZ

		[ CPU_REVISION = EVT1

;Fvco=1600MHz, Fout=400MHz
APLL_MVAL	EQU	(400)
APLL_PVAL	EQU	(3)
APLL_SVAL	EQU	(2)

;Fvco=1600MHz, Fout=200MHz
MPLL_MVAL	EQU	(400)
MPLL_PVAL	EQU	(3)
MPLL_SVAL	EQU	(3)

		|

;Fvco=800MHz, Fout=400MHz
APLL_MVAL	EQU	(400)
APLL_PVAL	EQU	(6)
APLL_SVAL	EQU	(1)

;Fvco=800MHz, Fout=200MHz
MPLL_MVAL	EQU	(400)
MPLL_PVAL	EQU	(6)
MPLL_SVAL	EQU	(2)

		]

APLL_DIV	EQU	(1-1)	; ARMCLK = 400 MHz
MPLL_DIV	EQU	(2-1)	; DOUT_MPLL = MPLL_Fout/2 (100 MHz)

HCLKx2_DIV	EQU	(1-1)	; HCLKx2 = MPLL_Fout	(200 MHz)

HCLK_DIV	EQU	(2-1)	; AHB_CLK = HCLKx2/2	(100 MHz)
PCLK_DIV	EQU	(8-1)	; PCLK = HCLKx2/8	(25 MHz)
	[ POP_OPTION = POP_NONE
OND_DIV		EQU	(4-1)	; OND_CLK = HCLKx2/4	(50 MHz)
	]
	[ POP_OPTION = POP_X5A
OND_DIV		EQU	(1-1)	; OND_CLK = HCLK	(50 MHz)
	]

S3C6410_ACLK	EQU	(S3C6410_APLL_CLK/(APLL_DIV+1))	; ARMCLK = 400 MHz
  	]	; 400 MHz

	; 532:133:33 (S3C6410 support only Asyncronous Mode)
	[ S3C6410_APLL_CLK = CLK_532MHZ
		[ CPU_NAME = S3C6410
;Fvco=1064MHz, Fout=532MHz
APLL_MVAL	EQU	(266)
APLL_PVAL	EQU	(3)
APLL_SVAL	EQU	(1)

;Fvco=1064MHz, Fout=266MHz
MPLL_MVAL	EQU	(266)
MPLL_PVAL	EQU	(3)
MPLL_SVAL	EQU	(2)

APLL_DIV	EQU	(1-1)	; ARMCLK = 532 MHz
MPLL_DIV	EQU	(2-1)	; DOUT_MPLL = MPLL_Fout/2 (133 MHz)
			[ SYNCMODE
HCLKx2_DIV	EQU	(2-1)	; HCLKx2 = APLL_Fout/2	(266 MHz)
			|
HCLKx2_DIV	EQU	(1-1)	; HCLKx2 = MPLL_Fout	(266 MHz)
			]

HCLK_DIV	EQU	(2-1)	; AHB_CLK = HCLKx2/2	(133 MHz)
PCLK_DIV	EQU	(8-1)	; PCLK = HCLKx2/8	(33.25 MHz)
OND_DIV		EQU	(4-1)	; OND_CLK = HCLKx2/4	(66.5 MHz)

S3C6410_ACLK	EQU	(S3C6410_APLL_CLK/(APLL_DIV+1))	; ARMCLK = 532 MHz
		]
		[ CPU_NAME = S3C6400
;Fvco=1064MHz, Fout=532MHz
APLL_MVAL	EQU	(532)
APLL_PVAL	EQU	(6)
APLL_SVAL	EQU	(1)

;Fvco=1064MHz, Fout=266MHz
MPLL_MVAL	EQU	(532)
MPLL_PVAL	EQU	(6)
MPLL_SVAL	EQU	(2)

APLL_DIV	EQU	(1-1)	; ARMCLK = 532 MHz
MPLL_DIV	EQU	(2-1)	; DOUT_MPLL = MPLL_Fout/2 (133 MHz)

HCLKx2_DIV	EQU	(1-1)	; HCLKx2 = MPLL_Fout	(266 MHz)

HCLK_DIV	EQU	(2-1)	; AHB_CLK = HCLKx2/2	(133 MHz)
PCLK_DIV	EQU	(8-1)	; PCLK = HCLKx2/8	(33.25 MHz)
	[ POP_OPTION = POP_NONE
OND_DIV		EQU	(4-1)	; OND_CLK = HCLKx2/4	(66.5 MHz)
	]
	[ POP_OPTION = POP_X5A
OND_DIV		EQU	(1-1)	; OND_CLK = HCLK	(66.5 MHz)
	]

S3C6410_ACLK	EQU	(S3C6410_APLL_CLK/(APLL_DIV+1))	; ARMCLK = 532 MHz
		]
  	]	; 532 MHz

	; 634:133:66.5 (S3C6410 support only Asyncronous Mode)
	[ S3C6410_APLL_CLK = CLK_634MHZ

;Fvco=1268MHz, Fout=634MHz
APLL_MVAL	EQU	(634)
APLL_PVAL	EQU	(6)
APLL_SVAL	EQU	(1)

;Fvco=1064MHz, Fout=266MHz
MPLL_MVAL	EQU	(532)
MPLL_PVAL	EQU	(6)
MPLL_SVAL	EQU	(2)

APLL_DIV	EQU	(1-1)	; ARMCLK = 634 MHz
MPLL_DIV	EQU	(2-1)	; DOUT_MPLL = MPLL_Fout/2 (133 MHz)

HCLKx2_DIV	EQU	(1-1)	; HCLKx2 = MPLL_Fout	(266 MHz)

HCLK_DIV	EQU	(2-1)	; AHB_CLK = HCLKx2/2	(133 MHz)
PCLK_DIV	EQU	(8-1)	; PCLK = HCLKx2/8	(33.25 MHz)
	[ POP_OPTION = POP_NONE
OND_DIV		EQU	(4-1)	; OND_CLK = HCLKx2/4	(66.5 MHz)
	]
	[ POP_OPTION = POP_X5A
OND_DIV		EQU	(1-1)	; OND_CLK = HCLK	(66.5 MHz)
	]

S3C6410_ACLK	EQU	(S3C6410_APLL_CLK/(APLL_DIV+1))	; ARMCLK = 634 MHz

	]	; 634 MHz

	[ CPU_NAME = S3C6410
	; 667:133:33 (S3C6410 support only Asyncronous Mode)
		[ S3C6410_APLL_CLK = CLK_667MHZ

;Fvco=1268MHz, Fout=667MHz
APLL_MVAL	EQU	(667)
APLL_PVAL	EQU	(6)
APLL_SVAL	EQU	(1)

;Fvco=1064MHz, Fout=266MHz
MPLL_MVAL	EQU	(266)
MPLL_PVAL	EQU	(3)
MPLL_SVAL	EQU	(2)

APLL_DIV	EQU	(1-1)	; ARMCLK = 667 MHz
MPLL_DIV	EQU	(2-1)	; DOUT_MPLL = MPLL_Fout/2 (133 MHz)

HCLKx2_DIV	EQU	(1-1)	; HCLKx2 = MPLL_Fout	(266 MHz)

HCLK_DIV	EQU	(2-1)	; AHB_CLK = HCLKx2/2	(133 MHz)
PCLK_DIV	EQU	(8-1)	; PCLK = HCLKx2/8	(33.25 MHz)
OND_DIV		EQU	(4-1)	; OND_CLK = HCLKx2/4	(66.5 MHz)

S3C6410_ACLK	EQU	(S3C6410_APLL_CLK/(APLL_DIV+1))	; ARMCLK = 667 MHz

		]	; 667 MHz

	; 800:133:33 (S3C6410 support only Syncronous Mode)
		[ S3C6410_APLL_CLK = CLK_800MHZ

;Fvco=1600MHz, Fout=800MHz
APLL_MVAL	EQU	(400)
APLL_PVAL	EQU	(3)
APLL_SVAL	EQU	(1)

;Fvco=1600MHz, Fout=266MHz
MPLL_MVAL	EQU	(266)	; 400
MPLL_PVAL	EQU	(3)	; 18
MPLL_SVAL	EQU	(2)		; 0

APLL_DIV	EQU	(1-1)	; ARMCLK = 800 MHz
MPLL_DIV	EQU	(2-1)	; DOUT_MPLL = MPLL_Fout/2 (133 MHz)

HCLKx2_DIV	EQU	(3-1)	; HCLKx2 = APLL_Fout/3	(266 MHz)

HCLK_DIV	EQU	(2-1)	; AHB_CLK = HCLKx2/2	(133 MHz)
PCLK_DIV	EQU	(8-1)	; PCLK = HCLKx2/8	(33.25 MHz)


S3C6410_ACLK	EQU	(S3C6410_APLL_CLK/(APLL_DIV+1))	; ARMCLK = 800 MHz

		]	; 800 MHz		

	; 1066:133:33 (S3C6410 support only Syncronous Mode)
		[ S3C6410_APLL_CLK = CLK_1066MHZ

;Fvco=1600MHz, Fout=1066MHz
APLL_MVAL	EQU	(533)
APLL_PVAL	EQU	(3)
APLL_SVAL	EQU	(1)

;Fvco=1600MHz, Fout=266MHz
MPLL_MVAL	EQU	(266)	; 400
MPLL_PVAL	EQU	(3)	; 18
MPLL_SVAL	EQU	(2)		; 0

APLL_DIV	EQU	(1-1)	; ARMCLK = 1066 MHz
MPLL_DIV	EQU	(2-1)	; DOUT_MPLL = MPLL_Fout/2 (133 MHz)

HCLKx2_DIV	EQU	(4-1)	; HCLKx2 = APLL_Fout/4	(266 MHz)

HCLK_DIV	EQU	(2-1)	; AHB_CLK = HCLKx2/2	(133 MHz)
PCLK_DIV	EQU	(8-1)	; PCLK = HCLKx2/8	(33.25 MHz)


⌨️ 快捷键说明

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