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 += ''; x += ''; + x += ''; 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