[PATCH] of: fix how an initrd is passed to Linux

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Thu Apr 25 17:00:37 EDT 2013


On Thu, Apr 25, 2013 at 02:49:47PM +0200, Uwe Kleine-König wrote:
> Linux expects linux,initrd-end to contain the first unused address. As
> this doesn't match the end semantic used by barebox (i.e. end contains
> the last used address) adding one is necessary.
> 
> Without this change Linux fails for me to correctly extract a gzipped
> cpio archive provided as initrd.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
> ---
>  drivers/of/base.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index d22031f..6cb5521 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -1078,6 +1078,10 @@ int of_device_is_stdout_path(struct device_d *dev)
>   *
>   * Add initrd properties to the devicetree, or, if end is 0,
>   * delete them.
> + *
> + * Note that Linux interprets end differently than Barebox. For Linux end points
> + * to the first address after the memory occupied by the image while barebox
> + * lets end pointing the the last occupied byte.
The first "the" in the line above should be a "to". Sascha: Assuming you
are happy with the patch: Can you fix this up while committing?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the barebox mailing list