From: Timur Tabi <timur@freescale.com>
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: Thu, 17 May 2012 17:35:25 -0500 [thread overview]
Message-ID: <4FB57D2D.3090902@freescale.com> (raw)
In-Reply-To: <20120517221808.2AEAE206271@gemini.denx.de>
Wolfgang Denk wrote:
> I think whoever told you this was right. Let it break.
Come on, Wolfgang. That's not acceptable.
> 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.
Unfortunately, it only covers NOR flash. The new design covers NOR and NAND.
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.
> 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:
/*
* While the DIU is active, the localbus is not available. Therefore, in
* order to support the saveenv command to localbus devices, we need to
* temporarily disable the DIU and enable the localbus. To do this, we
* provide our own implementation of board_saveenv(). This function is called
* by do_env_save().
*/
#if defined(CONFIG_ENV_IS_IN_NAND) || defined(CONFIG_ENV_IS_IN_FLASH)
int board_saveenv(void)
{
int switched, ret;
switched = set_mux_to_lbc();
ret = saveenv();
if (switched)
set_mux_to_diu();
return ret;
}
#endif
> cmd_nvedit.c is definitely the wrong place for this.
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().
--
Timur Tabi
Linux kernel developer at Freescale
next prev parent reply other threads:[~2012-05-17 22:35 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 [this message]
2012-05-18 2:46 ` Mike Frysinger
2012-05-18 11:28 ` Wolfgang Denk
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=4FB57D2D.3090902@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox