[U-Boot] [PATCH 1/1] cmd, fdt: fix working_fdt is set to wrong value

Simon Glass sjg at chromium.org
Mon Dec 22 20:54:18 CET 2014


Hi Hua,

On 21 December 2014 at 13:45, Hua Yanghao <huayanghao at gmail.com> wrote:
>
> Being a long time u-boot developer, this is the first time I'm trying
> to get some fix for the open source code back to mainline.
> If anything wrong during the process, please be gentle :-) Thank you.
>
> From 225c8f8f2af4cf6092260e5c133d90096e2f3352 Mon Sep 17 00:00:00 2001
> From: Hua Yanghao <huayanghao at gmail.com>
> Date: Mon, 22 Dec 2014 04:32:39 +0800
> Subject: [PATCH 1/1] cmd, fdt: fix working_fdt is set to wrong value
>
> Instead of setting working_fdt to map_sysmem(addr) (e.g. blob), it should be set
> to addr directly as inside set_working_fdt_addr it uses map_sysmem(addr) again.
> To test: ./u-boot -d dts/dt.bin , then issue: fdt addr 0x100, fdt print will
> then cause an segmentation fault. After this fix fdt print is functional.
> ---
>  common/cmd_fdt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c
> index 5640ded..d5eebcb 100644
> --- a/common/cmd_fdt.c
> +++ b/common/cmd_fdt.c
> @@ -123,7 +123,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int
> argc, char * const argv[])
>   if (control)
>   gd->fdt_blob = blob;
>   else
> - set_working_fdt_addr(blob);
> + set_working_fdt_addr((void *)addr);
>
>   if (argc >= 2) {
>   int  len;

I think maybe your patch generation is a bit broken as the indentation
has been lost. If you don't have git send-email set up you should
probably look at that, and use patman to send patches.

This change looks right apart from that. You could also look at
changing the argument of set_working_fdt_addr() to ulong if you like.

Regards,
Simon


More information about the U-Boot mailing list