[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