[U-Boot] [PATCH] sh: add support for sh7757lcr board
Yoshihiro Shimoda
yoshihiro.shimoda.uh at renesas.com
Wed Jan 19 12:49:52 CET 2011
Dear Wolfgang Denk,
Thank you for your review.
2011/01/19 17:28, Wolfgang Denk wrote:
>> arch/sh/include/asm/cpu_sh4.h | 2 +
>> arch/sh/include/asm/cpu_sh7757.h | 263 +++++++++++++++
>> board/renesas/sh7757lcr/Makefile | 42 +++
>> board/renesas/sh7757lcr/config.mk | 28 ++
>> board/renesas/sh7757lcr/lowlevel_init.S | 558 +++++++++++++++++++++++++++++++
>> board/renesas/sh7757lcr/sh7757lcr.c | 436 ++++++++++++++++++++++++
>> board/renesas/sh7757lcr/spi-boot.c | 111 ++++++
>> board/renesas/sh7757lcr/u-boot.lds | 101 ++++++
>> boards.cfg | 1 +
>> doc/README.sh7757lcr | 64 ++++
>> include/configs/sh7757lcr.h | 143 ++++++++
>> 11 files changed, 1749 insertions(+), 0 deletions(-)
>> create mode 100644 arch/sh/include/asm/cpu_sh7757.h
>> create mode 100644 board/renesas/sh7757lcr/Makefile
>> create mode 100644 board/renesas/sh7757lcr/config.mk
>> create mode 100644 board/renesas/sh7757lcr/lowlevel_init.S
>> create mode 100644 board/renesas/sh7757lcr/sh7757lcr.c
>> create mode 100644 board/renesas/sh7757lcr/spi-boot.c
>> create mode 100644 board/renesas/sh7757lcr/u-boot.lds
>> create mode 100644 doc/README.sh7757lcr
>> create mode 100644 include/configs/sh7757lcr.h
>
> Entry to MAINTAINERS missing.
Sorry, I will modify the MAINTAINERS.
> ...
>> +/* TMU0 */
>> +#define TSTR 0xFE430004
>> +#define TOCR 0xFE430000
>> +#define TSTR0 0xFE430004
>> +#define TCOR0 0xFE430008
>> +#define TCNT0 0xFE43000C
>> +#define TCR0 0xFE430010
>> +#define TCOR1 0xFE430014
>> +#define TCNT1 0xFE430018
>> +#define TCR1 0xFE43001C
>> +#define TCOR2 0xFE430020
>> +#define TCNT2 0xFE430024
>> +#define TCR2 0xFE430028
>> +#define TCPR2 0xFE43002C
>
> Please use C structs to describe hardware registers.
The current code in arch/lib/sh/time.c doesn't use C structs.
Should I also modify the code?
> ...
>> +/* DDR3IF */
>> +#define DDR3IF_BASE 0xfe800000
>> +#define DBSTATE0 (DDR3IF_BASE + 0x0008)
>> +#define DBSTATE1 (DDR3IF_BASE + 0x000c)
>> +#define DBACEN (DDR3IF_BASE + 0x0010)
>> +#define DBRFEN (DDR3IF_BASE + 0x0014)
>> +#define DBCMD (DDR3IF_BASE + 0x0018)
>> +#define DBWAIT (DDR3IF_BASE + 0x001c)
>> +#define DBKIND (DDR3IF_BASE + 0x0020)
>> +#define DBCONF (DDR3IF_BASE + 0x0024)
>> +#define DBTR0 (DDR3IF_BASE + 0x0040)
>> +#define DBTR1 (DDR3IF_BASE + 0x0044)
>> +#define DBTR2 (DDR3IF_BASE + 0x0048)
>> +#define DBTR3 (DDR3IF_BASE + 0x0050)
>> +#define DBTR4 (DDR3IF_BASE + 0x0054)
>> +#define DBTR5 (DDR3IF_BASE + 0x0058)
>> +#define DBTR6 (DDR3IF_BASE + 0x005c)
>> +#define DBTR7 (DDR3IF_BASE + 0x0060)
>> +#define DBTR8 (DDR3IF_BASE + 0x0064)
>> +#define DBTR9 (DDR3IF_BASE + 0x0068)
>> +#define DBTR10 (DDR3IF_BASE + 0x006c)
>> +#define DBTR11 (DDR3IF_BASE + 0x0070)
>> +#define DBTR12 (DDR3IF_BASE + 0x0074)
>> +#define DBTR13 (DDR3IF_BASE + 0x0078)
>> +#define DBTR14 (DDR3IF_BASE + 0x007c)
>> +#define DBTR15 (DDR3IF_BASE + 0x0080)
>> +#define DBTR16 (DDR3IF_BASE + 0x0084)
>> +#define DBTR17 (DDR3IF_BASE + 0x0088)
>> +#define DBTR18 (DDR3IF_BASE + 0x008c)
>> +#define DBTR19 (DDR3IF_BASE + 0x0090)
>> +#define DBADJ0 (DDR3IF_BASE + 0x00c0)
>> +#define DBADJ1 (DDR3IF_BASE + 0x00c4)
>> +#define DBADJ2 (DDR3IF_BASE + 0x00c8)
>> +#define DBADJ3 (DDR3IF_BASE + 0x00cc)
>> +#define DBRFCNF0 (DDR3IF_BASE + 0x00e0)
>> +#define DBRFCNF1 (DDR3IF_BASE + 0x00e4)
>> +#define DBRFCNF2 (DDR3IF_BASE + 0x00e8)
>> +#define DBCALCNF (DDR3IF_BASE + 0x00f4)
>> +#define DBRNK0 (DDR3IF_BASE + 0x0100)
>> +#define DBPDCNT0 (DDR3IF_BASE + 0x0200)
>> +#define DBPDCNT1 (DDR3IF_BASE + 0x0204)
>> +#define DBPDCNT2 (DDR3IF_BASE + 0x0208)
>> +#define DBPDCNT3 (DDR3IF_BASE + 0x020c)
>> +#define DBPDLCK (DDR3IF_BASE + 0x0280)
>> +#define DBPDRGA (DDR3IF_BASE + 0x0290)
>> +#define DBPDRGD (DDR3IF_BASE + 0x02a0)
>> +#define DBBS0CNT0 (DDR3IF_BASE + 0x0300)
>> +#define DBBS0CNT1 (DDR3IF_BASE + 0x0304)
>
> We don't allow base address + offset notation to access hardware
> registers. Please use C structs instead.
They are used in assembler code (lowlevel_init.S).
Do we use C structs in assembler code using GCC?
At the moment, I don't know about it. So I will study GCC...
Best regards,
Yoshihiro Shimoda
More information about the U-Boot
mailing list