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 <ys...@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 <ys...@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 <ys...@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 <ys...@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 <ys...@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.riba...@uam.es> > > Active sandbox sandbox - sandbox sandbox > > sandbox - > > > > Simon Glass <s...@chromium.org> > > Active sh sh2 - renesas rsk7203 > > rsk7203 - > > > > Nobuhiro Iwamatsu > > <iwamatsu.nobuh...@renesas.com>:Nobuhiro Iwamatsu <iwama...@nigauri.org> > > +Active sh sh2 - renesas ms7206se > > ms7206se - > > > > Yoshinori Sato <ys...@users.sourceforge.jp> > > Active sh sh2 - renesas rsk7264 > > rsk7264 - > > > > Phil Edworthy <phil.edwor...@renesas.com> > > Active sh sh2 - renesas rsk7269 > > rsk7269 - > > > > - > > Active sh sh3 - - mpr2 > > mpr2 - > > > > Mark Jonas <mark.jo...@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 <ys...@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 -- Yoshinori Sato <ys...@users.sourceforge.jp> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot