1*c1da2a22SNobuhiro Iwamatsu /* 2*c1da2a22SNobuhiro Iwamatsu * Copyright (C) 2007,2008 3*c1da2a22SNobuhiro Iwamatsu * Nobuhiro Iwamatsu <iwamatsu@nigauri.org> 4*c1da2a22SNobuhiro Iwamatsu * 5*c1da2a22SNobuhiro Iwamatsu * See file CREDITS for list of people who contributed to this 6*c1da2a22SNobuhiro Iwamatsu * project. 7*c1da2a22SNobuhiro Iwamatsu * 8*c1da2a22SNobuhiro Iwamatsu * This program is free software; you can redistribute it and/or 9*c1da2a22SNobuhiro Iwamatsu * modify it under the terms of the GNU General Public License as 10*c1da2a22SNobuhiro Iwamatsu * published by the Free Software Foundation; either version 2 of 11*c1da2a22SNobuhiro Iwamatsu * the License, or (at your option) any later version. 12*c1da2a22SNobuhiro Iwamatsu * 13*c1da2a22SNobuhiro Iwamatsu * This program is distributed in the hope that it will be useful, 14*c1da2a22SNobuhiro Iwamatsu * but WITHOUT ANY WARRANTY; without even the implied warranty of 15*c1da2a22SNobuhiro Iwamatsu * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*c1da2a22SNobuhiro Iwamatsu * GNU General Public License for more details. 17*c1da2a22SNobuhiro Iwamatsu * 18*c1da2a22SNobuhiro Iwamatsu * You should have received a copy of the GNU General Public License 19*c1da2a22SNobuhiro Iwamatsu * along with this program; if not, write to the Free Software 20*c1da2a22SNobuhiro Iwamatsu * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21*c1da2a22SNobuhiro Iwamatsu * MA 02111-1307 USA 22*c1da2a22SNobuhiro Iwamatsu */ 23*c1da2a22SNobuhiro Iwamatsu 24*c1da2a22SNobuhiro Iwamatsu #include <common.h> 25*c1da2a22SNobuhiro Iwamatsu #include <ide.h> 26*c1da2a22SNobuhiro Iwamatsu #include <netdev.h> 27*c1da2a22SNobuhiro Iwamatsu #include <asm/processor.h> 28*c1da2a22SNobuhiro Iwamatsu #include <asm/io.h> 29*c1da2a22SNobuhiro Iwamatsu #include <asm/pci.h> 30*c1da2a22SNobuhiro Iwamatsu 31*c1da2a22SNobuhiro Iwamatsu int checkboard(void) 32*c1da2a22SNobuhiro Iwamatsu { 33*c1da2a22SNobuhiro Iwamatsu puts("BOARD: Renesas Solutions R2D Plus\n"); 34*c1da2a22SNobuhiro Iwamatsu return 0; 35*c1da2a22SNobuhiro Iwamatsu } 36*c1da2a22SNobuhiro Iwamatsu 37*c1da2a22SNobuhiro Iwamatsu int board_init(void) 38*c1da2a22SNobuhiro Iwamatsu { 39*c1da2a22SNobuhiro Iwamatsu return 0; 40*c1da2a22SNobuhiro Iwamatsu } 41*c1da2a22SNobuhiro Iwamatsu 42*c1da2a22SNobuhiro Iwamatsu int dram_init(void) 43*c1da2a22SNobuhiro Iwamatsu { 44*c1da2a22SNobuhiro Iwamatsu DECLARE_GLOBAL_DATA_PTR; 45*c1da2a22SNobuhiro Iwamatsu 46*c1da2a22SNobuhiro Iwamatsu gd->bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; 47*c1da2a22SNobuhiro Iwamatsu gd->bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE; 48*c1da2a22SNobuhiro Iwamatsu printf("DRAM: %dMB\n", CONFIG_SYS_SDRAM_SIZE / (1024 * 1024)); 49*c1da2a22SNobuhiro Iwamatsu return 0; 50*c1da2a22SNobuhiro Iwamatsu } 51*c1da2a22SNobuhiro Iwamatsu 52*c1da2a22SNobuhiro Iwamatsu int board_late_init(void) 53*c1da2a22SNobuhiro Iwamatsu { 54*c1da2a22SNobuhiro Iwamatsu return 0; 55*c1da2a22SNobuhiro Iwamatsu } 56*c1da2a22SNobuhiro Iwamatsu 57*c1da2a22SNobuhiro Iwamatsu #define FPGA_BASE 0xA4000000 58*c1da2a22SNobuhiro Iwamatsu #define FPGA_CFCTL (FPGA_BASE + 0x04) 59*c1da2a22SNobuhiro Iwamatsu #define CFCTL_EN (0x432) 60*c1da2a22SNobuhiro Iwamatsu #define FPGA_CFPOW (FPGA_BASE + 0x06) 61*c1da2a22SNobuhiro Iwamatsu #define CFPOW_ON (0x02) 62*c1da2a22SNobuhiro Iwamatsu #define FPGA_CFCDINTCLR (FPGA_BASE + 0x2A) 63*c1da2a22SNobuhiro Iwamatsu #define CFCDINTCLR_EN (0x01) 64*c1da2a22SNobuhiro Iwamatsu 65*c1da2a22SNobuhiro Iwamatsu void ide_set_reset(int idereset) 66*c1da2a22SNobuhiro Iwamatsu { 67*c1da2a22SNobuhiro Iwamatsu /* if reset = 1 IDE reset will be asserted */ 68*c1da2a22SNobuhiro Iwamatsu if (idereset) { 69*c1da2a22SNobuhiro Iwamatsu outw(CFCTL_EN, FPGA_CFCTL); /* CF enable */ 70*c1da2a22SNobuhiro Iwamatsu outw(inw(FPGA_CFPOW)|CFPOW_ON, FPGA_CFPOW); /* Power OM */ 71*c1da2a22SNobuhiro Iwamatsu outw(CFCDINTCLR_EN, FPGA_CFCDINTCLR); /* Int clear */ 72*c1da2a22SNobuhiro Iwamatsu } 73*c1da2a22SNobuhiro Iwamatsu } 74*c1da2a22SNobuhiro Iwamatsu 75*c1da2a22SNobuhiro Iwamatsu static struct pci_controller hose; 76*c1da2a22SNobuhiro Iwamatsu void pci_init_board(void) 77*c1da2a22SNobuhiro Iwamatsu { 78*c1da2a22SNobuhiro Iwamatsu pci_sh7751_init(&hose); 79*c1da2a22SNobuhiro Iwamatsu } 80*c1da2a22SNobuhiro Iwamatsu 81*c1da2a22SNobuhiro Iwamatsu int board_eth_init(bd_t *bis) 82*c1da2a22SNobuhiro Iwamatsu { 83*c1da2a22SNobuhiro Iwamatsu return pci_eth_init(bis); 84*c1da2a22SNobuhiro Iwamatsu } 85