As per ACPI spec 10b: https://uefi.org/sites/default/files/re ... rata_B.pdf, the following structure is to be maintained:
And by extension, we can derive that the structure of a DefOpRegion should start with:DefOpRegion := OpRegionOp NameString RegionSpace RegionOffset RegionLen
OpRegionOp := ExtOpPrefix 0x80
ExtOpPrefix := 0x5B
Here are the 10 bytes around the byte I'm trying to understand, with the odd byte >highlighted< :0x5B 0x80 NameString RegionSpace RegionOffset RegionLen
Code: Select all
0x4 0x5C 0x0 0x5B 0x80 >0x44< 0x42 0x47 0x5F 0x1
So the 0x5B 0x80 is present, but the next byte is 0x44 - which doesn't seem to fit the NameString definition required next:
...so the next char should either be '\\' or '^', which means 'D' really shouldn't be there. Hopefully this is enough information to be complete, but I'm not quite understanding how I'm supposed to parse this 0x44 byte. Any help would be much appreciated, as I'm relatively new to AML parsing!NameString := <RootChar NamePath> | <PrefixPath NamePath>
RootChar := ‘\’
PrefixPath := Nothing | <‘^’ PrefixPath>
Edit with further testing:
I now have encountered another problem - the same thing happens on real hardware with a DefName, this time with 0x45 ('E'). It sort of looks like sometimes NameString is actually a NameSeg? Testing it more right now.