All of lore.kernel.org
 help / color / mirror / Atom feed
From: Timur Tabi <timur@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] Warning for mpc8360emds users: fdt-cmd from	u-boot-fdt.git
Date: Fri, 06 Apr 2007 16:57:11 -0500	[thread overview]
Message-ID: <4616C237.3020301@freescale.com> (raw)
In-Reply-To: <46139872.5020707@smiths-aerospace.com>

Jerry Van Baren wrote:

> This was sloppy on my part and I apologize in advance for any confusion 
> this may cause.  Please take this opportunity to generate improvement 
> patches, rather than invectives toward myself. ;-)

I finally had a chance to look at this code, and, well, I'm not crazy about it.

In short, I have a real problem with this:

#define	FT_BUSFREQ	0x00000002		/* source is bd->bi_busfreq */
#define	FT_ENETADDR	0x00000004		/* source is bd->bi_enetaddr */

Using flags to determine the SOURCE of the property data is bad, IMHO.  It's just not 
flexible enough.  Not only that, but you already have a bug in the definition of 
fixup_props[]:

#ifdef CONFIG_MPC83XX_TSEC2
	{	FT_UPDATE | FT_ENETADDR,
		"/" OF_SOC "/ethernet at 25000,
		"mac-address",
	},
	{	FT_UPDATE | FT_ENETADDR,
		"/" OF_SOC "/ethernet at 25000,
		"local-mac-address",
	},
#endif

FT_ENETADDR is the MAC address of eth0, but here it's being programmed into eth1!  The 
obvious solution is to introduce:

#define	FT_ENETADDR1	0x00000008		/* source is bd->bi_enetaddr1 */

But then you need definitions for eth2 and eth3

#define	FT_ENETADDR2	0x00000010		/* source is bd->bi_enetaddr2 */
#define	FT_ENETADDR3	0x00000020		/* source is bd->bi_enetaddr3 */

As you can see, you're already bloating the code.

A better solution would be to provide a function pointer for a function that can be called 
to fill in the property.  Something like:

int ft_set_eth0(void *fdt, int nodeoffset, const char *name, bd_t *bd)
{
	return fdt_setprop(fdt, nodeoffset, name, bd->bi_enetaddr, 6);
}

or something like that.  Then define fixup_props[] like this:

static const struct {
	int  createflags;
	char *node;
	char *prop;
	int (*set_function)(void *fdt, int nodeoffset, const char *name, bd_t *bd);
} fixup_props[] = {

What do you think about that?  If you like it, I can make the change to mpc83xx/cpu.c

-- 
Timur Tabi
Linux Kernel Developer @ Freescale

  parent reply	other threads:[~2007-04-06 21:57 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-31 17:43 [U-Boot-Users] (Try 2) Please pull branch fdt-cmd from u-boot-fdt.git Jerry Van Baren
2007-03-31 18:20 ` Wolfgang Denk
2007-03-31 18:48   ` Jerry Van Baren
2007-04-03 23:50     ` Wolfgang Denk
2007-04-04 10:16       ` Jerry Van Baren
2007-04-04 12:22         ` [U-Boot-Users] Warning for mpc8360emds users: " Jerry Van Baren
2007-04-04 15:46           ` Timur Tabi
2007-04-04 16:17             ` Jerry Van Baren
2007-04-04 22:46               ` Wolfgang Denk
2007-04-05  3:08                 ` Jerry Van Baren
2007-04-05  8:06                   ` Wolfgang Denk
2007-04-05 11:00                     ` Jerry Van Baren
2007-04-05 18:02                       ` Bruce_Leonard at selinc.com
2007-04-05 18:12                         ` Jerry Van Baren
2007-04-05 18:40                           ` Bruce_Leonard at selinc.com
2007-04-06 21:57           ` Timur Tabi [this message]
2007-04-06 22:39             ` Jerry Van Baren
2007-04-07  0:15               ` Wolfgang Denk
2007-04-07  1:29                 ` Jerry Van Baren
2007-03-31 18:27 ` [U-Boot-Users] (Try 2) Please pull branch " Jerry Van Baren
2007-04-04  0:21   ` Wolfgang Denk
2007-04-03  9:39 ` Joakim Tjernlund
2007-04-03 10:34   ` Jerry Van Baren
2007-04-03 11:37     ` Joakim Tjernlund
2007-04-03 12:06       ` Jerry Van Baren
2007-04-03 12:59       ` [U-Boot-Users] dtb in env sector - was: (Try 2) Please pull Wolfgang Denk
2007-04-03 14:04         ` Joakim Tjernlund
2007-04-03 14:21           ` Jerry Van Baren
2007-04-03 14:36             ` Martin Krause
2007-04-03 15:14             ` Joakim Tjernlund
2007-04-03 15:17               ` Jerry Van Baren
2007-04-03 15:24             ` Wolfgang Denk
2007-04-03 18:53               ` Joakim Tjernlund
2007-04-03 12:53     ` Wolfgang Denk
2007-04-03 12:49   ` Wolfgang Denk
2007-04-03 13:58     ` Joakim Tjernlund
2007-04-03 15:18       ` Wolfgang Denk

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=4616C237.3020301@freescale.com \
    --to=timur@freescale.com \
    --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.