All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/1] imx-common: cpu: add fdt_file environment variable
Date: Sun, 30 Mar 2014 18:30:13 +0200	[thread overview]
Message-ID: <53384695.6000901@denx.de> (raw)
In-Reply-To: <1396132481-9446-1-git-send-email-troy.kisky@boundarydevices.com>

Hi Troy,

On 29/03/2014 23:34, Troy Kisky wrote:
> This removes one block in the move toward 1 u-boot
> for both a mx6q (quad) and mx6dl (duallite) processor.
> 
> Now fdt_file hardcoded value can be removed.
> 
> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
> ---

I have a general problem with this implementation. I am ok if, as you
proposed some times ago, there is a general rule for the "default" dtb
file in the CONFIG_EXTRA_ENV.

However, you are binding in code naming conventions. In U-boot, it must
be allowed to set the environment as the user wants, and this must be
not overwritten by such an internal code.

I mean: a board user, if he wants, should be allowed to do something as

	setenv fdt_file my_preferred_dtb_name.dtb

and this must work when the file is loaded from storage - this is not
possible if the rule chosen from user is overwritten by code.

This makes the environment useless and generates headaches for a lot of
users. They will ask themselves why the wrong file is taken when they
tried in any way to set it differently...

>  arch/arm/imx-common/cpu.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
>  arch/arm/lib/board.c      |  7 +++++++
>  2 files changed, 51 insertions(+)
> 
> diff --git a/arch/arm/imx-common/cpu.c b/arch/arm/imx-common/cpu.c
> index a77c4de..5d48011 100644
> --- a/arch/arm/imx-common/cpu.c
> +++ b/arch/arm/imx-common/cpu.c
> @@ -180,3 +180,47 @@ void arch_preboot_os(void)
>  	ipuv3_fb_shutdown();
>  }
>  #endif
> +
> +const char *get_dtb_prefix(u32 imxtype)
> +{
> +	switch (imxtype) {
> +	case MXC_CPU_MX6Q:
> +	case MXC_CPU_MX6D:
> +		return "imx6q";		/* Quad/Dual-core version of the mx6 */
> +	case MXC_CPU_MX6DL:
> +	case MXC_CPU_MX6SOLO:
> +		return "imx6dl";	/* Dual Lite/Solo version of the mx6 */
> +	case MXC_CPU_MX6SL:
> +		return "imx6sl";	/* Solo-Lite version of the mx6 */
> +	case MXC_CPU_MX51:
> +		return "imx51";
> +	case MXC_CPU_MX53:
> +		return "imx53";
> +	}
> +	return "??";
> +}
> +
> +int cpu_late_init(void)
> +{
> +	char buf[128];
> +	const char *board;
> +	u32 imxtype = (get_cpu_rev() >> 12) & 0xff;
> +
> +	if (getenv("fdt_file"))
> +		return 0;
> +	board = getenv("board");
> +	if (!board) {
> +		board = CONFIG_SYS_BOARD;
> +		if ((board[0] == 'm') && (board[1] == 'x')) {
> +			if (board[2] == '6') {
> +				board += 3;
> +			} else if (board[2] == '5') {
> +				if ((board[3] == '1') || (board[3] == '3'))
> +					board += 4;
> +			}
> +		}
> +	}
> +	sprintf(buf, "%s-%s.dtb", get_dtb_prefix(imxtype), board);
> +	setenv("fdt_file", buf);
> +	return 0;
> +}
> diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
> index e9a7708..61cee98 100644
> --- a/arch/arm/lib/board.c
> +++ b/arch/arm/lib/board.c
> @@ -496,6 +496,11 @@ static void display_fdt_model(const void *blob)
>  }
>  #endif
>  
> +int __weak cpu_late_init(void)
> +{
> +	return 0;
> +}
> +
>  /************************************************************************
>   *
>   * This is the next part if the initialization sequence: we are now
> @@ -649,6 +654,8 @@ void board_init_r(gd_t *id, ulong dest_addr)
>  	board_late_init();
>  #endif
>  
> +	cpu_late_init();
> +
>  #ifdef CONFIG_BITBANGMII
>  	bb_miiphy_init();
>  #endif
> 

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

  parent reply	other threads:[~2014-03-30 16:30 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-29 22:34 [U-Boot] [PATCH 1/1] imx-common: cpu: add fdt_file environment variable Troy Kisky
2014-03-29 23:04 ` Otavio Salvador
2014-03-30 14:52   ` Marek Vasut
2014-03-31 18:30     ` Troy Kisky
2014-03-29 23:11 ` Eric Nelson
2014-03-31 18:36   ` Troy Kisky
2014-03-31 19:22     ` Marek Vasut
2014-03-31 19:38       ` Otavio Salvador
2014-03-31 19:47         ` Marek Vasut
2014-03-31 21:09           ` Troy Kisky
2014-04-01  7:45             ` Marek Vasut
2014-03-30 16:30 ` Stefano Babic [this message]
2014-03-31 18:29   ` Troy Kisky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53384695.6000901@denx.de \
    --to=sbabic@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.