From patchwork Wed Mar 2 07:40:20 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 85042 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 23863B70A3 for ; Wed, 2 Mar 2011 19:01:33 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 9EE5B28102; Wed, 2 Mar 2011 09:01:29 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pY3lcclo9eIf; Wed, 2 Mar 2011 09:01:29 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 68FD028129; Wed, 2 Mar 2011 09:01:25 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 96A612810F for ; Wed, 2 Mar 2011 09:01:22 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c2RpC-NFaGn3 for ; Wed, 2 Mar 2011 09:01:21 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail1.asahi-net.or.jp (mail1.asahi-net.or.jp [202.224.39.197]) by theia.denx.de (Postfix) with ESMTP id E6117280F8 for ; Wed, 2 Mar 2011 09:01:19 +0100 (CET) Received: from sk22g2 (y081184.ppp.asahi-net.or.jp [118.243.81.184]) by mail1.asahi-net.or.jp (Postfix) with ESMTP id 87FC6DBA7C for ; Wed, 2 Mar 2011 16:41:06 +0900 (JST) Received: from 10A9073.labs.sios.com.ath.cx (unknown [192.168.16.128]) by sk22g2 (Postfix) with ESMTP id B35584969 for ; Wed, 2 Mar 2011 16:41:05 +0900 (JST) Date: Wed, 02 Mar 2011 16:40:20 +0900 Message-ID: <87sjv69di3.wl%ysato@users.sourceforge.jp> From: Yoshinori Sato User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?ISO-2022-JP-2?B?R29qGyQoRCtXGyhC?=) APEL/10.8 Emacs/23.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) To: u-boot@lists.denx.de MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Subject: [U-Boot] [PATCH 5/5] Add target edosk2674 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.9 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de This part EDOSK2674 support more infomation is http://www.renesas.eu/products/tools/introductory_evaluation_tools/evaluation_development_os_kits/edosk2674r/edosk2674r_software_tools_root.jsp Signed-off-by: Yoshinori Sato --- board/edosk2674/Makefile | 48 ++++++++++++++++++ board/edosk2674/config.mk | 25 +++++++++ board/edosk2674/edosk2674.c | 63 +++++++++++++++++++++++ board/edosk2674/lowlevel_init.S | 84 +++++++++++++++++++++++++++++++ board/edosk2674/u-boot.lds | 84 +++++++++++++++++++++++++++++++ boards.cfg | 1 + drivers/net/lan91c96.h | 21 ++++++++ include/configs/edosk2674.h | 104 +++++++++++++++++++++++++++++++++++++++ 8 files changed, 430 insertions(+), 0 deletions(-) create mode 100644 board/edosk2674/Makefile create mode 100644 board/edosk2674/config.mk create mode 100644 board/edosk2674/edosk2674.c create mode 100644 board/edosk2674/lowlevel_init.S create mode 100644 board/edosk2674/u-boot.lds create mode 100644 include/configs/edosk2674.h diff --git a/board/edosk2674/Makefile b/board/edosk2674/Makefile new file mode 100644 index 0000000..5f74665 --- /dev/null +++ b/board/edosk2674/Makefile @@ -0,0 +1,48 @@ +# +# Copyright (C) 2010 Yoshinori Sato +# +# u-boot/board/edosk2674/Makefile +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA + +#include $(TOPDIR)/config.mk + +LIB = lib$(BOARD).o + +OBJS := edosk2674.o +SOBJS := lowlevel_init.o + +LIB := $(addprefix $(obj),$(LIB)) +OBJS := $(addprefix $(obj),$(OBJS)) +SOBJS := $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(obj).depend $(OBJS) $(SOBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS) + +clean: + rm -f $(SOBJS) $(OBJS) + +distclean: clean + rm -f $(LIB) core *.bak .depend + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +######################################################################### diff --git a/board/edosk2674/config.mk b/board/edosk2674/config.mk new file mode 100644 index 0000000..966f893 --- /dev/null +++ b/board/edosk2674/config.mk @@ -0,0 +1,25 @@ +# +# Copyright 2010 Yoshinori Sato +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA + +# +# TEXT_BASE refers to image _after_ relocation. +# +# NOTE: Must match value used in u-boot.lds (in this directory). +# + +TEXT_BASE = 0xBC0000 diff --git a/board/edosk2674/edosk2674.c b/board/edosk2674/edosk2674.c new file mode 100644 index 0000000..1e8ab00 --- /dev/null +++ b/board/edosk2674/edosk2674.c @@ -0,0 +1,63 @@ +/* + * Copyright 2010 (C) Yoshinori Sato + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include + +int checkboard(void) +{ + puts("BOARD: Renesas EDOSK2674R\n"); + return 0; +} + +int board_init(void) +{ + /* timer and SCI enable */ + __raw_writeb(__raw_readb(0xffff41) & 0xf0, 0xffff41); + return 0; +} + +int dram_init(void) +{ + DECLARE_GLOBAL_DATA_PTR; + gd->bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; + gd->bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE; + + printf("SDRAM: %dMB\n", CONFIG_SYS_SDRAM_SIZE / (1024 * 1024)); + return 0; +} + +void led_set_state(unsigned short value) +{ +} + +#ifdef CONFIG_CMD_NET +int board_eth_init(bd_t *bis) +{ + int rc = 0; +#ifdef CONFIG_LAN91C96 + rc = lan91c96_initialize(0, CONFIG_LAN91C96_BASE); +#endif + return rc; +} +#endif + diff --git a/board/edosk2674/lowlevel_init.S b/board/edosk2674/lowlevel_init.S new file mode 100644 index 0000000..21c4a42 --- /dev/null +++ b/board/edosk2674/lowlevel_init.S @@ -0,0 +1,84 @@ +/* + * Copyright 2010 Yoshinori Sato + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ +#include + + .h8300s + .global _lowlevel_init + + .text + .align 2 + +/* +This function call to before relocate +So not refer to absolute address +*/ +_lowlevel_init: + bsr 1f +1: mov.l @sp+,er4 + mov.l #init_table,er5 + sub.l #1b,er5 + add.l er5,er4 + mov.w #0xffff,e5 +2: mov.w @er4+,r5 + beq 3f + mov.w @er4+,r0 + mov.b r0l,@er5 + bra 2b +3: + sub.w r0,r0 + mov.w r0,@0xfed2:16 + mov.w #0x188,r0 + mov.w r0,@0xfed4:16 + mov.w #0x85b4,r0 + mov.w r0,@0xfed0:16 + mov.b #0,r1l + mov.b r1l,@0x400040 + mov.w #0x84b4,r0 + mov.w r0,@0xfed0:16 + rts + + .align 2 +init_table: + .word 0xfec1,0x00fb + .word 0xfec6,0x0000 + .word 0xfec0,0x0080 + .word 0xfec2,0x0027 + .word 0xfec3,0x0077 + .word 0xfec4,0x0071 + .word 0xfec5,0x0022 + .word 0xfec8,0x0080 + .word 0xfec9,0x0080 + .word 0xfeca,0x00a0 + .word 0xfecb,0x00a0 + .word 0xfe22,0x003a + .word 0xfe3c,0x0006 + .word 0xfe29,0x00ff + .word 0xfe2e,0x00fe + .word 0xfe2f,0x000f + .word 0xff74,0x000f + .word 0xfe32,0x00ff + .word 0xfe34,0x000d + .word 0xfe31,0x0028 + .word 0xfe16,0x00ff + .word 0xfe17,0x00ff + .word 0xfe1c,0x0055 + .word 0xfe1d,0x0055 + .word 0 + + .end diff --git a/board/edosk2674/u-boot.lds b/board/edosk2674/u-boot.lds new file mode 100644 index 0000000..7ed1ded --- /dev/null +++ b/board/edosk2674/u-boot.lds @@ -0,0 +1,84 @@ +/* + * (C) Copyright 2000, 2001 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include + +OUTPUT_ARCH(h8300s) +ENTRY(_start) + +SECTIONS +{ + . = CONFIG_SYS_TEXT_BASE - 0x200; + .vector : + { + *(.vector) + } + + PROVIDE (__start = .); + PROVIDE (__ftext = .); + + .text : + { + arch/h8300/cpu/h8300s/start.o (.text) + . = ALIGN(4); + *(.text) + . = ALIGN(4); + } + PROVIDE (__ecode = .); + .rodata : + { + *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) + . = ALIGN(4); + } + PROVIDE (__etext = .); + + PROVIDE (___u_boot_cmd_start = .); + .u_boot_cmd : + { + *(.u_boot_cmd) + . = ALIGN(4); + } + PROVIDE (___u_boot_cmd_end = .); + + .data : + { + PROVIDE (__ram_data = .); + + *(.data) + . = ALIGN(4); + } + PROVIDE (__edata = .); + + PROVIDE (_bss_start = .); + PROVIDE (___bss_start = .); + .bss : + { + *(.bss) + . = ALIGN(4); + } + PROVIDE (_bss_end = .); + + PROVIDE (__end = .); + PROVIDE (__ram_vec = 0xffbe00); + PROVIDE (__init_stack = 0xffc000); +} diff --git a/boards.cfg b/boards.cfg index 45c3102..f64c88e 100644 --- a/boards.cfg +++ b/boards.cfg @@ -202,6 +202,7 @@ ibf-dsp561 blackfin blackfin ip04 blackfin blackfin tcm-bf518 blackfin blackfin tcm-bf537 blackfin blackfin +edosk2674 h8300 h8300s edosk2674 - - eNET i386 i386 eNET - sc520 eNET:SYS_TEXT_BASE=0x38040000 eNET_SRAM i386 i386 eNET - sc520 eNET:SYS_TEXT_BASE=0x19000000 idmr m68k mcf52x2 diff --git a/drivers/net/lan91c96.h b/drivers/net/lan91c96.h index 6fbb0e3..ea2a7ef 100644 --- a/drivers/net/lan91c96.h +++ b/drivers/net/lan91c96.h @@ -146,6 +146,27 @@ typedef unsigned long int dword; }; \ }) +#elif defined(CONFIG_EDOSK2674) +/* 8bit bus */ +#define SMC_inb(edev, r) (*(volatile byte *)((edev)->iobase+(r))) +#define SMC_outb(edev, d, r) (*(volatile byte *)((edev)->iobase+(r)) = d) +#define SMC_inw(edev, r) (*(volatile byte *)((edev)->iobase+(r)) | *(volatile byte *)((edev)->iobase+(r)+1) << 8) +#define SMC_outw(edev, d, r) ({ *(volatile byte *)((edev)->iobase+(r)) = (d) & 0xff; \ + *(volatile byte *)((edev)->iobase+(r)+1) = (d) >> 8; }) +#define SMC_insw(edev, r, b, l) ({ int __i; \ + char *__b = (char *)b; \ + for (__i = 0; __i < l; __i++) { \ + *__b++ = SMC_inb(edev, r); \ + *__b++ = SMC_inb(edev, r+1); \ + } \ + }) +#define SMC_outsw(edev, r, b, l) ({ int __i; \ + char *__b = (char *)b; \ + for (__i = 0; __i < l; __i++) { \ + SMC_outb(edev, *__b, r); __b++; \ + SMC_outb(edev, *__b, r+1); __b++; \ + } \ + }) #else /* if not CONFIG_PXA250 */ /* diff --git a/include/configs/edosk2674.h b/include/configs/edosk2674.h new file mode 100644 index 0000000..786592e --- /dev/null +++ b/include/configs/edosk2674.h @@ -0,0 +1,104 @@ +/* + * Configuation settings for the Renesas EDOSK2674R + * + * Copyright (C) 2010 Yoshinori Sato + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __EDOSK2674_H +#define __EDOSK2674_H + +#undef DEBUG +#define CONFIG_H8300 1 +#define CONFIG_H8300S 1 +#define CONFIG_CPU_H8S2678 1 +#define CONFIG_EDOSK2674 1 + +#include +#undef CONFIG_CMD_FPGA +#undef CONFIG_CMD_NFS +#undef CONFIG_CMD_CACHE +#define CONFIG_CMD_DHCP + +#define CONFIG_BAUDRATE 38400 +#define CONFIG_BOOTARGS "console=ttySC0,115200" + +#define CONFIG_VERSION_VARIABLE +#undef CONFIG_SHOW_BOOT_PROGRESS + +/* MEMORY */ +#define EDOSK2674_FLASH_BASE 0x000000 +#define EDOSK2674_SDRAM_BASE 0x400000 + +#define CONFIG_SYS_MONITOR_BASE EDOSK2674_FLASH_BASE +#define CONFIG_SYS_LONGHELP /* undef to save memory */ +#define CONFIG_SYS_PROMPT "=> " /* Monitor Command Prompt */ +#define CONFIG_SYS_CBSIZE 256 /* Buffer size for input from the Console */ +#define CONFIG_SYS_PBSIZE 256 /* Buffer size for Console output */ +#define CONFIG_SYS_MAXARGS 16 /* max args accepted for monitor commands */ + +/* Buffer size for Boot Arguments passed to kernel */ +#define CONFIG_SYS_BARGSIZE 512 +/* List of legal baudrate settings for this board */ +#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400 } + +/* SCI */ +#define CONFIG_SCI 1 +#define CONFIG_SCIF_CONSOLE 1 +#define CONFIG_CONS_SCIF2 1 + +/* TIMER */ +#define CONFIG_TIMER_BASE 0xffffb0 /* CH0-1 */ + +/* SDRAM */ +#define CONFIG_SYS_MEMTEST_START EDOSK2674_SDRAM_BASE +#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + (7 * 1024 * 1024)) + +#define CONFIG_SYS_SDRAM_BASE EDOSK2674_SDRAM_BASE +#define CONFIG_SYS_SDRAM_SIZE (8 * 1024 * 1024) + +#define CONFIG_SYS_LOAD_ADDR EDOSK2674_SDRAM_BASE +#define CONFIG_SYS_TEXT_BASE 0xbc0000 + +#define CONFIG_SYS_MALLOC_LEN (256 * 1024) +#define CONFIG_SYS_GBL_DATA_SIZE 256 + +#define CONFIG_ENV_SIZE (128 * 1024) +#define CONFIG_ENV_IS_IN_FLASH 1 +#define CONFIG_ENV_ADDR 0x3e0000 + +/* Board Clock */ +#define CONFIG_SYS_CLK_FREQ 33333333 +#define CONFIG_SYS_HZ CONFIG_SYS_CLK_FREQ + +/* Ether */ +#define CONFIG_LAN91C96 1 +#define CONFIG_LAN91C96_BASE 0xf80000 +#define CONFIG_NET_MULTI 1 + +/* Flash */ +#define CONFIG_SYS_MAX_FLASH_BANKS 1 +#define CONFIG_SYS_MAX_FLASH_SECT 32 +#define CONFIG_SYS_FLASH_BASE EDOSK2674_FLASH_BASE +#define CONFIG_SYS_FLASH_CFI 1 +#define CONFIG_FLASH_CFI_DRIVER 1 +#define CONFIG_SYS_FLASH_CFI_WIDTH FLASH_CFI_16BIT + +#endif /* __EDOSK2674_H */