diff --git a/gen_openpower_fru.pl b/gen_openpower_fru.pl
new file mode 100755
index 0000000..066c949
--- /dev/null
+++ b/gen_openpower_fru.pl
@@ -0,0 +1,83 @@
+#! /usr/bin/perl
+use strict;
+use warnings;
+
+use mrw::Targets;
+use mrw::Inventory;
+use mrw::Util;
+use Getopt::Long;
+use YAML::Tiny qw(LoadFile);
+
+my $mrwFile = "";
+my $outFile = "";
+my $configFile = "";
+
+GetOptions(
+"m=s" => \$mrwFile,
+"c=s" => \$configFile,
+"o=s" => \$outFile,
+)
+or printUsage();
+
+if (($mrwFile eq "") or ($configFile eq "") or ($outFile eq ""))
+{
+    printUsage();
+}
+
+# Load system MRW
+my $targets = Targets->new;
+$targets->loadXML($mrwFile);
+my @inventory = Inventory::getInventory($targets);
+
+# Target Type : Target inventory path
+my %defaultPaths = (
+    "ETHERNET",
+     Util::getObmcName(
+         \@inventory,
+         Util::getBMCTarget($targets))."/ethernet"
+);
+
+# Parse config YAML
+my $targetItems = LoadFile($configFile);
+
+# Targets we're interested in, from the config YAML
+my @targetNames = keys %{$targetItems};
+my %targetHash;
+@targetHash{@targetNames} = ();
+my @targetTypes;
+my @paths;
+
+# Retrieve OBMC path of targets we're interested in
+for my $item (@inventory) {
+    my $targetType = "";
+    my $path = "";
+
+    if (!$targets->isBadAttribute($item->{TARGET}, "TYPE")) {
+        $targetType = $targets->getAttribute($item->{TARGET}, "TYPE");
+    }
+    next if (not exists $targetHash{$targetType});
+
+    push @targetTypes, $targetType;
+    push @paths, $item->{OBMC_NAME};
+    delete($targetHash{$targetType});
+}
+
+for my $type (keys %targetHash)
+{
+    # One or more targets wasn't present in the inventory
+    push @targetTypes, $type;
+    push @paths, $defaultPaths{$type};
+}
+
+open(my $fh, '>', $outFile) or die "Could not open file '$outFile' $!";
+print $fh "FRUS=".join ',',@targetTypes;
+print $fh "\n";
+print $fh "PATHS=".join ',',@paths;
+close $fh;
+
+sub printUsage
+{
+    print "
+    $0 -m [MRW file] -c [Config yaml] -o [Output filename]\n";
+    exit(1);
+}
