* [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-04-29 7:37 [RFC 0/9] Introducing firmware late binding Badal Nilawar
@ 2025-04-29 7:38 ` Badal Nilawar
0 siblings, 0 replies; 39+ messages in thread
From: Badal Nilawar @ 2025-04-29 7:38 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Xe PCODE FWCTL implements the generic FWCTL IOCLTs to allow limited
access from user space (as admin) to some very specific PCODE
Mailboxes only related to hardware configuration.
PCODE is a Firmware in Intel GPUs which is the main responsible
component for power and thermal aspects of the Intel GPUs.
Each different Intel GPU came with different PCODE versions with
different mailboxes and different needs. In the lack of an unified
interface, the per platform sysfs entries at the device level is
trending to grow, to allow admins to control different aspects of
the Hardware.
In this first experiment, xe_pcode_fwctl only adds support for the
Battlemage late-binding firmware information.
Late-binding is the name given to 2 other new auxiliary firmware
blobs that for now lives in the Flash like PCODE, but that soon
it is coming to linux-firmware.git: Fan-controller and
Voltage-regulator. Then, PCODE provides some mailboxes where the
status of both late-binding firmware can be queried as specified
in the documentation that is added along with the new uAPI here.
RFC IMPORTANT NOTE:
===================
Admins will need to query this information. This code here aims
to be used by Level0-Sysman and/or Intel XPU Manager directly
from user space. But following the drm upstream rules, the
userspace code will need to be ready before we can consider
getting this patch merged!
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
Documentation/userspace-api/fwctl/index.rst | 1 +
drivers/gpu/drm/xe/Kconfig | 1 +
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/xe_pci.c | 5 +
drivers/gpu/drm/xe/xe_pcode_fwctl.c | 218 ++++++++++++++++++++
drivers/gpu/drm/xe/xe_pcode_fwctl.h | 13 ++
include/uapi/fwctl/fwctl.h | 1 +
include/uapi/fwctl/xe_pcode.h | 80 +++++++
8 files changed, 320 insertions(+)
create mode 100644 drivers/gpu/drm/xe/xe_pcode_fwctl.c
create mode 100644 drivers/gpu/drm/xe/xe_pcode_fwctl.h
create mode 100644 include/uapi/fwctl/xe_pcode.h
diff --git a/Documentation/userspace-api/fwctl/index.rst b/Documentation/userspace-api/fwctl/index.rst
index 316ac456ad3b..186f8cf17583 100644
--- a/Documentation/userspace-api/fwctl/index.rst
+++ b/Documentation/userspace-api/fwctl/index.rst
@@ -12,3 +12,4 @@ to securely construct and execute RPCs inside device firmware.
fwctl
fwctl-cxl
pds_fwctl
+ xe_pcode_fwctl
diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
index a8cc1876a24f..ee77039b9256 100644
--- a/drivers/gpu/drm/xe/Kconfig
+++ b/drivers/gpu/drm/xe/Kconfig
@@ -45,6 +45,7 @@ config DRM_XE
select AUXILIARY_BUS
select HMM_MIRROR
select INTEL_MEI_LATE_BIND
+ select FWCTL
help
Experimental driver for Intel Xe series GPUs
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 6de291a21965..c1f3b2e2da5f 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -86,6 +86,7 @@ xe-y += xe_bb.o \
xe_pat.o \
xe_pci.o \
xe_pcode.o \
+ xe_pcode_fwctl.o \
xe_pm.o \
xe_preempt_fence.o \
xe_pt.o \
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 882398e09b7e..222e75c7427e 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -27,6 +27,7 @@
#include "xe_module.h"
#include "xe_pci_sriov.h"
#include "xe_pci_types.h"
+#include "xe_pcode_fwctl.h"
#include "xe_pm.h"
#include "xe_sriov.h"
#include "xe_step.h"
@@ -868,6 +869,10 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (err)
goto err_driver_cleanup;
+ err = xe_pcode_fwctl_init(xe);
+ if (err)
+ goto err_driver_cleanup;
+
drm_dbg(&xe->drm, "d3cold: capable=%s\n",
str_yes_no(xe->d3cold.capable));
diff --git a/drivers/gpu/drm/xe/xe_pcode_fwctl.c b/drivers/gpu/drm/xe/xe_pcode_fwctl.c
new file mode 100644
index 000000000000..d6443aa4a60a
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_pcode_fwctl.c
@@ -0,0 +1,218 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#include "xe_pcode_fwctl.h"
+
+#include <linux/fwctl.h>
+#include <uapi/fwctl/xe_pcode.h>
+
+#include "xe_device.h"
+#include "xe_pcode_api.h"
+#include "xe_pcode.h"
+#include "xe_pm.h"
+
+/**
+ * DOC: XE PCODE FWCTL
+ *
+ * Xe PCODE FWCTL implements the generic FWCTL IOCLTs to allow limited access
+ * from user space (as admin) to some very specific PCODE Mailboxes.
+ *
+ * User space first needs to issue the ```FWCTL_INFO``` ioctl and check for the
+ * capability flag, which will indicate which group of Mailboxes commands are
+ * supported on that current running firmware.
+ *
+ * After verifying the availability of the desired Mailbox command,
+ * ```FWCTL_RPC``` needs to be issued with in and out parameter both using
+ * pointers to a ```struct fwctl_rpc_xe_pcode``` allocated by userspace.
+ * In and out length needs to be sizeof(struct fwctl_rpc_xe_pcode).
+ *
+ * Any command that is not listed in the include/uapi/fwctl/xe_pcode.h or not
+ * supported by the running firmware, will return ERR_PTR(-EBADMSG).
+ *
+ * Example:
+ *
+ * .. code-block:: C
+ *
+ * struct fwctl_info_xe_pcode xe_pcode_info;
+ *
+ * struct fwctl_info info = {
+ * .size = sizeof(struct fwctl_info),
+ * .flags = 0,
+ * .out_device_type = 0,
+ * .device_data_len = sizeof(struct fwctl_info_xe_pcode),
+ * .out_device_data = (__aligned_u64) &xe_pcode_info,
+ * };
+ *
+ * fd = open("/dev/fwctl/fwctl0", O_RDWR);
+ * if (fd < 0) {
+ * perror("Failed to open /dev/fwctl/fwctl0");
+ * return -1;
+ * }
+ *
+ * if (ioctl(fd, FWCTL_INFO, &info)) {
+ * perror("ioctl(FWCTL_INFO) failed");
+ * close(fd);
+ * return -1;
+ * }
+ *
+ * if (xe_pcode_info.uctx_caps & FWCTL_XE_PCODE_LATEBINDING) {
+ * struct fwctl_rpc_xe_pcode rpc_in = {
+ * .command = PCODE_CMD_LATE_BINDING,
+ * .param1 = PARAM1_GET_CAPABILITY_STATUS,
+ * };
+ *
+ * struct fwctl_rpc_xe_pcode rpc_out = {0};
+ *
+ * struct fwctl_rpc rpc = {
+ * .size = sizeof(struct fwctl_rpc),
+ * .scope = FWCTL_RPC_CONFIGURATION,
+ * .in_len = sizeof(struct fwctl_rpc_xe_pcode),
+ * .out_len = sizeof(struct fwctl_rpc_xe_pcode),
+ * .in = (__aligned_u64) &rpc_in,
+ * .out = (__aligned_u64) &rpc_out,
+ * };
+ *
+ * if (ioctl(fd, FWCTL_RPC, &rpc)) {
+ * perror("ioctl(FWCTL_RPC) failed");
+ * close(fd);
+ * return -1;
+ * }
+ *
+ */
+
+struct xe_pcode_fwctl_dev {
+ struct fwctl_device fwctl;
+ struct xe_device *xe;
+};
+
+DEFINE_FREE(xe_pcode_fwctl, struct xe_pcode_fwctl_dev *, if (_T) fwctl_put(&_T->fwctl))
+
+static int xe_pcode_fwctl_uctx_open(struct fwctl_uctx *uctx)
+{
+ struct xe_pcode_fwctl_dev *fwctl_dev =
+ container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
+ struct xe_device *xe = fwctl_dev->xe;
+
+ xe_pm_runtime_get(xe);
+
+ return 0;
+}
+
+static void xe_pcode_fwctl_uctx_close(struct fwctl_uctx *uctx)
+{
+ struct xe_pcode_fwctl_dev *fwctl_dev =
+ container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
+ struct xe_device *xe = fwctl_dev->xe;
+
+ xe_pm_runtime_put(xe);
+}
+
+static void *xe_pcode_fwctl_info(struct fwctl_uctx *uctx, size_t *length)
+{
+ struct xe_pcode_fwctl_dev *fwctl_dev =
+ container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
+ struct xe_device *xe = fwctl_dev->xe;
+ struct fwctl_info_xe_pcode *info;
+
+ info = kzalloc(sizeof(*info), GFP_KERNEL);
+ if (!info)
+ return ERR_PTR(-ENOMEM);
+
+ if (xe->info.platform == XE_BATTLEMAGE)
+ info->uctx_caps = FWCTL_XE_PCODE_LATEBINDING;
+
+ *length = sizeof(*info);
+
+ return info;
+}
+
+static bool xe_pcode_fwctl_rpc_validate(struct fwctl_rpc_xe_pcode *rpc,
+ enum fwctl_rpc_scope scope)
+{
+ u32 mbox = PCODE_MBOX(rpc->command, rpc->param1, rpc->param2);
+
+ if (mbox == PCODE_MBOX(PCODE_CMD_LATE_BINDING,
+ PARAM1_GET_CAPABILITY_STATUS, 0))
+ return scope == FWCTL_RPC_CONFIGURATION;
+
+ if (mbox == PCODE_MBOX(PCODE_CMD_LATE_BINDING,
+ PARAM1_GET_VERSION_LOW, 0))
+ return (rpc->data0 == DATA0_TYPE_FAN_CONTROLLER ||
+ rpc->data0 == DATA0_TYPE_VOLTAGE_REGULATOR) &&
+ scope == FWCTL_RPC_CONFIGURATION;
+
+ return false;
+}
+
+static void *xe_pcode_fwctl_rpc(struct fwctl_uctx *uctx,
+ enum fwctl_rpc_scope scope,
+ void *in, size_t in_len, size_t *out_len)
+{
+ struct xe_pcode_fwctl_dev *fwctl_dev =
+ container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
+ struct xe_tile *root_tile = xe_device_get_root_tile(fwctl_dev->xe);
+ struct fwctl_rpc_xe_pcode *rpc = in;
+ int err;
+
+ if (in_len != sizeof(struct fwctl_rpc_xe_pcode) ||
+ *out_len != sizeof(struct fwctl_rpc_xe_pcode))
+ return ERR_PTR(-EMSGSIZE);
+
+ if (!xe_pcode_fwctl_rpc_validate(rpc, scope))
+ return ERR_PTR(-EBADMSG);
+
+ err = xe_pcode_read(root_tile, PCODE_MBOX(rpc->command,
+ rpc->param1,
+ rpc->param2),
+ &rpc->data0,
+ &rpc->data1);
+ if (err)
+ return ERR_PTR(err);
+
+ return rpc;
+}
+
+static const struct fwctl_ops xe_pcode_fwctl_ops = {
+ .device_type = FWCTL_DEVICE_TYPE_XE_PCODE,
+ .uctx_size = sizeof(struct fwctl_uctx),
+ .open_uctx = xe_pcode_fwctl_uctx_open,
+ .close_uctx = xe_pcode_fwctl_uctx_close,
+ .info = xe_pcode_fwctl_info,
+ .fw_rpc = xe_pcode_fwctl_rpc,
+};
+
+static void xe_pcode_fwctl_fini(void *dev)
+{
+ struct fwctl_device *fwctl = dev;
+
+ fwctl_unregister(fwctl);
+ fwctl_put(fwctl);
+}
+
+int xe_pcode_fwctl_init(struct xe_device *xe)
+{
+ struct xe_pcode_fwctl_dev *fwctl_dev __free(xe_pcode_fwctl) =
+ fwctl_alloc_device(xe->drm.dev, &xe_pcode_fwctl_ops,
+ struct xe_pcode_fwctl_dev, fwctl);
+ int err;
+
+ /* For now xe_pcode_fwctl supports only Late-Binding commands on BMG */
+ if (xe->info.platform != XE_BATTLEMAGE)
+ return -ENODEV;
+
+ if (!fwctl_dev)
+ return -ENOMEM;
+
+ fwctl_dev->xe = xe;
+
+ err = fwctl_register(&fwctl_dev->fwctl);
+ if (err)
+ return err;
+
+ return devm_add_action_or_reset(xe->drm.dev, xe_pcode_fwctl_fini,
+ &fwctl_dev->fwctl);
+}
+
+MODULE_IMPORT_NS("FWCTL");
diff --git a/drivers/gpu/drm/xe/xe_pcode_fwctl.h b/drivers/gpu/drm/xe/xe_pcode_fwctl.h
new file mode 100644
index 000000000000..67386d7bf2ea
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_pcode_fwctl.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_PCODE_FWCTL_H_
+#define _XE_PCODE_FWCTL_H_
+
+struct xe_device;
+
+int xe_pcode_fwctl_init(struct xe_device *xe);
+
+#endif
diff --git a/include/uapi/fwctl/fwctl.h b/include/uapi/fwctl/fwctl.h
index 716ac0eee42d..9e7e84aef791 100644
--- a/include/uapi/fwctl/fwctl.h
+++ b/include/uapi/fwctl/fwctl.h
@@ -45,6 +45,7 @@ enum fwctl_device_type {
FWCTL_DEVICE_TYPE_MLX5 = 1,
FWCTL_DEVICE_TYPE_CXL = 2,
FWCTL_DEVICE_TYPE_PDS = 4,
+ FWCTL_DEVICE_TYPE_XE_PCODE = 5,
};
/**
diff --git a/include/uapi/fwctl/xe_pcode.h b/include/uapi/fwctl/xe_pcode.h
new file mode 100644
index 000000000000..8df6db34e5ce
--- /dev/null
+++ b/include/uapi/fwctl/xe_pcode.h
@@ -0,0 +1,80 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _UAPI_FWCTL_XE_PCODE_H_
+#define _UAPI_FWCTL_XE_PCODE_H_
+
+#include <linux/types.h>
+
+/**
+ * struct fwctl_info_xe_pcode - FWCTL Information struct for Xe PCODE
+ *
+ * @uctx_caps: bitmap of available capabilities:
+ * - %FWCTL_XE_PCODE_LATEBINDING - Command to configure Late Bind FW such as
+ * Fan Controller and Voltage Regulator
+ * @rsvd: Reserved for future usage or flags
+ */
+struct fwctl_info_xe_pcode {
+ __u32 uctx_caps;
+ __u32 rsvd[3];
+};
+
+#define FWCTL_XE_PCODE_LATEBINDING (1 << 0)
+
+/**
+ * struct fwctl_rpc_xe_pcode - FWCTL Remote Procedure Calls for Xe PCODE
+ */
+struct fwctl_rpc_xe_pcode {
+ /** @command: The main Mailbox command */
+ __u8 command;
+ /** @param1: A subcommand or a parameter of the main command */
+ __u16 param1;
+ /** @param2: A parameter of a subcommand or a subsubcommand */
+ __u16 param2;
+ /** @data0: The first 32 bits of data. In general data-in as param */
+ __u32 data0;
+ /** @data1: The other 32 bits of data. In general data-out */
+ __u32 data1;
+ /** @pad: Padding the uAPI struct - Must be 0. Not sent to firmware */
+ __u8 pad[3];
+};
+
+/**
+ * DOC: Late Binding Commands
+ *
+ * FWCTL info.uctx_caps: FWCTL_XE_PCODE_LATEBINDING
+ * FWCTL rpc.scope: FWCTL_RPC_CONFIGURATION
+ *
+ * Command 0x5C - LATE_BINDING
+ * Param1 0x0 - GET_CAPABILITY_STATUS
+ * Param2 0
+ * Data in None
+ * Data out:
+ *
+ * - Bit0: ate binding for V1 Fan Tables is supported.
+ * - Bit3: Late binding for VR parameters.
+ * - Bit16: Late binding done for V1 Fan tables
+ * - Bit17: Late binding done for power co-efficients.
+ * - Bit18: Late binding done for V2 Fan tables
+ * - Bit19: Late binding done for VR Parameters
+ *
+ * Command 0x5C - LATE_BINDING
+ * Param1 0x1 - GET_VERSION_LOW
+ * Param2 0
+ * Data in - conveys the Type of the Late Binding Configuration:
+ *
+ * - FAN_CONTROLLER = 1
+ * - VOLTAGE_REGULATOR = 2
+ *
+ * Data out - Lower 32 bits of Version Number for Late Binding configuration
+ * that has been applied successfully.
+ */
+#define PCODE_CMD_LATE_BINDING 0x5C
+#define PARAM1_GET_CAPABILITY_STATUS 0x0
+#define PARAM1_GET_VERSION_LOW 0x1
+#define DATA0_TYPE_FAN_CONTROLLER 1
+#define DATA0_TYPE_VOLTAGE_REGULATOR 2
+
+#endif /* _UAPI_FWCTL_XE_PCODE_H_ */
--
2.34.1
^ permalink raw reply related [flat|nested] 39+ messages in thread
* [RFC 0/9] Introducing firmware late binding
@ 2025-04-29 16:09 Badal Nilawar
2025-04-29 16:09 ` [RFC 1/9] mei: bus: add mei_cldev_mtu interface Badal Nilawar
` (17 more replies)
0 siblings, 18 replies; 39+ messages in thread
From: Badal Nilawar @ 2025-04-29 16:09 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh,
daniele.ceraolospurio
Introducing firmware late binding feature to enable firmware loading
for the devices, such as the fan controller and voltage regulator,
during the driver probe.
Typically, firmware for these devices are part of IFWI flash image but
can be replaced at probe after OEM tuning.
Alexander Usyskin (2):
mei: bus: add mei_cldev_mtu interface
mei: late_bind: add late binding component driver
Badal Nilawar (6):
drm/xe/late_bind_fw: Introducing late_bind_fw
drm/xe/xe_late_bind_fw: Initialize late binding firmware
drm/xe/xe_late_bind_fw: Load late binding firmware
drm/xe/xe_late_bind_fw: Reload late binding fw in rpm resume
drm/xe/xe_late_bind_fw: Reload late binding fw in S2Idle/S3 resume
drm/xe/xe_late_bind_fw: Introduce debug fs node to disable late
binding
Rodrigo Vivi (1):
{fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
Documentation/userspace-api/fwctl/index.rst | 1 +
drivers/gpu/drm/xe/Kconfig | 2 +
drivers/gpu/drm/xe/Makefile | 2 +
drivers/gpu/drm/xe/xe_debugfs.c | 42 +++
drivers/gpu/drm/xe/xe_device.c | 7 +
drivers/gpu/drm/xe/xe_device_types.h | 4 +
drivers/gpu/drm/xe/xe_late_bind_fw.c | 289 ++++++++++++++++++
drivers/gpu/drm/xe/xe_late_bind_fw.h | 18 ++
drivers/gpu/drm/xe/xe_late_bind_fw_types.h | 97 ++++++
drivers/gpu/drm/xe/xe_pci.c | 5 +
drivers/gpu/drm/xe/xe_pcode_fwctl.c | 218 +++++++++++++
drivers/gpu/drm/xe/xe_pcode_fwctl.h | 13 +
drivers/gpu/drm/xe/xe_pm.c | 7 +
drivers/misc/mei/Kconfig | 1 +
drivers/misc/mei/Makefile | 1 +
drivers/misc/mei/bus.c | 13 +
drivers/misc/mei/late_bind/Kconfig | 12 +
drivers/misc/mei/late_bind/Makefile | 9 +
drivers/misc/mei/late_bind/mei_late_bind.c | 261 ++++++++++++++++
include/drm/intel/i915_component.h | 1 +
.../drm/intel/xe_late_bind_mei_interface.h | 49 +++
include/linux/mei_cl_bus.h | 1 +
include/uapi/fwctl/fwctl.h | 1 +
include/uapi/fwctl/xe_pcode.h | 80 +++++
24 files changed, 1134 insertions(+)
create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw.c
create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw.h
create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw_types.h
create mode 100644 drivers/gpu/drm/xe/xe_pcode_fwctl.c
create mode 100644 drivers/gpu/drm/xe/xe_pcode_fwctl.h
create mode 100644 drivers/misc/mei/late_bind/Kconfig
create mode 100644 drivers/misc/mei/late_bind/Makefile
create mode 100644 drivers/misc/mei/late_bind/mei_late_bind.c
create mode 100644 include/drm/intel/xe_late_bind_mei_interface.h
create mode 100644 include/uapi/fwctl/xe_pcode.h
--
2.34.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* [RFC 1/9] mei: bus: add mei_cldev_mtu interface
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
@ 2025-04-29 16:09 ` Badal Nilawar
2025-04-29 16:09 ` [RFC 2/9] mei: late_bind: add late binding component driver Badal Nilawar
` (16 subsequent siblings)
17 siblings, 0 replies; 39+ messages in thread
From: Badal Nilawar @ 2025-04-29 16:09 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh,
daniele.ceraolospurio
From: Alexander Usyskin <alexander.usyskin@intel.com>
Allow to bus client to obtain client mtu.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/misc/mei/bus.c | 13 +++++++++++++
include/linux/mei_cl_bus.h | 1 +
2 files changed, 14 insertions(+)
diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c
index 67176caf5416..f860b1b6eda0 100644
--- a/drivers/misc/mei/bus.c
+++ b/drivers/misc/mei/bus.c
@@ -614,6 +614,19 @@ u8 mei_cldev_ver(const struct mei_cl_device *cldev)
}
EXPORT_SYMBOL_GPL(mei_cldev_ver);
+/**
+ * mei_cldev_mtu - max message that client can send and receive
+ *
+ * @cldev: mei client device
+ *
+ * Return: mtu or 0 if client is not connected
+ */
+size_t mei_cldev_mtu(const struct mei_cl_device *cldev)
+{
+ return mei_cl_mtu(cldev->cl);
+}
+EXPORT_SYMBOL_GPL(mei_cldev_mtu);
+
/**
* mei_cldev_enabled - check whether the device is enabled
*
diff --git a/include/linux/mei_cl_bus.h b/include/linux/mei_cl_bus.h
index 725fd7727422..a82755e1fc40 100644
--- a/include/linux/mei_cl_bus.h
+++ b/include/linux/mei_cl_bus.h
@@ -113,6 +113,7 @@ int mei_cldev_register_notif_cb(struct mei_cl_device *cldev,
mei_cldev_cb_t notif_cb);
u8 mei_cldev_ver(const struct mei_cl_device *cldev);
+size_t mei_cldev_mtu(const struct mei_cl_device *cldev);
void *mei_cldev_get_drvdata(const struct mei_cl_device *cldev);
void mei_cldev_set_drvdata(struct mei_cl_device *cldev, void *data);
--
2.34.1
^ permalink raw reply related [flat|nested] 39+ messages in thread
* [RFC 2/9] mei: late_bind: add late binding component driver
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
2025-04-29 16:09 ` [RFC 1/9] mei: bus: add mei_cldev_mtu interface Badal Nilawar
@ 2025-04-29 16:09 ` Badal Nilawar
2025-05-07 22:42 ` Daniele Ceraolo Spurio
2025-04-29 16:09 ` [RFC 3/9] drm/xe/late_bind_fw: Introducing late_bind_fw Badal Nilawar
` (15 subsequent siblings)
17 siblings, 1 reply; 39+ messages in thread
From: Badal Nilawar @ 2025-04-29 16:09 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh,
daniele.ceraolospurio
From: Alexander Usyskin <alexander.usyskin@intel.com>
Add late binding component driver.
It allows pushing the late binding configuration from
Xe grphics driver to Intel discrete graphics card CSE device.
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/misc/mei/Kconfig | 1 +
drivers/misc/mei/Makefile | 1 +
drivers/misc/mei/late_bind/Kconfig | 12 +
drivers/misc/mei/late_bind/Makefile | 9 +
drivers/misc/mei/late_bind/mei_late_bind.c | 261 ++++++++++++++++++
include/drm/intel/i915_component.h | 1 +
.../drm/intel/xe_late_bind_mei_interface.h | 49 ++++
7 files changed, 334 insertions(+)
create mode 100644 drivers/misc/mei/late_bind/Kconfig
create mode 100644 drivers/misc/mei/late_bind/Makefile
create mode 100644 drivers/misc/mei/late_bind/mei_late_bind.c
create mode 100644 include/drm/intel/xe_late_bind_mei_interface.h
diff --git a/drivers/misc/mei/Kconfig b/drivers/misc/mei/Kconfig
index 7575fee96cc6..771becc68095 100644
--- a/drivers/misc/mei/Kconfig
+++ b/drivers/misc/mei/Kconfig
@@ -84,5 +84,6 @@ config INTEL_MEI_VSC
source "drivers/misc/mei/hdcp/Kconfig"
source "drivers/misc/mei/pxp/Kconfig"
source "drivers/misc/mei/gsc_proxy/Kconfig"
+source "drivers/misc/mei/late_bind/Kconfig"
endif
diff --git a/drivers/misc/mei/Makefile b/drivers/misc/mei/Makefile
index 6f9fdbf1a495..84bfde888d81 100644
--- a/drivers/misc/mei/Makefile
+++ b/drivers/misc/mei/Makefile
@@ -31,6 +31,7 @@ CFLAGS_mei-trace.o = -I$(src)
obj-$(CONFIG_INTEL_MEI_HDCP) += hdcp/
obj-$(CONFIG_INTEL_MEI_PXP) += pxp/
obj-$(CONFIG_INTEL_MEI_GSC_PROXY) += gsc_proxy/
+obj-$(CONFIG_INTEL_MEI_LATE_BIND) += late_bind/
obj-$(CONFIG_INTEL_MEI_VSC_HW) += mei-vsc-hw.o
mei-vsc-hw-y := vsc-tp.o
diff --git a/drivers/misc/mei/late_bind/Kconfig b/drivers/misc/mei/late_bind/Kconfig
new file mode 100644
index 000000000000..c5302303e5af
--- /dev/null
+++ b/drivers/misc/mei/late_bind/Kconfig
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2025, Intel Corporation. All rights reserved.
+#
+config INTEL_MEI_LATE_BIND
+ tristate "Intel late binding support on ME Interface"
+ select INTEL_MEI_ME
+ depends on DRM_XE
+ help
+ MEI Support for Late Binding for Intel graphics card.
+
+ Enables the ME FW interfaces for Late Binding for
+ Xe display driver of Intel.
diff --git a/drivers/misc/mei/late_bind/Makefile b/drivers/misc/mei/late_bind/Makefile
new file mode 100644
index 000000000000..a0aeda5853f0
--- /dev/null
+++ b/drivers/misc/mei/late_bind/Makefile
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Copyright (c) 2025, Intel Corporation. All rights reserved.
+#
+# Makefile - Late Binding client driver for Intel MEI Bus Driver.
+
+subdir-ccflags-y += -I$(srctree)/drivers/misc/mei/
+
+obj-$(CONFIG_INTEL_MEI_LATE_BIND) += mei_late_bind.o
diff --git a/drivers/misc/mei/late_bind/mei_late_bind.c b/drivers/misc/mei/late_bind/mei_late_bind.c
new file mode 100644
index 000000000000..431fee664316
--- /dev/null
+++ b/drivers/misc/mei/late_bind/mei_late_bind.c
@@ -0,0 +1,261 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2025 Intel Corporation
+ */
+#include <drm/drm_connector.h>
+#include <drm/intel/i915_component.h>
+#include <drm/intel/xe_late_bind_mei_interface.h>
+#include <linux/component.h>
+#include <linux/pci.h>
+#include <linux/mei_cl_bus.h>
+#include <linux/module.h>
+#include <linux/overflow.h>
+#include <linux/slab.h>
+#include <linux/uuid.h>
+
+#include "mkhi.h"
+
+#define GFX_SRV_MKHI_LATE_BINDING_CMD 0x12
+#define GFX_SRV_MKHI_LATE_BINDING_RSP (GFX_SRV_MKHI_LATE_BINDING_CMD | 0x80)
+
+#define LATE_BIND_SEND_TIMEOUT_MSEC 3000
+#define LATE_BIND_RECV_TIMEOUT_MSEC 3000
+
+/**
+ * struct csc_heci_late_bind_req - late binding request
+ * @header: @ref mkhi_msg_hdr
+ * @type: type of the late binding payload
+ * @flags: flags to be passed to the firmware
+ * @reserved: reserved field
+ * @payload_size: size of the payload data in bytes
+ * @payload: data to be sent to the firmware
+ */
+struct csc_heci_late_bind_req {
+ struct mkhi_msg_hdr header;
+ u32 type;
+ u32 flags;
+ u32 reserved[2];
+ u32 payload_size;
+ u8 payload[] __counted_by(payload_size);
+} __packed;
+
+/**
+ * struct csc_heci_late_bind_rsp - late binding response
+ * @header: @ref mkhi_msg_hdr
+ * @type: type of the late binding payload
+ * @reserved: reserved field
+ * @status: status of the late binding command execution by firmware
+ */
+struct csc_heci_late_bind_rsp {
+ struct mkhi_msg_hdr header;
+ u32 type;
+ u32 reserved[2];
+ u32 status;
+} __packed;
+
+static int mei_late_bind_check_response(const struct device *dev, const struct mkhi_msg_hdr *hdr)
+{
+ if (hdr->group_id != MKHI_GROUP_ID_GFX) {
+ dev_err(dev, "Mismatch group id: 0x%x instead of 0x%x\n",
+ hdr->group_id, MKHI_GROUP_ID_GFX);
+ return -EINVAL;
+ }
+
+ if (hdr->command != GFX_SRV_MKHI_LATE_BINDING_RSP) {
+ dev_err(dev, "Mismatch command: 0x%x instead of 0x%x\n",
+ hdr->command, GFX_SRV_MKHI_LATE_BINDING_RSP);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+/**
+ * mei_late_bind_push_config - Sends a config to the firmware.
+ * @dev: device struct corresponding to the mei device
+ * @type: payload type
+ * @flags: payload flags
+ * @payload: payload buffer
+ * @payload_size: payload buffer size
+ *
+ * Return: 0 success, negative errno value on transport failure,
+ * positive status returned by FW
+ */
+static int mei_late_bind_push_config(struct device *dev, u32 type, u32 flags,
+ const void *payload, size_t payload_size)
+{
+ struct mei_cl_device *cldev;
+ struct csc_heci_late_bind_req *req = NULL;
+ struct csc_heci_late_bind_rsp rsp;
+ size_t req_size;
+ int ret;
+
+ if (!dev || !payload || !payload_size)
+ return -EINVAL;
+
+ cldev = to_mei_cl_device(dev);
+
+ ret = mei_cldev_enable(cldev);
+ if (ret < 0) {
+ dev_dbg(dev, "mei_cldev_enable failed. %d\n", ret);
+ return ret;
+ }
+
+ req_size = struct_size(req, payload, payload_size);
+ if (req_size > mei_cldev_mtu(cldev)) {
+ dev_err(dev, "Payload is too big %zu\n", payload_size);
+ ret = -EMSGSIZE;
+ goto end;
+ }
+
+ req = kmalloc(req_size, GFP_KERNEL);
+ if (!req) {
+ ret = -ENOMEM;
+ goto end;
+ }
+
+ req->header.group_id = MKHI_GROUP_ID_GFX;
+ req->header.command = GFX_SRV_MKHI_LATE_BINDING_CMD;
+ req->type = type;
+ req->flags = flags;
+ req->reserved[0] = 0;
+ req->reserved[1] = 0;
+ req->payload_size = payload_size;
+ memcpy(req->payload, payload, payload_size);
+
+ ret = mei_cldev_send_timeout(cldev, (void *)req, req_size, LATE_BIND_SEND_TIMEOUT_MSEC);
+ if (ret < 0) {
+ dev_err(dev, "mei_cldev_send failed. %d\n", ret);
+ goto end;
+ }
+ ret = mei_cldev_recv_timeout(cldev, (void *)&rsp, sizeof(rsp), LATE_BIND_RECV_TIMEOUT_MSEC);
+ if (ret < 0) {
+ dev_err(dev, "mei_cldev_recv failed. %d\n", ret);
+ goto end;
+ }
+ ret = mei_late_bind_check_response(dev, &rsp.header);
+ if (ret) {
+ dev_err(dev, "bad result response from the firmware: 0x%x\n",
+ *(uint32_t *)&rsp.header);
+ goto end;
+ }
+ ret = (int)rsp.status;
+ dev_dbg(dev, "mei_late_bind_push_config status = %d\n", ret);
+
+end:
+ mei_cldev_disable(cldev);
+ kfree(req);
+ return ret;
+}
+
+static const struct xe_late_bind_component_ops mei_late_bind_ops = {
+ .owner = THIS_MODULE,
+ .push_config = mei_late_bind_push_config,
+};
+
+static int mei_component_master_bind(struct device *dev)
+{
+ return component_bind_all(dev, (void *)&mei_late_bind_ops);
+}
+
+static void mei_component_master_unbind(struct device *dev)
+{
+ component_unbind_all(dev, (void *)&mei_late_bind_ops);
+}
+
+static const struct component_master_ops mei_component_master_ops = {
+ .bind = mei_component_master_bind,
+ .unbind = mei_component_master_unbind,
+};
+
+/**
+ * mei_late_bind_component_match - compare function for matching mei late bind.
+ *
+ * The function checks if requested is Intel VGA device
+ * and the parent of requester and the grand parent of mei_if are the same
+ * device.
+ *
+ * @dev: master device
+ * @subcomponent: subcomponent to match (I915_COMPONENT_LATE_BIND)
+ * @data: compare data (mei late-bind bus device)
+ *
+ * Return:
+ * * 1 - if components match
+ * * 0 - otherwise
+ */
+static int mei_late_bind_component_match(struct device *dev, int subcomponent,
+ void *data)
+{
+ struct device *base = data;
+ struct pci_dev *pdev;
+
+ if (!dev)
+ return 0;
+
+ if (!dev_is_pci(dev))
+ return 0;
+
+ pdev = to_pci_dev(dev);
+
+ if (pdev->class != (PCI_CLASS_DISPLAY_VGA << 8) ||
+ pdev->vendor != PCI_VENDOR_ID_INTEL)
+ return 0;
+
+ if (subcomponent != I915_COMPONENT_LATE_BIND)
+ return 0;
+
+ base = base->parent;
+ if (!base) /* mei device */
+ return 0;
+
+ base = base->parent; /* pci device */
+
+ return !!base && dev == base;
+}
+
+static int mei_late_bind_probe(struct mei_cl_device *cldev,
+ const struct mei_cl_device_id *id)
+{
+ struct component_match *master_match = NULL;
+ int ret;
+
+ component_match_add_typed(&cldev->dev, &master_match,
+ mei_late_bind_component_match, &cldev->dev);
+ if (IS_ERR_OR_NULL(master_match))
+ return -ENOMEM;
+
+ ret = component_master_add_with_match(&cldev->dev,
+ &mei_component_master_ops,
+ master_match);
+ if (ret < 0)
+ dev_err(&cldev->dev, "Master comp add failed %d\n", ret);
+
+ return ret;
+}
+
+static void mei_late_bind_remove(struct mei_cl_device *cldev)
+{
+ component_master_del(&cldev->dev, &mei_component_master_ops);
+}
+
+#define MEI_GUID_MKHI UUID_LE(0xe2c2afa2, 0x3817, 0x4d19, \
+ 0x9d, 0x95, 0x6, 0xb1, 0x6b, 0x58, 0x8a, 0x5d)
+
+static struct mei_cl_device_id mei_late_bind_tbl[] = {
+ { .uuid = MEI_GUID_MKHI, .version = MEI_CL_VERSION_ANY },
+ { }
+};
+MODULE_DEVICE_TABLE(mei, mei_late_bind_tbl);
+
+static struct mei_cl_driver mei_late_bind_driver = {
+ .id_table = mei_late_bind_tbl,
+ .name = KBUILD_MODNAME,
+ .probe = mei_late_bind_probe,
+ .remove = mei_late_bind_remove,
+};
+
+module_mei_cl_driver(mei_late_bind_driver);
+
+MODULE_AUTHOR("Intel Corporation");
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("MEI Late Binding");
diff --git a/include/drm/intel/i915_component.h b/include/drm/intel/i915_component.h
index 4ea3b17aa143..4945044d41e6 100644
--- a/include/drm/intel/i915_component.h
+++ b/include/drm/intel/i915_component.h
@@ -31,6 +31,7 @@ enum i915_component_type {
I915_COMPONENT_HDCP,
I915_COMPONENT_PXP,
I915_COMPONENT_GSC_PROXY,
+ I915_COMPONENT_LATE_BIND,
};
/* MAX_PORT is the number of port
diff --git a/include/drm/intel/xe_late_bind_mei_interface.h b/include/drm/intel/xe_late_bind_mei_interface.h
new file mode 100644
index 000000000000..4005c4c6184f
--- /dev/null
+++ b/include/drm/intel/xe_late_bind_mei_interface.h
@@ -0,0 +1,49 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright (c) 2025 Intel Corporation
+ */
+
+#ifndef _XE_LATE_BIND_MEI_INTERFACE_H_
+#define _XE_LATE_BIND_MEI_INTERFACE_H_
+
+#include <linux/types.h>
+
+struct device;
+struct module;
+
+/**
+ * struct xe_late_bind_component_ops - ops for Late Binding services.
+ * @owner: Module providing the ops
+ * @push_config: Sends a config to FW.
+ */
+struct xe_late_bind_component_ops {
+ struct module *owner;
+
+ /**
+ * @push_config: Sends a config to FW.
+ * @dev: device struct corresponding to the mei device
+ * @type: payload type
+ * @flags: payload flags
+ * @payload: payload buffer
+ * @payload_size: payload buffer size
+ *
+ * Return: 0 success, negative errno value on transport failure,
+ * positive status returned by FW
+ */
+ int (*push_config)(struct device *dev, u32 type, u32 flags,
+ const void *payload, size_t payload_size);
+};
+
+/**
+ * struct xe_late_bind_component - Late Binding services component
+ * @mei_dev: device that provide Late Binding service.
+ * @ops: Ops implemented by Late Binding driver, used by Xe driver.
+ *
+ * Communication between Xe and MEI drivers for Late Binding services
+ */
+struct xe_late_bind_component {
+ struct device *mei_dev;
+ const struct xe_late_bind_component_ops *ops;
+};
+
+#endif /* _XE_LATE_BIND_MEI_INTERFACE_H_ */
--
2.34.1
^ permalink raw reply related [flat|nested] 39+ messages in thread
* [RFC 3/9] drm/xe/late_bind_fw: Introducing late_bind_fw
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
2025-04-29 16:09 ` [RFC 1/9] mei: bus: add mei_cldev_mtu interface Badal Nilawar
2025-04-29 16:09 ` [RFC 2/9] mei: late_bind: add late binding component driver Badal Nilawar
@ 2025-04-29 16:09 ` Badal Nilawar
2025-05-07 21:38 ` Daniele Ceraolo Spurio
2025-04-29 16:09 ` [RFC 4/9] drm/xe/xe_late_bind_fw: Initialize late binding firmware Badal Nilawar
` (14 subsequent siblings)
17 siblings, 1 reply; 39+ messages in thread
From: Badal Nilawar @ 2025-04-29 16:09 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh,
daniele.ceraolospurio
Introducing late_bind_fw to enable firmware loading for the devices,
such as the fan controller and voltage regulator, during the driver probe.
Typically, firmware for these devices are part of IFWI flash image but
can be replaced at probe after OEM tuning.
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/Kconfig | 1 +
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/xe_device.c | 3 +
drivers/gpu/drm/xe/xe_device_types.h | 4 +
drivers/gpu/drm/xe/xe_late_bind_fw.c | 104 +++++++++++++++++++++
drivers/gpu/drm/xe/xe_late_bind_fw.h | 16 ++++
drivers/gpu/drm/xe/xe_late_bind_fw_types.h | 95 +++++++++++++++++++
7 files changed, 224 insertions(+)
create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw.c
create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw.h
create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw_types.h
diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
index 9bce047901b2..a8cc1876a24f 100644
--- a/drivers/gpu/drm/xe/Kconfig
+++ b/drivers/gpu/drm/xe/Kconfig
@@ -44,6 +44,7 @@ config DRM_XE
select WANT_DEV_COREDUMP
select AUXILIARY_BUS
select HMM_MIRROR
+ select INTEL_MEI_LATE_BIND
help
Experimental driver for Intel Xe series GPUs
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index c5d6681645ed..6de291a21965 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -76,6 +76,7 @@ xe-y += xe_bb.o \
xe_hw_fence.o \
xe_irq.o \
xe_lrc.o \
+ xe_late_bind_fw.o \
xe_migrate.o \
xe_mmio.o \
xe_mocs.o \
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 75e753e0a682..86a7b7065122 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -42,6 +42,7 @@
#include "xe_hw_engine_group.h"
#include "xe_hwmon.h"
#include "xe_irq.h"
+#include "xe_late_bind_fw.h"
#include "xe_memirq.h"
#include "xe_mmio.h"
#include "xe_module.h"
@@ -889,6 +890,8 @@ int xe_device_probe(struct xe_device *xe)
if (err)
return err;
+ xe_late_bind_init(&xe->late_bind);
+
err = xe_oa_init(xe);
if (err)
return err;
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 495bc00ebed4..57b63cc9b8ac 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -16,6 +16,7 @@
#include "xe_devcoredump_types.h"
#include "xe_heci_gsc.h"
#include "xe_lmtt_types.h"
+#include "xe_late_bind_fw_types.h"
#include "xe_memirq_types.h"
#include "xe_oa_types.h"
#include "xe_platform_types.h"
@@ -543,6 +544,9 @@ struct xe_device {
/** @heci_gsc: graphics security controller */
struct xe_heci_gsc heci_gsc;
+ /** @late_bind: xe mei late bind interface */
+ struct xe_late_bind late_bind;
+
/** @oa: oa observation subsystem */
struct xe_oa oa;
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
new file mode 100644
index 000000000000..7981fc500a78
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -0,0 +1,104 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2024 Intel Corporation
+ */
+
+#include <linux/component.h>
+#include <linux/delay.h>
+
+#include <drm/drm_managed.h>
+#include <drm/intel/i915_component.h>
+#include <drm/intel/xe_late_bind_mei_interface.h>
+#include <drm/drm_print.h>
+
+#include "xe_device.h"
+#include "xe_late_bind_fw.h"
+
+static struct xe_device *
+late_bind_to_xe(struct xe_late_bind *late_bind)
+{
+ return container_of(late_bind, struct xe_device, late_bind);
+}
+
+static int xe_late_bind_component_bind(struct device *xe_kdev,
+ struct device *mei_kdev, void *data)
+{
+ struct xe_device *xe = kdev_to_xe_device(xe_kdev);
+ struct xe_late_bind *late_bind = &xe->late_bind;
+ struct xe_late_bind_component *component;
+
+ component = drmm_kzalloc(&xe->drm, sizeof(*component), GFP_KERNEL);
+
+ mutex_lock(&late_bind->mutex);
+ component->mei_dev = mei_kdev;
+ component->ops = data;
+ mutex_unlock(&late_bind->mutex);
+
+ late_bind->component = component;
+
+ return 0;
+}
+
+static void xe_late_bind_component_unbind(struct device *xe_kdev,
+ struct device *mei_kdev, void *data)
+{
+ struct xe_device *xe = kdev_to_xe_device(xe_kdev);
+ struct xe_late_bind *late_bind = &xe->late_bind;
+
+ mutex_lock(&late_bind->mutex);
+ late_bind->component = NULL;
+ mutex_unlock(&late_bind->mutex);
+}
+
+static const struct component_ops xe_late_bind_component_ops = {
+ .bind = xe_late_bind_component_bind,
+ .unbind = xe_late_bind_component_unbind,
+};
+
+/**
+ * xe_late_bind_init() - add xe mei late binding component
+ *
+ * Return: 0 if the initialization was successful, a negative errno otherwise.
+ */
+int xe_late_bind_init(struct xe_late_bind *late_bind)
+{
+ struct xe_device *xe = late_bind_to_xe(late_bind);
+ int err;
+
+ if (xe->info.platform != XE_BATTLEMAGE)
+ return 0;
+
+ mutex_init(&late_bind->mutex);
+
+ if (!IS_ENABLED(CONFIG_INTEL_MEI_LATE_BIND)) {
+ drm_info(&xe->drm, "Can't init xe mei late bind missing mei component\n");
+ return -ENODEV;
+ }
+
+ err = component_add_typed(xe->drm.dev, &xe_late_bind_component_ops,
+ I915_COMPONENT_LATE_BIND);
+ if (err < 0) {
+ drm_info(&xe->drm, "Failed to add mei late bind component (%pe)\n", ERR_PTR(err));
+ return err;
+ }
+
+ late_bind->component_added = true;
+
+ /* the component must be removed before unload, so can't use drmm for cleanup */
+
+ return 0;
+}
+
+/**
+ * xe_late_bind_remove() - remove the xe mei late binding component
+ */
+void xe_late_bind_remove(struct xe_late_bind *late_bind)
+{
+ struct xe_device *xe = late_bind_to_xe(late_bind);
+
+ if (!late_bind->component_added)
+ return;
+
+ component_del(xe->drm.dev, &xe_late_bind_component_ops);
+ late_bind->component_added = false;
+}
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.h b/drivers/gpu/drm/xe/xe_late_bind_fw.h
new file mode 100644
index 000000000000..21299de54b47
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_LATE_BIND_FW_H_
+#define _XE_LATE_BIND_FW_H_
+
+#include <linux/types.h>
+
+struct xe_late_bind;
+
+int xe_late_bind_init(struct xe_late_bind *late_bind);
+void xe_late_bind_remove(struct xe_late_bind *late_bind);
+
+#endif
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw_types.h b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
new file mode 100644
index 000000000000..ea11061ce556
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
@@ -0,0 +1,95 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_MEI_LATE_BIND_TYPES_H_
+#define _XE_MEI_LATE_BIND_TYPES_H_
+
+#include <linux/iosys-map.h>
+#include <linux/mutex.h>
+#include <linux/spinlock.h>
+#include <linux/types.h>
+#include <linux/workqueue.h>
+
+#define MAX_PAYLOAD_SIZE (1024 * 4)
+
+struct xe_bo;
+struct xe_late_bind_component;
+
+/**
+ * xe_late_bind_fw_type - enum to determine late binding fw type
+ */
+enum xe_late_bind_type {
+ CSC_LATE_BINDING_TYPE_FAN_CONTROL = 1,
+ CSC_LATE_BINDING_TYPE_VOLTAGE_REGULATOR
+};
+
+/**
+ * Late Binding flags
+ */
+enum csc_late_binding_flags {
+ /** Persistent across warm reset */
+ CSC_LATE_BINDING_FLAGS_IS_PERSISTENT = 0x1
+};
+
+/**
+ * xe_late_bind_fw_id - enum to determine late binding fw index
+ */
+enum xe_late_bind_fw_id {
+ FAN_CONTROL_ID = 0,
+ VOLTAGE_REGULATOR_ID,
+ MAX_ID
+};
+
+/**
+ * struct xe_late_bind_fw
+ */
+struct xe_late_bind_fw {
+ /** @late_bind_fw.valid */
+ bool valid;
+
+ /** @late_bind_fw.id */
+ u32 id;
+
+ /** @late_bind_fw.blob_path: late binding fw blob path */
+ char blob_path[PATH_MAX];
+
+ /** @late_bind_fw.type */
+ u32 type;
+
+ /** @late_bind_fw.type */
+ u32 flags;
+
+ /** @late_bind_fw.payload: to store the late binding blob */
+ u8 payload[MAX_PAYLOAD_SIZE];
+
+ /** @late_bind_fw.payload_size: late binding blob payload_size */
+ size_t payload_size;
+
+ /** @late_bind_fw.work: worker to upload latebind blob */
+ struct work_struct work;
+};
+
+/**
+ * struct xe_late_bind
+ */
+struct xe_late_bind {
+ /** @late_bind.component: struct for communication with mei component */
+ struct xe_late_bind_component *component;
+
+ /** @late_bind.component_added: whether the component has been added */
+ bool component_added;
+
+ /** @late_bind.wq: workqueue to submit request to download late bind blob */
+ struct workqueue_struct *wq;
+
+ /** @late_bind.mutex: protects the component binding and usage */
+ struct mutex mutex;
+
+ /** @late_bind.late_bind_fw: late binding firmwares */
+ struct xe_late_bind_fw late_bind_fw[MAX_ID];
+
+};
+
+#endif
--
2.34.1
^ permalink raw reply related [flat|nested] 39+ messages in thread
* [RFC 4/9] drm/xe/xe_late_bind_fw: Initialize late binding firmware
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (2 preceding siblings ...)
2025-04-29 16:09 ` [RFC 3/9] drm/xe/late_bind_fw: Introducing late_bind_fw Badal Nilawar
@ 2025-04-29 16:09 ` Badal Nilawar
2025-05-07 23:11 ` Daniele Ceraolo Spurio
2025-04-29 16:09 ` [RFC 5/9] drm/xe/xe_late_bind_fw: Load " Badal Nilawar
` (13 subsequent siblings)
17 siblings, 1 reply; 39+ messages in thread
From: Badal Nilawar @ 2025-04-29 16:09 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh,
daniele.ceraolospurio
Search for late binding firmware binaries and populate the meta data of
firmware structures.
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 2 +
drivers/gpu/drm/xe/xe_late_bind_fw.c | 101 ++++++++++++++++++++++++++-
drivers/gpu/drm/xe/xe_late_bind_fw.h | 1 +
3 files changed, 101 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 86a7b7065122..d83864e7189c 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -892,6 +892,8 @@ int xe_device_probe(struct xe_device *xe)
xe_late_bind_init(&xe->late_bind);
+ xe_late_bind_fw_init(&xe->late_bind);
+
err = xe_oa_init(xe);
if (err)
return err;
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
index 7981fc500a78..297238fd3d16 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -5,6 +5,7 @@
#include <linux/component.h>
#include <linux/delay.h>
+#include <linux/firmware.h>
#include <drm/drm_managed.h>
#include <drm/intel/i915_component.h>
@@ -13,13 +14,108 @@
#include "xe_device.h"
#include "xe_late_bind_fw.h"
+#include "xe_pcode.h"
+#include "xe_pcode_api.h"
-static struct xe_device *
-late_bind_to_xe(struct xe_late_bind *late_bind)
+static const char * const fw_id_to_name[] = {
+ [FAN_CONTROL_ID] = "fan_control",
+ [VOLTAGE_REGULATOR_ID] = "voltage_regulator",
+ };
+
+static const u32 fw_id_to_type[] = {
+ [FAN_CONTROL_ID] = CSC_LATE_BINDING_TYPE_FAN_CONTROL,
+ [VOLTAGE_REGULATOR_ID] = CSC_LATE_BINDING_TYPE_VOLTAGE_REGULATOR
+ };
+
+static struct xe_device *late_bind_to_xe(struct xe_late_bind *late_bind)
{
return container_of(late_bind, struct xe_device, late_bind);
}
+static int late_bind_fw_num_fans(struct xe_late_bind *late_bind)
+{
+ struct xe_device *xe = late_bind_to_xe(late_bind);
+ struct xe_tile *root_tile = xe_device_get_root_tile(xe);
+ u32 uval;
+
+ if (!xe_pcode_read(root_tile,
+ PCODE_MBOX(FAN_SPEED_CONTROL, FSC_READ_NUM_FANS, 0), &uval, NULL))
+ return uval;
+ else
+ return 0;
+}
+
+static int late_bind_fw_init(struct xe_late_bind *late_bind, u32 id)
+{
+ struct xe_device *xe = late_bind_to_xe(late_bind);
+ struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+ struct xe_late_bind_fw *lb_fw;
+ const struct firmware *fw;
+ u32 num_fans;
+ int ret;
+
+ if (!late_bind->component_added)
+ return 0;
+
+ if (id >= MAX_ID)
+ return -EINVAL;
+
+ lb_fw = &late_bind->late_bind_fw[id];
+
+ lb_fw->id = id;
+ lb_fw->type = fw_id_to_type[id];
+
+ if (lb_fw->type == CSC_LATE_BINDING_TYPE_FAN_CONTROL) {
+ num_fans = late_bind_fw_num_fans(late_bind);
+ drm_dbg(&xe->drm, "Number of Fans: %d\n", num_fans);
+ if (!num_fans)
+ return 0;
+ }
+
+ lb_fw->flags = CSC_LATE_BINDING_FLAGS_IS_PERSISTENT;
+
+ snprintf(lb_fw->blob_path, sizeof(lb_fw->blob_path), "xe/%s_8086_%04x_%04x_%04x.bin",
+ fw_id_to_name[id], pdev->device,
+ pdev->subsystem_vendor, pdev->subsystem_device);
+
+ drm_dbg(&xe->drm, "Request late binding firmware %s\n", lb_fw->blob_path);
+ ret = request_firmware(&fw, lb_fw->blob_path, xe->drm.dev);
+ if (ret) {
+ drm_err(&xe->drm, "Failed to request %s\n", lb_fw->blob_path);
+ lb_fw->valid = false;
+ return 0;
+ }
+
+ if (fw->size > MAX_PAYLOAD_SIZE)
+ lb_fw->payload_size = MAX_PAYLOAD_SIZE;
+ else
+ lb_fw->payload_size = fw->size;
+
+ memcpy(lb_fw->payload, fw->data, lb_fw->payload_size);
+ release_firmware(fw);
+ lb_fw->valid = true;
+
+ return 0;
+}
+
+/**
+ * xe_mei_late_bind_fw_init() - Initialize late bind firmware
+ *
+ * Return: 0 if the initialization was successful, a negative errno otherwise.
+ */
+int xe_late_bind_fw_init(struct xe_late_bind *late_bind)
+{
+ int id;
+ int ret;
+
+ for (id = 0; id < MAX_ID; id++) {
+ ret = late_bind_fw_init(late_bind, id);
+ if (ret)
+ return ret;
+ }
+ return ret;
+}
+
static int xe_late_bind_component_bind(struct device *xe_kdev,
struct device *mei_kdev, void *data)
{
@@ -83,7 +179,6 @@ int xe_late_bind_init(struct xe_late_bind *late_bind)
}
late_bind->component_added = true;
-
/* the component must be removed before unload, so can't use drmm for cleanup */
return 0;
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.h b/drivers/gpu/drm/xe/xe_late_bind_fw.h
index 21299de54b47..e88c637b15a6 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.h
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.h
@@ -12,5 +12,6 @@ struct xe_late_bind;
int xe_late_bind_init(struct xe_late_bind *late_bind);
void xe_late_bind_remove(struct xe_late_bind *late_bind);
+int xe_late_bind_fw_init(struct xe_late_bind *late_bind);
#endif
--
2.34.1
^ permalink raw reply related [flat|nested] 39+ messages in thread
* [RFC 5/9] drm/xe/xe_late_bind_fw: Load late binding firmware
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (3 preceding siblings ...)
2025-04-29 16:09 ` [RFC 4/9] drm/xe/xe_late_bind_fw: Initialize late binding firmware Badal Nilawar
@ 2025-04-29 16:09 ` Badal Nilawar
2025-05-07 23:44 ` Daniele Ceraolo Spurio
2025-04-29 16:09 ` [RFC 6/9] drm/xe/xe_late_bind_fw: Reload late binding fw in rpm resume Badal Nilawar
` (12 subsequent siblings)
17 siblings, 1 reply; 39+ messages in thread
From: Badal Nilawar @ 2025-04-29 16:09 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh,
daniele.ceraolospurio
Load late binding firmware
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 2 +
drivers/gpu/drm/xe/xe_late_bind_fw.c | 91 +++++++++++++++++++++++++++-
drivers/gpu/drm/xe/xe_late_bind_fw.h | 1 +
3 files changed, 92 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index d83864e7189c..30a416323b37 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -894,6 +894,8 @@ int xe_device_probe(struct xe_device *xe)
xe_late_bind_fw_init(&xe->late_bind);
+ xe_late_bind_fw_load(&xe->late_bind);
+
err = xe_oa_init(xe);
if (err)
return err;
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
index 297238fd3d16..7d2bc959027d 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -16,6 +16,16 @@
#include "xe_late_bind_fw.h"
#include "xe_pcode.h"
#include "xe_pcode_api.h"
+#include "xe_pm.h"
+
+/*
+ * The component should load quite quickly in most cases, but it could take
+ * a bit. Using a very big timeout just to cover the worst case scenario
+ */
+#define LB_INIT_TIMEOUT_MS 20000
+
+#define LB_FW_LOAD_RETRY_MAXCOUNT 40
+#define LB_FW_LOAD_RETRY_PAUSE_MS 50
static const char * const fw_id_to_name[] = {
[FAN_CONTROL_ID] = "fan_control",
@@ -45,6 +55,78 @@ static int late_bind_fw_num_fans(struct xe_late_bind *late_bind)
return 0;
}
+static void late_bind_work(struct work_struct *work)
+{
+ struct xe_late_bind_fw *lbfw = container_of(work, struct xe_late_bind_fw, work);
+ struct xe_late_bind *late_bind = container_of(lbfw, struct xe_late_bind,
+ late_bind_fw[lbfw->id]);
+ struct xe_device *xe = late_bind_to_xe(late_bind);
+ int retry = LB_FW_LOAD_RETRY_MAXCOUNT;
+ int ret;
+ int slept;
+
+ if (!late_bind->component_added)
+ return;
+
+ if (!lbfw->valid)
+ return;
+
+ /* we can queue this before the component is bound */
+ for (slept = 0; slept < LB_INIT_TIMEOUT_MS; slept += 100) {
+ if (late_bind->component)
+ break;
+ msleep(100);
+ }
+
+ xe_pm_runtime_get(xe);
+ mutex_lock(&late_bind->mutex);
+ drm_dbg(&xe->drm, "Load %s firmware\n", fw_id_to_name[lbfw->id]);
+
+ do {
+ ret = late_bind->component->ops->push_config(late_bind->component->mei_dev,
+ lbfw->type, lbfw->flags,
+ lbfw->payload, lbfw->payload_size);
+ if (!ret)
+ break;
+ msleep(LB_FW_LOAD_RETRY_PAUSE_MS);
+ } while (--retry && ret == -EAGAIN);
+
+ if (ret)
+ drm_err(&xe->drm, "Load %s firmware failed with err %d\n",
+ fw_id_to_name[lbfw->id], ret);
+ else
+ drm_dbg(&xe->drm, "Load %s firmware successful\n",
+ fw_id_to_name[lbfw->id]);
+
+ mutex_unlock(&late_bind->mutex);
+ xe_pm_runtime_put(xe);
+}
+
+int xe_late_bind_fw_load(struct xe_late_bind *late_bind)
+{
+ struct xe_device *xe = late_bind_to_xe(late_bind);
+ struct xe_late_bind_fw *lbfw;
+ int id;
+
+ if (!late_bind->component_added)
+ return -EINVAL;
+
+ for (id = 0; id < MAX_ID; id++) {
+ lbfw = &late_bind->late_bind_fw[id];
+ if (lbfw->valid) {
+ drm_dbg(&xe->drm, "Queue work: to load %s firmware\n",
+ fw_id_to_name[lbfw->id]);
+ queue_work(late_bind->wq, &lbfw->work);
+ }
+ }
+ return 0;
+}
+
+/**
+ * late_bind_fw_init() - initialize late bind firmware
+ *
+ * Return: 0 if the initialization was successful, a negative errno otherwise.
+ */
static int late_bind_fw_init(struct xe_late_bind *late_bind, u32 id)
{
struct xe_device *xe = late_bind_to_xe(late_bind);
@@ -93,6 +175,7 @@ static int late_bind_fw_init(struct xe_late_bind *late_bind, u32 id)
memcpy(lb_fw->payload, fw->data, lb_fw->payload_size);
release_firmware(fw);
+ INIT_WORK(&lb_fw->work, late_bind_work);
lb_fw->valid = true;
return 0;
@@ -108,12 +191,17 @@ int xe_late_bind_fw_init(struct xe_late_bind *late_bind)
int id;
int ret;
+ late_bind->wq = create_singlethread_workqueue("late-bind-ordered-wq");
+ if (!late_bind->wq)
+ return -ENOMEM;
+
for (id = 0; id < MAX_ID; id++) {
ret = late_bind_fw_init(late_bind, id);
if (ret)
return ret;
}
- return ret;
+
+ return 0;
}
static int xe_late_bind_component_bind(struct device *xe_kdev,
@@ -179,7 +267,6 @@ int xe_late_bind_init(struct xe_late_bind *late_bind)
}
late_bind->component_added = true;
- /* the component must be removed before unload, so can't use drmm for cleanup */
return 0;
}
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.h b/drivers/gpu/drm/xe/xe_late_bind_fw.h
index e88c637b15a6..edd0e4c0650e 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.h
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.h
@@ -13,5 +13,6 @@ struct xe_late_bind;
int xe_late_bind_init(struct xe_late_bind *late_bind);
void xe_late_bind_remove(struct xe_late_bind *late_bind);
int xe_late_bind_fw_init(struct xe_late_bind *late_bind);
+int xe_late_bind_fw_load(struct xe_late_bind *late_bind);
#endif
--
2.34.1
^ permalink raw reply related [flat|nested] 39+ messages in thread
* [RFC 6/9] drm/xe/xe_late_bind_fw: Reload late binding fw in rpm resume
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (4 preceding siblings ...)
2025-04-29 16:09 ` [RFC 5/9] drm/xe/xe_late_bind_fw: Load " Badal Nilawar
@ 2025-04-29 16:09 ` Badal Nilawar
2025-04-29 16:09 ` [RFC 7/9] drm/xe/xe_late_bind_fw: Reload late binding fw in S2Idle/S3 resume Badal Nilawar
` (11 subsequent siblings)
17 siblings, 0 replies; 39+ messages in thread
From: Badal Nilawar @ 2025-04-29 16:09 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh,
daniele.ceraolospurio
Reload late binding fw during runtime resume.
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/xe_pm.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index 38514cef817e..da7ee67eefd1 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -21,6 +21,7 @@
#include "xe_gt.h"
#include "xe_guc.h"
#include "xe_irq.h"
+#include "xe_late_bind_fw.h"
#include "xe_pcode.h"
#include "xe_pxp.h"
#include "xe_trace.h"
@@ -556,6 +557,9 @@ int xe_pm_runtime_resume(struct xe_device *xe)
xe_pxp_pm_resume(xe->pxp);
+ if (xe->d3cold.allowed)
+ xe_late_bind_fw_load(&xe->late_bind);
+
out:
xe_rpm_lockmap_release(xe);
xe_pm_write_callback_task(xe, NULL);
--
2.34.1
^ permalink raw reply related [flat|nested] 39+ messages in thread
* [RFC 7/9] drm/xe/xe_late_bind_fw: Reload late binding fw in S2Idle/S3 resume
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (5 preceding siblings ...)
2025-04-29 16:09 ` [RFC 6/9] drm/xe/xe_late_bind_fw: Reload late binding fw in rpm resume Badal Nilawar
@ 2025-04-29 16:09 ` Badal Nilawar
2025-04-29 16:09 ` [RFC 8/9] drm/xe/xe_late_bind_fw: Introduce debug fs node to disable late binding Badal Nilawar
` (10 subsequent siblings)
17 siblings, 0 replies; 39+ messages in thread
From: Badal Nilawar @ 2025-04-29 16:09 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh,
daniele.ceraolospurio
Reload late binding fw during S2Idle/S3 resume.
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/xe_pm.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index da7ee67eefd1..d0a3019caa34 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -206,6 +206,9 @@ int xe_pm_resume(struct xe_device *xe)
xe_pxp_pm_resume(xe->pxp);
+ if (xe->d3cold.allowed)
+ xe_late_bind_fw_load(&xe->late_bind);
+
drm_dbg(&xe->drm, "Device resumed\n");
return 0;
err:
--
2.34.1
^ permalink raw reply related [flat|nested] 39+ messages in thread
* [RFC 8/9] drm/xe/xe_late_bind_fw: Introduce debug fs node to disable late binding
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (6 preceding siblings ...)
2025-04-29 16:09 ` [RFC 7/9] drm/xe/xe_late_bind_fw: Reload late binding fw in S2Idle/S3 resume Badal Nilawar
@ 2025-04-29 16:09 ` Badal Nilawar
2025-04-29 16:09 ` [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl Badal Nilawar
` (9 subsequent siblings)
17 siblings, 0 replies; 39+ messages in thread
From: Badal Nilawar @ 2025-04-29 16:09 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh,
daniele.ceraolospurio
Introduce a debug filesystem node to disable late binding fw reload
during the system or runtime resume. This is intended for situations
where the late binding fw needs to be loaded from user mode.
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/xe_debugfs.c | 42 ++++++++++++++++++++++
drivers/gpu/drm/xe/xe_late_bind_fw.c | 3 ++
drivers/gpu/drm/xe/xe_late_bind_fw_types.h | 2 ++
3 files changed, 47 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index d0503959a8ed..7f238a9e1a49 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -185,12 +185,51 @@ static ssize_t wedged_mode_set(struct file *f, const char __user *ubuf,
return size;
}
+static ssize_t disable_late_binding_show(struct file *f, char __user *ubuf,
+ size_t size, loff_t *pos)
+{
+ struct xe_device *xe = file_inode(f)->i_private;
+ struct xe_late_bind *late_bind = &xe->late_bind;
+ char buf[32];
+ int len;
+
+ len = scnprintf(buf, sizeof(buf), "%d\n", late_bind->disable);
+
+ return simple_read_from_buffer(ubuf, size, pos, buf, len);
+}
+
+static ssize_t disable_late_binding_set(struct file *f, const char __user *ubuf,
+ size_t size, loff_t *pos)
+{
+ struct xe_device *xe = file_inode(f)->i_private;
+ struct xe_late_bind *late_bind = &xe->late_bind;
+ u32 uval;
+ ssize_t ret;
+
+ ret = kstrtouint_from_user(ubuf, size, sizeof(uval), &uval);
+ if (ret)
+ return ret;
+
+ if (uval > 1)
+ return -EINVAL;
+
+ late_bind->disable = (uval == 1) ? true : false;
+
+ return size;
+}
+
static const struct file_operations wedged_mode_fops = {
.owner = THIS_MODULE,
.read = wedged_mode_show,
.write = wedged_mode_set,
};
+static const struct file_operations disable_late_binding_fops = {
+ .owner = THIS_MODULE,
+ .read = disable_late_binding_show,
+ .write = disable_late_binding_set,
+};
+
void xe_debugfs_register(struct xe_device *xe)
{
struct ttm_device *bdev = &xe->ttm;
@@ -211,6 +250,9 @@ void xe_debugfs_register(struct xe_device *xe)
debugfs_create_file("wedged_mode", 0600, root, xe,
&wedged_mode_fops);
+ debugfs_create_file("disable_late_binding", 0600, root, xe,
+ &disable_late_binding_fops);
+
for (mem_type = XE_PL_VRAM0; mem_type <= XE_PL_VRAM1; ++mem_type) {
man = ttm_manager_type(bdev, mem_type);
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
index 7d2bc959027d..1626cf793b23 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -111,6 +111,9 @@ int xe_late_bind_fw_load(struct xe_late_bind *late_bind)
if (!late_bind->component_added)
return -EINVAL;
+ if (late_bind->disable)
+ return 0;
+
for (id = 0; id < MAX_ID; id++) {
lbfw = &late_bind->late_bind_fw[id];
if (lbfw->valid) {
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw_types.h b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
index ea11061ce556..ccd482e67f91 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
@@ -90,6 +90,8 @@ struct xe_late_bind {
/** @late_bind.late_bind_fw: late binding firmwares */
struct xe_late_bind_fw late_bind_fw[MAX_ID];
+ /** @late_bind.disable to block late binding reload during pm resume flow*/
+ bool disable;
};
#endif
--
2.34.1
^ permalink raw reply related [flat|nested] 39+ messages in thread
* [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (7 preceding siblings ...)
2025-04-29 16:09 ` [RFC 8/9] drm/xe/xe_late_bind_fw: Introduce debug fs node to disable late binding Badal Nilawar
@ 2025-04-29 16:09 ` Badal Nilawar
2025-05-01 15:44 ` Rodrigo Vivi
2025-05-06 18:13 ` Jason Gunthorpe
2025-04-29 16:13 ` ✓ CI.Patch_applied: success for Introducing firmware late binding (rev2) Patchwork
` (8 subsequent siblings)
17 siblings, 2 replies; 39+ messages in thread
From: Badal Nilawar @ 2025-04-29 16:09 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh,
daniele.ceraolospurio
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Xe PCODE FWCTL implements the generic FWCTL IOCLTs to allow limited
access from user space (as admin) to some very specific PCODE
Mailboxes only related to hardware configuration.
PCODE is a Firmware in Intel GPUs which is the main responsible
component for power and thermal aspects of the Intel GPUs.
Each different Intel GPU came with different PCODE versions with
different mailboxes and different needs. In the lack of an unified
interface, the per platform sysfs entries at the device level is
trending to grow, to allow admins to control different aspects of
the Hardware.
In this first experiment, xe_pcode_fwctl only adds support for the
Battlemage late-binding firmware information.
Late-binding is the name given to 2 other new auxiliary firmware
blobs that for now lives in the Flash like PCODE, but that soon
it is coming to linux-firmware.git: Fan-controller and
Voltage-regulator. Then, PCODE provides some mailboxes where the
status of both late-binding firmware can be queried as specified
in the documentation that is added along with the new uAPI here.
RFC IMPORTANT NOTE:
===================
Admins will need to query this information. This code here aims
to be used by Level0-Sysman and/or Intel XPU Manager directly
from user space. But following the drm upstream rules, the
userspace code will need to be ready before we can consider
getting this patch merged!
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
Documentation/userspace-api/fwctl/index.rst | 1 +
drivers/gpu/drm/xe/Kconfig | 1 +
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/xe_pci.c | 5 +
drivers/gpu/drm/xe/xe_pcode_fwctl.c | 218 ++++++++++++++++++++
drivers/gpu/drm/xe/xe_pcode_fwctl.h | 13 ++
include/uapi/fwctl/fwctl.h | 1 +
include/uapi/fwctl/xe_pcode.h | 80 +++++++
8 files changed, 320 insertions(+)
create mode 100644 drivers/gpu/drm/xe/xe_pcode_fwctl.c
create mode 100644 drivers/gpu/drm/xe/xe_pcode_fwctl.h
create mode 100644 include/uapi/fwctl/xe_pcode.h
diff --git a/Documentation/userspace-api/fwctl/index.rst b/Documentation/userspace-api/fwctl/index.rst
index 316ac456ad3b..186f8cf17583 100644
--- a/Documentation/userspace-api/fwctl/index.rst
+++ b/Documentation/userspace-api/fwctl/index.rst
@@ -12,3 +12,4 @@ to securely construct and execute RPCs inside device firmware.
fwctl
fwctl-cxl
pds_fwctl
+ xe_pcode_fwctl
diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
index a8cc1876a24f..ee77039b9256 100644
--- a/drivers/gpu/drm/xe/Kconfig
+++ b/drivers/gpu/drm/xe/Kconfig
@@ -45,6 +45,7 @@ config DRM_XE
select AUXILIARY_BUS
select HMM_MIRROR
select INTEL_MEI_LATE_BIND
+ select FWCTL
help
Experimental driver for Intel Xe series GPUs
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 6de291a21965..c1f3b2e2da5f 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -86,6 +86,7 @@ xe-y += xe_bb.o \
xe_pat.o \
xe_pci.o \
xe_pcode.o \
+ xe_pcode_fwctl.o \
xe_pm.o \
xe_preempt_fence.o \
xe_pt.o \
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 882398e09b7e..222e75c7427e 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -27,6 +27,7 @@
#include "xe_module.h"
#include "xe_pci_sriov.h"
#include "xe_pci_types.h"
+#include "xe_pcode_fwctl.h"
#include "xe_pm.h"
#include "xe_sriov.h"
#include "xe_step.h"
@@ -868,6 +869,10 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (err)
goto err_driver_cleanup;
+ err = xe_pcode_fwctl_init(xe);
+ if (err)
+ goto err_driver_cleanup;
+
drm_dbg(&xe->drm, "d3cold: capable=%s\n",
str_yes_no(xe->d3cold.capable));
diff --git a/drivers/gpu/drm/xe/xe_pcode_fwctl.c b/drivers/gpu/drm/xe/xe_pcode_fwctl.c
new file mode 100644
index 000000000000..d6443aa4a60a
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_pcode_fwctl.c
@@ -0,0 +1,218 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#include "xe_pcode_fwctl.h"
+
+#include <linux/fwctl.h>
+#include <uapi/fwctl/xe_pcode.h>
+
+#include "xe_device.h"
+#include "xe_pcode_api.h"
+#include "xe_pcode.h"
+#include "xe_pm.h"
+
+/**
+ * DOC: XE PCODE FWCTL
+ *
+ * Xe PCODE FWCTL implements the generic FWCTL IOCLTs to allow limited access
+ * from user space (as admin) to some very specific PCODE Mailboxes.
+ *
+ * User space first needs to issue the ```FWCTL_INFO``` ioctl and check for the
+ * capability flag, which will indicate which group of Mailboxes commands are
+ * supported on that current running firmware.
+ *
+ * After verifying the availability of the desired Mailbox command,
+ * ```FWCTL_RPC``` needs to be issued with in and out parameter both using
+ * pointers to a ```struct fwctl_rpc_xe_pcode``` allocated by userspace.
+ * In and out length needs to be sizeof(struct fwctl_rpc_xe_pcode).
+ *
+ * Any command that is not listed in the include/uapi/fwctl/xe_pcode.h or not
+ * supported by the running firmware, will return ERR_PTR(-EBADMSG).
+ *
+ * Example:
+ *
+ * .. code-block:: C
+ *
+ * struct fwctl_info_xe_pcode xe_pcode_info;
+ *
+ * struct fwctl_info info = {
+ * .size = sizeof(struct fwctl_info),
+ * .flags = 0,
+ * .out_device_type = 0,
+ * .device_data_len = sizeof(struct fwctl_info_xe_pcode),
+ * .out_device_data = (__aligned_u64) &xe_pcode_info,
+ * };
+ *
+ * fd = open("/dev/fwctl/fwctl0", O_RDWR);
+ * if (fd < 0) {
+ * perror("Failed to open /dev/fwctl/fwctl0");
+ * return -1;
+ * }
+ *
+ * if (ioctl(fd, FWCTL_INFO, &info)) {
+ * perror("ioctl(FWCTL_INFO) failed");
+ * close(fd);
+ * return -1;
+ * }
+ *
+ * if (xe_pcode_info.uctx_caps & FWCTL_XE_PCODE_LATEBINDING) {
+ * struct fwctl_rpc_xe_pcode rpc_in = {
+ * .command = PCODE_CMD_LATE_BINDING,
+ * .param1 = PARAM1_GET_CAPABILITY_STATUS,
+ * };
+ *
+ * struct fwctl_rpc_xe_pcode rpc_out = {0};
+ *
+ * struct fwctl_rpc rpc = {
+ * .size = sizeof(struct fwctl_rpc),
+ * .scope = FWCTL_RPC_CONFIGURATION,
+ * .in_len = sizeof(struct fwctl_rpc_xe_pcode),
+ * .out_len = sizeof(struct fwctl_rpc_xe_pcode),
+ * .in = (__aligned_u64) &rpc_in,
+ * .out = (__aligned_u64) &rpc_out,
+ * };
+ *
+ * if (ioctl(fd, FWCTL_RPC, &rpc)) {
+ * perror("ioctl(FWCTL_RPC) failed");
+ * close(fd);
+ * return -1;
+ * }
+ *
+ */
+
+struct xe_pcode_fwctl_dev {
+ struct fwctl_device fwctl;
+ struct xe_device *xe;
+};
+
+DEFINE_FREE(xe_pcode_fwctl, struct xe_pcode_fwctl_dev *, if (_T) fwctl_put(&_T->fwctl))
+
+static int xe_pcode_fwctl_uctx_open(struct fwctl_uctx *uctx)
+{
+ struct xe_pcode_fwctl_dev *fwctl_dev =
+ container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
+ struct xe_device *xe = fwctl_dev->xe;
+
+ xe_pm_runtime_get(xe);
+
+ return 0;
+}
+
+static void xe_pcode_fwctl_uctx_close(struct fwctl_uctx *uctx)
+{
+ struct xe_pcode_fwctl_dev *fwctl_dev =
+ container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
+ struct xe_device *xe = fwctl_dev->xe;
+
+ xe_pm_runtime_put(xe);
+}
+
+static void *xe_pcode_fwctl_info(struct fwctl_uctx *uctx, size_t *length)
+{
+ struct xe_pcode_fwctl_dev *fwctl_dev =
+ container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
+ struct xe_device *xe = fwctl_dev->xe;
+ struct fwctl_info_xe_pcode *info;
+
+ info = kzalloc(sizeof(*info), GFP_KERNEL);
+ if (!info)
+ return ERR_PTR(-ENOMEM);
+
+ if (xe->info.platform == XE_BATTLEMAGE)
+ info->uctx_caps = FWCTL_XE_PCODE_LATEBINDING;
+
+ *length = sizeof(*info);
+
+ return info;
+}
+
+static bool xe_pcode_fwctl_rpc_validate(struct fwctl_rpc_xe_pcode *rpc,
+ enum fwctl_rpc_scope scope)
+{
+ u32 mbox = PCODE_MBOX(rpc->command, rpc->param1, rpc->param2);
+
+ if (mbox == PCODE_MBOX(PCODE_CMD_LATE_BINDING,
+ PARAM1_GET_CAPABILITY_STATUS, 0))
+ return scope == FWCTL_RPC_CONFIGURATION;
+
+ if (mbox == PCODE_MBOX(PCODE_CMD_LATE_BINDING,
+ PARAM1_GET_VERSION_LOW, 0))
+ return (rpc->data0 == DATA0_TYPE_FAN_CONTROLLER ||
+ rpc->data0 == DATA0_TYPE_VOLTAGE_REGULATOR) &&
+ scope == FWCTL_RPC_CONFIGURATION;
+
+ return false;
+}
+
+static void *xe_pcode_fwctl_rpc(struct fwctl_uctx *uctx,
+ enum fwctl_rpc_scope scope,
+ void *in, size_t in_len, size_t *out_len)
+{
+ struct xe_pcode_fwctl_dev *fwctl_dev =
+ container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
+ struct xe_tile *root_tile = xe_device_get_root_tile(fwctl_dev->xe);
+ struct fwctl_rpc_xe_pcode *rpc = in;
+ int err;
+
+ if (in_len != sizeof(struct fwctl_rpc_xe_pcode) ||
+ *out_len != sizeof(struct fwctl_rpc_xe_pcode))
+ return ERR_PTR(-EMSGSIZE);
+
+ if (!xe_pcode_fwctl_rpc_validate(rpc, scope))
+ return ERR_PTR(-EBADMSG);
+
+ err = xe_pcode_read(root_tile, PCODE_MBOX(rpc->command,
+ rpc->param1,
+ rpc->param2),
+ &rpc->data0,
+ &rpc->data1);
+ if (err)
+ return ERR_PTR(err);
+
+ return rpc;
+}
+
+static const struct fwctl_ops xe_pcode_fwctl_ops = {
+ .device_type = FWCTL_DEVICE_TYPE_XE_PCODE,
+ .uctx_size = sizeof(struct fwctl_uctx),
+ .open_uctx = xe_pcode_fwctl_uctx_open,
+ .close_uctx = xe_pcode_fwctl_uctx_close,
+ .info = xe_pcode_fwctl_info,
+ .fw_rpc = xe_pcode_fwctl_rpc,
+};
+
+static void xe_pcode_fwctl_fini(void *dev)
+{
+ struct fwctl_device *fwctl = dev;
+
+ fwctl_unregister(fwctl);
+ fwctl_put(fwctl);
+}
+
+int xe_pcode_fwctl_init(struct xe_device *xe)
+{
+ struct xe_pcode_fwctl_dev *fwctl_dev __free(xe_pcode_fwctl) =
+ fwctl_alloc_device(xe->drm.dev, &xe_pcode_fwctl_ops,
+ struct xe_pcode_fwctl_dev, fwctl);
+ int err;
+
+ /* For now xe_pcode_fwctl supports only Late-Binding commands on BMG */
+ if (xe->info.platform != XE_BATTLEMAGE)
+ return -ENODEV;
+
+ if (!fwctl_dev)
+ return -ENOMEM;
+
+ fwctl_dev->xe = xe;
+
+ err = fwctl_register(&fwctl_dev->fwctl);
+ if (err)
+ return err;
+
+ return devm_add_action_or_reset(xe->drm.dev, xe_pcode_fwctl_fini,
+ &fwctl_dev->fwctl);
+}
+
+MODULE_IMPORT_NS("FWCTL");
diff --git a/drivers/gpu/drm/xe/xe_pcode_fwctl.h b/drivers/gpu/drm/xe/xe_pcode_fwctl.h
new file mode 100644
index 000000000000..67386d7bf2ea
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_pcode_fwctl.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_PCODE_FWCTL_H_
+#define _XE_PCODE_FWCTL_H_
+
+struct xe_device;
+
+int xe_pcode_fwctl_init(struct xe_device *xe);
+
+#endif
diff --git a/include/uapi/fwctl/fwctl.h b/include/uapi/fwctl/fwctl.h
index 716ac0eee42d..9e7e84aef791 100644
--- a/include/uapi/fwctl/fwctl.h
+++ b/include/uapi/fwctl/fwctl.h
@@ -45,6 +45,7 @@ enum fwctl_device_type {
FWCTL_DEVICE_TYPE_MLX5 = 1,
FWCTL_DEVICE_TYPE_CXL = 2,
FWCTL_DEVICE_TYPE_PDS = 4,
+ FWCTL_DEVICE_TYPE_XE_PCODE = 5,
};
/**
diff --git a/include/uapi/fwctl/xe_pcode.h b/include/uapi/fwctl/xe_pcode.h
new file mode 100644
index 000000000000..8df6db34e5ce
--- /dev/null
+++ b/include/uapi/fwctl/xe_pcode.h
@@ -0,0 +1,80 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _UAPI_FWCTL_XE_PCODE_H_
+#define _UAPI_FWCTL_XE_PCODE_H_
+
+#include <linux/types.h>
+
+/**
+ * struct fwctl_info_xe_pcode - FWCTL Information struct for Xe PCODE
+ *
+ * @uctx_caps: bitmap of available capabilities:
+ * - %FWCTL_XE_PCODE_LATEBINDING - Command to configure Late Bind FW such as
+ * Fan Controller and Voltage Regulator
+ * @rsvd: Reserved for future usage or flags
+ */
+struct fwctl_info_xe_pcode {
+ __u32 uctx_caps;
+ __u32 rsvd[3];
+};
+
+#define FWCTL_XE_PCODE_LATEBINDING (1 << 0)
+
+/**
+ * struct fwctl_rpc_xe_pcode - FWCTL Remote Procedure Calls for Xe PCODE
+ */
+struct fwctl_rpc_xe_pcode {
+ /** @command: The main Mailbox command */
+ __u8 command;
+ /** @param1: A subcommand or a parameter of the main command */
+ __u16 param1;
+ /** @param2: A parameter of a subcommand or a subsubcommand */
+ __u16 param2;
+ /** @data0: The first 32 bits of data. In general data-in as param */
+ __u32 data0;
+ /** @data1: The other 32 bits of data. In general data-out */
+ __u32 data1;
+ /** @pad: Padding the uAPI struct - Must be 0. Not sent to firmware */
+ __u8 pad[3];
+};
+
+/**
+ * DOC: Late Binding Commands
+ *
+ * FWCTL info.uctx_caps: FWCTL_XE_PCODE_LATEBINDING
+ * FWCTL rpc.scope: FWCTL_RPC_CONFIGURATION
+ *
+ * Command 0x5C - LATE_BINDING
+ * Param1 0x0 - GET_CAPABILITY_STATUS
+ * Param2 0
+ * Data in None
+ * Data out:
+ *
+ * - Bit0: ate binding for V1 Fan Tables is supported.
+ * - Bit3: Late binding for VR parameters.
+ * - Bit16: Late binding done for V1 Fan tables
+ * - Bit17: Late binding done for power co-efficients.
+ * - Bit18: Late binding done for V2 Fan tables
+ * - Bit19: Late binding done for VR Parameters
+ *
+ * Command 0x5C - LATE_BINDING
+ * Param1 0x1 - GET_VERSION_LOW
+ * Param2 0
+ * Data in - conveys the Type of the Late Binding Configuration:
+ *
+ * - FAN_CONTROLLER = 1
+ * - VOLTAGE_REGULATOR = 2
+ *
+ * Data out - Lower 32 bits of Version Number for Late Binding configuration
+ * that has been applied successfully.
+ */
+#define PCODE_CMD_LATE_BINDING 0x5C
+#define PARAM1_GET_CAPABILITY_STATUS 0x0
+#define PARAM1_GET_VERSION_LOW 0x1
+#define DATA0_TYPE_FAN_CONTROLLER 1
+#define DATA0_TYPE_VOLTAGE_REGULATOR 2
+
+#endif /* _UAPI_FWCTL_XE_PCODE_H_ */
--
2.34.1
^ permalink raw reply related [flat|nested] 39+ messages in thread
* ✓ CI.Patch_applied: success for Introducing firmware late binding (rev2)
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (8 preceding siblings ...)
2025-04-29 16:09 ` [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl Badal Nilawar
@ 2025-04-29 16:13 ` Patchwork
2025-04-29 16:14 ` ✗ CI.checkpatch: warning " Patchwork
` (7 subsequent siblings)
17 siblings, 0 replies; 39+ messages in thread
From: Patchwork @ 2025-04-29 16:13 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
== Series Details ==
Series: Introducing firmware late binding (rev2)
URL : https://patchwork.freedesktop.org/series/148394/
State : success
== Summary ==
=== Applying kernel patches on branch 'drm-tip' with base: ===
Base commit: 7b083a8df148 drm-tip: 2025y-04m-29d-15h-29m-58s UTC integration manifest
=== git am output follows ===
Applying: mei: bus: add mei_cldev_mtu interface
Applying: mei: late_bind: add late binding component driver
Applying: drm/xe/late_bind_fw: Introducing late_bind_fw
Applying: drm/xe/xe_late_bind_fw: Initialize late binding firmware
Applying: drm/xe/xe_late_bind_fw: Load late binding firmware
Applying: drm/xe/xe_late_bind_fw: Reload late binding fw in rpm resume
Applying: drm/xe/xe_late_bind_fw: Reload late binding fw in S2Idle/S3 resume
Applying: drm/xe/xe_late_bind_fw: Introduce debug fs node to disable late binding
Applying: {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
^ permalink raw reply [flat|nested] 39+ messages in thread
* ✗ CI.checkpatch: warning for Introducing firmware late binding (rev2)
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (9 preceding siblings ...)
2025-04-29 16:13 ` ✓ CI.Patch_applied: success for Introducing firmware late binding (rev2) Patchwork
@ 2025-04-29 16:14 ` Patchwork
2025-04-29 16:15 ` ✓ CI.KUnit: success " Patchwork
` (6 subsequent siblings)
17 siblings, 0 replies; 39+ messages in thread
From: Patchwork @ 2025-04-29 16:14 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
== Series Details ==
Series: Introducing firmware late binding (rev2)
URL : https://patchwork.freedesktop.org/series/148394/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
202708c00696422fd217223bb679a353a5936e23
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 4c5d32441a736462d743c1acd204db028f6aa170
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Tue Apr 29 21:39:56 2025 +0530
{fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
Xe PCODE FWCTL implements the generic FWCTL IOCLTs to allow limited
access from user space (as admin) to some very specific PCODE
Mailboxes only related to hardware configuration.
PCODE is a Firmware in Intel GPUs which is the main responsible
component for power and thermal aspects of the Intel GPUs.
Each different Intel GPU came with different PCODE versions with
different mailboxes and different needs. In the lack of an unified
interface, the per platform sysfs entries at the device level is
trending to grow, to allow admins to control different aspects of
the Hardware.
In this first experiment, xe_pcode_fwctl only adds support for the
Battlemage late-binding firmware information.
Late-binding is the name given to 2 other new auxiliary firmware
blobs that for now lives in the Flash like PCODE, but that soon
it is coming to linux-firmware.git: Fan-controller and
Voltage-regulator. Then, PCODE provides some mailboxes where the
status of both late-binding firmware can be queried as specified
in the documentation that is added along with the new uAPI here.
RFC IMPORTANT NOTE:
===================
Admins will need to query this information. This code here aims
to be used by Level0-Sysman and/or Intel XPU Manager directly
from user space. But following the drm upstream rules, the
userspace code will need to be ready before we can consider
getting this patch merged!
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
+ /mt/dim checkpatch 7b083a8df1481fc36035bfa71ef184dcedd88023 drm-intel
814d78921a0d mei: bus: add mei_cldev_mtu interface
a87feef1be2c mei: late_bind: add late binding component driver
-:37: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#37:
new file mode 100644
-:45: WARNING:CONFIG_DESCRIPTION: please write a help paragraph that fully describes the config symbol with at least 4 lines
#45: FILE: drivers/misc/mei/late_bind/Kconfig:4:
+config INTEL_MEI_LATE_BIND
+ tristate "Intel late binding support on ME Interface"
+ select INTEL_MEI_ME
+ depends on DRM_XE
+ help
+ MEI Support for Late Binding for Intel graphics card.
+
+ Enables the ME FW interfaces for Late Binding for
+ Xe display driver of Intel.
-:217: WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to using 'mei_late_bind_push_config', this function's name, in a string
#217: FILE: drivers/misc/mei/late_bind/mei_late_bind.c:143:
+ dev_dbg(dev, "mei_late_bind_push_config status = %d\n", ret);
total: 0 errors, 3 warnings, 0 checks, 351 lines checked
b2cb5b4cda91 drm/xe/late_bind_fw: Introducing late_bind_fw
-:81: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#81:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 260 lines checked
cb2134a86574 drm/xe/xe_late_bind_fw: Initialize late binding firmware
d2c232face10 drm/xe/xe_late_bind_fw: Load late binding firmware
afb83a1c28ef drm/xe/xe_late_bind_fw: Reload late binding fw in rpm resume
726f9e3ec8cb drm/xe/xe_late_bind_fw: Reload late binding fw in S2Idle/S3 resume
0cd8479194f2 drm/xe/xe_late_bind_fw: Introduce debug fs node to disable late binding
4c5d32441a73 {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
-:98: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#98:
new file mode 100644
-:192: WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (0, 0)
#192: FILE: drivers/gpu/drm/xe/xe_pcode_fwctl.c:90:
+DEFINE_FREE(xe_pcode_fwctl, struct xe_pcode_fwctl_dev *, if (_T) fwctl_put(&_T->fwctl))
[...]
+static int xe_pcode_fwctl_uctx_open(struct fwctl_uctx *uctx)
total: 0 errors, 2 warnings, 0 checks, 353 lines checked
^ permalink raw reply [flat|nested] 39+ messages in thread
* ✓ CI.KUnit: success for Introducing firmware late binding (rev2)
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (10 preceding siblings ...)
2025-04-29 16:14 ` ✗ CI.checkpatch: warning " Patchwork
@ 2025-04-29 16:15 ` Patchwork
2025-04-29 16:23 ` ✓ CI.Build: " Patchwork
` (5 subsequent siblings)
17 siblings, 0 replies; 39+ messages in thread
From: Patchwork @ 2025-04-29 16:15 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
== Series Details ==
Series: Introducing firmware late binding (rev2)
URL : https://patchwork.freedesktop.org/series/148394/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[16:14:06] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:14:11] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[16:14:37] Starting KUnit Kernel (1/1)...
[16:14:37] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:14:37] ================== guc_buf (11 subtests) ===================
[16:14:37] [PASSED] test_smallest
[16:14:37] [PASSED] test_largest
[16:14:37] [PASSED] test_granular
[16:14:37] [PASSED] test_unique
[16:14:37] [PASSED] test_overlap
[16:14:37] [PASSED] test_reusable
[16:14:37] [PASSED] test_too_big
[16:14:37] [PASSED] test_flush
[16:14:37] [PASSED] test_lookup
[16:14:37] [PASSED] test_data
[16:14:37] [PASSED] test_class
[16:14:37] ===================== [PASSED] guc_buf =====================
[16:14:37] =================== guc_dbm (7 subtests) ===================
[16:14:37] [PASSED] test_empty
[16:14:37] [PASSED] test_default
[16:14:37] ======================== test_size ========================
[16:14:37] [PASSED] 4
[16:14:37] [PASSED] 8
[16:14:37] [PASSED] 32
[16:14:37] [PASSED] 256
[16:14:37] ==================== [PASSED] test_size ====================
[16:14:37] ======================= test_reuse ========================
[16:14:37] [PASSED] 4
[16:14:37] [PASSED] 8
[16:14:37] [PASSED] 32
[16:14:37] [PASSED] 256
[16:14:37] =================== [PASSED] test_reuse ====================
[16:14:37] =================== test_range_overlap ====================
[16:14:37] [PASSED] 4
[16:14:37] [PASSED] 8
[16:14:37] [PASSED] 32
[16:14:37] [PASSED] 256
[16:14:37] =============== [PASSED] test_range_overlap ================
[16:14:37] =================== test_range_compact ====================
[16:14:37] [PASSED] 4
[16:14:37] [PASSED] 8
[16:14:37] [PASSED] 32
[16:14:37] [PASSED] 256
[16:14:37] =============== [PASSED] test_range_compact ================
[16:14:37] ==================== test_range_spare =====================
[16:14:37] [PASSED] 4
[16:14:37] [PASSED] 8
[16:14:37] [PASSED] 32
[16:14:37] [PASSED] 256
[16:14:37] ================ [PASSED] test_range_spare =================
[16:14:37] ===================== [PASSED] guc_dbm =====================
[16:14:37] =================== guc_idm (6 subtests) ===================
[16:14:37] [PASSED] bad_init
[16:14:37] [PASSED] no_init
[16:14:37] [PASSED] init_fini
[16:14:37] [PASSED] check_used
[16:14:37] [PASSED] check_quota
[16:14:37] [PASSED] check_all
[16:14:37] ===================== [PASSED] guc_idm =====================
[16:14:37] ================== no_relay (3 subtests) ===================
[16:14:37] [PASSED] xe_drops_guc2pf_if_not_ready
[16:14:37] [PASSED] xe_drops_guc2vf_if_not_ready
[16:14:37] [PASSED] xe_rejects_send_if_not_ready
[16:14:37] ==================== [PASSED] no_relay =====================
[16:14:37] ================== pf_relay (14 subtests) ==================
[16:14:37] [PASSED] pf_rejects_guc2pf_too_short
[16:14:37] [PASSED] pf_rejects_guc2pf_too_long
[16:14:37] [PASSED] pf_rejects_guc2pf_no_payload
[16:14:37] [PASSED] pf_fails_no_payload
[16:14:37] [PASSED] pf_fails_bad_origin
[16:14:37] [PASSED] pf_fails_bad_type
[16:14:37] [PASSED] pf_txn_reports_error
[16:14:37] [PASSED] pf_txn_sends_pf2guc
[16:14:37] [PASSED] pf_sends_pf2guc
[16:14:37] [SKIPPED] pf_loopback_nop
[16:14:37] [SKIPPED] pf_loopback_echo
[16:14:37] [SKIPPED] pf_loopback_fail
[16:14:37] [SKIPPED] pf_loopback_busy
[16:14:37] [SKIPPED] pf_loopback_retry
[16:14:37] ==================== [PASSED] pf_relay =====================
[16:14:37] ================== vf_relay (3 subtests) ===================
[16:14:37] [PASSED] vf_rejects_guc2vf_too_short
[16:14:37] [PASSED] vf_rejects_guc2vf_too_long
[16:14:37] [PASSED] vf_rejects_guc2vf_no_payload
[16:14:37] ==================== [PASSED] vf_relay =====================
[16:14:37] ================= pf_service (11 subtests) =================
[16:14:37] [PASSED] pf_negotiate_any
[16:14:37] [PASSED] pf_negotiate_base_match
[16:14:37] [PASSED] pf_negotiate_base_newer
[16:14:37] [PASSED] pf_negotiate_base_next
[16:14:37] [SKIPPED] pf_negotiate_base_older
[16:14:37] [PASSED] pf_negotiate_base_prev
[16:14:37] [PASSED] pf_negotiate_latest_match
[16:14:37] [PASSED] pf_negotiate_latest_newer
[16:14:37] [PASSED] pf_negotiate_latest_next
[16:14:37] [SKIPPED] pf_negotiate_latest_older
[16:14:37] [SKIPPED] pf_negotiate_latest_prev
[16:14:37] =================== [PASSED] pf_service ====================
[16:14:37] ===================== lmtt (1 subtest) =====================
[16:14:37] ======================== test_ops =========================
[16:14:37] [PASSED] 2-level
[16:14:37] [PASSED] multi-level
[16:14:37] ==================== [PASSED] test_ops =====================
[16:14:37] ====================== [PASSED] lmtt =======================
[16:14:37] =================== xe_mocs (2 subtests) ===================
[16:14:37] ================ xe_live_mocs_kernel_kunit ================
[16:14:37] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[16:14:37] ================ xe_live_mocs_reset_kunit =================
[16:14:37] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[16:14:37] ==================== [SKIPPED] xe_mocs =====================
[16:14:37] ================= xe_migrate (2 subtests) ==================
[16:14:37] ================= xe_migrate_sanity_kunit =================
[16:14:37] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[16:14:37] ================== xe_validate_ccs_kunit ==================
[16:14:37] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[16:14:37] =================== [SKIPPED] xe_migrate ===================
[16:14:37] ================== xe_dma_buf (1 subtest) ==================
[16:14:37] ==================== xe_dma_buf_kunit =====================
[16:14:37] ================ [SKIPPED] xe_dma_buf_kunit ================
[16:14:37] =================== [SKIPPED] xe_dma_buf ===================
[16:14:37] ================= xe_bo_shrink (1 subtest) =================
[16:14:37] =================== xe_bo_shrink_kunit ====================
[16:14:37] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[16:14:37] ================== [SKIPPED] xe_bo_shrink ==================
[16:14:37] ==================== xe_bo (2 subtests) ====================
[16:14:37] ================== xe_ccs_migrate_kunit ===================
[16:14:37] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[16:14:37] ==================== xe_bo_evict_kunit ====================
[16:14:37] =============== [SKIPPED] xe_bo_evict_kunit ================
[16:14:37] ===================== [SKIPPED] xe_bo ======================
[16:14:37] ==================== args (11 subtests) ====================
[16:14:37] [PASSED] count_args_test
[16:14:37] [PASSED] call_args_example
[16:14:37] [PASSED] call_args_test
[16:14:37] [PASSED] drop_first_arg_example
[16:14:37] [PASSED] drop_first_arg_test
[16:14:37] [PASSED] first_arg_example
[16:14:37] [PASSED] first_arg_test
[16:14:37] [PASSED] last_arg_example
[16:14:37] [PASSED] last_arg_test
[16:14:37] [PASSED] pick_arg_example
[16:14:37] [PASSED] sep_comma_example
[16:14:37] ====================== [PASSED] args =======================
[16:14:37] =================== xe_pci (2 subtests) ====================
[16:14:37] [PASSED] xe_gmdid_graphics_ip
[16:14:37] [PASSED] xe_gmdid_media_ip
[16:14:37] ===================== [PASSED] xe_pci ======================
[16:14:37] =================== xe_rtp (2 subtests) ====================
[16:14:37] =============== xe_rtp_process_to_sr_tests ================
[16:14:37] [PASSED] coalesce-same-reg
[16:14:37] [PASSED] no-match-no-add
[16:14:37] [PASSED] match-or
[16:14:37] [PASSED] match-or-xfail
[16:14:37] [PASSED] no-match-no-add-multiple-rules
[16:14:37] [PASSED] two-regs-two-entries
[16:14:37] [PASSED] clr-one-set-other
[16:14:37] [PASSED] set-field
[16:14:37] [PASSED] conflict-duplicate
[16:14:37] [PASSED] conflict-not-disjoint
stty: 'standard input': Inappropriate ioctl for device
[16:14:37] [PASSED] conflict-reg-type
[16:14:37] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[16:14:37] ================== xe_rtp_process_tests ===================
[16:14:37] [PASSED] active1
[16:14:37] [PASSED] active2
[16:14:37] [PASSED] active-inactive
[16:14:37] [PASSED] inactive-active
[16:14:37] [PASSED] inactive-1st_or_active-inactive
[16:14:37] [PASSED] inactive-2nd_or_active-inactive
[16:14:37] [PASSED] inactive-last_or_active-inactive
[16:14:37] [PASSED] inactive-no_or_active-inactive
[16:14:37] ============== [PASSED] xe_rtp_process_tests ===============
[16:14:37] ===================== [PASSED] xe_rtp ======================
[16:14:37] ==================== xe_wa (1 subtest) =====================
[16:14:37] ======================== xe_wa_gt =========================
[16:14:37] [PASSED] TIGERLAKE (B0)
[16:14:37] [PASSED] DG1 (A0)
[16:14:37] [PASSED] DG1 (B0)
[16:14:37] [PASSED] ALDERLAKE_S (A0)
[16:14:37] [PASSED] ALDERLAKE_S (B0)
[16:14:37] [PASSED] ALDERLAKE_S (C0)
[16:14:37] [PASSED] ALDERLAKE_S (D0)
[16:14:37] [PASSED] ALDERLAKE_P (A0)
[16:14:37] [PASSED] ALDERLAKE_P (B0)
[16:14:37] [PASSED] ALDERLAKE_P (C0)
[16:14:37] [PASSED] ALDERLAKE_S_RPLS (D0)
[16:14:37] [PASSED] ALDERLAKE_P_RPLU (E0)
[16:14:38] [PASSED] DG2_G10 (C0)
[16:14:38] [PASSED] DG2_G11 (B1)
[16:14:38] [PASSED] DG2_G12 (A1)
[16:14:38] [PASSED] METEORLAKE (g:A0, m:A0)
[16:14:38] [PASSED] METEORLAKE (g:A0, m:A0)
[16:14:38] [PASSED] METEORLAKE (g:A0, m:A0)
[16:14:38] [PASSED] LUNARLAKE (g:A0, m:A0)
[16:14:38] [PASSED] LUNARLAKE (g:B0, m:A0)
[16:14:38] [PASSED] BATTLEMAGE (g:A0, m:A1)
[16:14:38] ==================== [PASSED] xe_wa_gt =====================
[16:14:38] ====================== [PASSED] xe_wa ======================
[16:14:38] ============================================================
[16:14:38] Testing complete. Ran 133 tests: passed: 117, skipped: 16
[16:14:38] Elapsed time: 31.180s total, 4.278s configuring, 26.586s building, 0.289s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[16:14:38] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:14:39] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[16:15:00] Starting KUnit Kernel (1/1)...
[16:15:00] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:15:01] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[16:15:01] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[16:15:01] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[16:15:01] =========== drm_validate_clone_mode (2 subtests) ===========
[16:15:01] ============== drm_test_check_in_clone_mode ===============
[16:15:01] [PASSED] in_clone_mode
[16:15:01] [PASSED] not_in_clone_mode
[16:15:01] ========== [PASSED] drm_test_check_in_clone_mode ===========
[16:15:01] =============== drm_test_check_valid_clones ===============
[16:15:01] [PASSED] not_in_clone_mode
[16:15:01] [PASSED] valid_clone
[16:15:01] [PASSED] invalid_clone
[16:15:01] =========== [PASSED] drm_test_check_valid_clones ===========
[16:15:01] ============= [PASSED] drm_validate_clone_mode =============
[16:15:01] ============= drm_validate_modeset (1 subtest) =============
[16:15:01] [PASSED] drm_test_check_connector_changed_modeset
[16:15:01] ============== [PASSED] drm_validate_modeset ===============
[16:15:01] ====== drm_test_bridge_get_current_state (2 subtests) ======
[16:15:01] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[16:15:01] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[16:15:01] ======== [PASSED] drm_test_bridge_get_current_state ========
[16:15:01] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[16:15:01] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[16:15:01] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[16:15:01] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[16:15:01] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[16:15:01] ================== drm_buddy (7 subtests) ==================
[16:15:01] [PASSED] drm_test_buddy_alloc_limit
[16:15:01] [PASSED] drm_test_buddy_alloc_optimistic
[16:15:01] [PASSED] drm_test_buddy_alloc_pessimistic
[16:15:01] [PASSED] drm_test_buddy_alloc_pathological
[16:15:01] [PASSED] drm_test_buddy_alloc_contiguous
[16:15:01] [PASSED] drm_test_buddy_alloc_clear
[16:15:01] [PASSED] drm_test_buddy_alloc_range_bias
[16:15:01] ==================== [PASSED] drm_buddy ====================
[16:15:01] ============= drm_cmdline_parser (40 subtests) =============
[16:15:01] [PASSED] drm_test_cmdline_force_d_only
[16:15:01] [PASSED] drm_test_cmdline_force_D_only_dvi
[16:15:01] [PASSED] drm_test_cmdline_force_D_only_hdmi
[16:15:01] [PASSED] drm_test_cmdline_force_D_only_not_digital
[16:15:01] [PASSED] drm_test_cmdline_force_e_only
[16:15:01] [PASSED] drm_test_cmdline_res
[16:15:01] [PASSED] drm_test_cmdline_res_vesa
[16:15:01] [PASSED] drm_test_cmdline_res_vesa_rblank
[16:15:01] [PASSED] drm_test_cmdline_res_rblank
[16:15:01] [PASSED] drm_test_cmdline_res_bpp
[16:15:01] [PASSED] drm_test_cmdline_res_refresh
[16:15:01] [PASSED] drm_test_cmdline_res_bpp_refresh
[16:15:01] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[16:15:01] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[16:15:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[16:15:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[16:15:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[16:15:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[16:15:01] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[16:15:01] [PASSED] drm_test_cmdline_res_margins_force_on
[16:15:01] [PASSED] drm_test_cmdline_res_vesa_margins
[16:15:01] [PASSED] drm_test_cmdline_name
[16:15:01] [PASSED] drm_test_cmdline_name_bpp
[16:15:01] [PASSED] drm_test_cmdline_name_option
[16:15:01] [PASSED] drm_test_cmdline_name_bpp_option
[16:15:01] [PASSED] drm_test_cmdline_rotate_0
[16:15:01] [PASSED] drm_test_cmdline_rotate_90
[16:15:01] [PASSED] drm_test_cmdline_rotate_180
[16:15:01] [PASSED] drm_test_cmdline_rotate_270
[16:15:01] [PASSED] drm_test_cmdline_hmirror
[16:15:01] [PASSED] drm_test_cmdline_vmirror
[16:15:01] [PASSED] drm_test_cmdline_margin_options
[16:15:01] [PASSED] drm_test_cmdline_multiple_options
[16:15:01] [PASSED] drm_test_cmdline_bpp_extra_and_option
[16:15:01] [PASSED] drm_test_cmdline_extra_and_option
[16:15:01] [PASSED] drm_test_cmdline_freestanding_options
[16:15:01] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[16:15:01] [PASSED] drm_test_cmdline_panel_orientation
[16:15:01] ================ drm_test_cmdline_invalid =================
[16:15:01] [PASSED] margin_only
[16:15:01] [PASSED] interlace_only
[16:15:01] [PASSED] res_missing_x
[16:15:01] [PASSED] res_missing_y
[16:15:01] [PASSED] res_bad_y
[16:15:01] [PASSED] res_missing_y_bpp
[16:15:01] [PASSED] res_bad_bpp
[16:15:01] [PASSED] res_bad_refresh
[16:15:01] [PASSED] res_bpp_refresh_force_on_off
[16:15:01] [PASSED] res_invalid_mode
[16:15:01] [PASSED] res_bpp_wrong_place_mode
[16:15:01] [PASSED] name_bpp_refresh
[16:15:01] [PASSED] name_refresh
[16:15:01] [PASSED] name_refresh_wrong_mode
[16:15:01] [PASSED] name_refresh_invalid_mode
[16:15:01] [PASSED] rotate_multiple
[16:15:01] [PASSED] rotate_invalid_val
[16:15:01] [PASSED] rotate_truncated
[16:15:01] [PASSED] invalid_option
[16:15:01] [PASSED] invalid_tv_option
[16:15:01] [PASSED] truncated_tv_option
[16:15:01] ============ [PASSED] drm_test_cmdline_invalid =============
[16:15:01] =============== drm_test_cmdline_tv_options ===============
[16:15:01] [PASSED] NTSC
[16:15:01] [PASSED] NTSC_443
[16:15:01] [PASSED] NTSC_J
[16:15:01] [PASSED] PAL
[16:15:01] [PASSED] PAL_M
[16:15:01] [PASSED] PAL_N
[16:15:01] [PASSED] SECAM
[16:15:01] [PASSED] MONO_525
[16:15:01] [PASSED] MONO_625
[16:15:01] =========== [PASSED] drm_test_cmdline_tv_options ===========
[16:15:01] =============== [PASSED] drm_cmdline_parser ================
[16:15:01] ========== drmm_connector_hdmi_init (20 subtests) ==========
[16:15:01] [PASSED] drm_test_connector_hdmi_init_valid
[16:15:01] [PASSED] drm_test_connector_hdmi_init_bpc_8
[16:15:01] [PASSED] drm_test_connector_hdmi_init_bpc_10
[16:15:01] [PASSED] drm_test_connector_hdmi_init_bpc_12
[16:15:01] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[16:15:01] [PASSED] drm_test_connector_hdmi_init_bpc_null
[16:15:01] [PASSED] drm_test_connector_hdmi_init_formats_empty
[16:15:01] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[16:15:01] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[16:15:01] [PASSED] supported_formats=0x9 yuv420_allowed=1
[16:15:01] [PASSED] supported_formats=0x9 yuv420_allowed=0
[16:15:01] [PASSED] supported_formats=0x3 yuv420_allowed=1
[16:15:01] [PASSED] supported_formats=0x3 yuv420_allowed=0
[16:15:01] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[16:15:01] [PASSED] drm_test_connector_hdmi_init_null_ddc
[16:15:01] [PASSED] drm_test_connector_hdmi_init_null_product
[16:15:01] [PASSED] drm_test_connector_hdmi_init_null_vendor
[16:15:01] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[16:15:01] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[16:15:01] [PASSED] drm_test_connector_hdmi_init_product_valid
[16:15:01] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[16:15:01] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[16:15:01] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[16:15:01] ========= drm_test_connector_hdmi_init_type_valid =========
[16:15:01] [PASSED] HDMI-A
[16:15:01] [PASSED] HDMI-B
[16:15:01] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[16:15:01] ======== drm_test_connector_hdmi_init_type_invalid ========
[16:15:01] [PASSED] Unknown
[16:15:01] [PASSED] VGA
[16:15:01] [PASSED] DVI-I
[16:15:01] [PASSED] DVI-D
[16:15:01] [PASSED] DVI-A
[16:15:01] [PASSED] Composite
[16:15:01] [PASSED] SVIDEO
[16:15:01] [PASSED] LVDS
[16:15:01] [PASSED] Component
[16:15:01] [PASSED] DIN
[16:15:01] [PASSED] DP
[16:15:01] [PASSED] TV
[16:15:01] [PASSED] eDP
[16:15:01] [PASSED] Virtual
[16:15:01] [PASSED] DSI
[16:15:01] [PASSED] DPI
[16:15:01] [PASSED] Writeback
[16:15:01] [PASSED] SPI
[16:15:01] [PASSED] USB
[16:15:01] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[16:15:01] ============ [PASSED] drmm_connector_hdmi_init =============
[16:15:01] ============= drmm_connector_init (3 subtests) =============
[16:15:01] [PASSED] drm_test_drmm_connector_init
[16:15:01] [PASSED] drm_test_drmm_connector_init_null_ddc
[16:15:01] ========= drm_test_drmm_connector_init_type_valid =========
[16:15:01] [PASSED] Unknown
[16:15:01] [PASSED] VGA
[16:15:01] [PASSED] DVI-I
[16:15:01] [PASSED] DVI-D
[16:15:01] [PASSED] DVI-A
[16:15:01] [PASSED] Composite
[16:15:01] [PASSED] SVIDEO
[16:15:01] [PASSED] LVDS
[16:15:01] [PASSED] Component
[16:15:01] [PASSED] DIN
[16:15:01] [PASSED] DP
[16:15:01] [PASSED] HDMI-A
[16:15:01] [PASSED] HDMI-B
[16:15:01] [PASSED] TV
[16:15:01] [PASSED] eDP
[16:15:01] [PASSED] Virtual
[16:15:01] [PASSED] DSI
[16:15:01] [PASSED] DPI
[16:15:01] [PASSED] Writeback
[16:15:01] [PASSED] SPI
[16:15:01] [PASSED] USB
[16:15:01] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[16:15:01] =============== [PASSED] drmm_connector_init ===============
[16:15:01] ========= drm_connector_dynamic_init (6 subtests) ==========
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_init
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_init_properties
[16:15:01] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[16:15:01] [PASSED] Unknown
[16:15:01] [PASSED] VGA
[16:15:01] [PASSED] DVI-I
[16:15:01] [PASSED] DVI-D
[16:15:01] [PASSED] DVI-A
[16:15:01] [PASSED] Composite
[16:15:01] [PASSED] SVIDEO
[16:15:01] [PASSED] LVDS
[16:15:01] [PASSED] Component
[16:15:01] [PASSED] DIN
[16:15:01] [PASSED] DP
[16:15:01] [PASSED] HDMI-A
[16:15:01] [PASSED] HDMI-B
[16:15:01] [PASSED] TV
[16:15:01] [PASSED] eDP
[16:15:01] [PASSED] Virtual
[16:15:01] [PASSED] DSI
[16:15:01] [PASSED] DPI
[16:15:01] [PASSED] Writeback
[16:15:01] [PASSED] SPI
[16:15:01] [PASSED] USB
[16:15:01] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[16:15:01] ======== drm_test_drm_connector_dynamic_init_name =========
[16:15:01] [PASSED] Unknown
[16:15:01] [PASSED] VGA
[16:15:01] [PASSED] DVI-I
[16:15:01] [PASSED] DVI-D
[16:15:01] [PASSED] DVI-A
[16:15:01] [PASSED] Composite
[16:15:01] [PASSED] SVIDEO
[16:15:01] [PASSED] LVDS
[16:15:01] [PASSED] Component
[16:15:01] [PASSED] DIN
[16:15:01] [PASSED] DP
[16:15:01] [PASSED] HDMI-A
[16:15:01] [PASSED] HDMI-B
[16:15:01] [PASSED] TV
[16:15:01] [PASSED] eDP
[16:15:01] [PASSED] Virtual
[16:15:01] [PASSED] DSI
[16:15:01] [PASSED] DPI
[16:15:01] [PASSED] Writeback
[16:15:01] [PASSED] SPI
[16:15:01] [PASSED] USB
[16:15:01] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[16:15:01] =========== [PASSED] drm_connector_dynamic_init ============
[16:15:01] ==== drm_connector_dynamic_register_early (4 subtests) =====
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[16:15:01] ====== [PASSED] drm_connector_dynamic_register_early =======
[16:15:01] ======= drm_connector_dynamic_register (7 subtests) ========
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[16:15:01] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[16:15:01] ========= [PASSED] drm_connector_dynamic_register ==========
[16:15:01] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[16:15:01] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[16:15:01] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[16:15:01] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[16:15:01] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[16:15:01] ========== drm_test_get_tv_mode_from_name_valid ===========
[16:15:01] [PASSED] NTSC
[16:15:01] [PASSED] NTSC-443
[16:15:01] [PASSED] NTSC-J
[16:15:01] [PASSED] PAL
[16:15:01] [PASSED] PAL-M
[16:15:01] [PASSED] PAL-N
[16:15:01] [PASSED] SECAM
[16:15:01] [PASSED] Mono
[16:15:01] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[16:15:01] [PASSED] drm_test_get_tv_mode_from_name_truncated
[16:15:01] ============ [PASSED] drm_get_tv_mode_from_name ============
[16:15:01] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[16:15:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[16:15:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[16:15:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[16:15:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[16:15:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[16:15:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[16:15:01] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[16:15:01] [PASSED] VIC 96
[16:15:01] [PASSED] VIC 97
[16:15:01] [PASSED] VIC 101
[16:15:01] [PASSED] VIC 102
[16:15:01] [PASSED] VIC 106
[16:15:01] [PASSED] VIC 107
[16:15:01] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[16:15:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[16:15:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[16:15:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[16:15:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[16:15:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[16:15:01] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[16:15:01] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[16:15:01] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[16:15:01] [PASSED] Automatic
[16:15:01] [PASSED] Full
[16:15:01] [PASSED] Limited 16:235
[16:15:01] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[16:15:01] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[16:15:01] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[16:15:01] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[16:15:01] === drm_test_drm_hdmi_connector_get_output_format_name ====
[16:15:01] [PASSED] RGB
[16:15:01] [PASSED] YUV 4:2:0
[16:15:01] [PASSED] YUV 4:2:2
[16:15:01] [PASSED] YUV 4:4:4
[16:15:01] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[16:15:01] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[16:15:01] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[16:15:01] ============= drm_damage_helper (21 subtests) ==============
[16:15:01] [PASSED] drm_test_damage_iter_no_damage
[16:15:01] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[16:15:01] [PASSED] drm_test_damage_iter_no_damage_src_moved
[16:15:01] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[16:15:01] [PASSED] drm_test_damage_iter_no_damage_not_visible
[16:15:01] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[16:15:01] [PASSED] drm_test_damage_iter_no_damage_no_fb
[16:15:01] [PASSED] drm_test_damage_iter_simple_damage
[16:15:01] [PASSED] drm_test_damage_iter_single_damage
[16:15:01] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[16:15:01] [PASSED] drm_test_damage_iter_single_damage_outside_src
[16:15:01] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[16:15:01] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[16:15:01] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[16:15:01] [PASSED] drm_test_damage_iter_single_damage_src_moved
[16:15:01] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[16:15:01] [PASSED] drm_test_damage_iter_damage
[16:15:01] [PASSED] drm_test_damage_iter_damage_one_intersect
[16:15:01] [PASSED] drm_test_damage_iter_damage_one_outside
[16:15:01] [PASSED] drm_test_damage_iter_damage_src_moved
[16:15:01] [PASSED] drm_test_damage_iter_damage_not_visible
[16:15:01] ================ [PASSED] drm_damage_helper ================
[16:15:01] ============== drm_dp_mst_helper (3 subtests) ==============
[16:15:01] ============== drm_test_dp_mst_calc_pbn_mode ==============
[16:15:01] [PASSED] Clock 154000 BPP 30 DSC disabled
[16:15:01] [PASSED] Clock 234000 BPP 30 DSC disabled
[16:15:01] [PASSED] Clock 297000 BPP 24 DSC disabled
[16:15:01] [PASSED] Clock 332880 BPP 24 DSC enabled
[16:15:01] [PASSED] Clock 324540 BPP 24 DSC enabled
[16:15:01] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[16:15:01] ============== drm_test_dp_mst_calc_pbn_div ===============
[16:15:01] [PASSED] Link rate 2000000 lane count 4
[16:15:01] [PASSED] Link rate 2000000 lane count 2
[16:15:01] [PASSED] Link rate 2000000 lane count 1
[16:15:01] [PASSED] Link rate 1350000 lane count 4
[16:15:01] [PASSED] Link rate 1350000 lane count 2
[16:15:01] [PASSED] Link rate 1350000 lane count 1
[16:15:01] [PASSED] Link rate 1000000 lane count 4
[16:15:01] [PASSED] Link rate 1000000 lane count 2
[16:15:01] [PASSED] Link rate 1000000 lane count 1
[16:15:01] [PASSED] Link rate 810000 lane count 4
[16:15:01] [PASSED] Link rate 810000 lane count 2
[16:15:01] [PASSED] Link rate 810000 lane count 1
[16:15:01] [PASSED] Link rate 540000 lane count 4
[16:15:01] [PASSED] Link rate 540000 lane count 2
[16:15:01] [PASSED] Link rate 540000 lane count 1
[16:15:01] [PASSED] Link rate 270000 lane count 4
[16:15:01] [PASSED] Link rate 270000 lane count 2
[16:15:01] [PASSED] Link rate 270000 lane count 1
[16:15:01] [PASSED] Link rate 162000 lane count 4
[16:15:01] [PASSED] Link rate 162000 lane count 2
[16:15:01] [PASSED] Link rate 162000 lane count 1
[16:15:01] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[16:15:01] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[16:15:01] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[16:15:01] [PASSED] DP_POWER_UP_PHY with port number
[16:15:01] [PASSED] DP_POWER_DOWN_PHY with port number
[16:15:01] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[16:15:01] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[16:15:01] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[16:15:01] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[16:15:01] [PASSED] DP_QUERY_PAYLOAD with port number
[16:15:01] [PASSED] DP_QUERY_PAYLOAD with VCPI
[16:15:01] [PASSED] DP_REMOTE_DPCD_READ with port number
[16:15:01] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[16:15:01] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[16:15:01] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[16:15:01] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[16:15:01] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[16:15:01] [PASSED] DP_REMOTE_I2C_READ with port number
[16:15:01] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[16:15:01] [PASSED] DP_REMOTE_I2C_READ with transactions array
[16:15:01] [PASSED] DP_REMOTE_I2C_WRITE with port number
[16:15:01] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[16:15:01] [PASSED] DP_REMOTE_I2C_WRITE with data array
[16:15:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[16:15:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[16:15:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[16:15:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[16:15:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[16:15:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[16:15:01] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[16:15:01] ================ [PASSED] drm_dp_mst_helper ================
[16:15:01] ================== drm_exec (7 subtests) ===================
[16:15:01] [PASSED] sanitycheck
[16:15:01] [PASSED] test_lock
[16:15:01] [PASSED] test_lock_unlock
[16:15:01] [PASSED] test_duplicates
[16:15:01] [PASSED] test_prepare
[16:15:01] [PASSED] test_prepare_array
[16:15:01] [PASSED] test_multiple_loops
[16:15:01] ==================== [PASSED] drm_exec =====================
[16:15:01] =========== drm_format_helper_test (18 subtests) ===========
[16:15:01] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[16:15:01] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[16:15:01] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[16:15:01] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[16:15:01] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[16:15:01] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[16:15:01] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[16:15:01] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[16:15:01] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[16:15:01] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[16:15:01] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[16:15:01] ============== drm_test_fb_xrgb8888_to_mono ===============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[16:15:01] ==================== drm_test_fb_swab =====================
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ================ [PASSED] drm_test_fb_swab =================
[16:15:01] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[16:15:01] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[16:15:01] [PASSED] single_pixel_source_buffer
[16:15:01] [PASSED] single_pixel_clip_rectangle
[16:15:01] [PASSED] well_known_colors
[16:15:01] [PASSED] destination_pitch
[16:15:01] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[16:15:01] ================= drm_test_fb_clip_offset =================
[16:15:01] [PASSED] pass through
[16:15:01] [PASSED] horizontal offset
[16:15:01] [PASSED] vertical offset
[16:15:01] [PASSED] horizontal and vertical offset
[16:15:01] [PASSED] horizontal offset (custom pitch)
[16:15:01] [PASSED] vertical offset (custom pitch)
[16:15:01] [PASSED] horizontal and vertical offset (custom pitch)
[16:15:01] ============= [PASSED] drm_test_fb_clip_offset =============
[16:15:01] ============== drm_test_fb_build_fourcc_list ==============
[16:15:01] [PASSED] no native formats
[16:15:01] [PASSED] XRGB8888 as native format
[16:15:01] [PASSED] remove duplicates
[16:15:01] [PASSED] convert alpha formats
[16:15:01] [PASSED] random formats
[16:15:01] ========== [PASSED] drm_test_fb_build_fourcc_list ==========
[16:15:01] =================== drm_test_fb_memcpy ====================
[16:15:01] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[16:15:01] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[16:15:01] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[16:15:01] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[16:15:01] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[16:15:01] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[16:15:01] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[16:15:01] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[16:15:01] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[16:15:01] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[16:15:01] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[16:15:01] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[16:15:01] =============== [PASSED] drm_test_fb_memcpy ================
[16:15:01] ============= [PASSED] drm_format_helper_test ==============
[16:15:01] ================= drm_format (18 subtests) =================
[16:15:01] [PASSED] drm_test_format_block_width_invalid
[16:15:01] [PASSED] drm_test_format_block_width_one_plane
[16:15:01] [PASSED] drm_test_format_block_width_two_plane
[16:15:01] [PASSED] drm_test_format_block_width_three_plane
[16:15:01] [PASSED] drm_test_format_block_width_tiled
[16:15:01] [PASSED] drm_test_format_block_height_invalid
[16:15:01] [PASSED] drm_test_format_block_height_one_plane
[16:15:01] [PASSED] drm_test_format_block_height_two_plane
[16:15:01] [PASSED] drm_test_format_block_height_three_plane
[16:15:01] [PASSED] drm_test_format_block_height_tiled
[16:15:01] [PASSED] drm_test_format_min_pitch_invalid
[16:15:01] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[16:15:01] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[16:15:01] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[16:15:01] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[16:15:01] [PASSED] drm_test_format_min_pitch_two_plane
[16:15:01] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[16:15:01] [PASSED] drm_test_format_min_pitch_tiled
[16:15:01] =================== [PASSED] drm_format ====================
[16:15:01] ============== drm_framebuffer (10 subtests) ===============
[16:15:01] ========== drm_test_framebuffer_check_src_coords ==========
[16:15:01] [PASSED] Success: source fits into fb
[16:15:01] [PASSED] Fail: overflowing fb with x-axis coordinate
[16:15:01] [PASSED] Fail: overflowing fb with y-axis coordinate
[16:15:01] [PASSED] Fail: overflowing fb with source width
[16:15:01] [PASSED] Fail: overflowing fb with source height
[16:15:01] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[16:15:01] [PASSED] drm_test_framebuffer_cleanup
[16:15:01] =============== drm_test_framebuffer_create ===============
[16:15:01] [PASSED] ABGR8888 normal sizes
[16:15:01] [PASSED] ABGR8888 max sizes
[16:15:01] [PASSED] ABGR8888 pitch greater than min required
[16:15:01] [PASSED] ABGR8888 pitch less than min required
[16:15:01] [PASSED] ABGR8888 Invalid width
[16:15:01] [PASSED] ABGR8888 Invalid buffer handle
[16:15:01] [PASSED] No pixel format
[16:15:01] [PASSED] ABGR8888 Width 0
[16:15:01] [PASSED] ABGR8888 Height 0
[16:15:01] [PASSED] ABGR8888 Out of bound height * pitch combination
[16:15:01] [PASSED] ABGR8888 Large buffer offset
[16:15:01] [PASSED] ABGR8888 Buffer offset for inexistent plane
[16:15:01] [PASSED] ABGR8888 Invalid flag
[16:15:01] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[16:15:01] [PASSED] ABGR8888 Valid buffer modifier
[16:15:01] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[16:15:01] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[16:15:01] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[16:15:01] [PASSED] NV12 Normal sizes
[16:15:01] [PASSED] NV12 Max sizes
[16:15:01] [PASSED] NV12 Invalid pitch
[16:15:01] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[16:15:01] [PASSED] NV12 different modifier per-plane
[16:15:01] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[16:15:01] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[16:15:01] [PASSED] NV12 Modifier for inexistent plane
[16:15:01] [PASSED] NV12 Handle for inexistent plane
[16:15:01] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[16:15:01] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[16:15:01] [PASSED] YVU420 Normal sizes
[16:15:01] [PASSED] YVU420 Max sizes
[16:15:01] [PASSED] YVU420 Invalid pitch
[16:15:01] [PASSED] YVU420 Different pitches
[16:15:01] [PASSED] YVU420 Different buffer offsets/pitches
[16:15:01] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[16:15:01] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[16:15:01] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[16:15:01] [PASSED] YVU420 Valid modifier
[16:15:01] [PASSED] YVU420 Different modifiers per plane
[16:15:01] [PASSED] YVU420 Modifier for inexistent plane
[16:15:01] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[16:15:01] [PASSED] X0L2 Normal sizes
[16:15:01] [PASSED] X0L2 Max sizes
[16:15:01] [PASSED] X0L2 Invalid pitch
[16:15:01] [PASSED] X0L2 Pitch greater than minimum required
[16:15:01] [PASSED] X0L2 Handle for inexistent plane
[16:15:01] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[16:15:01] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[16:15:01] [PASSED] X0L2 Valid modifier
[16:15:01] [PASSED] X0L2 Modifier for inexistent plane
[16:15:01] =========== [PASSED] drm_test_framebuffer_create ===========
[16:15:01] [PASSED] drm_test_framebuffer_free
[16:15:01] [PASSED] drm_test_framebuffer_init
[16:15:01] [PASSED] drm_test_framebuffer_init_bad_format
[16:15:01] [PASSED] drm_test_framebuffer_init_dev_mismatch
[16:15:01] [PASSED] drm_test_framebuffer_lookup
[16:15:01] [PASSED] drm_test_framebuffer_lookup_inexistent
[16:15:01] [PASSED] drm_test_framebuffer_modifiers_not_supported
[16:15:01] ================= [PASSED] drm_framebuffer =================
[16:15:01] ================ drm_gem_shmem (8 subtests) ================
[16:15:01] [PASSED] drm_gem_shmem_test_obj_create
[16:15:01] [PASSED] drm_gem_shmem_test_obj_create_private
[16:15:01] [PASSED] drm_gem_shmem_test_pin_pages
[16:15:01] [PASSED] drm_gem_shmem_test_vmap
[16:15:01] [PASSED] drm_gem_shmem_test_get_pages_sgt
[16:15:01] [PASSED] drm_gem_shmem_test_get_sg_table
[16:15:01] [PASSED] drm_gem_shmem_test_madvise
[16:15:01] [PASSED] drm_gem_shmem_test_purge
[16:15:01] ================== [PASSED] drm_gem_shmem ==================
[16:15:01] === drm_atomic_helper_connector_hdmi_check (23 subtests) ===
[16:15:01] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[16:15:01] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[16:15:01] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[16:15:01] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[16:15:01] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[16:15:01] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[16:15:01] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[16:15:01] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[16:15:01] [PASSED] drm_test_check_disable_connector
[16:15:01] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[16:15:01] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback
[16:15:01] [PASSED] drm_test_check_max_tmds_rate_format_fallback
[16:15:01] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[16:15:01] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[16:15:01] [PASSED] drm_test_check_output_bpc_dvi
[16:15:01] [PASSED] drm_test_check_output_bpc_format_vic_1
[16:15:01] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[16:15:01] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[16:15:01] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[16:15:01] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[16:15:01] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[16:15:01] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[16:15:01] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[16:15:01] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[16:15:01] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[16:15:01] [PASSED] drm_test_check_broadcast_rgb_value
[16:15:01] [PASSED] drm_test_check_bpc_8_value
[16:15:01] [PASSED] drm_test_check_bpc_10_value
[16:15:01] [PASSED] drm_test_check_bpc_12_value
[16:15:01] [PASSED] drm_test_check_format_value
[16:15:01] [PASSED] drm_test_check_tmds_char_value
[16:15:01] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[16:15:01] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[16:15:01] [PASSED] drm_test_check_mode_valid
[16:15:01] [PASSED] drm_test_check_mode_valid_reject
[16:15:01] [PASSED] drm_test_check_mode_valid_reject_rate
[16:15:01] [PASSED] drm_test_check_mode_valid_reject_max_clock
[16:15:01] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[16:15:01] ================= drm_managed (2 subtests) =================
[16:15:01] [PASSED] drm_test_managed_release_action
[16:15:01] [PASSED] drm_test_managed_run_action
[16:15:01] =================== [PASSED] drm_managed ===================
[16:15:01] =================== drm_mm (6 subtests) ====================
[16:15:01] [PASSED] drm_test_mm_init
[16:15:01] [PASSED] drm_test_mm_debug
[16:15:01] [PASSED] drm_test_mm_align32
[16:15:01] [PASSED] drm_test_mm_align64
[16:15:01] [PASSED] drm_test_mm_lowest
[16:15:01] [PASSED] drm_test_mm_highest
[16:15:01] ===================== [PASSED] drm_mm ======================
[16:15:01] ============= drm_modes_analog_tv (5 subtests) =============
[16:15:01] [PASSED] drm_test_modes_analog_tv_mono_576i
[16:15:01] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[16:15:01] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[16:15:01] [PASSED] drm_test_modes_analog_tv_pal_576i
[16:15:01] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[16:15:01] =============== [PASSED] drm_modes_analog_tv ===============
[16:15:01] ============== drm_plane_helper (2 subtests) ===============
[16:15:01] =============== drm_test_check_plane_state ================
[16:15:01] [PASSED] clipping_simple
[16:15:01] [PASSED] clipping_rotate_reflect
[16:15:01] [PASSED] positioning_simple
[16:15:01] [PASSED] upscaling
[16:15:01] [PASSED] downscaling
[16:15:01] [PASSED] rounding1
[16:15:01] [PASSED] rounding2
[16:15:01] [PASSED] rounding3
[16:15:01] [PASSED] rounding4
[16:15:01] =========== [PASSED] drm_test_check_plane_state ============
[16:15:01] =========== drm_test_check_invalid_plane_state ============
[16:15:01] [PASSED] positioning_invalid
[16:15:01] [PASSED] upscaling_invalid
[16:15:01] [PASSED] downscaling_invalid
[16:15:01] ======= [PASSED] drm_test_check_invalid_plane_state ========
[16:15:01] ================ [PASSED] drm_plane_helper =================
[16:15:01] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[16:15:01] ====== drm_test_connector_helper_tv_get_modes_check =======
[16:15:01] [PASSED] None
[16:15:01] [PASSED] PAL
[16:15:01] [PASSED] NTSC
[16:15:01] [PASSED] Both, NTSC Default
[16:15:01] [PASSED] Both, PAL Default
[16:15:01] [PASSED] Both, NTSC Default, with PAL on command-line
[16:15:01] [PASSED] Both, PAL Default, with NTSC on command-line
[16:15:01] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[16:15:01] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[16:15:01] ================== drm_rect (9 subtests) ===================
[16:15:01] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[16:15:01] [PASSED] drm_test_rect_clip_scaled_not_clipped
[16:15:01] [PASSED] drm_test_rect_clip_scaled_clipped
[16:15:01] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[16:15:01] ================= drm_test_rect_intersect =================
[16:15:01] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[16:15:01] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[16:15:01] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[16:15:01] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[16:15:01] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[16:15:01] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[16:15:01] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[16:15:01] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[16:15:01] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[16:15:01] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[16:15:01] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[16:15:01] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[16:15:01] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[16:15:01] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[16:15:01] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[16:15:01] ============= [PASSED] drm_test_rect_intersect =============
[16:15:01] ================ drm_test_rect_calc_hscale ================
[16:15:01] [PASSED] normal use
[16:15:01] [PASSED] out of max range
[16:15:01] [PASSED] out of min range
[16:15:01] [PASSED] zero dst
[16:15:01] [PASSED] negative src
[16:15:01] [PASSED] negative dst
[16:15:01] ============ [PASSED] drm_test_rect_calc_hscale ============
[16:15:01] ================ drm_test_rect_calc_vscale ================
[16:15:01] [PASSED] normal use
[16:15:01] [PASSED] out of max range
[16:15:01] [PASSED] out of min range
[16:15:01] [PASSED] zero dst
[16:15:01] [PASSED] negative src
[16:15:01] [PASSED] negative dst
[16:15:01] ============ [PASSED] drm_test_rect_calc_vscale ============
[16:15:01] ================== drm_test_rect_rotate ===================
[16:15:01] [PASSED] reflect-x
[16:15:01] [PASSED] reflect-y
[16:15:01] [PASSED] rotate-0
[16:15:01] [PASSED] rotate-90
[16:15:01] [PASSED] rotate-180
[16:15:01] [PASSED] rotate-270
[16:15:01] ============== [PASSED] drm_test_rect_rotate ===============
[16:15:01] ================ drm_test_rect_rotate_inv =================
[16:15:01] [PASSED] reflect-x
[16:15:01] [PASSED] reflect-y
[16:15:01] [PASSED] rotate-0
[16:15:01] [PASSED] rotate-90
[16:15:01] [PASSED] rotate-180
[16:15:01] [PASSED] rotate-270
[16:15:01] ============ [PASSED] drm_test_rect_rotate_inv =============
stty: 'standard input': Inappropriate ioctl for device
[16:15:01] ==================== [PASSED] drm_rect =====================
[16:15:01] ============================================================
[16:15:01] Testing complete. Ran 608 tests: passed: 608
[16:15:01] Elapsed time: 22.985s total, 1.713s configuring, 21.106s building, 0.147s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[16:15:01] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:15:02] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[16:15:10] Starting KUnit Kernel (1/1)...
[16:15:10] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:15:11] ================= ttm_device (5 subtests) ==================
[16:15:11] [PASSED] ttm_device_init_basic
[16:15:11] [PASSED] ttm_device_init_multiple
[16:15:11] [PASSED] ttm_device_fini_basic
[16:15:11] [PASSED] ttm_device_init_no_vma_man
[16:15:11] ================== ttm_device_init_pools ==================
[16:15:11] [PASSED] No DMA allocations, no DMA32 required
[16:15:11] [PASSED] DMA allocations, DMA32 required
[16:15:11] [PASSED] No DMA allocations, DMA32 required
[16:15:11] [PASSED] DMA allocations, no DMA32 required
[16:15:11] ============== [PASSED] ttm_device_init_pools ==============
[16:15:11] =================== [PASSED] ttm_device ====================
[16:15:11] ================== ttm_pool (8 subtests) ===================
[16:15:11] ================== ttm_pool_alloc_basic ===================
[16:15:11] [PASSED] One page
[16:15:11] [PASSED] More than one page
[16:15:11] [PASSED] Above the allocation limit
[16:15:11] [PASSED] One page, with coherent DMA mappings enabled
[16:15:11] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[16:15:11] ============== [PASSED] ttm_pool_alloc_basic ===============
[16:15:11] ============== ttm_pool_alloc_basic_dma_addr ==============
[16:15:11] [PASSED] One page
[16:15:11] [PASSED] More than one page
[16:15:11] [PASSED] Above the allocation limit
[16:15:11] [PASSED] One page, with coherent DMA mappings enabled
[16:15:11] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[16:15:11] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[16:15:11] [PASSED] ttm_pool_alloc_order_caching_match
[16:15:11] [PASSED] ttm_pool_alloc_caching_mismatch
[16:15:11] [PASSED] ttm_pool_alloc_order_mismatch
[16:15:11] [PASSED] ttm_pool_free_dma_alloc
[16:15:11] [PASSED] ttm_pool_free_no_dma_alloc
[16:15:11] [PASSED] ttm_pool_fini_basic
[16:15:11] ==================== [PASSED] ttm_pool =====================
[16:15:11] ================ ttm_resource (8 subtests) =================
[16:15:11] ================= ttm_resource_init_basic =================
[16:15:11] [PASSED] Init resource in TTM_PL_SYSTEM
[16:15:11] [PASSED] Init resource in TTM_PL_VRAM
[16:15:11] [PASSED] Init resource in a private placement
[16:15:11] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[16:15:11] ============= [PASSED] ttm_resource_init_basic =============
[16:15:11] [PASSED] ttm_resource_init_pinned
[16:15:11] [PASSED] ttm_resource_fini_basic
[16:15:11] [PASSED] ttm_resource_manager_init_basic
[16:15:11] [PASSED] ttm_resource_manager_usage_basic
[16:15:11] [PASSED] ttm_resource_manager_set_used_basic
[16:15:11] [PASSED] ttm_sys_man_alloc_basic
[16:15:11] [PASSED] ttm_sys_man_free_basic
[16:15:11] ================== [PASSED] ttm_resource ===================
[16:15:11] =================== ttm_tt (15 subtests) ===================
[16:15:11] ==================== ttm_tt_init_basic ====================
[16:15:11] [PASSED] Page-aligned size
[16:15:11] [PASSED] Extra pages requested
[16:15:11] ================ [PASSED] ttm_tt_init_basic ================
[16:15:11] [PASSED] ttm_tt_init_misaligned
[16:15:11] [PASSED] ttm_tt_fini_basic
[16:15:11] [PASSED] ttm_tt_fini_sg
[16:15:11] [PASSED] ttm_tt_fini_shmem
[16:15:11] [PASSED] ttm_tt_create_basic
[16:15:11] [PASSED] ttm_tt_create_invalid_bo_type
[16:15:11] [PASSED] ttm_tt_create_ttm_exists
[16:15:11] [PASSED] ttm_tt_create_failed
[16:15:11] [PASSED] ttm_tt_destroy_basic
[16:15:11] [PASSED] ttm_tt_populate_null_ttm
[16:15:11] [PASSED] ttm_tt_populate_populated_ttm
[16:15:11] [PASSED] ttm_tt_unpopulate_basic
[16:15:11] [PASSED] ttm_tt_unpopulate_empty_ttm
[16:15:11] [PASSED] ttm_tt_swapin_basic
[16:15:11] ===================== [PASSED] ttm_tt ======================
[16:15:11] =================== ttm_bo (14 subtests) ===================
[16:15:11] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[16:15:11] [PASSED] Cannot be interrupted and sleeps
[16:15:11] [PASSED] Cannot be interrupted, locks straight away
[16:15:11] [PASSED] Can be interrupted, sleeps
[16:15:11] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[16:15:11] [PASSED] ttm_bo_reserve_locked_no_sleep
[16:15:11] [PASSED] ttm_bo_reserve_no_wait_ticket
[16:15:11] [PASSED] ttm_bo_reserve_double_resv
[16:15:11] [PASSED] ttm_bo_reserve_interrupted
[16:15:11] [PASSED] ttm_bo_reserve_deadlock
[16:15:11] [PASSED] ttm_bo_unreserve_basic
[16:15:11] [PASSED] ttm_bo_unreserve_pinned
[16:15:11] [PASSED] ttm_bo_unreserve_bulk
[16:15:11] [PASSED] ttm_bo_put_basic
[16:15:11] [PASSED] ttm_bo_put_shared_resv
[16:15:11] [PASSED] ttm_bo_pin_basic
[16:15:11] [PASSED] ttm_bo_pin_unpin_resource
[16:15:11] [PASSED] ttm_bo_multiple_pin_one_unpin
[16:15:11] ===================== [PASSED] ttm_bo ======================
[16:15:11] ============== ttm_bo_validate (22 subtests) ===============
[16:15:11] ============== ttm_bo_init_reserved_sys_man ===============
[16:15:11] [PASSED] Buffer object for userspace
[16:15:11] [PASSED] Kernel buffer object
[16:15:11] [PASSED] Shared buffer object
[16:15:11] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[16:15:11] ============== ttm_bo_init_reserved_mock_man ==============
[16:15:11] [PASSED] Buffer object for userspace
[16:15:11] [PASSED] Kernel buffer object
[16:15:11] [PASSED] Shared buffer object
[16:15:11] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[16:15:11] [PASSED] ttm_bo_init_reserved_resv
[16:15:11] ================== ttm_bo_validate_basic ==================
[16:15:11] [PASSED] Buffer object for userspace
[16:15:11] [PASSED] Kernel buffer object
[16:15:11] [PASSED] Shared buffer object
[16:15:11] ============== [PASSED] ttm_bo_validate_basic ==============
[16:15:11] [PASSED] ttm_bo_validate_invalid_placement
[16:15:11] ============= ttm_bo_validate_same_placement ==============
[16:15:11] [PASSED] System manager
[16:15:11] [PASSED] VRAM manager
[16:15:11] ========= [PASSED] ttm_bo_validate_same_placement ==========
[16:15:11] [PASSED] ttm_bo_validate_failed_alloc
[16:15:11] [PASSED] ttm_bo_validate_pinned
[16:15:11] [PASSED] ttm_bo_validate_busy_placement
[16:15:11] ================ ttm_bo_validate_multihop =================
[16:15:11] [PASSED] Buffer object for userspace
[16:15:11] [PASSED] Kernel buffer object
[16:15:11] [PASSED] Shared buffer object
[16:15:11] ============ [PASSED] ttm_bo_validate_multihop =============
[16:15:11] ========== ttm_bo_validate_no_placement_signaled ==========
[16:15:11] [PASSED] Buffer object in system domain, no page vector
[16:15:11] [PASSED] Buffer object in system domain with an existing page vector
[16:15:11] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[16:15:11] ======== ttm_bo_validate_no_placement_not_signaled ========
[16:15:11] [PASSED] Buffer object for userspace
[16:15:11] [PASSED] Kernel buffer object
[16:15:11] [PASSED] Shared buffer object
[16:15:11] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[16:15:11] [PASSED] ttm_bo_validate_move_fence_signaled
[16:15:11] ========= ttm_bo_validate_move_fence_not_signaled =========
[16:15:11] [PASSED] Waits for GPU
[16:15:11] [PASSED] Tries to lock straight away
[16:15:11] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[16:15:11] [PASSED] ttm_bo_validate_swapout
[16:15:11] [PASSED] ttm_bo_validate_happy_evict
[16:15:11] [PASSED] ttm_bo_validate_all_pinned_evict
[16:15:11] [PASSED] ttm_bo_validate_allowed_only_evict
[16:15:11] [PASSED] ttm_bo_validate_deleted_evict
[16:15:11] [PASSED] ttm_bo_validate_busy_domain_evict
[16:15:11] [PASSED] ttm_bo_validate_evict_gutting
[16:15:11] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[16:15:11] ================= [PASSED] ttm_bo_validate =================
[16:15:11] ============================================================
[16:15:11] Testing complete. Ran 102 tests: passed: 102
[16:15:11] Elapsed time: 10.322s total, 1.758s configuring, 7.947s building, 0.535s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 39+ messages in thread
* ✓ CI.Build: success for Introducing firmware late binding (rev2)
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (11 preceding siblings ...)
2025-04-29 16:15 ` ✓ CI.KUnit: success " Patchwork
@ 2025-04-29 16:23 ` Patchwork
2025-04-29 16:26 ` ✗ CI.Hooks: failure " Patchwork
` (4 subsequent siblings)
17 siblings, 0 replies; 39+ messages in thread
From: Patchwork @ 2025-04-29 16:23 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
== Series Details ==
Series: Introducing firmware late binding (rev2)
URL : https://patchwork.freedesktop.org/series/148394/
State : success
== Summary ==
lib/modules/6.15.0-rc4-xe+/kernel/arch/x86/kvm/
lib/modules/6.15.0-rc4-xe+/kernel/arch/x86/kvm/kvm.ko
lib/modules/6.15.0-rc4-xe+/kernel/arch/x86/kvm/kvm-intel.ko
lib/modules/6.15.0-rc4-xe+/kernel/arch/x86/kvm/kvm-amd.ko
lib/modules/6.15.0-rc4-xe+/kernel/virt/
lib/modules/6.15.0-rc4-xe+/kernel/virt/lib/
lib/modules/6.15.0-rc4-xe+/kernel/virt/lib/irqbypass.ko
lib/modules/6.15.0-rc4-xe+/kernel/kernel/
lib/modules/6.15.0-rc4-xe+/kernel/kernel/kheaders.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/
lib/modules/6.15.0-rc4-xe+/kernel/crypto/ecrdsa_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/xcbc.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/serpent_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/aria_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/crypto_simd.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/adiantum.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/tcrypt.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/crypto_engine.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/zstd.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/asymmetric_keys/
lib/modules/6.15.0-rc4-xe+/kernel/crypto/asymmetric_keys/pkcs7_test_key.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/asymmetric_keys/pkcs8_key_parser.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/des_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/xctr.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/authenc.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/sm4_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/camellia_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/sm3.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/pcrypt.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/aegis128.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/af_alg.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/algif_aead.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/cmac.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/sm3_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/aes_ti.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/chacha_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/poly1305_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/nhpoly1305.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/crc32_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/essiv.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/ccm.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/wp512.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/streebog_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/authencesn.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/echainiv.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/lrw.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/cryptd.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/crypto_user.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/algif_hash.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/polyval-generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/hctr2.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/842.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/pcbc.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/ansi_cprng.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/cast6_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/twofish_common.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/twofish_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/lz4hc.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/blowfish_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/md4.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/chacha20poly1305.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/curve25519-generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/lz4.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/rmd160.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/algif_skcipher.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/cast5_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/fcrypt.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/ecdsa_generic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/sm4.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/cast_common.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/blowfish_common.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/michael_mic.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/async_tx/
lib/modules/6.15.0-rc4-xe+/kernel/crypto/async_tx/async_xor.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/async_tx/async_tx.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/async_tx/async_memcpy.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/async_tx/async_pq.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/async_tx/async_raid6_recov.ko
lib/modules/6.15.0-rc4-xe+/kernel/crypto/algif_rng.ko
lib/modules/6.15.0-rc4-xe+/kernel/block/
lib/modules/6.15.0-rc4-xe+/kernel/block/bfq.ko
lib/modules/6.15.0-rc4-xe+/kernel/block/kyber-iosched.ko
lib/modules/6.15.0-rc4-xe+/build
lib/modules/6.15.0-rc4-xe+/modules.alias.bin
lib/modules/6.15.0-rc4-xe+/modules.builtin
lib/modules/6.15.0-rc4-xe+/modules.softdep
lib/modules/6.15.0-rc4-xe+/modules.alias
lib/modules/6.15.0-rc4-xe+/modules.order
lib/modules/6.15.0-rc4-xe+/modules.symbols
lib/modules/6.15.0-rc4-xe+/modules.dep.bin
+ mv kernel-debug.tar.gz ..
+ cd ..
+ rm -rf archive-debug
+ [[ no == \y\e\s ]]
+ sync
+ echo '[+] Finished building and packaging '\''debug'\''!'
+ cleanup
[+] Finished building and packaging 'debug'!
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 39+ messages in thread
* ✗ CI.Hooks: failure for Introducing firmware late binding (rev2)
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (12 preceding siblings ...)
2025-04-29 16:23 ` ✓ CI.Build: " Patchwork
@ 2025-04-29 16:26 ` Patchwork
2025-04-29 16:27 ` ✗ CI.checksparse: warning " Patchwork
` (3 subsequent siblings)
17 siblings, 0 replies; 39+ messages in thread
From: Patchwork @ 2025-04-29 16:26 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
== Series Details ==
Series: Introducing firmware late binding (rev2)
URL : https://patchwork.freedesktop.org/series/148394/
State : failure
== Summary ==
run-parts: executing /workspace/ci/hooks/00-showenv
+ export
+ grep -Ei '(^|\W)CI_'
declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64-debug"
declare -x CI_KERNEL_SRC_DIR="/workspace/kernel"
declare -x CI_TOOLS_SRC_DIR="/workspace/ci"
declare -x CI_WORKSPACE_DIR="/workspace"
run-parts: executing /workspace/ci/hooks/10-build-W1
+ SRC_DIR=/workspace/kernel
+ RESTORE_DISPLAY_CONFIG=0
+ '[' -n /workspace/kernel/build64-debug ']'
+ BUILD_DIR=/workspace/kernel/build64-debug
+ cd /workspace/kernel
++ nproc
+ make -j48 O=/workspace/kernel/build64-debug modules_prepare
make[1]: Entering directory '/workspace/kernel/build64-debug'
GEN Makefile
DESCEND objtool
CALL ../scripts/checksyscalls.sh
INSTALL libsubcmd_headers
CC /workspace/kernel/build64-debug/tools/objtool/libsubcmd/exec-cmd.o
CC /workspace/kernel/build64-debug/tools/objtool/libsubcmd/help.o
CC /workspace/kernel/build64-debug/tools/objtool/libsubcmd/pager.o
CC /workspace/kernel/build64-debug/tools/objtool/libsubcmd/parse-options.o
CC /workspace/kernel/build64-debug/tools/objtool/libsubcmd/run-command.o
CC /workspace/kernel/build64-debug/tools/objtool/libsubcmd/sigchain.o
CC /workspace/kernel/build64-debug/tools/objtool/libsubcmd/subcmd-config.o
LD /workspace/kernel/build64-debug/tools/objtool/libsubcmd/libsubcmd-in.o
AR /workspace/kernel/build64-debug/tools/objtool/libsubcmd/libsubcmd.a
CC /workspace/kernel/build64-debug/tools/objtool/weak.o
CC /workspace/kernel/build64-debug/tools/objtool/check.o
CC /workspace/kernel/build64-debug/tools/objtool/special.o
CC /workspace/kernel/build64-debug/tools/objtool/builtin-check.o
CC /workspace/kernel/build64-debug/tools/objtool/elf.o
CC /workspace/kernel/build64-debug/tools/objtool/arch/x86/special.o
CC /workspace/kernel/build64-debug/tools/objtool/objtool.o
CC /workspace/kernel/build64-debug/tools/objtool/arch/x86/decode.o
CC /workspace/kernel/build64-debug/tools/objtool/arch/x86/orc.o
CC /workspace/kernel/build64-debug/tools/objtool/orc_gen.o
CC /workspace/kernel/build64-debug/tools/objtool/orc_dump.o
CC /workspace/kernel/build64-debug/tools/objtool/libstring.o
CC /workspace/kernel/build64-debug/tools/objtool/libctype.o
CC /workspace/kernel/build64-debug/tools/objtool/str_error_r.o
CC /workspace/kernel/build64-debug/tools/objtool/librbtree.o
LD /workspace/kernel/build64-debug/tools/objtool/arch/x86/objtool-in.o
LD /workspace/kernel/build64-debug/tools/objtool/objtool-in.o
LINK /workspace/kernel/build64-debug/tools/objtool/objtool
make[1]: Leaving directory '/workspace/kernel/build64-debug'
++ nproc
+ make -j48 O=/workspace/kernel/build64-debug W=1 drivers/gpu/drm/xe
make[1]: Entering directory '/workspace/kernel/build64-debug'
make[2]: Nothing to be done for 'drivers/gpu/drm/xe'.
make[1]: Leaving directory '/workspace/kernel/build64-debug'
run-parts: executing /workspace/ci/hooks/11-build-32b
+++ realpath /workspace/ci/hooks/11-build-32b
++ dirname /workspace/ci/hooks/11-build-32b
+ THIS_SCRIPT_DIR=/workspace/ci/hooks
+ SRC_DIR=/workspace/kernel
+ TOOLS_SRC_DIR=/workspace/ci
+ '[' -n /workspace/kernel/build64-debug ']'
+ BUILD_DIR=/workspace/kernel/build64-debug
+ BUILD_DIR=/workspace/kernel/build64-debug/build32
+ cd /workspace/kernel
+ mkdir -p /workspace/kernel/build64-debug/build32
++ nproc
+ make -j48 ARCH=i386 O=/workspace/kernel/build64-debug/build32 defconfig
make[1]: Entering directory '/workspace/kernel/build64-debug/build32'
GEN Makefile
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/confdata.o
HOSTCC scripts/kconfig/expr.o
YACC scripts/kconfig/parser.tab.[ch]
LEX scripts/kconfig/lexer.lex.c
HOSTCC scripts/kconfig/menu.o
HOSTCC scripts/kconfig/preprocess.o
HOSTCC scripts/kconfig/util.o
HOSTCC scripts/kconfig/symbol.o
HOSTCC scripts/kconfig/lexer.lex.o
HOSTCC scripts/kconfig/parser.tab.o
HOSTLD scripts/kconfig/conf
*** Default configuration is based on 'i386_defconfig'
#
# configuration written to .config
#
make[1]: Leaving directory '/workspace/kernel/build64-debug/build32'
+ cd /workspace/kernel/build64-debug/build32
+ /workspace/kernel/scripts/kconfig/merge_config.sh .config /workspace/ci/kernel/fragments/10-xe.fragment
Using .config as base
Merging /workspace/ci/kernel/fragments/10-xe.fragment
Value of CONFIG_DRM_XE is redefined by fragment /workspace/ci/kernel/fragments/10-xe.fragment:
Previous value: # CONFIG_DRM_XE is not set
New value: CONFIG_DRM_XE=m
GEN Makefile
WARNING: unmet direct dependencies detected for INTEL_MEI_LATE_BIND
Depends on [n]: INTEL_MEI [=n] && DRM_XE [=m]
Selected by [m]:
- DRM_XE [=m] && HAS_IOMEM [=y] && DRM [=y] && PCI [=y] && MMU [=y] && (m [=m] && MODULES [=y] || KUNIT [=n]=y [=y])
#
# configuration written to .config
#
Value requested for CONFIG_HAVE_UID16 not in final .config
Requested value: CONFIG_HAVE_UID16=y
Actual value:
Value requested for CONFIG_UID16 not in final .config
Requested value: CONFIG_UID16=y
Actual value:
Value requested for CONFIG_X86_32 not in final .config
Requested value: CONFIG_X86_32=y
Actual value:
Value requested for CONFIG_OUTPUT_FORMAT not in final .config
Requested value: CONFIG_OUTPUT_FORMAT="elf32-i386"
Actual value: CONFIG_OUTPUT_FORMAT="elf64-x86-64"
Value requested for CONFIG_ARCH_MMAP_RND_BITS_MIN not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS_MIN=8
Actual value: CONFIG_ARCH_MMAP_RND_BITS_MIN=28
Value requested for CONFIG_ARCH_MMAP_RND_BITS_MAX not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS_MAX=16
Actual value: CONFIG_ARCH_MMAP_RND_BITS_MAX=32
Value requested for CONFIG_PGTABLE_LEVELS not in final .config
Requested value: CONFIG_PGTABLE_LEVELS=2
Actual value: CONFIG_PGTABLE_LEVELS=5
Value requested for CONFIG_X86_INTEL_QUARK not in final .config
Requested value: # CONFIG_X86_INTEL_QUARK is not set
Actual value:
Value requested for CONFIG_X86_RDC321X not in final .config
Requested value: # CONFIG_X86_RDC321X is not set
Actual value:
Value requested for CONFIG_X86_32_IRIS not in final .config
Requested value: # CONFIG_X86_32_IRIS is not set
Actual value:
Value requested for CONFIG_M486SX not in final .config
Requested value: # CONFIG_M486SX is not set
Actual value:
Value requested for CONFIG_M486 not in final .config
Requested value: # CONFIG_M486 is not set
Actual value:
Value requested for CONFIG_M586 not in final .config
Requested value: # CONFIG_M586 is not set
Actual value:
Value requested for CONFIG_M586TSC not in final .config
Requested value: # CONFIG_M586TSC is not set
Actual value:
Value requested for CONFIG_M586MMX not in final .config
Requested value: # CONFIG_M586MMX is not set
Actual value:
Value requested for CONFIG_M686 not in final .config
Requested value: CONFIG_M686=y
Actual value:
Value requested for CONFIG_MPENTIUMII not in final .config
Requested value: # CONFIG_MPENTIUMII is not set
Actual value:
Value requested for CONFIG_MPENTIUMIII not in final .config
Requested value: # CONFIG_MPENTIUMIII is not set
Actual value:
Value requested for CONFIG_MPENTIUMM not in final .config
Requested value: # CONFIG_MPENTIUMM is not set
Actual value:
Value requested for CONFIG_MPENTIUM4 not in final .config
Requested value: # CONFIG_MPENTIUM4 is not set
Actual value:
Value requested for CONFIG_MK6 not in final .config
Requested value: # CONFIG_MK6 is not set
Actual value:
Value requested for CONFIG_MK7 not in final .config
Requested value: # CONFIG_MK7 is not set
Actual value:
Value requested for CONFIG_MCRUSOE not in final .config
Requested value: # CONFIG_MCRUSOE is not set
Actual value:
Value requested for CONFIG_MEFFICEON not in final .config
Requested value: # CONFIG_MEFFICEON is not set
Actual value:
Value requested for CONFIG_MWINCHIPC6 not in final .config
Requested value: # CONFIG_MWINCHIPC6 is not set
Actual value:
Value requested for CONFIG_MWINCHIP3D not in final .config
Requested value: # CONFIG_MWINCHIP3D is not set
Actual value:
Value requested for CONFIG_MELAN not in final .config
Requested value: # CONFIG_MELAN is not set
Actual value:
Value requested for CONFIG_MGEODEGX1 not in final .config
Requested value: # CONFIG_MGEODEGX1 is not set
Actual value:
Value requested for CONFIG_MGEODE_LX not in final .config
Requested value: # CONFIG_MGEODE_LX is not set
Actual value:
Value requested for CONFIG_MCYRIXIII not in final .config
Requested value: # CONFIG_MCYRIXIII is not set
Actual value:
Value requested for CONFIG_MVIAC3_2 not in final .config
Requested value: # CONFIG_MVIAC3_2 is not set
Actual value:
Value requested for CONFIG_MVIAC7 not in final .config
Requested value: # CONFIG_MVIAC7 is not set
Actual value:
Value requested for CONFIG_MATOM not in final .config
Requested value: # CONFIG_MATOM is not set
Actual value:
Value requested for CONFIG_X86_GENERIC not in final .config
Requested value: # CONFIG_X86_GENERIC is not set
Actual value:
Value requested for CONFIG_X86_INTERNODE_CACHE_SHIFT not in final .config
Requested value: CONFIG_X86_INTERNODE_CACHE_SHIFT=5
Actual value: CONFIG_X86_INTERNODE_CACHE_SHIFT=6
Value requested for CONFIG_X86_L1_CACHE_SHIFT not in final .config
Requested value: CONFIG_X86_L1_CACHE_SHIFT=5
Actual value: CONFIG_X86_L1_CACHE_SHIFT=6
Value requested for CONFIG_X86_USE_PPRO_CHECKSUM not in final .config
Requested value: CONFIG_X86_USE_PPRO_CHECKSUM=y
Actual value:
Value requested for CONFIG_X86_MINIMUM_CPU_FAMILY not in final .config
Requested value: CONFIG_X86_MINIMUM_CPU_FAMILY=6
Actual value: CONFIG_X86_MINIMUM_CPU_FAMILY=64
Value requested for CONFIG_CPU_SUP_TRANSMETA_32 not in final .config
Requested value: CONFIG_CPU_SUP_TRANSMETA_32=y
Actual value:
Value requested for CONFIG_CPU_SUP_VORTEX_32 not in final .config
Requested value: CONFIG_CPU_SUP_VORTEX_32=y
Actual value:
Value requested for CONFIG_HPET_TIMER not in final .config
Requested value: # CONFIG_HPET_TIMER is not set
Actual value: CONFIG_HPET_TIMER=y
Value requested for CONFIG_NR_CPUS_RANGE_END not in final .config
Requested value: CONFIG_NR_CPUS_RANGE_END=8
Actual value: CONFIG_NR_CPUS_RANGE_END=512
Value requested for CONFIG_NR_CPUS_DEFAULT not in final .config
Requested value: CONFIG_NR_CPUS_DEFAULT=8
Actual value: CONFIG_NR_CPUS_DEFAULT=64
Value requested for CONFIG_X86_ANCIENT_MCE not in final .config
Requested value: # CONFIG_X86_ANCIENT_MCE is not set
Actual value:
Value requested for CONFIG_X86_LEGACY_VM86 not in final .config
Requested value: # CONFIG_X86_LEGACY_VM86 is not set
Actual value:
Value requested for CONFIG_X86_ESPFIX32 not in final .config
Requested value: CONFIG_X86_ESPFIX32=y
Actual value:
Value requested for CONFIG_TOSHIBA not in final .config
Requested value: # CONFIG_TOSHIBA is not set
Actual value:
Value requested for CONFIG_X86_REBOOTFIXUPS not in final .config
Requested value: # CONFIG_X86_REBOOTFIXUPS is not set
Actual value:
Value requested for CONFIG_MICROCODE_INITRD32 not in final .config
Requested value: CONFIG_MICROCODE_INITRD32=y
Actual value:
Value requested for CONFIG_HIGHMEM4G not in final .config
Requested value: # CONFIG_HIGHMEM4G is not set
Actual value:
Value requested for CONFIG_VMSPLIT_3G not in final .config
Requested value: CONFIG_VMSPLIT_3G=y
Actual value:
Value requested for CONFIG_VMSPLIT_3G_OPT not in final .config
Requested value: # CONFIG_VMSPLIT_3G_OPT is not set
Actual value:
Value requested for CONFIG_VMSPLIT_2G not in final .config
Requested value: # CONFIG_VMSPLIT_2G is not set
Actual value:
Value requested for CONFIG_VMSPLIT_2G_OPT not in final .config
Requested value: # CONFIG_VMSPLIT_2G_OPT is not set
Actual value:
Value requested for CONFIG_VMSPLIT_1G not in final .config
Requested value: # CONFIG_VMSPLIT_1G is not set
Actual value:
Value requested for CONFIG_PAGE_OFFSET not in final .config
Requested value: CONFIG_PAGE_OFFSET=0xC0000000
Actual value:
Value requested for CONFIG_X86_PAE not in final .config
Requested value: # CONFIG_X86_PAE is not set
Actual value:
Value requested for CONFIG_ARCH_FLATMEM_ENABLE not in final .config
Requested value: CONFIG_ARCH_FLATMEM_ENABLE=y
Actual value:
Value requested for CONFIG_ARCH_SELECT_MEMORY_MODEL not in final .config
Requested value: CONFIG_ARCH_SELECT_MEMORY_MODEL=y
Actual value:
Value requested for CONFIG_ILLEGAL_POINTER_VALUE not in final .config
Requested value: CONFIG_ILLEGAL_POINTER_VALUE=0
Actual value: CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
Value requested for CONFIG_COMPAT_VDSO not in final .config
Requested value: # CONFIG_COMPAT_VDSO is not set
Actual value:
Value requested for CONFIG_FUNCTION_PADDING_CFI not in final .config
Requested value: CONFIG_FUNCTION_PADDING_CFI=0
Actual value: CONFIG_FUNCTION_PADDING_CFI=11
Value requested for CONFIG_FUNCTION_PADDING_BYTES not in final .config
Requested value: CONFIG_FUNCTION_PADDING_BYTES=4
Actual value: CONFIG_FUNCTION_PADDING_BYTES=16
Value requested for CONFIG_APM not in final .config
Requested value: # CONFIG_APM is not set
Actual value:
Value requested for CONFIG_X86_POWERNOW_K6 not in final .config
Requested value: # CONFIG_X86_POWERNOW_K6 is not set
Actual value:
Value requested for CONFIG_X86_POWERNOW_K7 not in final .config
Requested value: # CONFIG_X86_POWERNOW_K7 is not set
Actual value:
Value requested for CONFIG_X86_GX_SUSPMOD not in final .config
Requested value: # CONFIG_X86_GX_SUSPMOD is not set
Actual value:
Value requested for CONFIG_X86_SPEEDSTEP_ICH not in final .config
Requested value: # CONFIG_X86_SPEEDSTEP_ICH is not set
Actual value:
Value requested for CONFIG_X86_SPEEDSTEP_SMI not in final .config
Requested value: # CONFIG_X86_SPEEDSTEP_SMI is not set
Actual value:
Value requested for CONFIG_X86_CPUFREQ_NFORCE2 not in final .config
Requested value: # CONFIG_X86_CPUFREQ_NFORCE2 is not set
Actual value:
Value requested for CONFIG_X86_LONGRUN not in final .config
Requested value: # CONFIG_X86_LONGRUN is not set
Actual value:
Value requested for CONFIG_X86_LONGHAUL not in final .config
Requested value: # CONFIG_X86_LONGHAUL is not set
Actual value:
Value requested for CONFIG_X86_E_POWERSAVER not in final .config
Requested value: # CONFIG_X86_E_POWERSAVER is not set
Actual value:
Value requested for CONFIG_PCI_GOBIOS not in final .config
Requested value: # CONFIG_PCI_GOBIOS is not set
Actual value:
Value requested for CONFIG_PCI_GOMMCONFIG not in final .config
Requested value: # CONFIG_PCI_GOMMCONFIG is not set
Actual value:
Value requested for CONFIG_PCI_GODIRECT not in final .config
Requested value: # CONFIG_PCI_GODIRECT is not set
Actual value:
Value requested for CONFIG_PCI_GOANY not in final .config
Requested value: CONFIG_PCI_GOANY=y
Actual value:
Value requested for CONFIG_PCI_BIOS not in final .config
Requested value: CONFIG_PCI_BIOS=y
Actual value:
Value requested for CONFIG_ISA not in final .config
Requested value: # CONFIG_ISA is not set
Actual value:
Value requested for CONFIG_SCx200 not in final .config
Requested value: # CONFIG_SCx200 is not set
Actual value:
Value requested for CONFIG_OLPC not in final .config
Requested value: # CONFIG_OLPC is not set
Actual value:
Value requested for CONFIG_ALIX not in final .config
Requested value: # CONFIG_ALIX is not set
Actual value:
Value requested for CONFIG_NET5501 not in final .config
Requested value: # CONFIG_NET5501 is not set
Actual value:
Value requested for CONFIG_GEOS not in final .config
Requested value: # CONFIG_GEOS is not set
Actual value:
Value requested for CONFIG_COMPAT_32 not in final .config
Requested value: CONFIG_COMPAT_32=y
Actual value:
Value requested for CONFIG_HAVE_ATOMIC_IOMAP not in final .config
Requested value: CONFIG_HAVE_ATOMIC_IOMAP=y
Actual value:
Value requested for CONFIG_X86_DISABLED_FEATURE_PCID not in final .config
Requested value: CONFIG_X86_DISABLED_FEATURE_PCID=y
Actual value:
Value requested for CONFIG_X86_DISABLED_FEATURE_PKU not in final .config
Requested value: CONFIG_X86_DISABLED_FEATURE_PKU=y
Actual value:
Value requested for CONFIG_X86_DISABLED_FEATURE_OSPKE not in final .config
Requested value: CONFIG_X86_DISABLED_FEATURE_OSPKE=y
Actual value:
Value requested for CONFIG_X86_DISABLED_FEATURE_LA57 not in final .config
Requested value: CONFIG_X86_DISABLED_FEATURE_LA57=y
Actual value:
Value requested for CONFIG_X86_DISABLED_FEATURE_PTI not in final .config
Requested value: CONFIG_X86_DISABLED_FEATURE_PTI=y
Actual value:
Value requested for CONFIG_X86_DISABLED_FEATURE_IBT not in final .config
Requested value: CONFIG_X86_DISABLED_FEATURE_IBT=y
Actual value:
Value requested for CONFIG_X86_DISABLED_FEATURE_INVLPGB not in final .config
Requested value: CONFIG_X86_DISABLED_FEATURE_INVLPGB=y
Actual value:
Value requested for CONFIG_ARCH_32BIT_OFF_T not in final .config
Requested value: CONFIG_ARCH_32BIT_OFF_T=y
Actual value:
Value requested for CONFIG_ARCH_WANT_IPC_PARSE_VERSION not in final .config
Requested value: CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
Actual value:
Value requested for CONFIG_MODULES_USE_ELF_REL not in final .config
Requested value: CONFIG_MODULES_USE_ELF_REL=y
Actual value:
Value requested for CONFIG_ARCH_MMAP_RND_BITS not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS=8
Actual value: CONFIG_ARCH_MMAP_RND_BITS=28
Value requested for CONFIG_CLONE_BACKWARDS not in final .config
Requested value: CONFIG_CLONE_BACKWARDS=y
Actual value:
Value requested for CONFIG_OLD_SIGSUSPEND3 not in final .config
Requested value: CONFIG_OLD_SIGSUSPEND3=y
Actual value:
Value requested for CONFIG_OLD_SIGACTION not in final .config
Requested value: CONFIG_OLD_SIGACTION=y
Actual value:
Value requested for CONFIG_ARCH_SPLIT_ARG64 not in final .config
Requested value: CONFIG_ARCH_SPLIT_ARG64=y
Actual value:
Value requested for CONFIG_FUNCTION_ALIGNMENT not in final .config
Requested value: CONFIG_FUNCTION_ALIGNMENT=4
Actual value: CONFIG_FUNCTION_ALIGNMENT=16
Value requested for CONFIG_SELECT_MEMORY_MODEL not in final .config
Requested value: CONFIG_SELECT_MEMORY_MODEL=y
Actual value:
Value requested for CONFIG_FLATMEM_MANUAL not in final .config
Requested value: CONFIG_FLATMEM_MANUAL=y
Actual value:
Value requested for CONFIG_SPARSEMEM_MANUAL not in final .config
Requested value: # CONFIG_SPARSEMEM_MANUAL is not set
Actual value:
Value requested for CONFIG_FLATMEM not in final .config
Requested value: CONFIG_FLATMEM=y
Actual value:
Value requested for CONFIG_SPARSEMEM_STATIC not in final .config
Requested value: CONFIG_SPARSEMEM_STATIC=y
Actual value:
Value requested for CONFIG_KMAP_LOCAL not in final .config
Requested value: CONFIG_KMAP_LOCAL=y
Actual value:
Value requested for CONFIG_HAVE_EISA not in final .config
Requested value: CONFIG_HAVE_EISA=y
Actual value:
Value requested for CONFIG_EISA not in final .config
Requested value: # CONFIG_EISA is not set
Actual value:
Value requested for CONFIG_HOTPLUG_PCI_COMPAQ not in final .config
Requested value: # CONFIG_HOTPLUG_PCI_COMPAQ is not set
Actual value:
Value requested for CONFIG_HOTPLUG_PCI_IBM not in final .config
Requested value: # CONFIG_HOTPLUG_PCI_IBM is not set
Actual value:
Value requested for CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH not in final .config
Requested value: CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
Actual value:
Value requested for CONFIG_FWCTL not in final .config
Requested value: # CONFIG_FWCTL is not set
Actual value: CONFIG_FWCTL=m
Value requested for CONFIG_PCH_PHUB not in final .config
Requested value: # CONFIG_PCH_PHUB is not set
Actual value:
Value requested for CONFIG_SCSI_NSP32 not in final .config
Requested value: # CONFIG_SCSI_NSP32 is not set
Actual value:
Value requested for CONFIG_PATA_CS5520 not in final .config
Requested value: # CONFIG_PATA_CS5520 is not set
Actual value:
Value requested for CONFIG_PATA_CS5530 not in final .config
Requested value: # CONFIG_PATA_CS5530 is not set
Actual value:
Value requested for CONFIG_PATA_CS5535 not in final .config
Requested value: # CONFIG_PATA_CS5535 is not set
Actual value:
Value requested for CONFIG_PATA_CS5536 not in final .config
Requested value: # CONFIG_PATA_CS5536 is not set
Actual value:
Value requested for CONFIG_PATA_SC1200 not in final .config
Requested value: # CONFIG_PATA_SC1200 is not set
Actual value:
Value requested for CONFIG_PCH_GBE not in final .config
Requested value: # CONFIG_PCH_GBE is not set
Actual value:
Value requested for CONFIG_INPUT_WISTRON_BTNS not in final .config
Requested value: # CONFIG_INPUT_WISTRON_BTNS is not set
Actual value:
Value requested for CONFIG_SERIAL_TIMBERDALE not in final .config
Requested value: # CONFIG_SERIAL_TIMBERDALE is not set
Actual value:
Value requested for CONFIG_SERIAL_PCH_UART not in final .config
Requested value: # CONFIG_SERIAL_PCH_UART is not set
Actual value:
Value requested for CONFIG_HW_RANDOM_GEODE not in final .config
Requested value: CONFIG_HW_RANDOM_GEODE=y
Actual value:
Value requested for CONFIG_SONYPI not in final .config
Requested value: # CONFIG_SONYPI is not set
Actual value:
Value requested for CONFIG_PC8736x_GPIO not in final .config
Requested value: # CONFIG_PC8736x_GPIO is not set
Actual value:
Value requested for CONFIG_NSC_GPIO not in final .config
Requested value: # CONFIG_NSC_GPIO is not set
Actual value:
Value requested for CONFIG_I2C_EG20T not in final .config
Requested value: # CONFIG_I2C_EG20T is not set
Actual value:
Value requested for CONFIG_SCx200_ACB not in final .config
Requested value: # CONFIG_SCx200_ACB is not set
Actual value:
Value requested for CONFIG_PTP_1588_CLOCK_PCH not in final .config
Requested value: # CONFIG_PTP_1588_CLOCK_PCH is not set
Actual value:
Value requested for CONFIG_SBC8360_WDT not in final .config
Requested value: # CONFIG_SBC8360_WDT is not set
Actual value:
Value requested for CONFIG_SBC7240_WDT not in final .config
Requested value: # CONFIG_SBC7240_WDT is not set
Actual value:
Value requested for CONFIG_MFD_CS5535 not in final .config
Requested value: # CONFIG_MFD_CS5535 is not set
Actual value:
Value requested for CONFIG_AGP_ALI not in final .config
Requested value: # CONFIG_AGP_ALI is not set
Actual value:
Value requested for CONFIG_AGP_ATI not in final .config
Requested value: # CONFIG_AGP_ATI is not set
Actual value:
Value requested for CONFIG_AGP_AMD not in final .config
Requested value: # CONFIG_AGP_AMD is not set
Actual value:
Value requested for CONFIG_AGP_NVIDIA not in final .config
Requested value: # CONFIG_AGP_NVIDIA is not set
Actual value:
Value requested for CONFIG_AGP_SWORKS not in final .config
Requested value: # CONFIG_AGP_SWORKS is not set
Actual value:
Value requested for CONFIG_AGP_EFFICEON not in final .config
Requested value: # CONFIG_AGP_EFFICEON is not set
Actual value:
Value requested for CONFIG_SND_CS5530 not in final .config
Requested value: # CONFIG_SND_CS5530 is not set
Actual value:
Value requested for CONFIG_SND_CS5535AUDIO not in final .config
Requested value: # CONFIG_SND_CS5535AUDIO is not set
Actual value:
Value requested for CONFIG_SND_SIS7019 not in final .config
Requested value: # CONFIG_SND_SIS7019 is not set
Actual value:
Value requested for CONFIG_LEDS_OT200 not in final .config
Requested value: # CONFIG_LEDS_OT200 is not set
Actual value:
Value requested for CONFIG_PCH_DMA not in final .config
Requested value: # CONFIG_PCH_DMA is not set
Actual value:
Value requested for CONFIG_CLKSRC_I8253 not in final .config
Requested value: CONFIG_CLKSRC_I8253=y
Actual value:
Value requested for CONFIG_MAILBOX not in final .config
Requested value: # CONFIG_MAILBOX is not set
Actual value: CONFIG_MAILBOX=y
Value requested for CONFIG_CRYPTO_SERPENT_SSE2_586 not in final .config
Requested value: # CONFIG_CRYPTO_SERPENT_SSE2_586 is not set
Actual value:
Value requested for CONFIG_CRYPTO_TWOFISH_586 not in final .config
Requested value: # CONFIG_CRYPTO_TWOFISH_586 is not set
Actual value:
Value requested for CONFIG_CRYPTO_DEV_GEODE not in final .config
Requested value: # CONFIG_CRYPTO_DEV_GEODE is not set
Actual value:
Value requested for CONFIG_CRYPTO_DEV_HIFN_795X not in final .config
Requested value: # CONFIG_CRYPTO_DEV_HIFN_795X is not set
Actual value:
Value requested for CONFIG_CRYPTO_LIB_POLY1305_RSIZE not in final .config
Requested value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
Actual value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
Value requested for CONFIG_AUDIT_GENERIC not in final .config
Requested value: CONFIG_AUDIT_GENERIC=y
Actual value:
Value requested for CONFIG_GENERIC_VDSO_32 not in final .config
Requested value: CONFIG_GENERIC_VDSO_32=y
Actual value:
Value requested for CONFIG_DEBUG_KMAP_LOCAL not in final .config
Requested value: # CONFIG_DEBUG_KMAP_LOCAL is not set
Actual value:
Value requested for CONFIG_HAVE_DEBUG_STACKOVERFLOW not in final .config
Requested value: CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
Actual value:
Value requested for CONFIG_DEBUG_STACKOVERFLOW not in final .config
Requested value: # CONFIG_DEBUG_STACKOVERFLOW is not set
Actual value:
Value requested for CONFIG_HAVE_FUNCTION_GRAPH_TRACER not in final .config
Requested value: CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
Actual value:
Value requested for CONFIG_HAVE_FUNCTION_GRAPH_FREGS not in final .config
Requested value: CONFIG_HAVE_FUNCTION_GRAPH_FREGS=y
Actual value:
Value requested for CONFIG_HAVE_FTRACE_GRAPH_FUNC not in final .config
Requested value: CONFIG_HAVE_FTRACE_GRAPH_FUNC=y
Actual value:
Value requested for CONFIG_DRM_KUNIT_TEST not in final .config
Requested value: CONFIG_DRM_KUNIT_TEST=m
Actual value:
Value requested for CONFIG_DRM_XE_WERROR not in final .config
Requested value: CONFIG_DRM_XE_WERROR=y
Actual value:
Value requested for CONFIG_DRM_XE_DEBUG not in final .config
Requested value: CONFIG_DRM_XE_DEBUG=y
Actual value:
Value requested for CONFIG_DRM_XE_DEBUG_MEM not in final .config
Requested value: CONFIG_DRM_XE_DEBUG_MEM=y
Actual value:
Value requested for CONFIG_DRM_XE_KUNIT_TEST not in final .config
Requested value: CONFIG_DRM_XE_KUNIT_TEST=m
Actual value:
++ nproc
+ make -j48 ARCH=i386 olddefconfig
GEN Makefile
WARNING: unmet direct dependencies detected for INTEL_MEI_LATE_BIND
Depends on [n]: INTEL_MEI [=n] && DRM_XE [=m]
Selected by [m]:
- DRM_XE [=m] && HAS_IOMEM [=y] && DRM [=y] && PCI [=y] && MMU [=y] && (m [=m] && MODULES [=y] || KUNIT [=n]=y [=y])
#
# configuration written to .config
#
++ nproc
+ make -j48 ARCH=i386
SYNC include/config/auto.conf.cmd
GEN Makefile
WARNING: unmet direct dependencies detected for INTEL_MEI_LATE_BIND
Depends on [n]: INTEL_MEI [=n] && DRM_XE [=m]
Selected by [m]:
- DRM_XE [=m] && HAS_IOMEM [=y] && DRM [=y] && PCI [=y] && MMU [=y] && (m [=m] && MODULES [=y] || KUNIT [=n]=y [=y])
WARNING: unmet direct dependencies detected for INTEL_MEI_LATE_BIND
Depends on [n]: INTEL_MEI [=n] && DRM_XE [=m]
Selected by [m]:
- DRM_XE [=m] && HAS_IOMEM [=y] && DRM [=y] && PCI [=y] && MMU [=y] && (m [=m] && MODULES [=y] || KUNIT [=n]=y [=y])
GEN Makefile
WRAP arch/x86/include/generated/uapi/asm/bpf_perf_event.h
WRAP arch/x86/include/generated/uapi/asm/fcntl.h
WRAP arch/x86/include/generated/uapi/asm/errno.h
WRAP arch/x86/include/generated/uapi/asm/ioctl.h
WRAP arch/x86/include/generated/uapi/asm/ioctls.h
WRAP arch/x86/include/generated/uapi/asm/ipcbuf.h
WRAP arch/x86/include/generated/uapi/asm/param.h
WRAP arch/x86/include/generated/uapi/asm/poll.h
WRAP arch/x86/include/generated/uapi/asm/resource.h
WRAP arch/x86/include/generated/uapi/asm/socket.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
WRAP arch/x86/include/generated/uapi/asm/termbits.h
WRAP arch/x86/include/generated/uapi/asm/sockios.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
WRAP arch/x86/include/generated/uapi/asm/termios.h
UPD include/generated/uapi/linux/version.h
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
WRAP arch/x86/include/generated/uapi/asm/types.h
UPD arch/x86/include/generated/asm/cpufeaturemasks.h
UPD include/generated/compile.h
HOSTCC arch/x86/tools/relocs_32.o
HOSTCC arch/x86/tools/relocs_64.o
WRAP arch/x86/include/generated/asm/early_ioremap.h
HOSTCC arch/x86/tools/relocs_common.o
WRAP arch/x86/include/generated/asm/fprobe.h
WRAP arch/x86/include/generated/asm/mcs_spinlock.h
WRAP arch/x86/include/generated/asm/mmzone.h
WRAP arch/x86/include/generated/asm/irq_regs.h
WRAP arch/x86/include/generated/asm/kmap_size.h
WRAP arch/x86/include/generated/asm/local64.h
WRAP arch/x86/include/generated/asm/mmiowb.h
WRAP arch/x86/include/generated/asm/module.lds.h
WRAP arch/x86/include/generated/asm/rwonce.h
HOSTCC scripts/kallsyms
HOSTCC scripts/sorttable
HOSTCC scripts/asn1_compiler
HOSTCC scripts/selinux/mdp/mdp
HOSTLD arch/x86/tools/relocs
UPD include/config/kernel.release
UPD include/generated/utsrelease.h
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
CC scripts/mod/devicetable-offsets.s
UPD scripts/mod/devicetable-offsets.h
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/sumversion.o
HOSTCC scripts/mod/symsearch.o
HOSTLD scripts/mod/modpost
CC kernel/bounds.s
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-arch-fallback.h
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-instrumented.h
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-long.h
UPD include/generated/timeconst.h
UPD include/generated/bounds.h
CC arch/x86/kernel/asm-offsets.s
UPD include/generated/asm-offsets.h
CALL /workspace/kernel/scripts/checksyscalls.sh
LDS scripts/module.lds
HOSTCC usr/gen_init_cpio
CC init/main.o
CC init/do_mounts.o
CC certs/system_keyring.o
CC init/do_mounts_initrd.o
CC init/initramfs.o
UPD init/utsversion-tmp.h
CC ipc/util.o
CC init/calibrate.o
CC ipc/msgutil.o
CC security/commoncap.o
CC init/init_task.o
CC ipc/msg.o
CC mm/filemap.o
CC io_uring/io_uring.o
CC security/lsm_syscalls.o
CC mm/mempool.o
CC ipc/sem.o
AS arch/x86/lib/atomic64_cx8_32.o
CC io_uring/opdef.o
CC security/min_addr.o
CC block/bdev.o
CC arch/x86/power/cpu.o
AR arch/x86/crypto/built-in.a
CC arch/x86/realmode/init.o
AR arch/x86/net/built-in.a
CC arch/x86/video/video-common.o
HOSTCC security/selinux/genheaders
CC security/keys/gc.o
CC security/integrity/iint.o
CC arch/x86/pci/i386.o
CC block/partitions/core.o
CC fs/nfs_common/nfsacl.o
CC arch/x86/events/amd/core.o
AR virt/lib/built-in.a
AR drivers/cache/built-in.a
CC arch/x86/mm/pat/set_memory.o
CC arch/x86/virt/svm/cmdline.o
CC net/core/sock.o
AR sound/i2c/other/built-in.a
CC fs/notify/dnotify/dnotify.o
AR arch/x86/platform/atom/built-in.a
AR sound/drivers/opl3/built-in.a
CC arch/x86/kernel/fpu/init.o
CC sound/core/seq/seq.o
AR arch/x86/platform/ce4100/built-in.a
AR virt/built-in.a
CC arch/x86/platform/efi/memmap.o
AR sound/i2c/built-in.a
AR lib/math/tests/built-in.a
AS arch/x86/lib/checksum_32.o
CC arch/x86/mm/pat/memtype.o
AR drivers/irqchip/built-in.a
CC arch/x86/lib/cmdline.o
CC arch/x86/kernel/fpu/bugs.o
CC lib/math/div64.o
AR sound/drivers/opl4/built-in.a
CC arch/x86/entry/vdso/vma.o
CC arch/x86/events/intel/core.o
AR sound/drivers/mpu401/built-in.a
CC kernel/sched/core.o
AR drivers/bus/mhi/built-in.a
AR drivers/bus/built-in.a
AR sound/drivers/vx/built-in.a
CC arch/x86/events/zhaoxin/core.o
CC crypto/asymmetric_keys/asymmetric_type.o
AR drivers/pwm/built-in.a
AR sound/drivers/pcsp/built-in.a
AR sound/drivers/built-in.a
AR drivers/leds/trigger/built-in.a
CC io_uring/kbuf.o
AR arch/x86/virt/svm/built-in.a
AR drivers/leds/blink/built-in.a
AR arch/x86/virt/vmx/built-in.a
CC io_uring/rsrc.o
AR arch/x86/virt/built-in.a
AS arch/x86/lib/cmpxchg8b_emu.o
AR drivers/leds/simatic/built-in.a
CC drivers/leds/led-core.o
CC arch/x86/lib/cpu.o
CC drivers/pci/msi/pcidev_msi.o
GEN security/selinux/flask.h security/selinux/av_permissions.h
CC security/selinux/avc.o
CC lib/math/gcd.o
CC lib/math/lcm.o
CC arch/x86/pci/init.o
CC lib/math/int_log.o
GEN usr/initramfs_data.cpio
COPY usr/initramfs_inc_data
CC arch/x86/kernel/fpu/core.o
AS usr/initramfs_data.o
HOSTCC certs/extract-cert
AR usr/built-in.a
CC arch/x86/pci/pcbios.o
CC lib/math/int_pow.o
CC lib/math/int_sqrt.o
CC lib/math/reciprocal_div.o
CC arch/x86/lib/delay.o
CC sound/core/seq/seq_lock.o
AS arch/x86/realmode/rm/header.o
AS arch/x86/realmode/rm/trampoline_32.o
AR arch/x86/video/built-in.a
CC security/keys/key.o
CC lib/math/rational.o
AS arch/x86/realmode/rm/stack.o
AS arch/x86/realmode/rm/reboot.o
AS arch/x86/realmode/rm/wakeup_asm.o
CERT certs/x509_certificate_list
CERT certs/signing_key.x509
AS certs/system_certificates.o
CC ipc/shm.o
CC arch/x86/realmode/rm/wakemain.o
AR arch/x86/platform/geode/built-in.a
CC block/partitions/msdos.o
AR certs/built-in.a
CC fs/nfs_common/grace.o
CC security/integrity/integrity_audit.o
CC drivers/leds/led-class.o
CC crypto/api.o
CC arch/x86/events/amd/lbr.o
AR arch/x86/entry/vsyscall/built-in.a
CC arch/x86/entry/vdso/extable.o
AR lib/tests/built-in.a
CC crypto/asymmetric_keys/restrict.o
CC arch/x86/realmode/rm/video-mode.o
CC sound/core/seq/seq_clientmgr.o
CC lib/crypto/mpi/generic_mpih-lshift.o
CC arch/x86/platform/efi/quirks.o
CC lib/vdso/datastore.o
CC arch/x86/platform/efi/efi.o
CC drivers/pci/msi/api.o
CC lib/crypto/memneq.o
AR fs/notify/dnotify/built-in.a
CC fs/notify/inotify/inotify_fsnotify.o
CC arch/x86/power/hibernate_32.o
AS arch/x86/power/hibernate_asm_32.o
AS arch/x86/lib/getuser.o
CC drivers/pci/msi/msi.o
CC drivers/pci/msi/irqdomain.o
GEN arch/x86/lib/inat-tables.c
AS arch/x86/realmode/rm/copy.o
CC sound/core/seq/seq_memory.o
CC arch/x86/lib/insn-eval.o
AS arch/x86/realmode/rm/bioscall.o
CC arch/x86/lib/insn.o
CC arch/x86/realmode/rm/regs.o
CC lib/crypto/utils.o
AR arch/x86/events/zhaoxin/built-in.a
CC arch/x86/realmode/rm/video-vga.o
CC lib/crypto/chacha.o
AR lib/math/built-in.a
CC fs/notify/inotify/inotify_user.o
CC kernel/sched/fair.o
CC arch/x86/realmode/rm/video-vesa.o
CC fs/iomap/trace.o
CC arch/x86/pci/mmconfig_32.o
CC arch/x86/power/hibernate.o
AR sound/isa/ad1816a/built-in.a
CC arch/x86/realmode/rm/video-bios.o
AR sound/isa/ad1848/built-in.a
AR sound/isa/cs423x/built-in.a
CC crypto/cipher.o
AR sound/isa/es1688/built-in.a
AR sound/pci/ac97/built-in.a
LDS arch/x86/entry/vdso/vdso32/vdso32.lds
AR sound/isa/galaxy/built-in.a
AR sound/pci/ali5451/built-in.a
AR sound/isa/gus/built-in.a
AR sound/pci/asihpi/built-in.a
CC crypto/asymmetric_keys/signature.o
AR sound/isa/msnd/built-in.a
AR arch/x86/platform/iris/built-in.a
PASYMS arch/x86/realmode/rm/pasyms.h
CC kernel/sched/build_policy.o
AR sound/pci/au88x0/built-in.a
AR sound/isa/opti9xx/built-in.a
CC security/keys/keyring.o
AR sound/pci/aw2/built-in.a
CC fs/nfs_common/common.o
AR sound/isa/sb/built-in.a
CC drivers/leds/led-triggers.o
AR sound/ppc/built-in.a
AR sound/pci/ctxfi/built-in.a
LDS arch/x86/realmode/rm/realmode.lds
AR sound/isa/wavefront/built-in.a
AR sound/pci/ca0106/built-in.a
AR sound/isa/wss/built-in.a
CC sound/core/seq/seq_queue.o
AR sound/isa/built-in.a
LD arch/x86/realmode/rm/realmode.elf
AR sound/pci/cs46xx/built-in.a
AR sound/pci/cs5535audio/built-in.a
CC arch/x86/lib/kaslr.o
RELOCS arch/x86/realmode/rm/realmode.relocs
OBJCOPY arch/x86/realmode/rm/realmode.bin
AS arch/x86/realmode/rmpiggy.o
AR sound/pci/lola/built-in.a
CC arch/x86/events/core.o
CC drivers/pci/pcie/portdrv.o
AR sound/pci/lx6464es/built-in.a
AS arch/x86/entry/entry.o
AR arch/x86/realmode/built-in.a
AR sound/pci/echoaudio/built-in.a
CC security/selinux/hooks.o
AR sound/pci/emu10k1/built-in.a
CC lib/crypto/mpi/generic_mpih-mul1.o
AR lib/vdso/built-in.a
AR sound/arm/built-in.a
CC sound/pci/hda/hda_bind.o
CC lib/crypto/aes.o
CC security/keys/keyctl.o
CC arch/x86/events/amd/ibs.o
CC arch/x86/mm/pat/memtype_interval.o
AR security/integrity/built-in.a
AR sound/pci/ice1712/built-in.a
CC crypto/asymmetric_keys/public_key.o
CC init/version.o
CC lib/crypto/mpi/generic_mpih-mul2.o
CC arch/x86/kernel/fpu/regset.o
CC arch/x86/kernel/cpu/mce/core.o
CC block/partitions/efi.o
AS arch/x86/entry/vdso/vdso32/note.o
AR sound/pci/korg1212/built-in.a
AS arch/x86/entry/vdso/vdso32/system_call.o
AR drivers/idle/built-in.a
CC arch/x86/mm/init.o
CC drivers/video/console/dummycon.o
AS arch/x86/entry/vdso/vdso32/sigreturn.o
CC arch/x86/entry/vdso/vdso32/vclock_gettime.o
CC sound/core/seq/seq_fifo.o
CC sound/pci/hda/hda_codec.o
CC drivers/pci/pcie/rcec.o
AR init/built-in.a
CC arch/x86/kernel/fpu/signal.o
CC sound/core/seq/seq_prioq.o
CC arch/x86/entry/vdso/vdso32/vgetcpu.o
CC crypto/algapi.o
CC arch/x86/pci/direct.o
CC arch/x86/platform/efi/efi_32.o
AR drivers/char/ipmi/built-in.a
CC crypto/scatterwalk.o
CC drivers/pci/pcie/bwctrl.o
CC arch/x86/lib/memcpy_32.o
CC lib/crypto/mpi/generic_mpih-mul3.o
AR arch/x86/power/built-in.a
CC arch/x86/kernel/cpu/mce/severity.o
CC kernel/sched/build_utility.o
AS arch/x86/lib/memmove_32.o
CC arch/x86/kernel/cpu/mtrr/mtrr.o
CC arch/x86/lib/misc.o
CC arch/x86/lib/pc-conf-reg.o
AR drivers/pci/msi/built-in.a
CC arch/x86/kernel/cpu/microcode/core.o
CC arch/x86/kernel/cpu/cacheinfo.o
AR fs/nfs_common/built-in.a
CC arch/x86/events/amd/uncore.o
AR fs/notify/inotify/built-in.a
AS arch/x86/entry/entry_32.o
AR fs/notify/fanotify/built-in.a
CC fs/notify/fsnotify.o
AR drivers/leds/built-in.a
CC ipc/syscall.o
CC fs/iomap/iter.o
AS arch/x86/lib/putuser.o
CC arch/x86/platform/intel/iosf_mbi.o
AS arch/x86/lib/retpoline.o
AR arch/x86/platform/intel-mid/built-in.a
AR arch/x86/mm/pat/built-in.a
AS arch/x86/platform/efi/efi_stub_32.o
CC arch/x86/lib/string_32.o
CC arch/x86/entry/syscall_32.o
AR drivers/pci/pwrctrl/built-in.a
ASN.1 crypto/asymmetric_keys/x509.asn1.[ch]
ASN.1 crypto/asymmetric_keys/x509_akid.asn1.[ch]
CC drivers/pci/hotplug/pci_hotplug_core.o
HOSTCC arch/x86/entry/vdso/vdso2c
CC crypto/asymmetric_keys/x509_loader.o
CC io_uring/notif.o
CC kernel/locking/mutex.o
CC arch/x86/lib/strstr_32.o
CC arch/x86/pci/mmconfig-shared.o
CC drivers/video/console/vgacon.o
CC arch/x86/lib/usercopy.o
CC arch/x86/events/intel/bts.o
CC kernel/power/qos.o
CC net/core/request_sock.o
CC net/core/skbuff.o
CC crypto/asymmetric_keys/x509_public_key.o
CC sound/core/sound.o
CC lib/crypto/mpi/generic_mpih-rshift.o
CC sound/core/seq/seq_timer.o
AR block/partitions/built-in.a
CC kernel/power/main.o
CC block/fops.o
CC arch/x86/platform/efi/runtime-map.o
CC fs/quota/dquot.o
CC drivers/pci/pcie/aspm.o
CC lib/zlib_inflate/inffast.o
CC arch/x86/lib/usercopy_32.o
CC arch/x86/mm/init_32.o
CC arch/x86/entry/vdso/vdso32-setup.o
CC arch/x86/kernel/fpu/xstate.o
CC security/keys/permission.o
CC arch/x86/kernel/cpu/mtrr/if.o
CC arch/x86/kernel/cpu/microcode/intel.o
AR sound/sh/built-in.a
AR arch/x86/platform/intel-quark/built-in.a
CC io_uring/tctx.o
CC lib/zlib_inflate/inflate.o
AR drivers/pci/controller/dwc/built-in.a
CC ipc/ipc_sysctl.o
AR drivers/pci/controller/mobiveil/built-in.a
CC fs/iomap/buffered-io.o
AR drivers/pci/controller/plda/built-in.a
AR drivers/pci/controller/built-in.a
CC arch/x86/kernel/cpu/mce/genpool.o
AR arch/x86/platform/intel/built-in.a
CC arch/x86/kernel/cpu/mce/intel.o
CC arch/x86/lib/msr-smp.o
VDSO arch/x86/entry/vdso/vdso32.so.dbg
OBJCOPY arch/x86/entry/vdso/vdso32.so
VDSO2C arch/x86/entry/vdso/vdso-image-32.c
CC arch/x86/entry/vdso/vdso-image-32.o
CC drivers/pci/hotplug/acpi_pcihp.o
ASN.1 crypto/asymmetric_keys/pkcs7.asn1.[ch]
CC fs/notify/notification.o
CC crypto/asymmetric_keys/pkcs7_trust.o
CC net/ethernet/eth.o
CC lib/crypto/mpi/generic_mpih-sub1.o
AR net/802/built-in.a
CC security/security.o
CC drivers/video/backlight/backlight.o
CC mm/oom_kill.o
AR arch/x86/events/amd/built-in.a
CC fs/notify/group.o
CC arch/x86/kernel/acpi/boot.o
CC sound/core/seq/seq_system.o
CC arch/x86/lib/cache-smp.o
AR arch/x86/entry/vdso/built-in.a
CC sound/pci/hda/hda_jack.o
AR arch/x86/platform/efi/built-in.a
CC arch/x86/kernel/apic/apic.o
AR arch/x86/platform/olpc/built-in.a
CC arch/x86/kernel/cpu/mtrr/generic.o
CC arch/x86/pci/fixup.o
CC ipc/mqueue.o
AR arch/x86/platform/scx200/built-in.a
AR arch/x86/platform/ts5500/built-in.a
CC arch/x86/kernel/apic/apic_common.o
AR drivers/video/console/built-in.a
AR arch/x86/platform/uv/built-in.a
AR arch/x86/platform/built-in.a
CC arch/x86/kernel/cpu/mtrr/cleanup.o
CC arch/x86/kernel/apic/apic_noop.o
CC ipc/namespace.o
CC arch/x86/lib/crc32-glue.o
CC crypto/asymmetric_keys/pkcs7_verify.o
AS arch/x86/entry/thunk.o
AR arch/x86/entry/built-in.a
CC security/keys/process_keys.o
CC block/bio.o
CC arch/x86/kernel/acpi/sleep.o
CC lib/zlib_inflate/infutil.o
CC arch/x86/events/intel/ds.o
CC sound/core/seq/seq_ports.o
CC arch/x86/kernel/cpu/mtrr/amd.o
CC arch/x86/mm/fault.o
CC arch/x86/kernel/cpu/mce/amd.o
CC kernel/locking/semaphore.o
CC block/elevator.o
CC arch/x86/kernel/cpu/microcode/amd.o
CC io_uring/filetable.o
CC lib/crypto/mpi/generic_mpih-add1.o
CC kernel/power/console.o
CC arch/x86/kernel/apic/ipi.o
CC kernel/printk/printk.o
AR drivers/pci/hotplug/built-in.a
CC lib/crypto/mpi/mpicoder.o
AR arch/x86/kernel/fpu/built-in.a
CC net/sched/sch_generic.o
CC net/sched/sch_mq.o
AS arch/x86/kernel/acpi/wakeup_32.o
CC lib/zlib_inflate/inftrees.o
AS arch/x86/lib/crc32-pclmul.o
CC lib/zlib_inflate/inflate_syms.o
CC block/blk-core.o
CC crypto/asymmetric_keys/x509.asn1.o
CC arch/x86/lib/msr.o
CC drivers/pci/pcie/pme.o
CC crypto/asymmetric_keys/x509_akid.asn1.o
CC crypto/asymmetric_keys/x509_cert_parser.o
CC fs/notify/mark.o
CC security/keys/request_key.o
CC arch/x86/kernel/cpu/scattered.o
AR drivers/video/backlight/built-in.a
AR drivers/video/fbdev/core/built-in.a
AR drivers/video/fbdev/omap/built-in.a
CC security/keys/request_key_auth.o
AR drivers/video/fbdev/omap2/omapfb/dss/built-in.a
AR drivers/video/fbdev/omap2/omapfb/displays/built-in.a
AR drivers/video/fbdev/omap2/omapfb/built-in.a
AR drivers/video/fbdev/omap2/built-in.a
AR drivers/video/fbdev/built-in.a
CC drivers/video/aperture.o
CC security/keys/user_defined.o
CC security/keys/proc.o
CC sound/pci/hda/hda_auto_parser.o
CC arch/x86/kernel/cpu/mce/threshold.o
AR lib/zlib_inflate/built-in.a
CC kernel/power/process.o
CC kernel/locking/rwsem.o
CC arch/x86/pci/acpi.o
AR sound/pci/mixart/built-in.a
CC sound/core/seq/seq_info.o
CC fs/quota/quota_v2.o
CC arch/x86/events/probe.o
CC fs/iomap/direct-io.o
CC arch/x86/kernel/cpu/mtrr/cyrix.o
CC arch/x86/events/intel/knc.o
AR net/ethernet/built-in.a
CC arch/x86/kernel/cpu/topology_common.o
CC block/blk-sysfs.o
CC io_uring/rw.o
CC arch/x86/kernel/acpi/cstate.o
CC crypto/asymmetric_keys/pkcs7.asn1.o
CC lib/crypto/mpi/mpi-add.o
CC crypto/asymmetric_keys/pkcs7_parser.o
CC sound/core/init.o
AR arch/x86/kernel/cpu/microcode/built-in.a
CC drivers/video/cmdline.o
AR drivers/pci/pcie/built-in.a
AR drivers/pci/switch/built-in.a
CC drivers/video/nomodeset.o
CC sound/core/seq/seq_dummy.o
CC drivers/pci/access.o
CC fs/notify/fdinfo.o
CC fs/proc/task_mmu.o
CC arch/x86/pci/legacy.o
AS arch/x86/lib/msr-reg.o
CC arch/x86/lib/msr-reg-export.o
CC arch/x86/mm/ioremap.o
CC drivers/video/hdmi.o
CC mm/fadvise.o
CC arch/x86/events/utils.o
CC security/keys/sysctl.o
CC drivers/acpi/acpica/dsargs.o
CC drivers/pnp/pnpacpi/core.o
CC drivers/pnp/core.o
AR drivers/amba/built-in.a
CC ipc/mq_sysctl.o
CC arch/x86/kernel/apic/vector.o
AS arch/x86/lib/hweight.o
CC arch/x86/lib/iomem.o
CC arch/x86/kernel/cpu/mtrr/centaur.o
CC arch/x86/kernel/cpu/mtrr/legacy.o
CC fs/quota/quota_tree.o
CC mm/maccess.o
CC security/selinux/selinuxfs.o
AR arch/x86/kernel/acpi/built-in.a
CC security/selinux/netlink.o
CC lib/zlib_deflate/deflate.o
CC arch/x86/kernel/cpu/topology_ext.o
AR crypto/asymmetric_keys/built-in.a
CC kernel/locking/percpu-rwsem.o
CC crypto/proc.o
CC security/selinux/nlmsgtab.o
CC lib/crypto/mpi/mpi-bit.o
CC security/selinux/netif.o
AR arch/x86/kernel/cpu/mce/built-in.a
CC kernel/irq/irqdesc.o
CC kernel/power/suspend.o
CC lib/lzo/lzo1x_compress.o
AR sound/core/seq/built-in.a
CC kernel/power/hibernate.o
CC drivers/acpi/acpica/dscontrol.o
CC sound/pci/hda/hda_sysfs.o
AR fs/notify/built-in.a
CC kernel/printk/printk_safe.o
CC mm/page-writeback.o
AR ipc/built-in.a
CC arch/x86/lib/atomic64_32.o
CC mm/folio-compat.o
CC net/netlink/af_netlink.o
CC arch/x86/pci/irq.o
CC lib/crypto/arc4.o
CC security/keys/keyctl_pkey.o
CC arch/x86/lib/inat.o
AR net/bpf/built-in.a
CC sound/core/memory.o
CC arch/x86/events/intel/lbr.o
CC net/core/datagram.o
CC fs/iomap/ioend.o
CC fs/iomap/fiemap.o
AR arch/x86/kernel/cpu/mtrr/built-in.a
CC drivers/pnp/pnpacpi/rsparser.o
CC drivers/pci/bus.o
CC arch/x86/kernel/cpu/topology_amd.o
AR arch/x86/lib/built-in.a
AR drivers/acpi/pmic/built-in.a
CC lib/crypto/mpi/mpi-cmp.o
AR arch/x86/lib/lib.a
CC arch/x86/mm/extable.o
CC fs/quota/quota.o
CC arch/x86/kernel/apic/init.o
AR drivers/video/built-in.a
CC drivers/acpi/acpica/dsdebug.o
CC kernel/rcu/update.o
AR kernel/livepatch/built-in.a
CC mm/readahead.o
CC kernel/locking/spinlock.o
CC crypto/aead.o
CC kernel/rcu/sync.o
CC lib/lzo/lzo1x_compress_safe.o
CC drivers/acpi/dptf/int340x_thermal.o
CC io_uring/net.o
CC net/sched/sch_frag.o
CC arch/x86/kernel/kprobes/core.o
CC net/netlink/genetlink.o
CC lib/lz4/lz4_decompress.o
CC lib/zstd/zstd_decompress_module.o
CC lib/zlib_deflate/deftree.o
CC drivers/acpi/x86/apple.o
CC net/ethtool/ioctl.o
CC block/blk-flush.o
CC kernel/irq/handle.o
CC kernel/irq/manage.o
CC arch/x86/kernel/cpu/common.o
CC sound/pci/hda/hda_controller.o
CC drivers/acpi/acpica/dsfield.o
CC arch/x86/kernel/cpu/rdrand.o
CC kernel/printk/nbcon.o
CC drivers/acpi/x86/cmos_rtc.o
AR security/keys/built-in.a
CC kernel/locking/osq_lock.o
CC sound/core/control.o
CC kernel/printk/printk_ringbuffer.o
CC arch/x86/events/rapl.o
CC arch/x86/events/msr.o
CC lib/crypto/mpi/mpi-sub-ui.o
CC net/netfilter/core.o
CC lib/zstd/decompress/huf_decompress.o
CC fs/iomap/seek.o
AR drivers/acpi/dptf/built-in.a
CC net/netlink/policy.o
CC lib/lzo/lzo1x_decompress_safe.o
CC kernel/locking/qspinlock.o
CC arch/x86/kernel/kprobes/opt.o
CC drivers/pci/probe.o
CC kernel/rcu/srcutree.o
CC fs/quota/kqid.o
AR drivers/pnp/pnpacpi/built-in.a
CC drivers/pnp/card.o
CC fs/proc/inode.o
CC arch/x86/mm/mmap.o
CC arch/x86/kernel/cpu/match.o
CC drivers/acpi/acpica/dsinit.o
CC sound/pci/hda/hda_proc.o
CC kernel/power/snapshot.o
CC arch/x86/kernel/apic/hw_nmi.o
CC lib/zlib_deflate/deflate_syms.o
CC arch/x86/pci/common.o
CC crypto/geniv.o
CC drivers/acpi/x86/lpss.o
CC io_uring/poll.o
CC lib/crypto/mpi/mpi-div.o
CC block/blk-settings.o
AR lib/lzo/built-in.a
CC security/selinux/netnode.o
LDS arch/x86/kernel/vmlinux.lds
CC kernel/locking/rtmutex_api.o
CC arch/x86/events/intel/p4.o
AR sound/synth/emux/built-in.a
CC fs/iomap/swapfile.o
AR sound/synth/built-in.a
CC lib/crypto/gf128mul.o
CC kernel/printk/sysctl.o
CC net/ethtool/common.o
AR sound/pci/nm256/built-in.a
CC io_uring/eventfd.o
CC security/lsm_audit.o
CC fs/quota/netlink.o
CC kernel/locking/qrwlock.o
CC drivers/acpi/acpica/dsmethod.o
AR lib/zlib_deflate/built-in.a
CC kernel/rcu/tree.o
AS arch/x86/kernel/head_32.o
CC sound/core/misc.o
CC net/sched/sch_api.o
CC kernel/power/swap.o
CC arch/x86/mm/pgtable.o
CC drivers/pci/host-bridge.o
CC arch/x86/kernel/apic/io_apic.o
CC drivers/pnp/driver.o
AR lib/lz4/built-in.a
AR arch/x86/kernel/kprobes/built-in.a
AR kernel/printk/built-in.a
CC drivers/acpi/tables.o
CC arch/x86/events/intel/p6.o
CC drivers/acpi/x86/s2idle.o
AR sound/pci/oxygen/built-in.a
CC mm/swap.o
AR sound/usb/misc/built-in.a
AR sound/usb/usx2y/built-in.a
AR sound/usb/caiaq/built-in.a
AR sound/usb/6fire/built-in.a
CC fs/proc/root.o
AR sound/usb/hiface/built-in.a
AR sound/usb/bcd2000/built-in.a
AR sound/usb/built-in.a
CC security/selinux/netport.o
CC lib/crypto/blake2s.o
CC drivers/acpi/acpica/dsmthdat.o
CC kernel/irq/spurious.o
CC arch/x86/pci/early.o
CC net/core/stream.o
CC arch/x86/pci/bus_numa.o
CC lib/crypto/mpi/mpi-mod.o
CC arch/x86/events/intel/pt.o
CC arch/x86/pci/amd_bus.o
CC arch/x86/kernel/cpu/bugs.o
CC net/core/scm.o
AR kernel/sched/built-in.a
CC net/core/gen_stats.o
CC crypto/lskcipher.o
CC net/core/gen_estimator.o
CC arch/x86/events/intel/uncore.o
CC lib/xz/xz_dec_syms.o
CC net/netfilter/nf_log.o
AR fs/iomap/built-in.a
CC lib/crypto/mpi/mpi-mul.o
CC sound/core/device.o
CC sound/pci/hda/hda_hwdep.o
AR drivers/clk/actions/built-in.a
AR drivers/clk/analogbits/built-in.a
CC block/blk-ioc.o
AR drivers/clk/bcm/built-in.a
AR drivers/clk/imgtec/built-in.a
AR fs/quota/built-in.a
AR drivers/clk/imx/built-in.a
CC block/blk-map.o
CC drivers/dma/dw/core.o
AR drivers/clk/ingenic/built-in.a
AR drivers/clk/mediatek/built-in.a
CC drivers/pnp/resource.o
AR drivers/clk/microchip/built-in.a
CC drivers/acpi/acpica/dsobject.o
AR net/netlink/built-in.a
AR drivers/clk/mstar/built-in.a
AR kernel/locking/built-in.a
CC drivers/pnp/manager.o
CC drivers/dma/hsu/hsu.o
AR drivers/clk/mvebu/built-in.a
CC drivers/acpi/acpica/dsopcode.o
AR drivers/clk/ralink/built-in.a
AR drivers/clk/renesas/built-in.a
CC arch/x86/mm/physaddr.o
AR drivers/clk/socfpga/built-in.a
CC arch/x86/mm/tlb.o
AR drivers/clk/sophgo/built-in.a
AR drivers/clk/sprd/built-in.a
CC kernel/irq/resend.o
AR drivers/clk/starfive/built-in.a
AR drivers/clk/sunxi-ng/built-in.a
CC lib/xz/xz_dec_stream.o
AR drivers/clk/ti/built-in.a
AR drivers/clk/versatile/built-in.a
CC kernel/dma/mapping.o
AR drivers/clk/xilinx/built-in.a
AR drivers/clk/built-in.a
CC arch/x86/mm/cpu_entry_area.o
CC drivers/pci/remove.o
CC arch/x86/mm/maccess.o
CC arch/x86/mm/pgprot.o
CC kernel/dma/direct.o
CC net/core/net_namespace.o
CC fs/proc/base.o
CC io_uring/uring_cmd.o
CC drivers/acpi/x86/utils.o
CC sound/core/info.o
CC security/selinux/status.o
CC lib/zstd/decompress/zstd_ddict.o
AR arch/x86/pci/built-in.a
CC block/blk-merge.o
CC lib/xz/xz_dec_lzma2.o
CC arch/x86/events/intel/uncore_nhmex.o
CC lib/crypto/mpi/mpih-cmp.o
CC net/core/secure_seq.o
CC arch/x86/mm/pgtable_32.o
CC drivers/acpi/acpica/dspkginit.o
AR drivers/soc/apple/built-in.a
AR drivers/soc/aspeed/built-in.a
AR drivers/soc/bcm/built-in.a
AR drivers/soc/fsl/built-in.a
AR drivers/soc/fujitsu/built-in.a
CC kernel/irq/chip.o
AR drivers/soc/hisilicon/built-in.a
CC sound/pci/hda/hda_intel.o
AR drivers/soc/imx/built-in.a
AR drivers/soc/ixp4xx/built-in.a
CC kernel/power/user.o
AR drivers/soc/loongson/built-in.a
CC kernel/irq/dummychip.o
AR drivers/soc/mediatek/built-in.a
CC drivers/acpi/osi.o
CC lib/crypto/mpi/mpih-div.o
AR drivers/soc/microchip/built-in.a
AR drivers/soc/nuvoton/built-in.a
AR drivers/soc/pxa/built-in.a
AR drivers/soc/amlogic/built-in.a
CC arch/x86/kernel/apic/msi.o
CC crypto/skcipher.o
CC kernel/dma/ops_helpers.o
AR drivers/soc/qcom/built-in.a
CC arch/x86/kernel/head32.o
AR drivers/soc/renesas/built-in.a
CC sound/core/isadma.o
AR drivers/soc/rockchip/built-in.a
AR drivers/soc/sunxi/built-in.a
AR drivers/dma/idxd/built-in.a
AR drivers/soc/ti/built-in.a
CC arch/x86/kernel/cpu/aperfmperf.o
CC net/sched/sch_blackhole.o
AR drivers/soc/versatile/built-in.a
CC net/sched/cls_api.o
AR drivers/soc/xilinx/built-in.a
AR drivers/soc/built-in.a
CC kernel/irq/devres.o
CC lib/zstd/decompress/zstd_decompress.o
CC io_uring/openclose.o
CC mm/truncate.o
CC net/ethtool/netlink.o
AR drivers/dma/hsu/built-in.a
CC kernel/power/poweroff.o
CC fs/kernfs/mount.o
CC fs/sysfs/file.o
CC drivers/pci/pci.o
CC drivers/acpi/acpica/dsutils.o
CC net/netfilter/nf_queue.o
CC arch/x86/kernel/cpu/cpuid-deps.o
CC drivers/pnp/support.o
CC arch/x86/kernel/apic/probe_32.o
CC drivers/acpi/x86/blacklist.o
CC lib/xz/xz_dec_bcj.o
CC drivers/dma/dw/dw.o
CC net/core/flow_dissector.o
AR sound/firewire/built-in.a
CC fs/devpts/inode.o
CC arch/x86/kernel/ebda.o
CC security/device_cgroup.o
CC kernel/rcu/rcu_segcblist.o
CC lib/crypto/blake2s-generic.o
CC block/blk-timeout.o
CC arch/x86/mm/iomap_32.o
CC sound/core/vmaster.o
CC security/selinux/ss/ebitmap.o
CC drivers/acpi/acpica/dswexec.o
CC drivers/pnp/interface.o
CC lib/zstd/decompress/zstd_decompress_block.o
CC fs/sysfs/dir.o
AR kernel/power/built-in.a
CC crypto/seqiv.o
CC fs/kernfs/inode.o
CC drivers/acpi/osl.o
CC drivers/virtio/virtio.o
CC fs/kernfs/dir.o
CC arch/x86/kernel/cpu/umwait.o
CC drivers/tty/vt/vt_ioctl.o
AR arch/x86/kernel/apic/built-in.a
CC drivers/tty/vt/vc_screen.o
CC lib/crypto/mpi/mpih-mul.o
CC drivers/char/hw_random/core.o
CC kernel/irq/kexec.o
AR drivers/acpi/x86/built-in.a
CC drivers/char/agp/backend.o
CC net/netfilter/nf_sockopt.o
CC arch/x86/events/intel/uncore_snb.o
AR lib/xz/built-in.a
CC drivers/acpi/utils.o
CC drivers/acpi/acpica/dswload.o
CC drivers/char/hw_random/intel-rng.o
CC mm/vmscan.o
CC lib/crypto/mpi/mpi-pow.o
CC drivers/virtio/virtio_ring.o
CC drivers/char/mem.o
CC drivers/dma/dw/idma32.o
CC drivers/char/agp/generic.o
CC io_uring/sqpoll.o
AR drivers/iommu/amd/built-in.a
CC lib/dim/dim.o
AR drivers/iommu/intel/built-in.a
CC drivers/char/agp/isoch.o
CC arch/x86/mm/hugetlbpage.o
AR drivers/iommu/arm/arm-smmu/built-in.a
AR drivers/iommu/iommufd/built-in.a
CC kernel/irq/autoprobe.o
AR drivers/iommu/arm/arm-smmu-v3/built-in.a
AR drivers/iommu/arm/built-in.a
CC sound/core/ctljack.o
CC mm/shrinker.o
AR drivers/iommu/riscv/built-in.a
CC drivers/iommu/iommu.o
CC fs/sysfs/symlink.o
CC block/blk-lib.o
MKCAP arch/x86/kernel/cpu/capflags.c
CC drivers/pnp/quirks.o
CC kernel/entry/common.o
AR fs/devpts/built-in.a
CC arch/x86/events/intel/uncore_snbep.o
CC crypto/echainiv.o
CC drivers/acpi/acpica/dswload2.o
CC net/ethtool/bitset.o
AR drivers/dma/amd/built-in.a
AR sound/pci/hda/built-in.a
AR sound/sparc/built-in.a
CC lib/dim/net_dim.o
AR sound/pci/pcxhr/built-in.a
CC lib/dim/rdma_dim.o
AR sound/pci/riptide/built-in.a
AR sound/pci/rme9652/built-in.a
AR sound/pci/trident/built-in.a
CC arch/x86/kernel/platform-quirks.o
AR sound/pci/ymfpci/built-in.a
CC lib/fonts/fonts.o
AR drivers/gpu/host1x/built-in.a
AR sound/pci/vx222/built-in.a
AR sound/pci/built-in.a
CC sound/core/jack.o
CC fs/proc/generic.o
CC lib/fonts/font_8x16.o
CC drivers/char/random.o
CC block/blk-mq.o
CC kernel/irq/irqdomain.o
CC arch/x86/events/intel/uncore_discovery.o
CC drivers/char/hw_random/amd-rng.o
CC kernel/entry/syscall_user_dispatch.o
CC security/selinux/ss/hashtab.o
CC fs/kernfs/file.o
AR drivers/gpu/drm/tests/built-in.a
CC lib/crypto/mpi/mpiutil.o
CC drivers/dma/dw/acpi.o
AR drivers/gpu/drm/arm/built-in.a
AR drivers/gpu/drm/clients/built-in.a
CC kernel/dma/remap.o
CC drivers/gpu/drm/display/drm_display_helper_mod.o
AR arch/x86/mm/built-in.a
CC drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
CC kernel/irq/proc.o
CC drivers/tty/vt/selection.o
CC drivers/acpi/acpica/dswscope.o
CC drivers/char/hw_random/geode-rng.o
CC kernel/module/main.o
CC fs/sysfs/mount.o
CC net/netfilter/utils.o
CC kernel/time/time.o
CC kernel/futex/core.o
CC drivers/tty/hvc/hvc_console.o
CC drivers/tty/serial/8250/8250_core.o
CC drivers/tty/serial/8250/8250_platform.o
AR lib/fonts/built-in.a
CC kernel/time/timer.o
CC crypto/ahash.o
CC drivers/char/misc.o
CC kernel/time/hrtimer.o
CC drivers/pnp/system.o
CC drivers/char/agp/amd64-agp.o
CC crypto/shash.o
CC fs/netfs/buffered_read.o
CC security/selinux/ss/symtab.o
CC drivers/acpi/acpica/dswstate.o
AR kernel/rcu/built-in.a
AR drivers/gpu/vga/built-in.a
CC mm/shmem.o
CC io_uring/xattr.o
CC sound/core/hwdep.o
AR lib/crypto/mpi/built-in.a
CC arch/x86/events/intel/cstate.o
CC lib/crypto/sha1.o
AR kernel/dma/built-in.a
AR kernel/entry/built-in.a
AR drivers/dma/dw/built-in.a
CC mm/util.o
CC security/selinux/ss/sidtab.o
AR drivers/dma/mediatek/built-in.a
CC fs/ext4/balloc.o
AR drivers/dma/qcom/built-in.a
AR drivers/dma/stm32/built-in.a
AR drivers/dma/ti/built-in.a
AR lib/dim/built-in.a
AR drivers/dma/xilinx/built-in.a
CC drivers/dma/dmaengine.o
CC fs/proc/array.o
CC fs/ext4/bitmap.o
CC drivers/pci/pci-driver.o
CC net/core/sysctl_net_core.o
CC drivers/char/hw_random/via-rng.o
AR drivers/pnp/built-in.a
CC drivers/tty/vt/keyboard.o
CC net/core/dev.o
CC kernel/time/sleep_timeout.o
CC drivers/gpu/drm/display/drm_dp_helper.o
CC drivers/pci/search.o
CC drivers/acpi/acpica/evevent.o
CC fs/sysfs/group.o
CC fs/kernfs/symlink.o
CC kernel/futex/syscalls.o
CC drivers/virtio/virtio_anchor.o
AR drivers/tty/ipwireless/built-in.a
CC lib/crypto/sha256.o
CC net/ethtool/strset.o
CC arch/x86/kernel/cpu/powerflags.o
CC kernel/irq/migration.o
AR drivers/tty/hvc/built-in.a
CC net/sched/act_api.o
CC net/ethtool/linkinfo.o
CC net/ethtool/linkmodes.o
CC drivers/pci/rom.o
CC lib/zstd/zstd_common_module.o
CC drivers/char/agp/intel-agp.o
AR drivers/char/hw_random/built-in.a
CC kernel/cgroup/cgroup.o
CC drivers/tty/serial/8250/8250_pnp.o
CC lib/zstd/common/debug.o
CC arch/x86/kernel/process_32.o
CC sound/core/timer.o
CC kernel/cgroup/rstat.o
CC drivers/acpi/acpica/evgpe.o
CC drivers/gpu/drm/ttm/ttm_tt.o
CC io_uring/nop.o
CC crypto/akcipher.o
CC drivers/iommu/iommu-traces.o
CC drivers/gpu/drm/i915/i915_config.o
CC net/core/dev_api.o
CC net/netfilter/nfnetlink.o
CC fs/jbd2/transaction.o
CC fs/netfs/buffered_write.o
CC kernel/irq/cpuhotplug.o
CC drivers/connector/cn_queue.o
CC drivers/virtio/virtio_pci_modern_dev.o
AR fs/sysfs/built-in.a
AR lib/crypto/built-in.a
CC drivers/gpu/drm/display/drm_dp_mst_topology.o
CC net/ipv4/netfilter/nf_defrag_ipv4.o
CC net/ipv4/route.o
CC drivers/gpu/drm/i915/i915_driver.o
CC drivers/tty/vt/vt.o
CC net/ipv4/inetpeer.o
AR fs/kernfs/built-in.a
CC net/ipv4/protocol.o
AR arch/x86/events/intel/built-in.a
AR arch/x86/events/built-in.a
CC drivers/gpu/drm/i915/i915_drm_client.o
COPY drivers/tty/vt/defkeymap.c
CC arch/x86/kernel/signal.o
CC fs/proc/fd.o
CC drivers/acpi/acpica/evgpeblk.o
CC kernel/futex/pi.o
CC security/selinux/ss/avtab.o
CC drivers/dma/virt-dma.o
CC drivers/tty/serial/8250/8250_rsa.o
CC drivers/char/agp/intel-gtt.o
CC drivers/virtio/virtio_pci_legacy_dev.o
CC kernel/time/timekeeping.o
CC drivers/pci/setup-res.o
CC net/core/dev_addr_lists.o
CC block/blk-mq-tag.o
CC fs/ext4/block_validity.o
CC crypto/sig.o
CC crypto/kpp.o
CC net/ethtool/rss.o
CC io_uring/fs.o
CC kernel/irq/pm.o
CC drivers/gpu/drm/ttm/ttm_bo.o
CC drivers/acpi/acpica/evgpeinit.o
CC kernel/irq/msi.o
CC kernel/module/strict_rwx.o
CC fs/jbd2/commit.o
CC net/core/dst.o
CC drivers/iommu/iommu-sysfs.o
CC drivers/char/virtio_console.o
CC kernel/module/kmod.o
CC drivers/connector/connector.o
CC fs/netfs/direct_read.o
CC drivers/dma/acpi-dma.o
CC drivers/tty/serial/8250/8250_port.o
CC drivers/tty/vt/consolemap.o
CC fs/proc/proc_tty.o
CC kernel/futex/requeue.o
CC net/netfilter/nfnetlink_log.o
CC drivers/acpi/acpica/evgpeutil.o
CC lib/zstd/common/entropy_common.o
CC drivers/virtio/virtio_pci_modern.o
CC drivers/virtio/virtio_pci_common.o
CC sound/core/hrtimer.o
CC net/netfilter/nf_conntrack_core.o
CC net/ipv4/netfilter/nf_reject_ipv4.o
CC drivers/pci/irq.o
CC drivers/gpu/drm/i915/i915_getparam.o
CC net/sched/sch_fifo.o
CC kernel/futex/waitwake.o
CC drivers/char/hpet.o
CC drivers/virtio/virtio_pci_legacy.o
CC lib/zstd/common/error_private.o
CC mm/mmzone.o
ASN.1 crypto/rsapubkey.asn1.[ch]
ASN.1 crypto/rsaprivkey.asn1.[ch]
CC crypto/rsa.o
CC lib/zstd/common/fse_decompress.o
CC drivers/iommu/dma-iommu.o
AR drivers/char/agp/built-in.a
AR sound/spi/built-in.a
CC io_uring/splice.o
CC io_uring/sync.o
CC kernel/module/tree_lookup.o
CC fs/ext4/dir.o
CC security/selinux/ss/policydb.o
CC drivers/acpi/acpica/evglock.o
CC drivers/gpu/drm/ttm/ttm_bo_util.o
CC kernel/cgroup/namespace.o
CC sound/core/pcm.o
CC fs/ext4/ext4_jbd2.o
CC arch/x86/kernel/cpu/topology.o
CC net/xfrm/xfrm_policy.o
CC net/ethtool/linkstate.o
CC fs/proc/cmdline.o
AR sound/parisc/built-in.a
CC lib/zstd/common/zstd_common.o
CC block/blk-stat.o
CC fs/netfs/direct_write.o
CC kernel/trace/trace_clock.o
AR drivers/dma/built-in.a
CC kernel/bpf/core.o
CC kernel/irq/affinity.o
CC kernel/events/core.o
CC drivers/acpi/acpica/evhandler.o
CC mm/vmstat.o
CC fs/jbd2/recovery.o
CC drivers/connector/cn_proc.o
CC drivers/pci/vpd.o
AR lib/zstd/built-in.a
CC drivers/iommu/iova.o
CC lib/argv_split.o
CC drivers/tty/serial/8250/8250_dma.o
CC fs/ext4/extents.o
CC kernel/time/ntp.o
CC net/netfilter/nf_conntrack_standalone.o
CC kernel/module/kallsyms.o
AR kernel/futex/built-in.a
CC drivers/tty/serial/8250/8250_dwlib.o
CC drivers/virtio/virtio_pci_admin_legacy_io.o
CC crypto/rsa_helper.o
CC kernel/trace/ring_buffer.o
CC drivers/acpi/reboot.o
CC drivers/gpu/drm/i915/i915_ioctl.o
CC fs/proc/consoles.o
CC kernel/trace/trace.o
CC drivers/char/nvram.o
CC io_uring/msg_ring.o
HOSTCC drivers/tty/vt/conmakehash
CC block/blk-mq-sysfs.o
CC drivers/acpi/acpica/evmisc.o
CC kernel/irq/matrix.o
CC net/sched/cls_cgroup.o
CC lib/bug.o
CC net/ethtool/debug.o
CC crypto/rsa-pkcs1pad.o
CC block/blk-mq-cpumap.o
CC drivers/gpu/drm/ttm/ttm_bo_vm.o
CC drivers/tty/vt/defkeymap.o
CC drivers/tty/tty_io.o
CC sound/core/pcm_native.o
CC fs/netfs/iterator.o
CC net/ipv4/netfilter/ip_tables.o
CC fs/ext4/extents_status.o
CC drivers/acpi/acpica/evregion.o
CONMK drivers/tty/vt/consolemap_deftbl.c
CC drivers/tty/vt/consolemap_deftbl.o
CC kernel/events/ring_buffer.o
AR drivers/tty/vt/built-in.a
CC drivers/tty/serial/serial_core.o
CC drivers/virtio/virtio_input.o
CC fs/proc/cpuinfo.o
CC kernel/cgroup/cgroup-v1.o
CC drivers/virtio/virtio_dma_buf.o
CC kernel/module/procfs.o
CC fs/ext4/file.o
CC arch/x86/kernel/signal_32.o
CC drivers/pci/setup-bus.o
CC kernel/time/clocksource.o
CC drivers/tty/serial/serial_base_bus.o
CC arch/x86/kernel/cpu/proc.o
AR drivers/iommu/built-in.a
CC mm/backing-dev.o
CC fs/jbd2/checkpoint.o
CC drivers/gpu/drm/display/drm_dsc_helper.o
CC lib/buildid.o
CC drivers/tty/serial/8250/8250_pcilib.o
AR drivers/char/built-in.a
AR drivers/gpu/drm/renesas/rcar-du/built-in.a
CC kernel/cgroup/freezer.o
CC net/sched/ematch.o
AR drivers/gpu/drm/renesas/rz-du/built-in.a
AR drivers/connector/built-in.a
AR drivers/gpu/drm/renesas/built-in.a
CC net/ipv4/netfilter/iptable_filter.o
CC security/selinux/ss/services.o
CC io_uring/advise.o
CC drivers/gpu/drm/i915/i915_irq.o
CC drivers/acpi/acpica/evrgnini.o
CC block/blk-mq-sched.o
CC crypto/rsassa-pkcs1.o
CC block/ioctl.o
CC drivers/gpu/drm/ttm/ttm_module.o
CC fs/proc/devices.o
CC drivers/acpi/acpica/evsci.o
CC net/netfilter/nf_conntrack_expect.o
CC drivers/tty/serial/serial_ctrl.o
CC kernel/module/sysfs.o
CC net/ethtool/wol.o
CC net/ipv4/ip_input.o
CC fs/netfs/locking.o
CC net/ipv4/netfilter/iptable_mangle.o
CC arch/x86/kernel/cpu/feat_ctl.o
AR kernel/irq/built-in.a
CC drivers/gpu/drm/display/drm_hdcp_helper.o
AR drivers/virtio/built-in.a
CC drivers/pci/vc.o
CC sound/core/pcm_lib.o
CC drivers/pci/mmap.o
CC lib/clz_tab.o
CC drivers/tty/serial/8250/8250_early.o
CC lib/cmdline.o
CC drivers/acpi/acpica/evxface.o
CC kernel/time/jiffies.o
CC drivers/gpu/drm/ttm/ttm_execbuf_util.o
CC fs/ext4/fsmap.o
CC drivers/acpi/acpica/evxfevnt.o
CC lib/cpumask.o
CC drivers/tty/serial/serial_port.o
CC crypto/acompress.o
CC drivers/tty/n_tty.o
CC io_uring/statx.o
CC fs/jbd2/revoke.o
CC drivers/tty/tty_ioctl.o
CC arch/x86/kernel/cpu/intel.o
CC drivers/pci/devres.o
CC fs/proc/interrupts.o
CC mm/mm_init.o
CC drivers/acpi/acpica/evxfgpe.o
CC net/xfrm/xfrm_state.o
AR drivers/gpu/drm/omapdrm/built-in.a
CC kernel/cgroup/legacy_freezer.o
CC drivers/base/power/sysfs.o
AR kernel/module/built-in.a
AR net/sched/built-in.a
CC net/core/netevent.o
CC drivers/base/firmware_loader/builtin/main.o
CC kernel/time/timer_list.o
CC drivers/base/firmware_loader/main.o
CC drivers/block/loop.o
CC block/genhd.o
CC fs/netfs/main.o
CC drivers/block/virtio_blk.o
CC fs/ramfs/inode.o
CC drivers/gpu/drm/display/drm_hdmi_helper.o
CC drivers/tty/serial/8250/8250_exar.o
CC fs/ramfs/file-mmu.o
CC drivers/gpu/drm/i915/i915_mitigations.o
CC net/ethtool/features.o
CC lib/ctype.o
CC net/ipv4/ip_fragment.o
CC lib/dec_and_lock.o
CC drivers/gpu/drm/ttm/ttm_range_manager.o
AR drivers/base/firmware_loader/builtin/built-in.a
CC net/ipv4/netfilter/ipt_REJECT.o
CC [M] net/ipv4/netfilter/iptable_nat.o
CC drivers/acpi/acpica/evxfregn.o
CC fs/proc/loadavg.o
CC sound/core/pcm_misc.o
CC kernel/events/callchain.o
AR kernel/bpf/built-in.a
CC kernel/cgroup/pids.o
CC arch/x86/kernel/cpu/tsx.o
CC crypto/scompress.o
CC lib/decompress.o
CC lib/decompress_bunzip2.o
CC drivers/base/power/generic_ops.o
CC io_uring/timeout.o
CC fs/jbd2/journal.o
CC drivers/pci/proc.o
CC drivers/acpi/nvs.o
AR drivers/gpu/drm/tilcdc/built-in.a
CC net/netfilter/nf_conntrack_helper.o
CC block/ioprio.o
CC drivers/gpu/drm/display/drm_scdc_helper.o
CC fs/netfs/misc.o
CC drivers/base/power/common.o
CC kernel/time/timeconv.o
CC drivers/acpi/acpica/exconcat.o
CC net/ethtool/privflags.o
CC drivers/tty/serial/8250/8250_lpss.o
AR fs/ramfs/built-in.a
CC drivers/pci/pci-sysfs.o
CC arch/x86/kernel/cpu/intel_epb.o
CC drivers/base/regmap/regmap.o
CC arch/x86/kernel/cpu/amd.o
CC drivers/tty/serial/8250/8250_mid.o
CC fs/proc/meminfo.o
CC block/badblocks.o
CC lib/decompress_inflate.o
CC drivers/gpu/drm/ttm/ttm_resource.o
CC kernel/cgroup/rdma.o
AR drivers/base/firmware_loader/built-in.a
CC fs/ext4/fsync.o
CC crypto/algboss.o
CC sound/core/pcm_memory.o
CC drivers/pci/slot.o
CC drivers/gpu/drm/i915/i915_module.o
CC kernel/time/timecounter.o
CC mm/percpu.o
CC drivers/gpu/drm/ttm/ttm_pool.o
CC drivers/acpi/acpica/exconfig.o
CC kernel/time/alarmtimer.o
CC drivers/misc/eeprom/eeprom_93cx6.o
AR drivers/misc/cb710/built-in.a
CC drivers/base/power/qos.o
CC io_uring/fdinfo.o
CC net/ipv4/ip_forward.o
CC fs/ext4/hash.o
CC fs/ext4/ialloc.o
CC net/xfrm/xfrm_hash.o
CC fs/proc/stat.o
AR sound/pcmcia/vx/built-in.a
AR sound/pcmcia/pdaudiocf/built-in.a
AR sound/pcmcia/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_drv.o
CC kernel/trace/trace_output.o
AR drivers/gpu/drm/imx/built-in.a
CC security/selinux/ss/conditional.o
CC fs/hugetlbfs/inode.o
AR drivers/block/built-in.a
CC sound/core/memalloc.o
AR net/ipv4/netfilter/built-in.a
AR drivers/gpu/drm/display/built-in.a
CC crypto/testmgr.o
CC arch/x86/kernel/traps.o
CC fs/fat/cache.o
AR drivers/base/test/built-in.a
CC fs/proc/uptime.o
CC lib/decompress_unlz4.o
CC drivers/acpi/acpica/exconvrt.o
CC drivers/tty/tty_ldisc.o
CC fs/fat/dir.o
CC arch/x86/kernel/cpu/hygon.o
CC net/core/neighbour.o
CC drivers/tty/serial/8250/8250_pci.o
CC arch/x86/kernel/cpu/centaur.o
CC sound/core/pcm_timer.o
AR drivers/misc/eeprom/built-in.a
AR drivers/misc/lis3lv02d/built-in.a
AR drivers/misc/cardreader/built-in.a
AR drivers/misc/keba/built-in.a
AR drivers/misc/built-in.a
CC kernel/cgroup/cpuset.o
CC drivers/pci/pci-acpi.o
CC fs/netfs/objects.o
CC net/ethtool/rings.o
CC drivers/base/regmap/regcache.o
CC drivers/gpu/drm/ttm/ttm_device.o
CC sound/core/seq_device.o
CC block/blk-rq-qos.o
CC drivers/base/component.o
CC net/netfilter/nf_conntrack_proto.o
CC net/ipv4/ip_options.o
CC fs/ext4/indirect.o
CC drivers/tty/serial/earlycon.o
AR drivers/gpu/drm/panel/built-in.a
CC drivers/base/core.o
CC drivers/acpi/acpica/excreate.o
CC drivers/acpi/acpica/exdebug.o
CC crypto/cmac.o
CC io_uring/cancel.o
CC lib/decompress_unlzma.o
CC arch/x86/kernel/cpu/transmeta.o
CC fs/proc/util.o
CC arch/x86/kernel/cpu/zhaoxin.o
CC drivers/gpu/drm/virtio/virtgpu_kms.o
CC drivers/gpu/drm/i915/i915_params.o
CC drivers/gpu/drm/i915/i915_pci.o
CC drivers/base/power/runtime.o
CC security/selinux/ss/mls.o
CC crypto/hmac.o
CC lib/decompress_unlzo.o
CC drivers/acpi/wakeup.o
CC drivers/base/bus.o
CC kernel/time/posix-timers.o
CC mm/slab_common.o
AR sound/core/built-in.a
AR drivers/gpu/drm/bridge/analogix/built-in.a
AR drivers/gpu/drm/bridge/cadence/built-in.a
AR sound/mips/built-in.a
AR sound/soc/built-in.a
AR drivers/gpu/drm/bridge/imx/built-in.a
AR sound/atmel/built-in.a
AR drivers/gpu/drm/bridge/synopsys/built-in.a
AR drivers/gpu/drm/bridge/built-in.a
CC drivers/acpi/acpica/exdump.o
CC sound/hda/hda_bus_type.o
CC fs/proc/version.o
CC drivers/gpu/drm/ttm/ttm_sys_manager.o
CC kernel/trace/trace_seq.o
CC fs/fat/fatent.o
CC block/disk-events.o
CC drivers/gpu/drm/i915/i915_scatterlist.o
CC fs/ext4/inline.o
CC kernel/time/posix-cpu-timers.o
CC drivers/gpu/drm/virtio/virtgpu_gem.o
AR sound/x86/built-in.a
CC drivers/base/dd.o
CC drivers/acpi/acpica/exfield.o
CC kernel/fork.o
AR drivers/gpu/drm/hisilicon/built-in.a
CC net/netfilter/nf_conntrack_proto_generic.o
CC fs/netfs/read_collect.o
CC arch/x86/kernel/cpu/vortex.o
CC drivers/pci/iomap.o
CC fs/isofs/namei.o
CC net/ethtool/channels.o
CC fs/nfs/client.o
CC fs/exportfs/expfs.o
CC fs/lockd/clntlock.o
CC lib/decompress_unxz.o
AR fs/jbd2/built-in.a
CC net/xfrm/xfrm_input.o
CC kernel/trace/trace_stat.o
CC net/unix/af_unix.o
CC drivers/gpu/drm/ttm/ttm_backup.o
CC drivers/tty/serial/8250/8250_pericom.o
CC crypto/crypto_null.o
CC io_uring/waitid.o
AR fs/hugetlbfs/built-in.a
CC drivers/base/regmap/regcache-rbtree.o
CC fs/proc/softirqs.o
CC net/netfilter/nf_conntrack_proto_tcp.o
CC drivers/acpi/acpica/exfldio.o
CC kernel/trace/trace_printk.o
CC kernel/exec_domain.o
AR drivers/mfd/built-in.a
CC arch/x86/kernel/cpu/perfctr-watchdog.o
CC sound/hda/hdac_bus.o
CC drivers/acpi/sleep.o
CC net/xfrm/xfrm_output.o
CC net/ipv4/ip_output.o
CC fs/proc/namespaces.o
CC drivers/gpu/drm/i915/i915_switcheroo.o
CC block/blk-ia-ranges.o
CC drivers/base/power/wakeirq.o
CC drivers/base/power/main.o
CC drivers/base/power/wakeup.o
CC drivers/pci/quirks.o
CC lib/decompress_unzstd.o
CC drivers/gpu/drm/virtio/virtgpu_vram.o
CC drivers/tty/tty_buffer.o
CC crypto/md5.o
CC fs/isofs/inode.o
CC security/selinux/ss/context.o
AR fs/exportfs/built-in.a
AR drivers/nfc/built-in.a
CC mm/compaction.o
CC drivers/gpu/drm/ttm/ttm_agp_backend.o
CC drivers/acpi/acpica/exmisc.o
CC fs/proc/self.o
AR drivers/tty/serial/8250/built-in.a
CC net/netfilter/nf_conntrack_proto_udp.o
CC kernel/cgroup/misc.o
AR drivers/tty/serial/built-in.a
CC kernel/events/hw_breakpoint.o
CC drivers/base/regmap/regcache-flat.o
CC net/netfilter/nf_conntrack_proto_icmp.o
CC arch/x86/kernel/idt.o
CC kernel/time/posix-clock.o
CC fs/fat/file.o
CC fs/proc/thread_self.o
CC kernel/panic.o
CC arch/x86/kernel/cpu/vmware.o
CC lib/dump_stack.o
CC drivers/gpu/drm/i915/i915_sysfs.o
CC io_uring/register.o
CC net/ethtool/coalesce.o
CC kernel/trace/pid_list.o
CC sound/hda/hdac_device.o
CC crypto/sha256_generic.o
AR drivers/gpu/drm/mxsfb/built-in.a
CC io_uring/truncate.o
CC drivers/acpi/acpica/exmutex.o
CC fs/netfs/read_pgpriv2.o
CC sound/hda/hdac_sysfs.o
CC fs/lockd/clntproc.o
CC block/early-lookup.o
CC fs/ext4/inode.o
CC drivers/tty/tty_port.o
AR drivers/dax/hmem/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_display.o
AR drivers/dax/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_vq.o
AR drivers/gpu/drm/ttm/built-in.a
CC net/core/rtnetlink.o
CC fs/fat/inode.o
CC kernel/time/itimer.o
CC kernel/cgroup/debug.o
CC drivers/tty/tty_mutex.o
CC drivers/base/regmap/regcache-maple.o
CC fs/proc/proc_sysctl.o
CC drivers/acpi/acpica/exnames.o
CC lib/earlycpio.o
CC net/netfilter/nf_conntrack_extend.o
CC security/selinux/netlabel.o
CC arch/x86/kernel/cpu/hypervisor.o
CC fs/nfs/dir.o
CC lib/extable.o
CC fs/lockd/clntxdr.o
CC crypto/sha512_generic.o
AR drivers/gpu/drm/sysfb/built-in.a
CC fs/fat/misc.o
CC drivers/tty/tty_ldsem.o
CC drivers/base/regmap/regmap-debugfs.o
CC fs/isofs/dir.o
CC net/xfrm/xfrm_sysctl.o
CC arch/x86/kernel/irq.o
CC net/netfilter/nf_conntrack_acct.o
CC sound/hda/hdac_regmap.o
CC arch/x86/kernel/cpu/mshyperv.o
CC arch/x86/kernel/cpu/debugfs.o
CC block/bsg.o
CC kernel/trace/trace_sched_switch.o
CC drivers/gpu/drm/virtio/virtgpu_fence.o
CC drivers/acpi/acpica/exoparg1.o
CC drivers/gpu/drm/i915/i915_utils.o
CC lib/flex_proportions.o
CC kernel/time/clockevents.o
CC drivers/base/power/wakeup_stats.o
AR drivers/gpu/drm/tiny/built-in.a
AR sound/xen/built-in.a
CC fs/netfs/read_retry.o
CC net/unix/garbage.o
CC kernel/events/uprobes.o
AR drivers/gpu/drm/xlnx/built-in.a
CC net/ethtool/pause.o
CC block/blk-cgroup.o
CC kernel/trace/trace_nop.o
CC kernel/trace/blktrace.o
CC net/core/utils.o
CC drivers/acpi/acpica/exoparg2.o
CC arch/x86/kernel/cpu/bus_lock.o
CC net/unix/sysctl_net_unix.o
AR kernel/cgroup/built-in.a
CC lib/idr.o
CC fs/nfs/file.o
CC drivers/tty/tty_baudrate.o
AR drivers/gpu/drm/gud/built-in.a
CC fs/nls/nls_base.o
CC net/ipv6/netfilter/ip6_tables.o
CC fs/isofs/util.o
CC kernel/time/tick-common.o
CC drivers/base/power/trace.o
CC sound/hda/hdac_controller.o
CC crypto/sha3_generic.o
AR drivers/base/regmap/built-in.a
CC net/ipv6/netfilter/ip6table_filter.o
CC net/ipv6/af_inet6.o
CC net/xfrm/xfrm_replay.o
CC drivers/acpi/acpica/exoparg3.o
CC net/netfilter/nf_conntrack_seqadj.o
CC net/netfilter/nf_conntrack_proto_icmpv6.o
CC net/ipv4/ip_sockglue.o
CC io_uring/memmap.o
CC drivers/pci/pci-label.o
CC net/core/link_watch.o
CC kernel/cpu.o
CC drivers/gpu/drm/i915/intel_clock_gating.o
CC net/ethtool/eee.o
CC drivers/gpu/drm/virtio/virtgpu_object.o
CC fs/fat/nfs.o
CC lib/iomem_copy.o
CC fs/lockd/host.o
CC fs/proc/proc_net.o
CC fs/netfs/read_single.o
CC fs/proc/kcore.o
CC fs/nls/nls_cp437.o
CC io_uring/alloc_cache.o
CC fs/netfs/rolling_buffer.o
CC drivers/tty/tty_jobctrl.o
AR security/selinux/built-in.a
CC lib/irq_regs.o
AR security/built-in.a
CC drivers/acpi/acpica/exoparg6.o
CC fs/nfs/getroot.o
CC crypto/ecb.o
CC net/ipv6/anycast.o
CC kernel/trace/trace_events.o
CC arch/x86/kernel/cpu/capflags.o
CC fs/isofs/rock.o
AR arch/x86/kernel/cpu/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_debugfs.o
CC fs/fat/namei_vfat.o
CC net/packet/af_packet.o
CC lib/is_single_threaded.o
CC mm/show_mem.o
AR net/dsa/built-in.a
CC drivers/dma-buf/dma-buf.o
AR net/unix/built-in.a
CC net/ipv4/inet_hashtables.o
AR drivers/base/power/built-in.a
CC drivers/base/syscore.o
CC fs/nls/nls_ascii.o
CC fs/nfs/inode.o
CC drivers/pci/vgaarb.o
CC drivers/acpi/acpica/exprep.o
CC fs/ext4/ioctl.o
CC sound/hda/hdac_stream.o
CC crypto/cbc.o
CC kernel/time/tick-broadcast.o
CC io_uring/io-wq.o
CC net/sunrpc/auth_gss/auth_gss.o
CC lib/klist.o
CC drivers/acpi/acpica/exregion.o
CC arch/x86/kernel/irq_32.o
CC kernel/time/tick-broadcast-hrtimer.o
CC fs/nfs/super.o
CC drivers/tty/n_null.o
CC fs/nls/nls_iso8859-1.o
CC block/blk-ioprio.o
CC block/blk-iolatency.o
CC net/ethtool/tsinfo.o
CC net/xfrm/xfrm_device.o
CC io_uring/futex.o
CC fs/isofs/export.o
CC fs/proc/kmsg.o
CC drivers/gpu/drm/virtio/virtgpu_plane.o
CC fs/netfs/write_collect.o
CC fs/proc/page.o
CC lib/kobject.o
AR kernel/events/built-in.a
CC drivers/base/driver.o
CC drivers/gpu/drm/i915/intel_cpu_info.o
CC block/blk-iocost.o
CC crypto/ctr.o
CC net/ethtool/cabletest.o
CC net/netfilter/nf_conntrack_netlink.o
CC drivers/acpi/acpica/exresnte.o
CC drivers/gpu/drm/i915/intel_device_info.o
CC fs/nls/nls_utf8.o
CC mm/interval_tree.o
CC sound/hda/array.o
CC fs/lockd/svc.o
AR fs/unicode/built-in.a
CC fs/autofs/init.o
CC net/netfilter/nf_conntrack_ftp.o
CC net/ipv6/netfilter/ip6table_mangle.o
CC drivers/tty/pty.o
CC fs/fat/namei_msdos.o
CC kernel/time/tick-oneshot.o
CC block/mq-deadline.o
CC arch/x86/kernel/dumpstack_32.o
CC net/ipv4/inet_timewait_sock.o
CC drivers/acpi/device_sysfs.o
CC net/sunrpc/auth_gss/gss_mech_switch.o
CC lib/kobject_uevent.o
CC drivers/dma-buf/dma-fence.o
CC drivers/base/class.o
CC drivers/base/platform.o
CC drivers/acpi/acpica/exresolv.o
CC fs/isofs/joliet.o
AR drivers/pci/built-in.a
AR fs/nls/built-in.a
CC io_uring/epoll.o
CC drivers/acpi/device_pm.o
CC crypto/gcm.o
CC drivers/acpi/proc.o
CC block/kyber-iosched.o
CC mm/list_lru.o
CC fs/9p/vfs_super.o
AR fs/proc/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_ioctl.o
AR drivers/gpu/drm/solomon/built-in.a
CC fs/ext4/mballoc.o
CC kernel/time/tick-sched.o
CC kernel/exit.o
CC sound/hda/hdmi_chmap.o
CC net/xfrm/xfrm_nat_keepalive.o
CC fs/autofs/inode.o
CC drivers/acpi/acpica/exresop.o
CC net/ipv6/netfilter/nf_defrag_ipv6_hooks.o
AR fs/hostfs/built-in.a
CC lib/logic_pio.o
CC io_uring/napi.o
CC fs/netfs/write_issue.o
CC crypto/ccm.o
CC arch/x86/kernel/time.o
CC drivers/tty/tty_audit.o
CC fs/lockd/svclock.o
CC fs/isofs/compress.o
CC net/ethtool/tunnels.o
CC drivers/gpu/drm/i915/intel_memory_region.o
AR fs/fat/built-in.a
AR drivers/cxl/core/built-in.a
AR drivers/cxl/built-in.a
CC net/core/filter.o
CC arch/x86/kernel/ioport.o
AR net/wireless/tests/built-in.a
CC net/wireless/core.o
CC net/wireless/sysfs.o
CC drivers/tty/sysrq.o
CC kernel/time/timer_migration.o
CC drivers/acpi/acpica/exserial.o
CC net/ipv4/inet_connection_sock.o
CC fs/9p/vfs_inode.o
CC fs/debugfs/inode.o
CC mm/workingset.o
CC drivers/gpu/drm/virtio/virtgpu_prime.o
CC kernel/trace/trace_export.o
CC net/sunrpc/clnt.o
CC fs/tracefs/inode.o
CC drivers/gpu/drm/virtio/virtgpu_trace_points.o
CC drivers/base/cpu.o
CC sound/hda/trace.o
CC fs/nfs/io.o
CC fs/autofs/root.o
CC block/blk-mq-debugfs.o
CC lib/maple_tree.o
CC fs/9p/vfs_inode_dotl.o
CC net/wireless/radiotap.o
CC drivers/dma-buf/dma-fence-array.o
CC [M] fs/efivarfs/inode.o
CC net/wireless/util.o
CC drivers/acpi/acpica/exstore.o
CC drivers/acpi/bus.o
CC net/core/sock_diag.o
CC net/ipv6/netfilter/nf_conntrack_reasm.o
CC net/xfrm/xfrm_algo.o
CC net/sunrpc/auth_gss/svcauth_gss.o
CC crypto/aes_generic.o
CC [M] drivers/gpu/drm/scheduler/sched_main.o
AR fs/isofs/built-in.a
CC fs/9p/vfs_addr.o
HOSTCC drivers/gpu/drm/xe/xe_gen_wa_oob
CC arch/x86/kernel/dumpstack.o
CC drivers/gpu/drm/i915/intel_pcode.o
CC drivers/acpi/acpica/exstoren.o
GEN xe_wa_oob.c xe_wa_oob.h
CC [M] drivers/gpu/drm/xe/xe_bb.o
CC drivers/dma-buf/dma-fence-chain.o
CC [M] fs/efivarfs/file.o
CC fs/netfs/write_retry.o
CC mm/debug.o
CC fs/tracefs/event_inode.o
CC net/netfilter/nf_conntrack_irc.o
CC kernel/time/vsyscall.o
CC fs/open.o
CC kernel/trace/trace_event_perf.o
AR drivers/tty/built-in.a
CC drivers/base/firmware.o
CC fs/9p/vfs_file.o
AR net/packet/built-in.a
CC fs/9p/vfs_dir.o
AR io_uring/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_submit.o
CC arch/x86/kernel/nmi.o
CC net/ethtool/fec.o
CC fs/debugfs/file.o
CC fs/9p/vfs_dentry.o
CC fs/lockd/svcshare.o
CC drivers/acpi/acpica/exstorob.o
CC fs/autofs/symlink.o
CC drivers/gpu/drm/drm_atomic.o
CC net/wireless/reg.o
CC drivers/acpi/glue.o
CC sound/hda/hdac_component.o
CC net/netfilter/nf_conntrack_sip.o
CC fs/nfs/direct.o
CC block/blk-pm.o
CC mm/gup.o
CC block/holder.o
CC drivers/base/init.o
CC net/ipv6/ip6_output.o
CC crypto/authenc.o
CC drivers/dma-buf/dma-fence-unwrap.o
CC net/ipv6/netfilter/nf_reject_ipv6.o
CC [M] fs/efivarfs/super.o
CC sound/hda/hdac_i915.o
CC drivers/acpi/acpica/exsystem.o
CC drivers/macintosh/mac_hid.o
CC kernel/time/timekeeping_debug.o
CC net/xfrm/xfrm_user.o
CC [M] drivers/gpu/drm/xe/xe_bo.o
CC fs/autofs/waitq.o
CC mm/mmap_lock.o
CC drivers/base/map.o
CC fs/9p/v9fs.o
AR fs/netfs/built-in.a
CC drivers/gpu/drm/i915/intel_region_ttm.o
CC fs/ext4/migrate.o
CC kernel/trace/trace_events_filter.o
CC kernel/trace/trace_events_trigger.o
CC net/netfilter/nf_nat_core.o
AR fs/tracefs/built-in.a
CC fs/lockd/svcproc.o
CC net/ipv6/ip6_input.o
AR drivers/gpu/drm/virtio/built-in.a
CC net/ipv6/addrconf.o
CC sound/hda/intel-dsp-config.o
CC mm/highmem.o
CC drivers/acpi/acpica/extrace.o
AR drivers/scsi/pcmcia/built-in.a
CC drivers/dma-buf/dma-resv.o
CC drivers/scsi/scsi.o
AR block/built-in.a
CC [M] drivers/gpu/drm/scheduler/sched_fence.o
CC arch/x86/kernel/ldt.o
CC mm/memory.o
CC net/ipv6/netfilter/ip6t_ipv6header.o
CC net/sunrpc/xprt.o
CC net/ethtool/eeprom.o
CC net/ipv4/tcp.o
CC net/ipv6/addrlabel.o
CC kernel/softirq.o
CC drivers/base/devres.o
AR drivers/macintosh/built-in.a
CC drivers/base/attribute_container.o
AR fs/debugfs/built-in.a
CC drivers/base/transport_class.o
CC kernel/time/namespace.o
CC drivers/acpi/acpica/exutils.o
CC [M] fs/efivarfs/vars.o
CC crypto/authencesn.o
CC sound/hda/intel-nhlt.o
CC [M] drivers/gpu/drm/scheduler/sched_entity.o
CC net/sunrpc/auth_gss/gss_rpc_upcall.o
CC fs/9p/fid.o
AR drivers/nvme/common/built-in.a
AR drivers/nvme/host/built-in.a
AR drivers/nvme/target/built-in.a
CC net/core/dev_ioctl.o
AR drivers/nvme/built-in.a
CC fs/autofs/expire.o
CC fs/ext4/mmp.o
CC drivers/scsi/hosts.o
CC net/ethtool/stats.o
CC drivers/dma-buf/sync_file.o
CC net/ipv6/route.o
CC drivers/gpu/drm/i915/intel_runtime_pm.o
AR sound/virtio/built-in.a
CC net/netfilter/nf_nat_proto.o
CC drivers/acpi/acpica/hwacpi.o
CC net/ipv4/tcp_input.o
CC net/ipv6/netfilter/ip6t_REJECT.o
CC [M] drivers/gpu/drm/xe/xe_bo_evict.o
CC arch/x86/kernel/setup.o
CC drivers/base/topology.o
CC sound/hda/intel-sdw-acpi.o
CC lib/memcat_p.o
AR kernel/time/built-in.a
CC crypto/lzo.o
CC drivers/acpi/scan.o
CC fs/lockd/svcsubs.o
CC drivers/gpu/drm/i915/intel_sbi.o
CC drivers/acpi/acpica/hwesleep.o
LD [M] drivers/gpu/drm/scheduler/gpu-sched.o
CC drivers/ata/libata-core.o
LD [M] fs/efivarfs/efivarfs.o
CC net/core/tso.o
AR drivers/net/phy/mediatek/built-in.a
AR drivers/net/phy/qcom/built-in.a
CC drivers/net/phy/realtek/realtek_main.o
CC fs/nfs/pagelist.o
CC net/netfilter/nf_nat_helper.o
AR drivers/dma-buf/built-in.a
CC net/ethtool/phc_vclocks.o
CC fs/9p/xattr.o
CC [M] drivers/gpu/drm/xe/xe_devcoredump.o
CC drivers/ata/libata-scsi.o
CC lib/nmi_backtrace.o
CC drivers/net/phy/mdio-boardinfo.o
CC kernel/trace/trace_eprobe.o
CC fs/autofs/dev-ioctl.o
AR net/mac80211/tests/built-in.a
CC net/ethtool/mm.o
CC net/mac80211/main.o
CC net/sunrpc/auth_gss/gss_rpc_xdr.o
CC net/core/sock_reuseport.o
CC drivers/scsi/scsi_ioctl.o
AR sound/hda/built-in.a
CC net/ethtool/module.o
CC drivers/acpi/acpica/hwgpe.o
CC sound/sound_core.o
CC drivers/gpu/drm/drm_atomic_uapi.o
CC drivers/base/container.o
CC crypto/lzo-rle.o
CC fs/ext4/move_extent.o
CC drivers/net/phy/stubs.o
CC arch/x86/kernel/x86_init.o
CC arch/x86/kernel/i8259.o
CC sound/last.o
CC fs/lockd/mon.o
CC kernel/resource.o
CC arch/x86/kernel/irqinit.o
CC drivers/acpi/acpica/hwregs.o
CC fs/read_write.o
CC drivers/base/property.o
CC drivers/gpu/drm/i915/intel_step.o
CC drivers/firewire/init_ohci1394_dma.o
AR fs/9p/built-in.a
CC drivers/base/cacheinfo.o
AR net/ipv6/netfilter/built-in.a
CC fs/file_table.o
CC kernel/sysctl.o
AR drivers/net/pse-pd/built-in.a
CC net/sunrpc/socklib.o
AR net/xfrm/built-in.a
CC net/ethtool/cmis_fw_update.o
CC crypto/rng.o
CC lib/objpool.o
AR sound/built-in.a
AR fs/autofs/built-in.a
CC net/sunrpc/auth_gss/trace.o
CC drivers/net/mdio/acpi_mdio.o
AR drivers/net/pcs/built-in.a
CC drivers/scsi/scsicam.o
CC drivers/net/mdio/fwnode_mdio.o
CC net/core/fib_notifier.o
CC drivers/acpi/acpica/hwsleep.o
CC [M] drivers/gpu/drm/xe/xe_device.o
CC net/netlabel/netlabel_user.o
CC drivers/gpu/drm/drm_auth.o
AR drivers/net/phy/realtek/built-in.a
CC drivers/cdrom/cdrom.o
CC drivers/gpu/drm/i915/intel_uncore.o
CC net/sunrpc/xprtsock.o
CC drivers/scsi/scsi_error.o
CC drivers/gpu/drm/drm_blend.o
CC net/wireless/scan.o
CC net/netfilter/nf_nat_masquerade.o
CC kernel/trace/trace_kprobe.o
AR drivers/firewire/built-in.a
CC fs/lockd/trace.o
CC fs/super.o
CC drivers/net/phy/mdio_devres.o
CC fs/ext4/namei.o
CC arch/x86/kernel/jump_label.o
CC fs/ext4/page-io.o
CC drivers/acpi/acpica/hwvalid.o
CC net/netlabel/netlabel_kapi.o
CC kernel/capability.o
CC drivers/gpu/drm/drm_bridge.o
CC fs/nfs/read.o
CC net/mac80211/status.o
CC net/sunrpc/sched.o
CC mm/mincore.o
CC crypto/drbg.o
CC net/wireless/nl80211.o
CC drivers/acpi/acpica/hwxface.o
CC arch/x86/kernel/irq_work.o
CC net/netfilter/nf_nat_ftp.o
AR drivers/net/mdio/built-in.a
CC net/sunrpc/auth_gss/gss_krb5_mech.o
CC net/mac80211/driver-ops.o
CC drivers/scsi/scsi_lib.o
CC net/sunrpc/auth.o
CC [M] drivers/gpu/drm/xe/xe_device_sysfs.o
CC crypto/jitterentropy.o
CC drivers/base/swnode.o
CC drivers/ata/libata-eh.o
CC fs/char_dev.o
CC kernel/ptrace.o
CC net/ethtool/cmis_cdb.o
CC kernel/trace/error_report-traces.o
CC net/core/xdp.o
CC drivers/acpi/acpica/hwxfsleep.o
CC drivers/net/phy/phy.o
CC lib/plist.o
CC fs/ext4/readpage.o
CC [M] drivers/gpu/drm/xe/xe_dma_buf.o
CC fs/nfs/symlink.o
CC fs/lockd/xdr.o
CC lib/radix-tree.o
CC crypto/jitterentropy-kcapi.o
CC drivers/gpu/drm/drm_cache.o
CC net/ipv6/ip6_fib.o
CC mm/mlock.o
CC net/ipv6/ipv6_sockglue.o
CC drivers/acpi/acpica/hwpci.o
CC net/sunrpc/auth_gss/gss_krb5_seal.o
CC net/mac80211/sta_info.o
CC drivers/net/phy/phy-c45.o
CC drivers/base/faux.o
CC net/rfkill/core.o
CC net/netlabel/netlabel_domainhash.o
CC arch/x86/kernel/probe_roms.o
CC drivers/ata/libata-transport.o
CC lib/ratelimit.o
CC net/sunrpc/auth_null.o
CC net/netfilter/nf_nat_irc.o
AR drivers/cdrom/built-in.a
CC fs/lockd/netlink.o
CC net/sunrpc/auth_gss/gss_krb5_unseal.o
CC net/core/flow_offload.o
CC drivers/acpi/mipi-disco-img.o
CC crypto/ghash-generic.o
CC drivers/acpi/acpica/nsaccess.o
CC kernel/trace/power-traces.o
CC [M] drivers/gpu/drm/xe/xe_drm_client.o
CC drivers/base/auxiliary.o
CC drivers/base/devtmpfs.o
CC net/ethtool/pse-pd.o
CC [M] drivers/gpu/drm/xe/xe_eu_stall.o
CC fs/lockd/clnt4xdr.o
CC drivers/gpu/drm/drm_color_mgmt.o
CC net/netfilter/nf_nat_sip.o
CC net/ipv6/ndisc.o
CC crypto/hash_info.o
CC lib/rbtree.o
CC crypto/rsapubkey.asn1.o
CC drivers/acpi/acpica/nsalloc.o
CC crypto/rsaprivkey.asn1.o
CC drivers/gpu/drm/i915/intel_uncore_trace.o
CC net/netlabel/netlabel_addrlist.o
AR crypto/built-in.a
CC fs/nfs/unlink.o
CC net/ipv4/tcp_output.o
CC arch/x86/kernel/sys_ia32.o
CC drivers/ata/libata-trace.o
CC drivers/scsi/constants.o
CC net/sunrpc/auth_tls.o
CC [M] drivers/gpu/drm/xe/xe_exec.o
CC drivers/net/phy/phy-core.o
CC arch/x86/kernel/ksysfs.o
CC net/rfkill/input.o
CC drivers/net/phy/phy_device.o
CC net/ipv6/udp.o
CC fs/nfs/write.o
CC lib/seq_buf.o
CC mm/mmap.o
CC [M] drivers/gpu/drm/xe/xe_exec_queue.o
CC net/9p/mod.o
CC kernel/trace/rpm-traces.o
CC drivers/acpi/acpica/nsarguments.o
AR drivers/net/ethernet/3com/built-in.a
CC drivers/gpu/drm/drm_connector.o
CC drivers/net/ethernet/8390/ne2k-pci.o
CC net/sunrpc/auth_gss/gss_krb5_wrap.o
CC fs/lockd/xdr4.o
CC net/9p/client.o
CC fs/stat.o
CC drivers/base/module.o
CC net/ethtool/plca.o
CC drivers/scsi/scsi_lib_dma.o
CC arch/x86/kernel/bootflag.o
CC net/core/gro.o
CC drivers/gpu/drm/i915/intel_wakeref.o
CC drivers/scsi/scsi_scan.o
CC drivers/acpi/acpica/nsconvert.o
CC kernel/trace/trace_dynevent.o
AR net/rfkill/built-in.a
CC kernel/trace/trace_probe.o
CC [M] drivers/gpu/drm/xe/xe_execlist.o
CC fs/ext4/resize.o
CC net/ipv6/udplite.o
CC drivers/net/ethernet/8390/8390.o
CC net/mac80211/wep.o
CC kernel/user.o
CC kernel/trace/trace_uprobe.o
CC net/sunrpc/auth_unix.o
CC lib/siphash.o
CC drivers/base/auxiliary_sysfs.o
CC fs/nfs/namespace.o
CC net/netlabel/netlabel_mgmt.o
CC arch/x86/kernel/e820.o
CC drivers/acpi/acpica/nsdump.o
CC net/netfilter/x_tables.o
CC drivers/acpi/acpica/nseval.o
CC net/core/netdev-genl.o
AR drivers/net/ethernet/adaptec/built-in.a
CC drivers/acpi/resource.o
CC net/dns_resolver/dns_key.o
CC drivers/ata/libata-sata.o
CC net/dns_resolver/dns_query.o
CC drivers/acpi/acpica/nsinit.o
CC lib/string.o
CC drivers/acpi/acpi_processor.o
AR drivers/net/wireless/admtek/built-in.a
AR drivers/net/wireless/ath/built-in.a
AR drivers/net/wireless/atmel/built-in.a
AR drivers/net/wireless/broadcom/built-in.a
AR drivers/net/wireless/intel/built-in.a
AR drivers/auxdisplay/built-in.a
AR drivers/net/wireless/intersil/built-in.a
CC drivers/acpi/processor_core.o
AR drivers/net/wireless/marvell/built-in.a
AR drivers/net/wireless/mediatek/built-in.a
CC drivers/base/devcoredump.o
AR drivers/net/wireless/microchip/built-in.a
AR drivers/net/usb/built-in.a
AR drivers/net/wireless/purelifi/built-in.a
CC drivers/acpi/processor_pdc.o
AR drivers/net/wireless/quantenna/built-in.a
CC fs/nfs/mount_clnt.o
AR drivers/net/wireless/ralink/built-in.a
AR drivers/net/wireless/realtek/built-in.a
AR drivers/net/wireless/rsi/built-in.a
CC lib/timerqueue.o
AR drivers/net/wireless/silabs/built-in.a
CC drivers/base/platform-msi.o
AR drivers/net/wireless/st/built-in.a
AR drivers/net/wireless/ti/built-in.a
AR drivers/net/wireless/zydas/built-in.a
CC net/sunrpc/auth_gss/gss_krb5_crypto.o
AR drivers/net/wireless/virtual/built-in.a
AR drivers/net/wireless/built-in.a
CC drivers/net/phy/linkmode.o
CC net/ethtool/phy.o
CC net/netfilter/xt_tcpudp.o
CC net/ethtool/tsconfig.o
CC kernel/signal.o
CC mm/mmu_gather.o
CC lib/union_find.o
CC drivers/acpi/acpica/nsload.o
CC fs/lockd/svc4proc.o
CC lib/vsprintf.o
CC drivers/gpu/drm/i915/vlv_sideband.o
CC mm/mprotect.o
AR drivers/net/ethernet/agere/built-in.a
CC net/core/netdev-genl-gen.o
CC drivers/acpi/ec.o
AR drivers/net/ethernet/alacritech/built-in.a
CC drivers/net/phy/phy_link_topology.o
CC [M] drivers/gpu/drm/xe/xe_force_wake.o
CC net/netlabel/netlabel_unlabeled.o
CC net/netfilter/xt_CONNSECMARK.o
CC kernel/trace/rethook.o
CC net/wireless/mlme.o
CC net/mac80211/aead_api.o
GEN drivers/scsi/scsi_devinfo_tbl.c
CC fs/exec.o
CC drivers/scsi/scsi_devinfo.o
AR drivers/net/ethernet/8390/built-in.a
AR net/dns_resolver/built-in.a
CC net/netlabel/netlabel_cipso_v4.o
AR drivers/net/ethernet/alteon/built-in.a
CC fs/pipe.o
AR drivers/net/ethernet/amazon/built-in.a
CC drivers/acpi/acpica/nsnames.o
AR drivers/net/ethernet/amd/built-in.a
AR drivers/net/ethernet/aquantia/built-in.a
AR drivers/net/ethernet/arc/built-in.a
CC drivers/base/physical_location.o
AR drivers/net/ethernet/asix/built-in.a
CC fs/namei.o
AR drivers/net/ethernet/atheros/built-in.a
AR drivers/net/ethernet/cadence/built-in.a
CC drivers/net/ethernet/broadcom/bnx2.o
CC fs/fcntl.o
CC drivers/base/trace.o
CC fs/ext4/super.o
CC arch/x86/kernel/pci-dma.o
CC net/9p/error.o
CC net/wireless/ibss.o
CC lib/win_minmax.o
CC [M] drivers/gpu/drm/xe/xe_ggtt.o
CC drivers/net/ethernet/broadcom/tg3.o
CC drivers/net/mii.o
CC drivers/ata/libata-sff.o
CC drivers/acpi/acpica/nsobject.o
CC net/sunrpc/svc.o
CC fs/lockd/procfs.o
CC drivers/gpu/drm/drm_crtc.o
CC net/ipv6/raw.o
CC drivers/gpu/drm/i915/vlv_suspend.o
CC fs/nfs/nfstrace.o
CC fs/ioctl.o
CC drivers/net/phy/phy_package.o
AR kernel/trace/built-in.a
CC kernel/sys.o
CC net/netfilter/xt_NFLOG.o
CC drivers/acpi/acpica/nsparse.o
CC net/9p/protocol.o
CC net/mac80211/wpa.o
AR net/ethtool/built-in.a
CC drivers/gpu/drm/i915/soc/intel_dram.o
CC net/core/gso.o
CC drivers/scsi/scsi_sysctl.o
CC net/9p/trans_common.o
CC net/sunrpc/auth_gss/gss_krb5_keys.o
CC mm/mremap.o
CC net/9p/trans_fd.o
CC mm/msync.o
CC net/netlabel/netlabel_calipso.o
CC net/handshake/alert.o
CC drivers/scsi/scsi_proc.o
CC arch/x86/kernel/quirks.o
CC drivers/scsi/scsi_debugfs.o
AR drivers/base/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gpu_scheduler.o
CC drivers/acpi/acpica/nspredef.o
CC drivers/acpi/acpica/nsprepkg.o
CC net/handshake/genl.o
CC lib/xarray.o
CC drivers/net/loopback.o
CC net/ipv4/tcp_timer.o
AR fs/lockd/built-in.a
CC drivers/gpu/drm/drm_displayid.o
AR drivers/net/ethernet/brocade/built-in.a
CC mm/page_vma_mapped.o
CC drivers/gpu/drm/drm_drv.o
CC net/ipv6/icmp.o
CC net/devres.o
CC arch/x86/kernel/kdebugfs.o
CC [M] drivers/gpu/drm/xe/xe_gsc.o
CC lib/lockref.o
CC drivers/gpu/drm/drm_dumb_buffers.o
CC net/netfilter/xt_SECMARK.o
CC net/handshake/netlink.o
CC drivers/net/phy/phy_caps.o
CC drivers/acpi/acpica/nsrepair.o
CC drivers/ata/libata-pmp.o
CC kernel/umh.o
CC fs/readdir.o
CC net/sunrpc/svcsock.o
CC [M] drivers/gpu/drm/xe/xe_gsc_debugfs.o
CC kernel/workqueue.o
CC drivers/scsi/scsi_trace.o
CC net/9p/trans_virtio.o
CC net/socket.o
CC drivers/acpi/acpica/nsrepair2.o
CC net/core/net-sysfs.o
CC drivers/gpu/drm/i915/soc/intel_gmch.o
CC net/handshake/request.o
AR net/sunrpc/auth_gss/built-in.a
AR net/netlabel/built-in.a
CC drivers/gpu/drm/i915/soc/intel_rom.o
AR drivers/net/ethernet/cavium/common/built-in.a
CC net/netfilter/xt_TCPMSS.o
AR drivers/net/ethernet/cavium/thunder/built-in.a
AR drivers/net/ethernet/cavium/liquidio/built-in.a
CC drivers/pcmcia/cs.o
AR drivers/net/ethernet/cavium/octeon/built-in.a
AR drivers/net/ethernet/cavium/built-in.a
CC net/wireless/sme.o
CC arch/x86/kernel/alternative.o
CC mm/pagewalk.o
CC net/core/hotdata.o
CC drivers/net/netconsole.o
CC net/mac80211/scan.o
CC net/mac80211/offchannel.o
CC fs/nfs/export.o
CC drivers/ata/libata-acpi.o
CC drivers/acpi/acpica/nssearch.o
CC drivers/gpu/drm/i915/i915_memcpy.o
CC drivers/scsi/scsi_logging.o
CC mm/pgtable-generic.o
CC net/mac80211/ht.o
CC fs/nfs/sysfs.o
CC net/ipv6/mcast.o
CC arch/x86/kernel/i8253.o
CC net/ipv4/tcp_ipv4.o
CC drivers/pcmcia/socket_sysfs.o
CC drivers/net/phy/mdio_bus.o
CC drivers/net/phy/mdio_device.o
CC lib/bcd.o
CC net/netfilter/xt_conntrack.o
CC lib/sort.o
CC net/sunrpc/svcauth.o
CC net/ipv6/reassembly.o
CC [M] drivers/gpu/drm/xe/xe_gsc_proxy.o
CC drivers/gpu/drm/drm_edid.o
CC drivers/acpi/acpica/nsutils.o
CC drivers/gpu/drm/i915/i915_mm.o
CC drivers/net/phy/swphy.o
CC mm/rmap.o
CC fs/ext4/symlink.o
CC net/sysctl_net.o
CC lib/parser.o
CC net/ipv6/tcp_ipv6.o
CC net/core/netdev_rx_queue.o
CC drivers/gpu/drm/drm_eld.o
CC fs/nfs/fs_context.o
CC net/mac80211/agg-tx.o
CC drivers/net/phy/fixed_phy.o
AR net/9p/built-in.a
CC drivers/scsi/scsi_pm.o
CC fs/nfs/nfsroot.o
CC net/wireless/chan.o
CC drivers/acpi/acpica/nswalk.o
CC drivers/pcmcia/cardbus.o
CC net/sunrpc/svcauth_unix.o
CC net/sunrpc/addr.o
CC lib/debug_locks.o
CC [M] drivers/gpu/drm/xe/xe_gsc_submit.o
CC drivers/acpi/dock.o
CC net/handshake/tlshd.o
CC drivers/gpu/drm/i915/i915_sw_fence.o
CC arch/x86/kernel/hw_breakpoint.o
CC drivers/ata/libata-pata-timings.o
CC drivers/gpu/drm/drm_encoder.o
CC lib/random32.o
CC net/ipv4/tcp_minisocks.o
CC net/mac80211/agg-rx.o
CC fs/nfs/sysctl.o
CC drivers/acpi/acpica/nsxfeval.o
CC [M] drivers/gpu/drm/xe/xe_gt.o
CC net/ipv4/tcp_cong.o
CC net/netfilter/xt_policy.o
CC [M] drivers/gpu/drm/xe/xe_gt_ccs_mode.o
CC drivers/scsi/scsi_bsg.o
CC drivers/scsi/scsi_common.o
CC drivers/pcmcia/ds.o
CC net/ipv6/ping.o
CC lib/bust_spinlocks.o
CC fs/ext4/sysfs.o
CC drivers/pcmcia/pcmcia_resource.o
CC drivers/gpu/drm/i915/i915_sw_fence_work.o
CC drivers/pcmcia/cistpl.o
CC net/core/net-procfs.o
AR drivers/net/phy/built-in.a
CC fs/ext4/xattr.o
CC drivers/acpi/acpica/nsxfname.o
CC fs/nfs/nfs3super.o
CC net/netfilter/xt_state.o
CC drivers/ata/ahci.o
CC drivers/acpi/pci_root.o
CC drivers/usb/common/common.o
CC arch/x86/kernel/tsc.o
CC drivers/acpi/pci_link.o
CC drivers/input/serio/serio.o
CC drivers/usb/core/usb.o
AR drivers/usb/phy/built-in.a
CC kernel/pid.o
CC drivers/gpu/drm/i915/i915_syncmap.o
CC net/handshake/trace.o
CC [M] drivers/gpu/drm/xe/xe_gt_clock.o
CC lib/kasprintf.o
CC lib/bitmap.o
CC drivers/scsi/scsi_transport_spi.o
CC net/wireless/ethtool.o
CC drivers/acpi/acpica/nsxfobj.o
CC fs/select.o
CC net/ipv6/exthdrs.o
CC net/sunrpc/rpcb_clnt.o
CC [M] net/netfilter/nf_log_syslog.o
CC net/core/netpoll.o
CC mm/vmalloc.o
CC net/ipv6/datagram.o
CC lib/scatterlist.o
CC drivers/gpu/drm/i915/i915_user_extensions.o
CC net/sunrpc/timer.o
CC drivers/input/serio/i8042.o
CC drivers/usb/common/debug.o
CC drivers/usb/mon/mon_main.o
CC drivers/acpi/acpica/psargs.o
CC drivers/scsi/virtio_scsi.o
CC drivers/ata/libahci.o
CC mm/vma.o
CC fs/ext4/xattr_hurd.o
AR drivers/usb/common/built-in.a
CC drivers/input/keyboard/atkbd.o
CC net/wireless/mesh.o
CC net/mac80211/vht.o
CC fs/nfs/nfs3client.o
CC drivers/usb/host/pci-quirks.o
CC fs/nfs/nfs3proc.o
CC drivers/acpi/acpica/psloop.o
CC net/mac80211/he.o
CC net/mac80211/s1g.o
CC drivers/gpu/drm/i915/i915_debugfs.o
CC [M] drivers/gpu/drm/xe/xe_gt_freq.o
CC drivers/input/mouse/psmouse-base.o
AR drivers/input/joystick/built-in.a
AR drivers/net/ethernet/chelsio/built-in.a
CC drivers/pcmcia/pcmcia_cis.o
CC net/ipv6/ip6_flowlabel.o
CC drivers/usb/host/ehci-hcd.o
CC net/ipv4/tcp_metrics.o
CC drivers/usb/core/hub.o
CC arch/x86/kernel/tsc_msr.o
CC arch/x86/kernel/io_delay.o
CC drivers/input/mouse/synaptics.o
CC drivers/gpu/drm/drm_file.o
CC drivers/rtc/lib.o
CC drivers/gpu/drm/i915/i915_debugfs_params.o
CC drivers/usb/mon/mon_stat.o
CC net/ipv4/tcp_fastopen.o
CC drivers/acpi/acpica/psobject.o
CC kernel/task_work.o
AR drivers/net/ethernet/cisco/built-in.a
CC lib/list_sort.o
CC drivers/i2c/algos/i2c-algo-bit.o
AR drivers/i3c/built-in.a
CC drivers/input/mouse/focaltech.o
CC arch/x86/kernel/rtc.o
CC drivers/net/virtio_net.o
AR net/handshake/built-in.a
CC net/core/fib_rules.o
CC fs/nfs/nfs3xdr.o
CC [M] net/netfilter/xt_mark.o
CC lib/uuid.o
CC drivers/scsi/sd.o
CC drivers/acpi/acpica/psopcode.o
CC lib/iov_iter.o
CC drivers/rtc/class.o
CC [M] drivers/gpu/drm/xe/xe_gt_idle.o
CC drivers/usb/core/hcd.o
AR drivers/input/keyboard/built-in.a
CC drivers/scsi/sr.o
CC drivers/usb/mon/mon_text.o
CC drivers/input/serio/serport.o
CC drivers/usb/core/urb.o
CC drivers/usb/core/message.o
CC drivers/pcmcia/rsrc_mgr.o
CC net/core/net-traces.o
CC lib/clz_ctz.o
CC drivers/rtc/interface.o
AR drivers/media/i2c/built-in.a
AR drivers/media/tuners/built-in.a
AR drivers/media/rc/keymaps/built-in.a
AR drivers/media/rc/built-in.a
AR drivers/media/common/b2c2/built-in.a
AR drivers/media/platform/allegro-dvt/built-in.a
CC drivers/input/mouse/alps.o
AR drivers/media/pci/ttpci/built-in.a
AR drivers/media/common/saa7146/built-in.a
CC kernel/extable.o
AR drivers/media/pci/b2c2/built-in.a
AR drivers/media/platform/amlogic/meson-ge2d/built-in.a
AR drivers/media/common/siano/built-in.a
CC arch/x86/kernel/resource.o
AR drivers/media/platform/amlogic/built-in.a
AR drivers/media/pci/pluto2/built-in.a
AR drivers/media/usb/b2c2/built-in.a
AR drivers/media/common/v4l2-tpg/built-in.a
AR drivers/media/pci/dm1105/built-in.a
AR drivers/media/common/videobuf2/built-in.a
AR drivers/media/platform/amphion/built-in.a
CC net/ipv4/tcp_rate.o
AR drivers/media/common/built-in.a
AR drivers/media/usb/dvb-usb/built-in.a
AR drivers/media/pci/pt1/built-in.a
CC drivers/acpi/acpica/psopinfo.o
AR drivers/media/platform/aspeed/built-in.a
AR drivers/media/usb/dvb-usb-v2/built-in.a
CC kernel/params.o
AR drivers/media/platform/atmel/built-in.a
AR drivers/media/pci/pt3/built-in.a
AR drivers/media/usb/s2255/built-in.a
AR drivers/media/platform/broadcom/built-in.a
AR drivers/media/pci/mantis/built-in.a
AR drivers/media/usb/siano/built-in.a
AR drivers/media/platform/cadence/built-in.a
AR drivers/media/pci/ngene/built-in.a
AR drivers/media/usb/ttusb-budget/built-in.a
AR drivers/media/pci/ddbridge/built-in.a
AR drivers/media/platform/chips-media/coda/built-in.a
AR drivers/media/usb/ttusb-dec/built-in.a
AR drivers/media/pci/saa7146/built-in.a
AR drivers/media/usb/built-in.a
AR drivers/media/platform/chips-media/wave5/built-in.a
AR drivers/media/platform/imagination/built-in.a
CC net/sunrpc/xdr.o
AR drivers/media/platform/chips-media/built-in.a
AR drivers/media/pci/smipcie/built-in.a
CC mm/process_vm_access.o
CC drivers/i2c/busses/i2c-i801.o
AR drivers/media/pci/netup_unidvb/built-in.a
AR drivers/media/platform/intel/built-in.a
AR drivers/media/platform/marvell/built-in.a
AR drivers/media/pci/intel/ipu3/built-in.a
AR drivers/media/platform/microchip/built-in.a
AR drivers/net/ethernet/cortina/built-in.a
AR drivers/media/platform/mediatek/jpeg/built-in.a
AR drivers/media/pci/intel/ivsc/built-in.a
AR drivers/media/platform/mediatek/mdp/built-in.a
AR drivers/media/pci/intel/built-in.a
AR drivers/i2c/muxes/built-in.a
CC drivers/input/mouse/byd.o
AR drivers/media/platform/mediatek/vcodec/common/built-in.a
CC drivers/acpi/acpica/psparse.o
AR drivers/media/pci/built-in.a
CC drivers/gpu/drm/i915/i915_pmu.o
AR drivers/media/platform/mediatek/vcodec/encoder/built-in.a
AS arch/x86/kernel/irqflags.o
CC net/ipv6/inet6_connection_sock.o
AR drivers/media/platform/mediatek/vcodec/decoder/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_mcr.o
AR drivers/media/platform/mediatek/vcodec/built-in.a
CC arch/x86/kernel/static_call.o
AR drivers/media/platform/mediatek/vpu/built-in.a
AR drivers/i2c/algos/built-in.a
AR drivers/media/platform/mediatek/mdp3/built-in.a
CC fs/ext4/xattr_trusted.o
AR drivers/media/platform/mediatek/built-in.a
CC drivers/input/mouse/logips2pp.o
CC net/ipv6/udp_offload.o
CC drivers/ata/ata_piix.o
AR drivers/media/platform/nuvoton/built-in.a
AR drivers/media/platform/nvidia/tegra-vde/built-in.a
AR drivers/media/platform/nvidia/built-in.a
AR drivers/media/platform/nxp/dw100/built-in.a
AR drivers/media/platform/nxp/imx-jpeg/built-in.a
CC arch/x86/kernel/process.o
AR drivers/media/platform/nxp/imx8-isi/built-in.a
AR drivers/media/platform/nxp/built-in.a
CC [M] net/netfilter/xt_nat.o
CC fs/nfs/nfs3acl.o
AR drivers/media/platform/qcom/camss/built-in.a
AR drivers/media/platform/qcom/iris/built-in.a
AR drivers/media/platform/qcom/venus/built-in.a
AR drivers/media/platform/qcom/built-in.a
CC drivers/input/serio/libps2.o
AR drivers/media/platform/raspberrypi/pisp_be/built-in.a
AR drivers/media/platform/raspberrypi/rp1-cfe/built-in.a
AR drivers/media/platform/raspberrypi/built-in.a
CC drivers/pcmcia/rsrc_nonstatic.o
CC drivers/usb/core/driver.o
AR drivers/media/platform/renesas/rcar-vin/built-in.a
AR drivers/media/platform/renesas/rzg2l-cru/built-in.a
AR drivers/media/platform/renesas/vsp1/built-in.a
AR drivers/media/platform/renesas/built-in.a
AR drivers/media/platform/rockchip/rga/built-in.a
AR drivers/media/platform/rockchip/rkisp1/built-in.a
CC fs/nfs/nfs4proc.o
AR drivers/media/platform/rockchip/built-in.a
CC drivers/usb/mon/mon_bin.o
AR drivers/media/platform/samsung/exynos-gsc/built-in.a
CC drivers/acpi/acpica/psscope.o
AR drivers/media/platform/samsung/exynos4-is/built-in.a
CC drivers/usb/class/usblp.o
AR drivers/media/platform/samsung/s3c-camif/built-in.a
CC drivers/usb/storage/scsiglue.o
AR drivers/media/platform/samsung/s5p-g2d/built-in.a
AR drivers/media/platform/samsung/s5p-jpeg/built-in.a
AR drivers/media/platform/samsung/s5p-mfc/built-in.a
CC drivers/i2c/i2c-boardinfo.o
CC drivers/i2c/i2c-core-base.o
AR drivers/media/platform/samsung/built-in.a
AR drivers/media/platform/st/sti/bdisp/built-in.a
AR drivers/usb/misc/built-in.a
CC drivers/i2c/i2c-core-smbus.o
CC kernel/kthread.o
AR drivers/media/platform/st/sti/c8sectpfe/built-in.a
AR drivers/media/platform/st/sti/delta/built-in.a
CC drivers/scsi/sr_ioctl.o
AR drivers/media/platform/st/sti/hva/built-in.a
AR drivers/media/platform/st/stm32/built-in.a
AR drivers/media/platform/st/built-in.a
CC net/mac80211/ibss.o
AR drivers/media/platform/sunxi/sun4i-csi/built-in.a
CC drivers/pcmcia/yenta_socket.o
AR drivers/media/platform/sunxi/sun6i-csi/built-in.a
AR drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a
AR drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a
AR drivers/media/platform/sunxi/sun8i-di/built-in.a
AR drivers/media/platform/sunxi/sun8i-rotate/built-in.a
AR drivers/media/platform/sunxi/built-in.a
CC drivers/i2c/i2c-core-acpi.o
AR drivers/media/platform/synopsys/hdmirx/built-in.a
AR drivers/media/platform/synopsys/built-in.a
AR drivers/media/platform/verisilicon/built-in.a
AR drivers/media/platform/ti/am437x/built-in.a
CC drivers/usb/early/ehci-dbgp.o
AR drivers/media/platform/ti/cal/built-in.a
AR drivers/media/mmc/siano/built-in.a
CC drivers/i2c/i2c-smbus.o
AR drivers/media/mmc/built-in.a
AR drivers/media/platform/ti/vpe/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_pagefault.o
AR drivers/media/platform/ti/davinci/built-in.a
AR drivers/media/platform/ti/j721e-csi2rx/built-in.a
CC drivers/acpi/acpica/pstree.o
AR drivers/media/platform/ti/omap/built-in.a
AR drivers/media/platform/ti/omap3isp/built-in.a
AR drivers/media/platform/ti/built-in.a
AR drivers/media/platform/via/built-in.a
AR drivers/media/platform/xilinx/built-in.a
CC fs/dcache.o
AR drivers/media/platform/built-in.a
CC drivers/acpi/acpica/psutils.o
AR drivers/media/firewire/built-in.a
AR drivers/media/spi/built-in.a
AR drivers/media/test-drivers/built-in.a
AR drivers/media/built-in.a
CC net/sunrpc/sunrpc_syms.o
AR drivers/input/serio/built-in.a
CC drivers/usb/host/ehci-pci.o
CC drivers/usb/storage/protocol.o
AR drivers/net/ethernet/dec/tulip/built-in.a
AR drivers/net/ethernet/dec/built-in.a
CC net/ipv4/tcp_recovery.o
CC mm/page_alloc.o
CC net/ipv4/tcp_ulp.o
AR drivers/i2c/busses/built-in.a
AR drivers/pps/clients/built-in.a
CC drivers/pps/pps.o
CC drivers/rtc/nvmem.o
CC drivers/scsi/sr_vendor.o
CC net/ipv6/seg6.o
CC drivers/ata/pata_amd.o
CC drivers/ptp/ptp_clock.o
CC kernel/sys_ni.o
CC net/wireless/ap.o
CC arch/x86/kernel/ptrace.o
CC drivers/acpi/acpica/pswalk.o
CC drivers/usb/storage/transport.o
CC drivers/scsi/sg.o
CC [M] net/netfilter/xt_LOG.o
CC drivers/input/mouse/lifebook.o
AR drivers/usb/class/built-in.a
CC kernel/nsproxy.o
CC net/core/selftests.o
AR drivers/net/ethernet/dlink/built-in.a
CC drivers/gpu/drm/i915/gt/gen2_engine_cs.o
CC net/ipv6/fib6_notifier.o
CC net/mac80211/iface.o
CC drivers/usb/core/config.o
AR drivers/usb/mon/built-in.a
CC mm/page_frag_cache.o
CC drivers/ata/pata_oldpiix.o
CC fs/inode.o
CC drivers/usb/storage/usb.o
CC mm/init-mm.o
CC drivers/acpi/acpica/psxface.o
CC lib/bsearch.o
AR drivers/usb/early/built-in.a
CC drivers/ata/pata_sch.o
CC kernel/notifier.o
CC drivers/rtc/dev.o
CC drivers/usb/host/ohci-hcd.o
AR drivers/input/tablet/built-in.a
CC drivers/pps/kapi.o
CC net/ipv4/tcp_offload.o
CC net/sunrpc/cache.o
CC fs/ext4/xattr_user.o
AR drivers/pcmcia/built-in.a
CC net/core/ptp_classifier.o
CC drivers/input/mouse/trackpoint.o
CC drivers/acpi/acpica/rsaddr.o
CC net/core/netprio_cgroup.o
CC drivers/pps/sysfs.o
CC lib/find_bit.o
CC drivers/usb/host/ohci-pci.o
CC [M] drivers/gpu/drm/xe/xe_gt_sysfs.o
CC drivers/rtc/proc.o
CC net/mac80211/link.o
CC net/ipv6/rpl.o
CC drivers/ptp/ptp_chardev.o
CC fs/attr.o
CC arch/x86/kernel/tls.o
CC drivers/acpi/acpica/rscalc.o
AR drivers/net/ethernet/emulex/built-in.a
CC net/core/netclassid_cgroup.o
CC net/mac80211/rate.o
CC drivers/usb/core/file.o
CC lib/llist.o
AR drivers/i2c/built-in.a
CC lib/lwq.o
CC [M] drivers/gpu/drm/xe/xe_gt_throttle.o
AR drivers/net/ethernet/engleder/built-in.a
CC net/ipv4/tcp_plb.o
CC net/mac80211/michael.o
CC drivers/gpu/drm/i915/gt/gen6_engine_cs.o
CC drivers/ata/pata_mpiix.o
AR drivers/pps/built-in.a
CC drivers/gpu/drm/i915/gt/gen6_ppgtt.o
CC drivers/usb/core/buffer.o
CC drivers/ptp/ptp_sysfs.o
CC net/mac80211/tkip.o
CC drivers/gpu/drm/drm_fourcc.o
CC fs/nfs/nfs4xdr.o
CC lib/memweight.o
CC fs/ext4/fast_commit.o
CC [M] net/netfilter/xt_MASQUERADE.o
CC drivers/usb/storage/initializers.o
CC drivers/usb/storage/sierra_ms.o
CC kernel/ksysfs.o
CC lib/kfifo.o
CC drivers/input/mouse/cypress_ps2.o
CC drivers/usb/storage/option_ms.o
CC drivers/rtc/sysfs.o
CC drivers/gpu/drm/drm_framebuffer.o
CC net/core/dst_cache.o
CC drivers/acpi/acpica/rscreate.o
AR drivers/net/ethernet/broadcom/built-in.a
AR drivers/net/ethernet/ezchip/built-in.a
CC drivers/usb/storage/usual-tables.o
AR drivers/net/ethernet/fujitsu/built-in.a
AR drivers/net/ethernet/fungible/built-in.a
AR drivers/net/ethernet/google/built-in.a
AR drivers/net/ethernet/hisilicon/built-in.a
CC drivers/scsi/scsi_sysfs.o
AR drivers/net/ethernet/huawei/built-in.a
CC arch/x86/kernel/step.o
CC drivers/net/ethernet/intel/e1000/e1000_main.o
CC drivers/net/net_failover.o
CC mm/memblock.o
AR drivers/net/ethernet/i825xx/built-in.a
CC fs/ext4/orphan.o
CC fs/ext4/acl.o
CC drivers/usb/core/sysfs.o
CC drivers/acpi/acpica/rsdumpinfo.o
CC drivers/acpi/acpica/rsinfo.o
CC drivers/ata/ata_generic.o
CC lib/percpu-refcount.o
CC [M] drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
CC lib/rhashtable.o
CC lib/base64.o
CC kernel/cred.o
CC drivers/ptp/ptp_vclock.o
AR drivers/input/touchscreen/built-in.a
CC drivers/gpu/drm/i915/gt/gen7_renderclear.o
CC net/ipv6/ioam6.o
CC drivers/power/supply/power_supply_core.o
CC drivers/net/ethernet/intel/e1000e/82571.o
CC drivers/net/ethernet/intel/e1000/e1000_hw.o
CC drivers/power/supply/power_supply_sysfs.o
CC drivers/input/mouse/psmouse-smbus.o
CC net/core/gro_cells.o
CC fs/nfs/nfs4state.o
AR drivers/usb/storage/built-in.a
CC drivers/rtc/rtc-mc146818-lib.o
CC mm/slub.o
CC fs/ext4/xattr_security.o
CC net/ipv4/datagram.o
CC mm/madvise.o
CC drivers/acpi/acpica/rsio.o
CC net/wireless/trace.o
CC arch/x86/kernel/i8237.o
CC mm/page_io.o
CC [M] drivers/gpu/drm/xe/xe_gt_topology.o
CC drivers/acpi/acpica/rsirq.o
CC [M] net/netfilter/xt_addrtype.o
CC drivers/usb/host/uhci-hcd.o
CC mm/swap_state.o
CC drivers/acpi/acpica/rslist.o
CC net/mac80211/aes_cmac.o
CC drivers/net/ethernet/intel/e1000/e1000_ethtool.o
CC drivers/rtc/rtc-cmos.o
CC drivers/net/ethernet/intel/e100.o
CC net/ipv4/raw.o
AR drivers/ata/built-in.a
AR drivers/net/ethernet/microsoft/built-in.a
CC arch/x86/kernel/stacktrace.o
CC drivers/gpu/drm/i915/gt/gen8_engine_cs.o
CC drivers/usb/host/xhci.o
CC drivers/acpi/pci_irq.o
CC drivers/net/ethernet/intel/e1000/e1000_param.o
CC kernel/reboot.o
CC drivers/usb/core/endpoint.o
CC drivers/ptp/ptp_kvm_x86.o
CC drivers/net/ethernet/intel/e1000e/ich8lan.o
AR drivers/input/mouse/built-in.a
AR drivers/scsi/built-in.a
AR drivers/input/misc/built-in.a
CC drivers/input/input.o
CC drivers/power/supply/power_supply_leds.o
CC drivers/acpi/acpica/rsmemory.o
CC fs/bad_inode.o
CC drivers/usb/host/xhci-mem.o
CC drivers/input/input-compat.o
CC drivers/usb/core/devio.o
CC fs/file.o
CC net/sunrpc/rpc_pipe.o
CC lib/once.o
CC drivers/acpi/acpica/rsmisc.o
CC arch/x86/kernel/reboot.o
CC drivers/net/ethernet/intel/e1000e/80003es2lan.o
CC net/core/failover.o
CC kernel/async.o
CC drivers/ptp/ptp_kvm_common.o
CC [M] drivers/gpu/drm/xe/xe_guc.o
CC lib/refcount.o
CC drivers/usb/host/xhci-ext-caps.o
AR drivers/net/ethernet/litex/built-in.a
CC drivers/power/supply/power_supply_hwmon.o
CC net/wireless/ocb.o
CC fs/nfs/nfs4renewd.o
CC drivers/gpu/drm/i915/gt/gen8_ppgtt.o
CC net/mac80211/aes_gmac.o
CC drivers/input/input-mt.o
AR fs/ext4/built-in.a
CC kernel/range.o
CC drivers/acpi/acpica/rsserial.o
CC drivers/gpu/drm/i915/gt/intel_breadcrumbs.o
CC arch/x86/kernel/msr.o
CC fs/filesystems.o
CC net/ipv6/sysctl_net_ipv6.o
CC drivers/net/ethernet/intel/e1000e/mac.o
CC net/ipv6/xfrm6_policy.o
CC mm/swapfile.o
AR drivers/rtc/built-in.a
CC drivers/gpu/drm/i915/gt/intel_context.o
CC lib/rcuref.o
CC drivers/usb/host/xhci-ring.o
CC arch/x86/kernel/cpuid.o
CC net/wireless/pmsr.o
AR net/netfilter/built-in.a
CC drivers/usb/core/notify.o
CC drivers/input/input-poller.o
CC lib/usercopy.o
CC drivers/acpi/acpica/rsutils.o
CC kernel/smpboot.o
CC mm/dmapool.o
AR drivers/power/supply/built-in.a
AR drivers/power/built-in.a
CC drivers/hwmon/hwmon.o
CC drivers/acpi/acpi_apd.o
CC fs/nfs/nfs4super.o
CC drivers/gpu/drm/i915/gt/intel_context_sseu.o
AR drivers/ptp/built-in.a
CC drivers/gpu/drm/drm_gem.o
CC drivers/usb/host/xhci-hub.o
AR net/core/built-in.a
CC lib/errseq.o
CC drivers/net/ethernet/intel/e1000e/manage.o
CC net/ipv4/udp.o
CC net/ipv6/xfrm6_state.o
CC lib/bucket_locks.o
CC mm/hugetlb.o
CC arch/x86/kernel/early-quirks.o
CC drivers/acpi/acpica/rsxface.o
GEN net/wireless/shipped-certs.c
CC drivers/input/ff-core.o
CC mm/mmu_notifier.o
CC drivers/net/ethernet/intel/e1000e/nvm.o
CC drivers/gpu/drm/drm_ioctl.o
CC fs/namespace.o
CC lib/generic-radix-tree.o
CC kernel/ucount.o
CC net/sunrpc/sysfs.o
CC drivers/usb/host/xhci-dbg.o
CC arch/x86/kernel/smp.o
AR drivers/thermal/broadcom/built-in.a
CC net/mac80211/fils_aead.o
CC net/ipv6/xfrm6_input.o
AR drivers/thermal/renesas/built-in.a
CC drivers/usb/host/xhci-trace.o
AR drivers/thermal/samsung/built-in.a
CC drivers/thermal/intel/intel_tcc.o
AR drivers/thermal/st/built-in.a
CC arch/x86/kernel/smpboot.o
CC net/sunrpc/svc_xprt.o
CC drivers/acpi/acpica/tbdata.o
CC drivers/gpu/drm/i915/gt/intel_engine_cs.o
CC kernel/regset.o
CC drivers/acpi/acpica/tbfadt.o
AR drivers/net/ethernet/marvell/octeon_ep/built-in.a
AR drivers/net/ethernet/intel/e1000/built-in.a
CC [M] drivers/gpu/drm/xe/xe_guc_ads.o
AR drivers/net/ethernet/marvell/octeon_ep_vf/built-in.a
CC drivers/net/ethernet/intel/e1000e/phy.o
AR drivers/net/ethernet/marvell/octeontx2/built-in.a
AR drivers/net/ethernet/marvell/prestera/built-in.a
CC drivers/net/ethernet/marvell/sky2.o
CC drivers/thermal/intel/therm_throt.o
CC net/sunrpc/xprtmultipath.o
CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.o
CC net/mac80211/cfg.o
CC drivers/usb/core/generic.o
CC lib/bitmap-str.o
CC kernel/ksyms_common.o
CC drivers/input/touchscreen.o
CC net/ipv4/udplite.o
CC net/ipv4/udp_offload.o
AR drivers/watchdog/built-in.a
CC drivers/net/ethernet/intel/e1000e/param.o
CC [M] drivers/gpu/drm/xe/xe_guc_buf.o
CC fs/nfs/nfs4file.o
CC net/ipv6/xfrm6_output.o
CC lib/string_helpers.o
CC net/mac80211/ethtool.o
CC drivers/acpi/acpi_platform.o
CC drivers/acpi/acpica/tbfind.o
AR drivers/thermal/qcom/built-in.a
CC fs/nfs/delegation.o
CC fs/seq_file.o
AR drivers/hwmon/built-in.a
CC net/sunrpc/stats.o
CC drivers/acpi/acpica/tbinstal.o
CC mm/migrate.o
CC drivers/acpi/acpi_pnp.o
CC drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o
AR drivers/net/ethernet/mellanox/built-in.a
AR drivers/net/ethernet/meta/built-in.a
CC kernel/groups.o
CC lib/hexdump.o
CC kernel/kcmp.o
CC drivers/usb/core/quirks.o
CC lib/kstrtox.o
CC drivers/input/ff-memless.o
CC drivers/usb/core/devices.o
CC drivers/acpi/power.o
CC net/sunrpc/sysctl.o
CC drivers/acpi/acpica/tbprint.o
CC fs/nfs/nfs4idmap.o
CC [M] drivers/gpu/drm/xe/xe_guc_capture.o
CC net/mac80211/rx.o
CC arch/x86/kernel/tsc_sync.o
CC [M] drivers/gpu/drm/xe/xe_guc_ct.o
CC net/ipv4/arp.o
CC drivers/md/md.o
CC drivers/gpu/drm/i915/gt/intel_engine_pm.o
CC fs/nfs/callback.o
AR drivers/thermal/intel/built-in.a
CC drivers/md/md-bitmap.o
CC drivers/cpufreq/cpufreq.o
AR drivers/thermal/tegra/built-in.a
CC fs/xattr.o
AR drivers/thermal/mediatek/built-in.a
CC drivers/thermal/thermal_core.o
CC net/ipv4/icmp.o
CC arch/x86/kernel/setup_percpu.o
CC kernel/freezer.o
CC lib/iomap.o
CC drivers/acpi/acpica/tbutils.o
CC drivers/md/md-autodetect.o
CC drivers/acpi/event.o
CC net/ipv6/xfrm6_protocol.o
CC drivers/input/sparse-keymap.o
CC [M] drivers/gpu/drm/xe/xe_guc_db_mgr.o
CC drivers/cpuidle/governors/menu.o
CC drivers/cpuidle/cpuidle.o
CC drivers/cpufreq/freq_table.o
CC net/ipv6/netfilter.o
CC net/wireless/shipped-certs.o
AR drivers/net/ethernet/micrel/built-in.a
CC fs/libfs.o
CC drivers/usb/core/phy.o
CC drivers/cpuidle/driver.o
CC drivers/net/ethernet/intel/e1000e/ethtool.o
CC drivers/usb/host/xhci-debugfs.o
CC drivers/acpi/acpica/tbxface.o
CC arch/x86/kernel/mpparse.o
CC drivers/gpu/drm/drm_lease.o
CC fs/nfs/callback_xdr.o
CC drivers/input/vivaldi-fmap.o
CC drivers/thermal/thermal_sysfs.o
CC drivers/md/dm.o
CC drivers/cpuidle/governors/haltpoll.o
CC lib/iomap_copy.o
CC kernel/profile.o
CC fs/fs-writeback.o
CC [M] drivers/gpu/drm/xe/xe_guc_engine_activity.o
CC drivers/acpi/evged.o
AR drivers/mmc/built-in.a
CC kernel/stacktrace.o
CC fs/pnode.o
CC drivers/acpi/acpica/tbxfload.o
CC drivers/thermal/thermal_trip.o
CC lib/devres.o
CC drivers/gpu/drm/i915/gt/intel_engine_user.o
CC fs/nfs/callback_proc.o
CC drivers/input/input-leds.o
CC mm/page_counter.o
AR net/sunrpc/built-in.a
CC drivers/usb/host/xhci-pci.o
CC drivers/acpi/acpica/tbxfroot.o
CC fs/splice.o
CC drivers/input/evdev.o
CC drivers/usb/core/port.o
CC drivers/gpu/drm/drm_managed.o
CC lib/check_signature.o
CC net/ipv6/proc.o
CC drivers/md/dm-table.o
AR drivers/net/ethernet/microchip/built-in.a
CC drivers/gpu/drm/drm_mm.o
CC mm/hugetlb_cgroup.o
AR drivers/net/ethernet/mscc/built-in.a
CC fs/nfs/nfs4namespace.o
CC drivers/cpuidle/governor.o
CC kernel/dma.o
CC drivers/gpu/drm/drm_mode_config.o
CC [M] drivers/gpu/drm/xe/xe_guc_hwconfig.o
CC mm/early_ioremap.o
CC drivers/cpufreq/cpufreq_performance.o
CC drivers/gpu/drm/i915/gt/intel_execlists_submission.o
CC arch/x86/kernel/trace_clock.o
CC lib/interval_tree.o
CC drivers/thermal/thermal_helpers.o
CC arch/x86/kernel/trace.o
CC drivers/thermal/thermal_thresholds.o
CC drivers/acpi/acpica/utaddress.o
CC fs/nfs/nfs4getroot.o
AR drivers/net/ethernet/myricom/built-in.a
CC drivers/acpi/sysfs.o
CC fs/nfs/nfs4client.o
CC net/ipv4/devinet.o
CC drivers/gpu/drm/i915/gt/intel_ggtt.o
CC drivers/thermal/thermal_netlink.o
CC [M] drivers/gpu/drm/xe/xe_guc_id_mgr.o
AR drivers/ufs/built-in.a
CC drivers/net/ethernet/intel/e1000e/netdev.o
CC lib/assoc_array.o
AR drivers/cpuidle/governors/built-in.a
CC drivers/md/dm-target.o
CC drivers/usb/core/hcd-pci.o
CC drivers/cpuidle/sysfs.o
AR drivers/net/ethernet/marvell/built-in.a
CC [M] drivers/gpu/drm/xe/xe_guc_klv_helpers.o
CC drivers/gpu/drm/drm_mode_object.o
CC drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o
CC [M] drivers/gpu/drm/xe/xe_guc_log.o
CC drivers/cpufreq/cpufreq_userspace.o
CC kernel/smp.o
AR drivers/firmware/arm_ffa/built-in.a
AR drivers/firmware/arm_scmi/built-in.a
AR drivers/firmware/broadcom/built-in.a
AR drivers/firmware/cirrus/test/built-in.a
AR drivers/firmware/cirrus/built-in.a
AR drivers/firmware/meson/built-in.a
CC drivers/acpi/acpica/utalloc.o
AR drivers/firmware/microchip/built-in.a
CC drivers/usb/core/usb-acpi.o
CC drivers/cpufreq/cpufreq_ondemand.o
CC drivers/acpi/acpica/utascii.o
CC kernel/uid16.o
CC lib/bitrev.o
CC arch/x86/kernel/rethook.o
CC drivers/firmware/efi/libstub/efi-stub-helper.o
CC drivers/acpi/property.o
AR drivers/crypto/stm32/built-in.a
CC net/ipv6/syncookies.o
AR drivers/crypto/inside-secure/eip93/built-in.a
AR drivers/crypto/inside-secure/built-in.a
AR drivers/crypto/xilinx/built-in.a
AR drivers/input/built-in.a
AR drivers/crypto/hisilicon/built-in.a
CC fs/sync.o
CC drivers/acpi/debugfs.o
CC drivers/gpu/drm/drm_modes.o
AR drivers/crypto/intel/keembay/built-in.a
CC drivers/acpi/acpica/utbuffer.o
AR drivers/crypto/intel/ixp4xx/built-in.a
AR drivers/crypto/intel/built-in.a
CC mm/secretmem.o
CC fs/utimes.o
AR drivers/crypto/starfive/built-in.a
AR drivers/crypto/built-in.a
CC net/mac80211/spectmgmt.o
CC drivers/cpuidle/poll_state.o
CC drivers/acpi/acpica/utcksum.o
CC drivers/gpu/drm/drm_modeset_lock.o
AR drivers/firmware/imx/built-in.a
CC drivers/acpi/acpi_lpat.o
CC lib/crc-ccitt.o
CC drivers/net/ethernet/intel/e1000e/ptp.o
CC drivers/cpufreq/cpufreq_governor.o
AR drivers/usb/host/built-in.a
CC fs/d_path.o
AR drivers/net/ethernet/natsemi/built-in.a
CC net/ipv4/af_inet.o
CC drivers/cpuidle/cpuidle-haltpoll.o
CC drivers/thermal/thermal_hwmon.o
CC drivers/gpu/drm/i915/gt/intel_gt.o
AR drivers/firmware/psci/built-in.a
CC net/ipv4/igmp.o
AR drivers/firmware/qcom/built-in.a
CC drivers/firmware/efi/efi-bgrt.o
CC [M] drivers/gpu/drm/xe/xe_guc_pc.o
CC lib/crc16.o
CC fs/stack.o
CC arch/x86/kernel/vmcore_info_32.o
CC drivers/gpu/drm/drm_plane.o
CC fs/nfs/nfs4session.o
CC net/ipv4/fib_frontend.o
CC kernel/kallsyms.o
AR drivers/usb/core/built-in.a
CC drivers/acpi/acpica/utcopy.o
CC fs/fs_struct.o
AR drivers/usb/built-in.a
CC drivers/firmware/efi/efi.o
AR drivers/firmware/samsung/built-in.a
CC drivers/thermal/gov_step_wise.o
AR drivers/firmware/smccc/built-in.a
HOSTCC lib/gen_crc32table
CC drivers/acpi/acpica/utexcep.o
CC drivers/acpi/acpi_pcc.o
AR drivers/firmware/tegra/built-in.a
CC drivers/gpu/drm/drm_prime.o
CC drivers/cpufreq/cpufreq_governor_attr_set.o
CC drivers/firmware/efi/libstub/gop.o
CC drivers/md/dm-linear.o
CC lib/xxhash.o
CC [M] drivers/gpu/drm/xe/xe_guc_submit.o
CC drivers/firmware/efi/vars.o
CC drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o
AR drivers/cpuidle/built-in.a
CC drivers/acpi/acpica/utdebug.o
CC arch/x86/kernel/machine_kexec_32.o
AR drivers/net/ethernet/neterion/built-in.a
CC drivers/md/dm-stripe.o
CC net/ipv6/calipso.o
AS arch/x86/kernel/relocate_kernel_32.o
CC net/mac80211/tx.o
AR drivers/net/ethernet/netronome/built-in.a
CC drivers/acpi/ac.o
AR drivers/net/ethernet/ni/built-in.a
CC drivers/net/ethernet/nvidia/forcedeth.o
CC drivers/firmware/efi/libstub/secureboot.o
CC drivers/firmware/efi/reboot.o
CC drivers/acpi/button.o
CC mm/hmm.o
CC drivers/md/dm-ioctl.o
CC net/ipv6/ah6.o
CC mm/memfd.o
CC fs/nfs/dns_resolve.o
CC fs/statfs.o
AR drivers/thermal/built-in.a
CC drivers/clocksource/acpi_pm.o
CC drivers/md/dm-io.o
CC fs/nfs/nfs4trace.o
CC drivers/acpi/acpica/utdecode.o
CC drivers/md/dm-kcopyd.o
CC drivers/md/dm-sysfs.o
CC drivers/cpufreq/acpi-cpufreq.o
CC drivers/clocksource/i8253.o
CC net/ipv4/fib_semantics.o
AR drivers/net/ethernet/oki-semi/built-in.a
CC mm/execmem.o
CC lib/genalloc.o
CC fs/fs_pin.o
AR drivers/firmware/xilinx/built-in.a
CC drivers/firmware/efi/memattr.o
CC drivers/firmware/dmi_scan.o
CC kernel/acct.o
CC net/ipv6/esp6.o
CC drivers/acpi/acpica/utdelete.o
CC net/ipv4/fib_trie.o
CC drivers/gpu/drm/drm_print.o
CC drivers/gpu/drm/drm_property.o
CC arch/x86/kernel/module.o
CC drivers/firmware/efi/libstub/tpm.o
CC drivers/firmware/dmi-id.o
CC drivers/md/dm-stats.o
CC [M] drivers/gpu/drm/xe/xe_heci_gsc.o
CC drivers/gpu/drm/i915/gt/intel_gt_ccs_mode.o
CC arch/x86/kernel/doublefault_32.o
CC drivers/cpufreq/amd-pstate.o
CC lib/percpu_counter.o
CC net/mac80211/key.o
CC drivers/acpi/fan_core.o
CC net/ipv6/sit.o
CC drivers/firmware/memmap.o
CC fs/nfs/nfs4sysctl.o
AR drivers/clocksource/built-in.a
CC arch/x86/kernel/early_printk.o
CC arch/x86/kernel/hpet.o
CC drivers/cpufreq/amd-pstate-trace.o
CC net/ipv4/fib_notifier.o
CC net/mac80211/util.o
CC drivers/md/dm-rq.o
CC drivers/acpi/acpica/uterror.o
CC net/ipv6/addrconf_core.o
CC drivers/acpi/fan_attr.o
CC drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o
AR mm/built-in.a
CC drivers/firmware/efi/libstub/file.o
CC drivers/gpu/drm/drm_rect.o
CC kernel/vmcore_info.o
CC drivers/cpufreq/intel_pstate.o
CC net/ipv6/exthdrs_core.o
CC fs/nsfs.o
CC lib/audit.o
CC drivers/gpu/drm/drm_syncobj.o
CC [M] drivers/gpu/drm/xe/xe_huc.o
CC net/mac80211/parse.o
CC kernel/elfcorehdr.o
CC drivers/acpi/acpica/uteval.o
CC drivers/hid/usbhid/hid-core.o
CC drivers/hid/usbhid/hiddev.o
CC net/ipv6/ip6_checksum.o
CC fs/fs_types.o
CC arch/x86/kernel/amd_nb.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine.o
CC kernel/kexec_core.o
AR drivers/platform/x86/amd/built-in.a
AR drivers/platform/surface/built-in.a
CC drivers/md/dm-io-rewind.o
AR drivers/platform/x86/intel/built-in.a
CC drivers/mailbox/mailbox.o
CC drivers/platform/x86/wmi.o
CC drivers/gpu/drm/i915/gt/intel_gt_debugfs.o
CC drivers/firmware/efi/tpm.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.o
CC fs/fs_context.o
CC drivers/firmware/efi/libstub/mem.o
CC net/ipv6/ip6_icmp.o
CC drivers/acpi/acpica/utglobal.o
AR drivers/perf/built-in.a
CC net/ipv4/inet_fragment.o
CC lib/syscall.o
CC drivers/hid/usbhid/hid-pidff.o
CC drivers/md/dm-builtin.o
CC drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o
CC drivers/gpu/drm/drm_sysfs.o
CC drivers/firmware/efi/memmap.o
CC kernel/kexec.o
CC kernel/utsname.o
CC drivers/gpu/drm/drm_trace_points.o
CC drivers/gpu/drm/i915/gt/intel_gt_irq.o
CC drivers/md/dm-raid1.o
CC drivers/gpu/drm/i915/gt/intel_gt_mcr.o
CC drivers/md/dm-log.o
CC drivers/platform/x86/wmi-bmof.o
CC drivers/mailbox/pcc.o
CC drivers/acpi/acpica/uthex.o
CC arch/x86/kernel/amd_node.o
CC net/ipv6/output_core.o
CC net/ipv6/protocol.o
CC lib/errname.o
CC drivers/firmware/efi/libstub/random.o
CC kernel/pid_namespace.o
CC drivers/gpu/drm/drm_vblank.o
CC lib/nlattr.o
CC fs/fs_parser.o
CC drivers/gpu/drm/drm_vblank_work.o
AR drivers/net/ethernet/packetengines/built-in.a
CC lib/cpu_rmap.o
CC net/ipv6/ip6_offload.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine_group.o
CC net/ipv4/ping.o
CC kernel/stop_machine.o
CC drivers/acpi/acpica/utids.o
CC arch/x86/kernel/kvm.o
CC kernel/audit.o
CC drivers/acpi/fan_hwmon.o
CC fs/fsopen.o
CC drivers/firmware/efi/libstub/randomalloc.o
CC drivers/platform/x86/eeepc-laptop.o
CC drivers/platform/x86/p2sb.o
AR drivers/hwtracing/intel_th/built-in.a
AR drivers/android/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_pm.o
CC net/mac80211/wme.o
CC fs/init.o
CC arch/x86/kernel/kvmclock.o
AR drivers/mailbox/built-in.a
CC drivers/acpi/acpica/utinit.o
CC drivers/acpi/acpi_video.o
AR drivers/nvmem/layouts/built-in.a
CC drivers/nvmem/core.o
AR drivers/net/ethernet/qlogic/built-in.a
CC drivers/firmware/efi/capsule.o
CC drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o
CC net/ipv6/tcpv6_offload.o
CC drivers/hid/hid-core.o
CC net/mac80211/chan.o
CC drivers/acpi/acpica/utlock.o
CC [M] drivers/gpu/drm/xe/xe_hw_fence.o
AR drivers/net/ethernet/nvidia/built-in.a
CC drivers/acpi/video_detect.o
CC drivers/firmware/efi/libstub/pci.o
CC drivers/firmware/efi/esrt.o
AR drivers/hid/usbhid/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o
AR drivers/net/ethernet/intel/e1000e/built-in.a
AR drivers/net/ethernet/intel/built-in.a
CC [M] drivers/fwctl/main.o
AR drivers/net/ethernet/qualcomm/emac/built-in.a
AR drivers/net/ethernet/qualcomm/built-in.a
CC drivers/net/ethernet/realtek/8139too.o
AR drivers/net/ethernet/renesas/built-in.a
AR drivers/cpufreq/built-in.a
CC arch/x86/kernel/paravirt.o
CC drivers/md/dm-region-hash.o
CC drivers/hid/hid-input.o
CC drivers/firmware/efi/libstub/skip_spaces.o
CC net/ipv4/ip_tunnel_core.o
CC kernel/auditfilter.o
CC drivers/gpu/drm/i915/gt/intel_gt_requests.o
CC net/ipv6/exthdrs_offload.o
CC lib/dynamic_queue_limits.o
AR fs/nfs/built-in.a
CC drivers/acpi/processor_driver.o
CC drivers/firmware/efi/libstub/lib-cmdline.o
AR drivers/net/ethernet/rdc/built-in.a
CC drivers/acpi/acpica/utmath.o
CC lib/glob.o
AR drivers/net/ethernet/rocker/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_sysfs.o
CC [M] drivers/gpu/drm/xe/xe_irq.o
CC net/mac80211/trace.o
CC arch/x86/kernel/pvclock.o
CC drivers/net/ethernet/realtek/r8169_main.o
CC drivers/acpi/acpica/utmisc.o
CC arch/x86/kernel/pcspeaker.o
CC drivers/firmware/efi/runtime-wrappers.o
CC drivers/gpu/drm/drm_vma_manager.o
CC fs/kernel_read_file.o
AR drivers/net/ethernet/samsung/built-in.a
AR net/wireless/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o
CC drivers/acpi/processor_thermal.o
CC drivers/net/ethernet/realtek/r8169_firmware.o
CC net/ipv6/inet6_hashtables.o
CC drivers/firmware/efi/libstub/lib-ctype.o
CC drivers/md/dm-zero.o
CC drivers/acpi/acpica/utmutex.o
CC drivers/firmware/efi/libstub/alignedmem.o
LD [M] drivers/fwctl/fwctl.o
CC drivers/firmware/efi/capsule-loader.o
AR drivers/net/ethernet/seeq/built-in.a
CC net/mac80211/mlme.o
AR drivers/platform/x86/built-in.a
AR drivers/platform/built-in.a
CC drivers/net/ethernet/realtek/r8169_phy_config.o
CC drivers/firmware/efi/libstub/relocate.o
CC drivers/acpi/processor_idle.o
CC drivers/gpu/drm/i915/gt/intel_gtt.o
CC fs/mnt_idmapping.o
CC drivers/acpi/acpica/utnonansi.o
AR drivers/net/ethernet/silan/built-in.a
CC drivers/firmware/efi/libstub/printk.o
CC drivers/acpi/acpica/utobject.o
CC drivers/firmware/efi/earlycon.o
CC drivers/gpu/drm/drm_writeback.o
CC drivers/acpi/processor_throttling.o
AR drivers/nvmem/built-in.a
CC net/ipv4/gre_offload.o
CC kernel/auditsc.o
CC arch/x86/kernel/check.o
CC fs/remap_range.o
CC [M] drivers/gpu/drm/xe/xe_lrc.o
CC drivers/acpi/acpica/utosi.o
CC lib/strncpy_from_user.o
CC drivers/gpu/drm/drm_panel.o
CC drivers/firmware/efi/libstub/vsprintf.o
CC net/ipv4/metrics.o
CC net/ipv6/mcast_snoop.o
CC drivers/gpu/drm/i915/gt/intel_llc.o
CC fs/pidfs.o
CC drivers/acpi/acpica/utownerid.o
CC fs/buffer.o
CC [M] drivers/gpu/drm/xe/xe_late_bind_fw.o
AR drivers/net/ethernet/sis/built-in.a
CC arch/x86/kernel/uprobes.o
CC drivers/gpu/drm/drm_pci.o
AR drivers/net/ethernet/sfc/built-in.a
CC drivers/hid/hid-quirks.o
CC net/mac80211/tdls.o
CC lib/strnlen_user.o
CC net/ipv4/netlink.o
CC drivers/hid/hid-debug.o
AR drivers/md/built-in.a
CC net/ipv4/nexthop.o
CC fs/mpage.o
CC net/mac80211/ocb.o
CC drivers/acpi/acpica/utpredef.o
AR drivers/net/ethernet/smsc/built-in.a
CC kernel/audit_watch.o
CC [M] drivers/gpu/drm/xe/xe_migrate.o
CC drivers/firmware/efi/libstub/x86-stub.o
CC lib/net_utils.o
CC arch/x86/kernel/perf_regs.o
CC drivers/gpu/drm/i915/gt/intel_lrc.o
CC arch/x86/kernel/tracepoint.o
CC drivers/acpi/acpica/utresdecode.o
CC drivers/gpu/drm/drm_debugfs.o
CC net/ipv4/udp_tunnel_stub.o
CC drivers/gpu/drm/drm_debugfs_crc.o
AR drivers/net/ethernet/socionext/built-in.a
CC drivers/acpi/processor_perflib.o
CC drivers/acpi/acpica/utresrc.o
CC drivers/hid/hidraw.o
CC arch/x86/kernel/itmt.o
CC drivers/gpu/drm/i915/gt/intel_migrate.o
CC drivers/acpi/acpica/utstate.o
AR drivers/firmware/efi/built-in.a
CC net/ipv4/ip_tunnel.o
CC drivers/firmware/efi/libstub/smbios.o
CC fs/proc_namespace.o
CC drivers/gpu/drm/i915/gt/intel_mocs.o
CC lib/sg_pool.o
CC drivers/gpu/drm/i915/gt/intel_ppgtt.o
CC net/mac80211/airtime.o
CC [M] drivers/gpu/drm/xe/xe_mmio.o
CC arch/x86/kernel/umip.o
CC arch/x86/kernel/unwind_frame.o
AR drivers/net/ethernet/stmicro/built-in.a
CC lib/stackdepot.o
CC kernel/audit_fsnotify.o
CC drivers/acpi/container.o
CC fs/direct-io.o
CC net/ipv4/sysctl_net_ipv4.o
CC drivers/hid/hid-generic.o
CC drivers/acpi/acpica/utstring.o
AR drivers/net/ethernet/sun/built-in.a
CC drivers/gpu/drm/drm_panel_orientation_quirks.o
AR net/ipv6/built-in.a
CC lib/asn1_decoder.o
AR drivers/net/ethernet/tehuti/built-in.a
AR drivers/net/ethernet/ti/built-in.a
AR drivers/net/ethernet/vertexcom/built-in.a
CC kernel/audit_tree.o
AR drivers/net/ethernet/via/built-in.a
CC kernel/kprobes.o
STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
CC kernel/seccomp.o
CC drivers/acpi/thermal_lib.o
STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
CC drivers/acpi/acpica/utstrsuppt.o
CC kernel/relay.o
CC drivers/acpi/thermal.o
CC [M] drivers/gpu/drm/xe/xe_mocs.o
CC drivers/hid/hid-a4tech.o
AR drivers/net/ethernet/wangxun/built-in.a
CC fs/eventpoll.o
CC drivers/gpu/drm/i915/gt/intel_rc6.o
CC kernel/utsname_sysctl.o
CC net/mac80211/eht.o
CC drivers/acpi/acpica/utstrtoul64.o
STUBCPY drivers/firmware/efi/libstub/file.stub.o
STUBCPY drivers/firmware/efi/libstub/gop.stub.o
CC drivers/gpu/drm/drm_buddy.o
STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o
CC fs/anon_inodes.o
STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.o
STUBCPY drivers/firmware/efi/libstub/mem.stub.o
STUBCPY drivers/firmware/efi/libstub/pci.stub.o
CC drivers/gpu/drm/drm_gem_shmem_helper.o
STUBCPY drivers/firmware/efi/libstub/printk.stub.o
STUBCPY drivers/firmware/efi/libstub/random.stub.o
STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o
STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
CC net/ipv4/proc.o
STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o
CC drivers/gpu/drm/drm_atomic_helper.o
CC kernel/delayacct.o
STUBCPY drivers/firmware/efi/libstub/smbios.stub.o
STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o
STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o
AR drivers/firmware/efi/libstub/lib.a
CC drivers/gpu/drm/i915/gt/intel_region_lmem.o
AR drivers/net/ethernet/wiznet/built-in.a
AR drivers/net/ethernet/xilinx/built-in.a
CC drivers/gpu/drm/i915/gt/intel_renderstate.o
CC drivers/gpu/drm/drm_atomic_state_helper.o
CC fs/signalfd.o
CC [M] drivers/gpu/drm/xe/xe_module.o
AR drivers/firmware/built-in.a
CC drivers/acpi/nhlt.o
CC drivers/acpi/acpica/utxface.o
GEN lib/oid_registry_data.c
AR arch/x86/kernel/built-in.a
CC drivers/hid/hid-apple.o
AR drivers/net/ethernet/xircom/built-in.a
CC drivers/hid/hid-belkin.o
AR arch/x86/built-in.a
CC net/mac80211/led.o
CC lib/ucs2_string.o
CC fs/timerfd.o
CC lib/sbitmap.o
CC drivers/hid/hid-cherry.o
CC [M] drivers/gpu/drm/xe/xe_oa.o
CC drivers/gpu/drm/drm_bridge_helper.o
CC net/mac80211/pm.o
CC fs/eventfd.o
CC net/ipv4/fib_rules.o
AR drivers/net/ethernet/synopsys/built-in.a
CC lib/group_cpus.o
CC drivers/acpi/acpica/utxfinit.o
CC kernel/taskstats.o
CC [M] drivers/gpu/drm/xe/xe_observation.o
CC drivers/hid/hid-chicony.o
CC fs/aio.o
AR drivers/net/ethernet/pensando/built-in.a
CC drivers/acpi/acpi_memhotplug.o
CC net/ipv4/ipmr.o
CC drivers/acpi/ioapic.o
CC net/mac80211/rc80211_minstrel_ht.o
CC fs/locks.o
CC drivers/gpu/drm/drm_crtc_helper.o
CC kernel/tsacct.o
AR drivers/net/ethernet/realtek/built-in.a
AR drivers/net/ethernet/built-in.a
CC drivers/gpu/drm/i915/gt/intel_reset.o
CC drivers/acpi/acpica/utxferror.o
CC drivers/hid/hid-cypress.o
CC drivers/acpi/acpica/utxfmutex.o
CC lib/fw_table.o
AR drivers/net/built-in.a
CC drivers/gpu/drm/i915/gt/intel_ring.o
CC net/ipv4/ipmr_base.o
CC drivers/acpi/battery.o
CC net/mac80211/wbrf.o
CC drivers/gpu/drm/drm_damage_helper.o
CC net/ipv4/syncookies.o
CC net/ipv4/tunnel4.o
CC kernel/tracepoint.o
CC drivers/gpu/drm/i915/gt/intel_ring_submission.o
AR lib/lib.a
CC [M] drivers/gpu/drm/xe/xe_pat.o
CC fs/binfmt_misc.o
CC fs/binfmt_script.o
CC net/ipv4/ipconfig.o
CC kernel/irq_work.o
CC drivers/gpu/drm/i915/gt/intel_rps.o
CC drivers/hid/hid-ezkey.o
CC kernel/static_call.o
CC drivers/acpi/bgrt.o
CC kernel/padata.o
CC drivers/hid/hid-gyration.o
CC net/ipv4/netfilter.o
AR drivers/acpi/acpica/built-in.a
GEN lib/crc32table.h
CC drivers/gpu/drm/drm_flip_work.o
CC [M] drivers/gpu/drm/xe/xe_pci.o
CC drivers/hid/hid-ite.o
CC drivers/hid/hid-kensington.o
CC drivers/gpu/drm/drm_format_helper.o
CC kernel/jump_label.o
CC drivers/gpu/drm/i915/gt/intel_sa_media.o
CC lib/oid_registry.o
CC kernel/context_tracking.o
CC fs/binfmt_elf.o
CC drivers/hid/hid-microsoft.o
CC drivers/hid/hid-monterey.o
CC drivers/gpu/drm/drm_gem_atomic_helper.o
CC drivers/gpu/drm/drm_gem_framebuffer_helper.o
CC drivers/acpi/spcr.o
CC [M] drivers/gpu/drm/xe/xe_pcode.o
CC net/ipv4/tcp_cubic.o
CC drivers/gpu/drm/i915/gt/intel_sseu.o
CC kernel/iomem.o
CC drivers/hid/hid-ntrig.o
CC net/ipv4/tcp_sigpool.o
CC lib/crc32.o
CC fs/mbcache.o
CC [M] drivers/gpu/drm/xe/xe_pcode_fwctl.o
CC drivers/gpu/drm/drm_kms_helper_common.o
CC drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o
CC kernel/rseq.o
CC fs/posix_acl.o
CC net/ipv4/cipso_ipv4.o
CC [M] drivers/gpu/drm/xe/xe_pm.o
CC drivers/gpu/drm/drm_modeset_helper.o
CC fs/coredump.o
CC drivers/gpu/drm/i915/gt/intel_timeline.o
CC [M] drivers/gpu/drm/xe/xe_preempt_fence.o
CC net/ipv4/xfrm4_policy.o
CC fs/drop_caches.o
AR lib/built-in.a
CC fs/sysctls.o
CC drivers/gpu/drm/i915/gt/intel_tlb.o
CC net/ipv4/xfrm4_state.o
CC drivers/hid/hid-pl.o
CC drivers/gpu/drm/drm_plane_helper.o
CC fs/fhandle.o
CC net/ipv4/xfrm4_input.o
CC drivers/gpu/drm/i915/gt/intel_wopcm.o
CC drivers/hid/hid-petalynx.o
AR drivers/acpi/built-in.a
CC [M] drivers/gpu/drm/xe/xe_pt.o
CC drivers/gpu/drm/drm_probe_helper.o
CC [M] drivers/gpu/drm/xe/xe_pt_walk.o
CC drivers/gpu/drm/drm_self_refresh_helper.o
CC drivers/hid/hid-redragon.o
CC [M] drivers/gpu/drm/xe/xe_pxp.o
CC drivers/gpu/drm/i915/gt/intel_workarounds.o
CC net/ipv4/xfrm4_output.o
CC drivers/hid/hid-samsung.o
CC drivers/gpu/drm/drm_simple_kms_helper.o
CC drivers/gpu/drm/i915/gt/shmem_utils.o
CC drivers/gpu/drm/bridge/panel.o
CC net/ipv4/xfrm4_protocol.o
CC drivers/hid/hid-sony.o
CC [M] drivers/gpu/drm/xe/xe_pxp_debugfs.o
CC drivers/gpu/drm/drm_mipi_dsi.o
CC drivers/hid/hid-sunplus.o
CC [M] drivers/gpu/drm/drm_exec.o
CC drivers/gpu/drm/i915/gt/sysfs_engines.o
CC drivers/hid/hid-topseed.o
CC [M] drivers/gpu/drm/drm_gpuvm.o
CC drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o
AR kernel/built-in.a
CC [M] drivers/gpu/drm/xe/xe_pxp_submit.o
CC drivers/gpu/drm/i915/gt/gen6_renderstate.o
CC [M] drivers/gpu/drm/xe/xe_query.o
CC [M] drivers/gpu/drm/drm_suballoc.o
CC drivers/gpu/drm/i915/gt/gen7_renderstate.o
CC [M] drivers/gpu/drm/drm_gem_ttm_helper.o
CC [M] drivers/gpu/drm/xe/xe_range_fence.o
CC drivers/gpu/drm/i915/gt/gen8_renderstate.o
CC [M] drivers/gpu/drm/xe/xe_reg_sr.o
CC [M] drivers/gpu/drm/xe/xe_reg_whitelist.o
CC drivers/gpu/drm/i915/gt/gen9_renderstate.o
CC [M] drivers/gpu/drm/xe/xe_ring_ops.o
CC [M] drivers/gpu/drm/xe/xe_rtp.o
CC drivers/gpu/drm/i915/gem/i915_gem_busy.o
CC [M] drivers/gpu/drm/xe/xe_sa.o
CC [M] drivers/gpu/drm/xe/xe_sched_job.o
CC drivers/gpu/drm/i915/gem/i915_gem_clflush.o
CC [M] drivers/gpu/drm/xe/xe_shrinker.o
CC drivers/gpu/drm/i915/gem/i915_gem_context.o
CC drivers/gpu/drm/i915/gem/i915_gem_create.o
CC drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o
CC [M] drivers/gpu/drm/xe/xe_step.o
CC drivers/gpu/drm/i915/gem/i915_gem_domain.o
CC [M] drivers/gpu/drm/xe/xe_survivability_mode.o
CC drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o
CC [M] drivers/gpu/drm/xe/xe_sync.o
CC drivers/gpu/drm/i915/gem/i915_gem_internal.o
CC [M] drivers/gpu/drm/xe/xe_tile.o
CC [M] drivers/gpu/drm/xe/xe_tile_sysfs.o
CC [M] drivers/gpu/drm/xe/xe_trace.o
CC drivers/gpu/drm/i915/gem/i915_gem_lmem.o
CC [M] drivers/gpu/drm/xe/xe_trace_bo.o
CC drivers/gpu/drm/i915/gem/i915_gem_mman.o
CC [M] drivers/gpu/drm/xe/xe_trace_guc.o
CC drivers/gpu/drm/i915/gem/i915_gem_object.o
CC [M] drivers/gpu/drm/xe/xe_trace_lrc.o
CC drivers/gpu/drm/i915/gem/i915_gem_pages.o
CC [M] drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
CC drivers/gpu/drm/i915/gem/i915_gem_phys.o
CC [M] drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
CC drivers/gpu/drm/i915/gem/i915_gem_pm.o
CC [M] drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
AR fs/built-in.a
LD [M] drivers/gpu/drm/drm_suballoc_helper.o
CC drivers/gpu/drm/i915/gem/i915_gem_region.o
CC [M] drivers/gpu/drm/xe/xe_tuning.o
LD [M] drivers/gpu/drm/drm_ttm_helper.o
CC drivers/gpu/drm/i915/gem/i915_gem_shmem.o
CC drivers/gpu/drm/i915/gem/i915_gem_shrinker.o
AR net/ipv4/built-in.a
AR drivers/hid/built-in.a
CC [M] drivers/gpu/drm/xe/xe_uc.o
CC drivers/gpu/drm/i915/gem/i915_gem_stolen.o
CC [M] drivers/gpu/drm/xe/xe_uc_fw.o
CC [M] drivers/gpu/drm/xe/xe_vm.o
CC [M] drivers/gpu/drm/xe/xe_vram.o
CC drivers/gpu/drm/i915/gem/i915_gem_throttle.o
CC [M] drivers/gpu/drm/xe/xe_vram_freq.o
CC drivers/gpu/drm/i915/gem/i915_gem_tiling.o
CC [M] drivers/gpu/drm/xe/xe_vsec.o
CC [M] drivers/gpu/drm/xe/xe_wa.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm.o
CC [M] drivers/gpu/drm/xe/xe_wait_user_fence.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o
CC [M] drivers/gpu/drm/xe/xe_wopcm.o
CC [M] drivers/gpu/drm/xe/xe_hmm.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o
CC [M] drivers/gpu/drm/xe/xe_hwmon.o
CC [M] drivers/gpu/drm/xe/xe_pmu.o
CC drivers/gpu/drm/i915/gem/i915_gem_userptr.o
CC drivers/gpu/drm/i915/gem/i915_gem_wait.o
CC drivers/gpu/drm/i915/gem/i915_gemfs.o
CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf.o
CC drivers/gpu/drm/i915/i915_active.o
CC drivers/gpu/drm/i915/i915_cmd_parser.o
CC [M] drivers/gpu/drm/xe/xe_guc_relay.o
CC [M] drivers/gpu/drm/xe/xe_memirq.o
CC [M] drivers/gpu/drm/xe/xe_sriov.o
CC drivers/gpu/drm/i915/i915_deps.o
CC [M] drivers/gpu/drm/xe/xe_sriov_vf.o
CC [M] drivers/gpu/drm/xe/display/ext/i915_irq.o
CC drivers/gpu/drm/i915/i915_gem.o
CC [M] drivers/gpu/drm/xe/display/ext/i915_utils.o
CC drivers/gpu/drm/i915/i915_gem_evict.o
CC [M] drivers/gpu/drm/xe/display/intel_bo.o
CC drivers/gpu/drm/i915/i915_gem_gtt.o
CC drivers/gpu/drm/i915/i915_gem_ww.o
CC [M] drivers/gpu/drm/xe/display/intel_fb_bo.o
CC drivers/gpu/drm/i915/i915_query.o
CC [M] drivers/gpu/drm/xe/display/intel_fbdev_fb.o
CC drivers/gpu/drm/i915/i915_request.o
CC [M] drivers/gpu/drm/xe/display/xe_display.o
CC drivers/gpu/drm/i915/i915_scheduler.o
CC drivers/gpu/drm/i915/i915_trace_points.o
CC [M] drivers/gpu/drm/xe/display/xe_display_misc.o
CC [M] drivers/gpu/drm/xe/display/xe_display_rpm.o
CC drivers/gpu/drm/i915/i915_ttm_buddy_manager.o
CC drivers/gpu/drm/i915/i915_vma.o
CC drivers/gpu/drm/i915/i915_vma_resource.o
CC [M] drivers/gpu/drm/xe/display/xe_display_rps.o
CC [M] drivers/gpu/drm/xe/display/xe_display_wa.o
CC [M] drivers/gpu/drm/xe/display/xe_dsb_buffer.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.o
CC [M] drivers/gpu/drm/xe/display/xe_fb_pin.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.o
CC [M] drivers/gpu/drm/xe/display/xe_hdcp_gsc.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc.o
CC [M] drivers/gpu/drm/xe/display/xe_plane_initial.o
CC [M] drivers/gpu/drm/xe/display/xe_tdf.o
CC [M] drivers/gpu/drm/xe/i915-soc/intel_dram.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o
CC [M] drivers/gpu/drm/xe/i915-soc/intel_rom.o
CC [M] drivers/gpu/drm/xe/i915-display/icl_dsi.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_alpm.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic_plane.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_audio.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_backlight.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_log.o
AR net/mac80211/built-in.a
CC [M] drivers/gpu/drm/xe/i915-display/intel_bios.o
AR net/built-in.a
CC drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_bw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cdclk.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cmtg.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_color.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_combo_phy.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_connector.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_rc.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc_state_dump.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_submission.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cursor.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cx0_phy.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc_fw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi_buf_trans.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc_fw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display.o
CC drivers/gpu/drm/i915/gt/intel_gsc.o
CC drivers/gpu/drm/i915/i915_hwmon.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_conversion.o
CC drivers/gpu/drm/i915/display/hsw_ips.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_device.o
CC drivers/gpu/drm/i915/display/i9xx_plane.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_driver.o
CC drivers/gpu/drm/i915/display/i9xx_display_sr.o
CC drivers/gpu/drm/i915/display/i9xx_wm.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_irq.o
CC drivers/gpu/drm/i915/display/intel_alpm.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_params.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power.o
CC drivers/gpu/drm/i915/display/intel_atomic.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_map.o
CC drivers/gpu/drm/i915/display/intel_atomic_plane.o
CC drivers/gpu/drm/i915/display/intel_audio.o
CC drivers/gpu/drm/i915/display/intel_bios.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_well.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_trace.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_wa.o
CC drivers/gpu/drm/i915/display/intel_bo.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o
CC drivers/gpu/drm/i915/display/intel_bw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc_wl.o
CC drivers/gpu/drm/i915/display/intel_cdclk.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp.o
CC drivers/gpu/drm/i915/display/intel_cmtg.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux.o
CC drivers/gpu/drm/i915/display/intel_color.o
CC drivers/gpu/drm/i915/display/intel_combo_phy.o
CC drivers/gpu/drm/i915/display/intel_connector.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux_backlight.o
CC drivers/gpu/drm/i915/display/intel_crtc.o
CC drivers/gpu/drm/i915/display/intel_crtc_state_dump.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_hdcp.o
CC drivers/gpu/drm/i915/display/intel_cursor.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_link_training.o
CC drivers/gpu/drm/i915/display/intel_display.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_mst.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_test.o
CC drivers/gpu/drm/i915/display/intel_display_conversion.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpll.o
CC drivers/gpu/drm/i915/display/intel_display_driver.o
CC drivers/gpu/drm/i915/display/intel_display_irq.o
CC drivers/gpu/drm/i915/display/intel_display_params.o
CC drivers/gpu/drm/i915/display/intel_display_power.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpll_mgr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpt_common.o
CC drivers/gpu/drm/i915/display/intel_display_power_map.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_drrs.o
CC drivers/gpu/drm/i915/display/intel_display_power_well.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsb.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi.o
CC drivers/gpu/drm/i915/display/intel_display_reset.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_dcs_backlight.o
CC drivers/gpu/drm/i915/display/intel_display_rpm.o
CC drivers/gpu/drm/i915/display/intel_display_rps.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.o
CC drivers/gpu/drm/i915/display/intel_display_snapshot.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_encoder.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fb.o
CC drivers/gpu/drm/i915/display/intel_display_wa.o
CC drivers/gpu/drm/i915/display/intel_dmc.o
CC drivers/gpu/drm/i915/display/intel_dmc_wl.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fbc.o
CC drivers/gpu/drm/i915/display/intel_dpio_phy.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fdi.o
CC drivers/gpu/drm/i915/display/intel_dpll.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fifo_underrun.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_frontbuffer.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_global_state.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_gmbus.o
CC drivers/gpu/drm/i915/display/intel_dpll_mgr.o
CC drivers/gpu/drm/i915/display/intel_dpt.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp.o
CC drivers/gpu/drm/i915/display/intel_dpt_common.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp_gsc_message.o
CC drivers/gpu/drm/i915/display/intel_drrs.o
CC drivers/gpu/drm/i915/display/intel_dsb.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdmi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug_irq.o
CC drivers/gpu/drm/i915/display/intel_dsb_buffer.o
CC drivers/gpu/drm/i915/display/intel_fb.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hti.o
CC drivers/gpu/drm/i915/display/intel_fb_bo.o
CC drivers/gpu/drm/i915/display/intel_fb_pin.o
CC drivers/gpu/drm/i915/display/intel_fbc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_link_bw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_lspcon.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_lock.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_setup.o
CC drivers/gpu/drm/i915/display/intel_fdi.o
CC drivers/gpu/drm/i915/display/intel_fifo_underrun.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_verify.o
CC drivers/gpu/drm/i915/display/intel_frontbuffer.o
CC drivers/gpu/drm/i915/display/intel_global_state.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_panel.o
CC drivers/gpu/drm/i915/display/intel_hdcp.o
CC drivers/gpu/drm/i915/display/intel_hdcp_gsc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pfit.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pmdemand.o
CC drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.o
CC drivers/gpu/drm/i915/display/intel_hotplug.o
CC drivers/gpu/drm/i915/display/intel_hotplug_irq.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pch.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pps.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_psr.o
CC drivers/gpu/drm/i915/display/intel_hti.o
CC drivers/gpu/drm/i915/display/intel_link_bw.o
CC drivers/gpu/drm/i915/display/intel_load_detect.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_qp_tables.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_quirks.o
CC drivers/gpu/drm/i915/display/intel_lpe_audio.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_snps_hdmi_pll.o
CC drivers/gpu/drm/i915/display/intel_modeset_lock.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_snps_phy.o
CC drivers/gpu/drm/i915/display/intel_modeset_setup.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_tc.o
CC drivers/gpu/drm/i915/display/intel_modeset_verify.o
CC drivers/gpu/drm/i915/display/intel_overlay.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vblank.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vdsc.o
CC drivers/gpu/drm/i915/display/intel_pch.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vga.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vrr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_wm.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_scaler.o
CC drivers/gpu/drm/i915/display/intel_pch_display.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_universal_plane.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_watermark.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_acpi.o
CC drivers/gpu/drm/i915/display/intel_pch_refclk.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_opregion.o
CC drivers/gpu/drm/i915/display/intel_plane_initial.o
CC [M] drivers/gpu/drm/xe/xe_debugfs.o
CC drivers/gpu/drm/i915/display/intel_pmdemand.o
CC [M] drivers/gpu/drm/xe/xe_gt_debugfs.o
CC drivers/gpu/drm/i915/display/intel_psr.o
CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.o
CC drivers/gpu/drm/i915/display/intel_quirks.o
CC drivers/gpu/drm/i915/display/intel_sprite.o
CC [M] drivers/gpu/drm/xe/xe_gt_stats.o
CC drivers/gpu/drm/i915/display/intel_sprite_uapi.o
CC drivers/gpu/drm/i915/display/intel_tc.o
CC [M] drivers/gpu/drm/xe/xe_guc_debugfs.o
CC drivers/gpu/drm/i915/display/intel_vblank.o
CC [M] drivers/gpu/drm/xe/xe_huc_debugfs.o
CC drivers/gpu/drm/i915/display/intel_vga.o
CC drivers/gpu/drm/i915/display/intel_wm.o
CC [M] drivers/gpu/drm/xe/xe_uc_debugfs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs.o
CC drivers/gpu/drm/i915/display/skl_scaler.o
CC drivers/gpu/drm/i915/display/skl_universal_plane.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs_params.o
CC drivers/gpu/drm/i915/display/skl_watermark.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pipe_crc.o
CC drivers/gpu/drm/i915/display/intel_acpi.o
CC drivers/gpu/drm/i915/display/intel_opregion.o
CC drivers/gpu/drm/i915/display/intel_display_debugfs.o
CC drivers/gpu/drm/i915/display/intel_display_debugfs_params.o
CC drivers/gpu/drm/i915/display/intel_pipe_crc.o
CC drivers/gpu/drm/i915/display/dvo_ch7017.o
CC drivers/gpu/drm/i915/display/dvo_ch7xxx.o
CC drivers/gpu/drm/i915/display/dvo_ivch.o
CC drivers/gpu/drm/i915/display/dvo_ns2501.o
CC drivers/gpu/drm/i915/display/dvo_sil164.o
CC drivers/gpu/drm/i915/display/dvo_tfp410.o
CC drivers/gpu/drm/i915/display/g4x_dp.o
CC drivers/gpu/drm/i915/display/g4x_hdmi.o
CC drivers/gpu/drm/i915/display/icl_dsi.o
CC drivers/gpu/drm/i915/display/intel_backlight.o
CC drivers/gpu/drm/i915/display/intel_crt.o
CC drivers/gpu/drm/i915/display/intel_cx0_phy.o
CC drivers/gpu/drm/i915/display/intel_ddi.o
CC drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o
CC drivers/gpu/drm/i915/display/intel_display_device.o
CC drivers/gpu/drm/i915/display/intel_display_trace.o
CC drivers/gpu/drm/i915/display/intel_dkl_phy.o
CC drivers/gpu/drm/i915/display/intel_dp.o
CC drivers/gpu/drm/i915/display/intel_dp_aux.o
CC drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o
CC drivers/gpu/drm/i915/display/intel_dp_hdcp.o
CC drivers/gpu/drm/i915/display/intel_dp_link_training.o
CC drivers/gpu/drm/i915/display/intel_dp_mst.o
CC drivers/gpu/drm/i915/display/intel_dp_test.o
CC drivers/gpu/drm/i915/display/intel_dsi.o
CC drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.o
CC drivers/gpu/drm/i915/display/intel_dsi_vbt.o
CC drivers/gpu/drm/i915/display/intel_dvo.o
CC drivers/gpu/drm/i915/display/intel_encoder.o
CC drivers/gpu/drm/i915/display/intel_gmbus.o
CC drivers/gpu/drm/i915/display/intel_hdmi.o
CC drivers/gpu/drm/i915/display/intel_lspcon.o
CC drivers/gpu/drm/i915/display/intel_lvds.o
CC drivers/gpu/drm/i915/display/intel_panel.o
CC drivers/gpu/drm/i915/display/intel_pfit.o
CC drivers/gpu/drm/i915/display/intel_pps.o
CC drivers/gpu/drm/i915/display/intel_qp_tables.o
CC drivers/gpu/drm/i915/display/intel_sdvo.o
CC drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.o
CC drivers/gpu/drm/i915/display/intel_snps_phy.o
CC drivers/gpu/drm/i915/display/intel_tv.o
CC drivers/gpu/drm/i915/display/intel_vdsc.o
CC drivers/gpu/drm/i915/display/intel_vrr.o
CC drivers/gpu/drm/i915/display/vlv_dsi.o
CC drivers/gpu/drm/i915/display/vlv_dsi_pll.o
CC drivers/gpu/drm/i915/i915_perf.o
CC drivers/gpu/drm/i915/pxp/intel_pxp.o
CC drivers/gpu/drm/i915/pxp/intel_pxp_huc.o
CC drivers/gpu/drm/i915/pxp/intel_pxp_tee.o
CC drivers/gpu/drm/i915/i915_gpu_error.o
CC drivers/gpu/drm/i915/i915_vgpu.o
LD [M] drivers/gpu/drm/xe/xe.o
AR drivers/gpu/drm/i915/built-in.a
AR drivers/gpu/drm/built-in.a
AR drivers/gpu/built-in.a
AR drivers/built-in.a
AR built-in.a
AR vmlinux.a
LD vmlinux.o
OBJCOPY modules.builtin.modinfo
GEN modules.builtin
MODPOST Module.symvers
CC .vmlinux.export.o
CC [M] fs/efivarfs/efivarfs.mod.o
CC [M] .module-common.o
CC [M] drivers/gpu/drm/drm_exec.mod.o
CC [M] drivers/gpu/drm/drm_gpuvm.mod.o
CC [M] drivers/gpu/drm/drm_suballoc_helper.mod.o
CC [M] drivers/gpu/drm/drm_ttm_helper.mod.o
CC [M] drivers/gpu/drm/scheduler/gpu-sched.mod.o
CC [M] drivers/gpu/drm/xe/xe.mod.o
CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.mod.o
CC [M] drivers/fwctl/fwctl.mod.o
CC [M] net/netfilter/nf_log_syslog.mod.o
CC [M] net/netfilter/xt_mark.mod.o
CC [M] net/netfilter/xt_nat.mod.o
CC [M] net/netfilter/xt_LOG.mod.o
CC [M] net/netfilter/xt_MASQUERADE.mod.o
CC [M] net/netfilter/xt_addrtype.mod.o
CC [M] net/ipv4/netfilter/iptable_nat.mod.o
LD [M] drivers/gpu/drm/drm_ttm_helper.ko
LD [M] fs/efivarfs/efivarfs.ko
LD [M] drivers/gpu/drm/drm_exec.ko
LD [M] drivers/gpu/drm/scheduler/gpu-sched.ko
LD [M] net/netfilter/xt_mark.ko
LD [M] drivers/thermal/intel/x86_pkg_temp_thermal.ko
LD [M] net/netfilter/nf_log_syslog.ko
LD [M] net/netfilter/xt_nat.ko
LD [M] drivers/fwctl/fwctl.ko
LD [M] net/netfilter/xt_MASQUERADE.ko
LD [M] drivers/gpu/drm/xe/xe.ko
LD [M] net/ipv4/netfilter/iptable_nat.ko
LD [M] net/netfilter/xt_addrtype.ko
LD [M] drivers/gpu/drm/drm_gpuvm.ko
LD [M] drivers/gpu/drm/drm_suballoc_helper.ko
LD [M] net/netfilter/xt_LOG.ko
UPD include/generated/utsversion.h
CC init/version-timestamp.o
KSYMS .tmp_vmlinux0.kallsyms.S
AS .tmp_vmlinux0.kallsyms.o
LD .tmp_vmlinux1
NM .tmp_vmlinux1.syms
KSYMS .tmp_vmlinux1.kallsyms.S
AS .tmp_vmlinux1.kallsyms.o
LD .tmp_vmlinux2
NM .tmp_vmlinux2.syms
KSYMS .tmp_vmlinux2.kallsyms.S
AS .tmp_vmlinux2.kallsyms.o
LD vmlinux.unstripped
NM System.map
SORTTAB vmlinux.unstripped
RSTRIP vmlinux
CC arch/x86/boot/a20.o
AS arch/x86/boot/bioscall.o
CC arch/x86/boot/cmdline.o
AS arch/x86/boot/copy.o
HOSTCC arch/x86/boot/mkcpustr
CC arch/x86/boot/cpuflags.o
CC arch/x86/boot/cpucheck.o
CC arch/x86/boot/early_serial_console.o
CC arch/x86/boot/edd.o
CC arch/x86/boot/main.o
CC arch/x86/boot/memory.o
CC arch/x86/boot/pm.o
AS arch/x86/boot/pmjump.o
CC arch/x86/boot/printf.o
CC arch/x86/boot/regs.o
CC arch/x86/boot/string.o
CC arch/x86/boot/tty.o
CC arch/x86/boot/video.o
CC arch/x86/boot/video-mode.o
CC arch/x86/boot/version.o
CC arch/x86/boot/video-vga.o
CC arch/x86/boot/video-vesa.o
CC arch/x86/boot/video-bios.o
LDS arch/x86/boot/compressed/vmlinux.lds
AS arch/x86/boot/compressed/kernel_info.o
AS arch/x86/boot/compressed/head_32.o
VOFFSET arch/x86/boot/compressed/../voffset.h
CC arch/x86/boot/compressed/string.o
CC arch/x86/boot/compressed/cmdline.o
CC arch/x86/boot/compressed/error.o
OBJCOPY arch/x86/boot/compressed/vmlinux.bin
RELOCS arch/x86/boot/compressed/vmlinux.relocs
HOSTCC arch/x86/boot/compressed/mkpiggy
CC arch/x86/boot/compressed/cpuflags.o
CC arch/x86/boot/compressed/early_serial_console.o
CC arch/x86/boot/compressed/kaslr.o
CC arch/x86/boot/compressed/acpi.o
CC arch/x86/boot/compressed/efi.o
CPUSTR arch/x86/boot/cpustr.h
CC arch/x86/boot/cpu.o
GZIP arch/x86/boot/compressed/vmlinux.bin.gz
CC arch/x86/boot/compressed/misc.o
MKPIGGY arch/x86/boot/compressed/piggy.S
AS arch/x86/boot/compressed/piggy.o
LD arch/x86/boot/compressed/vmlinux
OBJCOPY arch/x86/boot/vmlinux.bin
ZOFFSET arch/x86/boot/zoffset.h
AS arch/x86/boot/header.o
LD arch/x86/boot/setup.elf
OBJCOPY arch/x86/boot/setup.bin
BUILD arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready (#1)
run-parts: executing /workspace/ci/hooks/20-kernel-doc
+ SRC_DIR=/workspace/kernel
+ cd /workspace/kernel
+ find drivers/gpu/drm/xe/ -name '*.[ch]' -not -path 'drivers/gpu/drm/xe/display/*'
+ xargs ./scripts/kernel-doc -Werror -none include/uapi/drm/xe_drm.h
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:24: warning: cannot understand function prototype: 'enum xe_late_bind_type '
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:30: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Late Binding flags
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:40: warning: cannot understand function prototype: 'enum xe_late_bind_fw_id '
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:73: warning: Function parameter or struct member 'valid' not described in 'xe_late_bind_fw'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:73: warning: Function parameter or struct member 'id' not described in 'xe_late_bind_fw'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:73: warning: Function parameter or struct member 'blob_path' not described in 'xe_late_bind_fw'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:73: warning: Function parameter or struct member 'type' not described in 'xe_late_bind_fw'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:73: warning: Function parameter or struct member 'flags' not described in 'xe_late_bind_fw'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:73: warning: Function parameter or struct member 'payload' not described in 'xe_late_bind_fw'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:73: warning: Function parameter or struct member 'payload_size' not described in 'xe_late_bind_fw'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:73: warning: Function parameter or struct member 'work' not described in 'xe_late_bind_fw'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:96: warning: Function parameter or struct member 'component' not described in 'xe_late_bind'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:96: warning: Function parameter or struct member 'component_added' not described in 'xe_late_bind'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:96: warning: Function parameter or struct member 'wq' not described in 'xe_late_bind'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:96: warning: Function parameter or struct member 'mutex' not described in 'xe_late_bind'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:96: warning: Function parameter or struct member 'late_bind_fw' not described in 'xe_late_bind'
drivers/gpu/drm/xe/xe_late_bind_fw_types.h:96: warning: Function parameter or struct member 'disable' not described in 'xe_late_bind'
drivers/gpu/drm/xe/xe_late_bind_fw.c:135: warning: Function parameter or struct member 'late_bind' not described in 'late_bind_fw_init'
drivers/gpu/drm/xe/xe_late_bind_fw.c:135: warning: Function parameter or struct member 'id' not described in 'late_bind_fw_init'
drivers/gpu/drm/xe/xe_late_bind_fw.c:194: warning: Function parameter or struct member 'late_bind' not described in 'xe_late_bind_fw_init'
drivers/gpu/drm/xe/xe_late_bind_fw.c:194: warning: expecting prototype for xe_mei_late_bind_fw_init(). Prototype was for xe_late_bind_fw_init() instead
drivers/gpu/drm/xe/xe_late_bind_fw.c:252: warning: Function parameter or struct member 'late_bind' not described in 'xe_late_bind_init'
drivers/gpu/drm/xe/xe_late_bind_fw.c:282: warning: Function parameter or struct member 'late_bind' not described in 'xe_late_bind_remove'
23 warnings as Errors
run-parts: /workspace/ci/hooks/20-kernel-doc exited with return code 123
^ permalink raw reply [flat|nested] 39+ messages in thread
* ✗ CI.checksparse: warning for Introducing firmware late binding (rev2)
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (13 preceding siblings ...)
2025-04-29 16:26 ` ✗ CI.Hooks: failure " Patchwork
@ 2025-04-29 16:27 ` Patchwork
2025-04-29 19:02 ` ✗ Xe.CI.Full: failure " Patchwork
` (2 subsequent siblings)
17 siblings, 0 replies; 39+ messages in thread
From: Patchwork @ 2025-04-29 16:27 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
== Series Details ==
Series: Introducing firmware late binding (rev2)
URL : https://patchwork.freedesktop.org/series/148394/
State : warning
== Summary ==
+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast 7b083a8df1481fc36035bfa71ef184dcedd88023
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/i915/display/intel_display_types.h:1985:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1998:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_hdcp.c: note: in included file:
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 39+ messages in thread
* ✗ Xe.CI.Full: failure for Introducing firmware late binding (rev2)
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (14 preceding siblings ...)
2025-04-29 16:27 ` ✗ CI.checksparse: warning " Patchwork
@ 2025-04-29 19:02 ` Patchwork
2025-04-30 11:47 ` [RFC 0/9] Introducing firmware late binding Jani Nikula
2025-05-06 7:53 ` ✗ Xe.CI.BAT: failure for Introducing firmware late binding (rev2) Patchwork
17 siblings, 0 replies; 39+ messages in thread
From: Patchwork @ 2025-04-29 19:02 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 30058 bytes --]
== Series Details ==
Series: Introducing firmware late binding (rev2)
URL : https://patchwork.freedesktop.org/series/148394/
State : failure
== Summary ==
CI Bug Log - changes from xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023_FULL -> xe-pw-148394v2_FULL
====================================================
Summary
-------
**WARNING**
Minor unknown changes coming with xe-pw-148394v2_FULL need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-148394v2_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-148394v2_FULL:
### IGT changes ###
#### Warnings ####
* igt@xe_module_load@load:
- shard-lnl: ([PASS][1], [PASS][2], [PASS][3], [PASS][4], [PASS][5], [PASS][6], [SKIP][7], [PASS][8], [PASS][9], [PASS][10], [PASS][11], [PASS][12], [PASS][13], [PASS][14], [PASS][15], [PASS][16], [PASS][17], [PASS][18], [PASS][19], [PASS][20], [PASS][21], [PASS][22], [PASS][23], [PASS][24], [PASS][25], [PASS][26]) ([Intel XE#378]) -> ([FAIL][27], [FAIL][28], [FAIL][29], [FAIL][30], [FAIL][31], [FAIL][32], [FAIL][33], [DMESG-FAIL][34], [FAIL][35], [FAIL][36], [FAIL][37], [FAIL][38], [FAIL][39], [FAIL][40], [FAIL][41], [FAIL][42], [DMESG-FAIL][43], [FAIL][44], [FAIL][45], [FAIL][46], [FAIL][47], [FAIL][48], [FAIL][49], [FAIL][50], [FAIL][51])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-1/igt@xe_module_load@load.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-1/igt@xe_module_load@load.html
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-1/igt@xe_module_load@load.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-2/igt@xe_module_load@load.html
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-8/igt@xe_module_load@load.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-4/igt@xe_module_load@load.html
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-8/igt@xe_module_load@load.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-4/igt@xe_module_load@load.html
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-7/igt@xe_module_load@load.html
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-3/igt@xe_module_load@load.html
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-3/igt@xe_module_load@load.html
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-3/igt@xe_module_load@load.html
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-2/igt@xe_module_load@load.html
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-2/igt@xe_module_load@load.html
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-4/igt@xe_module_load@load.html
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-8/igt@xe_module_load@load.html
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-6/igt@xe_module_load@load.html
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-6/igt@xe_module_load@load.html
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-6/igt@xe_module_load@load.html
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-5/igt@xe_module_load@load.html
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-5/igt@xe_module_load@load.html
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-5/igt@xe_module_load@load.html
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-8/igt@xe_module_load@load.html
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-8/igt@xe_module_load@load.html
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-7/igt@xe_module_load@load.html
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-lnl-7/igt@xe_module_load@load.html
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-1/igt@xe_module_load@load.html
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-1/igt@xe_module_load@load.html
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-1/igt@xe_module_load@load.html
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-8/igt@xe_module_load@load.html
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-8/igt@xe_module_load@load.html
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-8/igt@xe_module_load@load.html
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-4/igt@xe_module_load@load.html
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-4/igt@xe_module_load@load.html
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-4/igt@xe_module_load@load.html
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-6/igt@xe_module_load@load.html
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-6/igt@xe_module_load@load.html
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-6/igt@xe_module_load@load.html
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-3/igt@xe_module_load@load.html
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-3/igt@xe_module_load@load.html
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-3/igt@xe_module_load@load.html
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-3/igt@xe_module_load@load.html
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-2/igt@xe_module_load@load.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-2/igt@xe_module_load@load.html
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-2/igt@xe_module_load@load.html
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-7/igt@xe_module_load@load.html
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-7/igt@xe_module_load@load.html
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-7/igt@xe_module_load@load.html
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-5/igt@xe_module_load@load.html
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-5/igt@xe_module_load@load.html
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-lnl-5/igt@xe_module_load@load.html
- shard-bmg: ([PASS][52], [PASS][53], [PASS][54], [PASS][55], [PASS][56], [PASS][57], [PASS][58], [PASS][59], [PASS][60], [PASS][61], [PASS][62], [PASS][63], [PASS][64], [PASS][65], [PASS][66], [PASS][67], [PASS][68], [PASS][69], [PASS][70], [PASS][71], [SKIP][72], [PASS][73], [PASS][74], [PASS][75], [PASS][76], [PASS][77]) ([Intel XE#2457]) -> ([DMESG-WARN][78], [DMESG-WARN][79], [DMESG-WARN][80], [DMESG-WARN][81], [DMESG-WARN][82], [DMESG-WARN][83], [DMESG-WARN][84], [DMESG-WARN][85], [DMESG-WARN][86], [DMESG-WARN][87], [DMESG-WARN][88], [DMESG-WARN][89], [DMESG-WARN][90], [DMESG-WARN][91], [DMESG-WARN][92], [DMESG-WARN][93], [DMESG-WARN][94], [DMESG-WARN][95], [DMESG-WARN][96], [DMESG-WARN][97], [DMESG-WARN][98], [DMESG-WARN][99], [DMESG-WARN][100], [DMESG-WARN][101], [DMESG-WARN][102])
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-2/igt@xe_module_load@load.html
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-2/igt@xe_module_load@load.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-1/igt@xe_module_load@load.html
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-1/igt@xe_module_load@load.html
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-1/igt@xe_module_load@load.html
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-7/igt@xe_module_load@load.html
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-7/igt@xe_module_load@load.html
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-1/igt@xe_module_load@load.html
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-5/igt@xe_module_load@load.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-5/igt@xe_module_load@load.html
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-5/igt@xe_module_load@load.html
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-4/igt@xe_module_load@load.html
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-3/igt@xe_module_load@load.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-3/igt@xe_module_load@load.html
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-3/igt@xe_module_load@load.html
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-6/igt@xe_module_load@load.html
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-6/igt@xe_module_load@load.html
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-8/igt@xe_module_load@load.html
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-8/igt@xe_module_load@load.html
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-8/igt@xe_module_load@load.html
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-1/igt@xe_module_load@load.html
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-5/igt@xe_module_load@load.html
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-4/igt@xe_module_load@load.html
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-8/igt@xe_module_load@load.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-4/igt@xe_module_load@load.html
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-bmg-4/igt@xe_module_load@load.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-4/igt@xe_module_load@load.html
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-4/igt@xe_module_load@load.html
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-4/igt@xe_module_load@load.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-4/igt@xe_module_load@load.html
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-8/igt@xe_module_load@load.html
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-8/igt@xe_module_load@load.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-1/igt@xe_module_load@load.html
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-1/igt@xe_module_load@load.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-1/igt@xe_module_load@load.html
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-7/igt@xe_module_load@load.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-7/igt@xe_module_load@load.html
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-7/igt@xe_module_load@load.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-7/igt@xe_module_load@load.html
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-2/igt@xe_module_load@load.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-2/igt@xe_module_load@load.html
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-2/igt@xe_module_load@load.html
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-6/igt@xe_module_load@load.html
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-6/igt@xe_module_load@load.html
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-6/igt@xe_module_load@load.html
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-6/igt@xe_module_load@load.html
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-3/igt@xe_module_load@load.html
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-5/igt@xe_module_load@load.html
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-5/igt@xe_module_load@load.html
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-5/igt@xe_module_load@load.html
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-bmg-5/igt@xe_module_load@load.html
- shard-adlp: ([PASS][103], [PASS][104], [PASS][105], [PASS][106], [PASS][107], [PASS][108], [PASS][109], [PASS][110], [PASS][111], [PASS][112], [PASS][113], [PASS][114], [PASS][115], [PASS][116], [PASS][117], [PASS][118], [PASS][119], [PASS][120], [PASS][121], [PASS][122], [PASS][123], [PASS][124], [PASS][125], [PASS][126], [PASS][127], [SKIP][128]) ([Intel XE#378]) -> ([FAIL][129], [FAIL][130], [FAIL][131], [FAIL][132], [FAIL][133], [FAIL][134], [FAIL][135], [FAIL][136], [FAIL][137], [FAIL][138], [FAIL][139], [FAIL][140], [FAIL][141], [FAIL][142], [FAIL][143], [FAIL][144], [FAIL][145], [FAIL][146], [FAIL][147], [FAIL][148], [FAIL][149], [FAIL][150], [FAIL][151], [FAIL][152])
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-3/igt@xe_module_load@load.html
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-4/igt@xe_module_load@load.html
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-9/igt@xe_module_load@load.html
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-2/igt@xe_module_load@load.html
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-9/igt@xe_module_load@load.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-3/igt@xe_module_load@load.html
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-8/igt@xe_module_load@load.html
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-1/igt@xe_module_load@load.html
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-1/igt@xe_module_load@load.html
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-1/igt@xe_module_load@load.html
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-1/igt@xe_module_load@load.html
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-6/igt@xe_module_load@load.html
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-6/igt@xe_module_load@load.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-6/igt@xe_module_load@load.html
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-6/igt@xe_module_load@load.html
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-8/igt@xe_module_load@load.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-8/igt@xe_module_load@load.html
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-8/igt@xe_module_load@load.html
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-4/igt@xe_module_load@load.html
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-2/igt@xe_module_load@load.html
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-2/igt@xe_module_load@load.html
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-3/igt@xe_module_load@load.html
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-4/igt@xe_module_load@load.html
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-2/igt@xe_module_load@load.html
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-4/igt@xe_module_load@load.html
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-adlp-2/igt@xe_module_load@load.html
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-6/igt@xe_module_load@load.html
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-6/igt@xe_module_load@load.html
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-6/igt@xe_module_load@load.html
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-9/igt@xe_module_load@load.html
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-9/igt@xe_module_load@load.html
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-9/igt@xe_module_load@load.html
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-9/igt@xe_module_load@load.html
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-8/igt@xe_module_load@load.html
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-8/igt@xe_module_load@load.html
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-8/igt@xe_module_load@load.html
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-2/igt@xe_module_load@load.html
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-2/igt@xe_module_load@load.html
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-2/igt@xe_module_load@load.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-2/igt@xe_module_load@load.html
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-3/igt@xe_module_load@load.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-3/igt@xe_module_load@load.html
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-3/igt@xe_module_load@load.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-4/igt@xe_module_load@load.html
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-4/igt@xe_module_load@load.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-4/igt@xe_module_load@load.html
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-4/igt@xe_module_load@load.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-1/igt@xe_module_load@load.html
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-1/igt@xe_module_load@load.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-adlp-1/igt@xe_module_load@load.html
- shard-dg2-set2: ([PASS][153], [PASS][154], [PASS][155], [PASS][156], [PASS][157], [PASS][158], [PASS][159], [PASS][160], [PASS][161], [PASS][162], [PASS][163], [PASS][164], [PASS][165], [PASS][166], [PASS][167], [PASS][168], [PASS][169], [PASS][170], [PASS][171], [PASS][172], [PASS][173], [SKIP][174], [PASS][175], [PASS][176], [PASS][177], [PASS][178]) ([Intel XE#378]) -> ([FAIL][179], [FAIL][180], [FAIL][181], [FAIL][182], [FAIL][183], [DMESG-FAIL][184], [FAIL][185], [DMESG-FAIL][186], [DMESG-FAIL][187], [FAIL][188], [DMESG-FAIL][189], [FAIL][190], [FAIL][191], [DMESG-FAIL][192], [DMESG-FAIL][193], [FAIL][194], [DMESG-FAIL][195], [DMESG-FAIL][196], [DMESG-FAIL][197], [DMESG-FAIL][198], [FAIL][199], [DMESG-FAIL][200], [FAIL][201], [FAIL][202], [FAIL][203])
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-435/igt@xe_module_load@load.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-466/igt@xe_module_load@load.html
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-435/igt@xe_module_load@load.html
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-432/igt@xe_module_load@load.html
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-434/igt@xe_module_load@load.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-434/igt@xe_module_load@load.html
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-434/igt@xe_module_load@load.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-464/igt@xe_module_load@load.html
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-464/igt@xe_module_load@load.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-432/igt@xe_module_load@load.html
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-432/igt@xe_module_load@load.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-436/igt@xe_module_load@load.html
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-435/igt@xe_module_load@load.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-466/igt@xe_module_load@load.html
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-466/igt@xe_module_load@load.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-433/igt@xe_module_load@load.html
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-433/igt@xe_module_load@load.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-436/igt@xe_module_load@load.html
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-433/igt@xe_module_load@load.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-436/igt@xe_module_load@load.html
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-436/igt@xe_module_load@load.html
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-435/igt@xe_module_load@load.html
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-434/igt@xe_module_load@load.html
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-434/igt@xe_module_load@load.html
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-464/igt@xe_module_load@load.html
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/shard-dg2-464/igt@xe_module_load@load.html
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-434/igt@xe_module_load@load.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-434/igt@xe_module_load@load.html
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-464/igt@xe_module_load@load.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-464/igt@xe_module_load@load.html
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-464/igt@xe_module_load@load.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-464/igt@xe_module_load@load.html
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-464/igt@xe_module_load@load.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-433/igt@xe_module_load@load.html
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-433/igt@xe_module_load@load.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-433/igt@xe_module_load@load.html
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-436/igt@xe_module_load@load.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-436/igt@xe_module_load@load.html
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-466/igt@xe_module_load@load.html
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-466/igt@xe_module_load@load.html
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-466/igt@xe_module_load@load.html
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-466/igt@xe_module_load@load.html
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-466/igt@xe_module_load@load.html
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-435/igt@xe_module_load@load.html
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-435/igt@xe_module_load@load.html
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-435/igt@xe_module_load@load.html
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-432/igt@xe_module_load@load.html
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-432/igt@xe_module_load@load.html
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-432/igt@xe_module_load@load.html
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-432/igt@xe_module_load@load.html
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/shard-dg2-432/igt@xe_module_load@load.html
[Intel XE#2457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2457
[Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
Build changes
-------------
* Linux: xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023 -> xe-pw-148394v2
IGT_8343: 882124078d617b631891f40f54e3f41b0334f142 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023: 7b083a8df1481fc36035bfa71ef184dcedd88023
xe-pw-148394v2: 148394v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/index.html
[-- Attachment #2: Type: text/html, Size: 30446 bytes --]
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 0/9] Introducing firmware late binding
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (15 preceding siblings ...)
2025-04-29 19:02 ` ✗ Xe.CI.Full: failure " Patchwork
@ 2025-04-30 11:47 ` Jani Nikula
2025-05-06 7:53 ` ✗ Xe.CI.BAT: failure for Introducing firmware late binding (rev2) Patchwork
17 siblings, 0 replies; 39+ messages in thread
From: Jani Nikula @ 2025-04-30 11:47 UTC (permalink / raw)
To: Badal Nilawar, intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh,
daniele.ceraolospurio
On Tue, 29 Apr 2025, Badal Nilawar <badal.nilawar@intel.com> wrote:
> Introducing firmware late binding feature to enable firmware loading
> for the devices, such as the fan controller and voltage regulator,
> during the driver probe.
> Typically, firmware for these devices are part of IFWI flash image but
> can be replaced at probe after OEM tuning.
I replied to the previous version [1], the comment has been ignored, and
there's no version information in this series on what changed.
Please don't do that.
BR,
Jani.
[1] https://lore.kernel.org/r/87v7qnwdm3.fsf@intel.com
>
> Alexander Usyskin (2):
> mei: bus: add mei_cldev_mtu interface
> mei: late_bind: add late binding component driver
>
> Badal Nilawar (6):
> drm/xe/late_bind_fw: Introducing late_bind_fw
> drm/xe/xe_late_bind_fw: Initialize late binding firmware
> drm/xe/xe_late_bind_fw: Load late binding firmware
> drm/xe/xe_late_bind_fw: Reload late binding fw in rpm resume
> drm/xe/xe_late_bind_fw: Reload late binding fw in S2Idle/S3 resume
> drm/xe/xe_late_bind_fw: Introduce debug fs node to disable late
> binding
>
> Rodrigo Vivi (1):
> {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
>
> Documentation/userspace-api/fwctl/index.rst | 1 +
> drivers/gpu/drm/xe/Kconfig | 2 +
> drivers/gpu/drm/xe/Makefile | 2 +
> drivers/gpu/drm/xe/xe_debugfs.c | 42 +++
> drivers/gpu/drm/xe/xe_device.c | 7 +
> drivers/gpu/drm/xe/xe_device_types.h | 4 +
> drivers/gpu/drm/xe/xe_late_bind_fw.c | 289 ++++++++++++++++++
> drivers/gpu/drm/xe/xe_late_bind_fw.h | 18 ++
> drivers/gpu/drm/xe/xe_late_bind_fw_types.h | 97 ++++++
> drivers/gpu/drm/xe/xe_pci.c | 5 +
> drivers/gpu/drm/xe/xe_pcode_fwctl.c | 218 +++++++++++++
> drivers/gpu/drm/xe/xe_pcode_fwctl.h | 13 +
> drivers/gpu/drm/xe/xe_pm.c | 7 +
> drivers/misc/mei/Kconfig | 1 +
> drivers/misc/mei/Makefile | 1 +
> drivers/misc/mei/bus.c | 13 +
> drivers/misc/mei/late_bind/Kconfig | 12 +
> drivers/misc/mei/late_bind/Makefile | 9 +
> drivers/misc/mei/late_bind/mei_late_bind.c | 261 ++++++++++++++++
> include/drm/intel/i915_component.h | 1 +
> .../drm/intel/xe_late_bind_mei_interface.h | 49 +++
> include/linux/mei_cl_bus.h | 1 +
> include/uapi/fwctl/fwctl.h | 1 +
> include/uapi/fwctl/xe_pcode.h | 80 +++++
> 24 files changed, 1134 insertions(+)
> create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw.c
> create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw.h
> create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw_types.h
> create mode 100644 drivers/gpu/drm/xe/xe_pcode_fwctl.c
> create mode 100644 drivers/gpu/drm/xe/xe_pcode_fwctl.h
> create mode 100644 drivers/misc/mei/late_bind/Kconfig
> create mode 100644 drivers/misc/mei/late_bind/Makefile
> create mode 100644 drivers/misc/mei/late_bind/mei_late_bind.c
> create mode 100644 include/drm/intel/xe_late_bind_mei_interface.h
> create mode 100644 include/uapi/fwctl/xe_pcode.h
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-04-29 16:09 ` [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl Badal Nilawar
@ 2025-05-01 15:44 ` Rodrigo Vivi
2025-05-06 18:13 ` Jason Gunthorpe
1 sibling, 0 replies; 39+ messages in thread
From: Rodrigo Vivi @ 2025-05-01 15:44 UTC (permalink / raw)
To: Badal Nilawar, Dave Jiang, Jason Gunthorpe, Saeed Mahameed,
onathan Cameron, Simona Vetter, Dave Airlie, linux-kernel
Cc: intel-xe, dri-devel, anshuman.gupta, alexander.usyskin, gregkh,
daniele.ceraolospurio
On Tue, Apr 29, 2025 at 09:39:56PM +0530, Badal Nilawar wrote:
> From: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> Xe PCODE FWCTL implements the generic FWCTL IOCLTs to allow limited
> access from user space (as admin) to some very specific PCODE
> Mailboxes only related to hardware configuration.
>
> PCODE is a Firmware in Intel GPUs which is the main responsible
> component for power and thermal aspects of the Intel GPUs.
>
> Each different Intel GPU came with different PCODE versions with
> different mailboxes and different needs. In the lack of an unified
> interface, the per platform sysfs entries at the device level is
> trending to grow, to allow admins to control different aspects of
> the Hardware.
>
> In this first experiment, xe_pcode_fwctl only adds support for the
> Battlemage late-binding firmware information.
>
> Late-binding is the name given to 2 other new auxiliary firmware
> blobs that for now lives in the Flash like PCODE, but that soon
> it is coming to linux-firmware.git: Fan-controller and
> Voltage-regulator. Then, PCODE provides some mailboxes where the
> status of both late-binding firmware can be queried as specified
> in the documentation that is added along with the new uAPI here.
>
> RFC IMPORTANT NOTE:
> ===================
> Admins will need to query this information. This code here aims
> to be used by Level0-Sysman and/or Intel XPU Manager directly
> from user space. But following the drm upstream rules, the
> userspace code will need to be ready before we can consider
> getting this patch merged!
>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
> ---
> Documentation/userspace-api/fwctl/index.rst | 1 +
> drivers/gpu/drm/xe/Kconfig | 1 +
> drivers/gpu/drm/xe/Makefile | 1 +
> drivers/gpu/drm/xe/xe_pci.c | 5 +
> drivers/gpu/drm/xe/xe_pcode_fwctl.c | 218 ++++++++++++++++++++
> drivers/gpu/drm/xe/xe_pcode_fwctl.h | 13 ++
> include/uapi/fwctl/fwctl.h | 1 +
> include/uapi/fwctl/xe_pcode.h | 80 +++++++
> 8 files changed, 320 insertions(+)
> create mode 100644 drivers/gpu/drm/xe/xe_pcode_fwctl.c
> create mode 100644 drivers/gpu/drm/xe/xe_pcode_fwctl.h
> create mode 100644 include/uapi/fwctl/xe_pcode.h
>
> diff --git a/Documentation/userspace-api/fwctl/index.rst b/Documentation/userspace-api/fwctl/index.rst
> index 316ac456ad3b..186f8cf17583 100644
> --- a/Documentation/userspace-api/fwctl/index.rst
> +++ b/Documentation/userspace-api/fwctl/index.rst
> @@ -12,3 +12,4 @@ to securely construct and execute RPCs inside device firmware.
> fwctl
> fwctl-cxl
> pds_fwctl
> + xe_pcode_fwctl
I just noticed that I forgot to actually include this file and add to
the MAINTAINERS list under xe.
But the important part which is the documentation itself is inside
the include/uapi/fwctl/xe_pcode.h
For the record, the missing file is:
$ cat Documentation/userspace-api/fwctl/xe_pcode_fwctl.rst
.. SPDX-License-Identifier: (GPL-2.0+ OR MIT)
==================
fwctl drm/xe pcode
==================
.. kernel-doc:: drivers/gpu/drm/xe/xe_pcode_fwctl.c
:doc: XE PCODE FWCTL
uAPI
====
.. kernel-doc:: include/uapi/fwctl/xe_pcode.h
:internal:
.. kernel-doc:: include/uapi/fwctl/xe_pcode.h
:doc: Late Binding Commands
Also cc'ing FWCTL and DRM maintainers and LKML to ensure we get the proper
feedback on this first attempt of using the fwctl with xe.
Thanks,
Rodrigo.
> diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
> index a8cc1876a24f..ee77039b9256 100644
> --- a/drivers/gpu/drm/xe/Kconfig
> +++ b/drivers/gpu/drm/xe/Kconfig
> @@ -45,6 +45,7 @@ config DRM_XE
> select AUXILIARY_BUS
> select HMM_MIRROR
> select INTEL_MEI_LATE_BIND
> + select FWCTL
> help
> Experimental driver for Intel Xe series GPUs
>
> diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
> index 6de291a21965..c1f3b2e2da5f 100644
> --- a/drivers/gpu/drm/xe/Makefile
> +++ b/drivers/gpu/drm/xe/Makefile
> @@ -86,6 +86,7 @@ xe-y += xe_bb.o \
> xe_pat.o \
> xe_pci.o \
> xe_pcode.o \
> + xe_pcode_fwctl.o \
> xe_pm.o \
> xe_preempt_fence.o \
> xe_pt.o \
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index 882398e09b7e..222e75c7427e 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -27,6 +27,7 @@
> #include "xe_module.h"
> #include "xe_pci_sriov.h"
> #include "xe_pci_types.h"
> +#include "xe_pcode_fwctl.h"
> #include "xe_pm.h"
> #include "xe_sriov.h"
> #include "xe_step.h"
> @@ -868,6 +869,10 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> if (err)
> goto err_driver_cleanup;
>
> + err = xe_pcode_fwctl_init(xe);
> + if (err)
> + goto err_driver_cleanup;
> +
> drm_dbg(&xe->drm, "d3cold: capable=%s\n",
> str_yes_no(xe->d3cold.capable));
>
> diff --git a/drivers/gpu/drm/xe/xe_pcode_fwctl.c b/drivers/gpu/drm/xe/xe_pcode_fwctl.c
> new file mode 100644
> index 000000000000..d6443aa4a60a
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_pcode_fwctl.c
> @@ -0,0 +1,218 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright © 2025 Intel Corporation
> + */
> +
> +#include "xe_pcode_fwctl.h"
> +
> +#include <linux/fwctl.h>
> +#include <uapi/fwctl/xe_pcode.h>
> +
> +#include "xe_device.h"
> +#include "xe_pcode_api.h"
> +#include "xe_pcode.h"
> +#include "xe_pm.h"
> +
> +/**
> + * DOC: XE PCODE FWCTL
> + *
> + * Xe PCODE FWCTL implements the generic FWCTL IOCLTs to allow limited access
> + * from user space (as admin) to some very specific PCODE Mailboxes.
> + *
> + * User space first needs to issue the ```FWCTL_INFO``` ioctl and check for the
> + * capability flag, which will indicate which group of Mailboxes commands are
> + * supported on that current running firmware.
> + *
> + * After verifying the availability of the desired Mailbox command,
> + * ```FWCTL_RPC``` needs to be issued with in and out parameter both using
> + * pointers to a ```struct fwctl_rpc_xe_pcode``` allocated by userspace.
> + * In and out length needs to be sizeof(struct fwctl_rpc_xe_pcode).
> + *
> + * Any command that is not listed in the include/uapi/fwctl/xe_pcode.h or not
> + * supported by the running firmware, will return ERR_PTR(-EBADMSG).
> + *
> + * Example:
> + *
> + * .. code-block:: C
> + *
> + * struct fwctl_info_xe_pcode xe_pcode_info;
> + *
> + * struct fwctl_info info = {
> + * .size = sizeof(struct fwctl_info),
> + * .flags = 0,
> + * .out_device_type = 0,
> + * .device_data_len = sizeof(struct fwctl_info_xe_pcode),
> + * .out_device_data = (__aligned_u64) &xe_pcode_info,
> + * };
> + *
> + * fd = open("/dev/fwctl/fwctl0", O_RDWR);
> + * if (fd < 0) {
> + * perror("Failed to open /dev/fwctl/fwctl0");
> + * return -1;
> + * }
> + *
> + * if (ioctl(fd, FWCTL_INFO, &info)) {
> + * perror("ioctl(FWCTL_INFO) failed");
> + * close(fd);
> + * return -1;
> + * }
> + *
> + * if (xe_pcode_info.uctx_caps & FWCTL_XE_PCODE_LATEBINDING) {
> + * struct fwctl_rpc_xe_pcode rpc_in = {
> + * .command = PCODE_CMD_LATE_BINDING,
> + * .param1 = PARAM1_GET_CAPABILITY_STATUS,
> + * };
> + *
> + * struct fwctl_rpc_xe_pcode rpc_out = {0};
> + *
> + * struct fwctl_rpc rpc = {
> + * .size = sizeof(struct fwctl_rpc),
> + * .scope = FWCTL_RPC_CONFIGURATION,
> + * .in_len = sizeof(struct fwctl_rpc_xe_pcode),
> + * .out_len = sizeof(struct fwctl_rpc_xe_pcode),
> + * .in = (__aligned_u64) &rpc_in,
> + * .out = (__aligned_u64) &rpc_out,
> + * };
> + *
> + * if (ioctl(fd, FWCTL_RPC, &rpc)) {
> + * perror("ioctl(FWCTL_RPC) failed");
> + * close(fd);
> + * return -1;
> + * }
> + *
> + */
> +
> +struct xe_pcode_fwctl_dev {
> + struct fwctl_device fwctl;
> + struct xe_device *xe;
> +};
> +
> +DEFINE_FREE(xe_pcode_fwctl, struct xe_pcode_fwctl_dev *, if (_T) fwctl_put(&_T->fwctl))
> +
> +static int xe_pcode_fwctl_uctx_open(struct fwctl_uctx *uctx)
> +{
> + struct xe_pcode_fwctl_dev *fwctl_dev =
> + container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
> + struct xe_device *xe = fwctl_dev->xe;
> +
> + xe_pm_runtime_get(xe);
> +
> + return 0;
> +}
> +
> +static void xe_pcode_fwctl_uctx_close(struct fwctl_uctx *uctx)
> +{
> + struct xe_pcode_fwctl_dev *fwctl_dev =
> + container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
> + struct xe_device *xe = fwctl_dev->xe;
> +
> + xe_pm_runtime_put(xe);
> +}
> +
> +static void *xe_pcode_fwctl_info(struct fwctl_uctx *uctx, size_t *length)
> +{
> + struct xe_pcode_fwctl_dev *fwctl_dev =
> + container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
> + struct xe_device *xe = fwctl_dev->xe;
> + struct fwctl_info_xe_pcode *info;
> +
> + info = kzalloc(sizeof(*info), GFP_KERNEL);
> + if (!info)
> + return ERR_PTR(-ENOMEM);
> +
> + if (xe->info.platform == XE_BATTLEMAGE)
> + info->uctx_caps = FWCTL_XE_PCODE_LATEBINDING;
> +
> + *length = sizeof(*info);
> +
> + return info;
> +}
> +
> +static bool xe_pcode_fwctl_rpc_validate(struct fwctl_rpc_xe_pcode *rpc,
> + enum fwctl_rpc_scope scope)
> +{
> + u32 mbox = PCODE_MBOX(rpc->command, rpc->param1, rpc->param2);
> +
> + if (mbox == PCODE_MBOX(PCODE_CMD_LATE_BINDING,
> + PARAM1_GET_CAPABILITY_STATUS, 0))
> + return scope == FWCTL_RPC_CONFIGURATION;
> +
> + if (mbox == PCODE_MBOX(PCODE_CMD_LATE_BINDING,
> + PARAM1_GET_VERSION_LOW, 0))
> + return (rpc->data0 == DATA0_TYPE_FAN_CONTROLLER ||
> + rpc->data0 == DATA0_TYPE_VOLTAGE_REGULATOR) &&
> + scope == FWCTL_RPC_CONFIGURATION;
> +
> + return false;
> +}
> +
> +static void *xe_pcode_fwctl_rpc(struct fwctl_uctx *uctx,
> + enum fwctl_rpc_scope scope,
> + void *in, size_t in_len, size_t *out_len)
> +{
> + struct xe_pcode_fwctl_dev *fwctl_dev =
> + container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
> + struct xe_tile *root_tile = xe_device_get_root_tile(fwctl_dev->xe);
> + struct fwctl_rpc_xe_pcode *rpc = in;
> + int err;
> +
> + if (in_len != sizeof(struct fwctl_rpc_xe_pcode) ||
> + *out_len != sizeof(struct fwctl_rpc_xe_pcode))
> + return ERR_PTR(-EMSGSIZE);
> +
> + if (!xe_pcode_fwctl_rpc_validate(rpc, scope))
> + return ERR_PTR(-EBADMSG);
> +
> + err = xe_pcode_read(root_tile, PCODE_MBOX(rpc->command,
> + rpc->param1,
> + rpc->param2),
> + &rpc->data0,
> + &rpc->data1);
> + if (err)
> + return ERR_PTR(err);
> +
> + return rpc;
> +}
> +
> +static const struct fwctl_ops xe_pcode_fwctl_ops = {
> + .device_type = FWCTL_DEVICE_TYPE_XE_PCODE,
> + .uctx_size = sizeof(struct fwctl_uctx),
> + .open_uctx = xe_pcode_fwctl_uctx_open,
> + .close_uctx = xe_pcode_fwctl_uctx_close,
> + .info = xe_pcode_fwctl_info,
> + .fw_rpc = xe_pcode_fwctl_rpc,
> +};
> +
> +static void xe_pcode_fwctl_fini(void *dev)
> +{
> + struct fwctl_device *fwctl = dev;
> +
> + fwctl_unregister(fwctl);
> + fwctl_put(fwctl);
> +}
> +
> +int xe_pcode_fwctl_init(struct xe_device *xe)
> +{
> + struct xe_pcode_fwctl_dev *fwctl_dev __free(xe_pcode_fwctl) =
> + fwctl_alloc_device(xe->drm.dev, &xe_pcode_fwctl_ops,
> + struct xe_pcode_fwctl_dev, fwctl);
> + int err;
> +
> + /* For now xe_pcode_fwctl supports only Late-Binding commands on BMG */
> + if (xe->info.platform != XE_BATTLEMAGE)
> + return -ENODEV;
> +
> + if (!fwctl_dev)
> + return -ENOMEM;
> +
> + fwctl_dev->xe = xe;
> +
> + err = fwctl_register(&fwctl_dev->fwctl);
> + if (err)
> + return err;
> +
> + return devm_add_action_or_reset(xe->drm.dev, xe_pcode_fwctl_fini,
> + &fwctl_dev->fwctl);
> +}
> +
> +MODULE_IMPORT_NS("FWCTL");
> diff --git a/drivers/gpu/drm/xe/xe_pcode_fwctl.h b/drivers/gpu/drm/xe/xe_pcode_fwctl.h
> new file mode 100644
> index 000000000000..67386d7bf2ea
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_pcode_fwctl.h
> @@ -0,0 +1,13 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2025 Intel Corporation
> + */
> +
> +#ifndef _XE_PCODE_FWCTL_H_
> +#define _XE_PCODE_FWCTL_H_
> +
> +struct xe_device;
> +
> +int xe_pcode_fwctl_init(struct xe_device *xe);
> +
> +#endif
> diff --git a/include/uapi/fwctl/fwctl.h b/include/uapi/fwctl/fwctl.h
> index 716ac0eee42d..9e7e84aef791 100644
> --- a/include/uapi/fwctl/fwctl.h
> +++ b/include/uapi/fwctl/fwctl.h
> @@ -45,6 +45,7 @@ enum fwctl_device_type {
> FWCTL_DEVICE_TYPE_MLX5 = 1,
> FWCTL_DEVICE_TYPE_CXL = 2,
> FWCTL_DEVICE_TYPE_PDS = 4,
> + FWCTL_DEVICE_TYPE_XE_PCODE = 5,
> };
>
> /**
> diff --git a/include/uapi/fwctl/xe_pcode.h b/include/uapi/fwctl/xe_pcode.h
> new file mode 100644
> index 000000000000..8df6db34e5ce
> --- /dev/null
> +++ b/include/uapi/fwctl/xe_pcode.h
> @@ -0,0 +1,80 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2025 Intel Corporation
> + */
> +
> +#ifndef _UAPI_FWCTL_XE_PCODE_H_
> +#define _UAPI_FWCTL_XE_PCODE_H_
> +
> +#include <linux/types.h>
> +
> +/**
> + * struct fwctl_info_xe_pcode - FWCTL Information struct for Xe PCODE
> + *
> + * @uctx_caps: bitmap of available capabilities:
> + * - %FWCTL_XE_PCODE_LATEBINDING - Command to configure Late Bind FW such as
> + * Fan Controller and Voltage Regulator
> + * @rsvd: Reserved for future usage or flags
> + */
> +struct fwctl_info_xe_pcode {
> + __u32 uctx_caps;
> + __u32 rsvd[3];
> +};
> +
> +#define FWCTL_XE_PCODE_LATEBINDING (1 << 0)
> +
> +/**
> + * struct fwctl_rpc_xe_pcode - FWCTL Remote Procedure Calls for Xe PCODE
> + */
> +struct fwctl_rpc_xe_pcode {
> + /** @command: The main Mailbox command */
> + __u8 command;
> + /** @param1: A subcommand or a parameter of the main command */
> + __u16 param1;
> + /** @param2: A parameter of a subcommand or a subsubcommand */
> + __u16 param2;
> + /** @data0: The first 32 bits of data. In general data-in as param */
> + __u32 data0;
> + /** @data1: The other 32 bits of data. In general data-out */
> + __u32 data1;
> + /** @pad: Padding the uAPI struct - Must be 0. Not sent to firmware */
> + __u8 pad[3];
> +};
> +
> +/**
> + * DOC: Late Binding Commands
> + *
> + * FWCTL info.uctx_caps: FWCTL_XE_PCODE_LATEBINDING
> + * FWCTL rpc.scope: FWCTL_RPC_CONFIGURATION
> + *
> + * Command 0x5C - LATE_BINDING
> + * Param1 0x0 - GET_CAPABILITY_STATUS
> + * Param2 0
> + * Data in None
> + * Data out:
> + *
> + * - Bit0: ate binding for V1 Fan Tables is supported.
> + * - Bit3: Late binding for VR parameters.
> + * - Bit16: Late binding done for V1 Fan tables
> + * - Bit17: Late binding done for power co-efficients.
> + * - Bit18: Late binding done for V2 Fan tables
> + * - Bit19: Late binding done for VR Parameters
> + *
> + * Command 0x5C - LATE_BINDING
> + * Param1 0x1 - GET_VERSION_LOW
> + * Param2 0
> + * Data in - conveys the Type of the Late Binding Configuration:
> + *
> + * - FAN_CONTROLLER = 1
> + * - VOLTAGE_REGULATOR = 2
> + *
> + * Data out - Lower 32 bits of Version Number for Late Binding configuration
> + * that has been applied successfully.
> + */
> +#define PCODE_CMD_LATE_BINDING 0x5C
> +#define PARAM1_GET_CAPABILITY_STATUS 0x0
> +#define PARAM1_GET_VERSION_LOW 0x1
> +#define DATA0_TYPE_FAN_CONTROLLER 1
> +#define DATA0_TYPE_VOLTAGE_REGULATOR 2
> +
> +#endif /* _UAPI_FWCTL_XE_PCODE_H_ */
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 39+ messages in thread
* ✗ Xe.CI.BAT: failure for Introducing firmware late binding (rev2)
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
` (16 preceding siblings ...)
2025-04-30 11:47 ` [RFC 0/9] Introducing firmware late binding Jani Nikula
@ 2025-05-06 7:53 ` Patchwork
17 siblings, 0 replies; 39+ messages in thread
From: Patchwork @ 2025-05-06 7:53 UTC (permalink / raw)
To: Nilawar, Badal; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 37285 bytes --]
== Series Details ==
Series: Introducing firmware late binding (rev2)
URL : https://patchwork.freedesktop.org/series/148394/
State : failure
== Summary ==
CI Bug Log - changes from xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023_BAT -> xe-pw-148394v2_BAT
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-148394v2_BAT absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-148394v2_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (9 -> 8)
------------------------------
Missing (1): bat-adlp-vm
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-148394v2_BAT:
### IGT changes ###
#### Possible regressions ####
* igt@core_hotunplug@unbind-rebind:
- bat-bmg-1: [PASS][1] -> [ABORT][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-bmg-1/igt@core_hotunplug@unbind-rebind.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-bmg-1/igt@core_hotunplug@unbind-rebind.html
- bat-bmg-2: [PASS][3] -> [ABORT][4]
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-bmg-2/igt@core_hotunplug@unbind-rebind.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-bmg-2/igt@core_hotunplug@unbind-rebind.html
* igt@xe_exec_balancer@no-exec-virtual-basic:
- bat-lnl-2: NOTRUN -> [SKIP][5] +193 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-2/igt@xe_exec_balancer@no-exec-virtual-basic.html
* igt@xe_exec_compute_mode@twice-userptr-invalidate:
- bat-atsm-2: [PASS][6] -> [SKIP][7] +154 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@xe_exec_compute_mode@twice-userptr-invalidate.html
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@xe_exec_compute_mode@twice-userptr-invalidate.html
* igt@xe_huc_copy@huc_copy:
- bat-lnl-1: [PASS][8] -> [SKIP][9] +218 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@xe_huc_copy@huc_copy.html
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@xe_huc_copy@huc_copy.html
* igt@xe_intel_bb@offset-control:
- bat-adlp-7: [PASS][10] -> [SKIP][11] +157 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_intel_bb@offset-control.html
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_intel_bb@offset-control.html
* igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit:
- bat-atsm-2: [PASS][12] -> [FAIL][13] +7 other tests fail
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit.html
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit.html
* igt@xe_live_ktest@xe_migrate:
- bat-lnl-2: NOTRUN -> [FAIL][14] +7 other tests fail
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-2/igt@xe_live_ktest@xe_migrate.html
* igt@xe_live_ktest@xe_migrate@xe_migrate_sanity_kunit:
- bat-lnl-1: [PASS][15] -> [FAIL][16] +5 other tests fail
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@xe_live_ktest@xe_migrate@xe_migrate_sanity_kunit.html
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@xe_live_ktest@xe_migrate@xe_migrate_sanity_kunit.html
* igt@xe_module_load@load:
- bat-adlp-vf: [PASS][17] -> [DMESG-FAIL][18]
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-vf/igt@xe_module_load@load.html
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-vf/igt@xe_module_load@load.html
- bat-bmg-2: [PASS][19] -> [DMESG-WARN][20]
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-bmg-2/igt@xe_module_load@load.html
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-bmg-2/igt@xe_module_load@load.html
- bat-bmg-1: [PASS][21] -> [DMESG-WARN][22]
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-bmg-1/igt@xe_module_load@load.html
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-bmg-1/igt@xe_module_load@load.html
- bat-adlp-7: [PASS][23] -> [FAIL][24]
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_module_load@load.html
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_module_load@load.html
- bat-lnl-2: [PASS][25] -> [DMESG-FAIL][26]
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-2/igt@xe_module_load@load.html
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-2/igt@xe_module_load@load.html
#### Warnings ####
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-lnl-1: [SKIP][27] ([Intel XE#1466]) -> [SKIP][28]
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-atsm-2: [SKIP][29] ([Intel XE#1024] / [Intel XE#784]) -> [SKIP][30]
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@kms_dsc@dsc-basic.html
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@kms_dsc@dsc-basic.html
* igt@kms_force_connector_basic@force-connector-state:
- bat-lnl-1: [SKIP][31] ([Intel XE#352]) -> [SKIP][32] +2 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@kms_force_connector_basic@force-connector-state.html
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@kms_force_connector_basic@force-connector-state.html
* igt@kms_frontbuffer_tracking@basic:
- bat-atsm-2: [SKIP][33] ([Intel XE#1024] / [Intel XE#783]) -> [SKIP][34]
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@kms_frontbuffer_tracking@basic.html
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@kms_frontbuffer_tracking@basic.html
* igt@kms_hdmi_inject@inject-audio:
- bat-lnl-1: [SKIP][35] ([Intel XE#1470] / [Intel XE#2853]) -> [SKIP][36]
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@kms_hdmi_inject@inject-audio.html
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_psr@psr-primary-page-flip:
- bat-atsm-2: [SKIP][37] ([Intel XE#1024]) -> [SKIP][38] +2 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@kms_psr@psr-primary-page-flip.html
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@kms_psr@psr-primary-page-flip.html
* igt@sriov_basic@enable-vfs-autoprobe-off:
- bat-lnl-1: [SKIP][39] ([Intel XE#1091] / [Intel XE#2849]) -> [SKIP][40] +1 other test skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@sriov_basic@enable-vfs-autoprobe-off.html
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@sriov_basic@enable-vfs-autoprobe-off.html
* igt@xe_evict@evict-small-cm:
- bat-adlp-7: [SKIP][41] ([Intel XE#261] / [Intel XE#688]) -> [SKIP][42] +9 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_evict@evict-small-cm.html
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_evict@evict-small-cm.html
* igt@xe_evict@evict-small-external-cm:
- bat-lnl-1: [SKIP][43] ([Intel XE#688]) -> [SKIP][44] +11 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@xe_evict@evict-small-external-cm.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@xe_evict@evict-small-external-cm.html
* igt@xe_evict_ccs@evict-overcommit-simple:
- bat-adlp-7: [SKIP][45] ([Intel XE#688]) -> [SKIP][46] +1 other test skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_evict_ccs@evict-overcommit-simple.html
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_evict_ccs@evict-overcommit-simple.html
* igt@xe_exec_fault_mode@twice-rebind-prefetch:
- bat-adlp-7: [SKIP][47] ([Intel XE#288]) -> [SKIP][48] +27 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_exec_fault_mode@twice-rebind-prefetch.html
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_exec_fault_mode@twice-rebind-prefetch.html
* igt@xe_exec_fault_mode@twice-userptr-invalidate-imm:
- bat-atsm-2: [SKIP][49] ([Intel XE#288]) -> [SKIP][50] +32 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@xe_exec_fault_mode@twice-userptr-invalidate-imm.html
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@xe_exec_fault_mode@twice-userptr-invalidate-imm.html
* igt@xe_huc_copy@huc_copy:
- bat-atsm-2: [SKIP][51] ([Intel XE#255]) -> [SKIP][52]
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@xe_huc_copy@huc_copy.html
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@xe_huc_copy@huc_copy.html
* igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
- bat-atsm-2: [SKIP][53] ([Intel XE#2229]) -> [FAIL][54]
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
- bat-lnl-1: [SKIP][55] ([Intel XE#2229]) -> [FAIL][56] +2 other tests fail
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
* igt@xe_mmap@vram:
- bat-lnl-1: [SKIP][57] ([Intel XE#1416]) -> [SKIP][58]
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@xe_mmap@vram.html
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@xe_mmap@vram.html
- bat-adlp-7: [SKIP][59] ([Intel XE#1008]) -> [SKIP][60]
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_mmap@vram.html
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_mmap@vram.html
* igt@xe_pat@pat-index-xe2:
- bat-atsm-2: [SKIP][61] ([Intel XE#977]) -> [SKIP][62]
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@xe_pat@pat-index-xe2.html
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@xe_pat@pat-index-xe2.html
- bat-adlp-7: [SKIP][63] ([Intel XE#977]) -> [SKIP][64]
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_pat@pat-index-xe2.html
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_pat@pat-index-xe2.html
* igt@xe_pat@pat-index-xehpc:
- bat-lnl-1: [SKIP][65] ([Intel XE#1420] / [Intel XE#2838]) -> [SKIP][66]
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@xe_pat@pat-index-xehpc.html
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@xe_pat@pat-index-xehpc.html
- bat-atsm-2: [SKIP][67] ([Intel XE#2838] / [Intel XE#979]) -> [SKIP][68]
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@xe_pat@pat-index-xehpc.html
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@xe_pat@pat-index-xehpc.html
- bat-adlp-7: [SKIP][69] ([Intel XE#2838] / [Intel XE#979]) -> [SKIP][70]
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_pat@pat-index-xehpc.html
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@pat-index-xelp:
- bat-lnl-1: [SKIP][71] ([Intel XE#977]) -> [SKIP][72]
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@xe_pat@pat-index-xelp.html
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@xe_pat@pat-index-xelp.html
* igt@xe_pat@pat-index-xelpg:
- bat-lnl-1: [SKIP][73] ([Intel XE#979]) -> [SKIP][74]
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@xe_pat@pat-index-xelpg.html
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@xe_pat@pat-index-xelpg.html
- bat-atsm-2: [SKIP][75] ([Intel XE#979]) -> [SKIP][76]
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@xe_pat@pat-index-xelpg.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@xe_pat@pat-index-xelpg.html
- bat-adlp-7: [SKIP][77] ([Intel XE#979]) -> [SKIP][78]
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_pat@pat-index-xelpg.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_pat@pat-index-xelpg.html
* igt@xe_sriov_flr@flr-vf1-clear:
- bat-lnl-1: [SKIP][79] ([Intel XE#3342]) -> [SKIP][80]
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@xe_sriov_flr@flr-vf1-clear.html
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@xe_sriov_flr@flr-vf1-clear.html
Known issues
------------
Here are the changes found in xe-pw-148394v2_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@eof:
- bat-dg2-oem2: [PASS][81] -> [SKIP][82] ([Intel XE#2134]) +4 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@fbdev@eof.html
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@fbdev@eof.html
* igt@fbdev@info:
- bat-lnl-1: [PASS][83] -> [SKIP][84] ([Intel XE#2134]) +4 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@fbdev@info.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@fbdev@info.html
* igt@fbdev@read:
- bat-adlp-7: [PASS][85] -> [SKIP][86] ([Intel XE#2134]) +4 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@fbdev@read.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@fbdev@read.html
* igt@intel_sysfs_debugfs@xe-base:
- bat-lnl-2: [PASS][87] -> [SKIP][88] ([Intel XE#4618])
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-2/igt@intel_sysfs_debugfs@xe-base.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-2/igt@intel_sysfs_debugfs@xe-base.html
* igt@intel_sysfs_debugfs@xe-forcewake:
- bat-adlp-7: [PASS][89] -> [SKIP][90] ([Intel XE#4618]) +3 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@intel_sysfs_debugfs@xe-forcewake.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@intel_sysfs_debugfs@xe-forcewake.html
* igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries:
- bat-lnl-2: NOTRUN -> [SKIP][91] ([Intel XE#4618]) +1 other test skip
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-2/igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries.html
- bat-lnl-1: [PASS][92] -> [SKIP][93] ([Intel XE#4618]) +3 other tests skip
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries.html
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries.html
- bat-dg2-oem2: [PASS][94] -> [SKIP][95] ([Intel XE#4208] / [Intel XE#4618]) +3 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries.html
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@intel_sysfs_debugfs@xe-sysfs-read-all-entries.html
* igt@kms_addfb_basic@bad-pitch-128:
- bat-dg2-oem2: [PASS][96] -> [SKIP][97] ([Intel XE#4208] / [i915#2575]) +51 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@kms_addfb_basic@bad-pitch-128.html
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@kms_addfb_basic@bad-pitch-128.html
* igt@kms_addfb_basic@invalid-get-prop-any:
- bat-lnl-2: NOTRUN -> [SKIP][98] ([Intel XE#2235]) +48 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-2/igt@kms_addfb_basic@invalid-get-prop-any.html
* igt@kms_addfb_basic@unused-handle:
- bat-adlp-7: [PASS][99] -> [SKIP][100] ([Intel XE#4950]) +7 other tests skip
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@kms_addfb_basic@unused-handle.html
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@kms_addfb_basic@unused-handle.html
* igt@kms_dsc@dsc-basic:
- bat-lnl-2: NOTRUN -> [SKIP][101] ([Intel XE#2235] / [Intel XE#2351]) +1 other test skip
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-2/igt@kms_dsc@dsc-basic.html
* igt@kms_frontbuffer_tracking@basic:
- bat-dg2-oem2: [PASS][102] -> [SKIP][103] ([Intel XE#2231] / [Intel XE#4208])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@kms_frontbuffer_tracking@basic.html
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@kms_frontbuffer_tracking@basic.html
* igt@kms_psr@psr-cursor-plane-move:
- bat-adlp-7: [PASS][104] -> [SKIP][105] ([Intel XE#2351]) +3 other tests skip
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@kms_psr@psr-cursor-plane-move.html
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@kms_psr@psr-cursor-plane-move.html
- bat-lnl-2: NOTRUN -> [SKIP][106] ([Intel XE#2351]) +2 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-2/igt@kms_psr@psr-cursor-plane-move.html
- bat-lnl-1: [PASS][107] -> [SKIP][108] ([Intel XE#2351]) +3 other tests skip
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@kms_psr@psr-cursor-plane-move.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@kms_psr@psr-cursor-plane-move.html
* igt@sriov_basic@enable-vfs-autoprobe-off:
- bat-atsm-2: [PASS][109] -> [SKIP][110] ([i915#2575]) +1 other test skip
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@sriov_basic@enable-vfs-autoprobe-off.html
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@sriov_basic@enable-vfs-autoprobe-off.html
* igt@xe_exec_compute_mode@twice-preempt-fence-early:
- bat-adlp-7: [PASS][111] -> [SKIP][112] ([Intel XE#4945]) +27 other tests skip
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_exec_compute_mode@twice-preempt-fence-early.html
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_exec_compute_mode@twice-preempt-fence-early.html
* igt@xe_intel_bb@create-in-region:
- bat-dg2-oem2: [PASS][113] -> [SKIP][114] ([Intel XE#4208]) +149 other tests skip
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@xe_intel_bb@create-in-region.html
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@xe_intel_bb@create-in-region.html
* igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
- bat-dg2-oem2: [PASS][115] -> [FAIL][116] ([Intel XE#3099]) +6 other tests fail
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html
* igt@xe_live_ktest@xe_migrate:
- bat-adlp-7: [PASS][117] -> [FAIL][118] ([Intel XE#3099]) +3 other tests fail
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_live_ktest@xe_migrate.html
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_live_ktest@xe_migrate.html
* igt@xe_module_load@load:
- bat-dg2-oem2: [PASS][119] -> [FAIL][120] ([Intel XE#4208])
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@xe_module_load@load.html
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@xe_module_load@load.html
#### Warnings ####
* igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries:
- bat-lnl-2: [ABORT][121] ([Intel XE#4830] / [Intel XE#4899]) -> [SKIP][122] ([Intel XE#4618])
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-2/igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries.html
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-2/igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-dg2-oem2: [SKIP][123] ([Intel XE#623]) -> [SKIP][124] ([Intel XE#4208] / [i915#2575])
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_addfb_basic@invalid-set-prop-any:
- bat-atsm-2: [SKIP][125] ([i915#6077]) -> [SKIP][126] ([i915#2575]) +30 other tests skip
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@kms_addfb_basic@invalid-set-prop-any.html
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@kms_addfb_basic@invalid-set-prop-any.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
- bat-atsm-2: [SKIP][127] ([Intel XE#1024] / [Intel XE#782]) -> [SKIP][128] ([i915#2575]) +5 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
* igt@kms_dsc@dsc-basic:
- bat-dg2-oem2: [SKIP][129] ([Intel XE#455]) -> [SKIP][130] ([Intel XE#2231] / [Intel XE#4208])
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html
- bat-lnl-1: [SKIP][131] ([Intel XE#2244]) -> [SKIP][132] ([Intel XE#2351])
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-lnl-1/igt@kms_dsc@dsc-basic.html
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-lnl-1/igt@kms_dsc@dsc-basic.html
- bat-adlp-7: [SKIP][133] ([Intel XE#455]) -> [SKIP][134] ([Intel XE#2351])
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@kms_dsc@dsc-basic.html
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@kms_dsc@dsc-basic.html
* igt@kms_flip@basic-flip-vs-modeset:
- bat-atsm-2: [SKIP][135] ([Intel XE#1024] / [Intel XE#947]) -> [SKIP][136] ([i915#2575]) +3 other tests skip
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@kms_flip@basic-flip-vs-modeset.html
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@kms_flip@basic-flip-vs-modeset.html
* igt@kms_force_connector_basic@force-connector-state:
- bat-atsm-2: [SKIP][137] ([Intel XE#540]) -> [SKIP][138] ([i915#2575]) +3 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@kms_force_connector_basic@force-connector-state.html
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@kms_force_connector_basic@force-connector-state.html
* igt@kms_pipe_crc_basic@nonblocking-crc:
- bat-atsm-2: [SKIP][139] ([i915#1836]) -> [SKIP][140] ([i915#2575]) +6 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@kms_pipe_crc_basic@nonblocking-crc.html
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@kms_pipe_crc_basic@nonblocking-crc.html
* igt@kms_prop_blob@basic:
- bat-atsm-2: [SKIP][141] ([Intel XE#780]) -> [SKIP][142] ([i915#2575])
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-atsm-2/igt@kms_prop_blob@basic.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-atsm-2/igt@kms_prop_blob@basic.html
* igt@kms_psr@psr-cursor-plane-move:
- bat-dg2-oem2: [SKIP][143] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][144] ([Intel XE#2231] / [Intel XE#4208]) +2 other tests skip
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@kms_psr@psr-cursor-plane-move.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@kms_psr@psr-cursor-plane-move.html
* igt@sriov_basic@enable-vfs-autoprobe-off:
- bat-dg2-oem2: [SKIP][145] ([Intel XE#1091] / [Intel XE#2849]) -> [SKIP][146] ([Intel XE#4208] / [i915#2575]) +1 other test skip
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@sriov_basic@enable-vfs-autoprobe-off.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@sriov_basic@enable-vfs-autoprobe-off.html
* igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate:
- bat-dg2-oem2: [SKIP][147] ([Intel XE#288]) -> [SKIP][148] ([Intel XE#4208]) +32 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate.html
* igt@xe_exec_fault_mode@twice-userptr-invalidate-prefetch:
- bat-adlp-7: [SKIP][149] ([Intel XE#288]) -> [SKIP][150] ([Intel XE#4945]) +4 other tests skip
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_exec_fault_mode@twice-userptr-invalidate-prefetch.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_exec_fault_mode@twice-userptr-invalidate-prefetch.html
* igt@xe_huc_copy@huc_copy:
- bat-dg2-oem2: [SKIP][151] ([Intel XE#255]) -> [SKIP][152] ([Intel XE#4208])
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@xe_huc_copy@huc_copy.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@xe_huc_copy@huc_copy.html
* igt@xe_live_ktest@xe_bo:
- bat-adlp-7: [SKIP][153] ([Intel XE#2229] / [Intel XE#455]) -> [FAIL][154] ([Intel XE#3099]) +2 other tests fail
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_live_ktest@xe_bo.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_live_ktest@xe_bo.html
* igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
- bat-dg2-oem2: [SKIP][155] ([Intel XE#2229]) -> [FAIL][156] ([Intel XE#3099])
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
- bat-adlp-7: [SKIP][157] ([Intel XE#2229]) -> [FAIL][158] ([Intel XE#3099])
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-adlp-7/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-adlp-7/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
* igt@xe_pat@pat-index-xe2:
- bat-dg2-oem2: [SKIP][159] ([Intel XE#977]) -> [SKIP][160] ([Intel XE#4208])
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@xe_pat@pat-index-xe2.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@xe_pat@pat-index-xe2.html
* igt@xe_pat@pat-index-xehpc:
- bat-dg2-oem2: [SKIP][161] ([Intel XE#2838] / [Intel XE#979]) -> [SKIP][162] ([Intel XE#4208])
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@xe_pat@pat-index-xehpc.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@pat-index-xelpg:
- bat-dg2-oem2: [SKIP][163] ([Intel XE#979]) -> [SKIP][164] ([Intel XE#4208])
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@xe_pat@pat-index-xelpg.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@xe_pat@pat-index-xelpg.html
* igt@xe_sriov_flr@flr-vf1-clear:
- bat-dg2-oem2: [SKIP][165] ([Intel XE#3342]) -> [SKIP][166] ([Intel XE#4208])
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023/bat-dg2-oem2/igt@xe_sriov_flr@flr-vf1-clear.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/bat-dg2-oem2/igt@xe_sriov_flr@flr-vf1-clear.html
[Intel XE#1008]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1008
[Intel XE#1024]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1024
[Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
[Intel XE#1416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1416
[Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
[Intel XE#1466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1466
[Intel XE#1470]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1470
[Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#2231]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2231
[Intel XE#2235]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2235
[Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
[Intel XE#2351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2351
[Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
[Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
[Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
[Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2853]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2853
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#3099]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3099
[Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
[Intel XE#352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/352
[Intel XE#4208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4208
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#4618]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4618
[Intel XE#4830]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4830
[Intel XE#4899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4899
[Intel XE#4945]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4945
[Intel XE#4950]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4950
[Intel XE#540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/540
[Intel XE#623]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/623
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#780]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/780
[Intel XE#782]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/782
[Intel XE#783]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/783
[Intel XE#784]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/784
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#947]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/947
[Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
[i915#1836]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1836
[i915#2575]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2575
[i915#6077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6077
Build changes
-------------
* Linux: xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023 -> xe-pw-148394v2
IGT_8343: 882124078d617b631891f40f54e3f41b0334f142 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-3007-7b083a8df1481fc36035bfa71ef184dcedd88023: 7b083a8df1481fc36035bfa71ef184dcedd88023
xe-pw-148394v2: 148394v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-148394v2/index.html
[-- Attachment #2: Type: text/html, Size: 44551 bytes --]
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-04-29 16:09 ` [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl Badal Nilawar
2025-05-01 15:44 ` Rodrigo Vivi
@ 2025-05-06 18:13 ` Jason Gunthorpe
2025-05-07 19:49 ` Rodrigo Vivi
` (2 more replies)
1 sibling, 3 replies; 39+ messages in thread
From: Jason Gunthorpe @ 2025-05-06 18:13 UTC (permalink / raw)
To: Badal Nilawar
Cc: intel-xe, dri-devel, anshuman.gupta, rodrigo.vivi,
alexander.usyskin, gregkh, daniele.ceraolospurio
On Tue, Apr 29, 2025 at 09:39:56PM +0530, Badal Nilawar wrote:
> diff --git a/drivers/gpu/drm/xe/xe_pcode_fwctl.c b/drivers/gpu/drm/xe/xe_pcode_fwctl.c
> new file mode 100644
I really do prefer it if you can find a way to put the code in
drivers/fwctl instead of in DRM subsystem.
> +static int xe_pcode_fwctl_uctx_open(struct fwctl_uctx *uctx)
> +{
> + struct xe_pcode_fwctl_dev *fwctl_dev =
> + container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
> + struct xe_device *xe = fwctl_dev->xe;
> +
> + xe_pm_runtime_get(xe);
Shouldn't this be in the RPC function? Why keep the device awake as
long as a the FD is open?
> +static void *xe_pcode_fwctl_rpc(struct fwctl_uctx *uctx,
> + enum fwctl_rpc_scope scope,
> + void *in, size_t in_len, size_t *out_len)
> +{
> + struct xe_pcode_fwctl_dev *fwctl_dev =
> + container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
> + struct xe_tile *root_tile = xe_device_get_root_tile(fwctl_dev->xe);
> + struct fwctl_rpc_xe_pcode *rpc = in;
> + int err;
> +
> + if (in_len != sizeof(struct fwctl_rpc_xe_pcode) ||
> + *out_len != sizeof(struct fwctl_rpc_xe_pcode))
> + return ERR_PTR(-EMSGSIZE);
> +
> + if (!xe_pcode_fwctl_rpc_validate(rpc, scope))
> + return ERR_PTR(-EBADMSG);
There should be an EPERM here if the scope is not good enough..
> +/**
> + * struct fwctl_rpc_xe_pcode - FWCTL Remote Procedure Calls for Xe PCODE
> + */
> +struct fwctl_rpc_xe_pcode {
> + /** @command: The main Mailbox command */
> + __u8 command;
> + /** @param1: A subcommand or a parameter of the main command */
> + __u16 param1;
> + /** @param2: A parameter of a subcommand or a subsubcommand */
> + __u16 param2;
> + /** @data0: The first 32 bits of data. In general data-in as param */
> + __u32 data0;
> + /** @data1: The other 32 bits of data. In general data-out */
> + __u32 data1;
> + /** @pad: Padding the uAPI struct - Must be 0. Not sent to firmware */
> + __u8 pad[3];
> +};
This has implicit padding? Make the padding explicit or use packed..
> +/**
> + * DOC: Late Binding Commands
> + *
> + * FWCTL info.uctx_caps: FWCTL_XE_PCODE_LATEBINDING
> + * FWCTL rpc.scope: FWCTL_RPC_CONFIGURATION
> + *
> + * Command 0x5C - LATE_BINDING
> + * Param1 0x0 - GET_CAPABILITY_STATUS
> + * Param2 0
> + * Data in None
> + * Data out:
> + *
> + * - Bit0: ate binding for V1 Fan Tables is supported.
"ate" is a typo?
This seems fine, though very simple in what it can do. Do you imagine
more commands down the road?
Jason
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-05-06 18:13 ` Jason Gunthorpe
@ 2025-05-07 19:49 ` Rodrigo Vivi
2025-05-07 22:04 ` Jason Gunthorpe
2025-06-06 13:47 ` Nilawar, Badal
2025-06-06 13:45 ` Nilawar, Badal
2025-06-30 22:01 ` Rodrigo Vivi
2 siblings, 2 replies; 39+ messages in thread
From: Rodrigo Vivi @ 2025-05-07 19:49 UTC (permalink / raw)
To: Jason Gunthorpe
Cc: Badal Nilawar, intel-xe, dri-devel, anshuman.gupta,
alexander.usyskin, gregkh, daniele.ceraolospurio
On Tue, May 06, 2025 at 03:13:53PM -0300, Jason Gunthorpe wrote:
Hi Jason,
first of all, thank you so much for creating this and for the review here.
> On Tue, Apr 29, 2025 at 09:39:56PM +0530, Badal Nilawar wrote:
>
> > diff --git a/drivers/gpu/drm/xe/xe_pcode_fwctl.c b/drivers/gpu/drm/xe/xe_pcode_fwctl.c
> > new file mode 100644
>
> I really do prefer it if you can find a way to put the code in
> drivers/fwctl instead of in DRM subsystem.
I was really in doubt about this and decided to go more towards the CXL way,
but if there's a stronger preference it would be okay by me if it is okay by
Sima and Dave as well.
> > +static int xe_pcode_fwctl_uctx_open(struct fwctl_uctx *uctx)
> > +{
> > + struct xe_pcode_fwctl_dev *fwctl_dev =
> > + container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
> > + struct xe_device *xe = fwctl_dev->xe;
> > +
> > + xe_pm_runtime_get(xe);
>
> Shouldn't this be in the RPC function? Why keep the device awake as
> long as a the FD is open?
In general I prefer the runtime on the outer bounds to avoid funny deadlock
cases. But right, in this case here it could be inside the xe_pcode calls
itself, that is when the mmio/mailboxes accesses will really happen.
>
> > +static void *xe_pcode_fwctl_rpc(struct fwctl_uctx *uctx,
> > + enum fwctl_rpc_scope scope,
> > + void *in, size_t in_len, size_t *out_len)
> > +{
> > + struct xe_pcode_fwctl_dev *fwctl_dev =
> > + container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
> > + struct xe_tile *root_tile = xe_device_get_root_tile(fwctl_dev->xe);
> > + struct fwctl_rpc_xe_pcode *rpc = in;
> > + int err;
> > +
> > + if (in_len != sizeof(struct fwctl_rpc_xe_pcode) ||
> > + *out_len != sizeof(struct fwctl_rpc_xe_pcode))
> > + return ERR_PTR(-EMSGSIZE);
> > +
> > + if (!xe_pcode_fwctl_rpc_validate(rpc, scope))
> > + return ERR_PTR(-EBADMSG);
>
> There should be an EPERM here if the scope is not good enough..
EPERM seems better indeed
> > +/**
> > + * struct fwctl_rpc_xe_pcode - FWCTL Remote Procedure Calls for Xe PCODE
> > + */
> > +struct fwctl_rpc_xe_pcode {
> > + /** @command: The main Mailbox command */
> > + __u8 command;
> > + /** @param1: A subcommand or a parameter of the main command */
> > + __u16 param1;
> > + /** @param2: A parameter of a subcommand or a subsubcommand */
> > + __u16 param2;
> > + /** @data0: The first 32 bits of data. In general data-in as param */
> > + __u32 data0;
> > + /** @data1: The other 32 bits of data. In general data-out */
> > + __u32 data1;
> > + /** @pad: Padding the uAPI struct - Must be 0. Not sent to firmware */
> > + __u8 pad[3];
> > +};
>
> This has implicit padding? Make the padding explicit or use packed..
> > +/**
> > + * DOC: Late Binding Commands
> > + *
> > + * FWCTL info.uctx_caps: FWCTL_XE_PCODE_LATEBINDING
> > + * FWCTL rpc.scope: FWCTL_RPC_CONFIGURATION
> > + *
> > + * Command 0x5C - LATE_BINDING
> > + * Param1 0x0 - GET_CAPABILITY_STATUS
> > + * Param2 0
> > + * Data in None
> > + * Data out:
> > + *
> > + * - Bit0: ate binding for V1 Fan Tables is supported.
>
> "ate" is a typo?
yes, for 'Late'
>
> This seems fine, though very simple in what it can do. Do you imagine
> more commands down the road?
Indeed, and this first RFC was to test the waters and the overall acceptance,
reception. PCODE has more mailboxes that we might start using FWCTL more
instead of growing per platform spread sysfs files.
One last thing since I have your attention here. Was any time in the previous
fwctl discussions talked about the possibility of some extra usages for like
FW flashing or in-field-repair/tests where big data needs to filled bypassing
lockdown mode?
>
> Jason
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 3/9] drm/xe/late_bind_fw: Introducing late_bind_fw
2025-04-29 16:09 ` [RFC 3/9] drm/xe/late_bind_fw: Introducing late_bind_fw Badal Nilawar
@ 2025-05-07 21:38 ` Daniele Ceraolo Spurio
2025-06-03 13:52 ` Nilawar, Badal
0 siblings, 1 reply; 39+ messages in thread
From: Daniele Ceraolo Spurio @ 2025-05-07 21:38 UTC (permalink / raw)
To: Badal Nilawar, intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh
On 4/29/2025 9:09 AM, Badal Nilawar wrote:
> Introducing late_bind_fw to enable firmware loading for the devices,
> such as the fan controller and voltage regulator, during the driver probe.
> Typically, firmware for these devices are part of IFWI flash image but
> can be replaced at probe after OEM tuning.
This description does not fully match what's happening in the patch, as
the main thing happening is the addition of the mei component.
>
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
> ---
> drivers/gpu/drm/xe/Kconfig | 1 +
> drivers/gpu/drm/xe/Makefile | 1 +
> drivers/gpu/drm/xe/xe_device.c | 3 +
> drivers/gpu/drm/xe/xe_device_types.h | 4 +
> drivers/gpu/drm/xe/xe_late_bind_fw.c | 104 +++++++++++++++++++++
> drivers/gpu/drm/xe/xe_late_bind_fw.h | 16 ++++
> drivers/gpu/drm/xe/xe_late_bind_fw_types.h | 95 +++++++++++++++++++
> 7 files changed, 224 insertions(+)
> create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw.c
> create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw.h
> create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw_types.h
>
> diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
> index 9bce047901b2..a8cc1876a24f 100644
> --- a/drivers/gpu/drm/xe/Kconfig
> +++ b/drivers/gpu/drm/xe/Kconfig
> @@ -44,6 +44,7 @@ config DRM_XE
> select WANT_DEV_COREDUMP
> select AUXILIARY_BUS
> select HMM_MIRROR
> + select INTEL_MEI_LATE_BIND
I'm not sure this is enough to guarantee that late bind will work. This
selects the component, but the MEI_GSC child driver also needs to be
built for the component to bind into it on dGPU. We can't select
INTEL_MEI_GSC from here because that depends on the graphics driver, so
we'd go circular. For other components (PXP, HDCP, SW proxy) what we did
was notify the distros that they needed to enable the new config for the
feature to work instead of selecting it from the Kconfig.
> help
> Experimental driver for Intel Xe series GPUs
>
> diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
> index c5d6681645ed..6de291a21965 100644
> --- a/drivers/gpu/drm/xe/Makefile
> +++ b/drivers/gpu/drm/xe/Makefile
> @@ -76,6 +76,7 @@ xe-y += xe_bb.o \
> xe_hw_fence.o \
> xe_irq.o \
> xe_lrc.o \
> + xe_late_bind_fw.o \
> xe_migrate.o \
> xe_mmio.o \
> xe_mocs.o \
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 75e753e0a682..86a7b7065122 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -42,6 +42,7 @@
> #include "xe_hw_engine_group.h"
> #include "xe_hwmon.h"
> #include "xe_irq.h"
> +#include "xe_late_bind_fw.h"
> #include "xe_memirq.h"
> #include "xe_mmio.h"
> #include "xe_module.h"
> @@ -889,6 +890,8 @@ int xe_device_probe(struct xe_device *xe)
> if (err)
> return err;
>
> + xe_late_bind_init(&xe->late_bind);
> +
> err = xe_oa_init(xe);
> if (err)
> return err;
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index 495bc00ebed4..57b63cc9b8ac 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -16,6 +16,7 @@
> #include "xe_devcoredump_types.h"
> #include "xe_heci_gsc.h"
> #include "xe_lmtt_types.h"
> +#include "xe_late_bind_fw_types.h"
> #include "xe_memirq_types.h"
> #include "xe_oa_types.h"
> #include "xe_platform_types.h"
> @@ -543,6 +544,9 @@ struct xe_device {
> /** @heci_gsc: graphics security controller */
> struct xe_heci_gsc heci_gsc;
>
> + /** @late_bind: xe mei late bind interface */
> + struct xe_late_bind late_bind;
> +
> /** @oa: oa observation subsystem */
> struct xe_oa oa;
>
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> new file mode 100644
> index 000000000000..7981fc500a78
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> @@ -0,0 +1,104 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright © 2024 Intel Corporation
2025?
> + */
> +
> +#include <linux/component.h>
> +#include <linux/delay.h>
> +
> +#include <drm/drm_managed.h>
> +#include <drm/intel/i915_component.h>
> +#include <drm/intel/xe_late_bind_mei_interface.h>
> +#include <drm/drm_print.h>
> +
> +#include "xe_device.h"
> +#include "xe_late_bind_fw.h"
> +
> +static struct xe_device *
> +late_bind_to_xe(struct xe_late_bind *late_bind)
> +{
> + return container_of(late_bind, struct xe_device, late_bind);
> +}
> +
> +static int xe_late_bind_component_bind(struct device *xe_kdev,
> + struct device *mei_kdev, void *data)
> +{
> + struct xe_device *xe = kdev_to_xe_device(xe_kdev);
> + struct xe_late_bind *late_bind = &xe->late_bind;
> + struct xe_late_bind_component *component;
> +
> + component = drmm_kzalloc(&xe->drm, sizeof(*component), GFP_KERNEL);
The component is unbound and re-bound on every suspend/resume, so if you
do allocs in the bind function without freeing them in the unbind you'll
keep the old allocations around. Why do you need this to be dynamically
allocated to begin with?
> +
> + mutex_lock(&late_bind->mutex);
> + component->mei_dev = mei_kdev;
> + component->ops = data;
> + mutex_unlock(&late_bind->mutex);
This is a local variable right now, so locking around it doesn't do
anything.
> +
> + late_bind->component = component;
This assignment instead you might want to protect.
> +
> + return 0;
> +}
> +
> +static void xe_late_bind_component_unbind(struct device *xe_kdev,
> + struct device *mei_kdev, void *data)
> +{
> + struct xe_device *xe = kdev_to_xe_device(xe_kdev);
> + struct xe_late_bind *late_bind = &xe->late_bind;
> +
> + mutex_lock(&late_bind->mutex);
> + late_bind->component = NULL;
> + mutex_unlock(&late_bind->mutex);
> +}
> +
> +static const struct component_ops xe_late_bind_component_ops = {
> + .bind = xe_late_bind_component_bind,
> + .unbind = xe_late_bind_component_unbind,
> +};
> +
> +/**
> + * xe_late_bind_init() - add xe mei late binding component
> + *
> + * Return: 0 if the initialization was successful, a negative errno otherwise.
> + */
> +int xe_late_bind_init(struct xe_late_bind *late_bind)
> +{
> + struct xe_device *xe = late_bind_to_xe(late_bind);
> + int err;
> +
> + if (xe->info.platform != XE_BATTLEMAGE)
> + return 0;
> +
> + mutex_init(&late_bind->mutex);
> +
> + if (!IS_ENABLED(CONFIG_INTEL_MEI_LATE_BIND)) {
also need INTEL_MEI_GSC for BMG as mentioned above
> + drm_info(&xe->drm, "Can't init xe mei late bind missing mei component\n");
> + return -ENODEV;
> + }
> +
> + err = component_add_typed(xe->drm.dev, &xe_late_bind_component_ops,
> + I915_COMPONENT_LATE_BIND);
> + if (err < 0) {
> + drm_info(&xe->drm, "Failed to add mei late bind component (%pe)\n", ERR_PTR(err));
> + return err;
> + }
> +
> + late_bind->component_added = true;
> +
> + /* the component must be removed before unload, so can't use drmm for cleanup */
this has now changed (see 8e1ddfada453 ("drivers: base: devres: Allow to
release group on device release") ), so you can use a devm action here.
> +
> + return 0;
> +}
> +
> +/**
> + * xe_late_bind_remove() - remove the xe mei late binding component
> + */
> +void xe_late_bind_remove(struct xe_late_bind *late_bind)
> +{
> + struct xe_device *xe = late_bind_to_xe(late_bind);
> +
> + if (!late_bind->component_added)
> + return;
> +
> + component_del(xe->drm.dev, &xe_late_bind_component_ops);
> + late_bind->component_added = false;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.h b/drivers/gpu/drm/xe/xe_late_bind_fw.h
> new file mode 100644
> index 000000000000..21299de54b47
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.h
> @@ -0,0 +1,16 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2025 Intel Corporation
> + */
> +
> +#ifndef _XE_LATE_BIND_FW_H_
> +#define _XE_LATE_BIND_FW_H_
> +
> +#include <linux/types.h>
> +
> +struct xe_late_bind;
> +
> +int xe_late_bind_init(struct xe_late_bind *late_bind);
> +void xe_late_bind_remove(struct xe_late_bind *late_bind);
> +
> +#endif
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw_types.h b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
> new file mode 100644
> index 000000000000..ea11061ce556
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
> @@ -0,0 +1,95 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2025 Intel Corporation
> + */
> +
> +#ifndef _XE_MEI_LATE_BIND_TYPES_H_
> +#define _XE_MEI_LATE_BIND_TYPES_H_
> +
> +#include <linux/iosys-map.h>
> +#include <linux/mutex.h>
> +#include <linux/spinlock.h>
> +#include <linux/types.h>
> +#include <linux/workqueue.h>
> +
> +#define MAX_PAYLOAD_SIZE (1024 * 4)
> +
> +struct xe_bo;
> +struct xe_late_bind_component;
> +
> +/**
> + * xe_late_bind_fw_type - enum to determine late binding fw type
> + */
> +enum xe_late_bind_type {
> + CSC_LATE_BINDING_TYPE_FAN_CONTROL = 1,
> + CSC_LATE_BINDING_TYPE_VOLTAGE_REGULATOR
> +};
> +
> +/**
> + * Late Binding flags
> + */
> +enum csc_late_binding_flags {
> + /** Persistent across warm reset */
> + CSC_LATE_BINDING_FLAGS_IS_PERSISTENT = 0x1
> +};
> +
> +/**
> + * xe_late_bind_fw_id - enum to determine late binding fw index
> + */
> +enum xe_late_bind_fw_id {
> + FAN_CONTROL_ID = 0,
> + VOLTAGE_REGULATOR_ID,
> + MAX_ID
> +};
> +
> +/**
> + * struct xe_late_bind_fw
> + */
> +struct xe_late_bind_fw {
> + /** @late_bind_fw.valid */
> + bool valid;
> +
> + /** @late_bind_fw.id */
> + u32 id;
> +
> + /** @late_bind_fw.blob_path: late binding fw blob path */
> + char blob_path[PATH_MAX];
> +
> + /** @late_bind_fw.type */
> + u32 type;
> +
> + /** @late_bind_fw.type */
> + u32 flags;
> +
> + /** @late_bind_fw.payload: to store the late binding blob */
> + u8 payload[MAX_PAYLOAD_SIZE];
> +
> + /** @late_bind_fw.payload_size: late binding blob payload_size */
> + size_t payload_size;
> +
> + /** @late_bind_fw.work: worker to upload latebind blob */
> + struct work_struct work;
> +};
> +
> +/**
> + * struct xe_late_bind
> + */
> +struct xe_late_bind {
> + /** @late_bind.component: struct for communication with mei component */
> + struct xe_late_bind_component *component;
> +
> + /** @late_bind.component_added: whether the component has been added */
> + bool component_added;
> +
> + /** @late_bind.wq: workqueue to submit request to download late bind blob */
> + struct workqueue_struct *wq;
> +
> + /** @late_bind.mutex: protects the component binding and usage */
> + struct mutex mutex;
> +
> + /** @late_bind.late_bind_fw: late binding firmwares */
> + struct xe_late_bind_fw late_bind_fw[MAX_ID];
> +
> +};
> +
A lot of the variables/enums in this file are unused in this patch. Can
you move the additions to the patch in which they're actually used?
Daniele
> +#endif
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-05-07 19:49 ` Rodrigo Vivi
@ 2025-05-07 22:04 ` Jason Gunthorpe
2025-08-22 19:33 ` Rodrigo Vivi
2025-06-06 13:47 ` Nilawar, Badal
1 sibling, 1 reply; 39+ messages in thread
From: Jason Gunthorpe @ 2025-05-07 22:04 UTC (permalink / raw)
To: Rodrigo Vivi
Cc: Badal Nilawar, intel-xe, dri-devel, anshuman.gupta,
alexander.usyskin, gregkh, daniele.ceraolospurio
On Wed, May 07, 2025 at 03:49:15PM -0400, Rodrigo Vivi wrote:
> One last thing since I have your attention here. Was any time in the previous
> fwctl discussions talked about the possibility of some extra usages for like
> FW flashing or in-field-repair/tests where big data needs to filled bypassing
> lockdown mode?
For FW flash I do suggest you try to use devlink's firmware flashing
interface. I think it would be really great if that could become a
cross-subsystem standard in Linux.
If that isn't going to work out then yes I would say fwctl should be
considered for flashing.
Saeed's original version had a "big data" memory pinned DMA capable
interface as well. With justification it could come into the fwctl
version. I'm not against it, but mindful that it widens what is
possible by quite a bit.
But you might not need something like that just for flash. Some
internal improvement kernel side to allow streaming from large
user-space RPC buffers instead of a single alloc and copy would be
sufficient..
Jason
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 2/9] mei: late_bind: add late binding component driver
2025-04-29 16:09 ` [RFC 2/9] mei: late_bind: add late binding component driver Badal Nilawar
@ 2025-05-07 22:42 ` Daniele Ceraolo Spurio
2025-05-08 5:41 ` Usyskin, Alexander
0 siblings, 1 reply; 39+ messages in thread
From: Daniele Ceraolo Spurio @ 2025-05-07 22:42 UTC (permalink / raw)
To: Badal Nilawar, intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh
<snip>
> diff --git a/include/drm/intel/xe_late_bind_mei_interface.h b/include/drm/intel/xe_late_bind_mei_interface.h
> new file mode 100644
> index 000000000000..4005c4c6184f
> --- /dev/null
> +++ b/include/drm/intel/xe_late_bind_mei_interface.h
> @@ -0,0 +1,49 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright (c) 2025 Intel Corporation
> + */
> +
> +#ifndef _XE_LATE_BIND_MEI_INTERFACE_H_
> +#define _XE_LATE_BIND_MEI_INTERFACE_H_
> +
> +#include <linux/types.h>
> +
> +struct device;
> +struct module;
> +
> +/**
> + * struct xe_late_bind_component_ops - ops for Late Binding services.
> + * @owner: Module providing the ops
> + * @push_config: Sends a config to FW.
> + */
> +struct xe_late_bind_component_ops {
> + struct module *owner;
> +
> + /**
> + * @push_config: Sends a config to FW.
> + * @dev: device struct corresponding to the mei device
> + * @type: payload type
> + * @flags: payload flags
> + * @payload: payload buffer
> + * @payload_size: payload buffer size
> + *
> + * Return: 0 success, negative errno value on transport failure,
> + * positive status returned by FW
> + */
> + int (*push_config)(struct device *dev, u32 type, u32 flags,
> + const void *payload, size_t payload_size);
> +};
> +
> +/**
> + * struct xe_late_bind_component - Late Binding services component
> + * @mei_dev: device that provide Late Binding service.
> + * @ops: Ops implemented by Late Binding driver, used by Xe driver.
> + *
> + * Communication between Xe and MEI drivers for Late Binding services
> + */
> +struct xe_late_bind_component {
> + struct device *mei_dev;
> + const struct xe_late_bind_component_ops *ops;
> +};
Does this structure actually need to be defined here? Differently from
other components, for this component we're only passing the
xe_late_bind_component_ops via the component_bind_all call, so in the Xe
driver we should be free to use wherever type we want to store this info.
Daniele
> +
> +#endif /* _XE_LATE_BIND_MEI_INTERFACE_H_ */
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 4/9] drm/xe/xe_late_bind_fw: Initialize late binding firmware
2025-04-29 16:09 ` [RFC 4/9] drm/xe/xe_late_bind_fw: Initialize late binding firmware Badal Nilawar
@ 2025-05-07 23:11 ` Daniele Ceraolo Spurio
2025-06-03 13:57 ` Nilawar, Badal
0 siblings, 1 reply; 39+ messages in thread
From: Daniele Ceraolo Spurio @ 2025-05-07 23:11 UTC (permalink / raw)
To: Badal Nilawar, intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh
On 4/29/2025 9:09 AM, Badal Nilawar wrote:
> Search for late binding firmware binaries and populate the meta data of
> firmware structures.
>
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
> ---
> drivers/gpu/drm/xe/xe_device.c | 2 +
> drivers/gpu/drm/xe/xe_late_bind_fw.c | 101 ++++++++++++++++++++++++++-
> drivers/gpu/drm/xe/xe_late_bind_fw.h | 1 +
> 3 files changed, 101 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 86a7b7065122..d83864e7189c 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -892,6 +892,8 @@ int xe_device_probe(struct xe_device *xe)
>
> xe_late_bind_init(&xe->late_bind);
>
> + xe_late_bind_fw_init(&xe->late_bind);
Maybe call this from inside xe_late_bind_init?
> +
> err = xe_oa_init(xe);
> if (err)
> return err;
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> index 7981fc500a78..297238fd3d16 100644
> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> @@ -5,6 +5,7 @@
>
> #include <linux/component.h>
> #include <linux/delay.h>
> +#include <linux/firmware.h>
>
> #include <drm/drm_managed.h>
> #include <drm/intel/i915_component.h>
> @@ -13,13 +14,108 @@
>
> #include "xe_device.h"
> #include "xe_late_bind_fw.h"
> +#include "xe_pcode.h"
> +#include "xe_pcode_api.h"
>
> -static struct xe_device *
> -late_bind_to_xe(struct xe_late_bind *late_bind)
> +static const char * const fw_id_to_name[] = {
> + [FAN_CONTROL_ID] = "fan_control",
> + [VOLTAGE_REGULATOR_ID] = "voltage_regulator",
> + };
> +
> +static const u32 fw_id_to_type[] = {
> + [FAN_CONTROL_ID] = CSC_LATE_BINDING_TYPE_FAN_CONTROL,
> + [VOLTAGE_REGULATOR_ID] = CSC_LATE_BINDING_TYPE_VOLTAGE_REGULATOR
> + };
> +
> +static struct xe_device *late_bind_to_xe(struct xe_late_bind *late_bind)
> {
> return container_of(late_bind, struct xe_device, late_bind);
> }
>
> +static int late_bind_fw_num_fans(struct xe_late_bind *late_bind)
> +{
> + struct xe_device *xe = late_bind_to_xe(late_bind);
> + struct xe_tile *root_tile = xe_device_get_root_tile(xe);
> + u32 uval;
> +
> + if (!xe_pcode_read(root_tile,
> + PCODE_MBOX(FAN_SPEED_CONTROL, FSC_READ_NUM_FANS, 0), &uval, NULL))
> + return uval;
> + else
> + return 0;
> +}
> +
> +static int late_bind_fw_init(struct xe_late_bind *late_bind, u32 id)
> +{
> + struct xe_device *xe = late_bind_to_xe(late_bind);
> + struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> + struct xe_late_bind_fw *lb_fw;
> + const struct firmware *fw;
> + u32 num_fans;
> + int ret;
> +
> + if (!late_bind->component_added)
> + return 0;
> +
> + if (id >= MAX_ID)
> + return -EINVAL;
> +
> + lb_fw = &late_bind->late_bind_fw[id];
> +
> + lb_fw->id = id;
> + lb_fw->type = fw_id_to_type[id];
> +
> + if (lb_fw->type == CSC_LATE_BINDING_TYPE_FAN_CONTROL) {
> + num_fans = late_bind_fw_num_fans(late_bind);
> + drm_dbg(&xe->drm, "Number of Fans: %d\n", num_fans);
> + if (!num_fans)
> + return 0;
> + }
> +
> + lb_fw->flags = CSC_LATE_BINDING_FLAGS_IS_PERSISTENT;
> +
> + snprintf(lb_fw->blob_path, sizeof(lb_fw->blob_path), "xe/%s_8086_%04x_%04x_%04x.bin",
> + fw_id_to_name[id], pdev->device,
> + pdev->subsystem_vendor, pdev->subsystem_device);
> +
> + drm_dbg(&xe->drm, "Request late binding firmware %s\n", lb_fw->blob_path);
> + ret = request_firmware(&fw, lb_fw->blob_path, xe->drm.dev);
Are we expecting late binding firmwares for all possible cards to always
be available? because if not (and therefore if this fetch can fail) we
should change this to firmware_request_nowarn to avoid throwing errors
> + if (ret) {
> + drm_err(&xe->drm, "Failed to request %s\n", lb_fw->blob_path);
Same as above, if not finding the blob is a valid scenario then this
should be a drm_dbg. Maybe even reword to make it clear it's not a
failure but just the fact that there is no FW for the card.
> + lb_fw->valid = false;
> + return 0;
> + }
> +
> + if (fw->size > MAX_PAYLOAD_SIZE)
> + lb_fw->payload_size = MAX_PAYLOAD_SIZE;
Is this safe? It feels weird to send a truncated firmware for something
like voltage regulators. IMO if the firmware is too big we should throw
and error and bail out.
> + else
> + lb_fw->payload_size = fw->size;
> +
> + memcpy(lb_fw->payload, fw->data, lb_fw->payload_size);
> + release_firmware(fw);
> + lb_fw->valid = true;
> +
> + return 0;
> +}
> +
> +/**
> + * xe_mei_late_bind_fw_init() - Initialize late bind firmware
> + *
> + * Return: 0 if the initialization was successful, a negative errno otherwise.
> + */
> +int xe_late_bind_fw_init(struct xe_late_bind *late_bind)
> +{
> + int id;
> + int ret;
> +
> + for (id = 0; id < MAX_ID; id++) {
> + ret = late_bind_fw_init(late_bind, id);
> + if (ret)
> + return ret;
> + }
> + return ret;
> +}
> +
> static int xe_late_bind_component_bind(struct device *xe_kdev,
> struct device *mei_kdev, void *data)
> {
> @@ -83,7 +179,6 @@ int xe_late_bind_init(struct xe_late_bind *late_bind)
> }
>
> late_bind->component_added = true;
> -
stray blank line removal
Daniele
> /* the component must be removed before unload, so can't use drmm for cleanup */
>
> return 0;
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.h b/drivers/gpu/drm/xe/xe_late_bind_fw.h
> index 21299de54b47..e88c637b15a6 100644
> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.h
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.h
> @@ -12,5 +12,6 @@ struct xe_late_bind;
>
> int xe_late_bind_init(struct xe_late_bind *late_bind);
> void xe_late_bind_remove(struct xe_late_bind *late_bind);
> +int xe_late_bind_fw_init(struct xe_late_bind *late_bind);
>
> #endif
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 5/9] drm/xe/xe_late_bind_fw: Load late binding firmware
2025-04-29 16:09 ` [RFC 5/9] drm/xe/xe_late_bind_fw: Load " Badal Nilawar
@ 2025-05-07 23:44 ` Daniele Ceraolo Spurio
2025-06-04 5:36 ` Nilawar, Badal
0 siblings, 1 reply; 39+ messages in thread
From: Daniele Ceraolo Spurio @ 2025-05-07 23:44 UTC (permalink / raw)
To: Badal Nilawar, intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh
On 4/29/2025 9:09 AM, Badal Nilawar wrote:
> Load late binding firmware
>
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
> ---
> drivers/gpu/drm/xe/xe_device.c | 2 +
> drivers/gpu/drm/xe/xe_late_bind_fw.c | 91 +++++++++++++++++++++++++++-
> drivers/gpu/drm/xe/xe_late_bind_fw.h | 1 +
> 3 files changed, 92 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index d83864e7189c..30a416323b37 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -894,6 +894,8 @@ int xe_device_probe(struct xe_device *xe)
>
> xe_late_bind_fw_init(&xe->late_bind);
>
> + xe_late_bind_fw_load(&xe->late_bind);
> +
Why does this need to be a separated call from xe_late_bind_fw_init?
> err = xe_oa_init(xe);
> if (err)
> return err;
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> index 297238fd3d16..7d2bc959027d 100644
> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> @@ -16,6 +16,16 @@
> #include "xe_late_bind_fw.h"
> #include "xe_pcode.h"
> #include "xe_pcode_api.h"
> +#include "xe_pm.h"
> +
> +/*
> + * The component should load quite quickly in most cases, but it could take
> + * a bit. Using a very big timeout just to cover the worst case scenario
> + */
> +#define LB_INIT_TIMEOUT_MS 20000
> +
> +#define LB_FW_LOAD_RETRY_MAXCOUNT 40
> +#define LB_FW_LOAD_RETRY_PAUSE_MS 50
>
> static const char * const fw_id_to_name[] = {
> [FAN_CONTROL_ID] = "fan_control",
> @@ -45,6 +55,78 @@ static int late_bind_fw_num_fans(struct xe_late_bind *late_bind)
> return 0;
> }
>
> +static void late_bind_work(struct work_struct *work)
> +{
> + struct xe_late_bind_fw *lbfw = container_of(work, struct xe_late_bind_fw, work);
> + struct xe_late_bind *late_bind = container_of(lbfw, struct xe_late_bind,
> + late_bind_fw[lbfw->id]);
> + struct xe_device *xe = late_bind_to_xe(late_bind);
> + int retry = LB_FW_LOAD_RETRY_MAXCOUNT;
> + int ret;
> + int slept;
> +
> + if (!late_bind->component_added)
> + return;
> +
> + if (!lbfw->valid)
> + return;
> +
> + /* we can queue this before the component is bound */
> + for (slept = 0; slept < LB_INIT_TIMEOUT_MS; slept += 100) {
> + if (late_bind->component)
> + break;
> + msleep(100);
> + }
> +
> + xe_pm_runtime_get(xe);
> + mutex_lock(&late_bind->mutex);
You're locking the mutex here but you're not checking that any of the
protected data is valid (late_bind->component can be NULL when we exit
from the above for loop, or it might have changed from valid to NULL in
between).
> + drm_dbg(&xe->drm, "Load %s firmware\n", fw_id_to_name[lbfw->id]);
> +
> + do {
> + ret = late_bind->component->ops->push_config(late_bind->component->mei_dev,
> + lbfw->type, lbfw->flags,
> + lbfw->payload, lbfw->payload_size);
> + if (!ret)
> + break;
> + msleep(LB_FW_LOAD_RETRY_PAUSE_MS);
> + } while (--retry && ret == -EAGAIN);
In which scenario can this call return -EAGAIN ? As far as I can see the
mei driver only returns that on a non-blocking call, which is not what
we're doing here. Am I missing a path somewhere?
> +
> + if (ret)
> + drm_err(&xe->drm, "Load %s firmware failed with err %d\n",
> + fw_id_to_name[lbfw->id], ret);
> + else
> + drm_dbg(&xe->drm, "Load %s firmware successful\n",
> + fw_id_to_name[lbfw->id]);
> +
> + mutex_unlock(&late_bind->mutex);
> + xe_pm_runtime_put(xe);
> +}
> +
> +int xe_late_bind_fw_load(struct xe_late_bind *late_bind)
> +{
> + struct xe_device *xe = late_bind_to_xe(late_bind);
> + struct xe_late_bind_fw *lbfw;
> + int id;
> +
> + if (!late_bind->component_added)
> + return -EINVAL;
> +
> + for (id = 0; id < MAX_ID; id++) {
> + lbfw = &late_bind->late_bind_fw[id];
> + if (lbfw->valid) {
> + drm_dbg(&xe->drm, "Queue work: to load %s firmware\n",
> + fw_id_to_name[lbfw->id]);
> + queue_work(late_bind->wq, &lbfw->work);
Do we need to flush this work before suspend to make sure it has
completed before the HW goes into D3Hot? Similarly, do we need to flush
it on driver unload to make sure it's done before we de-allocate stuff?
> + }
> + }
> + return 0;
> +}
> +
> +/**
> + * late_bind_fw_init() - initialize late bind firmware
> + *
> + * Return: 0 if the initialization was successful, a negative errno otherwise.
> + */
> static int late_bind_fw_init(struct xe_late_bind *late_bind, u32 id)
> {
> struct xe_device *xe = late_bind_to_xe(late_bind);
> @@ -93,6 +175,7 @@ static int late_bind_fw_init(struct xe_late_bind *late_bind, u32 id)
>
> memcpy(lb_fw->payload, fw->data, lb_fw->payload_size);
> release_firmware(fw);
> + INIT_WORK(&lb_fw->work, late_bind_work);
> lb_fw->valid = true;
>
> return 0;
> @@ -108,12 +191,17 @@ int xe_late_bind_fw_init(struct xe_late_bind *late_bind)
> int id;
> int ret;
>
> + late_bind->wq = create_singlethread_workqueue("late-bind-ordered-wq");
Where is this WQ destroyed? Also, I think that using
alloc_ordered_workqueue would be preferred.
Daniele
> + if (!late_bind->wq)
> + return -ENOMEM;
> +
> for (id = 0; id < MAX_ID; id++) {
> ret = late_bind_fw_init(late_bind, id);
> if (ret)
> return ret;
> }
> - return ret;
> +
> + return 0;
> }
>
> static int xe_late_bind_component_bind(struct device *xe_kdev,
> @@ -179,7 +267,6 @@ int xe_late_bind_init(struct xe_late_bind *late_bind)
> }
>
> late_bind->component_added = true;
> - /* the component must be removed before unload, so can't use drmm for cleanup */
>
> return 0;
> }
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.h b/drivers/gpu/drm/xe/xe_late_bind_fw.h
> index e88c637b15a6..edd0e4c0650e 100644
> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.h
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.h
> @@ -13,5 +13,6 @@ struct xe_late_bind;
> int xe_late_bind_init(struct xe_late_bind *late_bind);
> void xe_late_bind_remove(struct xe_late_bind *late_bind);
> int xe_late_bind_fw_init(struct xe_late_bind *late_bind);
> +int xe_late_bind_fw_load(struct xe_late_bind *late_bind);
>
> #endif
^ permalink raw reply [flat|nested] 39+ messages in thread
* RE: [RFC 2/9] mei: late_bind: add late binding component driver
2025-05-07 22:42 ` Daniele Ceraolo Spurio
@ 2025-05-08 5:41 ` Usyskin, Alexander
2025-06-03 12:01 ` Nilawar, Badal
0 siblings, 1 reply; 39+ messages in thread
From: Usyskin, Alexander @ 2025-05-08 5:41 UTC (permalink / raw)
To: Ceraolo Spurio, Daniele, Nilawar, Badal,
intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Cc: Gupta, Anshuman, Vivi, Rodrigo, gregkh@linuxfoundation.org
>
> <snip>
> > diff --git a/include/drm/intel/xe_late_bind_mei_interface.h
> b/include/drm/intel/xe_late_bind_mei_interface.h
> > new file mode 100644
> > index 000000000000..4005c4c6184f
> > --- /dev/null
> > +++ b/include/drm/intel/xe_late_bind_mei_interface.h
> > @@ -0,0 +1,49 @@
> > +/* SPDX-License-Identifier: MIT */
> > +/*
> > + * Copyright (c) 2025 Intel Corporation
> > + */
> > +
> > +#ifndef _XE_LATE_BIND_MEI_INTERFACE_H_
> > +#define _XE_LATE_BIND_MEI_INTERFACE_H_
> > +
> > +#include <linux/types.h>
> > +
> > +struct device;
> > +struct module;
> > +
> > +/**
> > + * struct xe_late_bind_component_ops - ops for Late Binding services.
> > + * @owner: Module providing the ops
> > + * @push_config: Sends a config to FW.
> > + */
> > +struct xe_late_bind_component_ops {
> > + struct module *owner;
> > +
> > + /**
> > + * @push_config: Sends a config to FW.
> > + * @dev: device struct corresponding to the mei device
> > + * @type: payload type
> > + * @flags: payload flags
> > + * @payload: payload buffer
> > + * @payload_size: payload buffer size
> > + *
> > + * Return: 0 success, negative errno value on transport failure,
> > + * positive status returned by FW
> > + */
> > + int (*push_config)(struct device *dev, u32 type, u32 flags,
> > + const void *payload, size_t payload_size);
> > +};
> > +
> > +/**
> > + * struct xe_late_bind_component - Late Binding services component
> > + * @mei_dev: device that provide Late Binding service.
> > + * @ops: Ops implemented by Late Binding driver, used by Xe driver.
> > + *
> > + * Communication between Xe and MEI drivers for Late Binding services
> > + */
> > +struct xe_late_bind_component {
> > + struct device *mei_dev;
> > + const struct xe_late_bind_component_ops *ops;
> > +};
>
> Does this structure actually need to be defined here? Differently from
> other components, for this component we're only passing the
> xe_late_bind_component_ops via the component_bind_all call, so in the Xe
> driver we should be free to use wherever type we want to store this info.
>
> Daniele
>
You are right, this struct may be dropped from this header.
Badal, let's move it out into Xe code.
- -
Thanks,
Sasha
> > +
> > +#endif /* _XE_LATE_BIND_MEI_INTERFACE_H_ */
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 2/9] mei: late_bind: add late binding component driver
2025-05-08 5:41 ` Usyskin, Alexander
@ 2025-06-03 12:01 ` Nilawar, Badal
0 siblings, 0 replies; 39+ messages in thread
From: Nilawar, Badal @ 2025-06-03 12:01 UTC (permalink / raw)
To: Usyskin, Alexander, Ceraolo Spurio, Daniele,
intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Cc: Gupta, Anshuman, Vivi, Rodrigo, gregkh@linuxfoundation.org
On 08-05-2025 11:11, Usyskin, Alexander wrote:
>> <snip>
>>> diff --git a/include/drm/intel/xe_late_bind_mei_interface.h
>> b/include/drm/intel/xe_late_bind_mei_interface.h
>>> new file mode 100644
>>> index 000000000000..4005c4c6184f
>>> --- /dev/null
>>> +++ b/include/drm/intel/xe_late_bind_mei_interface.h
>>> @@ -0,0 +1,49 @@
>>> +/* SPDX-License-Identifier: MIT */
>>> +/*
>>> + * Copyright (c) 2025 Intel Corporation
>>> + */
>>> +
>>> +#ifndef _XE_LATE_BIND_MEI_INTERFACE_H_
>>> +#define _XE_LATE_BIND_MEI_INTERFACE_H_
>>> +
>>> +#include <linux/types.h>
>>> +
>>> +struct device;
>>> +struct module;
>>> +
>>> +/**
>>> + * struct xe_late_bind_component_ops - ops for Late Binding services.
>>> + * @owner: Module providing the ops
>>> + * @push_config: Sends a config to FW.
>>> + */
>>> +struct xe_late_bind_component_ops {
>>> + struct module *owner;
>>> +
>>> + /**
>>> + * @push_config: Sends a config to FW.
>>> + * @dev: device struct corresponding to the mei device
>>> + * @type: payload type
>>> + * @flags: payload flags
>>> + * @payload: payload buffer
>>> + * @payload_size: payload buffer size
>>> + *
>>> + * Return: 0 success, negative errno value on transport failure,
>>> + * positive status returned by FW
>>> + */
>>> + int (*push_config)(struct device *dev, u32 type, u32 flags,
>>> + const void *payload, size_t payload_size);
>>> +};
>>> +
>>> +/**
>>> + * struct xe_late_bind_component - Late Binding services component
>>> + * @mei_dev: device that provide Late Binding service.
>>> + * @ops: Ops implemented by Late Binding driver, used by Xe driver.
>>> + *
>>> + * Communication between Xe and MEI drivers for Late Binding services
>>> + */
>>> +struct xe_late_bind_component {
>>> + struct device *mei_dev;
>>> + const struct xe_late_bind_component_ops *ops;
>>> +};
>> Does this structure actually need to be defined here? Differently from
>> other components, for this component we're only passing the
>> xe_late_bind_component_ops via the component_bind_all call, so in the Xe
>> driver we should be free to use wherever type we want to store this info.
>>
>> Daniele
>>
> You are right, this struct may be dropped from this header.
> Badal, let's move it out into Xe code.
Sure, I will move this structure to xe code.
Thanks,
Badal
>
> - -
> Thanks,
> Sasha
>
>
>>> +
>>> +#endif /* _XE_LATE_BIND_MEI_INTERFACE_H_ */
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 3/9] drm/xe/late_bind_fw: Introducing late_bind_fw
2025-05-07 21:38 ` Daniele Ceraolo Spurio
@ 2025-06-03 13:52 ` Nilawar, Badal
0 siblings, 0 replies; 39+ messages in thread
From: Nilawar, Badal @ 2025-06-03 13:52 UTC (permalink / raw)
To: Daniele Ceraolo Spurio, intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh
[-- Attachment #1: Type: text/plain, Size: 12597 bytes --]
On 08-05-2025 03:08, Daniele Ceraolo Spurio wrote:
>
>
> On 4/29/2025 9:09 AM, Badal Nilawar wrote:
>> Introducing late_bind_fw to enable firmware loading for the devices,
>> such as the fan controller and voltage regulator, during the driver
>> probe.
>> Typically, firmware for these devices are part of IFWI flash image but
>> can be replaced at probe after OEM tuning.
>
> This description does not fully match what's happening in the patch,
> as the main thing happening is the addition of the mei component.
Sure I will update the description.
>
>>
>> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
>> ---
>> drivers/gpu/drm/xe/Kconfig | 1 +
>> drivers/gpu/drm/xe/Makefile | 1 +
>> drivers/gpu/drm/xe/xe_device.c | 3 +
>> drivers/gpu/drm/xe/xe_device_types.h | 4 +
>> drivers/gpu/drm/xe/xe_late_bind_fw.c | 104 +++++++++++++++++++++
>> drivers/gpu/drm/xe/xe_late_bind_fw.h | 16 ++++
>> drivers/gpu/drm/xe/xe_late_bind_fw_types.h | 95 +++++++++++++++++++
>> 7 files changed, 224 insertions(+)
>> create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw.c
>> create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw.h
>> create mode 100644 drivers/gpu/drm/xe/xe_late_bind_fw_types.h
>>
>> diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
>> index 9bce047901b2..a8cc1876a24f 100644
>> --- a/drivers/gpu/drm/xe/Kconfig
>> +++ b/drivers/gpu/drm/xe/Kconfig
>> @@ -44,6 +44,7 @@ config DRM_XE
>> select WANT_DEV_COREDUMP
>> select AUXILIARY_BUS
>> select HMM_MIRROR
>> + select INTEL_MEI_LATE_BIND
>
> I'm not sure this is enough to guarantee that late bind will work.
> This selects the component, but the MEI_GSC child driver also needs to
> be built for the component to bind into it on dGPU. We can't select
> INTEL_MEI_GSC from here because that depends on the graphics driver,
> so we'd go circular. For other components (PXP, HDCP, SW proxy) what
> we did was notify the distros that they needed to enable the new
> config for the feature to work instead of selecting it from the Kconfig.
I will follow the approach used for other components. Is it ok to enable
this feature for CI in a separate patch labeled "CI_only, do not review"?
>
>> help
>> Experimental driver for Intel Xe series GPUs
>> diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
>> index c5d6681645ed..6de291a21965 100644
>> --- a/drivers/gpu/drm/xe/Makefile
>> +++ b/drivers/gpu/drm/xe/Makefile
>> @@ -76,6 +76,7 @@ xe-y += xe_bb.o \
>> xe_hw_fence.o \
>> xe_irq.o \
>> xe_lrc.o \
>> + xe_late_bind_fw.o \
>> xe_migrate.o \
>> xe_mmio.o \
>> xe_mocs.o \
>> diff --git a/drivers/gpu/drm/xe/xe_device.c
>> b/drivers/gpu/drm/xe/xe_device.c
>> index 75e753e0a682..86a7b7065122 100644
>> --- a/drivers/gpu/drm/xe/xe_device.c
>> +++ b/drivers/gpu/drm/xe/xe_device.c
>> @@ -42,6 +42,7 @@
>> #include "xe_hw_engine_group.h"
>> #include "xe_hwmon.h"
>> #include "xe_irq.h"
>> +#include "xe_late_bind_fw.h"
>> #include "xe_memirq.h"
>> #include "xe_mmio.h"
>> #include "xe_module.h"
>> @@ -889,6 +890,8 @@ int xe_device_probe(struct xe_device *xe)
>> if (err)
>> return err;
>> + xe_late_bind_init(&xe->late_bind);
>> +
>> err = xe_oa_init(xe);
>> if (err)
>> return err;
>> diff --git a/drivers/gpu/drm/xe/xe_device_types.h
>> b/drivers/gpu/drm/xe/xe_device_types.h
>> index 495bc00ebed4..57b63cc9b8ac 100644
>> --- a/drivers/gpu/drm/xe/xe_device_types.h
>> +++ b/drivers/gpu/drm/xe/xe_device_types.h
>> @@ -16,6 +16,7 @@
>> #include "xe_devcoredump_types.h"
>> #include "xe_heci_gsc.h"
>> #include "xe_lmtt_types.h"
>> +#include "xe_late_bind_fw_types.h"
>> #include "xe_memirq_types.h"
>> #include "xe_oa_types.h"
>> #include "xe_platform_types.h"
>> @@ -543,6 +544,9 @@ struct xe_device {
>> /** @heci_gsc: graphics security controller */
>> struct xe_heci_gsc heci_gsc;
>> + /** @late_bind: xe mei late bind interface */
>> + struct xe_late_bind late_bind;
>> +
>> /** @oa: oa observation subsystem */
>> struct xe_oa oa;
>> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c
>> b/drivers/gpu/drm/xe/xe_late_bind_fw.c
>> new file mode 100644
>> index 000000000000..7981fc500a78
>> --- /dev/null
>> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
>> @@ -0,0 +1,104 @@
>> +// SPDX-License-Identifier: MIT
>> +/*
>> + * Copyright © 2024 Intel Corporation
>
> 2025?
Ok
>
>> + */
>> +
>> +#include <linux/component.h>
>> +#include <linux/delay.h>
>> +
>> +#include <drm/drm_managed.h>
>> +#include <drm/intel/i915_component.h>
>> +#include <drm/intel/xe_late_bind_mei_interface.h>
>> +#include <drm/drm_print.h>
>> +
>> +#include "xe_device.h"
>> +#include "xe_late_bind_fw.h"
>> +
>> +static struct xe_device *
>> +late_bind_to_xe(struct xe_late_bind *late_bind)
>> +{
>> + return container_of(late_bind, struct xe_device, late_bind);
>> +}
>> +
>> +static int xe_late_bind_component_bind(struct device *xe_kdev,
>> + struct device *mei_kdev, void *data)
>> +{
>> + struct xe_device *xe = kdev_to_xe_device(xe_kdev);
>> + struct xe_late_bind *late_bind = &xe->late_bind;
>> + struct xe_late_bind_component *component;
>> +
>> + component = drmm_kzalloc(&xe->drm, sizeof(*component), GFP_KERNEL);
>
> The component is unbound and re-bound on every suspend/resume, so if
> you do allocs in the bind function without freeing them in the unbind
> you'll keep the old allocations around. Why do you need this to be
> dynamically allocated to begin with?
Dynamic allocation is not needed, I will drop the dynamic allocation and
fix below comments.
>
>> +
>> + mutex_lock(&late_bind->mutex);
>> + component->mei_dev = mei_kdev;
>> + component->ops = data;
>> + mutex_unlock(&late_bind->mutex);
>
> This is a local variable right now, so locking around it doesn't do
> anything.
>
>> +
>> + late_bind->component = component;
>
> This assignment instead you might want to protect.
>
>> +
>> + return 0;
>> +}
>> +
>> +static void xe_late_bind_component_unbind(struct device *xe_kdev,
>> + struct device *mei_kdev, void *data)
>> +{
>> + struct xe_device *xe = kdev_to_xe_device(xe_kdev);
>> + struct xe_late_bind *late_bind = &xe->late_bind;
>> +
>> + mutex_lock(&late_bind->mutex);
>> + late_bind->component = NULL;
>> + mutex_unlock(&late_bind->mutex);
>> +}
>> +
>> +static const struct component_ops xe_late_bind_component_ops = {
>> + .bind = xe_late_bind_component_bind,
>> + .unbind = xe_late_bind_component_unbind,
>> +};
>> +
>> +/**
>> + * xe_late_bind_init() - add xe mei late binding component
>> + *
>> + * Return: 0 if the initialization was successful, a negative errno
>> otherwise.
>> + */
>> +int xe_late_bind_init(struct xe_late_bind *late_bind)
>> +{
>> + struct xe_device *xe = late_bind_to_xe(late_bind);
>> + int err;
>> +
>> + if (xe->info.platform != XE_BATTLEMAGE)
>> + return 0;
>> +
>> + mutex_init(&late_bind->mutex);
>> +
>> + if (!IS_ENABLED(CONFIG_INTEL_MEI_LATE_BIND)) {
>
> also need INTEL_MEI_GSC for BMG as mentioned above
Ok.
>
>> + drm_info(&xe->drm, "Can't init xe mei late bind missing mei
>> component\n");
>> + return -ENODEV;
>> + }
>> +
>> + err = component_add_typed(xe->drm.dev, &xe_late_bind_component_ops,
>> + I915_COMPONENT_LATE_BIND);
>> + if (err < 0) {
>> + drm_info(&xe->drm, "Failed to add mei late bind component
>> (%pe)\n", ERR_PTR(err));
>> + return err;
>> + }
>> +
>> + late_bind->component_added = true;
>> +
>> + /* the component must be removed before unload, so can't use
>> drmm for cleanup */
>
> this has now changed (see 8e1ddfada453 ("drivers: base: devres: Allow
> to release group on device release") ), so you can use a devm action
> here.
Ok.
>
>> +
>> + return 0;
>> +}
>> +
>> +/**
>> + * xe_late_bind_remove() - remove the xe mei late binding component
>> + */
>> +void xe_late_bind_remove(struct xe_late_bind *late_bind)
>> +{
>> + struct xe_device *xe = late_bind_to_xe(late_bind);
>> +
>> + if (!late_bind->component_added)
>> + return;
>> +
>> + component_del(xe->drm.dev, &xe_late_bind_component_ops);
>> + late_bind->component_added = false;
>> +}
>> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.h
>> b/drivers/gpu/drm/xe/xe_late_bind_fw.h
>> new file mode 100644
>> index 000000000000..21299de54b47
>> --- /dev/null
>> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.h
>> @@ -0,0 +1,16 @@
>> +/* SPDX-License-Identifier: MIT */
>> +/*
>> + * Copyright © 2025 Intel Corporation
>> + */
>> +
>> +#ifndef _XE_LATE_BIND_FW_H_
>> +#define _XE_LATE_BIND_FW_H_
>> +
>> +#include <linux/types.h>
>> +
>> +struct xe_late_bind;
>> +
>> +int xe_late_bind_init(struct xe_late_bind *late_bind);
>> +void xe_late_bind_remove(struct xe_late_bind *late_bind);
>> +
>> +#endif
>> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
>> b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
>> new file mode 100644
>> index 000000000000..ea11061ce556
>> --- /dev/null
>> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
>> @@ -0,0 +1,95 @@
>> +/* SPDX-License-Identifier: MIT */
>> +/*
>> + * Copyright © 2025 Intel Corporation
>> + */
>> +
>> +#ifndef _XE_MEI_LATE_BIND_TYPES_H_
>> +#define _XE_MEI_LATE_BIND_TYPES_H_
>> +
>> +#include <linux/iosys-map.h>
>> +#include <linux/mutex.h>
>> +#include <linux/spinlock.h>
>> +#include <linux/types.h>
>> +#include <linux/workqueue.h>
>> +
>> +#define MAX_PAYLOAD_SIZE (1024 * 4)
>> +
>> +struct xe_bo;
>> +struct xe_late_bind_component;
>> +
>> +/**
>> + * xe_late_bind_fw_type - enum to determine late binding fw type
>> + */
>> +enum xe_late_bind_type {
>> + CSC_LATE_BINDING_TYPE_FAN_CONTROL = 1,
>> + CSC_LATE_BINDING_TYPE_VOLTAGE_REGULATOR
>> +};
>> +
>> +/**
>> + * Late Binding flags
>> + */
>> +enum csc_late_binding_flags {
>> + /** Persistent across warm reset */
>> + CSC_LATE_BINDING_FLAGS_IS_PERSISTENT = 0x1
>> +};
>> +
>> +/**
>> + * xe_late_bind_fw_id - enum to determine late binding fw index
>> + */
>> +enum xe_late_bind_fw_id {
>> + FAN_CONTROL_ID = 0,
>> + VOLTAGE_REGULATOR_ID,
>> + MAX_ID
>> +};
>> +
>> +/**
>> + * struct xe_late_bind_fw
>> + */
>> +struct xe_late_bind_fw {
>> + /** @late_bind_fw.valid */
>> + bool valid;
>> +
>> + /** @late_bind_fw.id */
>> + u32 id;
>> +
>> + /** @late_bind_fw.blob_path: late binding fw blob path */
>> + char blob_path[PATH_MAX];
>> +
>> + /** @late_bind_fw.type */
>> + u32 type;
>> +
>> + /** @late_bind_fw.type */
>> + u32 flags;
>> +
>> + /** @late_bind_fw.payload: to store the late binding blob */
>> + u8 payload[MAX_PAYLOAD_SIZE];
>> +
>> + /** @late_bind_fw.payload_size: late binding blob payload_size */
>> + size_t payload_size;
>> +
>> + /** @late_bind_fw.work: worker to upload latebind blob */
>> + struct work_struct work;
>> +};
>> +
>> +/**
>> + * struct xe_late_bind
>> + */
>> +struct xe_late_bind {
>> + /** @late_bind.component: struct for communication with mei
>> component */
>> + struct xe_late_bind_component *component;
>> +
>> + /** @late_bind.component_added: whether the component has been
>> added */
>> + bool component_added;
>> +
>> + /** @late_bind.wq: workqueue to submit request to download late
>> bind blob */
>> + struct workqueue_struct *wq;
>> +
>> + /** @late_bind.mutex: protects the component binding and usage */
>> + struct mutex mutex;
>> +
>> + /** @late_bind.late_bind_fw: late binding firmwares */
>> + struct xe_late_bind_fw late_bind_fw[MAX_ID];
>> +
>> +};
>> +
>
> A lot of the variables/enums in this file are unused in this patch.
> Can you move the additions to the patch in which they're actually used?
Sure, I will add variables/enums to this structure incrementally in
subsequent patches.
Thanks,
Badal
>
> Daniele
>
>> +#endif
>
[-- Attachment #2: Type: text/html, Size: 23723 bytes --]
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 4/9] drm/xe/xe_late_bind_fw: Initialize late binding firmware
2025-05-07 23:11 ` Daniele Ceraolo Spurio
@ 2025-06-03 13:57 ` Nilawar, Badal
0 siblings, 0 replies; 39+ messages in thread
From: Nilawar, Badal @ 2025-06-03 13:57 UTC (permalink / raw)
To: Daniele Ceraolo Spurio, intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh
On 08-05-2025 04:41, Daniele Ceraolo Spurio wrote:
>
>
> On 4/29/2025 9:09 AM, Badal Nilawar wrote:
>> Search for late binding firmware binaries and populate the meta data of
>> firmware structures.
>>
>> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_device.c | 2 +
>> drivers/gpu/drm/xe/xe_late_bind_fw.c | 101 ++++++++++++++++++++++++++-
>> drivers/gpu/drm/xe/xe_late_bind_fw.h | 1 +
>> 3 files changed, 101 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_device.c
>> b/drivers/gpu/drm/xe/xe_device.c
>> index 86a7b7065122..d83864e7189c 100644
>> --- a/drivers/gpu/drm/xe/xe_device.c
>> +++ b/drivers/gpu/drm/xe/xe_device.c
>> @@ -892,6 +892,8 @@ int xe_device_probe(struct xe_device *xe)
>> xe_late_bind_init(&xe->late_bind);
>> + xe_late_bind_fw_init(&xe->late_bind);
>
> Maybe call this from inside xe_late_bind_init?
Sure.
>
>> +
>> err = xe_oa_init(xe);
>> if (err)
>> return err;
>> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c
>> b/drivers/gpu/drm/xe/xe_late_bind_fw.c
>> index 7981fc500a78..297238fd3d16 100644
>> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
>> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
>> @@ -5,6 +5,7 @@
>> #include <linux/component.h>
>> #include <linux/delay.h>
>> +#include <linux/firmware.h>
>> #include <drm/drm_managed.h>
>> #include <drm/intel/i915_component.h>
>> @@ -13,13 +14,108 @@
>> #include "xe_device.h"
>> #include "xe_late_bind_fw.h"
>> +#include "xe_pcode.h"
>> +#include "xe_pcode_api.h"
>> -static struct xe_device *
>> -late_bind_to_xe(struct xe_late_bind *late_bind)
>> +static const char * const fw_id_to_name[] = {
>> + [FAN_CONTROL_ID] = "fan_control",
>> + [VOLTAGE_REGULATOR_ID] = "voltage_regulator",
>> + };
>> +
>> +static const u32 fw_id_to_type[] = {
>> + [FAN_CONTROL_ID] = CSC_LATE_BINDING_TYPE_FAN_CONTROL,
>> + [VOLTAGE_REGULATOR_ID] =
>> CSC_LATE_BINDING_TYPE_VOLTAGE_REGULATOR
>> + };
>> +
>> +static struct xe_device *late_bind_to_xe(struct xe_late_bind
>> *late_bind)
>> {
>> return container_of(late_bind, struct xe_device, late_bind);
>> }
>> +static int late_bind_fw_num_fans(struct xe_late_bind *late_bind)
>> +{
>> + struct xe_device *xe = late_bind_to_xe(late_bind);
>> + struct xe_tile *root_tile = xe_device_get_root_tile(xe);
>> + u32 uval;
>> +
>> + if (!xe_pcode_read(root_tile,
>> + PCODE_MBOX(FAN_SPEED_CONTROL, FSC_READ_NUM_FANS, 0),
>> &uval, NULL))
>> + return uval;
>> + else
>> + return 0;
>> +}
>> +
>> +static int late_bind_fw_init(struct xe_late_bind *late_bind, u32 id)
>> +{
>> + struct xe_device *xe = late_bind_to_xe(late_bind);
>> + struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>> + struct xe_late_bind_fw *lb_fw;
>> + const struct firmware *fw;
>> + u32 num_fans;
>> + int ret;
>> +
>> + if (!late_bind->component_added)
>> + return 0;
>> +
>> + if (id >= MAX_ID)
>> + return -EINVAL;
>> +
>> + lb_fw = &late_bind->late_bind_fw[id];
>> +
>> + lb_fw->id = id;
>> + lb_fw->type = fw_id_to_type[id];
>> +
>> + if (lb_fw->type == CSC_LATE_BINDING_TYPE_FAN_CONTROL) {
>> + num_fans = late_bind_fw_num_fans(late_bind);
>> + drm_dbg(&xe->drm, "Number of Fans: %d\n", num_fans);
>> + if (!num_fans)
>> + return 0;
>> + }
>> +
>> + lb_fw->flags = CSC_LATE_BINDING_FLAGS_IS_PERSISTENT;
>> +
>> + snprintf(lb_fw->blob_path, sizeof(lb_fw->blob_path),
>> "xe/%s_8086_%04x_%04x_%04x.bin",
>> + fw_id_to_name[id], pdev->device,
>> + pdev->subsystem_vendor, pdev->subsystem_device);
>> +
>> + drm_dbg(&xe->drm, "Request late binding firmware %s\n",
>> lb_fw->blob_path);
>> + ret = request_firmware(&fw, lb_fw->blob_path, xe->drm.dev);
>
> Are we expecting late binding firmwares for all possible cards to
> always be available? because if not (and therefore if this fetch can
> fail) we should change this to firmware_request_nowarn to avoid
> throwing errors
No late binding firmware will not be available for all card, as
suggested firmware_request_nowarn here.
>
>
>> + if (ret) {
>> + drm_err(&xe->drm, "Failed to request %s\n", lb_fw->blob_path);
>
> Same as above, if not finding the blob is a valid scenario then this
> should be a drm_dbg. Maybe even reword to make it clear it's not a
> failure but just the fact that there is no FW for the card.
I will change drm_err to drm_dbg.
>
>> + lb_fw->valid = false;
>> + return 0;
>> + }
>> +
>> + if (fw->size > MAX_PAYLOAD_SIZE)
>> + lb_fw->payload_size = MAX_PAYLOAD_SIZE;
>
> Is this safe? It feels weird to send a truncated firmware for
> something like voltage regulators. IMO if the firmware is too big we
> should throw and error and bail out.
Sure, let's throw the error if firmware is too big.
>
>> + else
>> + lb_fw->payload_size = fw->size;
>> +
>> + memcpy(lb_fw->payload, fw->data, lb_fw->payload_size);
>> + release_firmware(fw);
>> + lb_fw->valid = true;
>> +
>> + return 0;
>> +}
>> +
>> +/**
>> + * xe_mei_late_bind_fw_init() - Initialize late bind firmware
>> + *
>> + * Return: 0 if the initialization was successful, a negative errno
>> otherwise.
>> + */
>> +int xe_late_bind_fw_init(struct xe_late_bind *late_bind)
>> +{
>> + int id;
>> + int ret;
>> +
>> + for (id = 0; id < MAX_ID; id++) {
>> + ret = late_bind_fw_init(late_bind, id);
>> + if (ret)
>> + return ret;
>> + }
>> + return ret;
>> +}
>> +
>> static int xe_late_bind_component_bind(struct device *xe_kdev,
>> struct device *mei_kdev, void *data)
>> {
>> @@ -83,7 +179,6 @@ int xe_late_bind_init(struct xe_late_bind *late_bind)
>> }
>> late_bind->component_added = true;
>> -
>
> stray blank line removal
Ok.
Thanks,
Badal
>
> Daniele
>
>> /* the component must be removed before unload, so can't use
>> drmm for cleanup */
>> return 0;
>> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.h
>> b/drivers/gpu/drm/xe/xe_late_bind_fw.h
>> index 21299de54b47..e88c637b15a6 100644
>> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.h
>> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.h
>> @@ -12,5 +12,6 @@ struct xe_late_bind;
>> int xe_late_bind_init(struct xe_late_bind *late_bind);
>> void xe_late_bind_remove(struct xe_late_bind *late_bind);
>> +int xe_late_bind_fw_init(struct xe_late_bind *late_bind);
>> #endif
>
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 5/9] drm/xe/xe_late_bind_fw: Load late binding firmware
2025-05-07 23:44 ` Daniele Ceraolo Spurio
@ 2025-06-04 5:36 ` Nilawar, Badal
0 siblings, 0 replies; 39+ messages in thread
From: Nilawar, Badal @ 2025-06-04 5:36 UTC (permalink / raw)
To: Daniele Ceraolo Spurio, intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, alexander.usyskin, gregkh
On 08-05-2025 05:14, Daniele Ceraolo Spurio wrote:
>
>
> On 4/29/2025 9:09 AM, Badal Nilawar wrote:
>> Load late binding firmware
>>
>> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_device.c | 2 +
>> drivers/gpu/drm/xe/xe_late_bind_fw.c | 91 +++++++++++++++++++++++++++-
>> drivers/gpu/drm/xe/xe_late_bind_fw.h | 1 +
>> 3 files changed, 92 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_device.c
>> b/drivers/gpu/drm/xe/xe_device.c
>> index d83864e7189c..30a416323b37 100644
>> --- a/drivers/gpu/drm/xe/xe_device.c
>> +++ b/drivers/gpu/drm/xe/xe_device.c
>> @@ -894,6 +894,8 @@ int xe_device_probe(struct xe_device *xe)
>> xe_late_bind_fw_init(&xe->late_bind);
>> + xe_late_bind_fw_load(&xe->late_bind);
>> +
>
> Why does this need to be a separated call from xe_late_bind_fw_init?
In subsequent patches xe_late_bind_fw_load called during S2idle/S3/rpm
resume.
>
>> err = xe_oa_init(xe);
>> if (err)
>> return err;
>> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c
>> b/drivers/gpu/drm/xe/xe_late_bind_fw.c
>> index 297238fd3d16..7d2bc959027d 100644
>> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
>> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
>> @@ -16,6 +16,16 @@
>> #include "xe_late_bind_fw.h"
>> #include "xe_pcode.h"
>> #include "xe_pcode_api.h"
>> +#include "xe_pm.h"
>> +
>> +/*
>> + * The component should load quite quickly in most cases, but it
>> could take
>> + * a bit. Using a very big timeout just to cover the worst case
>> scenario
>> + */
>> +#define LB_INIT_TIMEOUT_MS 20000
>> +
>> +#define LB_FW_LOAD_RETRY_MAXCOUNT 40
>> +#define LB_FW_LOAD_RETRY_PAUSE_MS 50
>> static const char * const fw_id_to_name[] = {
>> [FAN_CONTROL_ID] = "fan_control",
>> @@ -45,6 +55,78 @@ static int late_bind_fw_num_fans(struct
>> xe_late_bind *late_bind)
>> return 0;
>> }
>> +static void late_bind_work(struct work_struct *work)
>> +{
>> + struct xe_late_bind_fw *lbfw = container_of(work, struct
>> xe_late_bind_fw, work);
>> + struct xe_late_bind *late_bind = container_of(lbfw, struct
>> xe_late_bind,
>> + late_bind_fw[lbfw->id]);
>> + struct xe_device *xe = late_bind_to_xe(late_bind);
>> + int retry = LB_FW_LOAD_RETRY_MAXCOUNT;
>> + int ret;
>> + int slept;
>> +
>> + if (!late_bind->component_added)
>> + return;
>> +
>> + if (!lbfw->valid)
>> + return;
>> +
>> + /* we can queue this before the component is bound */
>> + for (slept = 0; slept < LB_INIT_TIMEOUT_MS; slept += 100) {
>> + if (late_bind->component)
>> + break;
>> + msleep(100);
>> + }
>> +
>> + xe_pm_runtime_get(xe);
>> + mutex_lock(&late_bind->mutex);
>
> You're locking the mutex here but you're not checking that any of the
> protected data is valid (late_bind->component can be NULL when we exit
> from the above for loop, or it might have changed from valid to NULL
> in between).
>
>> + drm_dbg(&xe->drm, "Load %s firmware\n", fw_id_to_name[lbfw->id]);
>> +
>> + do {
>> + ret =
>> late_bind->component->ops->push_config(late_bind->component->mei_dev,
>> + lbfw->type, lbfw->flags,
>> + lbfw->payload, lbfw->payload_size);
>> + if (!ret)
>> + break;
>> + msleep(LB_FW_LOAD_RETRY_PAUSE_MS);
>> + } while (--retry && ret == -EAGAIN);
>
> In which scenario can this call return -EAGAIN ? As far as I can see
> the mei driver only returns that on a non-blocking call, which is not
> what we're doing here. Am I missing a path somewhere?
Discussed offline with Sasha, we should be using -EBUSY here as
mei_cldev_enable() can return -EBUSY.
>
>> +
>> + if (ret)
>> + drm_err(&xe->drm, "Load %s firmware failed with err %d\n",
>> + fw_id_to_name[lbfw->id], ret);
>> + else
>> + drm_dbg(&xe->drm, "Load %s firmware successful\n",
>> + fw_id_to_name[lbfw->id]);
>> +
>> + mutex_unlock(&late_bind->mutex);
>> + xe_pm_runtime_put(xe);
>> +}
>> +
>> +int xe_late_bind_fw_load(struct xe_late_bind *late_bind)
>> +{
>> + struct xe_device *xe = late_bind_to_xe(late_bind);
>> + struct xe_late_bind_fw *lbfw;
>> + int id;
>> +
>> + if (!late_bind->component_added)
>> + return -EINVAL;
>> +
>> + for (id = 0; id < MAX_ID; id++) {
>> + lbfw = &late_bind->late_bind_fw[id];
>> + if (lbfw->valid) {
>> + drm_dbg(&xe->drm, "Queue work: to load %s firmware\n",
>> + fw_id_to_name[lbfw->id]);
>> + queue_work(late_bind->wq, &lbfw->work);
>
> Do we need to flush this work before suspend to make sure it has
> completed before the HW goes into D3Hot? Similarly, do we need to
> flush it on driver unload to make sure it's done before we de-allocate
> stuff?
Sure, I will flush this before unbind.
>
>> + }
>> + }
>> + return 0;
>> +}
>> +
>> +/**
>> + * late_bind_fw_init() - initialize late bind firmware
>> + *
>> + * Return: 0 if the initialization was successful, a negative errno
>> otherwise.
>> + */
>> static int late_bind_fw_init(struct xe_late_bind *late_bind, u32 id)
>> {
>> struct xe_device *xe = late_bind_to_xe(late_bind);
>> @@ -93,6 +175,7 @@ static int late_bind_fw_init(struct xe_late_bind
>> *late_bind, u32 id)
>> memcpy(lb_fw->payload, fw->data, lb_fw->payload_size);
>> release_firmware(fw);
>> + INIT_WORK(&lb_fw->work, late_bind_work);
>> lb_fw->valid = true;
>> return 0;
>> @@ -108,12 +191,17 @@ int xe_late_bind_fw_init(struct xe_late_bind
>> *late_bind)
>> int id;
>> int ret;
>> + late_bind->wq =
>> create_singlethread_workqueue("late-bind-ordered-wq");
>
> Where is this WQ destroyed? Also, I think that using
> alloc_ordered_workqueue would be preferred.
I missed that, will fix it.
>
> Daniele
>
>> + if (!late_bind->wq)
>> + return -ENOMEM;
>> +
>> for (id = 0; id < MAX_ID; id++) {
>> ret = late_bind_fw_init(late_bind, id);
>> if (ret)
>> return ret;
>> }
>> - return ret;
>> +
>> + return 0;
>> }
>> static int xe_late_bind_component_bind(struct device *xe_kdev,
>> @@ -179,7 +267,6 @@ int xe_late_bind_init(struct xe_late_bind
>> *late_bind)
>> }
>> late_bind->component_added = true;
>> - /* the component must be removed before unload, so can't use
>> drmm for cleanup */
>> return 0;
>> }
>> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.h
>> b/drivers/gpu/drm/xe/xe_late_bind_fw.h
>> index e88c637b15a6..edd0e4c0650e 100644
>> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.h
>> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.h
>> @@ -13,5 +13,6 @@ struct xe_late_bind;
>> int xe_late_bind_init(struct xe_late_bind *late_bind);
>> void xe_late_bind_remove(struct xe_late_bind *late_bind);
>> int xe_late_bind_fw_init(struct xe_late_bind *late_bind);
>> +int xe_late_bind_fw_load(struct xe_late_bind *late_bind);
>> #endif
>
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-05-06 18:13 ` Jason Gunthorpe
2025-05-07 19:49 ` Rodrigo Vivi
@ 2025-06-06 13:45 ` Nilawar, Badal
2025-06-30 22:01 ` Rodrigo Vivi
2 siblings, 0 replies; 39+ messages in thread
From: Nilawar, Badal @ 2025-06-06 13:45 UTC (permalink / raw)
To: Jason Gunthorpe
Cc: intel-xe, dri-devel, anshuman.gupta, rodrigo.vivi,
alexander.usyskin, gregkh, daniele.ceraolospurio
[-- Attachment #1: Type: text/plain, Size: 876 bytes --]
On 06-05-2025 23:43, Jason Gunthorpe wrote:
>> +/**
>> + * struct fwctl_rpc_xe_pcode - FWCTL Remote Procedure Calls for Xe PCODE
>> + */
>> +struct fwctl_rpc_xe_pcode {
>> + /** @command: The main Mailbox command */
>> + __u8 command;
>> + /** @param1: A subcommand or a parameter of the main command */
>> + __u16 param1;
>> + /** @param2: A parameter of a subcommand or a subsubcommand */
>> + __u16 param2;
>> + /** @data0: The first 32 bits of data. In general data-in as param */
>> + __u32 data0;
>> + /** @data1: The other 32 bits of data. In general data-out */
>> + __u32 data1;
>> + /** @pad: Padding the uAPI struct - Must be 0. Not sent to firmware */
>> + __u8 pad[3];
>> +};
> This has implicit padding? Make the padding explicit or use packed..
Thanks for pointing this out, was miss at my end, will go with explicit
padding in next version
Regards,
Badal
[-- Attachment #2: Type: text/html, Size: 1421 bytes --]
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-05-07 19:49 ` Rodrigo Vivi
2025-05-07 22:04 ` Jason Gunthorpe
@ 2025-06-06 13:47 ` Nilawar, Badal
1 sibling, 0 replies; 39+ messages in thread
From: Nilawar, Badal @ 2025-06-06 13:47 UTC (permalink / raw)
To: Rodrigo Vivi, Jason Gunthorpe
Cc: intel-xe, dri-devel, anshuman.gupta, alexander.usyskin, gregkh,
daniele.ceraolospurio
[-- Attachment #1: Type: text/plain, Size: 729 bytes --]
On 08-05-2025 01:19, Rodrigo Vivi wrote:
>>> +static int xe_pcode_fwctl_uctx_open(struct fwctl_uctx *uctx)
>>> +{
>>> + struct xe_pcode_fwctl_dev *fwctl_dev =
>>> + container_of(uctx->fwctl, struct xe_pcode_fwctl_dev, fwctl);
>>> + struct xe_device *xe = fwctl_dev->xe;
>>> +
>>> + xe_pm_runtime_get(xe);
>> Shouldn't this be in the RPC function? Why keep the device awake as
>> long as a the FD is open?
> In general I prefer the runtime on the outer bounds to avoid funny deadlock
> cases. But right, in this case here it could be inside the xe_pcode calls
> itself, that is when the mmio/mailboxes accesses will really happen.
This I will handle in separate patch. For now will do runtime on rpc
function.
Regards,
Badal
[-- Attachment #2: Type: text/html, Size: 1489 bytes --]
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-05-06 18:13 ` Jason Gunthorpe
2025-05-07 19:49 ` Rodrigo Vivi
2025-06-06 13:45 ` Nilawar, Badal
@ 2025-06-30 22:01 ` Rodrigo Vivi
2025-06-30 22:45 ` Jason Gunthorpe
2 siblings, 1 reply; 39+ messages in thread
From: Rodrigo Vivi @ 2025-06-30 22:01 UTC (permalink / raw)
To: Jason Gunthorpe
Cc: Badal Nilawar, intel-xe, dri-devel, anshuman.gupta,
alexander.usyskin, gregkh, daniele.ceraolospurio
On Tue, May 06, 2025 at 03:13:53PM -0300, Jason Gunthorpe wrote:
> On Tue, Apr 29, 2025 at 09:39:56PM +0530, Badal Nilawar wrote:
>
> > diff --git a/drivers/gpu/drm/xe/xe_pcode_fwctl.c b/drivers/gpu/drm/xe/xe_pcode_fwctl.c
> > new file mode 100644
>
> I really do prefer it if you can find a way to put the code in
> drivers/fwctl instead of in DRM subsystem.
Hi Jason,
Bringing this point back...
Is this a hard request from your side?
This fwctl here is mostly the front-end mirroring FW, but still using directly
the xe interfaces there for the communication with the pcode FW.
Also, there are changes coming to pcode interfaces there to align better with
i915 and xe code sharing. I believe it would be easier and beneficial to have
this under DRM subsystem near xe and pcode code.
But, please, let us know your thoughts here.
Thanks,
Rodrigo.
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-06-30 22:01 ` Rodrigo Vivi
@ 2025-06-30 22:45 ` Jason Gunthorpe
0 siblings, 0 replies; 39+ messages in thread
From: Jason Gunthorpe @ 2025-06-30 22:45 UTC (permalink / raw)
To: Rodrigo Vivi
Cc: Badal Nilawar, intel-xe, dri-devel, anshuman.gupta,
alexander.usyskin, gregkh, daniele.ceraolospurio
On Mon, Jun 30, 2025 at 06:01:13PM -0400, Rodrigo Vivi wrote:
> On Tue, May 06, 2025 at 03:13:53PM -0300, Jason Gunthorpe wrote:
> > On Tue, Apr 29, 2025 at 09:39:56PM +0530, Badal Nilawar wrote:
> >
> > > diff --git a/drivers/gpu/drm/xe/xe_pcode_fwctl.c b/drivers/gpu/drm/xe/xe_pcode_fwctl.c
> > > new file mode 100644
> >
> > I really do prefer it if you can find a way to put the code in
> > drivers/fwctl instead of in DRM subsystem.
>
> Hi Jason,
>
> Bringing this point back...
>
> Is this a hard request from your side?
No, cxl didn't do it..
But also we've seen this go bad historically to just randomly spread
code all over the tree because it is easier that way.
Jason
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-05-07 22:04 ` Jason Gunthorpe
@ 2025-08-22 19:33 ` Rodrigo Vivi
2025-08-28 12:48 ` Jason Gunthorpe
0 siblings, 1 reply; 39+ messages in thread
From: Rodrigo Vivi @ 2025-08-22 19:33 UTC (permalink / raw)
To: Jason Gunthorpe
Cc: Badal Nilawar, intel-xe, dri-devel, anshuman.gupta,
alexander.usyskin, gregkh, daniele.ceraolospurio
On Wed, May 07, 2025 at 07:04:44PM -0300, Jason Gunthorpe wrote:
> On Wed, May 07, 2025 at 03:49:15PM -0400, Rodrigo Vivi wrote:
>
> > One last thing since I have your attention here. Was any time in the previous
> > fwctl discussions talked about the possibility of some extra usages for like
> > FW flashing or in-field-repair/tests where big data needs to filled bypassing
> > lockdown mode?
>
> For FW flash I do suggest you try to use devlink's firmware flashing
> interface. I think it would be really great if that could become a
> cross-subsystem standard in Linux.
I took a look there and I do believe devlink works very well for fw flashing and
it is also already prepared for basically any pci device without any change.
Thanks for the suggestion.
But now I have to ask you about 2 other use cases that are not under the
umbrella of: configuration and provisioning, but perhaps at least partially
under the umbrella of debug:
- In-field-test-and-repair
- Error injection
Can fwctl be used for these use cases, supposing that it FW mailboxes
commands and responses directly with no modification to the fwctl
infra itself?
in-field-test I'd say it is debug, the 'repair' portion is the most
questionable one. But error-injection I believe it is entirely
debug.
What's your thoughts and guidance here?
Thanks,
Rodrigo.
>
> If that isn't going to work out then yes I would say fwctl should be
> considered for flashing.
>
> Saeed's original version had a "big data" memory pinned DMA capable
> interface as well. With justification it could come into the fwctl
> version. I'm not against it, but mindful that it widens what is
> possible by quite a bit.
>
> But you might not need something like that just for flash. Some
> internal improvement kernel side to allow streaming from large
> user-space RPC buffers instead of a single alloc and copy would be
> sufficient..
>
> Jason
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl
2025-08-22 19:33 ` Rodrigo Vivi
@ 2025-08-28 12:48 ` Jason Gunthorpe
0 siblings, 0 replies; 39+ messages in thread
From: Jason Gunthorpe @ 2025-08-28 12:48 UTC (permalink / raw)
To: Rodrigo Vivi
Cc: Badal Nilawar, intel-xe, dri-devel, anshuman.gupta,
alexander.usyskin, gregkh, daniele.ceraolospurio
On Fri, Aug 22, 2025 at 03:33:17PM -0400, Rodrigo Vivi wrote:
> On Wed, May 07, 2025 at 07:04:44PM -0300, Jason Gunthorpe wrote:
> > On Wed, May 07, 2025 at 03:49:15PM -0400, Rodrigo Vivi wrote:
> >
> > > One last thing since I have your attention here. Was any time in the previous
> > > fwctl discussions talked about the possibility of some extra usages for like
> > > FW flashing or in-field-repair/tests where big data needs to filled bypassing
> > > lockdown mode?
> >
> > For FW flash I do suggest you try to use devlink's firmware flashing
> > interface. I think it would be really great if that could become a
> > cross-subsystem standard in Linux.
>
> I took a look there and I do believe devlink works very well for fw flashing and
> it is also already prepared for basically any pci device without any change.
> Thanks for the suggestion.
Jiri also has generic plugin for fwupd:
https://github.com/fwupd/fwupd/pull/9053
So if you do the kernel side you get a whole ecosystem now..
> But now I have to ask you about 2 other use cases that are not under the
> umbrella of: configuration and provisioning, but perhaps at least partially
> under the umbrella of debug:
>
> - In-field-test-and-repair
> - Error injection
>
> Can fwctl be used for these use cases, supposing that it FW mailboxes
> commands and responses directly with no modification to the fwctl
> infra itself?
These sound like what fwctl was intended for, yes.
Jason
^ permalink raw reply [flat|nested] 39+ messages in thread
end of thread, other threads:[~2025-08-28 12:48 UTC | newest]
Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-29 16:09 [RFC 0/9] Introducing firmware late binding Badal Nilawar
2025-04-29 16:09 ` [RFC 1/9] mei: bus: add mei_cldev_mtu interface Badal Nilawar
2025-04-29 16:09 ` [RFC 2/9] mei: late_bind: add late binding component driver Badal Nilawar
2025-05-07 22:42 ` Daniele Ceraolo Spurio
2025-05-08 5:41 ` Usyskin, Alexander
2025-06-03 12:01 ` Nilawar, Badal
2025-04-29 16:09 ` [RFC 3/9] drm/xe/late_bind_fw: Introducing late_bind_fw Badal Nilawar
2025-05-07 21:38 ` Daniele Ceraolo Spurio
2025-06-03 13:52 ` Nilawar, Badal
2025-04-29 16:09 ` [RFC 4/9] drm/xe/xe_late_bind_fw: Initialize late binding firmware Badal Nilawar
2025-05-07 23:11 ` Daniele Ceraolo Spurio
2025-06-03 13:57 ` Nilawar, Badal
2025-04-29 16:09 ` [RFC 5/9] drm/xe/xe_late_bind_fw: Load " Badal Nilawar
2025-05-07 23:44 ` Daniele Ceraolo Spurio
2025-06-04 5:36 ` Nilawar, Badal
2025-04-29 16:09 ` [RFC 6/9] drm/xe/xe_late_bind_fw: Reload late binding fw in rpm resume Badal Nilawar
2025-04-29 16:09 ` [RFC 7/9] drm/xe/xe_late_bind_fw: Reload late binding fw in S2Idle/S3 resume Badal Nilawar
2025-04-29 16:09 ` [RFC 8/9] drm/xe/xe_late_bind_fw: Introduce debug fs node to disable late binding Badal Nilawar
2025-04-29 16:09 ` [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl Badal Nilawar
2025-05-01 15:44 ` Rodrigo Vivi
2025-05-06 18:13 ` Jason Gunthorpe
2025-05-07 19:49 ` Rodrigo Vivi
2025-05-07 22:04 ` Jason Gunthorpe
2025-08-22 19:33 ` Rodrigo Vivi
2025-08-28 12:48 ` Jason Gunthorpe
2025-06-06 13:47 ` Nilawar, Badal
2025-06-06 13:45 ` Nilawar, Badal
2025-06-30 22:01 ` Rodrigo Vivi
2025-06-30 22:45 ` Jason Gunthorpe
2025-04-29 16:13 ` ✓ CI.Patch_applied: success for Introducing firmware late binding (rev2) Patchwork
2025-04-29 16:14 ` ✗ CI.checkpatch: warning " Patchwork
2025-04-29 16:15 ` ✓ CI.KUnit: success " Patchwork
2025-04-29 16:23 ` ✓ CI.Build: " Patchwork
2025-04-29 16:26 ` ✗ CI.Hooks: failure " Patchwork
2025-04-29 16:27 ` ✗ CI.checksparse: warning " Patchwork
2025-04-29 19:02 ` ✗ Xe.CI.Full: failure " Patchwork
2025-04-30 11:47 ` [RFC 0/9] Introducing firmware late binding Jani Nikula
2025-05-06 7:53 ` ✗ Xe.CI.BAT: failure for Introducing firmware late binding (rev2) Patchwork
-- strict thread matches above, loose matches on Subject: below --
2025-04-29 7:37 [RFC 0/9] Introducing firmware late binding Badal Nilawar
2025-04-29 7:38 ` [RFC 9/9] {fwctl,drm}/xe/pcode: Introduce xe_pcode_fwctl Badal Nilawar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).