Root/target/linux/generic/files/crypto/ocf/kirkwood/mvHal/linux_oss/mvOsSata.h

1/*******************************************************************************
2Copyright (C) Marvell International Ltd. and its affiliates
3
4This software file (the "File") is owned and distributed by Marvell
5International Ltd. and/or its affiliates ("Marvell") under the following
6alternative licensing terms. Once you have made an election to distribute the
7File under one of the following license alternatives, please (i) delete this
8introductory statement regarding license alternatives, (ii) delete the two
9license alternatives that you have not elected to use and (iii) preserve the
10Marvell copyright notice above.
11
12
13********************************************************************************
14Marvell GPL License Option
15
16If you received this File from Marvell, you may opt to use, redistribute and/or
17modify this File in accordance with the terms and conditions of the General
18Public License Version 2, June 1991 (the "GPL License"), a copy of which is
19available along with the File in the license.txt file or by writing to the Free
20Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
21on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
22
23THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
24WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
25DISCLAIMED. The GPL License provides additional details about this warranty
26disclaimer.
27*******************************************************************************/
28/*******************************************************************************
29* mvOsLinux.h - O.S. interface header file for Linux
30*
31* DESCRIPTION:
32* This header file contains OS dependent definition under Linux
33*
34* DEPENDENCIES:
35* Linux kernel header files.
36*
37* FILE REVISION NUMBER:
38* $Revision: 1.1 $
39*******************************************************************************/
40
41#ifndef __INCmvOsLinuxh
42#define __INCmvOsLinuxh
43
44/* Includes */
45#include <linux/autoconf.h>
46#include <linux/module.h>
47#include <linux/types.h>
48#include <linux/string.h>
49#include <linux/kernel.h>
50#include <linux/timer.h>
51#include <linux/mm.h>
52#include <linux/interrupt.h>
53#include <linux/major.h>
54#include <linux/errno.h>
55#include <linux/genhd.h>
56#include <linux/slab.h>
57#include <linux/delay.h>
58#include <linux/ide.h>
59#include <linux/pci.h>
60
61#include <asm/byteorder.h>
62#include <asm/irq.h>
63#include <asm/uaccess.h>
64#include <asm/io.h>
65#include "mvOs.h"
66
67
68/* Definitions */
69#define MV_DEFAULT_QUEUE_DEPTH 2
70#define MV_SATA_SUPPORT_EDMA_SINGLE_DATA_REGION
71#define MV_SATA_SUPPORT_GEN2E_128_QUEUE_LEN
72
73#ifdef CONFIG_MV88F6082
74 #define MV_SATA_OVERRIDE_SW_QUEUE_SIZE
75 #define MV_SATA_REQUESTED_SW_QUEUE_SIZE 2
76 #undef MV_SATA_SUPPORT_GEN2E_128_QUEUE_LEN
77#endif
78
79/* System dependent macro for flushing CPU write cache */
80#if defined (MV_BRIDGE_SYNC_REORDER)
81#define MV_CPU_WRITE_BUFFER_FLUSH() do { \
82                        wmb(); \
83                        mvOsBridgeReorderWA(); \
84                    } while (0)
85#else
86#define MV_CPU_WRITE_BUFFER_FLUSH() wmb()
87#endif /* CONFIG_MV78XX0 */
88
89/* System dependent little endian from / to CPU conversions */
90#define MV_CPU_TO_LE16(x) cpu_to_le16(x)
91#define MV_CPU_TO_LE32(x) cpu_to_le32(x)
92
93#define MV_LE16_TO_CPU(x) le16_to_cpu(x)
94#define MV_LE32_TO_CPU(x) le32_to_cpu(x)
95
96#ifdef __BIG_ENDIAN_BITFIELD
97#define MV_BIG_ENDIAN_BITFIELD
98#endif
99
100/* System dependent register read / write in byte/word/dword variants */
101#define MV_REG_WRITE_BYTE(base, offset, val) writeb(val, base + offset)
102#define MV_REG_WRITE_WORD(base, offset, val) writew(val, base + offset)
103#define MV_REG_WRITE_DWORD(base, offset, val) writel(val, base + offset)
104#define MV_REG_READ_BYTE(base, offset) readb(base + offset)
105#define MV_REG_READ_WORD(base, offset) readw(base + offset)
106#define MV_REG_READ_DWORD(base, offset) readl(base + offset)
107
108
109/* Typedefs */
110
111/* System dependant typedefs */
112typedef void *MV_VOID_PTR;
113typedef u32 *MV_U32_PTR;
114typedef u16 *MV_U16_PTR;
115typedef u8 *MV_U8_PTR;
116typedef char *MV_CHAR_PTR;
117typedef void *MV_BUS_ADDR_T;
118typedef unsigned long MV_CPU_FLAGS;
119
120
121/* Structures */
122/* System dependent structure */
123typedef struct mvOsSemaphore
124{
125  int notUsed;
126} MV_OS_SEMAPHORE;
127
128
129/* Functions (User implemented)*/
130
131/* Semaphore init, take and release */
132#define mvOsSemInit(x) MV_TRUE
133#define mvOsSemTake(x)
134#define mvOsSemRelease(x)
135
136/* Interrupt masking and unmasking functions */
137MV_CPU_FLAGS mvOsSaveFlagsAndMaskCPUInterrupts(MV_VOID);
138MV_VOID mvOsRestoreFlags(MV_CPU_FLAGS);
139
140/* Delay function in micro seconds resolution */
141void mvMicroSecondsDelay(MV_VOID_PTR, MV_U32);
142
143/* Typedefs */
144typedef enum mvBoolean
145{
146    MV_SFALSE, MV_STRUE
147} MV_BOOLEAN;
148
149/* System logging function */
150#include "mvLog.h"
151/* Enable READ/WRITE Long SCSI command only when driver is compiled for debugging */
152#ifdef MV_LOGGER
153#define MV_SATA_SUPPORT_READ_WRITE_LONG
154#endif
155
156#define MV_IAL_LOG_ID 3
157
158#endif /* __INCmvOsLinuxh */
159

Archive Download this file



interactive