rng-tools: use 'hw-rng' to disable libjitterentropy

The warrior version of rng-tools introduced an optional PACKAGECONFIG,
which was enabled by default, called `libjitterentropy`.  For BMC chips
which have a hardware RNG, this is not a necessary feature, and causes
a noticeable delay in the start of the rngd.  On systems with very low
IO activity we are seeing cases of what appears to be hangs.

Define a machine feature which can be used to disable the PACKAGECONFIG
for machines which contain a BMC chip with a hardware RNG.  Aspeed has
one which is supported; Nuvoton currently does not.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Iee340ffd294c4f40ba3360acd3f750d886865608
diff --git a/recipes-support/rng-tools/rng-tools_%.bbappend b/recipes-support/rng-tools/rng-tools_%.bbappend
index 16add36..ce5d799 100644
--- a/recipes-support/rng-tools/rng-tools_%.bbappend
+++ b/recipes-support/rng-tools/rng-tools_%.bbappend
@@ -1,13 +1,26 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
 SRC_URI += "file://10-nice.conf"
 
+PACKAGECONFIG_remove = "\
+        ${@bb.utils.contains('MACHINE_FEATURES', 'hw-rng', \
+                             'libjitterentropy', '', d)}\
+        "
+
 inherit systemd
 
 FILES_${PN} += "${systemd_unitdir}/system/rngd.service.d"
 
 do_install_append() {
+
+    # When using systemd and using libjitterentropy, install a config
+    # which runs rngd at a 'nice' priority.  libjitterentropy uses a
+    # lot of CPU early on in the boot process and makes the whole boot
+    # go slower.
     if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-        install -d ${D}${systemd_unitdir}/system/rngd.service.d
-        install -m 644 ${WORKDIR}/10-nice.conf ${D}${systemd_unitdir}/system/rngd.service.d
+        if ${@bb.utils.contains('PACKAGECONFIG', 'libjitterentropy', 'true', 'false', d)}; then
+            install -d ${D}${systemd_unitdir}/system/rngd.service.d
+            install -m 644 ${WORKDIR}/10-nice.conf \
+                ${D}${systemd_unitdir}/system/rngd.service.d
+        fi
     fi
 }