]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
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) 1992 - 1997, 2000-2004 Silicon Graphics, Inc. All rights reserved. | |
7 | */ | |
8 | #ifndef _ASM_IA64_SN_PCI_PCIBUS_PROVIDER_H | |
9 | #define _ASM_IA64_SN_PCI_PCIBUS_PROVIDER_H | |
10 | ||
11 | /* | |
12 | * SN pci asic types. Do not ever renumber these or reuse values. The | |
13 | * values must agree with what prom thinks they are. | |
14 | */ | |
15 | ||
16 | #define PCIIO_ASIC_TYPE_UNKNOWN 0 | |
17 | #define PCIIO_ASIC_TYPE_PPB 1 | |
18 | #define PCIIO_ASIC_TYPE_PIC 2 | |
19 | #define PCIIO_ASIC_TYPE_TIOCP 3 | |
9c90bdde | 20 | #define PCIIO_ASIC_TYPE_TIOCA 4 |
c9221da9 | 21 | #define PCIIO_ASIC_TYPE_TIOCE 5 |
1da177e4 | 22 | |
c9221da9 | 23 | #define PCIIO_ASIC_MAX_TYPES 6 |
e955d825 | 24 | |
1da177e4 LT |
25 | /* |
26 | * Common pciio bus provider data. There should be one of these as the | |
27 | * first field in any pciio based provider soft structure (e.g. pcibr_soft | |
28 | * tioca_soft, etc). | |
29 | */ | |
30 | ||
31 | struct pcibus_bussoft { | |
53493dcf PB |
32 | u32 bs_asic_type; /* chipset type */ |
33 | u32 bs_xid; /* xwidget id */ | |
34 | u32 bs_persist_busnum; /* Persistent Bus Number */ | |
35 | u32 bs_persist_segment; /* Segment Number */ | |
36 | u64 bs_legacy_io; /* legacy io pio addr */ | |
37 | u64 bs_legacy_mem; /* legacy mem pio addr */ | |
38 | u64 bs_base; /* widget base */ | |
1da177e4 LT |
39 | struct xwidget_info *bs_xwidget_info; |
40 | }; | |
41 | ||
7c2a6c62 | 42 | struct pci_controller; |
1da177e4 | 43 | /* |
e955d825 | 44 | * SN pci bus indirection |
1da177e4 LT |
45 | */ |
46 | ||
e955d825 MM |
47 | struct sn_pcibus_provider { |
48 | dma_addr_t (*dma_map)(struct pci_dev *, unsigned long, size_t); | |
49 | dma_addr_t (*dma_map_consistent)(struct pci_dev *, unsigned long, size_t); | |
50 | void (*dma_unmap)(struct pci_dev *, dma_addr_t, int); | |
7c2a6c62 | 51 | void * (*bus_fixup)(struct pcibus_bussoft *, struct pci_controller *); |
735e60f4 | 52 | void (*force_interrupt)(struct sn_irq_info *); |
8409668b | 53 | void (*target_interrupt)(struct sn_irq_info *); |
e955d825 | 54 | }; |
1da177e4 | 55 | |
e955d825 | 56 | extern struct sn_pcibus_provider *sn_pci_provider[]; |
1da177e4 | 57 | #endif /* _ASM_IA64_SN_PCI_PCIBUS_PROVIDER_H */ |