diff --git a/classes/phosphor-debug-collector.bbclass b/classes/phosphor-debug-collector.bbclass
index 2a2a3a4..d5d49a2 100644
--- a/classes/phosphor-debug-collector.bbclass
+++ b/classes/phosphor-debug-collector.bbclass
@@ -1 +1,5 @@
 bmc_dump_path="/var/lib/phosphor-debug-collector/dumps"
+dreport_plugin_dir = "${datadir}/dreport.d/plugins.d"
+dreport_include_dir = "${datadir}/dreport.d/include.d"
+dreport_conf_dir = "${datadir}/dreport.d/conf.d"
+dreport_dir = "${datadir}/dreport.d/"
diff --git a/common/recipes-phosphor/dump/phosphor-debug-collector.bb b/common/recipes-phosphor/dump/phosphor-debug-collector.bb
index c29c16a..24b233f 100644
--- a/common/recipes-phosphor/dump/phosphor-debug-collector.bb
+++ b/common/recipes-phosphor/dump/phosphor-debug-collector.bb
@@ -10,6 +10,7 @@
     ${PN}-manager \
     ${PN}-monitor \
     ${PN}-dreport \
+    ${PN}-scripts \
 "
 PACKAGES =+ "${DEBUG_COLLECTOR_PKGS}"
 PACKAGES_remove = "${PN}"
@@ -54,6 +55,9 @@
         bash \
         xz \
 "
+RDEPENDS_${PN}-scripts += " \
+        bash \
+"
 
 MGR_SVC ?= "xyz.openbmc_project.Dump.Manager.service"
 
@@ -62,6 +66,7 @@
 FILES_${PN}-manager += "${sbindir}/phosphor-dump-manager"
 FILES_${PN}-monitor += "${sbindir}/phosphor-dump-monitor"
 FILES_${PN}-dreport += "${bindir}/dreport"
+FILES_${PN}-scripts += "${dreport_dir}"
 
 DBUS_SERVICE_${PN}-manager += "${MGR_SVC}"
 SYSTEMD_SERVICE_${PN}-monitor += "obmc-dump-monitor.service"
@@ -70,10 +75,90 @@
 
 S = "${WORKDIR}/git"
 
-do_install_append() {
-       install -d ${D}${bindir}
-       install -m 0755 ${S}/tools/dreport \
-                       ${D}${bindir}/dreport
+# Install dreport script
+# From tools/dreport.d/dreport to /usr/bin/dreport
+install_dreport() {
+    install -d ${D}${bindir}
+    install -m 0755 ${S}/tools/dreport.d/dreport \
+                    ${D}${bindir}/dreport
+}
+
+# Install dreport sample configuration file
+# From tools/dreport.d/sample.conf
+# to /usr/share/dreport.d/conf.d/dreport.conf
+install_dreport_conf_file() {
+    install -d ${D}${dreport_conf_dir}
+    install -m 0644 ${S}/tools/dreport.d/sample.conf \
+                        ${D}${dreport_conf_dir}/dreport.conf
+}
+
+# Install dreport plugins
+# From tools/dreport.d/plugins.d to /usr/share/dreport.d/plugins.d
+install_dreport_plugins_scripts() {
+    install -d ${D}${dreport_plugin_dir}
+    install -m 0755 ${S}/tools/dreport.d/plugins.d/* ${D}${dreport_plugin_dir}/
+}
+
+# Install dreport utility functions
+# From tools/dreport.d/include.d to /usr/share/dreport.d/include.d
+install_dreport_include_scripts() {
+    install -d ${D}${dreport_include_dir}
+    install -m 0755 ${S}/tools/dreport.d/include.d/* \
+                ${D}${dreport_include_dir}/
+}
+
+# Parse the scripts in base directory, read config value
+# Create user directories based on the dump type value in the config section
+# Create softlinks for the base scripts in the user directories
+python install_dreport_user_scripts() {
+    from shutil import copyfile
+    import stat
+    import re
+    import configparser
+
+    #Read the user types from the dreport.conf file
+    configure = configparser.ConfigParser()
+    conf_dir  = d.getVar('D', True) + d.getVar('dreport_conf_dir', True)
+    confsource = os.path.join(conf_dir, "dreport.conf")
+    configure.read(confsource)
+    section = "DumpType"
+    options = configure.options(section)
+
+    #open the script from base dir and read the config value
+    source = d.getVar('S', True)
+    source_path = os.path.join(source, "tools", "dreport.d", "plugins.d")
+    scripts = os.listdir(source_path)
+    dreport_dir= d.getVar('D', True) + d.getVar('dreport_dir', True)
+    config = ("config:")
+    for script in scripts:
+        srcname = os.path.join(source_path, script)
+        srclink = os.path.join(d.getVar('dreport_plugin_dir', True), script)
+        file = open(srcname, "r")
+        for line in file:
+            if not config in line:
+                continue
+            revalue = re.search('[0-9]+.[0-9]+', line)
+            if not revalue:
+                bb.warn("Invalid format for config value =%s" % line)
+                continue
+            parse_value = revalue.group(0)
+            config_values = re.split('\W+', parse_value, 1)
+            if(len(config_values) != 2):
+                bb.warn("Invalid config value=%s" % parse_value)
+                break;
+            priority = config_values[1]
+            types = [int(d) for d in str(config_values[0])]
+            for type in types:
+                if not configure.has_option(section, str(type)):
+                    bb.warn("Invalid dump type id =%s" % (str(type)))
+                    continue
+                typestr = configure.get(section, str(type))
+                destdir = os.path.join(dreport_dir, ("pl_" + typestr + ".d"))
+                if not os.path.exists(destdir):
+                    os.makedirs(destdir)
+                linkname = "E" + priority + script
+                destlink = os.path.join(destdir, linkname)
+                os.symlink(srclink, destlink)
 }
 
 #Enable ubifs-workaround by MACHINE_FEATURE obmc-ubi-fs.
@@ -82,3 +167,9 @@
        --enable-ubifs-workaround, \
        --disable-ubifs-workaround \
 "
+
+do_install[postfuncs] += "install_dreport"
+do_install[postfuncs] += "install_dreport_conf_file"
+do_install[postfuncs] += "install_dreport_plugins_scripts"
+do_install[postfuncs] += "install_dreport_include_scripts"
+do_install[postfuncs] += "install_dreport_user_scripts"
diff --git a/common/recipes-phosphor/dump/phosphor-debug-collector.inc b/common/recipes-phosphor/dump/phosphor-debug-collector.inc
index 8fd608b..d5f4af2 100644
--- a/common/recipes-phosphor/dump/phosphor-debug-collector.inc
+++ b/common/recipes-phosphor/dump/phosphor-debug-collector.inc
@@ -2,4 +2,4 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
 SRC_URI += "git://github.com/openbmc/phosphor-debug-collector"
-SRCREV = "7f2f8027b013c39e28da6b3e1e10f6ddc7d3d042"
+SRCREV = "11eaab7b68d7984199a283bc6c78617ce72b8ca6"
diff --git a/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb b/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
index 50f9065..788bd48 100644
--- a/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
+++ b/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
@@ -94,6 +94,7 @@
         ${VIRTUAL-RUNTIME_obmc-dump-manager} \
         ${VIRTUAL-RUNTIME_obmc-dump-monitor} \
         phosphor-debug-collector-dreport \
+        phosphor-debug-collector-scripts \
         "
 
 SUMMARY_${PN}-settings = "Settings applications"
