[U-Boot] [PATCH 1/2] cmd_fdt: Actually fix fdt command in sandbox

Commit 90bac29a76bc8d649b41a55f2786c0abef9bb2c1 claims to fix this bug that was introduced in commit a92fd6577ea17751ead9b50243e3c562125cf581 but doesn't actually make the change that the commit message describes.
Actually fix the bug this time.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com ---
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 dc59fab..51c585b 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((void *)blob); + set_working_fdt_addr((void *)addr);
if (argc >= 2) { int len;

If you want to inspect the control device tree using the fdt command, the "fdt address -c" command previously unhelpfully printed the phys memory address of the device tree. That address could not then be used to set the fdt address for inspection.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
---
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 51c585b..868558d 100644 --- a/common/cmd_fdt.c +++ b/common/cmd_fdt.c @@ -111,7 +111,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (!blob || !fdt_valid(&blob)) return 1; printf("The address of the fdt is %#08lx\n", - control ? (ulong)blob : + control ? (ulong)map_to_sysmem(blob) : getenv_hex("fdtaddr", 0)); return 0; }

Hello Joe,
On Tue, 3 Feb 2015 16:06:07 -0600, Joe Hershberger joe.hershberger@ni.com wrote:
If you want to inspect the control device tree using the fdt command, the "fdt address -c" command previously unhelpfully printed the phys memory address of the device tree. That address could not then be used to set the fdt address for inspection.
Nitpick: your commit message says what the problem is, but does not say what solution is chosen. Granted, here understanding that from the code is trivial, but I'd still like it if the message made it clear.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
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 51c585b..868558d 100644 --- a/common/cmd_fdt.c +++ b/common/cmd_fdt.c @@ -111,7 +111,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (!blob || !fdt_valid(&blob)) return 1; printf("The address of the fdt is %#08lx\n",
control ? (ulong)blob :
}control ? (ulong)map_to_sysmem(blob) : getenv_hex("fdtaddr", 0)); return 0;
-- 1.7.11.5
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Amicalement,

Hi Joe,
On 3 February 2015 at 15:06, Joe Hershberger joe.hershberger@ni.com wrote:
Commit 90bac29a76bc8d649b41a55f2786c0abef9bb2c1 claims to fix this bug that was introduced in commit a92fd6577ea17751ead9b50243e3c562125cf581 but doesn't actually make the change that the commit message describes.
Actually fix the bug this time.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
common/cmd_fdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Acked-by: Simon Glass sjg@chromium.org
set_working_fdt_addr() is very confusing. It should take a ulong as a parameter, not a void *.
diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c index dc59fab..51c585b 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((void *)blob);
set_working_fdt_addr((void *)addr); if (argc >= 2) { int len;
-- 1.7.11.5
Regards, Simon

Commit 90bac29a76bc8d649b41a55f2786c0abef9bb2c1 claims to fix this bug that was introduced in commit a92fd6577ea17751ead9b50243e3c562125cf581 but doesn't actually make the change that the commit message describes.
Actually fix the bug this time.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
---
Changes in v2: -Changed the prototype of set_working_fdt_addr() to ulong instead of void *
common/bootm.c | 2 +- common/cmd_fdt.c | 8 ++++---- common/image-fdt.c | 2 +- include/fdt_support.h | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/common/bootm.c b/common/bootm.c index e2dc164..34f60bb 100644 --- a/common/bootm.c +++ b/common/bootm.c @@ -233,7 +233,7 @@ static int bootm_find_fdt(int flag, int argc, char * const argv[]) return 1; }
- set_working_fdt_addr(images.ft_addr); + set_working_fdt_addr((ulong)images.ft_addr);
return 0; } diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c index dc59fab..4e9bc6b 100644 --- a/common/cmd_fdt.c +++ b/common/cmd_fdt.c @@ -38,13 +38,13 @@ static int is_printable_string(const void *data, int len); */ struct fdt_header *working_fdt;
-void set_working_fdt_addr(void *addr) +void set_working_fdt_addr(ulong addr) { void *buf;
- buf = map_sysmem((ulong)addr, 0); + buf = map_sysmem(addr, 0); working_fdt = buf; - setenv_addr("fdtaddr", addr); + setenv_addr("fdtaddr", (void *)addr); }
/* @@ -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((void *)blob); + set_working_fdt_addr(addr);
if (argc >= 2) { int len; diff --git a/common/image-fdt.c b/common/image-fdt.c index e3f06cd..d9e4728 100644 --- a/common/image-fdt.c +++ b/common/image-fdt.c @@ -190,7 +190,7 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size) *of_flat_tree = of_start; *of_size = of_len;
- set_working_fdt_addr(*of_flat_tree); + set_working_fdt_addr((ulong)*of_flat_tree); return 0;
error: diff --git a/include/fdt_support.h b/include/fdt_support.h index 1f19fe4..ae5e8a3 100644 --- a/include/fdt_support.h +++ b/include/fdt_support.h @@ -100,7 +100,7 @@ void ft_pci_setup(void *blob, bd_t *bd); */ int ft_system_setup(void *blob, bd_t *bd);
-void set_working_fdt_addr(void *addr); +void set_working_fdt_addr(ulong addr); int fdt_shrink_to_minimum(void *blob); int fdt_increase_size(void *fdt, int add_len);

