On 05/04/2015 05:16 AM, Igor Mammedov wrote:
On Wed, 29 Apr 2015 12:42:21 -0400
2 choices now -- which one to take?
I'd try installing extra SSDT table first as a cleanest way (seabios only)
and if it fails fallback to TIS path.
I did some experiment where I tried to use AML's Store() call to see
whether it can read from some entry in another scope, similar to what
the specs show on page 487, so that one could read the base address that
is written elsewhere. The problem seems to be that there is no actual
searching going on for accessing a scope during runtime, but this seems
to be done during compile time. So something like Store(\_SB.I2C1.Y,
BUFF) from the specs needs to have a SCOPE(\_SB.I2C1...) available
during compile time.
Otherwise I am not sure how to go about this. The only way I could think
of would be to write a unique and 'recognizeable' address into the AML,
something like 0x12345678, try to find it in SeaBIOS and replace it with
the actual address. It doesn't seem right, tough. The next best choice
would be to paravirtualize the TIS with bytes that survive a reset.
Regards,
Stefan