1 /* 2 * Copyright (C) 2011 Andes Technology Corporation 3 * Shawn Lin, Andes Technology Corporation <nobuhiro@andestech.com> 4 * Macpaul Lin, Andes Technology Corporation <macpaul@andestech.com> 5 * 6 * See file CREDITS for list of people who contributed to this 7 * project. 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program; if not, write to the Free Software 21 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 22 */ 23 24 #include <common.h> 25 #include <netdev.h> 26 #include <asm/io.h> 27 28 #include <faraday/ftsdc010.h> 29 #include <faraday/ftsmc020.h> 30 31 DECLARE_GLOBAL_DATA_PTR; 32 33 /* 34 * Miscellaneous platform dependent initializations 35 */ 36 37 int board_init(void) 38 { 39 /* 40 * refer to BOOT_PARAMETER_PA_BASE within 41 * "linux/arch/nds32/include/asm/misc_spec.h" 42 */ 43 gd->bd->bi_arch_number = MACH_TYPE_ADPAG101P; 44 gd->bd->bi_boot_params = PHYS_SDRAM_0 + 0x400; 45 46 ftsmc020_init(); /* initialize Flash */ 47 return 0; 48 } 49 50 int dram_init(void) 51 { 52 unsigned long sdram_base = PHYS_SDRAM_0; 53 unsigned long expected_size = PHYS_SDRAM_0_SIZE; 54 unsigned long actual_size; 55 56 actual_size = get_ram_size((void *)sdram_base, expected_size); 57 58 gd->ram_size = actual_size; 59 60 if (expected_size != actual_size) { 61 printf("Warning: Only %lu of %lu MiB SDRAM is working\n", 62 actual_size >> 20, expected_size >> 20); 63 } 64 65 return 0; 66 } 67 68 int board_eth_init(bd_t *bd) 69 { 70 return ftmac100_initialize(bd); 71 } 72 73 ulong board_flash_get_legacy(ulong base, int banknum, flash_info_t *info) 74 { 75 if (banknum == 0) { /* non-CFI boot flash */ 76 info->portwidth = FLASH_CFI_8BIT; 77 info->chipwidth = FLASH_CFI_BY8; 78 info->interface = FLASH_CFI_X8; 79 return 1; 80 } else { 81 return 0; 82 } 83 } 84 85 int board_mmc_init(bd_t *bis) 86 { 87 ftsdc010_mmc_init(0); 88 return 0; 89 } 90