|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86: Add a tboot Kconfig option
On 17/08/16 19:17, Derek Straka wrote:
> Allows for the conditional inclusion of tboot related functionality via
> Kconfig
>
> The default configuration for the new CONFIG_TBOOT option is 'y', so the
> behavior out of the box remains unchanged. The addition of the option allows
> advanced users to disable system behaviors associated with tboot at compile
> time rather than relying on the run-time detection and configuration.
>
> Signed-off-by: Derek Straka <derek@xxxxxxxxxxx>
+1 for the principle. Some suggestions however.
> ---
> xen/Rules.mk | 2 +-
> xen/arch/x86/Makefile | 2 +-
> xen/common/Kconfig | 11 +++++++++++
> xen/include/asm-x86/tboot.h | 12 ++++++++++++
> 4 files changed, 25 insertions(+), 2 deletions(-)
>
> diff --git a/xen/Rules.mk b/xen/Rules.mk
> index ebe1dc0..12d3184 100644
> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -44,7 +44,7 @@ ALL_OBJS-y += $(BASEDIR)/common/built_in.o
> ALL_OBJS-y += $(BASEDIR)/drivers/built_in.o
> ALL_OBJS-y += $(BASEDIR)/xsm/built_in.o
> ALL_OBJS-y += $(BASEDIR)/arch/$(TARGET_ARCH)/built_in.o
> -ALL_OBJS-$(CONFIG_X86) += $(BASEDIR)/crypto/built_in.o
> +ALL_OBJS-$(CONFIG_TBOOT) += $(BASEDIR)/crypto/built_in.o
TBOOT is currently the only consumer, but there are a few other
suggestions on the horizons.
I think it might be better to have a CONFIG_CRYPTO (default to n) which
is selected by CONFIG_TBOOT. When future work (e.g. hypervisor side
signature checks on hotpatches?) gets completed, it can also select
CONFIG_CRYPTO.
>
> CFLAGS += -nostdinc -fno-builtin -fno-common
> CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index b18f033..5b9e9da 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -62,7 +62,7 @@ obj-y += trace.o
> obj-y += traps.o
> obj-y += usercopy.o
> obj-y += x86_emulate.o
> -obj-y += tboot.o
> +obj-$(CONFIG_TBOOT) += tboot.o
> obj-y += hpet.o
> obj-y += vm_event.o
> obj-y += xstate.o
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 51afa24..cb9a92a 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -218,6 +218,17 @@ config SCHED_DEFAULT
>
> endmenu
>
> +# Enable/Disable tboot support
This comment isn't very helpful. I would simply omit it. (In fact, I
am going to submit a patch stripping all such comments from the existing
Kconfig files)
> +config TBOOT
> + bool "Xen tboot support"
> + default y
> + depends on X86
> + ---help---
> + Allows support for Trusted Boot using the Intel(R) Trusted Execution
> + Technology (TXT)
> +
> + If unsure, say Y.
This should live in xen/arch/x86/Kconfig, rather than common/Kconfig
> +
> # Enable/Disable live patching support
> config LIVEPATCH
> bool "Live patching support (TECH PREVIEW)"
> diff --git a/xen/include/asm-x86/tboot.h b/xen/include/asm-x86/tboot.h
> index d242862..977e509 100644
> --- a/xen/include/asm-x86/tboot.h
> +++ b/xen/include/asm-x86/tboot.h
> @@ -119,6 +119,7 @@ typedef struct __packed {
>
> extern tboot_shared_t *g_tboot_shared;
>
> +#ifdef CONFIG_TBOOT
> void tboot_probe(void);
> void tboot_shutdown(uint32_t shutdown_type);
> int tboot_in_measured_env(void);
> @@ -127,6 +128,17 @@ int tboot_parse_dmar_table(acpi_table_handler
> dmar_handler);
> int tboot_s3_resume(void);
> void tboot_s3_error(int error);
> int tboot_wake_ap(int apicid, unsigned long sipi_vec);
> +#else
> +static inline void tboot_probe(void) {}
> +static inline void tboot_shutdown(uint32_t shutdown_type) {}
> +static inline int tboot_in_measured_env(void) {return 0;}
> +static inline int tboot_protect_mem_regions(void) {return 1;}
> +static inline int tboot_parse_dmar_table(acpi_table_handler dmar_handler)
> {return acpi_table_parse(ACPI_SIG_DMAR, dmar_handler);}
Please include spaces immediately inside the braces.
~Andrew
> +static inline int tboot_s3_resume(void) { return 0; }
> +
> +static inline void tboot_s3_error(int error) {}
> +static inline int tboot_wake_ap(int apicid, unsigned long sipi_vec) {return
> 1;}
> +#endif /* CONFIG_TBOOT */
>
> #endif /* __TBOOT_H__ */
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |