| Vitaly Bordug | a6dbba7 | 2005-05-28 15:52:09 -0700 | [diff] [blame] | 1 |  | 
|  | 2 | #ifndef _PPC_KERNEL_M82XX_PCI_H | 
|  | 3 | #define _PPC_KERNEL_M82XX_PCI_H | 
|  | 4 |  | 
|  | 5 | #include <asm/m8260_pci.h> | 
|  | 6 | /* | 
|  | 7 | *   Local->PCI map (from CPU)                             controlled by | 
|  | 8 | *   MPC826x master window | 
|  | 9 | * | 
|  | 10 | *   0xF6000000 - 0xF7FFFFFF    IO space | 
|  | 11 | *   0x80000000 - 0xBFFFFFFF    CPU2PCI memory space       PCIBR0 | 
|  | 12 | * | 
|  | 13 | *   0x80000000 - 0x9FFFFFFF    PCI Mem with prefetch      (Outbound ATU #1) | 
|  | 14 | *   0xA0000000 - 0xBFFFFFFF    PCI Mem w/o  prefetch      (Outbound ATU #2) | 
|  | 15 | *   0xF6000000 - 0xF7FFFFFF    32-bit PCI IO              (Outbound ATU #3) | 
|  | 16 | * | 
|  | 17 | *   PCI->Local map (from PCI) | 
|  | 18 | *   MPC826x slave window                                  controlled by | 
|  | 19 | * | 
|  | 20 | *   0x00000000 - 0x07FFFFFF    MPC826x local memory       (Inbound ATU #1) | 
|  | 21 | */ | 
|  | 22 |  | 
|  | 23 | /* | 
|  | 24 | * Slave window that allows PCI masters to access MPC826x local memory. | 
|  | 25 | * This window is set up using the first set of Inbound ATU registers | 
|  | 26 | */ | 
|  | 27 |  | 
|  | 28 | #ifndef M82xx_PCI_SLAVE_MEM_LOCAL | 
|  | 29 | #define M82xx_PCI_SLAVE_MEM_LOCAL	(((struct bd_info *)__res)->bi_memstart) | 
|  | 30 | #define M82xx_PCI_SLAVE_MEM_BUS		(((struct bd_info *)__res)->bi_memstart) | 
|  | 31 | #define M82xx_PCI_SLAVE_MEM_SIZE	(((struct bd_info *)__res)->bi_memsize) | 
|  | 32 | #endif | 
|  | 33 |  | 
|  | 34 | /* | 
|  | 35 | * This is the window that allows the CPU to access PCI address space. | 
|  | 36 | * It will be setup with the SIU PCIBR0 register. All three PCI master | 
|  | 37 | * windows, which allow the CPU to access PCI prefetch, non prefetch, | 
|  | 38 | * and IO space (see below), must all fit within this window. | 
|  | 39 | */ | 
|  | 40 |  | 
|  | 41 | #ifndef M82xx_PCI_LOWER_MEM | 
|  | 42 | #define M82xx_PCI_LOWER_MEM		0x80000000 | 
|  | 43 | #define M82xx_PCI_UPPER_MEM		0x9fffffff | 
|  | 44 | #define M82xx_PCI_MEM_OFFSET		0x00000000 | 
|  | 45 | #define M82xx_PCI_MEM_SIZE		0x20000000 | 
|  | 46 | #endif | 
|  | 47 |  | 
|  | 48 | #ifndef M82xx_PCI_LOWER_MMIO | 
|  | 49 | #define M82xx_PCI_LOWER_MMIO		0xa0000000 | 
|  | 50 | #define M82xx_PCI_UPPER_MMIO		0xafffffff | 
|  | 51 | #define M82xx_PCI_MMIO_OFFSET		0x00000000 | 
|  | 52 | #define M82xx_PCI_MMIO_SIZE		0x20000000 | 
|  | 53 | #endif | 
|  | 54 |  | 
|  | 55 | #ifndef M82xx_PCI_LOWER_IO | 
|  | 56 | #define M82xx_PCI_LOWER_IO		0x00000000 | 
|  | 57 | #define M82xx_PCI_UPPER_IO		0x01ffffff | 
|  | 58 | #define M82xx_PCI_IO_BASE		0xf6000000 | 
|  | 59 | #define M82xx_PCI_IO_SIZE		0x02000000 | 
|  | 60 | #endif | 
|  | 61 |  | 
|  | 62 | #ifndef M82xx_PCI_PRIM_WND_SIZE | 
|  | 63 | #define M82xx_PCI_PRIM_WND_SIZE 	~(M82xx_PCI_IO_SIZE - 1U) | 
|  | 64 | #define M82xx_PCI_PRIM_WND_BASE		(M82xx_PCI_IO_BASE) | 
|  | 65 | #endif | 
|  | 66 |  | 
|  | 67 | #ifndef M82xx_PCI_SEC_WND_SIZE | 
|  | 68 | #define M82xx_PCI_SEC_WND_SIZE 		~(M82xx_PCI_MEM_SIZE + M82xx_PCI_MMIO_SIZE - 1U) | 
|  | 69 | #define M82xx_PCI_SEC_WND_BASE 		(M82xx_PCI_LOWER_MEM) | 
|  | 70 | #endif | 
|  | 71 |  | 
|  | 72 | #ifndef POTA_ADDR_SHIFT | 
|  | 73 | #define POTA_ADDR_SHIFT		12 | 
|  | 74 | #endif | 
|  | 75 |  | 
|  | 76 | #ifndef PITA_ADDR_SHIFT | 
|  | 77 | #define PITA_ADDR_SHIFT		12 | 
|  | 78 | #endif | 
|  | 79 |  | 
|  | 80 | #ifndef _IO_BASE | 
|  | 81 | #define _IO_BASE isa_io_base | 
|  | 82 | #endif | 
|  | 83 |  | 
|  | 84 | #ifdef CONFIG_8260_PCI9 | 
|  | 85 | struct pci_controller; | 
|  | 86 | extern void setup_m8260_indirect_pci(struct pci_controller* hose, | 
|  | 87 | u32 cfg_addr, u32 cfg_data); | 
|  | 88 | #else | 
|  | 89 | #define setup_m8260_indirect_pci setup_indirect_pci | 
|  | 90 | #endif | 
|  | 91 |  | 
|  | 92 | #endif /* _PPC_KERNEL_M8260_PCI_H */ |