NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: bin/43121: acpidump(8) does not output all SSDT entries
The following reply was made to PR bin/43121; it has been noted by GNATS.
From: Jukka Ruohonen <jruohonen%iki.fi@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: bin/43121: acpidump(8) does not output all SSDT entries
Date: Fri, 11 Jun 2010 02:24:23 +0300
After talking to Gregoire Sutre, we were able to understand what the problem
is. It is not the External() but the Load() opcode, which loads additional
tables dynamically. Again an example from the ThinkPad X60s:
OperationRegion (IST0, SystemMemory,
DerefOf (Index (SSDT, 0x01)), DerefOf (Index (SSDT, 0x02)))
Load (IST0, HI0)
where the required address is conveyed in the OperationRegion declaration.
The kernel has no problems dealing with this, but increasingly it appears
that acpidump(8) is broken beyond repair; parsing the address from the above
operation region requires the help of the interpreter, and even then it can
be dangeours, given that /dev/mem is involved.
Note also that a similar acpidump program on Linux is broken as well.
As said, dealing with this is easy in the kernel. A possible solution would
be to pass the data from the kernel to the userland via an ioctl or an
equivalent mechanism. This would likely be the end of acpidump(8) as we know
it.
I am working towards a solution, but it is unlikely to appear in the
foreseeable future.
Home |
Main Index |
Thread Index |
Old Index