[U-Boot-Users] [U-Boot Users][PATCH] ADS5121 Rev 3 Configuration Changes

Wolfgang Denk wd at denx.de
Sun May 4 00:50:44 CEST 2008


In message <200805031714718.SM04052 at cw4mb41> you wrote:
> Configuration changes added to support ADS5121 Rev 3 version of the board.
> This includes changes to the ref clock, memory size (from 256 to 512), the
> addition of PCI functionality and Makefile options to build either the Rev 3
> or Rev 2 U-Boot. The new README explains these options.

Do we really need a separate Makefile target and thus separate images
for  this?  Isn't  there  a  way  to  detect  the  hardware  revision
automatically in the software?

> 
> Signed-off-by: Martha J Marx <mmarx at si...>
> ---
 Makefile                  |    9 ++++-----
>  board/ads5121/README      |    9 +++++++++
>  board/ads5121/ads5121.c   |   34 ++++++++++++++++++++++++++++++----
>  cpu/mpc512x/cpu.c         |    8 ++++++--
>  include/configs/ads5121.h |   27 +++++++++++++++++++++++----
>  5 files changed, 72 insertions(+), 15 deletions(-)
>  create mode 100644 board/ads5121/README

Your patch cannot be applied because it was corrupted (line  wrapped)
by  your mailer (if that is a valid name for something as Outlook). I
strongly recommend to use git-send-email to post patches.

> diff --git a/Makefile b/Makefile
> index ac0a17f..f91c75b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -742,12 +742,11 @@ motionpro_config:	unconfig
>  ## MPC512x Systems
>  #########################################################################
>  ads5121_config \
> -ads5121_PCI_config \
> -	:		 unconfig
> +ads5121_256_config	\
...
> +To configure for the Rev 2 ADS5121 type
> +make ads5121_256_config

That's not exactly intuitive - when you call it "Rev 2" hadrware, then
also use that name as the make target.

> @@ -50,7 +52,6 @@ int board_early_init_f (void)
>  {
>  	volatile immap_t *im = (immap_t *) CFG_IMMR;
>  	u32 lpcaw;
> -
>  	/*
>  	 * Initialize Local Window for the CPLD registers access (CS2
> selects
^^^^^^^^^^^^^^^^^^^^^^
Line wrapped.

>  	 * the CPLD chip)
> @@ -58,7 +59,6 @@ int board_early_init_f (void)
>  	im->sysconf.lpcs2aw = CSAW_START(CFG_CPLD_BASE) |
>  			      CSAW_STOP(CFG_CPLD_BASE, CFG_CPLD_SIZE);
>  	im->lpc.cs_cfg[2] = CFG_CS2_CFG;
> -
>  	/*
>  	 * According to MPC5121e RM, configuring local access windows should
>  	 * be followed by a dummy read of the config register that was

I don't like these white space changes. Please leave the blank  lines
as it was before.

>  	 * Without this the flash identification routine fails, as it needs
> to issue
^^^^^^^^^^^^^^^^^^^^^^
Line wrapped.

>  
> +#ifdef CONFIG_ADS5121_256
> +	*((volatile u8 *)(CFG_CPLD_BASE + 0x08)) = 0xC1;
> +#else
> +	if (*((u8 *)(CFG_CPLD_BASE + 0x08)) & 0x04) {
> +
> +		*((volatile u8 *)(CFG_CPLD_BASE + 0x08)) = 0xC1;
> +	} else {
> +	/* running from Backup flash */
^^^^^^^^^^^^^^^^^^^^^
Indentation wrong.

> +		*((volatile u8 *)(CFG_CPLD_BASE + 0x08)) = 0x32;
> +	}
> +#endif
> +	/*
> +	 * Configure Flash Speed
> +	 */
> +	*((volatile u32 *)(CFG_IMMR + LPC_OFFSET + CS0_CONFIG)) =
> CFG_CS0_CFG;
^^^^^^^^^^^^^^^^^^^^^^
Line wrapped.

> @@ -143,6 +144,9 @@ void ft_cpu_setup(void *blob, bd_t *bd)
>  	do_fixup_by_path(blob, eth_path, "local-mac-address",
> bd->bi_enetaddr, 6, 0);
>  
>  	/* this is so old kernels with old device trees will boot */
> +

Do NOT add an empty line here.

>  	do_fixup_by_path_u32(blob, "/" OF_SOC_OLD, "bus-frequency",
> bd->bi_ipsfreq, 0);
^^^^^^^^^^^^^^^^^^^^^^
Line wrapped.

> +	do_fixup_by_path(blob, eth_path_old, "local-mac-address",
> bd->bi_enetaddr, 6, 0);
^^^^^^^^^^^^^^^^^^^^^^
Line wrapped.

> +	do_fixup_by_path(blob, eth_path_old, "address", bd->bi_enetaddr, 6,
> 0);
^^^^^^^^^^^^^^^^^^^^^^
Line wrapped.

>  }
>  #endif
> diff --git a/include/configs/ads5121.h b/include/configs/ads5121.h
> index 81e7c1e..5f82855 100644
> --- a/include/configs/ads5121.h
> +++ b/include/configs/ads5121.h
> @@ -48,9 +48,15 @@
>  
>  /* CONFIG_PCI is defined at config time */
>  
> +#ifdef CONFIG_ADS5121_256
>  #define CFG_MPC512X_CLKIN	66000000	/* in Hz */
> +#else
> +#define CFG_MPC512X_CLKIN	33333333	/* in Hz */

Is this 33.333333 MHz or 33.0 MHz ?

> @@ -60,7 +66,11 @@
>  /*
>   * DDR Setup - manually set all parameters as there's no SPD etc.
>   */
> +#ifdef CONFIG_ADS5121_256
>  #define CFG_DDR_SIZE		256		/* MB */
> +#else
> +#define CFG_DDR_SIZE		512		/* MB */
> +#endif

We should use auto-sizing for the RAM like all "correct" ports do.

> @@ -175,8 +191,11 @@
>  
>  #define CFG_SRAM_BASE		0x30000000
>  #define CFG_SRAM_SIZE		0x00020000	/* 128 KB */
> -

Do not delete this empty line.

> +#ifdef ADS5121_256_CONFIG
>  #define CFG_CS0_CFG		0x05059310	/* ALE active low, data size
> 4bytes */
^^^^^^^^^^^^^^^^^^^^
Line wrapped.

> +#else
> +#define CFG_CS0_CFG		0x05059310	/* ALE active low, data size
> 4bytes */
^^^^^^^^^^^^^^^^^^^^
Line wrapped.

> +#endif
>  #define CFG_CS2_CFG		0x05059010	/* ALE active low, data size
> 1byte */
^^^^^^^^^^^^^^^^^^^^
Line wrapped.

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
Eureka!                                                 -- Archimedes




More information about the U-Boot mailing list