Skip to content

Commit

Permalink
usb: Add base USB MCTP definitions
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jeremy Kerr authored and Jakub Kicinski committed Feb 22, 2025
1 parent e6a5321 commit dcc35ba
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
30 changes: 30 additions & 0 deletions include/linux/usb/mctp-usb.h
Original file line number Diff line number Diff line change
@@ -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 */
1 change: 1 addition & 0 deletions include/uapi/linux/usb/ch9.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit dcc35ba

Please sign in to comment.