meta-aspeed: Fix value_start issue in `rev_id` path

There's a bug in socsec that prevents the IBM's configuration from
successfully building an OTP image.

I have got the fix merged upstream:

https://github.com/AspeedTech-BMC/socsec/pull/18

However, Aspeed do not plan on doing a release until October:

> [ 17:51 ] arj: @Troy Lee any chance Neal can tag a new socsec release so we can bump it in OpenBMC and pick up some recent fixes?
> [ 18:25 ] Troy Lee: Current schedule is October.

https://discord.com/channels/775381525260664832/922871693008068638/1144547174286377062

For now, fix otptool using a recipe patch, in violation of the usual
guidelines.

I prefer we do this over switching to a "git" version for the recipe as
instability with these tools really cannot be tolerated.

Change-Id: I65b1992b5479ea257cfa65fd8b3cfc021b7d3dea
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
diff --git a/meta-aspeed/recipes-aspeed/python/socsec/0001-otptool-Define-value_start-in-rev_id-path.patch b/meta-aspeed/recipes-aspeed/python/socsec/0001-otptool-Define-value_start-in-rev_id-path.patch
new file mode 100644
index 0000000..6578519
--- /dev/null
+++ b/meta-aspeed/recipes-aspeed/python/socsec/0001-otptool-Define-value_start-in-rev_id-path.patch
@@ -0,0 +1,25 @@
+From 680d5795bbd4e268c978d638a903fb3809e4b5c9 Mon Sep 17 00:00:00 2001
+From: Andrew Jeffery <andrew@aj.id.au>
+Date: Mon, 14 Aug 2023 12:33:04 +0930
+Subject: [PATCH] otptool: Define value_start in `rev_id` path
+
+See https://github.com/AspeedTech-BMC/socsec/pull/18
+
+Upstream-Status: Accepted
+Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
+---
+ socsec/otptool.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/socsec/otptool.py b/socsec/otptool.py
+index efeab96dbd96..97da143723dd 100755
+--- a/socsec/otptool.py
++++ b/socsec/otptool.py
+@@ -1039,6 +1039,7 @@ class OTP(object):
+                 bit_offset = info['bit_offset']
+                 offset = dw_offset*32 + bit_offset
+                 bit_length = info['bit_length']
++                value_start = info['value_start']
+                 offset_value = int(value, 16) - value_start
+ 
+                 if offset_value < 0 or offset_value > bit_length:
diff --git a/meta-aspeed/recipes-aspeed/python/socsec_%.bbappend b/meta-aspeed/recipes-aspeed/python/socsec_%.bbappend
new file mode 100644
index 0000000..7e97e26
--- /dev/null
+++ b/meta-aspeed/recipes-aspeed/python/socsec_%.bbappend
@@ -0,0 +1,4 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://0001-otptool-Define-value_start-in-rev_id-path.patch"
+
diff --git a/meta-phosphor/scripts/run-repotest b/meta-phosphor/scripts/run-repotest
index 61f5f94..ff6a4f8 100755
--- a/meta-phosphor/scripts/run-repotest
+++ b/meta-phosphor/scripts/run-repotest
@@ -34,6 +34,7 @@
 #
 # https://github.com/openbmc/docs/blob/master/meta-layer-guidelines.md
 echo "\
+meta-aspeed/recipes-aspeed/python/socsec/0001-otptool-Define-value_start-in-rev_id-path.patch
 meta-aspeed/recipes-bsp/u-boot/files/default-gcc.patch
 meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/0005-ARM-dts-aspeed-Enable-g220a-uart-route.patch
 meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed-sdk/0001-board-aspeed-Add-Mux-for-yosemitev2.patch