summaryrefslogtreecommitdiff
path: root/common/cmd_fdt.c
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2008-08-15 08:24:39 -0500
committerWolfgang Denk <wd@denx.de>2008-08-26 23:37:54 +0200
commit54f9c86691309b2f919f567f9255b8bcad2c7651 (patch)
tree80d5b034600494cdbbbac4a3fba2a78487e052cd /common/cmd_fdt.c
parent06a09918f3903450313e2047a9cc258bf5872f46 (diff)
downloadu-boot-imx-54f9c86691309b2f919f567f9255b8bcad2c7651.zip
u-boot-imx-54f9c86691309b2f919f567f9255b8bcad2c7651.tar.gz
u-boot-imx-54f9c86691309b2f919f567f9255b8bcad2c7651.tar.bz2
bootm: Set working fdt address as part of the bootm flow
Set the fdt working address so "fdt FOO" commands can be used as part of the bootm flow. Also set an the environment variable "fdtaddr" with the value. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'common/cmd_fdt.c')
-rw-r--r--common/cmd_fdt.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c
index 94bca46..8bc900a 100644
--- a/common/cmd_fdt.c
+++ b/common/cmd_fdt.c
@@ -50,6 +50,16 @@ static int fdt_print(const char *pathp, char *prop, int depth);
*/
struct fdt_header *working_fdt;
+void set_working_fdt_addr(void *addr)
+{
+ char buf[17];
+
+ working_fdt = addr;
+
+ sprintf(buf, "%lx", (unsigned long)addr);
+ setenv("fdtaddr", buf);
+}
+
/*
* Flattened Device Tree command, see the help for parameter definitions.
*/
@@ -64,6 +74,7 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
* Set the address of the fdt
********************************************************************/
if (argv[1][0] == 'a') {
+ unsigned long addr;
/*
* Set the address [and length] of the fdt.
*/
@@ -75,7 +86,8 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
return 0;
}
- working_fdt = (struct fdt_header *)simple_strtoul(argv[2], NULL, 16);
+ addr = simple_strtoul(argv[2], NULL, 16);
+ set_working_fdt_addr((void *)addr);
if (!fdt_valid()) {
return 1;