diff --git a/common-0.0.1.js b/common-0.0.1.js
index bdcfef1..c07af54 100644
--- a/common-0.0.1.js
+++ b/common-0.0.1.js
@@ -107,7 +107,7 @@ function trademarks(x) { return x.replace(/\(R\)/g, '®').replace(/\(TM\)/g,
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
// Returns a UEFI boot parameter in binary
-function makeUefiBootParam(type, data, len) {
+function makeUefiBootParam(type, data, len, vendorid) {
if (typeof data == 'number') { if (len == 1) { data = String.fromCharCode(data & 0xFF); } if (len == 2) { data = ShortToStrX(data); } if (len == 4) { data = IntToStrX(data); } }
- return ShortToStrX(0x8086) + ShortToStrX(type) + IntToStrX(data.length) + data;
+ return ShortToStrX(vendorid ? vendorid : 0x8086) + ShortToStrX(type) + IntToStrX(data.length) + data;
}
\ No newline at end of file
diff --git a/index.html b/index.html
index 16e90ac..2cd397d 100644
--- a/index.html
+++ b/index.html
@@ -10798,6 +10798,7 @@
Software KVM
if (actionTaken.length > 1) { x += (format('
' + "Select the actions to take:" + '
{0}
', actionTaken.join('
'))); }
x += '' + addHtmlValue("Pyrite PSID", '') + '
';
x += '' + addHtmlValue("SSD Master Password", '') + '
';
+ x += '' + addHtmlValue("OEM Data (HEX)", '') + '
';
setDialogMode(11, "Power Actions", 3, powerActionDlgRPEEx, x, advanced);
QE('idx_dlgOkButton', false);
}
@@ -10806,6 +10807,7 @@ Software KVM
var rpeFlags = 0, platfromEraseSupport = amtPowerBootCapabilities['PlatformErase'], sf = [1, 2, 6, 16, 25, 26, 31];
for (var i in sf) { if (platfromEraseSupport & (1 << sf[i])) { if (Q('rpef' + sf[i]).checked) { rpeFlags += (1 << sf[i]); } } }
QV('rpessdpass', rpeFlags & 4);
+ QV('rpeeomdata', rpeFlags & (1 << 16));
QE('idx_dlgOkButton', rpeFlags);
}
@@ -10816,6 +10818,7 @@ Software KVM
var tlv = makeUefiBootParam(1, rpeFlags, 4), tlvlen = 1;
if (rpeFlags & 2) { tlv += makeUefiBootParam(10, Q('rpepsidx').value); tlvlen++; }
if (rpeFlags & 4) { tlv += makeUefiBootParam(20, Q('rpessdpassx').value); tlvlen++; }
+ if ((rpeFlags & (1 << 16)) && (Q('rpeoemdatax').value != '')) { tlv += makeUefiBootParam(20, hex2rstr(Q('rpeoemdatax').value), null, 11); tlvlen++; }
platfromEraseTLV = { tlv: btoa(tlv), tlvlen: tlvlen };
if (advanced) {
// Attempt user consent