platform_external_dtc/tests/test_kernel_dts
Jon Loeliger 8eaf5e3583 Add a script that compares an "old" and "new" dtc results.
Lots of room for improvement here.  Command line options, etc.
The script iterates over a hard-coded list of kernel DTS files.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2007-11-20 09:14:03 -06:00

86 lines
2 KiB
Perl
Executable file

#!/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";
}
}