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

dpio.h (2476B)


      1/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
      2/*
      3 * Copyright 2013-2016 Freescale Semiconductor Inc.
      4 * Copyright 2016 NXP
      5 *
      6 */
      7#ifndef __FSL_DPIO_H
      8#define __FSL_DPIO_H
      9
     10struct fsl_mc_io;
     11
     12int dpio_open(struct fsl_mc_io	*mc_io,
     13	      u32		cmd_flags,
     14	      int		dpio_id,
     15	      u16		*token);
     16
     17int dpio_close(struct fsl_mc_io	*mc_io,
     18	       u32		cmd_flags,
     19	       u16		token);
     20
     21/**
     22 * enum dpio_channel_mode - DPIO notification channel mode
     23 * @DPIO_NO_CHANNEL: No support for notification channel
     24 * @DPIO_LOCAL_CHANNEL: Notifications on data availability can be received by a
     25 *	dedicated channel in the DPIO; user should point the queue's
     26 *	destination in the relevant interface to this DPIO
     27 */
     28enum dpio_channel_mode {
     29	DPIO_NO_CHANNEL = 0,
     30	DPIO_LOCAL_CHANNEL = 1,
     31};
     32
     33/**
     34 * struct dpio_cfg - Structure representing DPIO configuration
     35 * @channel_mode: Notification channel mode
     36 * @num_priorities: Number of priorities for the notification channel (1-8);
     37 *			relevant only if 'channel_mode = DPIO_LOCAL_CHANNEL'
     38 */
     39struct dpio_cfg {
     40	enum dpio_channel_mode	channel_mode;
     41	u8		num_priorities;
     42};
     43
     44int dpio_enable(struct fsl_mc_io	*mc_io,
     45		u32		cmd_flags,
     46		u16		token);
     47
     48int dpio_disable(struct fsl_mc_io	*mc_io,
     49		 u32		cmd_flags,
     50		 u16		token);
     51
     52/**
     53 * struct dpio_attr - Structure representing DPIO attributes
     54 * @id: DPIO object ID
     55 * @qbman_portal_ce_offset: offset of the software portal cache-enabled area
     56 * @qbman_portal_ci_offset: offset of the software portal cache-inhibited area
     57 * @qbman_portal_id: Software portal ID
     58 * @channel_mode: Notification channel mode
     59 * @num_priorities: Number of priorities for the notification channel (1-8);
     60 *			relevant only if 'channel_mode = DPIO_LOCAL_CHANNEL'
     61 * @qbman_version: QBMAN version
     62 * @clk: QBMAN clock frequency value in Hz
     63 */
     64struct dpio_attr {
     65	int			id;
     66	u64		qbman_portal_ce_offset;
     67	u64		qbman_portal_ci_offset;
     68	u16		qbman_portal_id;
     69	enum dpio_channel_mode	channel_mode;
     70	u8			num_priorities;
     71	u32		qbman_version;
     72	u32		clk;
     73};
     74
     75int dpio_get_attributes(struct fsl_mc_io	*mc_io,
     76			u32		cmd_flags,
     77			u16		token,
     78			struct dpio_attr	*attr);
     79
     80int dpio_set_stashing_destination(struct fsl_mc_io *mc_io,
     81				  u32 cmd_flags,
     82				  u16 token,
     83				  u8 dest);
     84
     85int dpio_get_api_version(struct fsl_mc_io *mc_io,
     86			 u32 cmd_flags,
     87			 u16 *major_ver,
     88			 u16 *minor_ver);
     89
     90int dpio_reset(struct fsl_mc_io	*mc_io,
     91	       u32 cmd_flags,
     92	       u16 token);
     93
     94#endif /* __FSL_DPIO_H */