Patchwork [U-Boot,5/5] Add target edosk2674

login
register
mail settings
Submitter Yoshinori Sato
Date March 2, 2011, 7:40 a.m.
Message ID <87sjv69di3.wl%ysato@users.sourceforge.jp>
Download mbox | patch
Permalink /patch/85042/
State Changes Requested
Headers show

Comments

Yoshinori Sato - March 2, 2011, 7:40 a.m.
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 <ysato@users.sourceforge.jp>
---
 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

Patch

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 <ysato@users.sourceforge.jp>
+#
+# 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 <ysato@users.sourceforge.jp>
+#
+# 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 <ysato@users.sourceforge.jp>
+ *
+ * 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 <common.h>
+#include <net.h>
+#include <netdev.h>
+#include <asm/io.h>
+#include <asm/processor.h>
+
+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 <ysato@users.sourceforge.jp>
+ *
+ * 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 <config.h>
+
+	.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 <config.h>
+
+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 <config_cmd_default.h>
+#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 */