From 8bd25abc051d039dd05ab3c848fc8fae1eb1c736 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Sun, 12 Aug 2018 00:21:08 +0200 Subject: [PATCH] util/autoport: Adapt logmaker for newer ACPI versions acpidump now creates dumps with 4 spaces instead of 2 in front of the hex dump, so be a bit smarter about the input with regexp. Tested with X220 autoport logs: Still creates the same coreboot code. Change-Id: I8d48c09cdff9432f394b350540ea9765fc942781 Signed-off-by: Arthur Heymans Reviewed-on: https://review.coreboot.org/28054 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber --- util/autoport/log_reader.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/util/autoport/log_reader.go b/util/autoport/log_reader.go index c94d182b49..d9a687ad42 100644 --- a/util/autoport/log_reader.go +++ b/util/autoport/log_reader.go @@ -6,6 +6,7 @@ import ( "fmt" "log" "os" + "regexp" "strconv" "strings" ) @@ -106,11 +107,13 @@ func (l *LogDevReader) GetACPI() (Tables map[string][]byte) { curTable := "" for scanner.Scan() { line := scanner.Text() + /* Only supports ACPI tables up to 0x10000 in size, FIXME if needed */ + is_hexline, _ := regexp.MatchString(" *[0-9A-Fa-f]{4}: ", line) switch { case len(line) >= 6 && line[5] == '@': curTable = line[0:4] Tables[curTable] = make([]byte, 0, 100000) - case len(line) > 7 && line[0:2] == " " && isXDigit(line[2]) && isXDigit(line[3]) && isXDigit(line[4]) && isXDigit(line[5]) && line[6] == ':': + case is_hexline: Tables[curTable] = l.AssignHexLine(line, Tables[curTable]) } }