If you want to inspect the control device tree using the fdt command, the "fdt address -c" command previously unhelpfully printed the phys memory address of the device tree. That address could not then be used to set the fdt address for inspection. Changed the resulting print to one that can be copied directly to the 'fdt address <addr>' command.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
---
Changes in v2: -Reworded commit message
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 4e9bc6b..b213105 100644 --- a/common/cmd_fdt.c +++ b/common/cmd_fdt.c @@ -111,7 +111,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (!blob || !fdt_valid(&blob)) return 1; printf("The address of the fdt is %#08lx\n", - control ? (ulong)blob : + control ? (ulong)map_to_sysmem(blob) : getenv_hex("fdtaddr", 0)); return 0; }

On 3 February 2015 at 18:04, Joe Hershberger joe.hershberger@ni.com wrote:
If you want to inspect the control device tree using the fdt command, the "fdt address -c" command previously unhelpfully printed the phys memory address of the device tree. That address could not then be used to set the fdt address for inspection. Changed the resulting print to one that can be copied directly to the 'fdt address <addr>' command.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
Changes in v2: -Reworded commit message
common/cmd_fdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Acked-by: Simon Glass sjg@chromium.org

On 3 February 2015 at 18:04, Joe Hershberger joe.hershberger@ni.com wrote:
Commit 90bac29a76bc8d649b41a55f2786c0abef9bb2c1 claims to fix this bug that was introduced in commit a92fd6577ea17751ead9b50243e3c562125cf581 but doesn't actually make the change that the commit message describes.
Actually fix the bug this time.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
Changes in v2: -Changed the prototype of set_working_fdt_addr() to ulong instead of void *
common/bootm.c | 2 +- common/cmd_fdt.c | 8 ++++---- common/image-fdt.c | 2 +- include/fdt_support.h | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-)
Acked-by: Simon Glass sjg@chromium.org

Commit 90bac29a76bc8d649b41a55f2786c0abef9bb2c1 claims to fix this bug that was introduced in commit a92fd6577ea17751ead9b50243e3c562125cf581 but doesn't actually make the change that the commit message describes.
Actually fix the bug this time.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
---
Changes in v3: -Change the setenv call to the ulong version
Changes in v2: -Changed the prototype of set_working_fdt_addr() to ulong instead of void *
common/bootm.c | 2 +- common/cmd_fdt.c | 8 ++++---- common/image-fdt.c | 2 +- include/fdt_support.h | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/common/bootm.c b/common/bootm.c index e2dc164..34f60bb 100644 --- a/common/bootm.c +++ b/common/bootm.c @@ -233,7 +233,7 @@ static int bootm_find_fdt(int flag, int argc, char * const argv[]) return 1; }
- set_working_fdt_addr(images.ft_addr); + set_working_fdt_addr((ulong)images.ft_addr);
return 0; } diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c index dc59fab..5878496 100644 --- a/common/cmd_fdt.c +++ b/common/cmd_fdt.c @@ -38,13 +38,13 @@ static int is_printable_string(const void *data, int len); */ struct fdt_header *working_fdt;
-void set_working_fdt_addr(void *addr) +void set_working_fdt_addr(ulong addr) { void *buf;
- buf = map_sysmem((ulong)addr, 0); + buf = map_sysmem(addr, 0); working_fdt = buf; - setenv_addr("fdtaddr", addr); + setenv_ulong("fdtaddr", addr); }
/* @@ -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((void *)blob); + set_working_fdt_addr(addr);
if (argc >= 2) { int len; diff --git a/common/image-fdt.c b/common/image-fdt.c index e3f06cd..d9e4728 100644 --- a/common/image-fdt.c +++ b/common/image-fdt.c @@ -190,7 +190,7 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size) *of_flat_tree = of_start; *of_size = of_len;
- set_working_fdt_addr(*of_flat_tree); + set_working_fdt_addr((ulong)*of_flat_tree); return 0;
error: diff --git a/include/fdt_support.h b/include/fdt_support.h index 1f19fe4..ae5e8a3 100644 --- a/include/fdt_support.h +++ b/include/fdt_support.h @@ -100,7 +100,7 @@ void ft_pci_setup(void *blob, bd_t *bd); */ int ft_system_setup(void *blob, bd_t *bd);
-void set_working_fdt_addr(void *addr); +void set_working_fdt_addr(ulong addr); int fdt_shrink_to_minimum(void *blob); int fdt_increase_size(void *fdt, int add_len);

