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

📄 registers.h

📁 freescale i.mx31 BSP CE5.0全部源码
💻 H
字号:
;------------------------------------------------------------------------------
;
;	Copyright (C) 2004,	Motorola Inc. All Rights Reserved
;
;-----------------------------------------------------------------------------
;
;  Copyright (C) 2004, Freescale Semiconductor, Inc. All Rights Reserved
;  THIS SOURCE CODE IS CONFIDENTIAL AND PROPRIETARY AND MAY NOT
;  BE USED OR DISTRIBUTED WITHOUT THE WRITTEN PERMISSION OF
;  FREESCALE SEMICONDUCTOR, INC.
;
;-----------------------------------------------------------------------------
;
; File:		NANDLOADER/register.h
; Purpose:	Defines for CPU specific register defines.
;
; Notes:
;
; Author:	Swee Yee Fonn
; Date:	   	03/23/2004
;
; Modifications:
; MM/DD/YYYY       	Initials	Change description
;

	IF :LNOT: :DEF: _SRC_BOOTLOADER_IPL_NANDLOADER_REGISTERS_H
_SRC_BOOTLOADER_IPL_NANDLOADER_REGISTERS_H		EQU		1


    INCLUDE mxarm11_base_regs.inc
    INCLUDE mxarm11_base_mem.inc
    INCLUDE mx31_base_regs.inc

;
; ARM constants
;
ARM_CPSR_IRQDISABLE         EQU     (1 << 7)
ARM_CPSR_FIQDISABLE         EQU     (1 << 6)
ARM_CPSR_MODE_SVC           EQU     0x13
ARM_CTRL_ICACHE             EQU     (1 << 12)
ARM_CTRL_DCACHE             EQU     (1 << 2)
ARM_CTRL_MMU                EQU     (1 << 0)
ARM_CTRL_VECTORS            EQU     (1 << 13)
ARM_CACR_FULL               EQU     0x3

; VFP uses coproc 10 for single-precision instructions
ARM_VFP_SP_COP              EQU     10
ARM_VFP_SP_ACCESS           EQU     (ARM_CACR_FULL << (ARM_VFP_SP_COP*2))

; VFP uses coproc 11 for double-precision instructions
ARM_VFP_DP_COP              EQU     11
ARM_VFP_DP_ACCESS           EQU     (ARM_CACR_FULL << (ARM_VFP_DP_COP*2))

; Configure coprocessor access control
ARM_CACR_CONFIG             EQU     (ARM_VFP_SP_ACCESS | ARM_VFP_DP_ACCESS)

; Peripheral Port Memory Remap Register (PPMRR)
ARM_PPMRR_SIZE_LSH          EQU     0
ARM_PPMRR_SIZE_WID          EQU     5
ARM_PPMRR_SIZE_256MB        EQU     0x13
ARM_PPMRR_SIZE_512MB        EQU     0x14
ARM_PPMRR_SIZE_1GB          EQU     0x15
ARM_PPMRR_BASEADDR_LSH      EQU     12
ARM_PPMRR_BASEADDR_WID      EQU     20

ARM_PPMRR_SIZE              EQU     (ARM_PPMRR_SIZE_256MB << ARM_PPMRR_SIZE_LSH)
ARM_PPMRR_BASEADDR          EQU     (0x60000000)

ARM_PPMRR_CONFIG            EQU     (ARM_PPMRR_BASEADDR | ARM_PPMRR_SIZE)


;
; AVIC constants
;

