diff mbox

[RESEND,v3] hotplug: add device per func in ACPI DSDT tables

Message ID 20120509072452.14872.92530.stgit@t
State Not Applicable
Headers show

Commit Message

Amos Kong May 9, 2012, 7:24 a.m. UTC
Boot up a Linux VM with 8 pci block devices which
are the 8 functions in one pci slot.
| # qemu-kvm ...
| -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
| -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
| ....
| -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
| -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \

Check devices in guest.
| vm)# ls /dev/vd*
|    vda vdb vdc vde vdf vdg vdh
| vm)# lspci |grep block
| 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
|    ...
| 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
|

Func1~7 still exist in guest after hot-removing the whole slot
through qemu monitor.
| vm)# lspci |grep block    (00:03.0 disappeared)
| 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
|    ...
| 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
| vm)# ls /dev/vd*          (vda disappeared)
|    vdb vdc vde vdf vdg vdh
| vm)# mkfs /dev/vdb
|    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)


Currently only func0 is defined in ACPI DSDT table
of seabios, and only hot-adding func0 would cause
a ACPI event for notification. Other funcs except
func0 wouldn't be registered in linux pci driver.
(we can only found func0 in slot->funcs list of
pci driver).

When VM pci driver receives an ACPI event for
hot-removing, it will only clean functions in
slot->funcs list, the other funcs could not be
cleaned.

This patch adds device per function in ACPI DSDT tables,
then all funcs will be registered in slot->funcs list.
It's coincident with microsoft's example:
http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH

Have tested with linux/winxp/win7, hot-adding/hot-remving,
single/multiple function devices, they are all fine(all
added devices can be removed).

This patch includes some bits mst wrote, thanks!
---
old discussion: http://marc.info/?l=kvm&m=132428400917405&w=2

Signed-off-by: Amos Kong <akong@redhat.com>
CC: Michael S. Tsirkin <mst@redhat.com>
---
 src/ssdt-pcihp.dsl |   17 
 src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 8781 insertions(+), 105 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Amos Kong May 9, 2012, 7:35 a.m. UTC | #1
On 09/05/12 15:24, Amos Kong wrote:
> Boot up a Linux VM with 8 pci block devices which
> are the 8 functions in one pci slot.
> | # qemu-kvm ...
> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
> | ....
> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
>
> Check devices in guest.
> | vm)# ls /dev/vd*
> |    vda vdb vdc vde vdf vdg vdh
> | vm)# lspci |grep block
> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> |
>
> Func1~7 still exist in guest after hot-removing the whole slot
> through qemu monitor.
> | vm)# lspci |grep block    (00:03.0 disappeared)
> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> | vm)# ls /dev/vd*          (vda disappeared)
> |    vdb vdc vde vdf vdg vdh
> | vm)# mkfs /dev/vdb
> |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)
>
>
> Currently only func0 is defined in ACPI DSDT table
> of seabios, and only hot-adding func0 would cause
> a ACPI event for notification. Other funcs except
> func0 wouldn't be registered in linux pci driver.
> (we can only found func0 in slot->funcs list of
> pci driver).
>
> When VM pci driver receives an ACPI event for
> hot-removing, it will only clean functions in
> slot->funcs list, the other funcs could not be
> cleaned.
>
> This patch adds device per function in ACPI DSDT tables,
> then all funcs will be registered in slot->funcs list.
> It's coincident with microsoft's example:
> http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH

Attached 'seabios/out/ssdt-pcihp.dsl.i'.

btw, the first mail is little big (86K), please delete hex part
when you reply, thanks.


> Have tested with linux/winxp/win7, hot-adding/hot-remving,
> single/multiple function devices, they are all fine(all
> added devices can be removed).
>
> This patch includes some bits mst wrote, thanks!
> ---
> old discussion: http://marc.info/?l=kvm&m=132428400917405&w=2
>
> Signed-off-by: Amos Kong<akong@redhat.com>
> CC: Michael S. Tsirkin<mst@redhat.com>
> ---
>   src/ssdt-pcihp.dsl |   17
>   src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>   2 files changed, 8781 insertions(+), 105 deletions(-)
>
> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> index 4b435b8..2a3c326 100644
> --- a/src/ssdt-pcihp.dsl
> +++ b/src/ssdt-pcihp.dsl
> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>           // at runtime, if the slot is detected to not support hotplug.
>           // Extract the offset of the address dword and the
>           // _EJ0 name to allow this patching.
> -#define hotplug_slot(slot)                              \
> -        Device (S##slot) {                              \
> +#define hotplug_func(slot, fn)                          \
> +        Device (S##slot##fn) {                          \
>              ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> -           Name (_ADR, 0x##slot##0000)                  \
> +           Name (_ADR, 0x##slot##000##fn)               \
>              ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>              Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>              Name (_SUN, 0x##slot)                        \
>           }
> +#define hotplug_slot(slot)     \
> +        hotplug_func(slot, 0)  \
> +        hotplug_func(slot, 1)  \
> +        hotplug_func(slot, 2)  \
> +        hotplug_func(slot, 3)  \
> +        hotplug_func(slot, 4)  \
> +        hotplug_func(slot, 5)  \
> +        hotplug_func(slot, 6)  \
> +        hotplug_func(slot, 7)
>
>           hotplug_slot(01)
>           hotplug_slot(02)
> @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>           hotplug_slot(1f)
>
>   #define gen_pci_hotplug(slot)   \
> -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
>
>           Method(PCNT, 2) {
>               gen_pci_hotplug(01)
> diff --git a/src/ssdt-pcihp.hex b/src/ssdt-pcihp.hex
> index b15ad5a..b0c1e84 100644
> --- a/src/ssdt-pcihp.hex
> +++ b/src/ssdt-pcihp.hex
> @@ -1,80 +1,514 @@
>   static unsigned short aml_adr_dword[] = {
> -0x3e,
> -0x62,
> -0x88,

....
Michael S. Tsirkin May 9, 2012, 8:46 a.m. UTC | #2
On Wed, May 09, 2012 at 03:24:52PM +0800, Amos Kong wrote:
> Boot up a Linux VM with 8 pci block devices which
> are the 8 functions in one pci slot.
> | # qemu-kvm ...
> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
> | ....
> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
> 
> Check devices in guest.
> | vm)# ls /dev/vd*
> |    vda vdb vdc vde vdf vdg vdh
> | vm)# lspci |grep block
> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> |
> 
> Func1~7 still exist in guest after hot-removing the whole slot
> through qemu monitor.
> | vm)# lspci |grep block    (00:03.0 disappeared)
> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> | vm)# ls /dev/vd*          (vda disappeared)
> |    vdb vdc vde vdf vdg vdh
> | vm)# mkfs /dev/vdb
> |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)
> 
> 
> Currently only func0 is defined in ACPI DSDT table
> of seabios, and only hot-adding func0 would cause
> a ACPI event for notification. Other funcs except
> func0 wouldn't be registered in linux pci driver.
> (we can only found func0 in slot->funcs list of
> pci driver).

Isn't this what your patch 'PCI: Can continually add funcs after adding
func0' addresses?
If yes it's commit f382a086f3129edc152b8044b69ccc6682e637bb in 3.4.
So let's class the problematic behaviour guest bug and avoid workarounds
in bios?
Amos Kong May 9, 2012, 8:59 a.m. UTC | #3
On 09/05/12 16:46, Michael S. Tsirkin wrote:
> On Wed, May 09, 2012 at 03:24:52PM +0800, Amos Kong wrote:
>> Boot up a Linux VM with 8 pci block devices which
>> are the 8 functions in one pci slot.
>> | # qemu-kvm ...
>> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
>> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
>> | ....
>> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
>> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
>>
>> Check devices in guest.
>> | vm)# ls /dev/vd*
>> |    vda vdb vdc vde vdf vdg vdh
>> | vm)# lspci |grep block
>> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
>> |    ...
>> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
>> |
>>
>> Func1~7 still exist in guest after hot-removing the whole slot
>> through qemu monitor.
>> | vm)# lspci |grep block    (00:03.0 disappeared)
>> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
>> |    ...
>> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
>> | vm)# ls /dev/vd*          (vda disappeared)
>> |    vdb vdc vde vdf vdg vdh
>> | vm)# mkfs /dev/vdb
>> |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)
>>
>>
>> Currently only func0 is defined in ACPI DSDT table
>> of seabios, and only hot-adding func0 would cause
>> a ACPI event for notification. Other funcs except
>> func0 wouldn't be registered in linux pci driver.
>> (we can only found func0 in slot->funcs list of
>> pci driver).
>
> Isn't this what your patch 'PCI: Can continually add funcs after adding
> func0' addresses?

No.

This patch fixes the problem that some funcs could not be removed.
the question is sending ACPI event for all functions (in same slot)
or only function 0.

I found all funcs are defined in ACPI DSDT table in microsoft's example:
http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH 


Is it a useful attestation ?

> If yes it's commit f382a086f3129edc152b8044b69ccc6682e637bb in 3.4.

This commit fix the problem that some funcs could not be added.

> So let's class the problematic behaviour guest bug and avoid workarounds
> in bios?
Amos Kong May 9, 2012, 9:53 a.m. UTC | #4
On 09/05/12 16:59, Amos Kong wrote:
> On 09/05/12 16:46, Michael S. Tsirkin wrote:
>> On Wed, May 09, 2012 at 03:24:52PM +0800, Amos Kong wrote:
>>> Boot up a Linux VM with 8 pci block devices which
>>> are the 8 functions in one pci slot.
>>> | # qemu-kvm ...
>>> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
>>> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
>>> | ....
>>> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
>>> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
>>>
>>> Check devices in guest.
>>> | vm)# ls /dev/vd*
>>> | vda vdb vdc vde vdf vdg vdh
>>> | vm)# lspci |grep block
>>> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
>>> | ...
>>> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
>>> |


Discussed with mst, NAK this patch by myself.

>>> Func1~7 still exist in guest after hot-removing the whole slot
>>> through qemu monitor.
>>> | vm)# lspci |grep block (00:03.0 disappeared)
>>> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device
>>> (rev ff)
>>> | ...
>>> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device


In this condition, ALL devices already removed, but the sysinfo
(/proc , /sys) of func1~7 are not cleaned, this is why we can
still see it in 'lspci' output.

And Windows hotplug works fine with current seabios. In thread [1],
Kenji Kaneshige and Bjorn Helgaas accept to fix this in linux pci driver.

So NAK this seabios patch by myself, I will update original pci patch in 
thread [1]
[PATCH] pci: clean all funcs when hot-removing multifunc device


[1] http://marc.info/?t=131597601700003&r=1&w=2

>>> (rev ff)
>>> | vm)# ls /dev/vd* (vda disappeared)
>>> | vdb vdc vde vdf vdg vdh
>>> | vm)# mkfs /dev/vdb
>>> | INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task
>>> hung)
>>>
>>>
>>> Currently only func0 is defined in ACPI DSDT table
>>> of seabios, and only hot-adding func0 would cause
>>> a ACPI event for notification. Other funcs except
>>> func0 wouldn't be registered in linux pci driver.
>>> (we can only found func0 in slot->funcs list of
>>> pci driver).
>>
>> Isn't this what your patch 'PCI: Can continually add funcs after adding
>> func0' addresses?
>
> No.
>
> This patch fixes the problem that some funcs could not be removed.
> the question is sending ACPI event for all functions (in same slot)
> or only function 0.

One event is enough to remove all functions, the real problem is in
clean of linux pci driver.

