|
@@ -65,14 +65,12 @@ void set_working_fdt_addr(void *addr)
|
|
*/
|
|
*/
|
|
int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
{
|
|
- if (argc < 2) {
|
|
|
|
- cmd_usage(cmdtp);
|
|
|
|
- return 1;
|
|
|
|
- }
|
|
|
|
|
|
+ if (argc < 2)
|
|
|
|
+ return cmd_usage(cmdtp);
|
|
|
|
|
|
- /********************************************************************
|
|
|
|
|
|
+ /*
|
|
* Set the address of the fdt
|
|
* Set the address of the fdt
|
|
- ********************************************************************/
|
|
|
|
|
|
+ */
|
|
if (argv[1][0] == 'a') {
|
|
if (argv[1][0] == 'a') {
|
|
unsigned long addr;
|
|
unsigned long addr;
|
|
/*
|
|
/*
|
|
@@ -116,18 +114,16 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- /********************************************************************
|
|
|
|
|
|
+ /*
|
|
* Move the working_fdt
|
|
* Move the working_fdt
|
|
- ********************************************************************/
|
|
|
|
|
|
+ */
|
|
} else if (strncmp(argv[1], "mo", 2) == 0) {
|
|
} else if (strncmp(argv[1], "mo", 2) == 0) {
|
|
struct fdt_header *newaddr;
|
|
struct fdt_header *newaddr;
|
|
int len;
|
|
int len;
|
|
int err;
|
|
int err;
|
|
|
|
|
|
- if (argc < 4) {
|
|
|
|
- cmd_usage(cmdtp);
|
|
|
|
- return 1;
|
|
|
|
- }
|
|
|
|
|
|
+ if (argc < 4)
|
|
|
|
+ return cmd_usage(cmdtp);
|
|
|
|
|
|
/*
|
|
/*
|
|
* Set the address and length of the fdt.
|
|
* Set the address and length of the fdt.
|
|
@@ -166,9 +162,9 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
}
|
|
}
|
|
working_fdt = newaddr;
|
|
working_fdt = newaddr;
|
|
|
|
|
|
- /********************************************************************
|
|
|
|
|
|
+ /*
|
|
* Make a new node
|
|
* Make a new node
|
|
- ********************************************************************/
|
|
|
|
|
|
+ */
|
|
} else if (strncmp(argv[1], "mk", 2) == 0) {
|
|
} else if (strncmp(argv[1], "mk", 2) == 0) {
|
|
char *pathp; /* path */
|
|
char *pathp; /* path */
|
|
char *nodep; /* new node to add */
|
|
char *nodep; /* new node to add */
|
|
@@ -178,10 +174,8 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
/*
|
|
/*
|
|
* Parameters: Node path, new node to be appended to the path.
|
|
* Parameters: Node path, new node to be appended to the path.
|
|
*/
|
|
*/
|
|
- if (argc < 4) {
|
|
|
|
- cmd_usage(cmdtp);
|
|
|
|
- return 1;
|
|
|
|
- }
|
|
|
|
|
|
+ if (argc < 4)
|
|
|
|
+ return cmd_usage(cmdtp);
|
|
|
|
|
|
pathp = argv[2];
|
|
pathp = argv[2];
|
|
nodep = argv[3];
|
|
nodep = argv[3];
|
|
@@ -202,9 +196,9 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
|
|
- /********************************************************************
|
|
|
|
|
|
+ /*
|
|
* Set the value of a property in the working_fdt.
|
|
* Set the value of a property in the working_fdt.
|
|
- ********************************************************************/
|
|
|
|
|
|
+ */
|
|
} else if (argv[1][0] == 's') {
|
|
} else if (argv[1][0] == 's') {
|
|
char *pathp; /* path */
|
|
char *pathp; /* path */
|
|
char *prop; /* property */
|
|
char *prop; /* property */
|
|
@@ -216,10 +210,8 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
/*
|
|
/*
|
|
* Parameters: Node path, property, optional value.
|
|
* Parameters: Node path, property, optional value.
|
|
*/
|
|
*/
|
|
- if (argc < 4) {
|
|
|
|
- cmd_usage(cmdtp);
|
|
|
|
- return 1;
|
|
|
|
- }
|
|
|
|
|
|
+ if (argc < 4)
|
|
|
|
+ return cmd_usage(cmdtp);
|
|
|
|
|
|
pathp = argv[2];
|
|
pathp = argv[2];
|
|
prop = argv[3];
|
|
prop = argv[3];
|
|
@@ -247,9 +239,9 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
|
|
- /********************************************************************
|
|
|
|
|
|
+ /*
|
|
* Print (recursive) / List (single level)
|
|
* Print (recursive) / List (single level)
|
|
- ********************************************************************/
|
|
|
|
|
|
+ */
|
|
} else if ((argv[1][0] == 'p') || (argv[1][0] == 'l')) {
|
|
} else if ((argv[1][0] == 'p') || (argv[1][0] == 'l')) {
|
|
int depth = MAX_LEVEL; /* how deep to print */
|
|
int depth = MAX_LEVEL; /* how deep to print */
|
|
char *pathp; /* path */
|
|
char *pathp; /* path */
|
|
@@ -281,9 +273,9 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
if (ret != 0)
|
|
if (ret != 0)
|
|
return ret;
|
|
return ret;
|
|
|
|
|
|
- /********************************************************************
|
|
|
|
|
|
+ /*
|
|
* Remove a property/node
|
|
* Remove a property/node
|
|
- ********************************************************************/
|
|
|
|
|
|
+ */
|
|
} else if (strncmp(argv[1], "rm", 2) == 0) {
|
|
} else if (strncmp(argv[1], "rm", 2) == 0) {
|
|
int nodeoffset; /* node offset from libfdt */
|
|
int nodeoffset; /* node offset from libfdt */
|
|
int err;
|
|
int err;
|
|
@@ -321,9 +313,9 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- /********************************************************************
|
|
|
|
|
|
+ /*
|
|
* Display header info
|
|
* Display header info
|
|
- ********************************************************************/
|
|
|
|
|
|
+ */
|
|
} else if (argv[1][0] == 'h') {
|
|
} else if (argv[1][0] == 'h') {
|
|
u32 version = fdt_version(working_fdt);
|
|
u32 version = fdt_version(working_fdt);
|
|
printf("magic:\t\t\t0x%x\n", fdt_magic(working_fdt));
|
|
printf("magic:\t\t\t0x%x\n", fdt_magic(working_fdt));
|
|
@@ -351,16 +343,16 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
fdt_num_mem_rsv(working_fdt));
|
|
fdt_num_mem_rsv(working_fdt));
|
|
printf("\n");
|
|
printf("\n");
|
|
|
|
|
|
- /********************************************************************
|
|
|
|
|
|
+ /*
|
|
* Set boot cpu id
|
|
* Set boot cpu id
|
|
- ********************************************************************/
|
|
|
|
|
|
+ */
|
|
} else if (strncmp(argv[1], "boo", 3) == 0) {
|
|
} else if (strncmp(argv[1], "boo", 3) == 0) {
|
|
unsigned long tmp = simple_strtoul(argv[2], NULL, 16);
|
|
unsigned long tmp = simple_strtoul(argv[2], NULL, 16);
|
|
fdt_set_boot_cpuid_phys(working_fdt, tmp);
|
|
fdt_set_boot_cpuid_phys(working_fdt, tmp);
|
|
|
|
|
|
- /********************************************************************
|
|
|
|
|
|
+ /*
|
|
* memory command
|
|
* memory command
|
|
- ********************************************************************/
|
|
|
|
|
|
+ */
|
|
} else if (strncmp(argv[1], "me", 2) == 0) {
|
|
} else if (strncmp(argv[1], "me", 2) == 0) {
|
|
uint64_t addr, size;
|
|
uint64_t addr, size;
|
|
int err;
|
|
int err;
|
|
@@ -370,9 +362,9 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
if (err < 0)
|
|
if (err < 0)
|
|
return err;
|
|
return err;
|
|
|
|
|
|
- /********************************************************************
|
|
|
|
|
|
+ /*
|
|
* mem reserve commands
|
|
* mem reserve commands
|
|
- ********************************************************************/
|
|
|
|
|
|
+ */
|
|
} else if (strncmp(argv[1], "rs", 2) == 0) {
|
|
} else if (strncmp(argv[1], "rs", 2) == 0) {
|
|
if (argv[2][0] == 'p') {
|
|
if (argv[2][0] == 'p') {
|
|
uint64_t addr, size;
|
|
uint64_t addr, size;
|
|
@@ -417,8 +409,7 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
/* Unrecognized command */
|
|
/* Unrecognized command */
|
|
- cmd_usage(cmdtp);
|
|
|
|
- return 1;
|
|
|
|
|
|
+ return cmd_usage(cmdtp);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#ifdef CONFIG_OF_BOARD_SETUP
|
|
#ifdef CONFIG_OF_BOARD_SETUP
|
|
@@ -430,10 +421,8 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
else if (argv[1][0] == 'c') {
|
|
else if (argv[1][0] == 'c') {
|
|
unsigned long initrd_start = 0, initrd_end = 0;
|
|
unsigned long initrd_start = 0, initrd_end = 0;
|
|
|
|
|
|
- if ((argc != 2) && (argc != 4)) {
|
|
|
|
- cmd_usage(cmdtp);
|
|
|
|
- return 1;
|
|
|
|
- }
|
|
|
|
|
|
+ if ((argc != 2) && (argc != 4))
|
|
|
|
+ return cmd_usage(cmdtp);
|
|
|
|
|
|
if (argc == 4) {
|
|
if (argc == 4) {
|
|
initrd_start = simple_strtoul(argv[2], NULL, 16);
|
|
initrd_start = simple_strtoul(argv[2], NULL, 16);
|
|
@@ -449,8 +438,7 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
/* Unrecognized command */
|
|
/* Unrecognized command */
|
|
- cmd_usage(cmdtp);
|
|
|
|
- return 1;
|
|
|
|
|
|
+ return cmd_usage(cmdtp);
|
|
}
|
|
}
|
|
|
|
|
|
return 0;
|
|
return 0;
|