1463ec1caSVladimir Zapolskiy /* 2463ec1caSVladimir Zapolskiy * Embest/Timll DevKit3250 board support 3463ec1caSVladimir Zapolskiy * 4463ec1caSVladimir Zapolskiy * Copyright (C) 2011 Vladimir Zapolskiy <vz@mleia.com> 5463ec1caSVladimir Zapolskiy * 6*1a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 7463ec1caSVladimir Zapolskiy */ 8463ec1caSVladimir Zapolskiy 9463ec1caSVladimir Zapolskiy #include <common.h> 10463ec1caSVladimir Zapolskiy #include <asm/arch/sys_proto.h> 11463ec1caSVladimir Zapolskiy #include <asm/arch/cpu.h> 12463ec1caSVladimir Zapolskiy #include <asm/arch/emc.h> 13463ec1caSVladimir Zapolskiy 14463ec1caSVladimir Zapolskiy DECLARE_GLOBAL_DATA_PTR; 15463ec1caSVladimir Zapolskiy 16463ec1caSVladimir Zapolskiy static struct emc_regs *emc = (struct emc_regs *)EMC_BASE; 17463ec1caSVladimir Zapolskiy 18463ec1caSVladimir Zapolskiy int board_early_init_f(void) 19463ec1caSVladimir Zapolskiy { 20463ec1caSVladimir Zapolskiy lpc32xx_uart_init(CONFIG_SYS_LPC32XX_UART); 21463ec1caSVladimir Zapolskiy 22463ec1caSVladimir Zapolskiy return 0; 23463ec1caSVladimir Zapolskiy } 24463ec1caSVladimir Zapolskiy 25463ec1caSVladimir Zapolskiy int board_init(void) 26463ec1caSVladimir Zapolskiy { 27463ec1caSVladimir Zapolskiy /* adress of boot parameters */ 28463ec1caSVladimir Zapolskiy gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; 29463ec1caSVladimir Zapolskiy 30463ec1caSVladimir Zapolskiy #ifdef CONFIG_SYS_FLASH_CFI 31463ec1caSVladimir Zapolskiy /* Use 16-bit memory interface for NOR Flash */ 32463ec1caSVladimir Zapolskiy emc->stat[0].config = EMC_STAT_CONFIG_PB | EMC_STAT_CONFIG_16BIT; 33463ec1caSVladimir Zapolskiy 34463ec1caSVladimir Zapolskiy /* Change the NOR timings to optimum value to get maximum bandwidth */ 35463ec1caSVladimir Zapolskiy emc->stat[0].waitwen = EMC_STAT_WAITWEN(1); 36463ec1caSVladimir Zapolskiy emc->stat[0].waitoen = EMC_STAT_WAITOEN(1); 37463ec1caSVladimir Zapolskiy emc->stat[0].waitrd = EMC_STAT_WAITRD(12); 38463ec1caSVladimir Zapolskiy emc->stat[0].waitpage = EMC_STAT_WAITPAGE(12); 39463ec1caSVladimir Zapolskiy emc->stat[0].waitwr = EMC_STAT_WAITWR(5); 40463ec1caSVladimir Zapolskiy emc->stat[0].waitturn = EMC_STAT_WAITTURN(2); 41463ec1caSVladimir Zapolskiy #endif 42463ec1caSVladimir Zapolskiy 43463ec1caSVladimir Zapolskiy return 0; 44463ec1caSVladimir Zapolskiy } 45463ec1caSVladimir Zapolskiy 46463ec1caSVladimir Zapolskiy int dram_init(void) 47463ec1caSVladimir Zapolskiy { 48463ec1caSVladimir Zapolskiy gd->ram_size = get_ram_size((void *)CONFIG_SYS_SDRAM_BASE, 49463ec1caSVladimir Zapolskiy CONFIG_SYS_SDRAM_SIZE); 50463ec1caSVladimir Zapolskiy 51463ec1caSVladimir Zapolskiy return 0; 52463ec1caSVladimir Zapolskiy } 53