If you want to inspect the control device tree using the fdt command, the "fdt address -c" command previously unhelpfully printed the phys memory address of the device tree. That address could not then be used to set the fdt address for inspection. Changed the resulting print to one that can be copied directly to the 'fdt address <addr>' command.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
---
Changes in v3: None Changes in v2: -Reworded commit message
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 5878496..48b3e70 100644 --- a/common/cmd_fdt.c +++ b/common/cmd_fdt.c @@ -111,7 +111,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (!blob || !fdt_valid(&blob)) return 1; printf("The address of the fdt is %#08lx\n", - control ? (ulong)blob : + control ? (ulong)map_to_sysmem(blob) : getenv_hex("fdtaddr", 0)); return 0; }

On 4 February 2015 at 20:56, Joe Hershberger joe.hershberger@ni.com wrote:
If you want to inspect the control device tree using the fdt command, the "fdt address -c" command previously unhelpfully printed the phys memory address of the device tree. That address could not then be used to set the fdt address for inspection. Changed the resulting print to one that can be copied directly to the 'fdt address <addr>' command.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
Changes in v3: None
Acked-by: Simon Glass sjg@chromium.org
Changes in v2: -Reworded commit message
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 5878496..48b3e70 100644 --- a/common/cmd_fdt.c +++ b/common/cmd_fdt.c @@ -111,7 +111,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (!blob || !fdt_valid(&blob)) return 1; printf("The address of the fdt is %#08lx\n",
control ? (ulong)blob :
control ? (ulong)map_to_sysmem(blob) : getenv_hex("fdtaddr", 0)); return 0; }
-- 1.7.11.5

On 5 February 2015 at 22:11, Simon Glass sjg@chromium.org wrote:
On 4 February 2015 at 20:56, Joe Hershberger joe.hershberger@ni.com wrote:
If you want to inspect the control device tree using the fdt command, the "fdt address -c" command previously unhelpfully printed the phys memory address of the device tree. That address could not then be used to set the fdt address for inspection. Changed the resulting print to one that can be copied directly to the 'fdt address <addr>' command.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
Changes in v3: None
Acked-by: Simon Glass sjg@chromium.org
Applied to u-boot-fdt, thanks!
Changes in v2: -Reworded commit message

On 4 February 2015 at 20:56, Joe Hershberger joe.hershberger@ni.com wrote:
Commit 90bac29a76bc8d649b41a55f2786c0abef9bb2c1 claims to fix this bug that was introduced in commit a92fd6577ea17751ead9b50243e3c562125cf581 but doesn't actually make the change that the commit message describes.
Actually fix the bug this time.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
Changes in v3: -Change the setenv call to the ulong version
Acked-by: Simon Glass sjg@chromium.org

On 5 February 2015 at 22:11, Simon Glass sjg@chromium.org wrote:
On 4 February 2015 at 20:56, Joe Hershberger joe.hershberger@ni.com wrote:
Commit 90bac29a76bc8d649b41a55f2786c0abef9bb2c1 claims to fix this bug that was introduced in commit a92fd6577ea17751ead9b50243e3c562125cf581 but doesn't actually make the change that the commit message describes.
Actually fix the bug this time.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com
Changes in v3: -Change the setenv call to the ulong version
Acked-by: Simon Glass sjg@chromium.org
Applied to u-boot-fdt, thanks!
participants (3)
-
Albert ARIBAUD
-
Joe Hershberger
-
Simon Glass