Re: [SeaBIOS] [BUG] BSOD on Win2003 Server when 64bit PCI resource is present

2012-08-06 Thread Gerd Hoffmann
On 07/28/12 17:27, Kevin O'Connor wrote:
> On Thu, Jul 26, 2012 at 03:38:47PM +, Alexey Korolev wrote:
>> HI,
>>
>> Current version of Seabios is causing blue screen on Windows2003 when 64bit 
>> PCI resource is present and occupies high memory.
>>
>> BSOD Error code is: 0x00A5 (0x02, 0xfADF6A446880, 0x1, 
>> 0xFADFAA34690)
>>
>> The issue is localized, it is related to presence of 64bit resource in _CRS 
>> method.
>>
>> If we disable a 64bit region from _CRS  the Win2003 load normally but this 
>> doesn't allow Windows to use 64bit resources.
>>
>> At the moment I have no idea how to fix this. Please help! 
> 
> Unfortunately, it's very difficult to debug acpi issues on Windows.
> Gerd's been on vacation this week - so, lets give him a chance to look
> at it when he gets back.  If it can't be resolved, we'll need to
> revert the patch that broke Win2003.

Well, it isn't a regression, so no need to revert IMHO.

It breaks on winxp / win2k3 only in case 64bit pci is actually used.
Which happens only in case we run out of address space below 4G.  This
is a setup which isn't supported at all with older seabios versions.

The very first patch revision had a static entry in the _CRS array
(before _CRS became a method) which didn't work with winxp too.  So we
ended up with the _CRS method which (beside updating the 32bit window)
adds the 64bit RessourceTemplate only in case we actually have 64bit pci
ressources, so we don't disturb existing setups with a new 64bit entry
they might not be able to handle.

I've never seen 64bit RessourceTemplate entries work with winxp, I fear
the winxp acpi code just can't handle 64bit RessourceTemplates ...

cheers,
  Gerd

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


Re: [SeaBIOS] [BUG] BSOD on Win2003 Server when 64bit PCI resource is present

2012-08-03 Thread Paolo Bonzini
Il 26/07/2012 17:38, Alexey Korolev ha scritto:
> HI,
> 
> Current version of Seabios is causing blue screen on Windows2003 when 64bit 
> PCI resource is present and occupies high memory.
> 
> BSOD Error code is: 0x00A5 (0x02, 0xfADF6A446880, 0x1, 
> 0xFADFAA34690)
> 
> The issue is localized, it is related to presence of 64bit resource in _CRS 
> method.
> 
> If we disable a 64bit region from _CRS  the Win2003 load normally but this 
> doesn't allow Windows to use 64bit resources.
> 
> At the moment I have no idea how to fix this. Please help! 

I wonder if Windows 2003 does not support ConcatenateResTemplate.  The patch 
below
is obviously wrong, but should let you check if this is the issue:

git diff src/acpi-dsdt.dsl
diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
index 72dc7d8..11a9c92 100644
--- a/src/acpi-dsdt.dsl
+++ b/src/acpi-dsdt.dsl
@@ -175,9 +175,6 @@ DefinitionBlock (
 0x, // Address Translation Offset
 0x1EC0, // Address Length
 ,, PW32, AddressRangeMemory, TypeStatic)
-})
-Name (CR64, ResourceTemplate ()
-{
 QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite,
 0x,  // Address Space Granularity
 0x80,// Address Range Minimum
@@ -221,20 +218,14 @@ DefinitionBlock (
Store (P0EL, PE32)
Store (P0LL, PL32)
 
-   If (LAnd(LEqual(P1SL, 0x00), LEqual(P1SH, 0x00))) {
-   Return (CRES)
-   } Else {
/* fixup 64bit pci io window */
-   CreateQWordField (CR64,\_SB.PCI0.PW64._MIN, PS64)
-   CreateQWordField (CR64,\_SB.PCI0.PW64._MAX, PE64)
-   CreateQWordField (CR64,\_SB.PCI0.PW64._LEN, PL64)
+   CreateQWordField (CRES,\_SB.PCI0.PW64._MIN, PS64)
+   CreateQWordField (CRES,\_SB.PCI0.PW64._MAX, PE64)
+   CreateQWordField (CRES,\_SB.PCI0.PW64._LEN, PL64)
Store (P1S, PS64)
Store (P1E, PE64)
Store (P1L, PL64)
-   /* add window and return result */
-   ConcatenateResTemplate (CRES, CR64, Local0)
-   Return (Local0)
-   }
+   Return (CRES)
 }
 }
 }

Paolo

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


Re: [SeaBIOS] [BUG] BSOD on Win2003 Server when 64bit PCI resource is present

2012-07-29 Thread Paolo Bonzini
Il 26/07/2012 17:38, Alexey Korolev ha scritto:
> If I add any DBUG call in acpi-dst it will cause BSOD on win2003 (win2008 
> works fine)

You can try inlining it (in practice this means adding simple
Store(0x41, DBGB) here and there).

Paolo

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


Re: [SeaBIOS] [BUG] BSOD on Win2003 Server when 64bit PCI resource is present

