- else if (argv[1][0] == 'c')
- fdt_chosen(fdt, 0, 0, 1);
+ else if (argv[1][0] == 'c') {
+ unsigned long initrd_start = 0, initrd_end = 0;
+
+ if ((argc != 2) && (argc != 4)) {
+ cmd_usage(cmdtp);
+ return 1;
+ }
+
+ if (argc == 4) {
+ initrd_start = simple_strtoul(argv[2], NULL, 16);
+ initrd_end = simple_strtoul(argv[3], NULL, 16);
+ }
+
+ fdt_chosen(working_fdt, 1);
+ fdt_initrd(working_fdt, initrd_start, initrd_end, 1);
+ }
+ /* resize the fdt */
+ else if (strncmp(argv[1], "re", 2) == 0) {
+ fdt_resize(working_fdt);
+ }