[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC][PATCH][0/2] Intel(r) Trusted Execution Technology
Hello again, I made a mistake counting line numbers. The macro that was causing problems was SYM_TRAMP_PHYS, which was removed somewhere between changeset 15331 and 15364. I have successfully built and used the TXT patch with changeset 15331. Sorry for the spam, -Jon Jonathan M. McCune wrote: > Hi Joseph, Jun, Xen developers, > > I'm trying to get this patch to build, but I've encountered some > difficulty. Applying the patch to today's tip results in three failures > which I was able to correct manually. I also tried an older changeset > (15369) from the day Jun reported success, and txt-xen-0608_01-xen.patch > applied with `patch -p1 -F 3`. txt-xen-0608_02-sboot.patch applied > successfully in both cases. > > I tried both gcc 4.1.2 and 3.4.6. The failure is the same both ways. > > If I disable the TXT patch (CONFIG_TXT ?= n in Config.mk), Xen builds > successfully. > > Here is the compilation step that fails: > > gcc -D__ASSEMBLY__ -O2 -fomit-frame-pointer -m32 -march=i686 -DNDEBUG > -Wall -Wstrict-prototypes -Wno-unused-value > -Wdeclaration-after-statement -nostdinc -fno-builtin -fno-common > -fno-strict-aliasing -iwithprefix include -Werror -Wno-pointer-arith > -pipe -I/export/txt/xen-unstable.hg-15369-sboot/xen/include > -I/export/txt/xen-unstable.hg-15369-sboot/xen/include/asm-x86/mach-generic > -I/export/txt/xen-unstable.hg-15369-sboot/xen/include/asm-x86/mach-default > -msoft-float -fno-stack-protector -DCONFIG_X86_PAE=1 -g -D__XEN__ > -DCONFIG_TXT -c head.S -o head.o > trampoline.S: Assembler messages: > trampoline.S:49: Error: junk `(trampoline_cpu_started)' after expression > trampoline.S:51: Error: junk `(idt_48)' after expression > trampoline.S:52: Error: junk `(gdt_48)' after expression > make[4]: *** [head.o] Error 1 > make[4]: Leaving directory > `/export/txt/xen-unstable.hg-15369-sboot/xen/arch/x86/boot' > make[3]: *** > [/export/txt/xen-unstable.hg-15369-sboot/xen/arch/x86/boot/built_in.o] > Error 2 > make[3]: Leaving directory > `/export/txt/xen-unstable.hg-15369-sboot/xen/arch/x86' > make[2]: *** [/export/txt/xen-unstable.hg-15369-sboot/xen/xen] Error 2 > make[2]: Leaving directory `/export/txt/xen-unstable.hg-15369-sboot/xen' > make[1]: *** [install] Error 2 > make[1]: Leaving directory `/export/txt/xen-unstable.hg-15369-sboot/xen' > make: *** [install-xen] Error 2 > > The lines of trampoline.S that trigger this error are not changed by the > patches, so I'm at a bit of a loss as to what is causing the error. > Those three symbols are inside a bootsym() macro which is itself defined > in trampoline.S. The macro is not complicated, and makes reference to a > symbol from head.S (from whence trampoline.S is included). > > Help is greatly appreciated. > > Thanks, > -Jon > > > > > > > > > Hi Joseph, > > I compiled TXT patch with the latest unstable, and it works well. I > mean my machine boot wtih /sboot.gz in grub file, and Xen runs like > normal. Sweet! > > Few questions: > - Now, how can I confirm that TXT is actully running on my machine? > - What to do next to take the advantage of TXT? Any application for it? > > Thanks, > Jun > > > On 6/9/07, Cihula, Joseph <joseph.cihula@xxxxxxxxx> wrote: > > Attached is a preliminary patch that adds Intel(r) Trusted Execution > Technology (Intel(r) TXT) support to Xen. Intel(r) TXT was formerly > known by the codename LaGrande Technology (LT). > > This version of the patch (the previous version was posted last year) > re-factors the Intel(r) TXT code into a separate module/binary that is > passed as the 'kernel' to GRUB and which then launches Xen itself (after > having performed the measured launch). > > This patch supports all of the Xen processor modes > (32bit/32bitPAE/64bit) and supports multi-core/thread systems. It will > run on either an Intel LT SDV3 or on the Intel(r) TXT TEP (Technology > Enabling Platform) from MPC. > > > Intel(r) TXT in Brief: > ---------------------- > o Provides dynamic root of trust for measurement (DRTM) > o DMA protection (on SDV3/TEP platforms only) > o Data protection in case of improper shutdown > > For more information, see http://www.intel.com/technology/security/. > This site also has a link to the Intel(r) TXT Preliminary Architecture > Specification. > > > Overview of Patch Functionality: > -------------------------------- > o Measured Launch. If the processor is detected as being TXT-capable > and enabled then the code will attempt to perform a measured launch. If > the measured launch process fails (processor is not capable, TXT is not > enabled, missing SINIT, corrupted data, etc.)) then it will fall-through > to a non-TXT boot of Xen. > > o Teardown of measured environment. When Xen exits the measured > environment will be torn down properly. > > o Reset data protection. Intel(r) TXT HW prevents access to secrets if > the system is reset without clearing them from memory (as part of a TXT > teardown). This code will support this by setting the flag indicating > that memory should be so protected during the measured launch and > clearing the flag just before teardown. > > o Protection of TXT memory ranges. Intel(r) TXT reserves certain > regions of RAM for its use and also defines several MMIO regions. These > regions (excluding the TXT public configuration space) are protected > from use by any domains (including dom0). > > > Patch Contents: > --------------- > txt-xen-0608_01-xen.patch - the changes to Xen for Intel(r) TXT support > txt-xen-0608_02-sboot.patch - the new sboot module that performs the > measured launch > > > Instructions for use: > --------------------- > o By default, the functionality is disabled in the build. It can be > enabled by changing the INTEL_TXT flag to 'y' in Config.mk. > > o The new sboot module must be added as the 'kernel' and xen made a > 'module'. The SINIT AC module (available with SDV3 and TEP systems) > must be added to the grub.conf boot config as the last module, e.g.: > title Xen 3.1.0 w/ Intel(r) Trusted Execution Technology > kernel /sboot.gz > module /xen.gz dom0_mem=524288 com1=115200,8n1 > module /vmlinuz-2.6.18-xen root=/dev/VolGroup00/LogVol00 > ro > module /initrd-2.6.18-xen.img > module /lpg_sinit_20050831_pae.auth.bin > > o Progress of the launch process is indicated via debug printk's to > COM1 (hardcoded). These appear before the normal "(XEN)" output and are > prefixed by "SBOOT:". The code (in early_printk.c) does not initialize > the COM port so this needs to be done by GRUB - grub.conf should have: > serial --speed=115200 --unit=0 > terminal console serial > > > Interesting Items of Note: > -------------------------- > o A Xen that is not compiled for Intel(r) TXT can still be launched by > sboot, however it will not protect any of the TXT memory nor sboot > itself. Further, it will not be able to use any threads or cores beyond > the BSP. And it will hang on reboot/shutdown. > > o A Xen compiled for Intel(r) TXT can be used without sboot and will > simply detect that it was not launched in a measured environment and > behave as normal. > > o The patch defines two new E820 types, E820_PROTECTED and > E820_MLE_SHARED. sboot will copy and alter the e820 table provided by > GRUB to "reserve" its own memory plus the TXT memory regions. These are > marked as E820_PROTECTED so that the patched Xen code can prevent them > from being assigned to dom0. The E820_MLE_SHARED type is for a single > page that sboot reserves for communication (sharing) with Xen. The > patched Xen code will look for this page when parsing the e820 table and > uses its presence as the indicator that a measured launch took place > (the e820 table is not altered if the measured launch fails for any > reason). > > o sboot is always built 32bit and runs in protected mode without PAE or > paging enabled. sboot lives at (copies itself to) 0x70000. This seems > like a safe location so far, but is not a good long-term location. We'd > like to discuss moving Xen a little higher to allow sboot to live at > 0x100000--this is a separate thread. > > o Because a proper teardown requires turning off VMX on every > core/thread before executing GETSEC[SEXIT], some changes were made to > the Xen shutdown code. An initial commonization of the reboot and > shutdown routines was done so that this new code would only have to be > put in one place. Future patches will commonize the other routines in > Xen that shutdown or reboot the system, such that they will also perform > a teardown of the measured environment. > > o The code requires that VT be enabled as well as TXT. This is because > the mechanism for bringing up the APs uses VMX to create a mini-VM in > order to trap on INIT-SIPI-SIPI. > > o Currently only sboot is measured. We plan to extend this to xen and > dom0 in the future. > > o The patch doesn't cap (extend with invalid value) the dynamic TPM > PCRs when the measured environment is torn down. This will be added > when we have a method for re-entering sboot on shutdown implemented. > > o No DMA protection has been implemented in this patch. SDV3/TEP only > support the NoDMA table for DMA protection and this is superseded by > VT-d. VT-d support will be added shortly, though it will only be > available on new platforms. > > > > Comments and feedback are very welcome. We'd especially like to see a > discussion about what changes are required for this code to be merged > into the -unstable tree. > > We have many enhancements planned, as well as support for newer TXT > Software Development Platforms (SDPs). > > > Joseph Cihula > Jimmy Wei > Shane Wang > Zhai Edwin > > Open Source Technology Center > Intel Corp. > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |