summaryrefslogtreecommitdiffstats
path: root/util/intelp2m
diff options
context:
space:
mode:
authorMaxim Polyakov <max.senia.poliak@gmail.com>2020-09-08 10:12:02 +0300
committerPatrick Georgi <pgeorgi@google.com>2020-09-21 08:07:26 +0000
commit0a6f82835ecbc43b43ff8645f049eee2844a4d85 (patch)
tree6f70d8525930e78a13a50f055da83813126b88cd /util/intelp2m
parent85e4c43b02da1561a6af589bdc21fdaa0f112777 (diff)
downloadcoreboot-0a6f82835ecbc43b43ff8645f049eee2844a4d85.tar.gz
coreboot-0a6f82835ecbc43b43ff8645f049eee2844a4d85.tar.bz2
coreboot-0a6f82835ecbc43b43ff8645f049eee2844a4d85.zip
util/intelp2m: Check keywords in common code
TEST = ./intelp2m -n -file inteltool.log; ./intelp2m -fld cb -file inteltool.log; ./intelp2m -fld fsp -file inteltool.log; ./intelp2m -fld raw -file inteltool.log. Before and after the patch, gpio.h is no different. Change-Id: I8af28960e41fcb97f03fe97c42cdddde07b3615a Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/45167 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
Diffstat (limited to 'util/intelp2m')
-rw-r--r--util/intelp2m/parser/parser.go4
-rw-r--r--util/intelp2m/platforms/apl/template.go13
-rw-r--r--util/intelp2m/platforms/cnl/template.go15
-rw-r--r--util/intelp2m/platforms/common/template.go15
-rw-r--r--util/intelp2m/platforms/snr/template.go30
5 files changed, 33 insertions, 44 deletions
diff --git a/util/intelp2m/parser/parser.go b/util/intelp2m/parser/parser.go
index 8a58ab78a5f2..d4c04cd02be2 100644
--- a/util/intelp2m/parser/parser.go
+++ b/util/intelp2m/parser/parser.go
@@ -7,6 +7,7 @@ import (
"strconv"
)
+import "../platforms/common"
import "../platforms/snr"
import "../platforms/lbg"
import "../platforms/apl"
@@ -224,7 +225,8 @@ func (parser *ParserData) Parse() {
scanner := bufio.NewScanner(config.InputRegDumpFile)
for scanner.Scan() {
parser.line = scanner.Text()
- if strings.Contains(parser.line, "GPIO Community") || strings.Contains(parser.line, "GPIO Group") {
+ isIncluded, _ := common.KeywordsCheck(parser.line, "GPIO Community", "GPIO Group");
+ if isIncluded {
parser.communityGroupExtract()
} else if !parser.padConfigurationExtract() && parser.platform.KeywordCheck(parser.line) {
if parser.padInfoExtract() != 0 {
diff --git a/util/intelp2m/platforms/apl/template.go b/util/intelp2m/platforms/apl/template.go
index 5944727cd647..823b321f3d81 100644
--- a/util/intelp2m/platforms/apl/template.go
+++ b/util/intelp2m/platforms/apl/template.go
@@ -1,6 +1,6 @@
package apl
-import "strings"
+import "../common"
// GroupNameExtract - This function extracts the group ID, if it exists in a row
// line : string from the configuration file
@@ -16,7 +16,7 @@ func (PlatformSpecific) GroupNameExtract(line string) (bool, string) {
// returns true if the keyword is contained in the line.
// line : string from the configuration file
func (PlatformSpecific) KeywordCheck(line string) bool {
- for _, keyword := range []string{
+ isIncluded, _ := common.KeywordsCheck(line,
"GPIO_", "TCK", "TRST_B", "TMS", "TDI", "CX_PMODE", "CX_PREQ_B", "JTAGX", "CX_PRDY_B",
"TDO", "CNV_BRI_DT", "CNV_BRI_RSP", "CNV_RGI_DT", "CNV_RGI_RSP", "SVID0_ALERT_B",
"SVID0_DATA", "SVID0_CLK", "PMC_SPI_FS", "PMC_SPI_RXD", "PMC_SPI_TXD", "PMC_SPI_CLK",
@@ -25,11 +25,6 @@ func (PlatformSpecific) KeywordCheck(line string) bool {
"PMU_BATLOW_B", "PMU_PLTRST_B", "PMU_PWRBTN_B", "PMU_RESETBUTTON_B", "PMU_SLP_S0_B",
"PMU_SLP_S3_B", "PMU_SLP_S4_B", "PMU_SUSCLK", "PMU_WAKE_B", "SUS_STAT_B", "SUSPWRDNACK",
"SMB_ALERTB", "SMB_CLK", "SMB_DATA", "LPC_ILB_SERIRQ", "LPC_CLKOUT", "LPC_AD", "LPC_CLKRUNB",
- "LPC_FRAMEB",
- } {
- if strings.Contains(line, keyword) {
- return true
- }
- }
- return false
+ "LPC_FRAMEB")
+ return isIncluded
}
diff --git a/util/intelp2m/platforms/cnl/template.go b/util/intelp2m/platforms/cnl/template.go
index f1a17413bce7..3b028e68aed4 100644
--- a/util/intelp2m/platforms/cnl/template.go
+++ b/util/intelp2m/platforms/cnl/template.go
@@ -1,9 +1,8 @@
package cnl
-import "strings"
+import "../common"
type InheritanceTemplate interface {
-
KeywordCheck(line string) bool
}
@@ -13,16 +12,8 @@ type InheritanceTemplate interface {
// bool : true if the string contains a group identifier
// string : group identifier
func (PlatformSpecific) GroupNameExtract(line string) (bool, string) {
- for _, groupKeyword := range []string{
- "GPP_A", "GPP_B", "GPP_G",
- "GPP_D", "GPP_F", "GPP_H",
- "GPD", "GPP_C", "GPP_E",
- } {
- if strings.Contains(line, groupKeyword) {
- return true, groupKeyword
- }
- }
- return false, ""
+ return common.KeywordsCheck(line,
+ "GPP_A", "GPP_B", "GPP_G", "GPP_D", "GPP_F", "GPP_H", "GPD", "GPP_C", "GPP_E")
}
// KeywordCheck - This function is used to filter parsed lines of the configuration file and
diff --git a/util/intelp2m/platforms/common/template.go b/util/intelp2m/platforms/common/template.go
new file mode 100644
index 000000000000..296f169fb3f1
--- /dev/null
+++ b/util/intelp2m/platforms/common/template.go
@@ -0,0 +1,15 @@
+package common
+
+import "strings"
+
+// KeywordsCheck - check if one of the keyword from the <keywords> group is included in the
+// <line> string. Returns false if no word was found, or true otherwise and also this word
+// itself
+func KeywordsCheck(line string, keywords ...string) (bool, string) {
+ for _, key := range keywords {
+ if strings.Contains(line, key) {
+ return true, key
+ }
+ }
+ return false, ""
+}
diff --git a/util/intelp2m/platforms/snr/template.go b/util/intelp2m/platforms/snr/template.go
index c6c39b198e35..9bcf9e102923 100644
--- a/util/intelp2m/platforms/snr/template.go
+++ b/util/intelp2m/platforms/snr/template.go
@@ -1,6 +1,6 @@
package snr
-import "strings"
+import "../common"
// GroupNameExtract - This function extracts the group ID, if it exists in a row
// line : string from the configuration file
@@ -8,30 +8,16 @@ import "strings"
// bool : true if the string contains a group identifier
// string : group identifier
func (PlatformSpecific) GroupNameExtract(line string) (bool, string) {
- for _, groupKeyword := range []string{
- "GPP_A", "GPP_B", "GPP_F",
- "GPP_C", "GPP_D", "GPP_E",
- "GPD", "GPP_I",
- "GPP_J", "GPP_K",
- "GPP_G", "GPP_H", "GPP_L",
- } {
- if strings.Contains(line, groupKeyword) {
- return true, groupKeyword
- }
- }
- return false, ""
+ return common.KeywordsCheck(line,
+ "GPP_A", "GPP_B", "GPP_F", "GPP_C", "GPP_D", "GPP_E", "GPD", "GPP_I", "GPP_J",
+ "GPP_K", "GPP_G", "GPP_H", "GPP_L")
}
// KeywordCheck - This function is used to filter parsed lines of the configuration file and
// returns true if the keyword is contained in the line.
-// line : string from the configuration file
+// line : string from the configuration file
+// Returns false if no word was found, or true otherwise
func (PlatformSpecific) KeywordCheck(line string) bool {
- for _, keyword := range []string{
- "GPP_", "GPD",
- } {
- if strings.Contains(line, keyword) {
- return true
- }
- }
- return false
+ isIncluded, _ := common.KeywordsCheck(line, "GPP_", "GPD")
+ return isIncluded
}