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

dpmac-cmd.h (1988B)


      1/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
      2/* Copyright 2013-2016 Freescale Semiconductor Inc.
      3 * Copyright 2019 NXP
      4 */
      5#ifndef _FSL_DPMAC_CMD_H
      6#define _FSL_DPMAC_CMD_H
      7
      8/* DPMAC Version */
      9#define DPMAC_VER_MAJOR				4
     10#define DPMAC_VER_MINOR				4
     11#define DPMAC_CMD_BASE_VERSION			1
     12#define DPMAC_CMD_2ND_VERSION			2
     13#define DPMAC_CMD_ID_OFFSET			4
     14
     15#define DPMAC_CMD(id)	(((id) << DPMAC_CMD_ID_OFFSET) | DPMAC_CMD_BASE_VERSION)
     16#define DPMAC_CMD_V2(id) (((id) << DPMAC_CMD_ID_OFFSET) | DPMAC_CMD_2ND_VERSION)
     17
     18/* Command IDs */
     19#define DPMAC_CMDID_CLOSE		DPMAC_CMD(0x800)
     20#define DPMAC_CMDID_OPEN		DPMAC_CMD(0x80c)
     21
     22#define DPMAC_CMDID_GET_API_VERSION	DPMAC_CMD(0xa0c)
     23
     24#define DPMAC_CMDID_GET_ATTR		DPMAC_CMD(0x004)
     25#define DPMAC_CMDID_SET_LINK_STATE	DPMAC_CMD_V2(0x0c3)
     26
     27#define DPMAC_CMDID_GET_COUNTER		DPMAC_CMD(0x0c4)
     28
     29#define DPMAC_CMDID_SET_PROTOCOL	DPMAC_CMD(0x0c7)
     30
     31/* Macros for accessing command fields smaller than 1byte */
     32#define DPMAC_MASK(field)        \
     33	GENMASK(DPMAC_##field##_SHIFT + DPMAC_##field##_SIZE - 1, \
     34		DPMAC_##field##_SHIFT)
     35
     36#define dpmac_set_field(var, field, val) \
     37	((var) |= (((val) << DPMAC_##field##_SHIFT) & DPMAC_MASK(field)))
     38#define dpmac_get_field(var, field)      \
     39	(((var) & DPMAC_MASK(field)) >> DPMAC_##field##_SHIFT)
     40
     41struct dpmac_cmd_open {
     42	__le32 dpmac_id;
     43};
     44
     45struct dpmac_rsp_get_attributes {
     46	u8 eth_if;
     47	u8 link_type;
     48	__le16 id;
     49	__le32 max_rate;
     50};
     51
     52#define DPMAC_STATE_SIZE	1
     53#define DPMAC_STATE_SHIFT	0
     54#define DPMAC_STATE_VALID_SIZE	1
     55#define DPMAC_STATE_VALID_SHIFT	1
     56
     57struct dpmac_cmd_set_link_state {
     58	__le64 options;
     59	__le32 rate;
     60	__le32 pad0;
     61	/* from lsb: up:1, state_valid:1 */
     62	u8 state;
     63	u8 pad1[7];
     64	__le64 supported;
     65	__le64 advertising;
     66};
     67
     68struct dpmac_cmd_get_counter {
     69	u8 id;
     70};
     71
     72struct dpmac_rsp_get_counter {
     73	__le64 pad;
     74	__le64 counter;
     75};
     76
     77struct dpmac_rsp_get_api_version {
     78	__le16 major;
     79	__le16 minor;
     80};
     81
     82struct dpmac_cmd_set_protocol {
     83	u8 eth_if;
     84};
     85#endif /* _FSL_DPMAC_CMD_H */