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

hpi6205.h (2703B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*****************************************************************************
      3
      4    AudioScience HPI driver
      5    Copyright (C) 1997-2011  AudioScience Inc. <support@audioscience.com>
      6
      7
      8Host Interface module for an ASI6205 based
      9bus mastering PCI adapter.
     10
     11Copyright AudioScience, Inc., 2003
     12******************************************************************************/
     13
     14#ifndef _HPI6205_H_
     15#define _HPI6205_H_
     16
     17#include "hpi_internal.h"
     18
     19/***********************************************************
     20	Defines used for basic messaging
     21************************************************************/
     22#define H620_HIF_RESET          0
     23#define H620_HIF_IDLE           1
     24#define H620_HIF_GET_RESP       2
     25#define H620_HIF_DATA_DONE      3
     26#define H620_HIF_DATA_MASK      0x10
     27#define H620_HIF_SEND_DATA      0x14
     28#define H620_HIF_GET_DATA       0x15
     29#define H620_HIF_UNKNOWN                0x0000ffff
     30
     31/***********************************************************
     32	Types used for mixer control caching
     33************************************************************/
     34
     35#define H620_MAX_ISTREAMS 32
     36#define H620_MAX_OSTREAMS 32
     37#define HPI_NMIXER_CONTROLS 2048
     38
     39/*********************************************************************
     40This is used for dynamic control cache allocation
     41**********************************************************************/
     42struct controlcache_6205 {
     43	u32 number_of_controls;
     44	u32 physical_address32;
     45	u32 size_in_bytes;
     46};
     47
     48/*********************************************************************
     49This is used for dynamic allocation of async event array
     50**********************************************************************/
     51struct async_event_buffer_6205 {
     52	u32 physical_address32;
     53	u32 spare;
     54	struct hpi_fifo_buffer b;
     55};
     56
     57/***********************************************************
     58The Host located memory buffer that the 6205 will bus master
     59in and out of.
     60************************************************************/
     61#define HPI6205_SIZEOF_DATA (16*1024)
     62
     63struct message_buffer_6205 {
     64	struct hpi_message message;
     65	char data[256];
     66};
     67
     68struct response_buffer_6205 {
     69	struct hpi_response response;
     70	char data[256];
     71};
     72
     73union buffer_6205 {
     74	struct message_buffer_6205 message_buffer;
     75	struct response_buffer_6205 response_buffer;
     76	u8 b_data[HPI6205_SIZEOF_DATA];
     77};
     78
     79struct bus_master_interface {
     80	u32 host_cmd;
     81	u32 dsp_ack;
     82	u32 transfer_size_in_bytes;
     83	union buffer_6205 u;
     84	struct controlcache_6205 control_cache;
     85	struct async_event_buffer_6205 async_buffer;
     86	struct hpi_hostbuffer_status
     87	 instream_host_buffer_status[H620_MAX_ISTREAMS];
     88	struct hpi_hostbuffer_status
     89	 outstream_host_buffer_status[H620_MAX_OSTREAMS];
     90};
     91
     92#endif