Skip to content

Commit 6d27c8b

Browse files
BrentHoltsclawnpmitche
authored andcommitted
enforce uppercase registernames
Fix instances where registers were able to be referenced as lowercase causing errors Signed-off-by: brentholtsclaw <brent.holtsclaw@intel.com>
1 parent 5bb516e commit 6d27c8b

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

chipsec/cfg/parsers/core_parser_helper.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,16 @@ def default_rules(cls) -> 'ConversionRules':
7070
int_list_keys={'bus'},
7171
str_list_keys={'config'},
7272
range_list_keys=range_list_keys,
73-
case_insensitive_keys={'name'}
73+
case_insensitive_keys={
74+
'name',
75+
'base_field',
76+
'baseh_field',
77+
'limit_field',
78+
'enable_field',
79+
'valid',
80+
'valid_field',
81+
'base_addr',
82+
}
7483
)
7584

7685
def set_did_as_range(self):

chipsec/cfg/parsers/registers/msgbus.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ def read(self) -> int:
174174
try:
175175
self.logger.log_debug(f'reading {self.name}')
176176
_cs = cs()
177-
self.value = _cs.hals.MsgBus.msgbus_reg_read(self.port, self.offset)
177+
self.value = _cs.hals.msgbus.msgbus_reg_read(self.port, self.offset)
178178
return self.value
179179
except Exception as e:
180180
raise MSGBUSRegisterError(
@@ -194,7 +194,7 @@ def write(self, value: int) -> None:
194194
try:
195195
self.logger.log_debug(f'writing 0x{value:X} to {self.name}')
196196
_cs = cs()
197-
_cs.hals.MsgBus.msgbus_reg_write(self.port, self.offset, value)
197+
_cs.hals.msgbus.msgbus_reg_write(self.port, self.offset, value)
198198
self.value = value
199199
except Exception as e:
200200
raise MSGBUSRegisterError(

chipsec/hal/common/mmio.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ def get_MMIO_BAR_base_address(self, bar_name: str, instance: Optional['PCIObj']
211211
continue
212212
try:
213213
reg_mask = bar_reg.get_field_mask(base_field, preserve)
214-
except CSReadError:
214+
except (CSReadError, AttributeError):
215215
continue
216216
break
217217
if not preserve:
@@ -227,12 +227,12 @@ def get_MMIO_BAR_base_address(self, bar_name: str, instance: Optional['PCIObj']
227227
base_field = bar.baseh_field
228228
try:
229229
baseh = bar_reg.read_field(base_field, preserve)
230-
except CSReadError:
230+
except (CSReadError, AttributeError):
231231
self.logger.log_hal('[mmio] Unable to determine MMIO Base registerh. Using Base = 0x0')
232232
baseh = 0
233233
try:
234234
reg_maskh = bar_reg.get_field_mask(base_field, preserve)
235-
except CSReadError:
235+
except (CSReadError, AttributeError):
236236
self.logger.log_hal('[mmio] Unable to determine MMIO Mask registerh. Using Mask = 0xFFFF')
237237
reg_maskh = 0xFFFF
238238
if not preserve:
@@ -243,7 +243,7 @@ def get_MMIO_BAR_base_address(self, bar_name: str, instance: Optional['PCIObj']
243243
if bar.registertype and bar.registertype == 'dynamic':
244244
try:
245245
dynbase = self.read_MMIO_reg(base, 0)
246-
except CSReadError:
246+
except (CSReadError, AttributeError):
247247
self.logger.log_hal('[mmio] Unable to determine MMIO Base. Using Base = 0x0')
248248
dynbase = 0x0
249249
base = dynbase

chipsec/library/register.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,7 @@ def get_instance_by_name(self, reg_name: str,
332332

333333
def has_field(self, reg_name: str, field_name: str) -> bool:
334334
"""Checks if the register has specific field"""
335+
field_name = field_name.upper()
335336
try:
336337
reg_defs = self.cs.Cfg.get_reglist(reg_name)
337338
except RegisterNotFoundError:
@@ -517,6 +518,7 @@ def get_mask(self) -> int:
517518
def get_field_mask(
518519
self, reg_field: str, preserve_field_position: Optional[bool] = False
519520
) -> int:
521+
reg_field = reg_field.upper()
520522
field_attrs = self.fields[reg_field]
521523
mask_start = 0
522524
size = field_attrs['size']

0 commit comments

Comments
 (0)