-
Notifications
You must be signed in to change notification settings - Fork 361
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
disassembly issues. #414
Comments
I'm getting a crash while disassembling ssdt13.dat. Which version did you use to generate this iasl disassembly?
|
20181003 |
could you get me the result of the acpidump utility rather than the result from acpixtract? I'm having trouble disassembling. |
I think you misunderstand, these files are a result of the "acpidump -b" command. not acpixtract. |
SSDT13 decompiled for me OK. jcfrosty@Silent-Knight ~/Downloads/bios_sck $ iasl -e ssdt1.dat ssdt8.dat ssdt14.dat -d ssdt13.dat Intel ACPI Component Architecture Input file ssdt13.dat, Length 0x86 (134) bytes Parsing completed Found 6 external control methods, reparsing with new information Parsing completed |
= _SB.ALIB /* External reference */ At first glance, this looks like the issue where the disassembler gets confused because it does no know how many arguments are defined for the method. It is a serious limitation of the AML. Some symbols may not get loaded into the namespace because of conditional loading code within the DSDT/SSDTs. That's the meaning of this message: This the -fe option is intended to assist with the disassembly of these methods. Look at the header of the .DSL file(s) for more information. |
acpibob: so why does RWEverything understand the number of arguments that are defined, but iasl does not? Also, I can decompile each file one by one, but decompiling the group causes a segfault. is -e not an appropriate method? Also, no matter what file I reference, SSDT14 is going to have issues due to missing scopes that I can't locate even with RWEverything. I'm a n00b to this stuff, so I open to learning. what would a -fe file look like in my case? I'm willing to give it a try, but I'm not sure this is going to resolve the confusion with the arguments. I'm curious what to do in that case as well. |
It's likely that RWEverything is correct in guessing the amount of arguments. Either that or RWEverything might be querying windows OS to determine the amount of arguments that a control method requires |
It would be great if you could you ask the RWEverything owners on how they did this? It would be nice to do this but they might be using some sort of windows API.. |
Here is the complete (and unfortunate) store concerning disassembly of external control methods: 4.2.1 Multiple Table Disassembly $ iasl -essdt1.dat,ssdt2.dat,ssdt3.dat -d dsdt.dat Intel ACPI Component Architecture Loading Acpi table from file DSDT.dat DefinitionBlock ("DSDT.aml", "DSDT", 1, "INTEL ", "EXAMPLE", 0x06040000)
4.2.2.1 The External AML Opcode |
I think we have beaten this one to death, so I'm closing it. Externals are a major problem for disassembly. |
iasl -da *.dat DOES NOT WORK.
iasl -e ssdt1.dat ssdt4.dat ssdt8.dat ssdt14.dat -d dsdt.dat
iasl -e ssdt1.dat ssdt4.dat ssdt8.dat ssdt14.dat -d ssdt1.dat
iasl -e ssdt1.dat ssdt4.dat ssdt8.dat ssdt14.dat -d ssdt2.dat
iasl -e ssdt1.dat ssdt4.dat ssdt8.dat ssdt14.dat -d ssdt3.dat
iasl -e ssdt1.dat ssdt4.dat ssdt8.dat ssdt14.dat -d ssdt4.dat
iasl -e ssdt1.dat ssdt4.dat ssdt8.dat ssdt14.dat -d ssdt5.dat
iasl -e ssdt1.dat ssdt4.dat ssdt8.dat ssdt14.dat -d ssdt6.dat
iasl -e ssdt1.dat ssdt4.dat ssdt8.dat ssdt14.dat -d ssdt7.dat
iasl -e ssdt1.dat ssdt10.dat ssdt14.dat -d ssdt8.dat
iasl -e ssdt1.dat ssdt14.dat -d ssdt9.dat
iasl -e ssdt1.dat ssdt14.dat -d ssdt10.dat
iasl -e ssdt1.dat ssdt14.dat -d ssdt11.dat
iasl -e ssdt1.dat ssdt14.dat -d ssdt12.dat
iasl -e ssdt1.dat ssdt8.dat ssdt14.dat -d ssdt13.dat
iasl -e ssdt1.dat ssdt5.dat ssdt6.dat -d ssdt14.dat (broken, no matter what combination I use after -e)
iASL Warning: There were 9 external control methods found during
disassembly, but only 5 were resolved (4 unresolved). Additional
ACPI tables may be required to properly disassemble the code. This
resulting disassembler output file may not compile because the
disassembler did not know how many arguments to assign to the
unresolved methods. Note: SSDTs can be dynamically loaded at
runtime and may or may not be available via the host OS.
RWEverything shows:
Store(_SB.ALIB(Zero, M207), M207)
iasl dsl file shows:
= _SB.ALIB /* External reference */
M207
M207
iasl version, obviously isn't going to work due to missing/misplaced information.
I'll attach my .dat files so you can figure out why disassembly is broken.
These are from an ACER Nitro5 Ryzen 5 model (AN515-42-R5GT)
RWEverything disassembly
RWEverything.tar.gz
iasl disassembly
iasl-DSL.tar.gz
Original ACPIDUMP
bios_sck.tar.gz
The text was updated successfully, but these errors were encountered: