]> www.infradead.org Git - users/hch/misc.git/commitdiff
usb: Add base USB MCTP definitions
authorJeremy Kerr <jk@codeconstruct.com.au>
Fri, 21 Feb 2025 00:56:57 +0000 (08:56 +0800)
committerJakub Kicinski <kuba@kernel.org>
Sat, 22 Feb 2025 00:45:21 +0000 (16:45 -0800)
Upcoming changes will add a USB host (and later gadget) driver for the
MCTP-over-USB protocol. Add a header that provides common definitions
for protocol support: the packet header format and a few framing
definitions. Add a define for the MCTP class code, as per
https://usb.org/defined-class-codes.

Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/20250221-dev-mctp-usb-v3-1-3353030fe9cc@codeconstruct.com.au
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
MAINTAINERS
include/linux/usb/mctp-usb.h [new file with mode: 0644]
include/uapi/linux/usb/ch9.h

index b0cd54818bb31c828a653a50bcdb872f60034acb..8019d5a975468e7bfaef5822d9682cb4512eabdc 100644 (file)
@@ -13896,6 +13896,7 @@ L:      netdev@vger.kernel.org
 S:     Maintained
 F:     Documentation/networking/mctp.rst
 F:     drivers/net/mctp/
+F:     include/linux/usb/mctp-usb.h
 F:     include/net/mctp.h
 F:     include/net/mctpdevice.h
 F:     include/net/netns/mctp.h
diff --git a/include/linux/usb/mctp-usb.h b/include/linux/usb/mctp-usb.h
new file mode 100644 (file)
index 0000000..a2f6f1e
--- /dev/null
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * mctp-usb.h - MCTP USB transport binding: common definitions,
+ * based on DMTF0283 specification:
+ * https://www.dmtf.org/sites/default/files/standards/documents/DSP0283_1.0.1.pdf
+ *
+ * These are protocol-level definitions, that may be shared between host
+ * and gadget drivers.
+ *
+ * Copyright (C) 2024-2025 Code Construct Pty Ltd
+ */
+
+#ifndef __LINUX_USB_MCTP_USB_H
+#define __LINUX_USB_MCTP_USB_H
+
+#include <linux/types.h>
+
+struct mctp_usb_hdr {
+       __be16  id;
+       u8      rsvd;
+       u8      len;
+} __packed;
+
+#define MCTP_USB_XFER_SIZE     512
+#define MCTP_USB_BTU           68
+#define MCTP_USB_MTU_MIN       MCTP_USB_BTU
+#define MCTP_USB_MTU_MAX       (U8_MAX - sizeof(struct mctp_usb_hdr))
+#define MCTP_USB_DMTF_ID       0x1ab4
+
+#endif /*  __LINUX_USB_MCTP_USB_H */
index 91f0f7e214a5a57c8bee3f44c4dbf7b175843d8c..052290652046591fba46f1f0cb5cf77fd965f555 100644 (file)
@@ -330,6 +330,7 @@ struct usb_device_descriptor {
 #define USB_CLASS_AUDIO_VIDEO          0x10
 #define USB_CLASS_BILLBOARD            0x11
 #define USB_CLASS_USB_TYPE_C_BRIDGE    0x12
+#define USB_CLASS_MCTP                 0x14
 #define USB_CLASS_MISC                 0xef
 #define USB_CLASS_APP_SPEC             0xfe
 #define USB_SUBCLASS_DFU                       0x01