cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

if_usb.h (1725B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 *  Copyright (C) 2008, cozybit Inc.
      4 *  Copyright (C) 2003-2006, Marvell International Ltd.
      5 */
      6#include <linux/wait.h>
      7#include <linux/timer.h>
      8
      9struct lbtf_private;
     10
     11/**
     12  * This file contains definition for USB interface.
     13  */
     14#define CMD_TYPE_REQUEST		0xF00DFACE
     15#define CMD_TYPE_DATA			0xBEADC0DE
     16#define CMD_TYPE_INDICATION		0xBEEFFACE
     17
     18#define BOOT_CMD_FW_BY_USB		0x01
     19#define BOOT_CMD_FW_IN_EEPROM		0x02
     20#define BOOT_CMD_UPDATE_BOOT2		0x03
     21#define BOOT_CMD_UPDATE_FW		0x04
     22#define BOOT_CMD_MAGIC_NUMBER		0x4C56524D   /* LVRM */
     23
     24struct bootcmd {
     25	__le32	magic;
     26	uint8_t	cmd;
     27	uint8_t	pad[11];
     28};
     29
     30#define BOOT_CMD_RESP_OK		0x0001
     31#define BOOT_CMD_RESP_FAIL		0x0000
     32
     33struct bootcmdresp {
     34	__le32	magic;
     35	uint8_t	cmd;
     36	uint8_t	result;
     37	uint8_t	pad[2];
     38};
     39
     40/** USB card description structure*/
     41struct if_usb_card {
     42	struct usb_device *udev;
     43	struct urb *rx_urb, *tx_urb, *cmd_urb;
     44	struct lbtf_private *priv;
     45
     46	struct sk_buff *rx_skb;
     47
     48	uint8_t ep_in;
     49	uint8_t ep_out;
     50
     51	int8_t bootcmdresp;
     52
     53	int ep_in_size;
     54
     55	void *ep_out_buf;
     56	int ep_out_size;
     57
     58	const struct firmware *fw;
     59	struct timer_list fw_timeout;
     60	wait_queue_head_t fw_wq;
     61	uint32_t fwseqnum;
     62	uint32_t totalbytes;
     63	uint32_t fwlastblksent;
     64	uint8_t CRC_OK;
     65	uint8_t fwdnldover;
     66	uint8_t fwfinalblk;
     67
     68	__le16 boot2_version;
     69};
     70
     71/** fwheader */
     72struct fwheader {
     73	__le32 dnldcmd;
     74	__le32 baseaddr;
     75	__le32 datalength;
     76	__le32 CRC;
     77};
     78
     79#define FW_MAX_DATA_BLK_SIZE	600
     80/** FWData */
     81struct fwdata {
     82	struct fwheader hdr;
     83	__le32 seqnum;
     84	uint8_t data[];
     85};
     86
     87/** fwsyncheader */
     88struct fwsyncheader {
     89	__le32 cmd;
     90	__le32 seqnum;
     91};
     92
     93#define FW_HAS_DATA_TO_RECV		0x00000001
     94#define FW_HAS_LAST_BLOCK		0x00000004