From 0cf46991bda02588cc7ce040fa196b9888d38d0f Mon Sep 17 00:00:00 2001 From: Assaf Carlsbad Date: Mon, 15 Mar 2021 13:01:53 +0200 Subject: [PATCH] Dump the communication buffer before and after triggering the SMI. --- chipsec/hal/interrupts.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/chipsec/hal/interrupts.py b/chipsec/hal/interrupts.py index 5d60d54b..87ccaf41 100644 --- a/chipsec/hal/interrupts.py +++ b/chipsec/hal/interrupts.py @@ -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