• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License.  See the file "COPYING" in the main directory of this archive
4  * for more details.
5  *
6  * Copyright (c) 2003-2005 Silicon Graphics, Inc. All rights reserved.
7  */
8 
9 #ifndef _ASM_IA64_SN_CE_PROVIDER_H
10 #define _ASM_IA64_SN_CE_PROVIDER_H
11 
12 #include <asm/sn/pcibus_provider_defs.h>
13 #include <asm/sn/tioce.h>
14 
15 /*
16  * Common TIOCE structure shared between the prom and kernel
17  *
18  * DO NOT CHANGE THIS STRUCT WITHOUT MAKING CORRESPONDING CHANGES TO THE
19  * PROM VERSION.
20  */
21 struct tioce_common {
22 	struct pcibus_bussoft	ce_pcibus;	/* common pciio header */
23 
24 	u32		ce_rev;
25 	u64		ce_kernel_private;
26 	u64		ce_prom_private;
27 };
28 
29 struct tioce_kernel {
30 	struct tioce_common	*ce_common;
31 	spinlock_t		ce_lock;
32 	struct list_head	ce_dmamap_list;
33 
34 	u64		ce_ate40_shadow[TIOCE_NUM_M40_ATES];
35 	u64		ce_ate3240_shadow[TIOCE_NUM_M3240_ATES];
36 	u32		ce_ate3240_pagesize;
37 
38 	u8			ce_port1_secondary;
39 
40 	/* per-port resources */
41 	struct {
42 		int 		dirmap_refcnt;
43 		u64	dirmap_shadow;
44 	} ce_port[TIOCE_NUM_PORTS];
45 };
46 
47 struct tioce_dmamap {
48 	struct list_head	ce_dmamap_list;	/* headed by tioce_kernel */
49 	u32		refcnt;
50 
51 	u64		nbytes;		/* # bytes mapped */
52 
53 	u64		ct_start;	/* coretalk start address */
54 	u64		pci_start;	/* bus start address */
55 
56 	u64		__iomem *ate_hw;/* hw ptr of first ate in map */
57 	u64		*ate_shadow;	/* shadow ptr of firat ate */
58 	u16		ate_count;	/* # ate's in the map */
59 };
60 
61 extern int tioce_init_provider(void);
62 
63 #endif  /* __ASM_IA64_SN_CE_PROVIDER_H */
64