From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 547D24591E; Fri, 6 Sep 2024 14:15:44 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0E76A42F43; Fri, 6 Sep 2024 14:14:45 +0200 (CEST) Received: from lf-2-36.ptr.blmpb.com (lf-2-36.ptr.blmpb.com [101.36.218.36]) by mails.dpdk.org (Postfix) with ESMTP id D6DFC42F1D for ; Fri, 6 Sep 2024 14:14:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=feishu2403070942; d=yunsilicon.com; t=1725624871; h=from:subject: mime-version:from:date:message-id:subject:to:cc:reply-to:content-type: mime-version:in-reply-to:message-id; bh=EoEBLGDNGG8JW52BqI0LVktBTXMMYJUnDa+r8jIAVo8=; b=Cz/JF8rINppUO51bvoJhOzyU0ReHzycWk2cwKYMR3nPf0STx/zJl2z5L/2Ew+6AanpVIjH RYe1yGBC3zhtjcFF0ucshErUmJahp7GTBcuLCppfN6i0eyZxxavu7kx96p/vic+S8ouL10 +elih+VUXTE5M83+P3Ull8k2fGnxEzwV0rK95YXc2jbSX8XWuKFzm9baCuXq00Mcn/e3Ii 5EJb1nfTnYkOrSvN3bjdj6ZHaKDoH9ghvtT+9DuQMx7RUy43fdVZvgYABs+setx/FmxNjO LipnLlq7UJITTQ9o75ufc+HJAIIMibRBGNrEFSeYW+OSBSQRBD+o3zMnYu4swg== Mime-Version: 1.0 X-Lms-Return-Path: From: "WanRenyong" Subject: [PATCH 11/19] net/xsc: add mailbox and structure Received: from ubuntu-liun.yunsilicon.com ([58.34.192.114]) by smtp.feishu.cn with ESMTPS; Fri, 06 Sep 2024 20:14:30 +0800 Cc: , , "WanRenyong" Message-Id: <20240906121405.3404357-12-wanry@yunsilicon.com> X-Mailer: git-send-email 2.25.1 Content-Transfer-Encoding: 7bit To: Date: Fri, 6 Sep 2024 20:13:57 +0800 X-Original-From: WanRenyong Content-Type: text/plain; charset=UTF-8 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Mailbox is a communication channel between driver and firmware. Signed-off-by: WanRenyong --- drivers/net/xsc/xsc_ctrl.c | 8 ++++++++ drivers/net/xsc/xsc_ctrl.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/drivers/net/xsc/xsc_ctrl.c b/drivers/net/xsc/xsc_ctrl.c index 3e37bd914e..4d5e4b4d07 100644 --- a/drivers/net/xsc/xsc_ctrl.c +++ b/drivers/net/xsc/xsc_ctrl.c @@ -54,3 +54,11 @@ xsc_ioctl(struct xsc_dev *dev, int cmd, int opcode, rte_free(hdr); return ret; } + +int +xsc_mailbox_exec(struct xsc_dev *dev, void *data_in, + int in_len, void *data_out, int out_len) +{ + /* ignore opcode in hdr->attr when cmd = XSC_IOCTL_CMDQ_RAW */ + return xsc_ioctl(dev, XSC_IOCTL_CMDQ_RAW, 0, data_in, in_len, data_out, out_len); +} diff --git a/drivers/net/xsc/xsc_ctrl.h b/drivers/net/xsc/xsc_ctrl.h index d343e1b1a7..a7259c5fcb 100644 --- a/drivers/net/xsc/xsc_ctrl.h +++ b/drivers/net/xsc/xsc_ctrl.h @@ -40,6 +40,35 @@ struct xsc_ioctl_hdr { struct xsc_ioctl_attr attr; }; +/* ioctl */ +struct xsc_inbox_hdr { + __be16 opcode; + uint8_t rsvd[4]; + __be16 opmod; +}; + +struct xsc_outbox_hdr { + uint8_t status; + uint8_t rsvd[3]; + __be32 syndrome; +}; + +/* ioctl mbox */ +struct xsc_ioctl_mbox_in { + struct xsc_inbox_hdr hdr; + __be16 len; + __be16 rsvd; + uint8_t data[]; +}; + +struct xsc_ioctl_mbox_out { + struct xsc_outbox_hdr hdr; + __be32 error; + __be16 len; + __be16 rsvd; + uint8_t data[]; +}; + struct xsc_ioctl_data_tl { uint16_t table; uint16_t opmod; @@ -82,5 +111,7 @@ struct xsc_ioctl_get_hwinfo { int xsc_ioctl(struct xsc_dev *dev, int cmd, int opcode, void *data_in, int in_len, void *data_out, int out_len); +int xsc_mailbox_exec(struct xsc_dev *dev, void *data_in, + int in_len, void *data_out, int out_len); #endif /* _XSC_CTRL_H_ */ -- 2.25.1