Maxim Polyakov has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/45167 )
Change subject: util/intelp2m: Check keywords in common code ......................................................................
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 --- M util/intelp2m/parser/parser.go M util/intelp2m/platforms/apl/template.go M util/intelp2m/platforms/cnl/template.go A util/intelp2m/platforms/common/template.go M util/intelp2m/platforms/snr/template.go 5 files changed, 33 insertions(+), 44 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/67/45167/1
diff --git a/util/intelp2m/parser/parser.go b/util/intelp2m/parser/parser.go index 8a58ab7..d4c04cd 100644 --- a/util/intelp2m/parser/parser.go +++ b/util/intelp2m/parser/parser.go @@ -7,6 +7,7 @@ "strconv" )
+import "../platforms/common" import "../platforms/snr" import "../platforms/lbg" import "../platforms/apl" @@ -224,7 +225,8 @@ 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 5944727..823b321 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 @@ // 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 @@ "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 f1a1741..3b028e6 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 @@ // 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 0000000..296f169 --- /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 c6c39b1..9bcf9e1 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 @@ // 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 }
Matt DeVillier has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45167 )
Change subject: util/intelp2m: Check keywords in common code ......................................................................
Patch Set 1: Code-Review+1
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45167 )
Change subject: util/intelp2m: Check keywords in common code ......................................................................
Patch Set 1: Code-Review+2
Patrick Georgi has submitted this change. ( https://review.coreboot.org/c/coreboot/+/45167 )
Change subject: util/intelp2m: Check keywords in common code ......................................................................
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 --- M util/intelp2m/parser/parser.go M util/intelp2m/platforms/apl/template.go M util/intelp2m/platforms/cnl/template.go A util/intelp2m/platforms/common/template.go M util/intelp2m/platforms/snr/template.go 5 files changed, 33 insertions(+), 44 deletions(-)
Approvals: build bot (Jenkins): Verified Matt DeVillier: Looks good to me, but someone else must approve Michael Niewöhner: Looks good to me, approved
diff --git a/util/intelp2m/parser/parser.go b/util/intelp2m/parser/parser.go index 8a58ab7..d4c04cd 100644 --- a/util/intelp2m/parser/parser.go +++ b/util/intelp2m/parser/parser.go @@ -7,6 +7,7 @@ "strconv" )
+import "../platforms/common" import "../platforms/snr" import "../platforms/lbg" import "../platforms/apl" @@ -224,7 +225,8 @@ 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 5944727..823b321 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 @@ // 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 @@ "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 f1a1741..3b028e6 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 @@ // 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 0000000..296f169 --- /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 c6c39b1..9bcf9e1 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 @@ // 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 }