[U-Boot] [PATCH] cmd: fdt: Fix fdt address information after the movement

From: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com
This patch fixes the address information of fdt.
wrong case: => fdt addr 0x48000000 => fdt move 0x48000000 0x41000000 0xa000 => fdt addr The address of the fdt is 48000000
Active address in this case is 0x41000000.
Signed-off-by: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com Signed-off-by: Marek Vasut marek.vasut+renesas@gmail.com Cc: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com Cc: Nobuhiro Iwamatsu iwamatsu@nigauri.org Cc: Pantelis Antoniou pantelis.antoniou@konsulko.com --- cmd/fdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/fdt.c b/cmd/fdt.c index 8a19a3fdbf..84be26f4f1 100644 --- a/cmd/fdt.c +++ b/cmd/fdt.c @@ -202,7 +202,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) fdt_strerror(err)); return 1; } - working_fdt = newaddr; + set_working_fdt_addr((ulong)newaddr); #ifdef CONFIG_OF_SYSTEM_SETUP /* Call the board-specific fixup routine */ } else if (strncmp(argv[1], "sys", 3) == 0) {

On Thu, 18 Oct 2018 at 12:44, Marek Vasut marek.vasut@gmail.com wrote:
From: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com
This patch fixes the address information of fdt.
wrong case: => fdt addr 0x48000000 => fdt move 0x48000000 0x41000000 0xa000 => fdt addr The address of the fdt is 48000000
Active address in this case is 0x41000000.
Signed-off-by: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com Signed-off-by: Marek Vasut marek.vasut+renesas@gmail.com Cc: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com Cc: Nobuhiro Iwamatsu iwamatsu@nigauri.org Cc: Pantelis Antoniou pantelis.antoniou@konsulko.com
cmd/fdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
Also, the cast to struct fdt_header * in the code above looks wrong. I think it should have a map_sysmem() in there.

On 11/17/2018 01:13 AM, Simon Glass wrote:
On Thu, 18 Oct 2018 at 12:44, Marek Vasut marek.vasut@gmail.com wrote:
From: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com
This patch fixes the address information of fdt.
wrong case: => fdt addr 0x48000000 => fdt move 0x48000000 0x41000000 0xa000 => fdt addr The address of the fdt is 48000000
Active address in this case is 0x41000000.
Signed-off-by: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com Signed-off-by: Marek Vasut marek.vasut+renesas@gmail.com Cc: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com Cc: Nobuhiro Iwamatsu iwamatsu@nigauri.org Cc: Pantelis Antoniou pantelis.antoniou@konsulko.com
cmd/fdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
Also, the cast to struct fdt_header * in the code above looks wrong. I think it should have a map_sysmem() in there.
Rather than that, I wonder, what would happen if we put FDT above 32bit address space and used the 'fdt' command ? Would that work or not ? I suspect the later ...

Hi Marek,
On Sun, 18 Nov 2018 at 08:02, Marek Vasut marek.vasut@gmail.com wrote:
On 11/17/2018 01:13 AM, Simon Glass wrote:
On Thu, 18 Oct 2018 at 12:44, Marek Vasut marek.vasut@gmail.com wrote:
From: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com
This patch fixes the address information of fdt.
wrong case: => fdt addr 0x48000000 => fdt move 0x48000000 0x41000000 0xa000 => fdt addr The address of the fdt is 48000000
Active address in this case is 0x41000000.
Signed-off-by: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com Signed-off-by: Marek Vasut marek.vasut+renesas@gmail.com Cc: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com Cc: Nobuhiro Iwamatsu iwamatsu@nigauri.org Cc: Pantelis Antoniou pantelis.antoniou@konsulko.com
cmd/fdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
Also, the cast to struct fdt_header * in the code above looks wrong. I think it should have a map_sysmem() in there.
Rather than that, I wonder, what would happen if we put FDT above 32bit address space and used the 'fdt' command ? Would that work or not ? I suspect the later ...
I don't know. I'm looking forward to having tests for all these cases one day.
Regards, Simon

On Sun, 18 Nov 2018 at 14:22, Simon Glass sjg@chromium.org wrote:
Hi Marek,
On Sun, 18 Nov 2018 at 08:02, Marek Vasut marek.vasut@gmail.com wrote:
On 11/17/2018 01:13 AM, Simon Glass wrote:
On Thu, 18 Oct 2018 at 12:44, Marek Vasut marek.vasut@gmail.com wrote:
From: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com
This patch fixes the address information of fdt.
wrong case: => fdt addr 0x48000000 => fdt move 0x48000000 0x41000000 0xa000 => fdt addr The address of the fdt is 48000000
Active address in this case is 0x41000000.
Signed-off-by: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com Signed-off-by: Marek Vasut marek.vasut+renesas@gmail.com Cc: Hiroyuki Yokoyama hiroyuki.yokoyama.vx@renesas.com Cc: Nobuhiro Iwamatsu iwamatsu@nigauri.org Cc: Pantelis Antoniou pantelis.antoniou@konsulko.com
cmd/fdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
Also, the cast to struct fdt_header * in the code above looks wrong. I think it should have a map_sysmem() in there.
Rather than that, I wonder, what would happen if we put FDT above 32bit address space and used the 'fdt' command ? Would that work or not ? I suspect the later ...
I don't know. I'm looking forward to having tests for all these cases one day.
Applied to u-boot-dm, thanks!
participants (2)
-
Marek Vasut
-
Simon Glass