1 /* 2 * Copyright (C) 2008 Nobuhiro Iwamatsu 3 * Copyright (C) 2008 Renesas Solutions Corp. 4 * 5 * u-boot/board/rsk7203/rsk7203.c 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as 9 * published by the Free Software Foundation; either version 2 of 10 * the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 20 * MA 02111-1307 USA 21 */ 22 23 #include <common.h> 24 #include <asm/io.h> 25 #include <asm/processor.h> 26 27 int checkboard(void) 28 { 29 puts("BOARD: Renesas Technology RSK7203\n"); 30 return 0; 31 } 32 33 int board_init(void) 34 { 35 return 0; 36 } 37 38 int dram_init(void) 39 { 40 DECLARE_GLOBAL_DATA_PTR; 41 42 gd->bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; 43 gd->bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE; 44 printf("DRAM: %dMB\n", CONFIG_SYS_SDRAM_SIZE / (1024 * 1024)); 45 return 0; 46 } 47 48 void led_set_state(unsigned short value) 49 { 50 } 51 52 /* 53 * The RSK board has the SMSC9118 wired up 'incorrectly'. 54 * Byte-swapping is necessary, and so poor performance is inevitable. 55 * This problem cannot evade by the swap function of CHIP, this can 56 * evade by software Byte-swapping. 57 * And this has problem by FIFO access only. pkt_data_pull/pkt_data_push 58 * functions necessary to solve this problem. 59 */ 60 u32 pkt_data_pull(u32 addr) 61 { 62 volatile u16 *addr_16 = (u16 *)addr; 63 return (u32)((swab16(*addr_16) << 16) & 0xFFFF0000)\ 64 | swab16(*(addr_16 + 1)); 65 } 66 67 void pkt_data_push(u32 addr, u32 val) 68 { 69 *(volatile u16 *)(addr + 2) = swab16((u16)val); 70 *(volatile u16 *)(addr) = swab16((u16)(val >> 16)); 71 } 72