mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Trent Piepho <tpiepho@kymetacorp.com>
Cc: barebox <barebox@lists.infradead.org>
Subject: Re: [PATCH] socfpga: Find partition with environment via device tree
Date: Fri, 11 Dec 2015 10:30:50 +0100	[thread overview]
Message-ID: <20151211093050.GX11966@pengutronix.de> (raw)
In-Reply-To: <1449800007.26955.96.camel@rtred1test09.kymeta.local>

On Fri, Dec 11, 2015 at 02:13:21AM +0000, Trent Piepho wrote:
> socfpga loads the environment from a file named "barebox.env" located
> on the device "/dev/mmc0.1".  Both those names are hard-coded in the
> socfpga code and can't be changed.
> 
> Barebox supports selecting the location of the environment using a
> "barebox,environment" node in device tree's "chosen" node.
> 
> Change socfpga to use this mechanism by looking for barebox.env in the
> device or partition specified in the device tree.
> 
> The filename is still hard-coded.  Someone who wants to change it
> could put that into the device tree too (new file-name property?  3rd
> string in device-path?).
> 
> Remove the stat() call in socfpga_env_init(), as mount() already
> checks if the device exists.  Also remove device_detect_by_name() call
> as the barebox env device code now takes care of that for us.
> 
> Signed-off-by: Trent Piepho <tpiepho@kymetacorp.com>
> ---
> 
> OMAP could do the same thing...
> 
>  arch/arm/dts/socfpga.dtsi       |  7 +++++++
>  arch/arm/mach-socfpga/generic.c | 37 +++++++++++++------------------------
>  2 files changed, 20 insertions(+), 24 deletions(-)
> 
> diff --git a/arch/arm/dts/socfpga.dtsi b/arch/arm/dts/socfpga.dtsi
> index d4d498b..1d0d6ff 100644
> --- a/arch/arm/dts/socfpga.dtsi
> +++ b/arch/arm/dts/socfpga.dtsi
> @@ -1,4 +1,11 @@
>  / {
> +	chosen {
> +                environment@0 {
> +                        compatible = "barebox,environment";
> +                        device-path = &mmc, "partname:1";
> +                };
> +	};

The "barebox,environment" compatible describes a binding which takes
partition described in device-path as a raw file containing a barebox
envfs.
What you have here is a partition which contains a FAT which has a
barebox envfs in a file. I think it's fine to extend the binding (and
the barebox env driver) to handle that case.  What you are doing here is
to smuggle code behind the driver and bend the environment path to
somewhere else. That is not ok. I think what we can do is to add some
file-path property which contains the path and tells the barebox
environment driver to not use the whole partition but instead to mount
it and use the file specified in the file-path property.

As an alternative which I might even like better is to extend the
partition binding to be able to describe a file in a partition, like:

environment@0 {
	compatible = "barebox,environment";
	device-path = &env;
};

eeprom@foo {
	partition@0 {
		reg = <0, 0x8000>;
		label = "foo";
		env: file@0 {
			path = "barebox.env";
		};
	};
};

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  reply	other threads:[~2015-12-11  9:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-11  2:13 Trent Piepho
2015-12-11  9:30 ` Sascha Hauer [this message]
2015-12-11 20:05   ` Trent Piepho
2015-12-14 10:01     ` Sascha Hauer
2015-12-14 19:24       ` Trent Piepho
2015-12-15  7:11         ` Sascha Hauer

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=20151211093050.GX11966@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=tpiepho@kymetacorp.com \
    /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