> I found all funcs are defined in ACPI DSDT table in microsoft's example:
> http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH
>
> Is it a useful attestation ?
Alex Williamson May 9, 2012, 1:47 p.m. UTC | #5
On Wed, 2012-05-09 at 15:24 +0800, Amos Kong wrote:
> Boot up a Linux VM with 8 pci block devices which
> are the 8 functions in one pci slot.
> | # qemu-kvm ...
> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
> | ....
> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
> 
> Check devices in guest.
> | vm)# ls /dev/vd*
> |    vda vdb vdc vde vdf vdg vdh
> | vm)# lspci |grep block
> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> |
> 
> Func1~7 still exist in guest after hot-removing the whole slot
> through qemu monitor.
> | vm)# lspci |grep block    (00:03.0 disappeared)
> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> | vm)# ls /dev/vd*          (vda disappeared)
> |    vdb vdc vde vdf vdg vdh
> | vm)# mkfs /dev/vdb
> |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)
> 
> 
> Currently only func0 is defined in ACPI DSDT table
> of seabios, and only hot-adding func0 would cause
> a ACPI event for notification. Other funcs except
> func0 wouldn't be registered in linux pci driver.
> (we can only found func0 in slot->funcs list of
> pci driver).
> 
> When VM pci driver receives an ACPI event for
> hot-removing, it will only clean functions in
> slot->funcs list, the other funcs could not be
> cleaned.
> 
> This patch adds device per function in ACPI DSDT tables,
> then all funcs will be registered in slot->funcs list.
> It's coincident with microsoft's example:
> http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH
> 
> Have tested with linux/winxp/win7, hot-adding/hot-remving,
> single/multiple function devices, they are all fine(all
> added devices can be removed).
> 
> This patch includes some bits mst wrote, thanks!
> ---
> old discussion: http://marc.info/?l=kvm&m=132428400917405&w=2
> 
> Signed-off-by: Amos Kong <akong@redhat.com>
> CC: Michael S. Tsirkin <mst@redhat.com>
> ---
>  src/ssdt-pcihp.dsl |   17 
>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>  2 files changed, 8781 insertions(+), 105 deletions(-)
> 
> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> index 4b435b8..2a3c326 100644
> --- a/src/ssdt-pcihp.dsl
> +++ b/src/ssdt-pcihp.dsl
> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          // at runtime, if the slot is detected to not support hotplug.
>          // Extract the offset of the address dword and the
>          // _EJ0 name to allow this patching.
> -#define hotplug_slot(slot)                              \
> -        Device (S##slot) {                              \
> +#define hotplug_func(slot, fn)                          \
> +        Device (S##slot##fn) {                          \
>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> -           Name (_ADR, 0x##slot##0000)                  \

I would have guessed it to be sufficient to change _ADR to
0x##slot##ffff, does that not work?  Thanks,

Alex

> +           Name (_ADR, 0x##slot##000##fn)               \
>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>             Name (_SUN, 0x##slot)                        \
>          }
> +#define hotplug_slot(slot)     \
> +        hotplug_func(slot, 0)  \
> +        hotplug_func(slot, 1)  \
> +        hotplug_func(slot, 2)  \
> +        hotplug_func(slot, 3)  \
> +        hotplug_func(slot, 4)  \
> +        hotplug_func(slot, 5)  \
> +        hotplug_func(slot, 6)  \
> +        hotplug_func(slot, 7)
>  
>          hotplug_slot(01)
>          hotplug_slot(02)
> @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          hotplug_slot(1f)
>  
>  #define gen_pci_hotplug(slot)   \
> -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
>  
>          Method(PCNT, 2) {
>              gen_pci_hotplug(01)


--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Amos Kong May 9, 2012, 4:08 p.m. UTC | #6
----- Original Message -----
> On Wed, 2012-05-09 at 15:24 +0800, Amos Kong wrote:
> > Boot up a Linux VM with 8 pci block devices which
> > are the 8 functions in one pci slot.
> > | # qemu-kvm ...
> > | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
> > | -device
> > | virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
> > | ....
> > | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
> > | -device
> > | virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
> > 
> > Check devices in guest.
> > | vm)# ls /dev/vd*
> > |    vda vdb vdc vde vdf vdg vdh
> > | vm)# lspci |grep block
> > | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
> > |    ...
> > | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> > |
> > 
> > Func1~7 still exist in guest after hot-removing the whole slot
> > through qemu monitor.
> > | vm)# lspci |grep block    (00:03.0 disappeared)
> > | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device
> > | (rev ff)
> > |    ...
> > | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> > | (rev ff)
> > | vm)# ls /dev/vd*          (vda disappeared)
> > |    vdb vdc vde vdf vdg vdh
> > | vm)# mkfs /dev/vdb
> > |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds.
> > |    (task hung)
> > 
> > 
> > Currently only func0 is defined in ACPI DSDT table
> > of seabios, and only hot-adding func0 would cause
> > a ACPI event for notification. Other funcs except
> > func0 wouldn't be registered in linux pci driver.
> > (we can only found func0 in slot->funcs list of
> > pci driver).
> > 
> > When VM pci driver receives an ACPI event for
> > hot-removing, it will only clean functions in
> > slot->funcs list, the other funcs could not be
> > cleaned.
> > 
> > This patch adds device per function in ACPI DSDT tables,
> > then all funcs will be registered in slot->funcs list.
> > It's coincident with microsoft's example:
> > http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH
> > 
> > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > single/multiple function devices, they are all fine(all
> > added devices can be removed).
> > 
> > This patch includes some bits mst wrote, thanks!
> > ---
> > old discussion: http://marc.info/?l=kvm&m=132428400917405&w=2
> > 
> > Signed-off-by: Amos Kong <akong@redhat.com>
> > CC: Michael S. Tsirkin <mst@redhat.com>
> > ---
> >  src/ssdt-pcihp.dsl |   17
> >  src/ssdt-pcihp.hex | 8869
> >  +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >  2 files changed, 8781 insertions(+), 105 deletions(-)
> > 
> > diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> > index 4b435b8..2a3c326 100644
> > --- a/src/ssdt-pcihp.dsl
> > +++ b/src/ssdt-pcihp.dsl
> > @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT",
> > 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >          // at runtime, if the slot is detected to not support
> >          hotplug.
> >          // Extract the offset of the address dword and the
> >          // _EJ0 name to allow this patching.
> > -#define hotplug_slot(slot)                              \
> > -        Device (S##slot) {                              \
> > +#define hotplug_func(slot, fn)                          \
> > +        Device (S##slot##fn) {                          \
> >             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> > -           Name (_ADR, 0x##slot##0000)                  \
> 
> I would have guessed it to be sufficient to change _ADR to
> 0x##slot##ffff, does that not work?


No, changing this to "0x##slot##ffff" doesn't resolve the bug.
(tested)

I'm trying to fix this problem in guest pci driver.
http://marc.info/?l=linux-pci&m=133657729118731&w=2


Thanks, Amos

> 
> > +           Name (_ADR, 0x##slot##000##fn)               \
> >             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >             Name (_SUN, 0x##slot)                        \
> >          }
> > +#define hotplug_slot(slot)     \
> > +        hotplug_func(slot, 0)  \
> > +        hotplug_func(slot, 1)  \
> > +        hotplug_func(slot, 2)  \
> > +        hotplug_func(slot, 3)  \
> > +        hotplug_func(slot, 4)  \
> > +        hotplug_func(slot, 5)  \
> > +        hotplug_func(slot, 6)  \
> > +        hotplug_func(slot, 7)
> >  
> >          hotplug_slot(01)
> >          hotplug_slot(02)
> > @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01,
> > "BXPC", "BXSSDTPCIHP", 0x1)
> >          hotplug_slot(1f)
> >  
> >  #define gen_pci_hotplug(slot)   \
> > -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> > +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1)
> > }
> >  
> >          Method(PCNT, 2) {
> >              gen_pci_hotplug(01)
> 
> 
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jiang Liu May 10, 2012, 4:50 p.m. UTC | #7
On 05/09/2012 09:47 PM, Alex Williamson wrote:
>> ---
>>  src/ssdt-pcihp.dsl |   17 
>>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>>  2 files changed, 8781 insertions(+), 105 deletions(-)
>>
>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
>> index 4b435b8..2a3c326 100644
>> --- a/src/ssdt-pcihp.dsl
>> +++ b/src/ssdt-pcihp.dsl
>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>>          // at runtime, if the slot is detected to not support hotplug.
>>          // Extract the offset of the address dword and the
>>          // _EJ0 name to allow this patching.
>> -#define hotplug_slot(slot)                              \
>> -        Device (S##slot) {                              \
>> +#define hotplug_func(slot, fn)                          \
>> +        Device (S##slot##fn) {                          \
>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
>> -           Name (_ADR, 0x##slot##0000)                  \
> 
> I would have guessed it to be sufficient to change _ADR to
> 0x##slot##ffff, does that not work?  Thanks,
> 
> Alex
Currently Linux acpiphp driver doesn't support that yet.

--gerry

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michael S. Tsirkin May 10, 2012, 5:03 p.m. UTC | #8
On Fri, May 11, 2012 at 12:50:37AM +0800, Jiang Liu wrote:
> On 05/09/2012 09:47 PM, Alex Williamson wrote:
> >> ---
> >>  src/ssdt-pcihp.dsl |   17 
> >>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >>  2 files changed, 8781 insertions(+), 105 deletions(-)
> >>
> >> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> >> index 4b435b8..2a3c326 100644
> >> --- a/src/ssdt-pcihp.dsl
> >> +++ b/src/ssdt-pcihp.dsl
> >> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >>          // at runtime, if the slot is detected to not support hotplug.
> >>          // Extract the offset of the address dword and the
> >>          // _EJ0 name to allow this patching.
> >> -#define hotplug_slot(slot)                              \
> >> -        Device (S##slot) {                              \
> >> +#define hotplug_func(slot, fn)                          \
> >> +        Device (S##slot##fn) {                          \
> >>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> >> -           Name (_ADR, 0x##slot##0000)                  \
> > 
> > I would have guessed it to be sufficient to change _ADR to
> > 0x##slot##ffff, does that not work?  Thanks,
> > 
> > Alex
> Currently Linux acpiphp driver doesn't support that yet.
> 
> --gerry

If memory serves neither does windows.

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jiang Liu May 10, 2012, 5:17 p.m. UTC | #9
On 05/09/2012 03:24 PM, Amos Kong wrote:

> ---
>  src/ssdt-pcihp.dsl |   17 
>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>  2 files changed, 8781 insertions(+), 105 deletions(-)
> 
> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> index 4b435b8..2a3c326 100644
> --- a/src/ssdt-pcihp.dsl
> +++ b/src/ssdt-pcihp.dsl
> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          // at runtime, if the slot is detected to not support hotplug.
>          // Extract the offset of the address dword and the
>          // _EJ0 name to allow this patching.
> -#define hotplug_slot(slot)                              \
> -        Device (S##slot) {                              \
> +#define hotplug_func(slot, fn)                          \
> +        Device (S##slot##fn) {                          \
>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> -           Name (_ADR, 0x##slot##0000)                  \
> +           Name (_ADR, 0x##slot##000##fn)               \
>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>             Name (_SUN, 0x##slot)                        \
>          }
It would be perfect if the Device object could also support _PS0 and _STA
methods. Could we re-add the slot back after hot-removing it from the guest
OS with this ACPI implementation? Say execute following scripts from guest OS.
echo 0 > /sys/bus/pci/slot/xx/power
echo 1 > /sys/bus/pci/slot/xx/power

> +#define hotplug_slot(slot)     \
> +        hotplug_func(slot, 0)  \
> +        hotplug_func(slot, 1)  \
> +        hotplug_func(slot, 2)  \
> +        hotplug_func(slot, 3)  \
> +        hotplug_func(slot, 4)  \
> +        hotplug_func(slot, 5)  \
> +        hotplug_func(slot, 6)  \
> +        hotplug_func(slot, 7)
>  
>          hotplug_slot(01)
>          hotplug_slot(02)
> @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          hotplug_slot(1f)
>  
>  #define gen_pci_hotplug(slot)   \
> -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
>  
>          Method(PCNT, 2) {
>              gen_pci_hotplug(01)
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michael S. Tsirkin May 10, 2012, 5:42 p.m. UTC | #10
On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
> On 05/09/2012 03:24 PM, Amos Kong wrote:
> 
> > ---
> >  src/ssdt-pcihp.dsl |   17 
> >  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >  2 files changed, 8781 insertions(+), 105 deletions(-)
> > 
> > diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> > index 4b435b8..2a3c326 100644
> > --- a/src/ssdt-pcihp.dsl
> > +++ b/src/ssdt-pcihp.dsl
> > @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >          // at runtime, if the slot is detected to not support hotplug.
> >          // Extract the offset of the address dword and the
> >          // _EJ0 name to allow this patching.
> > -#define hotplug_slot(slot)                              \
> > -        Device (S##slot) {                              \
> > +#define hotplug_func(slot, fn)                          \
> > +        Device (S##slot##fn) {                          \
> >             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> > -           Name (_ADR, 0x##slot##0000)                  \
> > +           Name (_ADR, 0x##slot##000##fn)               \
> >             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >             Name (_SUN, 0x##slot)                        \
> >          }
> It would be perfect if the Device object could also support _PS0 and _STA
> methods.

It needs qemu support, and some backward compatibility hack.
Why?

> Could we re-add the slot back after hot-removing it from the guest
> OS with this ACPI implementation? Say execute following scripts from guest OS.
> echo 0 > /sys/bus/pci/slot/xx/power
> echo 1 > /sys/bus/pci/slot/xx/power

No because qemu removes device after eject.
Do you have a need for this functionality? What is it?

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jiang Liu May 10, 2012, 5:46 p.m. UTC | #11
On 05/11/2012 01:42 AM, Michael S. Tsirkin wrote:
> On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
>> On 05/09/2012 03:24 PM, Amos Kong wrote:
>>
>>> ---
>>>  src/ssdt-pcihp.dsl |   17 
>>>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>>>  2 files changed, 8781 insertions(+), 105 deletions(-)
>>>
>>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
>>> index 4b435b8..2a3c326 100644
>>> --- a/src/ssdt-pcihp.dsl
>>> +++ b/src/ssdt-pcihp.dsl
>>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>>>          // at runtime, if the slot is detected to not support hotplug.
>>>          // Extract the offset of the address dword and the
>>>          // _EJ0 name to allow this patching.
>>> -#define hotplug_slot(slot)                              \
>>> -        Device (S##slot) {                              \
>>> +#define hotplug_func(slot, fn)                          \
>>> +        Device (S##slot##fn) {                          \
>>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
>>> -           Name (_ADR, 0x##slot##0000)                  \
>>> +           Name (_ADR, 0x##slot##000##fn)               \
>>>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>>>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>>>             Name (_SUN, 0x##slot)                        \
>>>          }
>> It would be perfect if the Device object could also support _PS0 and _STA
>> methods.
> 
> It needs qemu support, and some backward compatibility hack.
> Why?
> 
>> Could we re-add the slot back after hot-removing it from the guest
>> OS with this ACPI implementation? Say execute following scripts from guest OS.
>> echo 0 > /sys/bus/pci/slot/xx/power
>> echo 1 > /sys/bus/pci/slot/xx/power
> 
> No because qemu removes device after eject.
> Do you have a need for this functionality? What is it?

I'm not familiar with qemu:(
On native OS, admin could trigger PCI device hotplug operations through
/sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 


--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Amos Kong May 10, 2012, 11:40 p.m. UTC | #12
----- Original Message -----
> On 05/11/2012 01:42 AM, Michael S. Tsirkin wrote:
> > On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
> >> On 05/09/2012 03:24 PM, Amos Kong wrote:
> >>
> >>> ---
> >>>  src/ssdt-pcihp.dsl |   17
> >>>  src/ssdt-pcihp.hex | 8869
> >>>  +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >>>  2 files changed, 8781 insertions(+), 105 deletions(-)
> >>>
> >>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> >>> index 4b435b8..2a3c326 100644
> >>> --- a/src/ssdt-pcihp.dsl
> >>> +++ b/src/ssdt-pcihp.dsl
> >>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT",
> >>> 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >>>          // at runtime, if the slot is detected to not support
> >>>          hotplug.
> >>>          // Extract the offset of the address dword and the
> >>>          // _EJ0 name to allow this patching.
> >>> -#define hotplug_slot(slot)                              \
> >>> -        Device (S##slot) {                              \
> >>> +#define hotplug_func(slot, fn)                          \
> >>> +        Device (S##slot##fn) {                          \
> >>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> >>> -           Name (_ADR, 0x##slot##0000)                  \
> >>> +           Name (_ADR, 0x##slot##000##fn)               \
> >>>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >>>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >>>             Name (_SUN, 0x##slot)                        \
> >>>          }
> >> It would be perfect if the Device object could also support _PS0
> >> and _STA
> >> methods.
> > 
> > It needs qemu support, and some backward compatibility hack.
> > Why?
> > 
> >> Could we re-add the slot back after hot-removing it from the guest
> >> OS with this ACPI implementation? Say execute following scripts
> >> from guest OS.
> >> echo 0 > /sys/bus/pci/slot/xx/power

I tested with qemu VM, device can be hot-removed by ^^^^
block also could not be found by (qemu) # info block
(#virt dev was removed from virt slot)

> >> echo 1 > /sys/bus/pci/slot/xx/power

so we have to add the device to qemu first
(qemu) __com.redhat_drive_add id=drv50,file=/tmp/resize0.qcow2
(qemu) device_add virtio-blk-pci,id=ddev50,drive=drv50,addr=0x5.0,multifunction=on

disk is back (no need exec :echo 1 > /sys/bus/pci/slot/xx/power in guest)


> > 
> > No because qemu removes device after eject.
> > Do you have a need for this functionality? What is it?
> 
> I'm not familiar with qemu:(
> On native OS, admin could trigger PCI device hotplug operations
> through
> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest
> OS too.

In physical, we have two kinds of hotplug, one is hot-unplug dev from slot,
another is just 'disable' it in guest os (dev also plugs in slot)

Hotplug dev by /sys/bus/pci/slot/xx/power -> it should be 2nd condition.
For current QEMU guest, only 1st condition works, and it's enough.

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Gleb Natapov May 11, 2012, 10:14 a.m. UTC | #13
On Fri, May 11, 2012 at 01:46:17AM +0800, Jiang Liu wrote:
> On 05/11/2012 01:42 AM, Michael S. Tsirkin wrote:
> > On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
> >> On 05/09/2012 03:24 PM, Amos Kong wrote:
> >>
> >>> ---
> >>>  src/ssdt-pcihp.dsl |   17 
> >>>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >>>  2 files changed, 8781 insertions(+), 105 deletions(-)
> >>>
> >>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> >>> index 4b435b8..2a3c326 100644
> >>> --- a/src/ssdt-pcihp.dsl
> >>> +++ b/src/ssdt-pcihp.dsl
> >>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >>>          // at runtime, if the slot is detected to not support hotplug.
> >>>          // Extract the offset of the address dword and the
> >>>          // _EJ0 name to allow this patching.
> >>> -#define hotplug_slot(slot)                              \
> >>> -        Device (S##slot) {                              \
> >>> +#define hotplug_func(slot, fn)                          \
> >>> +        Device (S##slot##fn) {                          \
> >>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> >>> -           Name (_ADR, 0x##slot##0000)                  \
> >>> +           Name (_ADR, 0x##slot##000##fn)               \
> >>>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >>>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >>>             Name (_SUN, 0x##slot)                        \
> >>>          }
> >> It would be perfect if the Device object could also support _PS0 and _STA
> >> methods.
> > 
> > It needs qemu support, and some backward compatibility hack.
> > Why?
> > 
> >> Could we re-add the slot back after hot-removing it from the guest
> >> OS with this ACPI implementation? Say execute following scripts from guest OS.
> >> echo 0 > /sys/bus/pci/slot/xx/power
> >> echo 1 > /sys/bus/pci/slot/xx/power
> > 
> > No because qemu removes device after eject.
> > Do you have a need for this functionality? What is it?
> 
> I'm not familiar with qemu:(
> On native OS, admin could trigger PCI device hotplug operations through
> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 
> 
Why is it needed on physical HW? May be it is needed in a VM for the
same reason?

--
			Gleb.
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jiang Liu May 11, 2012, 3:44 p.m. UTC | #14
On 05/11/2012 06:14 PM, Gleb Natapov wrote:
>> I'm not familiar with qemu:(
>> On native OS, admin could trigger PCI device hotplug operations through
>> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 
>>
> Why is it needed on physical HW? May be it is needed in a VM for the
> same reason?
As Amos has mentioned, it's used power on/off a PCI device instead of physical
hotplug. Not sure whether it's needed in guest OS.
--gerry
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Gleb Natapov May 11, 2012, 5:04 p.m. UTC | #15
On Fri, May 11, 2012 at 11:44:02PM +0800, Jiang Liu wrote:
> On 05/11/2012 06:14 PM, Gleb Natapov wrote:
> >> I'm not familiar with qemu:(
> >> On native OS, admin could trigger PCI device hotplug operations through
> >> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 
> >>
> > Why is it needed on physical HW? May be it is needed in a VM for the
> > same reason?
> As Amos has mentioned, it's used power on/off a PCI device instead of physical
> hotplug. Not sure whether it's needed in guest OS.
Probably for assigned devices.

--
			Gleb.
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
index 4b435b8..2a3c326 100644
--- a/src/ssdt-pcihp.dsl
+++ b/src/ssdt-pcihp.dsl
@@ -17,14 +17,23 @@  DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
         // at runtime, if the slot is detected to not support hotplug.
         // Extract the offset of the address dword and the
         // _EJ0 name to allow this patching.
-#define hotplug_slot(slot)                              \
-        Device (S##slot) {                              \
+#define hotplug_func(slot, fn)                          \
+        Device (S##slot##fn) {                          \
            ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
-           Name (_ADR, 0x##slot##0000)                  \
+           Name (_ADR, 0x##slot##000##fn)               \
            ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
            Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
            Name (_SUN, 0x##slot)                        \
         }
+#define hotplug_slot(slot)     \
+        hotplug_func(slot, 0)  \
+        hotplug_func(slot, 1)  \
+        hotplug_func(slot, 2)  \
+        hotplug_func(slot, 3)  \
+        hotplug_func(slot, 4)  \
+        hotplug_func(slot, 5)  \
+        hotplug_func(slot, 6)  \
+        hotplug_func(slot, 7)
 
         hotplug_slot(01)
         hotplug_slot(02)
@@ -59,7 +68,7 @@  DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
         hotplug_slot(1f)
 
 #define gen_pci_hotplug(slot)   \
-            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
+            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
 
         Method(PCNT, 2) {
             gen_pci_hotplug(01)
diff --git a/src/ssdt-pcihp.hex b/src/ssdt-pcihp.hex
index b15ad5a..b0c1e84 100644
--- a/src/ssdt-pcihp.hex
+++ b/src/ssdt-pcihp.hex
@@ -1,80 +1,514 @@ 
 static unsigned short aml_adr_dword[] = {
-0x3e,
-0x62,
-0x88,
-0xae,
-0xd4,
-0xfa,
-0x120,
-0x146,
-0x16c,
-0x192,
-0x1b8,
-0x1de,
-0x204,
-0x22a,
-0x250,
-0x276,
-0x29c,
-0x2c2,
-0x2e8,
-0x30e,
-0x334,
-0x35a,
-0x380,
-0x3a6,
-0x3cc,
-0x3f2,
-0x418,
-0x43e,
-0x464,
-0x48a,
-0x4b0
+0x3f,
+0x63,
+0x87,
+0xab,
+0xcf,
+0xf3,
+0x117,
+0x13b,
+0x15f,
+0x185,
+0x1ab,
+0x1d1,
+0x1f7,
+0x21d,
+0x243,
+0x269,
+0x28f,
+0x2b5,
+0x2db,
+0x301,
+0x327,
+0x34d,
+0x373,
+0x399,
+0x3bf,
+0x3e5,
+0x40b,
+0x431,
+0x457,
+0x47d,
+0x4a3,
+0x4c9,
+0x4ef,
+0x515,
+0x53b,
+0x561,
+0x587,
+0x5ad,
+0x5d3,
+0x5f9,
+0x61f,
+0x645,
+0x66b,
+0x691,
+0x6b7,
+0x6dd,
+0x703,
+0x729,
+0x74f,
+0x775,
+0x79b,
+0x7c1,
+0x7e7,
+0x80d,
+0x833,
+0x859,
+0x87f,
+0x8a5,
+0x8cb,
+0x8f1,
+0x917,
+0x93d,
+0x963,
+0x989,
+0x9af,
+0x9d5,
+0x9fb,
+0xa21,
+0xa47,
+0xa6d,
+0xa93,
+0xab9,
+0xadf,
+0xb05,
+0xb2b,
+0xb51,
+0xb77,
+0xb9d,
+0xbc3,
+0xbe9,
+0xc0f,
+0xc35,
+0xc5b,
+0xc81,
+0xca7,
+0xccd,
+0xcf3,
+0xd19,
+0xd3f,
+0xd65,
+0xd8b,
+0xdb1,
+0xdd7,
+0xdfd,
+0xe23,
+0xe49,
+0xe6f,
+0xe95,
+0xebb,
+0xee1,
+0xf07,
+0xf2d,
+0xf53,
+0xf79,
+0xf9f,
+0xfc5,
+0xfeb,
+0x1011,
+0x1037,
+0x105d,
+0x1083,
+0x10a9,
+0x10cf,
+0x10f5,
+0x111b,
+0x1141,
+0x1167,
+0x118d,
+0x11b3,
+0x11d9,
+0x11ff,
+0x1225,
+0x124b,
+0x1271,
+0x1297,
+0x12bd,
+0x12e3,
+0x1309,
+0x132f,
+0x1355,
+0x137b,
+0x13a1,
+0x13c7,
+0x13ed,
+0x1413,
+0x1439,
+0x145f,
+0x1485,
+0x14ab,
+0x14d1,
+0x14f7,
+0x151d,
+0x1543,
+0x1569,
+0x158f,
+0x15b5,
+0x15db,
+0x1601,
+0x1627,
+0x164d,
+0x1673,
+0x1699,
+0x16bf,
+0x16e5,
+0x170b,
+0x1731,
+0x1757,
+0x177d,
+0x17a3,
+0x17c9,
+0x17ef,
+0x1815,
+0x183b,
+0x1861,
+0x1887,
+0x18ad,
+0x18d3,
+0x18f9,
+0x191f,
+0x1945,
+0x196b,
+0x1991,
+0x19b7,
+0x19dd,
+0x1a03,
+0x1a29,
+0x1a4f,
+0x1a75,
+0x1a9b,
+0x1ac1,
+0x1ae7,
+0x1b0d,
+0x1b33,
+0x1b59,
+0x1b7f,
+0x1ba5,
+0x1bcb,
+0x1bf1,
+0x1c17,
+0x1c3d,
+0x1c63,
+0x1c89,
+0x1caf,
+0x1cd5,
+0x1cfb,
+0x1d21,
+0x1d47,
+0x1d6d,
+0x1d93,
+0x1db9,
+0x1ddf,
+0x1e05,
+0x1e2b,
+0x1e51,
+0x1e77,
+0x1e9d,
+0x1ec3,
+0x1ee9,
+0x1f0f,
+0x1f35,
+0x1f5b,
+0x1f81,
+0x1fa7,
+0x1fcd,
+0x1ff3,
+0x2019,
+0x203f,
+0x2065,
+0x208b,
+0x20b1,
+0x20d7,
+0x20fd,
+0x2123,
+0x2149,
+0x216f,
+0x2195,
+0x21bb,
+0x21e1,
+0x2207,
+0x222d,
+0x2253,
+0x2279,
+0x229f,
+0x22c5,
+0x22eb,
+0x2311,
+0x2337,
+0x235d,
+0x2383,
+0x23a9,
+0x23cf,
+0x23f5,
+0x241b,
+0x2441,
+0x2467,
+0x248d,
+0x24b3,
+0x24d9
 };
 static unsigned short aml_ej0_name[] = {
-0x44,
-0x68,
-0x8e,
-0xb4,
-0xda,
-0x100,
-0x126,
-0x14c,
-0x172,
-0x198,
-0x1be,
-0x1e4,
-0x20a,
-0x230,
-0x256,
-0x27c,
-0x2a2,
-0x2c8,
-0x2ee,
-0x314,
-0x33a,
-0x360,
-0x386,
-0x3ac,
-0x3d2,
-0x3f8,
-0x41e,
-0x444,
-0x46a,
-0x490,
-0x4b6
+0x45,
+0x69,
+0x8d,
+0xb1,
+0xd5,
+0xf9,
+0x11d,
+0x141,
+0x165,
+0x18b,
+0x1b1,
+0x1d7,
+0x1fd,
+0x223,
+0x249,
+0x26f,
+0x295,
+0x2bb,
+0x2e1,
+0x307,
+0x32d,
+0x353,
+0x379,
+0x39f,
+0x3c5,
+0x3eb,
+0x411,
+0x437,
+0x45d,
+0x483,
+0x4a9,
+0x4cf,
+0x4f5,
+0x51b,
+0x541,
+0x567,
+0x58d,
+0x5b3,
+0x5d9,
+0x5ff,
+0x625,
+0x64b,
+0x671,
+0x697,
+0x6bd,
+0x6e3,
+0x709,
+0x72f,
+0x755,
+0x77b,
+0x7a1,
+0x7c7,
+0x7ed,
+0x813,
+0x839,
+0x85f,
+0x885,
+0x8ab,
+0x8d1,
+0x8f7,
+0x91d,
+0x943,
+0x969,
+0x98f,
+0x9b5,
+0x9db,
+0xa01,
+0xa27,
+0xa4d,
+0xa73,
+0xa99,
+0xabf,
+0xae5,
+0xb0b,
+0xb31,
+0xb57,
+0xb7d,
+0xba3,
+0xbc9,
+0xbef,
+0xc15,
+0xc3b,
+0xc61,
+0xc87,
+0xcad,
+0xcd3,
+0xcf9,
+0xd1f,
+0xd45,
+0xd6b,
+0xd91,
+0xdb7,
+0xddd,
+0xe03,
+0xe29,
+0xe4f,
+0xe75,
+0xe9b,
+0xec1,
+0xee7,
+0xf0d,
+0xf33,
+0xf59,
+0xf7f,
+0xfa5,
+0xfcb,
+0xff1,
+0x1017,
+0x103d,
+0x1063,
+0x1089,
+0x10af,
+0x10d5,
+0x10fb,
+0x1121,
+0x1147,
+0x116d,
+0x1193,
+0x11b9,
+0x11df,
+0x1205,
+0x122b,
+0x1251,
+0x1277,
+0x129d,
+0x12c3,
+0x12e9,
+0x130f,
+0x1335,
+0x135b,
+0x1381,
+0x13a7,
+0x13cd,
+0x13f3,
+0x1419,
+0x143f,
+0x1465,
+0x148b,
+0x14b1,
+0x14d7,
+0x14fd,
+0x1523,
+0x1549,
+0x156f,
+0x1595,
+0x15bb,
+0x15e1,
+0x1607,
+0x162d,
+0x1653,
+0x1679,
+0x169f,
+0x16c5,
+0x16eb,
+0x1711,
+0x1737,
+0x175d,
+0x1783,
+0x17a9,
+0x17cf,
+0x17f5,
+0x181b,
+0x1841,
+0x1867,
+0x188d,
+0x18b3,
+0x18d9,
+0x18ff,
+0x1925,
+0x194b,
+0x1971,
+0x1997,
+0x19bd,
+0x19e3,
+0x1a09,
+0x1a2f,
+0x1a55,
+0x1a7b,
+0x1aa1,
+0x1ac7,
+0x1aed,
+0x1b13,
+0x1b39,
+0x1b5f,
+0x1b85,
+0x1bab,
+0x1bd1,
+0x1bf7,
+0x1c1d,
+0x1c43,
+0x1c69,
+0x1c8f,
+0x1cb5,
+0x1cdb,
+0x1d01,
+0x1d27,
+0x1d4d,
+0x1d73,
+0x1d99,
+0x1dbf,
+0x1de5,
+0x1e0b,
+0x1e31,
+0x1e57,
+0x1e7d,
+0x1ea3,
+0x1ec9,
+0x1eef,
+0x1f15,
+0x1f3b,
+0x1f61,
+0x1f87,
+0x1fad,
+0x1fd3,
+0x1ff9,
+0x201f,
+0x2045,
+0x206b,
+0x2091,
+0x20b7,
+0x20dd,
+0x2103,
+0x2129,
+0x214f,
+0x2175,
+0x219b,
+0x21c1,
+0x21e7,
+0x220d,
+0x2233,
+0x2259,
+0x227f,
+0x22a5,
+0x22cb,
+0x22f1,
+0x2317,
+0x233d,
+0x2363,
+0x2389,
+0x23af,
+0x23d5,
+0x23fb,
+0x2421,
+0x2447,
+0x246d,
+0x2493,
+0x24b9,
+0x24df
 };
 static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x53,
 0x44,
 0x54,
-0x44,
-0x6,
+0x6d,
+0x26,
 0x0,
 0x0,
 0x1,
-0x94,
+0x7f,
 0x42,
 0x58,
 0x50,
@@ -97,13 +531,14 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x4e,
 0x54,
 0x4c,
-0x28,
-0x5,
-0x10,
+0x23,
+0x1,
+0x9,
 0x20,
 0x10,
-0x4f,
-0x61,
+0x88,
+0x64,
+0x2,
 0x5c,
 0x2e,
 0x5f,
@@ -120,14 +555,266 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x31,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x35,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
+0x0,
+0x1,
 0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1,
 0x0,
@@ -156,14 +843,90 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x32,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
+0x0,
+0x2,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x2,
 0x0,
@@ -193,15 +956,281 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x32,
 0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x36,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
 0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x3,
 0x0,
@@ -231,15 +1260,281 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x33,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
 0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x36,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
 0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x4,
 0x0,
@@ -269,15 +1564,395 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x34,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
 0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
 0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
 0x0,
 0x5,
 0x0,
@@ -307,15 +1982,357 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x35,
 0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
 0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x6,
 0x0,
@@ -346,14 +2363,204 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x37,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x33,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
+0x0,
+0x7,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
 0x0,
 0x7,
 0x0,
@@ -383,8 +2590,388 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x37,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
 0x38,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x30,
 0x8,
 0x5f,
 0x41,
@@ -393,7 +2980,83 @@  static unsigned char ssdp_pcihp_aml[] = {
 0xc,
 0x0,
 0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
 0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x9,
 0x0,
 0x14,
 0xd,
@@ -408,28 +3071,180 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x33,
 0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x34,
 0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
 0x39,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x9,
 0x0,
@@ -460,14 +3275,280 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x41,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0xa,
 0x0,
@@ -498,14 +3579,90 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x42,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
+0x0,
+0xb,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0xb,
 0x0,
@@ -535,17 +3692,93 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x42,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
 0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
+0xb,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
 0xc,
+0x5,
+0x0,
+0xb,
 0x0,
 0x14,
 0xd,
@@ -560,30 +3793,182 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
 0xc,
+0x6,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
 0xc,
+0x7,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
+0x43,
+0x30,
+0x8,
+0x5f,
+0x41,
 0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0xc,
 0x0,
+0x14,
 0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xc,
 0x0,
 0x14,
 0xd,
@@ -598,28 +3983,788 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xc,
+0x0,
+0x14,
 0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xc,
+0x0,
+0x14,
 0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
+0x43,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
 0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
+0x0,
+0xc,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0xe,
 0x0,
@@ -650,14 +4795,280 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x46,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x33,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x3,
 0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0xf,
 0x0,
@@ -688,14 +5099,90 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x30,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x10,
 0x0,
@@ -725,15 +5212,471 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x30,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
 0x31,
+0x30,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x35,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x5,
 0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x11,
 0x0,
@@ -764,14 +5707,90 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x32,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x12,
 0x0,
@@ -801,15 +5820,319 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x32,
 0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
 0x0,
 0x13,
 0x0,
@@ -839,8 +6162,160 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x33,
 0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x30,
 0x8,
 0x5f,
 0x41,
@@ -877,15 +6352,395 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x34,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
 0x35,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x32,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x2,
 0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
 0x0,
 0x15,
 0x0,
@@ -915,15 +6770,433 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x35,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
 0x36,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x35,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x16,
 0x0,
@@ -954,14 +7227,280 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x37,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x32,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x2,
 0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x17,
 0x0,
@@ -992,14 +7531,280 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x38,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
+0x0,
+0x18,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x18,
 0x0,
@@ -1030,14 +7835,90 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x39,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x19,
 0x0,
@@ -1067,15 +7948,471 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x39,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
 0x41,
+0x35,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
+0x0,
+0x1a,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1a,
 0x0,
@@ -1106,14 +8443,90 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x42,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x1b,
 0x0,
@@ -1143,15 +8556,471 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x42,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
 0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1c,
 0x0,
@@ -1182,14 +9051,90 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x44,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x1d,
 0x0,
@@ -1219,15 +9164,471 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x44,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
 0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1e,
 0x0,
@@ -1258,14 +9659,280 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x46,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1f,
 0x0,
@@ -1307,7 +9974,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x31,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1319,7 +9986,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x32,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1331,7 +9998,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x33,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1343,7 +10010,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x34,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1355,7 +10022,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x35,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1367,7 +10034,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x36,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1379,7 +10046,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x37,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1391,7 +10058,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x38,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1403,7 +10070,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x39,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1415,7 +10082,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x41,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1427,7 +10094,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x42,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1439,7 +10106,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x43,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1451,7 +10118,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x44,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1463,7 +10130,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x45,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1475,7 +10142,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x46,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1487,7 +10154,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x30,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1499,7 +10166,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x31,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1511,7 +10178,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x32,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1523,7 +10190,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x33,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1535,7 +10202,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x34,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1547,7 +10214,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x35,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1559,7 +10226,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x36,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1571,7 +10238,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x37,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1583,7 +10250,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x38,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1595,7 +10262,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x39,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1607,7 +10274,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x41,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1619,7 +10286,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x42,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1631,7 +10298,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x43,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1643,7 +10310,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x44,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1655,7 +10322,7 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x45,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1667,6 +10334,6 @@  static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x46,
-0x5f,
+0x30,
 0x69
 };