From: VMware, Inc <> Date: Tue, 13 Mar 2012 20:04:59 +0000 (-0700) Subject: Add support for injecting ACPI tables to EFI X-Git-Tag: 2012.03.13-651368~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30a8019817569c6f2f42c5fc2ebe65d5896bf03d;p=thirdparty%2Fopen-vm-tools.git Add support for injecting ACPI tables to EFI And support for removing ACPI tables from the guest for both EFI and legacy BIOS. And make both processes available in beta/release builds too. Only restricted functionality is setting vendor of the platform in ACPI to match SLIC table - that works only in obj builds, or if table comes from NX1000. Both of the options are usable mainly for debugging, but we have had requests in the past to be able to expose some random stuff via ACPI, and this provides way how to do that. Option for adding table(s) is acpi.addtable.filename - - for example acpi.addtable.filename = "/.vmware/waet.tbl" to add ACPI tables from waet.tbl to the VM. Option for removing table(s) is acpi.skiptables - and it lists table signatures to remove - for example acpi.skiptables = "WAET,BOOT,HPET" to remove WAET, BOOT, and HPET from the VM. acpi.skiptables is processed before acpi.addtable, so you can use this mechanism to replace arbitrary ACPI table - by blacklisting table generated by the BIOS, and injecting tweaked replacement. If you blacklist vital tables (RSDT, FACS, FADT, DSDT), you are on your own. Your guest probably won't boot, or maybe even firmware will crash. Making all this available for user required some additional changes in slicvendor handling. Most important is that exclusion is now per vendor/device, rather than one VM on the box. And in obj build this restriction can be overriden with config option. Signed-off-by: Dmitry Torokhov --- diff --git a/open-vm-tools/lib/include/backdoor_def.h b/open-vm-tools/lib/include/backdoor_def.h index 735316922..c0b5588cf 100644 --- a/open-vm-tools/lib/include/backdoor_def.h +++ b/open-vm-tools/lib/include/backdoor_def.h @@ -142,6 +142,7 @@ # define BDOOR_CMD_FAS_GET_PLATFORM_NAME 2 # define BDOOR_CMD_FAS_GET_PCIE_OSC_MASK 3 # define BDOOR_CMD_FAS_GET_APIC_ROUTING 4 +# define BDOOR_CMD_FAS_GET_TABLE_SKIP 5 #define BDOOR_CMD_SENDPSHAREHINTS 66 #define BDOOR_CMD_ENABLE_USB_MOUSE 67 #define BDOOR_CMD_GET_VCPU_INFO 68