
At Wed, 12 Feb 2014 15:50:12 +0900, Nobuhiro Iwamatsu wrote:
Hi, Sato-san.
2014-02-11 21:24 GMT+09:00 Yoshinori Sato ysato@users.sourceforge.jp:
Hi. This patch series add to Renesas MS7206SE board support. And SH2A targets various update. Please comment.
Please use cover-letter option of git format-patch.
Signed-off-by: Yoshinori Sato ysato@users.sourceforge.jp
board/renesas/ms7206se/Makefile | 10 +++ board/renesas/ms7206se/lowlevel_init.S | 124 +++++++++++++++++++++++++++++++++ board/renesas/ms7206se/ms7206se.c | 43 ++++++++++++ boards.cfg | 1 + drivers/net/smc91111.h | 31 ++++++++-
Please divide a patch by device support and board support. And please send patch of ether part to net maintainer.
OK. I'll cleanup code and re-sent.
Best regards, Nobuhiro
include/configs/ms7206se.h | 95 +++++++++++++++++++++++++ 6 files changed, 303 insertions(+), 1 deletion(-) create mode 100644 board/renesas/ms7206se/Makefile create mode 100644 board/renesas/ms7206se/lowlevel_init.S create mode 100644 board/renesas/ms7206se/ms7206se.c create mode 100644 include/configs/ms7206se.h
diff --git a/board/renesas/ms7206se/Makefile b/board/renesas/ms7206se/Makefile new file mode 100644 index 0000000..eed3769 --- /dev/null +++ b/board/renesas/ms7206se/Makefile @@ -0,0 +1,10 @@ +# +# Copyright (C) 2013 Yoshinori Sato ysato@users.sourceforge.jp +# +# u-boot/board/renesas/ms7619se/Makefile +# +# SPDX-License-Identifier: GPL-2.0+ +#
+obj-y := ms7206se.o +obj-y += lowlevel_init.o diff --git a/board/renesas/ms7206se/lowlevel_init.S b/board/renesas/ms7206se/lowlevel_init.S new file mode 100644 index 0000000..4e1e70c --- /dev/null +++ b/board/renesas/ms7206se/lowlevel_init.S @@ -0,0 +1,124 @@ +/*
- Copyright (C) 2013 Yoshinori Sato ysato@users.sourceforge.jp
- SPDX-License-Identifier: GPL-2.0+
- */
+#include <config.h> +#include <version.h>
+#include <asm/processor.h> +#include <asm/macro.h> +#define INTMSK0 0x11800000
.global lowlevel_init
.text
.align 2
+lowlevel_init:
mova CPG_settings_table,r0
+1: mov.l @r0+,r3 // Address (or zero)
tst r3,r3
bt 2f
mov.l @r0+,r1 // data
bra 1b
mov.w r1,@r3
+2:
mov.l $mclkcr,r0 // MCLKCR setting
mov #0x40,r1
mov.b r1,@r0
// Set up the Bus Controler
mova BSC_settings_table,r0
+5: mov.l @r0+,r3 // Address (or zero)
tst r3,r3
bt 6f
mov.l @r0+,r1 // data
bra 5b
mov.l r1,@r3
+6:
mov.l $delay_count,r0
+7:
dt r0
bf 7b
mov.l $SDMR,r1 // Turns on SDRAM controller
mov.l $SDMR_val,r2
mov.l r2,@r1
// Set up the Pin Function Controler
mova PFC_settings_table,r0
+3: mov.l @r0+,r3 // Address (or zero)
tst r3,r3
bt 4f
mov.l @r0+,r1 // data
bra 3b
mov.w r1,@r3
+4:
rts/n
.align 4
+$delay_count:
.long 2000
+$SDMR: .long 0xfffc5880 +$SDMR_val:
.long 0
+$mclkcr:
.long MCLKCR
+CPG_settings_table:
.long WTCSR,0xA500
.long WTCNT,0x5A00
.long WTCSR,0xA51E
.long FRQCR, 0x120c /* input:33.3333MHz I:B:P=6:2:1=200MHz:66MHz:33MHz */
.long 0
+BSC_settings_table:
# Settings from Hitachi docs for SE7206
.long CMNCR, 0x00001010
.long CS0BCR, 0x10000600
.long CS2BCR, 0x10000600
.long CS4BCR, 0x10000400
.long CS5BCR, 0x10000400
.long CS3BCR, 0x10004600
.long CS0WCR, 0x00000380; /* wait:4cycle */
.long CS2WCR, 0x00000380;
.long CS4WCR, 0x00000380;
.long CS5WCR, 0x00000380;
.long CS3WCR, 0x00004892; /* pre->actv:1cycle, actv->read/write:2cycle, write->pre:1cycle, ref->actv:4cycle */
.long SDCR, 0x00000811;
.long RTCNT, 0xa55a0083;
.long RTCOR, 0xa55a0083;
.long RTCSR, 0xa55a0008; /* reflesh count=B耳/4 */
.long 0
+PFC_settings_table:
.long PACRH3, 0x0022
.long PACRH2, 0x1111
.long PACRH1, 0x1115
.long PACRL4, 0x1111
.long PACRL3, 0x1125
.long PACRL2, 0x2255
.long PACRL1, 0x5500
.long PBCR3, 0x0022
.long PBCR2, 0x2244
.long PBCR1, 0x1111
.long PCCRL1, 0x1111
.long PDCRH4, 0x1111
.long PDCRH3, 0x1111
.long PDCRH2, 0x1111
.long PDCRH1, 0x1111
.long PDCRL4, 0x1111
.long PDCRL3, 0x1111
.long PECRH1, 0x0005
.long PECRL4, 0x3223
.long PECRL3, 0x3030
.long PECRL2, 0x3550
.long IFCR, 0x0003
.long 0
+$INTMSK0:
.long INTMSK0
diff --git a/board/renesas/ms7206se/ms7206se.c b/board/renesas/ms7206se/ms7206se.c new file mode 100644 index 0000000..45906fb --- /dev/null +++ b/board/renesas/ms7206se/ms7206se.c @@ -0,0 +1,43 @@ +/*
- Copyright (C) 2013 Yoshinori Sato ysato@users.sourceforge.jp
- SPDX-License-Identifier: GPL-2.0+
- */
+#include <common.h> +#include <net.h> +#include <netdev.h> +#include <asm/io.h> +#include <asm/processor.h>
+DECLARE_GLOBAL_DATA_PTR;
+int checkboard(void) +{
puts("BOARD: Renesas Technology MS7206SE\n");
return 0;
+}
+int board_init(void) +{
return 0;
+}
+int dram_init(void) +{
gd->bd->bi_memstart = CONFIG_SYS_SDRAM_BASE;
gd->bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE;
printf("DRAM: %dMB\n", CONFIG_SYS_SDRAM_SIZE / (1024 * 1024));
return 0;
+}
+#ifdef CONFIG_CMD_NET +int board_eth_init(bd_t *bis) +{
int rc = 0;
+#ifdef CONFIG_SMC91111
rc = smc91111_initialize(0, CONFIG_SMC91111_BASE);
+#endif
return rc;
+} +#endif diff --git a/boards.cfg b/boards.cfg index c97c4bd..a56f196 100644 --- a/boards.cfg +++ b/boards.cfg @@ -1203,6 +1203,7 @@ Active powerpc ppc4xx - xilinx ppc440-generic Active powerpc ppc4xx - xilinx ppc440-generic xilinx-ppc440-generic_flash xilinx-ppc440-generic:SYS_TEXT_BASE=0xF7F60000,RESET_VECTOR_ADDRESS=0xF7FFFFFC Ricardo Ribalda ricardo.ribalda@uam.es Active sandbox sandbox - sandbox sandbox sandbox - Simon Glass sjg@chromium.org Active sh sh2 - renesas rsk7203 rsk7203 - Nobuhiro Iwamatsu iwamatsu.nobuhiro@renesas.com:Nobuhiro Iwamatsu iwamatsu@nigauri.org +Active sh sh2 - renesas ms7206se ms7206se - Yoshinori Sato ysato@users.sourceforge.jp Active sh sh2 - renesas rsk7264 rsk7264 - Phil Edworthy phil.edworthy@renesas.com Active sh sh2 - renesas rsk7269 rsk7269 - - Active sh sh3 - - mpr2 mpr2 - Mark Jonas mark.jonas@de.bosch.com diff --git a/drivers/net/smc91111.h b/drivers/net/smc91111.h index 9deee9b..513a67d 100644 --- a/drivers/net/smc91111.h +++ b/drivers/net/smc91111.h @@ -236,7 +236,36 @@ struct smc91111_priv{ *(__b2 + __i) = SMC_inb((a),(r)); \ }; \ }while(0)
+#elif defined(CONFIG_MS7206SE) +#define SWAB(x) ({ word __x = x; ((__x << 8)|(__x >> 8));}) +#define SMC_inw(a,r) *((volatile word *)((a)->iobase + (r))) +#define SMC_inb(a,r) (*((volatile byte *)((a)->iobase + ((r) ^ 0x01)))) +#define SMC_insw(a,r,b,l) \
do { \
int __i; \
word *__b2 = (word *)(b); \
for (__i = 0; __i < (l); __i++) { \
*__b2++ = SWAB(SMC_inw(a, r)); \
} \
} while(0);
+#define SMC_outw(a,d,r) (*((volatile word *)((a)->iobase+(r))) = d) +#define SMC_outb(a,d,r) ({ word __d = (byte)(d); \
word __w = SMC_inw((a),((r)&(~1))); \
if(((r) & 1)) \
__w = (__w & 0x00ff) | (__d << 8); \
else \
__w = (__w & 0xff00) | (__d); \
SMC_outw((a),__w,((r)&(~1))); \
})
+#define SMC_outsw(a,r,b,l) \
do { \
int __i; \
word *__b2 = (word *)(b); \
for (__i = 0; __i < (l); __i++) { \
SMC_outw(a, SWAB(*__b2), r); \
__b2++; \
} \
} while(0);
#else /* if not CONFIG_CPU_PXA25X and not CONFIG_LEON */
#ifndef CONFIG_SMC_USE_IOFUNCS /* these macros don't work on some boards */ diff --git a/include/configs/ms7206se.h b/include/configs/ms7206se.h new file mode 100644 index 0000000..805044c --- /dev/null +++ b/include/configs/ms7206se.h @@ -0,0 +1,95 @@ +/*
- Configuation settings for the Renesas Technology MS7206SE
- Copyright (C) 2013 Yoshinori Sato ysato@users.sourceforge.jp
- SPDX-License-Identifier: GPL-2.0+
- */
+#ifndef __MS7206SE_H +#define __MS7206SE
+#undef DEBUG +#define CONFIG_SH 1 +#define CONFIG_SH2 1 +#define CONFIG_SH2A 1 +#define CONFIG_CPU_SH7206 1 +#define CONFIG_MS7206SE 1
+#define CONFIG_CMD_FLASH +#define CONFIG_CMD_NET +#define CONFIG_CMD_SAVEENV +#define CONFIG_CMD_SDRAM +#define CONFIG_CMD_MEMORY +#define CONFIG_CMD_MEMTEST +#define CONFIG_CMD_CACHE
+#define CONFIG_BAUDRATE 115200 +#define CONFIG_BOOTARGS "console=ttySC3,115200" +#define CONFIG_LOADADDR 0x0C100000 /* MS7206SE01_SDRAM_BASE + 1MB */
+#define CONFIG_VERSION_VARIABLE +#undef CONFIG_SHOW_BOOT_PROGRESS
+/* MEMORY */ +#define MS7206SE_SDRAM_BASE 0x0C000000 +#define MS7206SE_FLASH_BASE_1 0x20000000 /* Non cache */ +#define MS7206SE_FLASH_BANK_SIZE (16 * 1024 * 1024)
+#define CONFIG_SYS_TEXT_BASE 0x0C7C0000 +#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, 3840, 57600, 115200 }
+/* SCIF */ +#define CONFIG_SCIF_CONSOLE 1 +#define CONFIG_CONS_SCIF3 1
+#define CONFIG_SYS_MEMTEST_START CONFIG_LOADADDR +#define CONFIG_SYS_MEMTEST_END (CONFIG_LOADADDR + (63 * 1024 * 1024))
+#define CONFIG_SYS_SDRAM_BASE MS7206SE_SDRAM_BASE +#define CONFIG_SYS_SDRAM_SIZE (64 * 1024 * 1024)
+#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + 1024 * 1024) +#define CONFIG_SYS_MONITOR_BASE MS7206SE_FLASH_BASE_1 +#define CONFIG_SYS_MONITOR_LEN (128 * 1024) +#define CONFIG_SYS_MALLOC_LEN (256 * 1024) +#define CONFIG_SYS_BOOTMAPSZ (8 * 1024 * 1024)
+/* FLASH */ +#define CONFIG_FLASH_CFI_DRIVER +#define CONFIG_SYS_FLASH_CFI +#define CONFIG_SYS_FLASH_CFI_WIDTH FLASH_CFI_16BIT +#undef CONFIG_SYS_FLASH_QUIET_TEST +#define CONFIG_SYS_FLASH_EMPTY_INFO /* print 'E' for empty sector on flinfo */ +#define CONFIG_SYS_FLASH_BASE MS7206SE_FLASH_BASE_1 +#define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE } +#define CONFIG_SYS_MAX_FLASH_SECT 142 +#define CONFIG_SYS_MAX_FLASH_BANKS 1
+#define CONFIG_ENV_IS_IN_FLASH +#define CONFIG_ENV_SECT_SIZE (128 * 1024) +#define CONFIG_ENV_SIZE CONFIG_ENV_SECT_SIZE +#define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN) +#define CONFIG_SYS_FLASH_ERASE_TOUT 12000 +#define CONFIG_SYS_FLASH_WRITE_TOUT 500
+/* Board Clock */ +#define CONFIG_SYS_CLK_FREQ 33333333 +#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ +#define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ +#define CMT_CLK_DIVIDER 32 /* 8 (default), 32, 128 or 512 */ +#define CONFIG_SH_CMT_CLK_FREQ (CONFIG_SYS_CLK_FREQ / CMT_CLK_DIVIDER)
+/* Network interface */ +#define CONFIG_SMC91111 +#define CONFIG_SMC91111_BASE (0x30000000)
+#endif /* __MS7206SE_H */
1.8.5.3
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
-- Nobuhiro Iwamatsu iwamatsu at {nigauri.org / debian.org} GPG ID: 40AD1FA6 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot