diff --git a/meta-aspeed/classes/otptool.bbclass b/meta-aspeed/classes/otptool.bbclass
index 5262519..7da3e6e 100644
--- a/meta-aspeed/classes/otptool.bbclass
+++ b/meta-aspeed/classes/otptool.bbclass
@@ -2,43 +2,54 @@
 # to create OTP image
 # The variables below carry default values to the create_otp()
 # function below.
-OTPTOOL_CONFIG ?= ""
+OTPTOOL_CONFIGS ?= ""
 OTPTOOL_KEY_DIR ?= ""
 OTPTOOL_EXTRA_OPTS ?= ""
 OTPTOOL_EXTRA_DEPENDS ?= " socsec-native"
 DEPENDS += '${@oe.utils.conditional("SOCSEC_SIGN_ENABLE", "1", "${OTPTOOL_EXTRA_DEPENDS}", "", d)}'
 
+do_otptool() {
+    local otptool_config=$1
+    otptool_config_slug="$(basename ${otptool_config} .json)"
+    otptool_config_outdir="${B}"/"${CONFIG_B_PATH}"/"${otptool_config_slug}"
+    mkdir -p "${otptool_config_outdir}"
+    otptool make_otp_image \
+        --key_folder ${OTPTOOL_KEY_DIR} \
+        --output_folder "${otptool_config_outdir}" \
+        ${otptool_config} \
+        ${OTPTOOL_EXTRA_OPTS}
+
+    if [ $? -ne 0 ]; then
+        bbfatal "Generated OTP image failed."
+    fi
+
+    otptool print "${otptool_config_outdir}"/otp-all.image
+
+    if [ $? -ne 0 ]; then
+        bbfatal "Printed OTP image failed."
+    fi
+
+    install -m 0644 -T \
+        "${otptool_config_outdir}"/otp-all.image \
+        ${DEPLOYDIR}/"${otptool_config_slug}"-otp-all.image
+}
+
 # Creates the OTP image
 create_otp_helper() {
     if [ "${SOC_FAMILY}" != "aspeed-g6" ] ; then
         bbwarn "OTP creation is only supported on AST2600 boards"
-    elif [ ! -e "${OTPTOOL_CONFIG}" ] ; then
-        bbfatal "Invalid otptool config: ${OTPTOOL_CONFIG}"
+    elif [ -z "${OTPTOOL_CONFIGS}" ] ; then
+        bbfatal "OTPTOOL_CONFIGS is empty, no otptool configurations available"
     elif [ ! -d "${OTPTOOL_KEY_DIR}" ] ; then
         bbfatal "Invalid otptool signing key directory: ${OTPTOOL_KEY_DIR}"
     else
-        otptool_config_slug="$(basename ${OTPTOOL_CONFIG} .json)"
-        otptool_config_outdir="${B}"/"${CONFIG_B_PATH}"/"${otptool_config_slug}"
-        mkdir -p "${otptool_config_outdir}"
-        otptool make_otp_image \
-            --key_folder ${OTPTOOL_KEY_DIR} \
-            --output_folder "${otptool_config_outdir}" \
-            ${OTPTOOL_CONFIG} \
-            ${OTPTOOL_EXTRA_OPTS}
+        for otptool_config in ${OTPTOOL_CONFIGS} ; do
+            if [ ! -e ${otptool_config} ] ; then
+                bbfatal "Invalid otptool config: ${otptool_config}"
+            fi
 
-        if [ $? -ne 0 ]; then
-            bbfatal "Generated OTP image failed."
-        fi
-
-        otptool print "${otptool_config_outdir}"/otp-all.image
-
-        if [ $? -ne 0 ]; then
-            bbfatal "Printed OTP image failed."
-        fi
-
-        install -m 0644 -T \
-            "${otptool_config_outdir}"/otp-all.image \
-            ${DEPLOYDIR}/"${otptool_config_slug}"-otp-all.image
+            do_otptool $otptool_config
+        done
     fi
 }
 
diff --git a/meta-aspeed/classes/socsec-sign.bbclass b/meta-aspeed/classes/socsec-sign.bbclass
index da71b7c..2f72c4e 100644
--- a/meta-aspeed/classes/socsec-sign.bbclass
+++ b/meta-aspeed/classes/socsec-sign.bbclass
@@ -61,13 +61,15 @@
 }
 
 verify_spl_otp() {
-    socsec verify \
-        --sec_image ${DEPLOYDIR}/${SPL_IMAGE} \
-        --otp_image ${DEPLOYDIR}/"$(basename ${OTPTOOL_CONFIG} .json)"-otp-all.image
+    for otptool_config in ${OTPTOOL_CONFIGS} ; do
+        socsec verify \
+            --sec_image ${DEPLOYDIR}/${SPL_IMAGE} \
+            --otp_image ${DEPLOYDIR}/"$(basename ${otptool_config} .json)"-otp-all.image
 
-    if [ $? -ne 0 ]; then
-        bbfatal "Verified OTP image failed."
-    fi
+        if [ $? -ne 0 ]; then
+            bbfatal "Verified OTP image failed."
+        fi
+    done
 }
 
 do_deploy:append() {
diff --git a/meta-ibm/recipes-bsp/u-boot/u-boot-aspeed-sdk_2019.04.bbappend b/meta-ibm/recipes-bsp/u-boot/u-boot-aspeed-sdk_2019.04.bbappend
index 2a99328..12e9f88 100644
--- a/meta-ibm/recipes-bsp/u-boot/u-boot-aspeed-sdk_2019.04.bbappend
+++ b/meta-ibm/recipes-bsp/u-boot/u-boot-aspeed-sdk_2019.04.bbappend
@@ -2,7 +2,7 @@
 
 SRC_URI:append:p10bmc = " file://a3.json file://keys/"
 
-OTPTOOL_CONFIG:p10bmc = "${WORKDIR}/a3.json"
+OTPTOOL_CONFIGS:p10bmc = "${WORKDIR}/a3.json"
 OTPTOOL_KEY_DIR:p10bmc = "${WORKDIR}/keys/"
 
 # !!! Do not copy p10bmc's use of little-endian key ordering !!!
