Received: by 10.223.185.116 with SMTP id b49csp6087517wrg; Wed, 28 Feb 2018 03:53:10 -0800 (PST) X-Google-Smtp-Source: AH8x224GJDwX4EyhV4hsEr6wPRGSaXoPPikHwxqcBW53IAoOr5J/UTra7Bmo4JOeOt+E2Fjyq6m/ X-Received: by 2002:a17:902:60cf:: with SMTP id k15-v6mr17473319pln.347.1519818790021; Wed, 28 Feb 2018 03:53:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519818790; cv=none; d=google.com; s=arc-20160816; b=n8XAJX5vQkFgort3UUf6byA6PDZrJTFeW/xgsu0MnVqqVc00qCvrEUPr7aT3HaYOr7 ydVFcjV+pnLTBBmZ4vHeowGLB0C1J3iiLQhRfVFVHAwRoejXM3gxE/m0OMMJa3M7DTpX q6PJ+TBGxkiKfgpkSIE2VTI8v40qUCD2IWVXKGMltqT55VPTXjkd9flsztPBMNE+a98N i7bMTsPYFx9wJ0UjENDJquFbLI3Bufe4AZoFqfY3jpUsgCgjeoeHeiuhG9Bh2pCOdXZb PlJnW0xL5Lob5yEMVJL8hCOLb9SxkSDKqp42dZLCRSN+l77biKu7GzDbgq7IzpPvzY6I Q3Ew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:references:in-reply-to:mime-version :dkim-signature:arc-authentication-results; bh=GVLSF9DMMlC1XYMTrNmuSrHx67A4pSKWVC5U0Qa1GCM=; b=sbAzTIGtnXlGY9wEwPVT5x8FflF344GVTm9qXG8nI7EjBTTLfHRNS1M5V0PDZ+v21F fY6xyR2QVP5hu8sagO562mixu734qEbx5DG3+y6FCEzEajw0WxHwGXRj2qpMQGK/U7h/ CCZelYLjW3+O2rUfZYelVwvrnCjKJC6V8Bwbq5VIggzp5V/4XmXfYf0W0sNQ50lstoTK htW9kJZYthHq0HI8Y/2EpLaDL07642EZKOZuEzoogwSn7uDLGIDpP8aVAt+lrNlY99eR ATel1AkMp+yCcYApeKy1IUu2UmOI8YcoX8/eed8o50zDOLCNzgJYhVVxsTKRWSbA6m3L 7pRw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=uRCMS4WR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a13si1119873pfc.255.2018.02.28.03.52.54; Wed, 28 Feb 2018 03:53:10 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=uRCMS4WR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752456AbeB1Luy (ORCPT + 99 others); Wed, 28 Feb 2018 06:50:54 -0500 Received: from mail-wr0-f193.google.com ([209.85.128.193]:41289 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752418AbeB1Luw (ORCPT ); Wed, 28 Feb 2018 06:50:52 -0500 Received: by mail-wr0-f193.google.com with SMTP id f14so2077991wre.8 for ; Wed, 28 Feb 2018 03:50:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=GVLSF9DMMlC1XYMTrNmuSrHx67A4pSKWVC5U0Qa1GCM=; b=uRCMS4WRw2xRY2Wy0Nk1xTZjlmBDAgfxgm25dohJuu0zGk/cO/vrb+nwlKmPIMr0Qd tYHoteQsRzywapENXFnscr4Kfacfd2Wt8KjT+AcwXyzfOK82/5AKJcFh+URo5odwEOR5 WNnmyTwLpOcGs4l/YaA70vFWlapsAi3t/TyZSvGw1PcKy9LFwdwODQLC7YPnesUDNJOQ Rwz4LyG9fc/Pk4Q9oFLGO3SYHvFyMvYBP01ukFyEL4h2p1ytTrpw4w+2zRKsCONBgBWB +T6beS7YeyPZzIWCohfIeuHgaY3WtKH+U2XbSBYvx1vlECuYLdeKn7VXJXr9RmBnTNdI WpCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=GVLSF9DMMlC1XYMTrNmuSrHx67A4pSKWVC5U0Qa1GCM=; b=c/tKJeXne426qltgYLnIIAixYiG+UyL1FuqM50jjTxAB1f7P0qQ0snZKzfYvvZhxsc 6F8glDeIA5V2CeqTarF+bOjxWO2QcZRsjTsJvm7n2IwTd1VWMl9YW3Kztf4l9GaHDsFw 55JVwH7ILhQrDRSVdQ1hFjQKgxHGkRPrVX7LEx2Tc9tEjrIvinifLcYiSF944LemAinb NDeY1+yHn+JDnVUzkg2l/qarUc+gmYUfmIlQNGhor+nCFHbF86j7pTCf/2p/1FVrT72E tKHaKIYKTNmplYYu1xEjnuy95CUHJkYC8b+Qd0+A2EsmjWieUyHJ5zymwTUhondt/w2F zqMQ== X-Gm-Message-State: APf1xPBWe70Eu7sYMTzI+0WQXw4zlt16SPTB3osoEongqE6sTjoNXS8b ErspX6IhFa6qWvZ8ahyfizO9TtND1U/pe979WHM= X-Received: by 10.223.134.205 with SMTP id 13mr17618474wry.283.1519818651255; Wed, 28 Feb 2018 03:50:51 -0800 (PST) MIME-Version: 1.0 Received: by 10.223.185.67 with HTTP; Wed, 28 Feb 2018 03:50:50 -0800 (PST) In-Reply-To: <20180227020549-mutt-send-email-mst@kernel.org> References: <20180215213312.29234-1-marcandre.lureau@redhat.com> <20180215213312.29234-3-marcandre.lureau@redhat.com> <20180227020549-mutt-send-email-mst@kernel.org> From: =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= Date: Wed, 28 Feb 2018 12:50:50 +0100 Message-ID: Subject: Re: [PATCH v15 02/11] fw_cfg: add a public uapi header To: "Michael S. Tsirkin" Cc: open list , slp@redhat.com, bhe@redhat.com, somlo@cmu.edu, xiaolong.ye@intel.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 27, 2018 at 1:06 AM, Michael S. Tsirkin wrote: > On Thu, Feb 15, 2018 at 10:33:03PM +0100, Marc-Andr=C3=A9 Lureau wrote: >> Create a common header file for well-known values and structures to be >> shared by the Linux kernel with qemu or other projects. >> >> It is based from qemu/docs/specs/fw_cfg.txt which references >> qemu/include/hw/nvram/fw_cfg_keys.h "for the most up-to-date and >> authoritative list" & vmcoreinfo.txt. Those files don't have an >> explicit license, but qemu/hw/nvram/fw_cfg.c is BSD-license, so >> Michael S. Tsirkin suggested to use the same license. >> >> The patch intentionally left out DMA & vmcoreinfo structures & >> defines, which are added in the commits making usage of it. >> >> Suggested-by: Michael S. Tsirkin >> Signed-off-by: Marc-Andr=C3=A9 Lureau >> >> --- >> >> The related qemu patch making use of it, to be submitted: >> https://github.com/elmarco/qemu/commit/4884fc9e9c4c4467a371e5a40f3181239= e1b70f5 >> --- >> MAINTAINERS | 1 + >> drivers/firmware/qemu_fw_cfg.c | 22 ++------------ >> include/uapi/linux/fw_cfg.h | 66 +++++++++++++++++++++++++++++++++++= +++++++ >> 3 files changed, 69 insertions(+), 20 deletions(-) >> create mode 100644 include/uapi/linux/fw_cfg.h >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 3bdc260e36b7..a66b65f62811 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -11352,6 +11352,7 @@ M: "Michael S. Tsirkin" >> L: qemu-devel@nongnu.org >> S: Maintained >> F: drivers/firmware/qemu_fw_cfg.c >> +F: include/uapi/linux/fw_cfg.h >> >> QIB DRIVER >> M: Dennis Dalessandro > > Why fw_cfg.h and not qemu_fw_cfg.h ? fw_cfg.h seems too generic. ok > >> diff --git a/drivers/firmware/qemu_fw_cfg.c b/drivers/firmware/qemu_fw_c= fg.c >> index a41b572eeeb1..42601a3eaed5 100644 >> --- a/drivers/firmware/qemu_fw_cfg.c >> +++ b/drivers/firmware/qemu_fw_cfg.c >> @@ -32,30 +32,12 @@ >> #include >> #include >> #include >> +#include >> >> MODULE_AUTHOR("Gabriel L. Somlo "); >> MODULE_DESCRIPTION("QEMU fw_cfg sysfs support"); >> MODULE_LICENSE("GPL"); >> >> -/* selector key values for "well-known" fw_cfg entries */ >> -#define FW_CFG_SIGNATURE 0x00 >> -#define FW_CFG_ID 0x01 >> -#define FW_CFG_FILE_DIR 0x19 >> - >> -/* size in bytes of fw_cfg signature */ >> -#define FW_CFG_SIG_SIZE 4 >> - >> -/* fw_cfg "file name" is up to 56 characters (including terminating nul= ) */ >> -#define FW_CFG_MAX_FILE_PATH 56 >> - >> -/* fw_cfg file directory entry type */ >> -struct fw_cfg_file { >> - u32 size; >> - u16 select; >> - u16 reserved; >> - char name[FW_CFG_MAX_FILE_PATH]; >> -}; >> - >> /* fw_cfg device i/o register addresses */ >> static bool fw_cfg_is_mmio; >> static phys_addr_t fw_cfg_p_base; >> @@ -597,7 +579,7 @@ MODULE_DEVICE_TABLE(of, fw_cfg_sysfs_mmio_match); >> >> #ifdef CONFIG_ACPI >> static const struct acpi_device_id fw_cfg_sysfs_acpi_match[] =3D { >> - { "QEMU0002", }, >> + { FW_CFG_ACPI_DEVICE_ID, }, >> {}, >> }; >> MODULE_DEVICE_TABLE(acpi, fw_cfg_sysfs_acpi_match); >> diff --git a/include/uapi/linux/fw_cfg.h b/include/uapi/linux/fw_cfg.h >> new file mode 100644 >> index 000000000000..c698ac3812f6 >> --- /dev/null >> +++ b/include/uapi/linux/fw_cfg.h >> @@ -0,0 +1,66 @@ >> +/* SPDX-License-Identifier: BSD-3-Clause */ >> +#ifndef _LINUX_FW_CFG_H >> +#define _LINUX_FW_CFG_H >> + >> +#include >> + >> +#define FW_CFG_ACPI_DEVICE_ID "QEMU0002" >> + >> +/* selector key values for "well-known" fw_cfg entries */ >> +#define FW_CFG_SIGNATURE 0x00 >> +#define FW_CFG_ID 0x01 >> +#define FW_CFG_UUID 0x02 >> +#define FW_CFG_RAM_SIZE 0x03 >> +#define FW_CFG_NOGRAPHIC 0x04 >> +#define FW_CFG_NB_CPUS 0x05 >> +#define FW_CFG_MACHINE_ID 0x06 >> +#define FW_CFG_KERNEL_ADDR 0x07 >> +#define FW_CFG_KERNEL_SIZE 0x08 >> +#define FW_CFG_KERNEL_CMDLINE 0x09 >> +#define FW_CFG_INITRD_ADDR 0x0a >> +#define FW_CFG_INITRD_SIZE 0x0b >> +#define FW_CFG_BOOT_DEVICE 0x0c >> +#define FW_CFG_NUMA 0x0d >> +#define FW_CFG_BOOT_MENU 0x0e >> +#define FW_CFG_MAX_CPUS 0x0f >> +#define FW_CFG_KERNEL_ENTRY 0x10 >> +#define FW_CFG_KERNEL_DATA 0x11 >> +#define FW_CFG_INITRD_DATA 0x12 >> +#define FW_CFG_CMDLINE_ADDR 0x13 >> +#define FW_CFG_CMDLINE_SIZE 0x14 >> +#define FW_CFG_CMDLINE_DATA 0x15 >> +#define FW_CFG_SETUP_ADDR 0x16 >> +#define FW_CFG_SETUP_SIZE 0x17 >> +#define FW_CFG_SETUP_DATA 0x18 >> +#define FW_CFG_FILE_DIR 0x19 >> + >> +#define FW_CFG_FILE_FIRST 0x20 >> +#define FW_CFG_FILE_SLOTS_MIN 0x10 >> + >> +#define FW_CFG_WRITE_CHANNEL 0x4000 >> +#define FW_CFG_ARCH_LOCAL 0x8000 >> +#define FW_CFG_ENTRY_MASK (~(FW_CFG_WRITE_CHANNEL | FW_CFG_ARCH_LOCA= L)) >> + >> +#define FW_CFG_INVALID 0xffff >> + >> +/* width in bytes of fw_cfg control register */ >> +#define FW_CFG_CTL_SIZE 0x02 >> + >> +/* fw_cfg "file name" is up to 56 characters (including terminating nul= ) */ >> +#define FW_CFG_MAX_FILE_PATH 56 >> + >> +/* size in bytes of fw_cfg signature */ >> +#define FW_CFG_SIG_SIZE 4 >> + >> +/* FW_CFG_ID bits */ >> +#define FW_CFG_VERSION 0x01 >> + >> +/* fw_cfg file directory entry type */ >> +struct fw_cfg_file { >> + __be32 size; >> + __be16 select; >> + __u16 reserved; >> + char name[FW_CFG_MAX_FILE_PATH]; >> +}; >> + >> +#endif >> -- >> 2.16.1.73.g5832b7e9f2 --=20 Marc-Andr=C3=A9 Lureau