Add a new layer meta-gsj to meta-quanta.

Tested: This commit included the basic machine config
        and package group setting for project GSJ.
        And it could build successfully with meta-nuvoton fix
        (https://gerrit.openbmc-project.xyz/#/c/openbmc/openbmc/+/17719/).
        But the built image cannot run on EVB now,
        it is because the image generate script still not ready yet.

(From meta-quanta rev: e08538d3df34128ef92c0593c1556931e62c614a)

Change-Id: I2724915dd674bbce0db16a3714bc50cf8993f9b9
Signed-off-by: FranHsu <Fran.Hsu@quantatw.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-quanta/meta-gsj/conf/bblayers.conf.sample b/meta-quanta/meta-gsj/conf/bblayers.conf.sample
new file mode 100644
index 0000000..f28a8ba
--- /dev/null
+++ b/meta-quanta/meta-gsj/conf/bblayers.conf.sample
@@ -0,0 +1,27 @@
+# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+LCONF_VERSION = "8"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+  ##OEROOT##/meta \
+  ##OEROOT##/meta-openembedded/meta-oe \
+  ##OEROOT##/meta-openembedded/meta-networking \
+  ##OEROOT##/meta-openembedded/meta-python \
+  ##OEROOT##/meta-phosphor \
+  ##OEROOT##/meta-nuvoton \
+  ##OEROOT##/meta-quanta \
+  ##OEROOT##/meta-quanta/meta-gsj \
+  "
+BBLAYERS_NON_REMOVABLE ?= " \
+  ##OEROOT##/meta \
+  ##OEROOT##/meta-openembedded/meta-oe \
+  ##OEROOT##/meta-openembedded/meta-networking \
+  ##OEROOT##/meta-openembedded/meta-python \
+  ##OEROOT##/meta-phosphor \
+  ##OEROOT##/meta-nuvoton \
+  ##OEROOT##/meta-quanta \
+  ##OEROOT##/meta-quanta/meta-gsj \
+  "
diff --git a/meta-quanta/meta-gsj/conf/conf-notes.txt b/meta-quanta/meta-gsj/conf/conf-notes.txt
new file mode 100644
index 0000000..9b3c01a
--- /dev/null
+++ b/meta-quanta/meta-gsj/conf/conf-notes.txt
@@ -0,0 +1,2 @@
+Common targets are:
+     obmc-phosphor-image
diff --git a/meta-quanta/meta-gsj/conf/layer.conf b/meta-quanta/meta-gsj/conf/layer.conf
new file mode 100644
index 0000000..d1c71c8
--- /dev/null
+++ b/meta-quanta/meta-gsj/conf/layer.conf
@@ -0,0 +1,10 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+            ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "gsj-layer"
+BBFILE_PATTERN_gsj-layer = ""
+LAYERSERIES_COMPAT_gsj-layer = "thud"
diff --git a/meta-quanta/meta-gsj/conf/local.conf.sample b/meta-quanta/meta-gsj/conf/local.conf.sample
new file mode 100644
index 0000000..12e42fb
--- /dev/null
+++ b/meta-quanta/meta-gsj/conf/local.conf.sample
@@ -0,0 +1,18 @@
+MACHINE ??= "gsj"
+DISTRO ?= "openbmc-phosphor"
+PACKAGE_CLASSES ?= "package_rpm"
+SANITY_TESTED_DISTROS_append ?= " *"
+EXTRA_IMAGE_FEATURES = "debug-tweaks"
+USER_CLASSES ?= "buildstats image-mklibs image-prelink"
+PATCHRESOLVE = "noop"
+BB_DISKMON_DIRS = "\
+    STOPTASKS,${TMPDIR},1G,100K \
+    STOPTASKS,${DL_DIR},1G,100K \
+    STOPTASKS,${SSTATE_DIR},1G,100K \
+    STOPTASKS,/tmp,100M,100K \
+    ABORT,${TMPDIR},100M,1K \
+    ABORT,${DL_DIR},100M,1K \
+    ABORT,${SSTATE_DIR},100M,1K \
+    ABORT,/tmp,10M,1K"
+CONF_VERSION = "1"
+
diff --git a/meta-quanta/meta-gsj/conf/machine/gsj.conf b/meta-quanta/meta-gsj/conf/machine/gsj.conf
new file mode 100644
index 0000000..08e9078
--- /dev/null
+++ b/meta-quanta/meta-gsj/conf/machine/gsj.conf
@@ -0,0 +1,26 @@
+KMACHINE = "nuvoton"
+KERNEL_DEVICETREE = "${KMACHINE}-npcm730-gsj.dtb"
+
+UBOOT_MACHINE = "PolegSVB_config"
+
+FLASH_SIZE = "65536"
+require conf/machine/include/npcm7xx.inc
+require conf/machine/include/obmc-bsp-common.inc
+
+IMAGE_FSTYPES += " cpio.${INITRAMFS_CTYPE}.u-boot"
+IMAGE_FSTYPES += " mtd-ubi-tar"
+
+OBMC_MACHINE_FEATURES += "\
+        obmc-phosphor-fan-mgmt \
+        obmc-phosphor-chassis-mgmt \
+        obmc-phosphor-flash-mgmt \
+        obmc-host-ipmi \
+        obmc-host-state-mgmt \
+        obmc-chassis-state-mgmt \
+        obmc-bmc-state-mgmt \
+        "
+
+PREFERRED_PROVIDER_virtual/obmc-chassis-mgmt = "packagegroup-gsj-apps"
+PREFERRED_PROVIDER_virtual/obmc-fan-mgmt = "packagegroup-gsj-apps"
+PREFERRED_PROVIDER_virtual/obmc-flash-mgmt = "packagegroup-gsj-apps"
+PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-gsj-apps"
diff --git a/meta-quanta/meta-gsj/recipes-gsj/packagegroups/packagegroup-gsj-apps.bb b/meta-quanta/meta-gsj/recipes-gsj/packagegroups/packagegroup-gsj-apps.bb
new file mode 100644
index 0000000..cca6639
--- /dev/null
+++ b/meta-quanta/meta-gsj/recipes-gsj/packagegroups/packagegroup-gsj-apps.bb
@@ -0,0 +1,44 @@
+SUMMARY = "OpenBMC for GSJ system - Applications"
+PR = "r1"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = " \
+        ${PN}-chassis \
+        ${PN}-fans \
+        ${PN}-flash \
+        ${PN}-system \
+        "
+
+PROVIDES += "virtual/obmc-chassis-mgmt"
+PROVIDES += "virtual/obmc-fan-mgmt"
+PROVIDES += "virtual/obmc-flash-mgmt"
+PROVIDES += "virtual/obmc-system-mgmt"
+
+RPROVIDES_${PN}-chassis += "virtual-obmc-chassis-mgmt"
+RPROVIDES_${PN}-fans += "virtual-obmc-fan-mgmt"
+RPROVIDES_${PN}-flash += "virtual-obmc-flash-mgmt"
+RPROVIDES_${PN}-system += "virtual-obmc-system-mgmt"
+
+SUMMARY_${PN}-chassis = "GSJ Chassis"
+RDEPENDS_${PN}-chassis = " \
+        obmc-control-chassis \
+        "
+
+SUMMARY_${PN}-fans = "GSJ Fans"
+RDEPENDS_${PN}-fans = " \
+        obmc-control-fan \
+        "
+
+SUMMARY_${PN}-flash = "GSJ Flash"
+RDEPENDS_${PN}-flash = " \
+        obmc-flash-bmc \
+        obmc-mgr-download \
+        obmc-control-bmc \
+        "
+
+SUMMARY_${PN}-system = "GSJ System"
+RDEPENDS_${PN}-system = " \
+        obmc-mgr-system \
+        "