  
  
  #define KEXEC_ARCH_OPT_STR KEXEC_OPT_STR ""
-diff --git a/kexec/arch/mips/kexec-elf-mips.c b/kexec/arch/mips/kexec-elf-mips.c
-index 849a7ba..5c0e535 100644
 --- a/kexec/arch/mips/kexec-elf-mips.c
 +++ b/kexec/arch/mips/kexec-elf-mips.c
-@@ -141,35 +141,37 @@ int elf_mips_load(int argc, char **argv, const char *buf, off_t len,
+@@ -141,45 +141,49 @@ int elf_mips_load(int argc, char **argv,
  	else
  		cmdline_addr = 0;
  

 kexec/arch/mips/kexec-mips.h           |  1 +
 4 files changed, 39 insertions(+), 28 deletions(-)

diff --git a/kexec/arch/mips/include/arch/options.h b/kexec/arch/mips/include/arch/options.h
index 416e224..18d2811 100644
--- a/kexec/arch/mips/include/arch/options.h
+++ b/kexec/arch/mips/include/arch/options.h
@@ -5,6 +5,7 @@

-	} else {
-		create_flatten_tree(&dtb_buf, &dtb_length, cmdline_buf + strlen(CMDLINE_PREFIX));
-	}
-
-	if (arch_options.initrd_file) {
-		initrd_buf = slurp_file(arch_options.initrd_file, &initrd_size);
 
-		/* Create initrd entries in dtb - although at this time
-		 * they would not point to the correct location */
-		dtb_set_initrd(&dtb_buf, &dtb_length, initrd_buf, initrd_buf + initrd_size);
-
-		initrd_base = add_buffer(info, initrd_buf, initrd_size,
-					initrd_size, sizeof(void *),
-					_ALIGN_UP(kernel_addr + kernel_size + dtb_length,
-						pagesize), 0x0fffffff, 1);
-
-		/* Now that the buffer for initrd is prepared, update the dtb
-		 * with an appropriate location */
-		dtb_set_initrd(&dtb_buf, &dtb_length, initrd_base, initrd_base + initrd_size);
+	if (!arch_options.no_dtb) {
+		/* MIPS systems that have been converted to use device tree
+		 * passed through UHI will use commandline in the DTB and
