Dump the communication buffer before and after triggering the SMI.

This commit is contained in:
Assaf Carlsbad
2021-03-15 13:01:53 +02:00
committed by Sae86
parent 17d02c9499
commit 0cf46991bd
+12 -1
View File
@@ -34,7 +34,7 @@ import struct
import uuid
from chipsec.hal import hal_base
from chipsec.logger import logger
from chipsec.logger import logger, print_buffer_bytes
from chipsec.hal.acpi import ACPI
from chipsec.hal.acpi_tables import UEFI_TABLE
from chipsec.defines import bytestostring
@@ -173,7 +173,18 @@ MdeModulePkg/Core/PiSmmCore/PiSmmCorePrivateData.h
self.cs.mem.write_physical_mem(smmc + CommBuffer_offset, 8, struct.pack("Q", payload_loc))
self.cs.mem.write_physical_mem(smmc + BufferSize_offset, 8, struct.pack("Q", payload_sz))
self.cs.mem.write_physical_mem(payload_loc, len(data_hdr), data_hdr)
if self.logger.VERBOSE:
self.logger.log("[*] Communication buffer on input")
print_buffer_bytes(self.cs.mem.read_physical_mem(payload_loc, payload_sz))
self.logger.log("")
self.send_SMI_APMC(CommandPort, DataPort)
if self.logger.VERBOSE:
self.logger.log("[*] Communication buffer on output")
print_buffer_bytes(self.cs.mem.read_physical_mem(payload_loc, payload_sz))
self.logger.log("")
ReturnStatus = struct.unpack("Q", self.cs.mem.read_physical_mem(smmc + ReturnStatus_offset, 8))[0]
return ReturnStatus