config XENO_GENERIC_STACKPOOL
	bool
	default y

config XENO_FASTSYNCH
	bool
	default y

source "kernel/xenomai/nucleus/Kconfig"

menu "Machine"

depends on XENO_OPT_NUCLEUS

config XENO_HW_FPU
	bool "Enable FPU support"
	default y
	help
	The FPU executes instructions from the processor's normal
	instruction stream. It can handle the types of high-precision
	floating-point processing operations commonly found in
	scientific, engineering, and business applications.
	If your target system has no FPU, say NO here; otherwise,
	enabling FPU support when available may greatly improve
	performance. You can obtain more information about the
	Float-Point Unit on the x86 platform at the following URL:
	http://www.intel.com/design/intarch/techinfo/Pentium/fpu.htm

menu "NMI watchdog"

config XENO_HW_NMI_DEBUG_LATENCY
        depends on X86_LOCAL_APIC
        bool "Enable NMI watchdog"
        default n
        help
        Enabling this option allows the NMI watchdog to be used in order
        to debug abnormal (timer) interrupt latencies.

        The NMI watchog is programmed in order to expire a certain time 
        after the currently awaited timer shot, and triggers if the shot 
        did not happen as expected. This allowed amount of jitter is 
        configurable. When triggered, the NMI watchdog prints the call
        stack and causes a kernel panic, which should hopefully allow to
        find out why the timer got delayed.

        This option is mainly useful for debugging Xenomai internals, and 
        not meant for debugging applications.

config XENO_HW_NMI_DEBUG_LATENCY_MAX
        depends on XENO_HW_NMI_DEBUG_LATENCY
        int "NMI watchdog latency threshold (us)"
        default 100
        help
        When the timer interrupt latency goes above this threshold, the
        NMI watchdog pulls the handbrake.

endmenu

menu "SMI workaround"

config XENO_HW_SMI_DETECT_DISABLE
        bool "Disable SMI detection"
        default n
        help
        SMI are System Management Interrupts, generated by Intel ICH
        (I/O connector hubs) to allow handling of some specific events;
        on systems where they exist, they are the highest priority
        interrupts (even higher priority than NMIs). Common SMI sources
        are power management, legacy devices emulation by BIOS, SMBus
        and TCO watchdog. 

        SMI are problematic for Xenomai, because their handling may span
        accross hundreds of microseconds, causing unacceptable interrupt 
        latency. Furthermore, their vectors are stored in some ROM, 
        and hence may not be altered.

        For this reason, Xenomai contains code to detect chipsets using
        SMIs and optionally activate some workarounds to stop SMIs.
        
        Enabling this option prevents Xenomai from detecting whether 
        your hardware use SMIs. This option is mostly useful if you know
        that your system does not use SMIs and really want to size Xenomai 
        modules down. The detection code has no run-time space overhead,
        and a tiny memory footprint (<200 bytes on x86)

config XENO_HW_SMI_DETECT
        bool
        depends on !XENO_HW_SMI_DETECT_DISABLE
        default y

config XENO_HW_SMI_WORKAROUND
        depends on XENO_HW_SMI_DETECT
        bool "Enable SMI workaround"
        default n
        help
        SMI are System Management Interrupts, generated by Intel ICH
        (I/O connector hubs) to allow handling of some specific events;
        on systems where they exist, they are the highest priority
        interrupts (even higher priority than NMIs). Common SMI sources
        are power management, legacy devices emulation by BIOS, SMBus
        and TCO watchdog. 

        SMI are problematic for Xenomai, because their handling may span
        accross hundreds of microseconds, causing unacceptable interrupt 
        latency. Furthermore, their vectors are stored in some ROM, 
        and hence may not be altered.

        For this reason, Xenomai contains code to detect chipsets using
        SMIs and optionally activate some workarounds to stop SMIs.
        Enabling this option cause those workarounds to be activated.

if XENO_HW_SMI_WORKAROUND

config XENO_HW_SMI_ALL
        bool "Globally disable SMI"
        default y
        help
        This option causes the SMIs to be globally disabled, which avoid
        any jitter they could cause with a big drawback: any peripheral or
        feature relying on them will stop working when Xenomai is running.

        The alternative is to selectively enable the SMIs sources needed 
        by your peripherals. The main drawback is that the peripheral 
        which you need may be the one causing jitter, so that extensive
        testing is needed when choosing to not disable SMI globally. 
        Another drawback is that other unknown SMI sources may exist which
        Xenomai can not disable.

        This option causes the SMIs to be globally disabled.

config XENO_HW_SMI_INTEL_USB2
        bool "Enable Intel-Specific USB2 SMI"
        depends on !XENO_HW_SMI_ALL
        default n
        help
        This options enables Intel-specific USB2 SMI logic to cause SMIs.

config XENO_HW_SMI_LEGACY_USB2
        bool "Enable legacy USB2 SMI"
        depends on !XENO_HW_SMI_ALL
        default n
        help
        This options enables legacy USB2 logic to cause SMIs.

config XENO_HW_SMI_PERIODIC
        bool "Enable periodic SMI"
        depends on !XENO_HW_SMI_ALL
        default n
        help
        This options enables the ICH to generate a periodic SMI.

config XENO_HW_SMI_TCO
        bool "Enable TCO SMI"
        depends on !XENO_HW_SMI_ALL
        default n
        help
        This options enables the TCO logic to generate SMIs.

config XENO_HW_SMI_MC
        bool "Enable microcontroller SMI"
        depends on !XENO_HW_SMI_ALL
        default n
        help
        This options enables the ICH to trap access to the 
        microcontroller range.

config XENO_HW_SMI_APMC
        bool "Enable APM SMI"
        depends on !XENO_HW_SMI_ALL
        default n
        help
        This options enables writes to the APM control register to 
        cause SMIs.

config XENO_HW_SMI_LEGACY_USB
        bool "Enable legacy USB SMI"
        depends on !XENO_HW_SMI_ALL
        default n
        help
        This options enables legacy USB circuit to cause SMIs.

config XENO_HW_SMI_BIOS
        bool "Enable ACPI BIOS SMI"
        depends on !XENO_HW_SMI_ALL
        default n
        help
        This options enables SMI to be used for communication
        between ACPI software and BIOS software.

endif

endmenu

endmenu

source "kernel/xenomai/skins/Kconfig"
source "drivers/xenomai/Kconfig"
