xref: /netbsd-src/external/gpl2/dtc/dist/tests/test_kernel_dts (revision b8ae3907463a83f8718c95e2089b3999b4985c28)
1*b8ae3907Smacallan#!/usr/bin/perl
2*b8ae3907Smacallan
3*b8ae3907Smacallanmy $dtc_old = "/home/jdl/FSL/dtc/dtc-old";
4*b8ae3907Smacallanmy $dtc_new = "/home/jdl/FSL/dtc/dtc-new";
5*b8ae3907Smacallan
6*b8ae3907Smacallanmy $basic_options = "-b 0 -f -I dts -O dtb";
7*b8ae3907Smacallan
8*b8ae3907Smacallanmy $linux_dts_dir = "/usr/src/linux-2.6/arch/powerpc/boot/dts";
9*b8ae3907Smacallan
10*b8ae3907Smacallan# Yeah, sure, we could, like, readdir() this instead...
11*b8ae3907Smacallanmy @boards = (
12*b8ae3907Smacallan	      "bamboo",
13*b8ae3907Smacallan	      "ebony",
14*b8ae3907Smacallan	      "ep88xc",
15*b8ae3907Smacallan	      "holly",
16*b8ae3907Smacallan	      "kilauea",
17*b8ae3907Smacallan	      "kuroboxHD",
18*b8ae3907Smacallan	      "kuroboxHG",
19*b8ae3907Smacallan	      "lite5200",
20*b8ae3907Smacallan	      "lite5200b",
21*b8ae3907Smacallan	      "mpc7448hpc2",
22*b8ae3907Smacallan	      "mpc8272ads",
23*b8ae3907Smacallan	      "mpc8313erdb",
24*b8ae3907Smacallan	      "mpc832x_mds",
25*b8ae3907Smacallan	      "mpc832x_rdb",
26*b8ae3907Smacallan	      "mpc8349emitx",
27*b8ae3907Smacallan	      "mpc8349emitxgp",
28*b8ae3907Smacallan	      "mpc834x_mds",
29*b8ae3907Smacallan	      "mpc836x_mds",
30*b8ae3907Smacallan	      "mpc8540ads",
31*b8ae3907Smacallan	      "mpc8541cds",
32*b8ae3907Smacallan	      "mpc8544ds",
33*b8ae3907Smacallan	      "mpc8548cds",
34*b8ae3907Smacallan	      "mpc8555cds",
35*b8ae3907Smacallan	      "mpc8560ads",
36*b8ae3907Smacallan	      "mpc8568mds",
37*b8ae3907Smacallan	      "mpc8572ds",
38*b8ae3907Smacallan	      "mpc8610_hpcd",
39*b8ae3907Smacallan	      "mpc8641_hpcn",
40*b8ae3907Smacallan	      "mpc866ads",	# Feh.  Bad node references...
41*b8ae3907Smacallan	      "mpc885ads",
42*b8ae3907Smacallan	      "pq2fads",
43*b8ae3907Smacallan	      "prpmc2800",
44*b8ae3907Smacallan	      "ps3",
45*b8ae3907Smacallan	      "sequoia",
46*b8ae3907Smacallan	      "walnut",
47*b8ae3907Smacallan);
48*b8ae3907Smacallan
49*b8ae3907Smacallanforeach my $board (@boards) {
50*b8ae3907Smacallan	my $dts_file = "$linux_dts_dir/$board.dts";
51*b8ae3907Smacallan
52*b8ae3907Smacallan	my $old_dtb_file = "/tmp/$board.dtb.old";
53*b8ae3907Smacallan	my $new_dtb_file = "/tmp/$board.dtb.new";
54*b8ae3907Smacallan
55*b8ae3907Smacallan	my $cmd_old = "$dtc_old $basic_options -o $old_dtb_file $dts_file";
56*b8ae3907Smacallan	my $cmd_new = "$dtc_new $basic_options -o $new_dtb_file $dts_file";
57*b8ae3907Smacallan	my $cmd_cmp = "cmp $old_dtb_file $new_dtb_file";
58*b8ae3907Smacallan
59*b8ae3907Smacallan	print "------------------------------------------------\n";
60*b8ae3907Smacallan	print "OLD: $cmd_old\n";
61*b8ae3907Smacallan	unlink($old_dtb_file) if (-f $old_dtb_file);
62*b8ae3907Smacallan	system("$cmd_old >& /dev/null");
63*b8ae3907Smacallan	my $status = $?;
64*b8ae3907Smacallan	if ($status) {
65*b8ae3907Smacallan		print "    FAILED to run old DTC on $board\n";
66*b8ae3907Smacallan	}
67*b8ae3907Smacallan
68*b8ae3907Smacallan	print "NEW: $cmd_new\n";
69*b8ae3907Smacallan	unlink($new_dtb_file) if (-f $new_dtb_file);
70*b8ae3907Smacallan	system("$cmd_new >& /dev/null");
71*b8ae3907Smacallan	$status = $?;
72*b8ae3907Smacallan	if ($status) {
73*b8ae3907Smacallan		print "    FAILED to run new DTC on $board\n";
74*b8ae3907Smacallan	}
75*b8ae3907Smacallan
76*b8ae3907Smacallan	if (-f $old_dtb_file && -f $new_dtb_file) {
77*b8ae3907Smacallan	    print "CMP: $cmd_cmp\n";
78*b8ae3907Smacallan	    system($cmd_cmp);
79*b8ae3907Smacallan	    $status = $?;
80*b8ae3907Smacallan	    if ($status) {
81*b8ae3907Smacallan		print "    FAILED $board\n";
82*b8ae3907Smacallan	    }
83*b8ae3907Smacallan	} else {
84*b8ae3907Smacallan	    printf "    FAILED: Missing dtb file\n";
85*b8ae3907Smacallan	}
86*b8ae3907Smacallan}
87