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 */ |