2012-07-28 Thread Alexey Korolev
Hi Kevin,

>Unfortunately, it's very difficult to debug acpi issues on Windows.
>Gerd's been on vacation this week - so, lets give him a chance to look
>at it when he gets back.  If it can't be resolved, we'll need to
>revert the patch that broke Win2003.

Thank you for your reply.
Right - acpi issues are painful. Actually I'm on a long holidays too. I'll do 
my best if you or Gerd need any help with the issue.

Kind regards,
Alexey
___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


Re: [SeaBIOS] [BUG] BSOD on Win2003 Server when 64bit PCI resource is present

2012-07-28 Thread Fred .
Bug Check 0xA5: ACPI_BIOS_ERROR
Bug Check 0x2: DEVICE_QUEUE_NOT_BUSY
http://msdn.microsoft.com/en-us/library/windows/hardware/ff560114%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/ff557475%28v=vs.85%29.aspx
- at the bottom there is a send comment to Microsoft form

http://download.microsoft.com/download/5/b/9/5b97017b-e28a-4bae-ba48-174cf47d23cd/cpa002_wh06.ppt
-- ACPI In Windows Vista (PowerPoint presentation)

https://support.microsoft.com/oas/default.aspx?&ln=en-us&x=14&y=13&sd=gn&gprid=3198&&st=1&wfxredirect=1
-- From here it is possible to file a support request

https://www.google.com/?q=0x00A5

On Sat, Jul 28, 2012 at 5:27 PM, Kevin O'Connor  wrote:
> On Thu, Jul 26, 2012 at 03:38:47PM +, Alexey Korolev wrote:
>> HI,
>>
>> Current version of Seabios is causing blue screen on Windows2003 when 64bit 
>> PCI resource is present and occupies high memory.
>>
>> BSOD Error code is: 0x00A5 (0x02, 0xfADF6A446880, 0x1, 
>> 0xFADFAA34690)
>>
>> The issue is localized, it is related to presence of 64bit resource in _CRS 
>> method.
>>
>> If we disable a 64bit region from _CRS  the Win2003 load normally but this 
>> doesn't allow Windows to use 64bit resources.
>>
>> At the moment I have no idea how to fix this. Please help!
>
> Unfortunately, it's very difficult to debug acpi issues on Windows.
> Gerd's been on vacation this week - so, lets give him a chance to look
> at it when he gets back.  If it can't be resolved, we'll need to
> revert the patch that broke Win2003.
>
>> P/S
>> Yet another issue is related to debug messages.
>> If I add any DBUG call in acpi-dst it will cause BSOD on win2003 (win2008 
>> works fine)
>
> I've seen this as well (on WinXP - I don't have Win2003).
> Unfortunately, I haven't been able to find out why the debug macro
> fails on these older versions of Windows.
>
> -Kevin
>
> ___
> SeaBIOS mailing list
> SeaBIOS@seabios.org
> http://www.seabios.org/mailman/listinfo/seabios

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


Re: [SeaBIOS] [BUG] BSOD on Win2003 Server when 64bit PCI resource is present

2012-07-28 Thread Kevin O'Connor
On Thu, Jul 26, 2012 at 03:38:47PM +, Alexey Korolev wrote:
> HI,
> 
> Current version of Seabios is causing blue screen on Windows2003 when 64bit 
> PCI resource is present and occupies high memory.
> 
> BSOD Error code is: 0x00A5 (0x02, 0xfADF6A446880, 0x1, 
> 0xFADFAA34690)
> 
> The issue is localized, it is related to presence of 64bit resource in _CRS 
> method.
> 
> If we disable a 64bit region from _CRS  the Win2003 load normally but this 
> doesn't allow Windows to use 64bit resources.
> 
> At the moment I have no idea how to fix this. Please help! 

Unfortunately, it's very difficult to debug acpi issues on Windows.
Gerd's been on vacation this week - so, lets give him a chance to look
at it when he gets back.  If it can't be resolved, we'll need to
revert the patch that broke Win2003.

> P/S 
> Yet another issue is related to debug messages.
> If I add any DBUG call in acpi-dst it will cause BSOD on win2003 (win2008 
> works fine)

I've seen this as well (on WinXP - I don't have Win2003).
Unfortunately, I haven't been able to find out why the debug macro
fails on these older versions of Windows.

-Kevin

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios


[SeaBIOS] [BUG] BSOD on Win2003 Server when 64bit PCI resource is present

2012-07-26 Thread Alexey Korolev
HI,

Current version of Seabios is causing blue screen on Windows2003 when 64bit PCI 
resource is present and occupies high memory.

BSOD Error code is: 0x00A5 (0x02, 0xfADF6A446880, 0x1, 
0xFADFAA34690)

The issue is localized, it is related to presence of 64bit resource in _CRS 
method.

If we disable a 64bit region from _CRS  the Win2003 load normally but this 
doesn't allow Windows to use 64bit resources.

At the moment I have no idea how to fix this. Please help! 

P/S 
Yet another issue is related to debug messages.
If I add any DBUG call in acpi-dst it will cause BSOD on win2003 (win2008 works 
fine)

___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios