[U-Boot] [PATCH v2] 83xx: add support for ve8313 board

Wolfgang Denk wd at denx.de
Wed Jul 7 09:26:20 CEST 2010


Dear Heiko Schocher,

In message <4C340265.3020302 at invitel.hu> you wrote:
>
> changes since v1
> - environment size = sector size

Argh.  While the previous environment size of 8 KiB was indeed a bit
smallish, using 128 KiB is overkill. Keep in mind that we then have to
compute the checksum over 18 KiB as well, which just costs time - at
booting, and with every setenv you run.

I suggest to change this to a more resaobale size - say 16 KiB ?


> +/* Fixed sdram init -- doesn't use serial presence detect.
> + *
> + * This is useful for faster booting in configs where the RAM is unlikely
> + * to be changed, or for things like NAND booting where space is tight.
> + */

Incorrect multiline comment style.

The first line of the comment is misleading as one might think there
was SPD information available but we decide not to use it - actually
there is none and we cannot use it. Please fix. And since there are
no other RAM configurations on this board, I recommend to remove the
last 2 lines of the comment as well.


> +	/* set WDT pins as output */
> +	setbits_be32(&gpio->dir, VE8313_WDT_EN | VE8313_WDT_TRIG);
> +#if defined(CONFIG_HW_WATCHDOG)
> +	/* enable WDT */
> +	clrbits_be32(&gpio->dat, VE8313_WDT_EN | VE8313_WDT_TRIG);
> +#else
> +	/* disable WDT */
> +	setbits_be32(&gpio->dat, VE8313_WDT_EN | VE8313_WDT_TRIG);
> +#endif
> +	return 0;

Is this the correct order? Would it not make sense first to define
the state of the data bit before you enable the output? Otherwise
this might result in short spikes at the wrong signal level, which
here might start the watchdog by accident?

> +#if defined(CONFIG_HW_WATCHDOG)
> +void hw_watchdog_reset(void)
> +{
> +	volatile immap_t *im = (volatile immap_t *)CONFIG_SYS_IMMR;
> +	volatile gpio83xx_t *gpio = (volatile gpio83xx_t *)im->gpio;
> +
> +	setbits_be32(&gpio->dat, VE8313_WDT_TRIG);
> +	clrbits_be32(&gpio->dat, VE8313_WDT_TRIG);
> +}

Is there a minimal length of the trigger pulse defined for this
watchdog? Maybe some udelay() is needed here?


> --- a/boards.cfg
> +++ b/boards.cfg
> @@ -135,6 +135,7 @@ TQM8272		powerpc	mpc8260		tqm8272		tqc
>  kmeter1		powerpc	mpc83xx		kmeter1		keymile
>  MVBLM7		powerpc	mpc83xx		mvblm7		matrix_vision
>  TQM834x		powerpc	mpc83xx		tqm834x		tqc
> +ve8313		powerpc	mpc83xx		ve8313
>  PM854		powerpc	mpc85xx		pm854
>  PM856		powerpc	mpc85xx		pm856
>  stxgp3		powerpc	mpc85xx		stxgp3		stx

This is not sorted correctly. It should go here (because of the empty
vendor field).

 SCM            powerpc mpc8260         -               siemens
 TQM8272        powerpc mpc8260         tqm8272         tqc
+ve8313         powerpc mpc83xx         ve8313
 kmeter1        powerpc mpc83xx         kmeter1         keymile
 MVBLM7         powerpc mpc83xx         mvblm7          matrix_vision

The comment in the header of the file describes how to correctly sort
this file; if you cannot parse this, just run the command in vi :-)


> +/*
> + * Manually set up DDR parameters, as this board does not
> + * seem to have the SPD connected to I2C.
> + */

"does not seem to have the SPD connected to I2C"? You know this for
sure, so please fix the comment.

> +#if !defined(CONFIG_SYS_NO_FLASH)
...
> +#else
> +#define CONFIG_SYS_FLASH_BASE		0xFE000000
> +#define CONFIG_SYS_FLASH_SIZE		32	/* size in MB */
> +#endif

I think there are no configurations of this board without NOR flash
either; please drop this as well.

> +/*
> + * TSEC
> + */
> +#define CONFIG_TSEC_ENET		/* TSEC ethernet support */
> +
> +#define CONFIG_NET_MULTI
> +
> +#define CONFIG_TSEC1

Please drop these empty lines.

> +#ifdef CONFIG_TSEC1
> +#define CONFIG_HAS_ETH0
> +#define CONFIG_TSEC1_NAME      "TSEC0"

Oops? This is TSEC1, so why do you name it "TSEC0" ?



> +/*
> + * Environment
> + */
> +#if !defined(CONFIG_SYS_RAMBOOT)
> +	#define CONFIG_ENV_IS_IN_FLASH	1
> +	#define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE + \
> +						CONFIG_SYS_MONITOR_LEN)
> +	#define CONFIG_ENV_SECT_SIZE	0x20000	/* 64K(one sector) for env */

Comment and code don't match - the comment is wrong - actual sector
size is 128 KiB.

> +	/* Address and size of Redundant Environment Sector */
> +	#define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + \
> +						CONFIG_ENV_SECT_SIZE)
> +	#define CONFIG_ENV_SIZE_REDUND	(CONFIG_ENV_SIZE)
> +#else
> +	#define CONFIG_SYS_NO_FLASH	1	/* Flash is not usable now */

Why would flash not be usable when booting from RAM?

> +	#define CONFIG_ENV_IS_NOWHERE	1	/* Store ENV in mem only */
> +	#define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE - 0x1000)
> +	#define CONFIG_ENV_SIZE		0x2000

I recommend to use the same CONFIG_ENV_SIZE setting for both
configurations (suggestion: use (16 << 10)).

> +#if defined(CONFIG_SYS_RAMBOOT) && !defined(CONFIG_NAND_U_BOOT)
> +    #undef CONFIG_CMD_SAVEENV
> +    #undef CONFIG_CMD_LOADS
> +#endif

Why do you disable the loads command here? This makes no sense to me.


> +/*
> + * Environment Configuration
> + */
> +#define CONFIG_ENV_OVERWRITE

Please remove.

> +#define CONFIG_SYS_LOAD_ADDR   0x2000000       /* default load address */
...
> +#define CONFIG_LOADADDR		800000

Is this 800000 (= 0xc3500) or 0x800000?
and why is it different from the CONFIG_SYS_LOAD_ADDR definition above?

> +#define CONFIG_BOOTDELAY	6	/* -1 disables auto-boot */
> +#define CONFIG_BAUDRATE		115200
> +
> +#define XMK_STR(x)	#x
> +#define MK_STR(x)	XMK_STR(x)
> +
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> +	"netdev=" MK_STR(CONFIG_NETDEV) "\0"				\
> +	"ethprime=TSEC0\0"						\

Use CONFIG_TSEC1_NAME here?


Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Severe culture shock results when experts from another protocol suite
[...] try to read OSI documents. The term "osified" is used to  refer
to  such  documents. [...] Any relationship to the word "ossified" is
purely intentional.                                - Marshall T. Rose


More information about the U-Boot mailing list