brintos

brintos / linux-shallow public Read only

0
0
Text · 5.1 KiB · 2c661a3 Raw
162 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2/*3 * Microsemi Switchtec PCIe Driver4 * Copyright (c) 2017, Microsemi Corporation5 *6 * This program is free software; you can redistribute it and/or modify it7 * under the terms and conditions of the GNU General Public License,8 * version 2, as published by the Free Software Foundation.9 *10 * This program is distributed in the hope it will be useful, but WITHOUT11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for13 * more details.14 *15 */16 17#ifndef _UAPI_LINUX_SWITCHTEC_IOCTL_H18#define _UAPI_LINUX_SWITCHTEC_IOCTL_H19 20#include <linux/types.h>21 22#define SWITCHTEC_IOCTL_PART_CFG0	023#define SWITCHTEC_IOCTL_PART_CFG1	124#define SWITCHTEC_IOCTL_PART_IMG0	225#define SWITCHTEC_IOCTL_PART_IMG1	326#define SWITCHTEC_IOCTL_PART_NVLOG	427#define SWITCHTEC_IOCTL_PART_VENDOR0	528#define SWITCHTEC_IOCTL_PART_VENDOR1	629#define SWITCHTEC_IOCTL_PART_VENDOR2	730#define SWITCHTEC_IOCTL_PART_VENDOR3	831#define SWITCHTEC_IOCTL_PART_VENDOR4	932#define SWITCHTEC_IOCTL_PART_VENDOR5	1033#define SWITCHTEC_IOCTL_PART_VENDOR6	1134#define SWITCHTEC_IOCTL_PART_VENDOR7	1235#define SWITCHTEC_IOCTL_PART_BL2_0	1336#define SWITCHTEC_IOCTL_PART_BL2_1	1437#define SWITCHTEC_IOCTL_PART_MAP_0	1538#define SWITCHTEC_IOCTL_PART_MAP_1	1639#define SWITCHTEC_IOCTL_PART_KEY_0	1740#define SWITCHTEC_IOCTL_PART_KEY_1	1841 42#define SWITCHTEC_NUM_PARTITIONS_GEN3	1343#define SWITCHTEC_NUM_PARTITIONS_GEN4	1944 45/* obsolete: for compatibility with old userspace software */46#define SWITCHTEC_IOCTL_NUM_PARTITIONS	SWITCHTEC_NUM_PARTITIONS_GEN347 48struct switchtec_ioctl_flash_info {49	__u64 flash_length;50	__u32 num_partitions;51	__u32 padding;52};53 54#define SWITCHTEC_IOCTL_PART_ACTIVE  155#define SWITCHTEC_IOCTL_PART_RUNNING 256 57struct switchtec_ioctl_flash_part_info {58	__u32 flash_partition;59	__u32 address;60	__u32 length;61	__u32 active;62};63 64struct switchtec_ioctl_event_summary_legacy {65	__u64 global;66	__u64 part_bitmap;67	__u32 local_part;68	__u32 padding;69	__u32 part[48];70	__u32 pff[48];71};72 73struct switchtec_ioctl_event_summary {74	__u64 global;75	__u64 part_bitmap;76	__u32 local_part;77	__u32 padding;78	__u32 part[48];79	__u32 pff[255];80};81 82#define SWITCHTEC_IOCTL_EVENT_STACK_ERROR		083#define SWITCHTEC_IOCTL_EVENT_PPU_ERROR			184#define SWITCHTEC_IOCTL_EVENT_ISP_ERROR			285#define SWITCHTEC_IOCTL_EVENT_SYS_RESET			386#define SWITCHTEC_IOCTL_EVENT_FW_EXC			487#define SWITCHTEC_IOCTL_EVENT_FW_NMI			588#define SWITCHTEC_IOCTL_EVENT_FW_NON_FATAL		689#define SWITCHTEC_IOCTL_EVENT_FW_FATAL			790#define SWITCHTEC_IOCTL_EVENT_TWI_MRPC_COMP		891#define SWITCHTEC_IOCTL_EVENT_TWI_MRPC_COMP_ASYNC	992#define SWITCHTEC_IOCTL_EVENT_CLI_MRPC_COMP		1093#define SWITCHTEC_IOCTL_EVENT_CLI_MRPC_COMP_ASYNC	1194#define SWITCHTEC_IOCTL_EVENT_GPIO_INT			1295#define SWITCHTEC_IOCTL_EVENT_PART_RESET		1396#define SWITCHTEC_IOCTL_EVENT_MRPC_COMP			1497#define SWITCHTEC_IOCTL_EVENT_MRPC_COMP_ASYNC		1598#define SWITCHTEC_IOCTL_EVENT_DYN_PART_BIND_COMP	1699#define SWITCHTEC_IOCTL_EVENT_AER_IN_P2P		17100#define SWITCHTEC_IOCTL_EVENT_AER_IN_VEP		18101#define SWITCHTEC_IOCTL_EVENT_DPC			19102#define SWITCHTEC_IOCTL_EVENT_CTS			20103#define SWITCHTEC_IOCTL_EVENT_HOTPLUG			21104#define SWITCHTEC_IOCTL_EVENT_IER			22105#define SWITCHTEC_IOCTL_EVENT_THRESH			23106#define SWITCHTEC_IOCTL_EVENT_POWER_MGMT		24107#define SWITCHTEC_IOCTL_EVENT_TLP_THROTTLING		25108#define SWITCHTEC_IOCTL_EVENT_FORCE_SPEED		26109#define SWITCHTEC_IOCTL_EVENT_CREDIT_TIMEOUT		27110#define SWITCHTEC_IOCTL_EVENT_LINK_STATE		28111#define SWITCHTEC_IOCTL_EVENT_GFMS			29112#define SWITCHTEC_IOCTL_EVENT_INTERCOMM_REQ_NOTIFY	30113#define SWITCHTEC_IOCTL_EVENT_UEC			31114#define SWITCHTEC_IOCTL_MAX_EVENTS			32115 116#define SWITCHTEC_IOCTL_EVENT_LOCAL_PART_IDX -1117#define SWITCHTEC_IOCTL_EVENT_IDX_ALL -2118 119#define SWITCHTEC_IOCTL_EVENT_FLAG_CLEAR     (1 << 0)120#define SWITCHTEC_IOCTL_EVENT_FLAG_EN_POLL   (1 << 1)121#define SWITCHTEC_IOCTL_EVENT_FLAG_EN_LOG    (1 << 2)122#define SWITCHTEC_IOCTL_EVENT_FLAG_EN_CLI    (1 << 3)123#define SWITCHTEC_IOCTL_EVENT_FLAG_EN_FATAL  (1 << 4)124#define SWITCHTEC_IOCTL_EVENT_FLAG_DIS_POLL  (1 << 5)125#define SWITCHTEC_IOCTL_EVENT_FLAG_DIS_LOG   (1 << 6)126#define SWITCHTEC_IOCTL_EVENT_FLAG_DIS_CLI   (1 << 7)127#define SWITCHTEC_IOCTL_EVENT_FLAG_DIS_FATAL (1 << 8)128#define SWITCHTEC_IOCTL_EVENT_FLAG_UNUSED    (~0x1ff)129 130struct switchtec_ioctl_event_ctl {131	__u32 event_id;132	__s32 index;133	__u32 flags;134	__u32 occurred;135	__u32 count;136	__u32 data[5];137};138 139#define SWITCHTEC_IOCTL_PFF_VEP 100140struct switchtec_ioctl_pff_port {141	__u32 pff;142	__u32 partition;143	__u32 port;144};145 146#define SWITCHTEC_IOCTL_FLASH_INFO \147	_IOR('W', 0x40, struct switchtec_ioctl_flash_info)148#define SWITCHTEC_IOCTL_FLASH_PART_INFO \149	_IOWR('W', 0x41, struct switchtec_ioctl_flash_part_info)150#define SWITCHTEC_IOCTL_EVENT_SUMMARY \151	_IOR('W', 0x42, struct switchtec_ioctl_event_summary)152#define SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY \153	_IOR('W', 0x42, struct switchtec_ioctl_event_summary_legacy)154#define SWITCHTEC_IOCTL_EVENT_CTL \155	_IOWR('W', 0x43, struct switchtec_ioctl_event_ctl)156#define SWITCHTEC_IOCTL_PFF_TO_PORT \157	_IOWR('W', 0x44, struct switchtec_ioctl_pff_port)158#define SWITCHTEC_IOCTL_PORT_TO_PFF \159	_IOWR('W', 0x45, struct switchtec_ioctl_pff_port)160 161#endif162