On Tue, Dec 06, 2011 at 07:32:55PM -0500, Amos Kong wrote:
----- Original Message -----
On Tue, Dec 06, 2011 at 01:39:35PM +0800, Amos Kong wrote:
Only func 0 is registered to guest driver (we can only found func 0 in slot->funcs list of driver), the other functions could not be cleaned when hot-removing the whole slot. This patch adds device per function in ACPI DSDT tables. Notify only when func0 is added and removed.
Have tested with linux/winxp/win7, hot-adding/hot-remving, single/multiple function device, they are all fine(all added devices can be removed).
This includes some bits I wrote but this is not an ack of the patch yet :)
I find it surprising that this works: a function has _EJ0 so would not guest expect that ejecting a single one will only remove it, and not all functions?
Removing single func is not supported by specific, and current code (qemu/kernel pci driver) process hot-remove with the whole slot. We could not hot-remove single func with/without this patch.
Register _EJ0() for each func, then all the funcs will be record into the function list of the slot.
Just as an update - it's not clear to me what this patch does, and it seems like Michael had some concerns.
Also, it doesn't seem right to hardcode the generation of that many devices (248) in the AML code.
So, unless there are further comments I'm going to hold off on this patch.
-Kevin
On 14/12/11 09:06, Kevin O'Connor wrote:
On Tue, Dec 06, 2011 at 07:32:55PM -0500, Amos Kong wrote:
----- Original Message -----
On Tue, Dec 06, 2011 at 01:39:35PM +0800, Amos Kong wrote:
Only func 0 is registered to guest driver (we can only found func 0 in slot->funcs list of driver), the other functions could not be cleaned when hot-removing the whole slot. This patch adds device per function in ACPI DSDT tables. Notify only when func0 is added and removed.
Have tested with linux/winxp/win7, hot-adding/hot-remving, single/multiple function device, they are all fine(all added devices can be removed).
This includes some bits I wrote but this is not an ack of the patch yet :)
I find it surprising that this works: a function has _EJ0 so would not guest expect that ejecting a single one will only remove it, and not all functions?
Removing single func is not supported by specific, and current code (qemu/kernel pci driver) process hot-remove with the whole slot. We could not hot-remove single func with/without this patch.
Register _EJ0() for each func, then all the funcs will be record into the function list of the slot.
Just as an update - it's not clear to me what this patch does, and it seems like Michael had some concerns.
Also, it doesn't seem right to hardcode the generation of that many devices (248) in the AML code.
Hi Kevin,
When we hot-unplug a pci device, all functions in same slot should be unpluged in one time. Hot-plug/unpluging nics for winXp VM is fine(all funcs can be removed). But hot-unpluging nics of linux VM exists problem(only function 0 is removed), Because not all the functions are registered in slot->funcs list in guest kernel.
What we can do to resolve this problem:
1. remove all the functions when hot-unplug one function in the slot http://marc.info/?l=kvm&m=131597620101566&w=2 [PATCH] pci: clean all funcs when hot-removing multifunc device
2. register all the functions to slot->funcs list, then we don't need to change guest pci driver. http://marc.info/?l=kvm&m=132314964618843&w=2 [SeaBIOS PATCH v3] hotplug: Add device per func in ACPI DSDT tables
mst, any more comment?
Thanks, Amos
So, unless there are further comments I'm going to hold off on this patch.
-Kevin
To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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) \ + 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 };
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 Kongakong@redhat.com CC: Michael S. Tsirkinmst@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,
....
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?
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?
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 ?
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)
----- 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)
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
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.
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)
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?
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.
----- 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.
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.
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
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.