[PATCH 0/3] Fix WinXP ISO boot using the dc390/am53C974 SCSI device

Ricardo Ribalda posted 3 patches 1 month ago
There is a newer version of this series
hw/i386/acpi-build.c                 |   2 +-
tests/data/acpi/x86/pc/DSDT          | Bin 8527 -> 8526 bytes
tests/data/acpi/x86/pc/DSDT.acpierst | Bin 8438 -> 8437 bytes
tests/data/acpi/x86/pc/DSDT.acpihmat | Bin 9852 -> 9851 bytes
tests/data/acpi/x86/pc/DSDT.bridge   | Bin 15398 -> 15397 bytes
tests/data/acpi/x86/pc/DSDT.cphp     | Bin 8991 -> 8990 bytes
tests/data/acpi/x86/pc/DSDT.dimmpxm  | Bin 10181 -> 10180 bytes
tests/data/acpi/x86/pc/DSDT.hpbridge | Bin 8478 -> 8477 bytes
tests/data/acpi/x86/pc/DSDT.hpbrroot | Bin 5034 -> 5033 bytes
tests/data/acpi/x86/pc/DSDT.ipmikcs  | Bin 8599 -> 8598 bytes
tests/data/acpi/x86/pc/DSDT.memhp    | Bin 9886 -> 9885 bytes
tests/data/acpi/x86/pc/DSDT.nohpet   | Bin 8385 -> 8384 bytes
tests/data/acpi/x86/pc/DSDT.numamem  | Bin 8533 -> 8532 bytes
tests/data/acpi/x86/pc/DSDT.roothp   | Bin 12320 -> 12319 bytes
tests/data/acpi/x86/q35/DSDT.cxl     | Bin 13148 -> 13146 bytes
tests/data/acpi/x86/q35/DSDT.viot    | Bin 14615 -> 14612 bytes
16 files changed, 1 insertion(+), 1 deletion(-)
[PATCH 0/3] Fix WinXP ISO boot using the dc390/am53C974 SCSI device
Posted by Ricardo Ribalda 1 month ago
Mark Cave-Ayland reported that after landing the pre-computed _PRT, the
above mentioned testcase failed to pass.

It seems that it is due to WinXP not handling properly a variable
package. Let's replace it.


Unfortunately, the ASL diff is not the best (or I cannot produce
something better):

12c12
<  *     Length           0x00003917 (14615)
---
>  *     Length           0x00003914 (14612)
14c14
<  *     Checksum         0xD9
---
>  *     Checksum         0x09

Ricardo Ribalda (3):
  tests/acpi: pc: allow DSDT acpi table changes
  hw/i386/acpi-build: return a non-var package from _PRT()
  tests/acpi: pc: update golden masters for DSDT

 hw/i386/acpi-build.c                 |   2 +-
 tests/data/acpi/x86/pc/DSDT          | Bin 8527 -> 8526 bytes
 tests/data/acpi/x86/pc/DSDT.acpierst | Bin 8438 -> 8437 bytes
 tests/data/acpi/x86/pc/DSDT.acpihmat | Bin 9852 -> 9851 bytes
 tests/data/acpi/x86/pc/DSDT.bridge   | Bin 15398 -> 15397 bytes
 tests/data/acpi/x86/pc/DSDT.cphp     | Bin 8991 -> 8990 bytes
 tests/data/acpi/x86/pc/DSDT.dimmpxm  | Bin 10181 -> 10180 bytes
 tests/data/acpi/x86/pc/DSDT.hpbridge | Bin 8478 -> 8477 bytes
 tests/data/acpi/x86/pc/DSDT.hpbrroot | Bin 5034 -> 5033 bytes
 tests/data/acpi/x86/pc/DSDT.ipmikcs  | Bin 8599 -> 8598 bytes
 tests/data/acpi/x86/pc/DSDT.memhp    | Bin 9886 -> 9885 bytes
 tests/data/acpi/x86/pc/DSDT.nohpet   | Bin 8385 -> 8384 bytes
 tests/data/acpi/x86/pc/DSDT.numamem  | Bin 8533 -> 8532 bytes
 tests/data/acpi/x86/pc/DSDT.roothp   | Bin 12320 -> 12319 bytes
 tests/data/acpi/x86/q35/DSDT.cxl     | Bin 13148 -> 13146 bytes
 tests/data/acpi/x86/q35/DSDT.viot    | Bin 14615 -> 14612 bytes
 16 files changed, 1 insertion(+), 1 deletion(-)

-- 
2.46.0.792.g87dc391469-goog
Re: [PATCH 0/3] Fix WinXP ISO boot using the dc390/am53C974 SCSI device
Posted by Michael S. Tsirkin 3 weeks, 6 days ago
On Sun, Sep 22, 2024 at 02:31:08PM +0000, Ricardo Ribalda wrote:
> Mark Cave-Ayland reported that after landing the pre-computed _PRT, the
> above mentioned testcase failed to pass.
> 
> It seems that it is due to WinXP not handling properly a variable
> package. Let's replace it.


Thanks, will merge

