#endif /* __ASSEMBLER__ */
+#define IRAM_BASE_ADDR 0x1FFC0000
/*
* Default Memory Layout Definitions
*/
#define SPBA_BASE_ADDR 0x50000000
#define MMC_SDHC1_BASE_ADDR 0x50004000
#define MMC_SDHC2_BASE_ADDR 0x50008000
+#define ESDHC1_REG_BASE MMC_SDHC1_BASE_ADDR
#define UART3_BASE_ADDR 0x5000C000
#define CSPI2_BASE_ADDR 0x50010000
#define SSI2_BASE_ADDR 0x50014000
#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 WEIM_CTRL_CS5 (WEIM_BASE_ADDR + 0x50)
#define M3IF_BASE 0xB8003000
#define PCMCIA_CTL_BASE 0xB8004000
#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
+#define L2_CACHE_CLEAN_LINE_PA_REG 0x7B0
+#define L2_CACHE_CLEAN_LINE_WAY_REG 0x7B8
+#define L2_CACHE_CLEAN_WAY_REG 0x7BC
+#define L2_CACHE_CLEAN_INV_LINE_PA_REG 0x7F0
+#define L2_CACHE_CLEAN_INV_LINE_WAY_REG 0x7F8
+#define L2_CACHE_CLEAN_INV_WAY_REG 0x7FC
/* CCM */
#define CLKCTL_CCMR 0x00
//#define PLL_REF_CLK FREQ_32768HZ
//#define PLL_REF_CLK FREQ_32000HZ
+/* MMC */
+#define ESDHC_REG_CLK 0x0
+#define ESDHC_REG_INT_STATUS 0x4
+#define ESDHC_REG_CLK_RATE 0x8
+#define ESDHC_REG_BLK_LEN 0x18
+#define ESDHC_REG_NOB 0x1C
+#define ESDHC_REG_INT_STATUS_ENABLE 0x24
+#define ESDHC_REG_COMMAND 0x28
+#define ESDHC_REG_COMMAND_TRANS_TYPE 0x2C
+#define ESDHC_REG_COMMAND_DAT_CONT 0xC
+#define ESDHC_REG_RESFIFO 0x34
+#define ESDHC_REG_BUFFER_DATA 0x38
+
+#define ESDHC_CLEAR_INTERRUPT 0xffffffff
+#define ESDHC_INTERRUPT_ENABLE 0x0000c015
+
/* WEIM - CS0 */
#define CSCRU 0x00
#define CSCRL 0x04
#define UPCTL_PARAM_240 (((2-1) << 26) + ((13-1) << 16) + (9 << 10) + (3 << 0))
#define UPCTL_PARAM_240_27 (((2-1) << 26) + ((9 -1) << 16) + (8 << 10) + (8 << 0))
+/* SPCTL PD MFD MFI MFN */
+#define SPCTL_PARAM_399 (((1-1) << 26) + ((52-1) << 16) + (7 << 10) + (35 << 0))
+#define SPCTL_PARAM_399_27 (((1-1) << 26) + ((5-1) << 16) + (7 << 10) + (2 << 0))
+
/* PDR0 */
#define PDR0_208_104_52 0xFF870D48 /* ARM=208MHz, HCLK=104MHz, IPG=52MHz */
#define PDR0_399_66_66 0xFF872B28 /* ARM=399MHz, HCLK=IPG=66.5MHz */
#define NAND_FLASH_CONFIG2_FCMD_EN (1 << 0)
#define FDO_PAGE_SPARE_VAL 0x8
-#define MXC_NAND_BASE_DUMMY 0x00000000
-#define NOR_FLASH_BOOT 0
+#define MXC_MMC_BASE_DUMMY 0x00000000
+
+#define NOR_FLASH_BOOT 0
#define NAND_FLASH_BOOT 0x10000000
-#define SDRAM_NON_FLASH_BOOT 0x20000000
+#define SDRAM_NON_FLASH_BOOT 0x20000000
+#define MMC_BOOT 0x40000000
#define MXCBOOT_FLAG_REG (AVIC_BASE_ADDR + 0x100)
-#define MXCFIS_NOTHING 0x00000000
-#define MXCFIS_NAND 0x10000000
-#define MXCFIS_NOR 0x20000000
-#define MXCFIS_FLAG_REG (AVIC_BASE_ADDR + 0x104)
+
+#define MXCFIS_NOTHING 0x00000000
+#define MXCFIS_NAND 0x10000000
+#define MXCFIS_NOR 0x20000000
+#define MXCFIS_MMC 0x40000000
+#define MXCFIS_FLAG_REG (AVIC_BASE_ADDR + 0x104)
#define IS_BOOTING_FROM_NAND() (readl(MXCBOOT_FLAG_REG) == NAND_FLASH_BOOT)
-#define IS_BOOTING_FROM_NOR() (readl(MXCBOOT_FLAG_REG) == NOR_FLASH_BOOT)
-#define IS_BOOTING_FROM_SDRAM() (readl(MXCBOOT_FLAG_REG) == SDRAM_NON_FLASH_BOOT)
+#define IS_BOOTING_FROM_NOR() (readl(MXCBOOT_FLAG_REG) == NOR_FLASH_BOOT)
+#define IS_BOOTING_FROM_SDRAM() (readl(MXCBOOT_FLAG_REG) == SDRAM_NON_FLASH_BOOT)
+#define IS_BOOTING_FROM_MMC() (readl(MXCBOOT_FLAG_REG) == MMC_BOOT)
#ifndef MXCFLASH_SELECT_NAND
-#define IS_FIS_FROM_NAND() 0
+#define IS_FIS_FROM_NAND() 0
#else
-#define IS_FIS_FROM_NAND() (readl(MXCFIS_FLAG_REG) == MXCFIS_NAND)
+#define IS_FIS_FROM_NAND() (readl(MXCFIS_FLAG_REG) == MXCFIS_NAND)
#endif
#ifndef MXCFLASH_SELECT_NOR
#define IS_FIS_FROM_NOR() 0
#else
-#define IS_FIS_FROM_NOR() (!IS_FIS_FROM_NAND())
+#define IS_FIS_FROM_NOR() (readl(MXCFIS_FLAG_REG) == MXCFIS_NOR)
+#endif
+
+#ifndef MXCFLASH_SELECT_MMC
+#define IS_FIS_FROM_MMC() 0
+#else
+#define IS_FIS_FROM_MMC() (readl(MXCFIS_FLAG_REG) == MXCFIS_MMC)
#endif
#define MXC_ASSERT_NOR_BOOT() writel(MXCFIS_NOR, MXCFIS_FLAG_REG)
-#define MXC_ASSERT_NAND_BOOT() writel(MXCFIS_NAND, MXCFIS_FLAG_REG)
+#define MXC_ASSERT_NAND_BOOT() writel(MXCFIS_NAND, MXCFIS_FLAG_REG)
+#define MXC_ASSERT_MMC_BOOT() writel(MXCFIS_MMC, MXCFIS_FLAG_REG)
/*
* This macro is used to get certain bit field from a number
unsigned int get_peri_clock(enum peri_clocks clk);
enum {
- MXC_NFC_V1,
- MXC_NFC_V2,
+ BOARD_TYPE_UNKNOWN,
+ BOARD_TYPE_ADS,
+ BOARD_TYPE_3STACK,
};
-typedef unsigned int nfc_setup_func_t(unsigned int, unsigned int, unsigned int);
+typedef unsigned int nfc_setup_func_t(unsigned int, unsigned int, unsigned int, unsigned int);
#endif //#if !defined(__ASSEMBLER__)