Add qemu 2.4.0
[kvmfornfv.git] / qemu / dtc / tests / test_kernel_dts
diff --git a/qemu/dtc/tests/test_kernel_dts b/qemu/dtc/tests/test_kernel_dts
new file mode 100755 (executable)
index 0000000..238f3f7
--- /dev/null
@@ -0,0 +1,86 @@
+#!/usr/bin/perl
+
+my $dtc_old = "/home/jdl/FSL/dtc/dtc-old";
+my $dtc_new = "/home/jdl/FSL/dtc/dtc-new";
+
+my $basic_options = "-b 0 -f -I dts -O dtb";
+
+my $linux_dts_dir = "/usr/src/linux-2.6/arch/powerpc/boot/dts";
+
+# Yeah, sure, we could, like, readdir() this instead...
+my @boards = (
+             "bamboo",
+             "ebony",
+             "ep88xc",
+             "holly",
+             "kilauea",
+             "kuroboxHD",
+             "kuroboxHG",
+             "lite5200",
+             "lite5200b",
+             "mpc7448hpc2",
+             "mpc8272ads",
+             "mpc8313erdb",
+             "mpc832x_mds",
+             "mpc832x_rdb",
+             "mpc8349emitx",
+             "mpc8349emitxgp",
+             "mpc834x_mds",
+             "mpc836x_mds",
+             "mpc8540ads",
+             "mpc8541cds",
+             "mpc8544ds",
+             "mpc8548cds",
+             "mpc8555cds",
+             "mpc8560ads",
+             "mpc8568mds",
+             "mpc8572ds",
+             "mpc8610_hpcd",
+             "mpc8641_hpcn",
+             "mpc866ads",      # Feh.  Bad node references...
+             "mpc885ads",
+             "pq2fads",
+             "prpmc2800",
+             "ps3",
+             "sequoia",
+             "walnut",
+);
+
+foreach my $board (@boards) {
+       my $dts_file = "$linux_dts_dir/$board.dts";
+
+       my $old_dtb_file = "/tmp/$board.dtb.old";
+       my $new_dtb_file = "/tmp/$board.dtb.new";
+
+       my $cmd_old = "$dtc_old $basic_options -o $old_dtb_file $dts_file";
+       my $cmd_new = "$dtc_new $basic_options -o $new_dtb_file $dts_file";
+       my $cmd_cmp = "cmp $old_dtb_file $new_dtb_file";
+
+       print "------------------------------------------------\n";
+       print "OLD: $cmd_old\n";
+       unlink($old_dtb_file) if (-f $old_dtb_file);
+       system("$cmd_old >& /dev/null");
+       my $status = $?;
+       if ($status) {
+               print "    FAILED to run old DTC on $board\n";
+       }
+
+       print "NEW: $cmd_new\n";
+       unlink($new_dtb_file) if (-f $new_dtb_file);
+       system("$cmd_new >& /dev/null");
+       $status = $?;
+       if ($status) {
+               print "    FAILED to run new DTC on $board\n";
+       }
+
+       if (-f $old_dtb_file && -f $new_dtb_file) {
+           print "CMP: $cmd_cmp\n";
+           system($cmd_cmp);
+           $status = $?;
+           if ($status) {
+               print "    FAILED $board\n";
+           }
+       } else {
+           printf "    FAILED: Missing dtb file\n";
+       }
+}