usb: Add base USB MCTP definitions

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>
pull/1188/head
Jeremy Kerr 2025-02-21 08:56:57 +08:00 committed by Jakub Kicinski
parent e6a532185d
commit dcc35baae7
3 changed files with 32 additions and 0 deletions

View File

@ -13896,6 +13896,7 @@ L: netdev@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/networking/mctp.rst F: Documentation/networking/mctp.rst
F: drivers/net/mctp/ F: drivers/net/mctp/
F: include/linux/usb/mctp-usb.h
F: include/net/mctp.h F: include/net/mctp.h
F: include/net/mctpdevice.h F: include/net/mctpdevice.h
F: include/net/netns/mctp.h F: include/net/netns/mctp.h

View File

@ -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 */

View File

@ -330,6 +330,7 @@ struct usb_device_descriptor {
#define USB_CLASS_AUDIO_VIDEO 0x10 #define USB_CLASS_AUDIO_VIDEO 0x10
#define USB_CLASS_BILLBOARD 0x11 #define USB_CLASS_BILLBOARD 0x11
#define USB_CLASS_USB_TYPE_C_BRIDGE 0x12 #define USB_CLASS_USB_TYPE_C_BRIDGE 0x12
#define USB_CLASS_MCTP 0x14
#define USB_CLASS_MISC 0xef #define USB_CLASS_MISC 0xef
#define USB_CLASS_APP_SPEC 0xfe #define USB_CLASS_APP_SPEC 0xfe
#define USB_SUBCLASS_DFU 0x01 #define USB_SUBCLASS_DFU 0x01