diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2005-12-13 21:10:10 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-01-08 23:03:17 -0500 |
commit | 1beb6a7d6cbed3ac03500ce9b5b9bb632c512039 (patch) | |
tree | 727aa76da5a82fca449dadf3cebbadc414ad6555 /include | |
parent | cd0c7f06803be06a5cf4564aa5a900f4b6aea603 (diff) |
[PATCH] powerpc: Experimental support for new G5 Macs (#2)
This adds some very basic support for the new machines, including the
Quad G5 (tested), and other new dual core based machines and iMac G5
iSight (untested). This is still experimental ! There is no thermal
control yet, there is no proper handing of MSIs, etc.. but it
boots, I have all 4 cores up on my machine. Compared to the previous
version of this patch, this one adds DART IOMMU support for the U4
chipset and thus should work fine on setups with more than 2Gb of RAM.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-powerpc/iommu.h | 6 | ||||
-rw-r--r-- | include/asm-powerpc/mpic.h | 3 | ||||
-rw-r--r-- | include/asm-powerpc/pmac_feature.h | 2 | ||||
-rw-r--r-- | include/linux/pci_regs.h | 1 |
4 files changed, 8 insertions, 4 deletions
diff --git a/include/asm-powerpc/iommu.h b/include/asm-powerpc/iommu.h index f89f06050893..59f062668997 100644 --- a/include/asm-powerpc/iommu.h +++ b/include/asm-powerpc/iommu.h | |||
@@ -56,7 +56,7 @@ struct device_node; | |||
56 | 56 | ||
57 | /* Walks all buses and creates iommu tables */ | 57 | /* Walks all buses and creates iommu tables */ |
58 | extern void iommu_setup_pSeries(void); | 58 | extern void iommu_setup_pSeries(void); |
59 | extern void iommu_setup_u3(void); | 59 | extern void iommu_setup_dart(void); |
60 | 60 | ||
61 | /* Frees table for an individual device node */ | 61 | /* Frees table for an individual device node */ |
62 | extern void iommu_free_table(struct device_node *dn); | 62 | extern void iommu_free_table(struct device_node *dn); |
@@ -104,7 +104,7 @@ extern void iommu_unmap_single(struct iommu_table *tbl, dma_addr_t dma_handle, | |||
104 | 104 | ||
105 | extern void iommu_init_early_pSeries(void); | 105 | extern void iommu_init_early_pSeries(void); |
106 | extern void iommu_init_early_iSeries(void); | 106 | extern void iommu_init_early_iSeries(void); |
107 | extern void iommu_init_early_u3(void); | 107 | extern void iommu_init_early_dart(void); |
108 | 108 | ||
109 | #ifdef CONFIG_PCI | 109 | #ifdef CONFIG_PCI |
110 | extern void pci_iommu_init(void); | 110 | extern void pci_iommu_init(void); |
@@ -113,6 +113,6 @@ extern void pci_direct_iommu_init(void); | |||
113 | static inline void pci_iommu_init(void) { } | 113 | static inline void pci_iommu_init(void) { } |
114 | #endif | 114 | #endif |
115 | 115 | ||
116 | extern void alloc_u3_dart_table(void); | 116 | extern void alloc_dart_table(void); |
117 | 117 | ||
118 | #endif /* _ASM_IOMMU_H */ | 118 | #endif /* _ASM_IOMMU_H */ |
diff --git a/include/asm-powerpc/mpic.h b/include/asm-powerpc/mpic.h index 6ce27e1b5646..bf7e71793205 100644 --- a/include/asm-powerpc/mpic.h +++ b/include/asm-powerpc/mpic.h | |||
@@ -117,8 +117,9 @@ typedef int (*mpic_cascade_t)(struct pt_regs *regs, void *data); | |||
117 | struct mpic_irq_fixup | 117 | struct mpic_irq_fixup |
118 | { | 118 | { |
119 | u8 __iomem *base; | 119 | u8 __iomem *base; |
120 | u8 __iomem *applebase; | ||
120 | u32 data; | 121 | u32 data; |
121 | unsigned int irq; | 122 | unsigned int index; |
122 | }; | 123 | }; |
123 | #endif /* CONFIG_MPIC_BROKEN_U3 */ | 124 | #endif /* CONFIG_MPIC_BROKEN_U3 */ |
124 | 125 | ||
diff --git a/include/asm-powerpc/pmac_feature.h b/include/asm-powerpc/pmac_feature.h index e9683bcff19b..f6997ed5179e 100644 --- a/include/asm-powerpc/pmac_feature.h +++ b/include/asm-powerpc/pmac_feature.h | |||
@@ -121,6 +121,7 @@ | |||
121 | #define PMAC_TYPE_IMAC_G5 0x152 /* iMac G5 */ | 121 | #define PMAC_TYPE_IMAC_G5 0x152 /* iMac G5 */ |
122 | #define PMAC_TYPE_XSERVE_G5 0x153 /* Xserve G5 */ | 122 | #define PMAC_TYPE_XSERVE_G5 0x153 /* Xserve G5 */ |
123 | #define PMAC_TYPE_UNKNOWN_K2 0x19f /* Any other K2 based */ | 123 | #define PMAC_TYPE_UNKNOWN_K2 0x19f /* Any other K2 based */ |
124 | #define PMAC_TYPE_UNKNOWN_SHASTA 0x19e /* Any other Shasta based */ | ||
124 | 125 | ||
125 | /* | 126 | /* |
126 | * Motherboard flags | 127 | * Motherboard flags |
@@ -341,6 +342,7 @@ enum { | |||
341 | macio_pangea, | 342 | macio_pangea, |
342 | macio_intrepid, | 343 | macio_intrepid, |
343 | macio_keylargo2, | 344 | macio_keylargo2, |
345 | macio_shasta, | ||
344 | }; | 346 | }; |
345 | 347 | ||
346 | struct macio_chip | 348 | struct macio_chip |
diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h index e2a089b051ed..d27a78b71297 100644 --- a/include/linux/pci_regs.h +++ b/include/linux/pci_regs.h | |||
@@ -196,6 +196,7 @@ | |||
196 | #define PCI_CAP_ID_MSI 0x05 /* Message Signalled Interrupts */ | 196 | #define PCI_CAP_ID_MSI 0x05 /* Message Signalled Interrupts */ |
197 | #define PCI_CAP_ID_CHSWP 0x06 /* CompactPCI HotSwap */ | 197 | #define PCI_CAP_ID_CHSWP 0x06 /* CompactPCI HotSwap */ |
198 | #define PCI_CAP_ID_PCIX 0x07 /* PCI-X */ | 198 | #define PCI_CAP_ID_PCIX 0x07 /* PCI-X */ |
199 | #define PCI_CAP_ID_HT_IRQCONF 0x08 /* HyperTransport IRQ Configuration */ | ||
199 | #define PCI_CAP_ID_SHPC 0x0C /* PCI Standard Hot-Plug Controller */ | 200 | #define PCI_CAP_ID_SHPC 0x0C /* PCI Standard Hot-Plug Controller */ |
200 | #define PCI_CAP_ID_EXP 0x10 /* PCI Express */ | 201 | #define PCI_CAP_ID_EXP 0x10 /* PCI Express */ |
201 | #define PCI_CAP_ID_MSIX 0x11 /* MSI-X */ | 202 | #define PCI_CAP_ID_MSIX 0x11 /* MSI-X */ |