AVIC_INTCNTL_OFFSET         EQU     0x0000
AVIC_NIMASK_OFFSET          EQU     0x0004
AVIC_INTENNUM_OFFSET        EQU     0x0008
AVIC_INTDISNUM_OFFSET       EQU     0x000C
AVIC_INTENABLEH_OFFSET      EQU     0x0010
AVIC_INTENABLEL_OFFSET      EQU     0x0014
AVIC_INTTYPEH_OFFSET        EQU     0x0018
AVIC_INTTYPEL_OFFSET        EQU     0x001C
AVIC_NIPRIORITY7_OFFSET     EQU     0x0020
AVIC_NIPRIORITY6_OFFSET     EQU     0x0024
AVIC_NIPRIORITY5_OFFSET     EQU     0x0028
AVIC_NIPRIORITY4_OFFSET     EQU     0x002C
AVIC_NIPRIORITY3_OFFSET     EQU     0x0030
AVIC_NIPRIORITY2_OFFSET     EQU     0x0034
AVIC_NIPRIORITY1_OFFSET     EQU     0x0038
AVIC_NIPRIORITY0_OFFSET     EQU     0x003C
AVIC_NIVECSR_OFFSET         EQU     0x0040
AVIC_FIVECSR_OFFSET         EQU     0x0044
AVIC_INTSRCH_OFFSET         EQU     0x0048
AVIC_INTSRCL_OFFSET         EQU     0x004C
AVIC_INTFRCH_OFFSET         EQU     0x0050
AVIC_INTFRCL_OFFSET         EQU     0x0054
AVIC_NIPNDH_OFFSET          EQU     0x0058
AVIC_NIPNDL_OFFSET          EQU     0x005C
AVIC_FIPNDH_OFFSET          EQU     0x0060
AVIC_FIPNDL_OFFSET          EQU     0x0064
AVIC_VECTOR_OFFSET          EQU     0x0100

AVIC_INTCNTL_ABFFLAG        EQU     (1<<25)
AVIC_INTCNTL_ABFEN          EQU     (1<<24)
AVIC_INTCNTL_NIDIS          EQU     (1<<22)
AVIC_INTCNTL_FIDIS          EQU     (1<<21)
AVIC_INTCNTL_NIAD           EQU     (1<<20)
AVIC_INTCNTL_FIAD           EQU     (1<<19)
AVIC_INTCNTL_NM             EQU     (1<<18)


;
; RTC Constants
;
RTC_HOUR_MIN_COUNTER       EQU     0x0000
RTC_SEC_COUNTER            EQU     0x0004
RTC_HOUR_MIN_ALARM         EQU     0x0008
RTC_SEC_ALARM              EQU     0x000C
RTC_CONTROL                EQU     0x0010
RTC_INT_STAT               EQU     0x0014
RTC_INT_ENABLE             EQU     0x0018
RTC_STOPWATCH              EQU     0x001C
RTC_DAY_COUNTER            EQU     0x0020
RTC_DAY_ALARM              EQU     0x0024


;
; AIPS Constants
;
AIPSREG_MPR0_OFFSET         EQU     0x0000
AIPSREG_MPR1_OFFSET         EQU     0x0004
AIPSREG_PACR0_OFFSET        EQU     0x0020
AIPSREG_PACR1_OFFSET        EQU     0x0024
AIPSREG_PACR2_OFFSET        EQU     0x0028
AIPSREG_PACR3_OFFSET        EQU     0x002C
AIPSREG_OPACR0_OFFSET       EQU     0x0040
AIPSREG_OPACR1_OFFSET       EQU     0x0044
AIPSREG_OPACR2_OFFSET       EQU     0x0048
AIPSREG_OPACR3_OFFSET       EQU     0x004C
AIPSREG_OPACR4_OFFSET       EQU     0x0050


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; NANDFC registers
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; NANDFC defines
NANDFC_MAIN_BUF_SIZE				EQU		512
NANDFC_SPARE_BUF_SIZE				EQU		16

