public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Wolfgang Denk <wd@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 5/6] cmd_nvedit.c: allow board-specific code before/after saving the environment
Date: Fri, 18 May 2012 13:28:55 +0200	[thread overview]
Message-ID: <20120518112855.D7467202A22@gemini.denx.de> (raw)
In-Reply-To: <4FB57D2D.3090902@freescale.com>

Dear Timur,

In message <4FB57D2D.3090902@freescale.com> you wrote:
> 
> > I think whoever told you this was right.  Let it break.
> 
> Come on, Wolfgang.  That's not acceptable.

Why not?  But adding arbitrary complexity and ugliness into U-Boot
mainline is acceptable?  Why?


> > We cannot add pre- and post-hooks all ever the place for brain-dead
> > designs that need to do this and that before and after doing perfectly
> > things.
> 
> Well, I already have code in U-boot that does this.  If you look at
> board/freescale/p1022ds/diu.c, you'll see that I override each of the NOR
> flash accessors.  This is horribly inefficient, but it works.

This is already streching the code to the limits, and the only reason
you ever got this thrugh is that it's FSL specific code, you you have
to deal yourself with this ugliness.  I don;t think you will find good
arguments to convince me adding such stuff into common code, though.

> Unfortunately, it only covers NOR flash.  The new design covers NOR and NAND.

Well, your code does not really cover NOR flash.  I think it covers
only a small subset of the use cases, but horribly fails else.

For example, what happens when I just use "md" or "itest *addr" or
similar trying to read NOR flash while the display is on?

You _do_ have a broken hardware design, and if you cannot access NOR
flash with display running, and vice versa, than just accept this
fact.

Feel free to provide commands to switch mode, but don't lard the code
with hooks here and there trying to fix what cannot be fixed.


> The last two patches of this patchset are a vast improvement, but they
> require a board hook (and using Mike's idea, only one hook is necessary,
> not two).
> 
> As for 'all over the place", I think it's unfair to say my one board hook
> function is going to result in "all over the place" hacks.

Well, you try again to fix just a single use-case, leaving all the
others unsolved.  It makes zero sense to fix "saveenv" while not
fixing all other access modes to the same storage device.

Yes, it is a pain if you have to run something like

	=> busmux flash;saveenv;busmux diu

but the ugliness comes from the hardware design, so we have no reasoin
to camouflage it.  Let people see what is going on under the hood - if
this is done in a clean way, you don't have to be ashamed.

> > It makes no sense adding this to saveenv, because there will be othe
> > rplaces in the code that need to to the same - like if it's NAND
> > flash, you will probabaly need to do the same for all NAND related
> > commands.
> 
> Actually, the same code works for saving the environment to NAND flash.
> This is how the board code will look:

But this again works only for thesingle use case of the "saveenv"
command.

This makes no sense - it's still broken, and trying to fix it using
this approach does not scale and/or does not work.

> If you have a better idea, then I'm all ears.  I could implement my own
> version of saveenv(), but the current design of U-boot does not allow me
> to have two functions called saveenv().

Your problem is not just "saveenv".  Your problem is that you need to
switch modes.  So provide a command to switch modes, and use this.

Yes, this is a pain, and it is less from perfect. But you cannot have
a perfect solution on broken hardware.  It makes no sense to waste
lots of efforts on this.  If you're ugly, you are still ugly even if
wearing expensive clothes.

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
Keep your head and your heart going in the right  direction  and  you
will not have to worry about your feet.

  parent reply	other threads:[~2012-05-18 11:28 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-04 22:21 [U-Boot] [PATCH 1/6] powerpc/85xx: minor clean-ups to the P2020DS board header file Timur Tabi
2012-05-04 22:21 ` [U-Boot] [PATCH 2/6] powerpc/85xx: fdt_set_phy_handle() should return an error code Timur Tabi
2012-05-04 22:21 ` [U-Boot] [PATCH 3/6] powerpc/85xx: clean up P1022DS board configuration header file Timur Tabi
2012-05-04 22:21 ` [U-Boot] [PATCH 4/6] lib/powerpc: addrmap_phys_to_virt() should return a pointer Timur Tabi
2012-05-04 22:21 ` [U-Boot] [PATCH 5/6] cmd_nvedit.c: allow board-specific code before/after saving the environment Timur Tabi
2012-05-14  5:20   ` Mike Frysinger
2012-05-14 16:10     ` Timur Tabi
2012-05-15  5:14       ` Mike Frysinger
2012-05-17 22:18       ` Wolfgang Denk
2012-05-17 22:35         ` Timur Tabi
2012-05-18  2:46           ` Mike Frysinger
2012-05-18 11:28           ` Wolfgang Denk [this message]
2012-05-18 15:58             ` Timur Tabi
2012-05-18 16:02               ` Jeroen Hofstee
2012-05-18 18:24                 ` Wolfgang Denk
2012-05-18 18:23               ` Wolfgang Denk
2012-05-18 18:29               ` Fabio Estevam
2012-05-17 22:48         ` Scott Wood
2012-05-17 22:53           ` Timur Tabi
2012-05-18  2:14             ` Scott Wood
2012-05-18  2:21               ` Tabi Timur-B04825
2012-05-18  2:30                 ` Scott Wood
2012-05-18 16:00                   ` Timur Tabi
2012-05-18 16:13                     ` Scott Wood
2012-05-18 16:17                       ` Timur Tabi
2012-05-18 16:29                         ` Scott Wood
2012-05-18 17:08                           ` Timur Tabi
2012-05-18 17:21                             ` Scott Wood
2012-05-18 18:13                               ` McClintock Matthew-B29882
2012-05-18 18:28                           ` Wolfgang Denk
2012-05-17 21:18     ` Timur Tabi
2012-05-04 22:21 ` [U-Boot] [PATCH 6/6] powerpc/85xx: p1022ds: use the saveenv board preparation functions Timur Tabi

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=20120518112855.D7467202A22@gemini.denx.de \
    --to=wd@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox