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

📄 mxc_setup_mxc91331.h

📁 i.mx31 3DS平台Nandboot引导程序源码
💻 H
📖 第 1 页 / 共 3 页
字号:
#ifndef MXC_SETUP_MXC91331_H#define MXC_SETUP_MXC91331_H/* * * File: mxc_setup_mxc91331.h * *      Platform specific code for MXC91331 platform. *      This code is derived from eCos files hal_platform_setup.h *///==========================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.//// eCos is free software; you can redistribute it and/or modify it under// the terms of the GNU General Public License as published by the Free// Software Foundation; either version 2 or (at your option) any later version.//// eCos is distributed in the hope that it will be useful, but WITHOUT ANY// WARRANTY; without even the implied warranty of MERCHANTABILITY or// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License// for more details.//// You should have received a copy of the GNU General Public License along// with eCos; if not, write to the Free Software Foundation, Inc.,// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.//// As a special exception, if other files instantiate templates or use macros// or inline functions from this file, or you compile this file and link it// with other works to produce a work based on this file, this file does not// by itself cause the resulting work to be covered by the GNU General Public// License. However the source code for this file must still be made available// in accordance with section (3) of the GNU General Public License.//// This exception does not invalidate any other reasons why a work based on// this file might be covered by the GNU General Public License.//// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.// at http://sources.redhat.com/ecos/ecos-license/// -------------------------------------------//####ECOSGPLCOPYRIGHTEND####//========================================================================*/#ifdef __ASSEMBLER__#define REG8_VAL(a)          (a)#define REG16_VAL(a)         (a)#define REG32_VAL(a)         (a)#define REG8_PTR(a)          (a)#define REG16_PTR(a)         (a)#define REG32_PTR(a)         (a)#else /* __ASSEMBLER__ */#define REG8_VAL(a)          ((unsigned char)(a))#define REG16_VAL(a)         ((unsigned short)(a))#define REG32_VAL(a)         ((unsigned int)(a))#define REG8_PTR(a)          ((volatile unsigned char *)(a))#define REG16_PTR(a)         ((volatile unsigned short *)(a))#define REG32_PTR(a)         ((volatile unsigned int *)(a))#define readb(a)             (*(volatile unsigned char *)(a))#define readw(a)             (*(volatile unsigned short *)(a))#define readl(a)             (*(volatile unsigned int *)(a))#define writeb(v,a)          (*(volatile unsigned char *)(a) = (v))#define writew(v,a)          (*(volatile unsigned short *)(a) = (v))#define writel(v,a)          (*(volatile unsigned int *)(a) = (v))#endif /* __ASSEMBLER__ *//* * Default Memory Layout Definitions */#define         L2CC_BASE_ADDR          0x30000000/* * AIPS 1 */#define         AIPS1_BASE_ADDR         0x43F00000#define         AIPS1_CTRL_BASE_ADDR    AIPS1_BASE_ADDR#define         MAX_BASE_ADDR           0x43F04000#define         EVTMON_BASE_ADDR        0x43F08000#define         CLKCTL_BASE_ADDR        0x43F0C000  #define         ETB_SLOT4_BASE_ADDR     0x43F10000#define         ETB_SLOT5_BASE_ADDR     0x43F14000#define         ECT_CTIO_BASE_ADDR      0x43F18000#define         I2C_BASE_ADDR           0x43F80000#define         MU_BASE_ADDR            0x43F84000#define         WDOG2_BASE_ADDR         0x43F88000#define         UART1_BASE_ADDR         0x43F90000#define         UART2_BASE_ADDR         0x43F94000#define         OWIRE_BASE_ADDR         0x43F9C000#define         SSI1_BASE_ADDR          0x43FA0000#define         CSPI1_BASE_ADDR         0x43FA4000#define         KPP_BASE_ADDR           0x43FA8000/* * SPBA */#define         SPBA_BASE_ADDR          0x50000000#define         SIM2_BASE_ADDR          0x50000000#define         MMC_SDHC1_BASE_ADDR     0x50004000#define         MMC_SDHC2_BASE_ADDR     0x50008000#define         UART3_BASE_ADDR         0x5000C000#define         CSPI2_BASE_ADDR         0x50010000#define         SSI2_BASE_ADDR          0x50014000#define         SIM1_BASE_ADDR          0x50018000#define         IIM_BASE_ADDR           0x5001C000#define         USBOTG_BASE_ADDR        0x50020000#define         HAC_BASE_ADDR           0x50024000#define         UART4_BASE_ADDR         0x50028000#define         GPIO2_BASE_ADDR         0x5002C000#define         IOMUXC_BASE_ADDR        0x50030000#define         GEMK_BASE_ADDR          0x50034000#define         SDMA_CTI_BASE_ADDR      0x50038000#define         SPBA_CTRL_BASE_ADDR     0x5003C000/* * AIPS 2 */#define         AIPS2_BASE_ADDR         0x53F00000#define         AIPS2_CTRL_BASE_ADDR    AIPS2_BASE_ADDR#define         CRM_MCU_BASE_ADDR       0x53F80000#define         ECT_MCU_CTI_BASE_ADDR   0x53F84000#define         EDIO_BASE_ADDR          0x53F88000#define         FIRI_BASE_ADDR          0x53F8C000#define         GPT_BASE_ADDR           0x53F90000#define         EPIT1_BASE_ADDR         0x53F94000#define         EPIT2_BASE_ADDR         0x53F98000#define         SCC_BASE                0x53FAC000#define         RNG_BASE_ADDR           0x53FB0000#define         RTR_BASE_ADDR           0x53FB4000#define         IPU_CTRL_BASE_ADDR      0x53FC0000#define         AUDMUX_BASE             0x53FC4000#define         MPEG4_ENC_BASE          0x53FC8000#define         GPIO1_BASE_ADDR         0x53FCC000#define         SDMA_BASE_ADDR          0x53FD4000#define         RTC_BASE_ADDR           0x53FD8000#define         WDOG1_BASE_ADDR         0x53FDC000#define         PWM_BASE_ADDR           0x53FE0000#define         RTIC_BASE_ADDR          0x53FEC000/* * ROMPATCH and AVIC */#define         ROMPATCH_BASE_ADDR      0x60000000#define         AVIC_BASE_ADDR          0x68000000/* * NAND, SDRAM, WEIM, M3IF, EMI controllers */#define         EXT_MEM_CTRL_BASE       0xB8000000#define         NFC_BASE                EXT_MEM_CTRL_BASE#define         ESDCTL_BASE             0xB8001000#define         WEIM_BASE_ADDR          0xB8002000#define         WEIM_CTRL_CS0           WEIM_BASE_ADDR#define         WEIM_CTRL_CS1           (WEIM_BASE_ADDR + 0x10)#define         WEIM_CTRL_CS2           (WEIM_BASE_ADDR + 0x20)#define         WEIM_CTRL_CS3           (WEIM_BASE_ADDR + 0x30)#define         WEIM_CTRL_CS4           (WEIM_BASE_ADDR + 0x40)#define         M3IF_BASE               0xB8003000#define         PCMCIA_CTL_BASE         0xB8004000/* * Memory regions and CS */#define         IPU_MEM_BASE_ADDR       0x70000000#define         CSD0_BASE_ADDR          0x80000000#define         CSD1_BASE_ADDR          0x90000000#define         CS0_BASE_ADDR           0xA0000000#define         CS1_BASE_ADDR           0xA8000000#define         CS2_BASE_ADDR           0xB0000000#define         CS3_BASE_ADDR           0xB2000000#define         CS4_BASE_ADDR           0xB4000000#define         CS4_BASE_PSRAM          0xB5000000#define         CS5_BASE_ADDR           0xB6000000#define         PCMCIA_MEM_BASE_ADDR    0xC0000000#define         INTERNAL_ROM_VA         0xF0000000// SDRAM#define         RAM_BANK0_BASE        SDRAM_BASE_ADDR/* * IRQ Controller Register Definitions. */#define         AVIC_NIMASK                 REG32_PTR(AVIC_BASE_ADDR + (0x04))#define         AVIC_INTTYPEH               REG32_PTR(AVIC_BASE_ADDR + (0x18))#define         AVIC_INTTYPEL               REG32_PTR(AVIC_BASE_ADDR + (0x1C))/* L210 */#define         L2CC_BASE_ADDR              0x30000000#define         L2_CACHE_LINE_SIZE          32#define         L2_CACHE_CTL_REG            0x100#define         L2_CACHE_AUX_CTL_REG        0x104#define         L2_CACHE_SYNC_REG           0x730#define         L2_CACHE_INV_LINE_REG       0x770#define         L2_CACHE_INV_WAY_REG        0x77C#define         L2_CACHE_CLEAN_LINE_REG     0x7B0#define         L2_CACHE_CLEAN_INV_LINE_REG 0x7F0/* SPBA */#define         SPBA_IOMUX                  0x30#define         SPBA_GPIO_SDMA              0x2C/* CCM */#define         CLKCTL_MCR                      0x00#define         CLKCTL_PDR0                     0x04#define         CLKCTL_PDR1                     0x08#define         CLKCTL_RCSR                     0x0C#define         CLKCTL_MPCTL                    0x10#define         CLKCTL_UPCTL                    0x14#define         CLKCTL_COSR                     0x18#define         PLL_REF_CLK                     26000000/* WEIM - CS0 */#define         CSCRU                           0x00#define         CSCRL                           0x04#define         CSCRA                           0x08/* ESDCTL */#define         ESDCTL_ESDCTL0                  0x00#define         ESDCTL_ESDCFG0                  0x04#define         ESDCTL_ESDCTL1                  0x08#define         ESDCTL_ESDCFG1                  0x0C#define         ESDCTL_ESDMISC                  0x10/* * UART Control Register 0 Bit Fields. */#define         EUartUCR1_ADEN      (1 << 15)   // Auto detect interrupt#define         EUartUCR1_ADBR      (1 << 14)   // Auto detect baud rate#define         EUartUCR1_TRDYEN    (1 << 13)   // Transmitter ready interrupt enable#define         EUartUCR1_IDEN      (1 << 12)   // Idle condition interrupt#define         EUartUCR1_RRDYEN    (1 << 9)    // Recv ready interrupt enable#define         EUartUCR1_RDMAEN    (1 << 8)    // Recv ready DMA enable#define         EUartUCR1_IREN      (1 << 7)    // Infrared interface enable#define         EUartUCR1_TXMPTYEN  (1 << 6)    // Transimitter empty interrupt enable#define         EUartUCR1_RTSDEN    (1 << 5)    // RTS delta interrupt enable#define         EUartUCR1_SNDBRK    (1 << 4)    // Send break#define         EUartUCR1_TDMAEN    (1 << 3)    // Transmitter ready DMA enable#define         EUartUCR1_DOZE      (1 << 1)    // Doze#define         EUartUCR1_UARTEN    (1 << 0)    // UART enabled#define         EUartUCR2_ESCI      (1 << 15)   // Escape seq interrupt enable#define         EUartUCR2_IRTS      (1 << 14)   // Ignore RTS pin#define         EUartUCR2_CTSC      (1 << 13)   // CTS pin control#define         EUartUCR2_CTS       (1 << 12)   // Clear to send#define         EUartUCR2_ESCEN     (1 << 11)   // Escape enable#define         EUartUCR2_PREN      (1 << 8)    // Parity enable#define         EUartUCR2_PROE      (1 << 7)    // Parity odd/even#define         EUartUCR2_STPB      (1 << 6)    // Stop#define         EUartUCR2_WS        (1 << 5)    // Word size#define         EUartUCR2_RTSEN     (1 << 4)    // Request to send interrupt enable#define         EUartUCR2_ATEN      (1 << 3)    // Aging timer enable#define         EUartUCR2_TXEN      (1 << 2)    // Transmitter enabled#define         EUartUCR2_RXEN      (1 << 1)    // Receiver enabled#define         EUartUCR2_SRST_     (1 << 0)    // SW reset#define         EUartUCR3_PARERREN  (1 << 12)   // Parity enable#define         EUartUCR3_FRAERREN  (1 << 11)   // Frame error interrupt enable#define         EUartUCR3_ADNIMP    (1 << 7)    // Autobaud detection not improved#define         EUartUCR3_RXDSEN    (1 << 6)    // Receive status interrupt enable#define         EUartUCR3_AIRINTEN  (1 << 5)    // Async IR wake interrupt enable#define         EUartUCR3_AWAKEN    (1 << 4)    // Async wake interrupt enable#define         EUartUCR3_RXDMUXSEL (1 << 2)    // RXD muxed input selected#define         EUartUCR3_INVT      (1 << 1)    // Inverted Infrared transmission#define         EUartUCR3_ACIEN     (1 << 0)    // Autobaud counter interrupt enable#define         EUartUCR4_CTSTL_32  (32 << 10)  // CTS trigger level (32 chars)#define         EUartUCR4_INVR      (1 << 9)    // Inverted infrared reception#define         EUartUCR4_ENIRI     (1 << 8)    // Serial infrared interrupt enable#define         EUartUCR4_WKEN      (1 << 7)    // Wake interrupt enable#define         EUartUCR4_IRSC      (1 << 5)    // IR special case#define         EUartUCR4_LPBYP     (1 << 4)    // Low power bypass#define         EUartUCR4_TCEN      (1 << 3)    // Transmit complete interrupt enable#define         EUartUCR4_BKEN      (1 << 2)    // Break condition interrupt enable#define         EUartUCR4_OREN      (1 << 1)    // Receiver overrun interrupt enable#define         EUartUCR4_DREN      (1 << 0)    // Recv data ready interrupt enable#define         EUartUFCR_RXTL_SHF  0           // Receiver trigger level shift#define         EUartUFCR_RFDIV_1   (5 << 7)    // Reference freq divider (div 1)#define         EUartUFCR_RFDIV_2   (4 << 7)    // Reference freq divider (div 2)#define         EUartUFCR_RFDIV_3   (3 << 7)            // Reference freq divider (div 3)#define         EUartUFCR_RFDIV_4   (2 << 7)            // Reference freq divider (div 4)#define         EUartUFCR_RFDIV_5   (1 << 7)            // Reference freq divider (div 5)#define         EUartUFCR_RFDIV_6   (0 << 7)            // Reference freq divider (div 6)#define         EUartUFCR_RFDIV_7   (6 << 7)            // Reference freq divider (div 7)#define         EUartUFCR_TXTL_SHF  10          // Transmitter trigger level shift#define         EUartUSR1_PARITYERR (1 << 15)   // Parity error interrupt flag#define         EUartUSR1_RTSS      (1 << 14)   // RTS pin status#define         EUartUSR1_TRDY      (1 << 13)   // Transmitter ready interrupt/dma flag#define         EUartUSR1_RTSD      (1 << 12)   // RTS delta#define         EUartUSR1_ESCF      (1 << 11)   // Escape seq interrupt flag#define         EUartUSR1_FRAMERR   (1 << 10)   // Frame error interrupt flag#define         EUartUSR1_RRDY      (1 << 9)    // Receiver ready interrupt/dma flag#define         EUartUSR1_AGTIM     (1 << 8)    // Aging timeout interrupt status#define         EUartUSR1_RXDS      (1 << 6)    // Receiver idle interrupt flag#define         EUartUSR1_AIRINT    (1 << 5)    // Async IR wake interrupt flag#define         EUartUSR1_AWAKE     (1 << 4)    // Aysnc wake interrupt flag#define         EUartUSR2_ADET      (1 << 15)   // Auto baud rate detect complete#define         EUartUSR2_TXFE      (1 << 14)   // Transmit buffer FIFO empty#define         EUartUSR2_IDLE      (1 << 12)   // Idle condition#define         EUartUSR2_ACST      (1 << 11)   // Autobaud counter stopped#define         EUartUSR2_IRINT     (1 << 8)    // Serial infrared interrupt flag#define         EUartUSR2_WAKE      (1 << 7)    // Wake#define         EUartUSR2_RTSF      (1 << 4)    // RTS edge interrupt flag#define         EUartUSR2_TXDC      (1 << 3)    // Transmitter complete

⌨️ 快捷键说明

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