[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] HVM firmware passthrough - helper library



On Sep 13, 2013, at 9:28 AM, Ross Philipson <ross.philipson@xxxxxxxxxx> wrote:

> On 09/12/2013 03:29 PM, Art Napor wrote:
>> Ross,
>>
>> Did this make it into 4.3? I was going to try it on the 4.2.3 with the
>> latest patches.
>
> No, I don't believe the patches made it into 4.3.
>
> Ross

Hello Art, Ross,

The patch[es] mentioned here are to facilitate exposing BIOS SLICs to
an HVM, right?  I was curious about doing this some time back but
never got far enough along to try it.

Being able to expose a SLIC through a config file option would be a
very slick way to shim Xen in between Windows and system firmware on a
VT-d capable laptop, among other things.

Just adding in my two cents to show some desire for the feature!

Cheers,
Andrew Bobulsky




>>
>>
>> ------------------------------------------------------------------------
>> *From:* Ross Philipson <ross.philipson@xxxxxxxxxx>
>> *To:* Art Napor <artnapor@xxxxxxxxx>
>> *Cc:* "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
>> *Sent:* Tuesday, April 2, 2013 5:15 PM
>> *Subject:* Re: HVM firmware passthrough - helper library
>>
>> On 04/01/2013 11:19 PM, Art Napor wrote:
>> > Looks like they're where they're supposed to be, but no SLIC.
>>
>> Right well there is nothing that mandates it be there. It is an OEM
>> platform license.
>>
>> >
>> > ls /sys/firmware/acpi/tables/
>> > APIC ASF! DSDT dynamic FACP FACS HPET MCFG SSDT1 SSDT2 XMAR
>> >
>> > hexdump -C < /sys/firmware/acpi/tables/XMAR
>> > 00000000 58 4d 41 52 e8 00 00 00 01 f9 49 4e 54 45 4c 20
>> |XMAR......INTEL |
>> > 00000010 53 4e 42 20 00 00 00 00 01 00 00 00 49 4e 54 4c |SNB
>> ........INTL|
>> > 00000020 01 00 00 00 23 01 00 00 00 00 00 00 00 00 00 00
>> |....#...........|
>> > 00000030 00 00 18 00 00 00 00 00 00 00 d9 fe 00 00 00 00
>> |................|
>> > 00000040 01 08 00 00 00 00 02 00 00 00 58 00 01 00 00 00
>> |..........X.....|
>> > 00000050 00 10 d9 fe 00 00 00 00 03 08 00 00 02 f0 1f 00
>> |................|
>> > 00000060 04 08 00 00 00 f0 0f 00 04 08 00 00 00 f0 0f 01
>> |................|
>> > 00000070 04 08 00 00 00 f0 0f 02 04 08 00 00 00 f0 0f 03
>> |................|
>> > 00000080 04 08 00 00 00 f0 0f 04 04 08 00 00 00 f0 0f 05
>> |................|
>> > 00000090 04 08 00 00 00 f0 0f 06 04 08 00 00 00 f0 0f 07
>> |................|
>> > 000000a0 01 00 28 00 00 00 00 00 00 30 d4 da 00 00 00 00
>> |..(......0......|
>> > 000000b0 ff 1f d5 da 00 00 00 00 01 08 00 00 00 00 1d 00
>> |................|
>> > 000000c0 01 08 00 00 00 00 1a 00 01 00 20 00 00 00 00 00 |..........
>> .....|
>> > 000000d0 00 00 80 db 00 00 00 00 ff ff 9f df 00 00 00 00
>> |................|
>> > 000000e0 01 08 00 00 00 00 02 00 |........|
>> > 000000e8
>> >
>> > ------------------------------------------------------------------------
>> > *From:* Ross Philipson <ross.philipson@xxxxxxxxxx
>> <mailto:ross.philipson@xxxxxxxxxx>>
>> > *To:* Art Napor <artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>>
>> > *Cc:* "xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>" <xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>
>> > *Sent:* Monday, April 1, 2013 6:04 PM
>> > *Subject:* Re: HVM firmware passthrough - helper library
>> >
>> > On 03/27/2013 12:50 AM, Art Napor wrote:
>> > > Works great with the updated libxl commits - thanks.
>> > >
>> > > > ./biospt 6
>> > > > Make SMBIOS file from FW.
>> > > > Fail(1), errno: 2
>> > >
>> > > Looks like this does require the sysfs-dmi kmod to expose the dmi
>> > > structure for the utility to write out the smbios_fw.bin.
>> > >
>> > > # ./biospt 6
>> > > Make SMBIOS file from FW.
>> > > Make SMBIOS Xen vendor struct.
>> > > Wrote SMBIOS structures file: smbios_fw.bin count: 8
>> > > Make ACPI SLIC file from FW.
>> > > Fail(3), errno: 2
>> > >
>> > > Do the ACPI tables require the same exposure via sysfs? Not sure if
>> this
>> > > changes from 2.6 to 3.x kernels. The biospt utility can dump the ACPI
>> > > tables using the MMAP option, but not via sysfs on a 3.4.32 system.
>> >
>> > They are in the same place on my wheezy with 3.2.x kernel. I would be
>> > pretty surprised if they moved. Can you go in to
>> > /sys/firmware/acpi/tables and see what's there? Maybe try a hexdump -C <
>> > SLIC ...
>> >
>> > >
>> > >
>> > > Thanks,
>> > > Art
>> > >
>> > >
>> > >
>> ------------------------------------------------------------------------
>> > > *From:* Ross Philipson <ross.philipson@xxxxxxxxxx
>> <mailto:ross.philipson@xxxxxxxxxx>
>> > <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>>>
>> > > *To:* Art Napor <artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>
>> <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>>>;
>> > "xen-devel@xxxxxxxxxxxxxxxxxxx <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>"
>> > > <xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>>
>> > > *Sent:* Sunday, March 24, 2013 5:10 PM
>> > > *Subject:* Re: HVM firmware passthrough - helper library
>> > >
>> > > On 03/21/2013 03:42 PM, Art Napor wrote:
>> > > > Ross,
>> > > >
>> > > > I rebuilt Xen 4.2.1 with the V5 patch series and the updated helper
>> > > > library. The biospt utility built cleanly and runs on Dom0 with the
>> > > > aformentioned libraries in place. However, I'm not seeing the SMBIOS
>> > > > strings passed through to the DomU (A Centos 5 VM). Options 1 and 3
>> > > > using the biostpt utility appear to dump the SMBIOS and ACPI
>> > tables, but
>> > > > I'm not sure how to pass the tables in to the VM?
>> > >
>> > > Look at the related commits to libxl. After the firmware chunks are
>> > > given to libxc to load into the new domain, the addresses are returned
>> > > to libxl which writes them to xenstore.
>> > >
>> > > >
>> > > > [root@localhost <mailto:root@localhost> biospt]# ./biospt
>> > > > Usage:
>> > > > $ biospt <n>
>> > > > 1 - Write some SMBIOS tables using MMAP
>> > > > 2 - Write some SMBIOS tables using SYSFS
>> > > > 3 - Write some ACPI tables using MMAP
>> > > > 4 - Write some ACPI using SYSFS
>> > > > 5 - Read and trace DMI files
>> > > > 6 - Write out some test files
>> > > >
>> > > > ./biospt 6
>> > > > Make SMBIOS file from FW.
>> > > > Fail(1), errno: 2
>> > >
>> > > This is a rather rough test app for using the library. You should look
>> > > closely at the code in it and figure out what it is doing. It does not
>> > > have very robust error handling etc.
>> > >
>> > > Thanks
>> > > Ross
>> > >
>> > > >
>> > > >
>> > > > -
>> > > > Art
>> > > >
>> > > >
>> > ------------------------------------------------------------------------
>> > > > *From:* Ross Philipson <ross.philipson@xxxxxxxxxx
>> <mailto:ross.philipson@xxxxxxxxxx>
>> > <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>>
>> > > <mailto:ross.philipson@xxxxxxxxxx
>> <mailto:ross.philipson@xxxxxxxxxx> <mailto:ross.philipson@xxxxxxxxxx
>> <mailto:ross.philipson@xxxxxxxxxx>>>>
>> > > > *To:* xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>
>> > > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>>
>> > > > *Cc:* Art Napor <artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>
>> <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>>
>> > <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>
>> <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>>>>
>> > > > *Sent:* Wednesday, March 20, 2013 4:08 PM
>> > > > *Subject:* Re: HVM firmware passthrough - helper library
>> > > >
>> > > >
>> > > > > Ross,
>> > > > >
>> > > > > Finally got back to this project to test out the helper lib using
>> > > the v3
>> > > > > hvm-firmware passthrough patches with Xen 4.2.1. When building from
>> > > > > tools/firmware the build failed with the following output:
>> > > > >
>> > > > > make
>> > > > > gcc -Wl,-soname -Wl,libxenhvm.so.1.0 -shared -o libxenhvm.so.1.0.0
>> > > > > xenhvm.opic smbios_module.opic acpi_module.opic xh_internal.opic
>> > > > >
>> > > >
>> > >
>> >
>> /home/ajn131/rpmbuild/SOURCES/xen-4.2.1/tools/firmware/libhvm/../../../tools/xenstore/libxenstore.so
>> > > > >
>> > > > > xenhvm.opic: could not read symbols: File in wrong format
>> > > > > collect2: ld returned 1 exit status
>> > > > > make: *** [libxenhvm.so.1.0.0] Error 1
>> > > > >
>> > > > > I was hoping to integrate the build into the RPM. Any thoughts?
>> > > Should I
>> > > > > try it with the latest 4.3?
>> > > > >
>> > > > >
>> > > > > Thanks Again,
>> > > > >
>> > > > > -
>> > > > > Art
>> > > >
>> > > > Art,
>> > > >
>> > > > Can you try the attached tarball. A colleague found and fixed a
>> couple
>> > > > of issues in my sample including the face that it was including
>> in the
>> > > > wrong Rules.mk.
>> > > >
>> > > > Thanks
>> > > > Ross
>> > > >
>> > > > >
>> > >
>> ------------------------------------------------------------------------
>> > > > > *From:* Ross Philipson <Ross.Philipson@xxxxxxxxxx
>> <mailto:Ross.Philipson@xxxxxxxxxx>
>> > <mailto:Ross.Philipson@xxxxxxxxxx <mailto:Ross.Philipson@xxxxxxxxxx>>
>> > > <mailto:Ross.Philipson@xxxxxxxxxx
>> <mailto:Ross.Philipson@xxxxxxxxxx> <mailto:Ross.Philipson@xxxxxxxxxx
>> <mailto:Ross.Philipson@xxxxxxxxxx>>>
>> > > > <mailto:Ross.Philipson@xxxxxxxxxx <mailto:Ross.Philipson@xxxxxxxxxx>
>> > <mailto:Ross.Philipson@xxxxxxxxxx <mailto:Ross.Philipson@xxxxxxxxxx>>
>> <mailto:Ross.Philipson@xxxxxxxxxx <mailto:Ross.Philipson@xxxxxxxxxx>
>> > <mailto:Ross.Philipson@xxxxxxxxxx <mailto:Ross.Philipson@xxxxxxxxxx>>>>>
>> > > > > *To:* "xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>
>> > > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>>
>> > > > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>
>> > > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>>>"
>> <xen-devel@xxxxxxxxxxxxxxxxxxx <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>
>> > > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>>
>> > > > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>
>> > > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>
>> > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx
>> <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx>>>>>
>> > > > > *Cc:* "Art Napor (artnapor@xxxxxxxxx
>> <mailto:artnapor@xxxxxxxxx> <mailto:artnapor@xxxxxxxxx
>> <mailto:artnapor@xxxxxxxxx>>
>> > <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>
>> <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>>>
>> > > <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>
>> <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>>
>> > <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>
>> <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>>>>)"
>> > > > <artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>
>> <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>>
>> > <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>
>> <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>>>
>> > > <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>
>> <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>>
>> > <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>
>> <mailto:artnapor@xxxxxxxxx <mailto:artnapor@xxxxxxxxx>>>>>
>> > > > > *Sent:* Tuesday, January 8, 2013 5:04 PM
>> > > > > *Subject:* HVM firmware passthrough - helper library
>> > > > >
>> > > > > Attached is a tarball with a helper library for reading host
>> ACPI and
>> > > > > SMBIOS firmware and creating firmware files that can be used
>> with the
>> > > > > HVM firmware passthrough patches I submitted. I used it in my
>> > > testing of
>> > > > > the patches and planned to use it later when we moved to a new Xen
>> > > > > version. This library was requested by a few people - I hope you
>> > > find it
>> > > > > useful.
>> > > > >
>> > > > > Ross Philipson
>> > > > > Senior Software Engineer
>> > > > > Citrix Systems, Inc
>> > > > > 14 Crosby Drive
>> > > > > Bedford, MA 01730
>> > > > > 781-301-7949
>> > > > > ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>
>> <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>>
>> > <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>
>> <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>>>
>> > > <mailto:ross.philipson@xxxxxxxxxx
>> <mailto:ross.philipson@xxxxxxxxxx> <mailto:ross.philipson@xxxxxxxxxx
>> <mailto:ross.philipson@xxxxxxxxxx>>
>> > <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>
>> <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>>>>
>> > > > <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>
>> > <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>>
>> <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>
>> > <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>>>
>> > > <mailto:ross.philipson@xxxxxxxxxx
>> <mailto:ross.philipson@xxxxxxxxxx> <mailto:ross.philipson@xxxxxxxxxx
>> <mailto:ross.philipson@xxxxxxxxxx>>
>> > <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>
>> <mailto:ross.philipson@xxxxxxxxxx <mailto:ross.philipson@xxxxxxxxxx>>>>>
>> > > > >
>> > > >
>> > > >
>> > > >
>> > > >
>> > > >
>> > >
>> > >
>> > >
>> >
>> >
>> >
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.