NANDFC_BASE							EQU		CSP_BASE_REG_PA_NANDFC
NANDFC_MAIN_RAM_BUF1_OFFSET			EQU		(NANDFC_MAIN_BUF_SIZE)
NANDFC_MAIN_RAM_BUF2_OFFSET			EQU		(NANDFC_MAIN_RAM_BUF1_OFFSET + NANDFC_MAIN_BUF_SIZE)
NANDFC_MAIN_RAM_BUF3_OFFSET			EQU		(NANDFC_MAIN_RAM_BUF2_OFFSET + NANDFC_MAIN_BUF_SIZE)
NANDFC_SPARE_RAM_BUF0_OFFSET		EQU		(NANDFC_MAIN_RAM_BUF3_OFFSET + NANDFC_MAIN_BUF_SIZE)
NANDFC_SPARE_RAM_BUF1_OFFSET		EQU		(NANDFC_SPARE_RAM_BUF0_OFFSET + NANDFC_SPARE_BUF_SIZE)
NANDFC_SPARE_RAM_BUF2_OFFSET		EQU		(NANDFC_SPARE_RAM_BUF1_OFFSET + NANDFC_SPARE_BUF_SIZE)
NANDFC_SPARE_RAM_BUF3_OFFSET		EQU		(NANDFC_SPARE_RAM_BUF2_OFFSET + NANDFC_SPARE_BUF_SIZE)
NANDFC_MAIN_RAM_BUF_TOTAL_SIZE		EQU		(4 * NANDFC_MAIN_BUF_SIZE)

NANDFC_REGISTERS_OFFSET				EQU		0x00000E00
NANDFC_BUFSIZE_OFFSET				EQU		0x00
NANDFC_RESERVED_OFFSET				EQU		0x02	
NANDFC_RAM_BUFF_ADD_OFFSET			EQU		0x04
NANDFC_FLASH_ADD_OFFSET				EQU		0x06
NANDFC_FLASH_CMD_OFFSET				EQU		0x08
NANDFC_CONFIGURATION_OFFSET			EQU		0x0A
NANDFC_ECC_STATUS_RESULT_OFFSET		EQU		0x0C
NANDFC_ECC_STATUS_MAIN_OFFSET		EQU		0x0E
NANDFC_ECC_STATUS_SPARE_OFFSET		EQU		0x10
NANDFC_WRITE_PROT_OFFSET			EQU		0x12
NANDFC_UNLOCK_START_BLK_OFFSET		EQU		0x14
NANDFC_UNLOCK_END_BLK_OFFSET		EQU		0x16
NANDFC_WRITE_PROT_STAUS_OFFSET		EQU		0x18
NANDFC_CONFIG1_OFFSET				EQU		0x1A
NANDFC_CONFIG2_OFFSET				EQU		0x1C

; Register masks
; Configuration masks
NANDFC_BLS_UNLOCK					EQU		0x0002

; ECC status register masks
NANDFC_ECC_ERM_NO_ERR				EQU		0x0000
NANDFC_ECC_ERM_1BIT_ERR				EQU		0x0001
NANDFC_ECC_ERM_UNRECV_ERR			EQU		0x0002
NANDFC_ECC_ERM_RESERVED				EQU		0x0003

; Config1 masks
NANDFC_CONFIG1_SP_EN				EQU		0x0004
NANDFC_CONFIG1_ECC_EN				EQU		0x0008
NANDFC_CONFIG1_INT_MSK				EQU		0x0010
NANDFC_CONFIG1_DMA_REQ				EQU		0x0020

; Config2 masks
NANDFC_CONFIG2_INT					EQU		0x8000
NANDFC_FDO_PAGE_READ				EQU		0x0008
NANDFC_FADD_ADDR_WRITE				EQU		0x0002
NANDFC_FCMD_CMD_WRITE				EQU		0x0001

; NANDFC buffer to use
NAND_BUFFER_IN_USE_ID	 			EQU		0x03
NANDFC_MAIN_BUFFER_IN_USE_ADDR	 	EQU		(NANDFC_BASE + NANDFC_MAIN_RAM_BUF3_OFFSET)
NANDFC_SPARE_BUFFER_IN_USE_ADDR		EQU		(NANDFC_BASE + NANDFC_SPARE_RAM_BUF3_OFFSET)

	ENDIF

	END

⌨️ 快捷键说明

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