[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH 01/12] linux-headers: import arm_sdei.h
From: |
Michael S. Tsirkin |
Subject: |
Re: [RFC PATCH 01/12] linux-headers: import arm_sdei.h |
Date: |
Tue, 24 Sep 2019 11:39:17 -0400 |
On Tue, Sep 24, 2019 at 11:21:40PM +0800, Heyi Guo wrote:
> Import Linux header file include/uapi/linux/arm_sdei.h from kernel
> v5.3 release.
>
> This is to prepare for qemu SDEI emulation.
>
> Signed-off-by: Heyi Guo <address@hidden>
> Cc: Peter Maydell <address@hidden>
> Cc: Dave Martin <address@hidden>
> Cc: Marc Zyngier <address@hidden>
> Cc: Mark Rutland <address@hidden>
> Cc: James Morse <address@hidden>
> Cc: "Michael S. Tsirkin" <address@hidden>
> Cc: Cornelia Huck <address@hidden>
> Cc: Paolo Bonzini <address@hidden>
Some issues with this. First linux-headers is for linux as a host.
This is for linux as a guest, so belongs in include/standard-headers.
Second, please add to scripts/update-linux-headers.sh in a 1st patch,
then add the file in the second patch.
> ---
> linux-headers/linux/arm_sdei.h | 73
> ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 73 insertions(+)
> create mode 100644 linux-headers/linux/arm_sdei.h
>
> diff --git a/linux-headers/linux/arm_sdei.h b/linux-headers/linux/arm_sdei.h
> new file mode 100644
> index 0000000..af0630b
> --- /dev/null
> +++ b/linux-headers/linux/arm_sdei.h
> @@ -0,0 +1,73 @@
> +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> +/* Copyright (C) 2017 Arm Ltd. */
> +#ifndef _UAPI_LINUX_ARM_SDEI_H
> +#define _UAPI_LINUX_ARM_SDEI_H
> +
> +#define SDEI_1_0_FN_BASE 0xC4000020
> +#define SDEI_1_0_MASK 0xFFFFFFE0
> +#define SDEI_1_0_FN(n) (SDEI_1_0_FN_BASE + (n))
> +
> +#define SDEI_1_0_FN_SDEI_VERSION SDEI_1_0_FN(0x00)
> +#define SDEI_1_0_FN_SDEI_EVENT_REGISTER
> SDEI_1_0_FN(0x01)
> +#define SDEI_1_0_FN_SDEI_EVENT_ENABLE
> SDEI_1_0_FN(0x02)
> +#define SDEI_1_0_FN_SDEI_EVENT_DISABLE
> SDEI_1_0_FN(0x03)
> +#define SDEI_1_0_FN_SDEI_EVENT_CONTEXT
> SDEI_1_0_FN(0x04)
> +#define SDEI_1_0_FN_SDEI_EVENT_COMPLETE
> SDEI_1_0_FN(0x05)
> +#define SDEI_1_0_FN_SDEI_EVENT_COMPLETE_AND_RESUME SDEI_1_0_FN(0x06)
> +#define SDEI_1_0_FN_SDEI_EVENT_UNREGISTER SDEI_1_0_FN(0x07)
> +#define SDEI_1_0_FN_SDEI_EVENT_STATUS
> SDEI_1_0_FN(0x08)
> +#define SDEI_1_0_FN_SDEI_EVENT_GET_INFO
> SDEI_1_0_FN(0x09)
> +#define SDEI_1_0_FN_SDEI_EVENT_ROUTING_SET SDEI_1_0_FN(0x0A)
> +#define SDEI_1_0_FN_SDEI_PE_MASK SDEI_1_0_FN(0x0B)
> +#define SDEI_1_0_FN_SDEI_PE_UNMASK SDEI_1_0_FN(0x0C)
> +#define SDEI_1_0_FN_SDEI_INTERRUPT_BIND
> SDEI_1_0_FN(0x0D)
> +#define SDEI_1_0_FN_SDEI_INTERRUPT_RELEASE SDEI_1_0_FN(0x0E)
> +#define SDEI_1_0_FN_SDEI_PRIVATE_RESET
> SDEI_1_0_FN(0x11)
> +#define SDEI_1_0_FN_SDEI_SHARED_RESET
> SDEI_1_0_FN(0x12)
> +
> +#define SDEI_VERSION_MAJOR_SHIFT 48
> +#define SDEI_VERSION_MAJOR_MASK 0x7fff
> +#define SDEI_VERSION_MINOR_SHIFT 32
> +#define SDEI_VERSION_MINOR_MASK 0xffff
> +#define SDEI_VERSION_VENDOR_SHIFT 0
> +#define SDEI_VERSION_VENDOR_MASK 0xffffffff
> +
> +#define SDEI_VERSION_MAJOR(x) (x>>SDEI_VERSION_MAJOR_SHIFT &
> SDEI_VERSION_MAJOR_MASK)
> +#define SDEI_VERSION_MINOR(x) (x>>SDEI_VERSION_MINOR_SHIFT &
> SDEI_VERSION_MINOR_MASK)
> +#define SDEI_VERSION_VENDOR(x) (x>>SDEI_VERSION_VENDOR_SHIFT &
> SDEI_VERSION_VENDOR_MASK)
> +
> +/* SDEI return values */
> +#define SDEI_SUCCESS 0
> +#define SDEI_NOT_SUPPORTED -1
> +#define SDEI_INVALID_PARAMETERS -2
> +#define SDEI_DENIED -3
> +#define SDEI_PENDING -5
> +#define SDEI_OUT_OF_RESOURCE -10
> +
> +/* EVENT_REGISTER flags */
> +#define SDEI_EVENT_REGISTER_RM_ANY 0
> +#define SDEI_EVENT_REGISTER_RM_PE 1
> +
> +/* EVENT_STATUS return value bits */
> +#define SDEI_EVENT_STATUS_RUNNING 2
> +#define SDEI_EVENT_STATUS_ENABLED 1
> +#define SDEI_EVENT_STATUS_REGISTERED 0
> +
> +/* EVENT_COMPLETE status values */
> +#define SDEI_EV_HANDLED 0
> +#define SDEI_EV_FAILED 1
> +
> +/* GET_INFO values */
> +#define SDEI_EVENT_INFO_EV_TYPE 0
> +#define SDEI_EVENT_INFO_EV_SIGNALED 1
> +#define SDEI_EVENT_INFO_EV_PRIORITY 2
> +#define SDEI_EVENT_INFO_EV_ROUTING_MODE 3
> +#define SDEI_EVENT_INFO_EV_ROUTING_AFF 4
> +
> +/* and their results */
> +#define SDEI_EVENT_TYPE_PRIVATE 0
> +#define SDEI_EVENT_TYPE_SHARED 1
> +#define SDEI_EVENT_PRIORITY_NORMAL 0
> +#define SDEI_EVENT_PRIORITY_CRITICAL 1
> +
> +#endif /* _UAPI_LINUX_ARM_SDEI_H */
> --
> 1.8.3.1
- [RFC PATCH 00/12] Add SDEI support for arm64, Heyi Guo, 2019/09/24
- [RFC PATCH 01/12] linux-headers: import arm_sdei.h, Heyi Guo, 2019/09/24
- Re: [RFC PATCH 01/12] linux-headers: import arm_sdei.h,
Michael S. Tsirkin <=
- [RFC PATCH 04/12] arm/sdei: add system reset callback, Heyi Guo, 2019/09/24
- [RFC PATCH 06/12] core/irq: add qemu_irq_remove_intercept interface, Heyi Guo, 2019/09/24
- [RFC PATCH 10/12] arm/sdei: check KVM cap and enable SDEI, Heyi Guo, 2019/09/24
- [RFC PATCH 05/12] arm/sdei: add support to trigger event by GIC interrupt ID, Heyi Guo, 2019/09/24
- [RFC PATCH 02/12] arm/sdei: add virtual device framework, Heyi Guo, 2019/09/24
- [RFC PATCH 07/12] arm/sdei: override qemu_irq handler when binding interrupt, Heyi Guo, 2019/09/24
- [RFC PATCH 11/12] arm/kvm: handle guest exit of hypercall, Heyi Guo, 2019/09/24
- [RFC PATCH 12/12] virt/acpi: add SDEI table if SDEI is enabled, Heyi Guo, 2019/09/24