Contribute
Register

USBMap: trouble compiling SSDT-RHUB-Reset.dsl

Status
Not open for further replies.
Joined
Mar 17, 2020
Messages
125
Motherboard
ASRock W480 Creator-1.40-OC0.9.5
CPU
i9-10850K
Graphics
RX 6650 XT
Mac
  1. MacBook Pro
After having built and saved a "SSDT-RHUB-Reset.dsl" with the "H. Generate ACPI To Reset RHUBs", I get the following syntax errors in MaciASL when I try to compile the .dsl file:
(line, code, message)
13, 6126, syntax error, unexpected PARSEOP_NAMESEG, expecting PARSEOP_CLOSE_PAREN
15, 6126, syntax error, unexpected PARSEOP_NAMESEG, expecting PARSEOP_CLOSE_PAREN
30, 6126, syntax error, unexpected PARSEOP_EXTERNAL, expecting $end and premature End-Of-File

Any ideas what these mean or how to fix? Can't find the solution on google... Thanks!
 

Attachments

  • SSDT-RHUB-Reset.dsl
    1.1 KB · Views: 94
After having built and saved a "SSDT-RHUB-Reset.dsl" with the "H. Generate ACPI To Reset RHUBs", I get the following syntax errors in MaciASL when I try to compile the .dsl file:
(line, code, message)
13, 6126, syntax error, unexpected PARSEOP_NAMESEG, expecting PARSEOP_CLOSE_PAREN
15, 6126, syntax error, unexpected PARSEOP_NAMESEG, expecting PARSEOP_CLOSE_PAREN
30, 6126, syntax error, unexpected PARSEOP_EXTERNAL, expecting $end and premature End-Of-File

Any ideas what these mean or how to fix? Can't find the solution on google... Thanks!

Missing brackets in your code.
 
Missing brackets in your code.
I couldn't see that there were brackets missing. Do you see it?
1619891739456.png
 
I couldn't see that there were brackets missing. Do you see it?
View attachment 517147

The error is because you have too many items within the parentheses of lines 13 & 15 (APPLEUSBXHCITR etc). This causes the parser to expect more brackets when none are included.
 
You need to change APPLEXHCITR to XHCI or XHC_ or XHC in the SSDT, it will then compile without any errors.

What you change it to depends on the ACPI path of the device, which should be shown in your IOReg.

I have never seen a path name in a DSDT or SSDT that is more than 4 characters.
 
You need to change APPLEXHCITR to XHCI or XHC_ or XHC in the SSDT, it will then compile without any errors.

What you change it to depends on the ACPI path of the device, which should be shown in your IOReg.

I have never seen a path name in a DSDT or SSDT that is more than 4 characters.

I'm not sure the intention is XHCI. Looks like trying to reset an external USB chipset which is outside the XHCI stack... but could be wrong. Learn something new every day.
 
Last edited:
I have never seen a path name in a DSDT or SSDT that is more than 4 characters.
ACPI Specification 6.3 (apparently a bedtime favourite with our friends at Dortania), section 5.3 (page 265):
The namespace is hierarchical in nature, with each name allowing a collection of names “below” it. The following naming conventions apply to all names:
  • All names are a fixed 32 bits.
  • The first byte of a name is inclusive of: ‘A’–‘Z’, ‘_’, (0x41–0x5A, 0x5F).
  • The remaining three bytes of a name are inclusive of: ‘A’–‘Z’, ‘0’–‘9’, ‘_’, (0x41–0x5A, 0x30– 0x39, 0x5F).
  • By convention, when an ASL compiler pads a name shorter than 4 characters, it is done so with trailing underscores (‘_’). See the language definition for AML NameSeg in the ACPI Source Language (ASL) Reference chapter.
  • Names beginning with ‘_’ are reserved by this specification. Definition Blocks can only use names beginning with ‘_’ as defined by this specification.
  • A name proceeded with ‘\’ causes the name to refer to the root of the namespace (‘\’ is not part of the 32-bit fixed-length name).
  • A name proceeded with ‘^’ causes the name to refer to the parent of the current namespace (‘^’ is not part of the 32-bit fixed-length name).
 
Status
Not open for further replies.
Back
Top