> 
> Unfortunately, the ASL diff is not the best (or I cannot produce
> something better):
> 
> 12c12
> <  *     Length           0x00003917 (14615)
> ---
> >  *     Length           0x00003914 (14612)
> 14c14
> <  *     Checksum         0xD9
> ---
> >  *     Checksum         0x09
> 
> Ricardo Ribalda (3):
>   tests/acpi: pc: allow DSDT acpi table changes
>   hw/i386/acpi-build: return a non-var package from _PRT()
>   tests/acpi: pc: update golden masters for DSDT
> 
>  hw/i386/acpi-build.c                 |   2 +-
>  tests/data/acpi/x86/pc/DSDT          | Bin 8527 -> 8526 bytes
>  tests/data/acpi/x86/pc/DSDT.acpierst | Bin 8438 -> 8437 bytes
>  tests/data/acpi/x86/pc/DSDT.acpihmat | Bin 9852 -> 9851 bytes
>  tests/data/acpi/x86/pc/DSDT.bridge   | Bin 15398 -> 15397 bytes
>  tests/data/acpi/x86/pc/DSDT.cphp     | Bin 8991 -> 8990 bytes
>  tests/data/acpi/x86/pc/DSDT.dimmpxm  | Bin 10181 -> 10180 bytes
>  tests/data/acpi/x86/pc/DSDT.hpbridge | Bin 8478 -> 8477 bytes
>  tests/data/acpi/x86/pc/DSDT.hpbrroot | Bin 5034 -> 5033 bytes
>  tests/data/acpi/x86/pc/DSDT.ipmikcs  | Bin 8599 -> 8598 bytes
>  tests/data/acpi/x86/pc/DSDT.memhp    | Bin 9886 -> 9885 bytes
>  tests/data/acpi/x86/pc/DSDT.nohpet   | Bin 8385 -> 8384 bytes
>  tests/data/acpi/x86/pc/DSDT.numamem  | Bin 8533 -> 8532 bytes
>  tests/data/acpi/x86/pc/DSDT.roothp   | Bin 12320 -> 12319 bytes
>  tests/data/acpi/x86/q35/DSDT.cxl     | Bin 13148 -> 13146 bytes
>  tests/data/acpi/x86/q35/DSDT.viot    | Bin 14615 -> 14612 bytes
>  16 files changed, 1 insertion(+), 1 deletion(-)
> 
> -- 
> 2.46.0.792.g87dc391469-goog
Re: [PATCH 0/3] Fix WinXP ISO boot using the dc390/am53C974 SCSI device
Posted by Mark Cave-Ayland 1 month ago
On 22/09/2024 15:31, Ricardo Ribalda wrote:

> Mark Cave-Ayland reported that after landing the pre-computed _PRT, the
> above mentioned testcase failed to pass.
> 
> It seems that it is due to WinXP not handling properly a variable
> package. Let's replace it.
> 
> 
> Unfortunately, the ASL diff is not the best (or I cannot produce
> something better):
> 
> 12c12
> <  *     Length           0x00003917 (14615)
> ---
>>   *     Length           0x00003914 (14612)
> 14c14
> <  *     Checksum         0xD9
> ---
>>   *     Checksum         0x09
> 
> Ricardo Ribalda (3):
>    tests/acpi: pc: allow DSDT acpi table changes
>    hw/i386/acpi-build: return a non-var package from _PRT()
>    tests/acpi: pc: update golden masters for DSDT
> 
>   hw/i386/acpi-build.c                 |   2 +-
>   tests/data/acpi/x86/pc/DSDT          | Bin 8527 -> 8526 bytes
>   tests/data/acpi/x86/pc/DSDT.acpierst | Bin 8438 -> 8437 bytes
>   tests/data/acpi/x86/pc/DSDT.acpihmat | Bin 9852 -> 9851 bytes
>   tests/data/acpi/x86/pc/DSDT.bridge   | Bin 15398 -> 15397 bytes
>   tests/data/acpi/x86/pc/DSDT.cphp     | Bin 8991 -> 8990 bytes
>   tests/data/acpi/x86/pc/DSDT.dimmpxm  | Bin 10181 -> 10180 bytes
>   tests/data/acpi/x86/pc/DSDT.hpbridge | Bin 8478 -> 8477 bytes
>   tests/data/acpi/x86/pc/DSDT.hpbrroot | Bin 5034 -> 5033 bytes
>   tests/data/acpi/x86/pc/DSDT.ipmikcs  | Bin 8599 -> 8598 bytes
>   tests/data/acpi/x86/pc/DSDT.memhp    | Bin 9886 -> 9885 bytes
>   tests/data/acpi/x86/pc/DSDT.nohpet   | Bin 8385 -> 8384 bytes
>   tests/data/acpi/x86/pc/DSDT.numamem  | Bin 8533 -> 8532 bytes
>   tests/data/acpi/x86/pc/DSDT.roothp   | Bin 12320 -> 12319 bytes
>   tests/data/acpi/x86/q35/DSDT.cxl     | Bin 13148 -> 13146 bytes
>   tests/data/acpi/x86/q35/DSDT.viot    | Bin 14615 -> 14612 bytes
>   16 files changed, 1 insertion(+), 1 deletion(-)

This passes my WinXP test (and also a local run of "make check") so it looks good to 
me. I'm not familiar enough with ACPI to give an R-B tag, but it certainly solves the 
issue so:

Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.