aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc')
-rwxr-xr-xarch/powerpc/boot/dts/beech.dts9
-rw-r--r--arch/powerpc/include/asm/apm82181-adma.h2
-rw-r--r--arch/powerpc/kernel/dma.c10
-rw-r--r--arch/powerpc/platforms/44x/Kconfig11
-rw-r--r--arch/powerpc/platforms/44x/Makefile1
-rw-r--r--arch/powerpc/platforms/44x/ppc44x_simple.c1
-rw-r--r--arch/powerpc/sysdev/ppc4xx_pci.c3
7 files changed, 29 insertions, 8 deletions
diff --git a/arch/powerpc/boot/dts/beech.dts b/arch/powerpc/boot/dts/beech.dts
index 0e64ec4e365..341fb2cf0af 100755
--- a/arch/powerpc/boot/dts/beech.dts
+++ b/arch/powerpc/boot/dts/beech.dts
@@ -102,13 +102,11 @@
reg = <4 0x00040000 0x8000>; /* 32K */
};
- /* TODO: Check this for Maui */
SDR0: sdr {
compatible = "ibm,sdr-460ex";
dcr-reg = <0x00e 0x002>;
};
- /* TODO: Change for Maui */
CPR0: cpr {
compatible = "ibm,cpr-460ex";
dcr-reg = <0x00c 0x002>;
@@ -167,7 +165,7 @@
compatible = "ppc4xx-pka", "amcc, ppc4xx-pka";
reg = <4 0x00114000 0x4000>;
interrupt-parent = <&UIC0>;
- interrupts = <0x14 0x2>;
+ interrupts = <0x14 0x1>;
};
TRNG: trng@110000 {
@@ -175,7 +173,7 @@
compatible = "ppc4xx-trng", "amcc, ppc4xx-trng";
reg = <4 0x00110000 0x100>;
interrupt-parent = <&UIC1>;
- interrupts = <0x3 0x2>;
+ interrupts = <0x3 0x4>;
};
RTC: rtc {
@@ -205,7 +203,6 @@
/*RX1 COAL 0xd 0x2*/>;
};
- /* TODO: Check for Maui */
USBOTG0: usbotg@bff80000 {
compatible = "amcc,usb-otg-405ex";
reg = <4 0xbff80000 0x10000>;
@@ -311,7 +308,6 @@
interrupts = <0x6 0x4>;
interrupt-parent = <&UIC1>;
- /* TODO: Change for Beech platform . 4M Nor Flash */
nor_flash@0,0 {
compatible = "amd,s29gl512n", "cfi-flash";
bank-width = <1>;
@@ -423,7 +419,6 @@
reg = <0xef601350 0x00000030>;
};
- /* TODO: Change for Maui */
EMAC0: ethernet@ef600c00 {
device_type = "network";
compatible = "ibm,emac-405ex", "ibm,emac4sync";
diff --git a/arch/powerpc/include/asm/apm82181-adma.h b/arch/powerpc/include/asm/apm82181-adma.h
index b16014b8c07..bfc7803c3fa 100644
--- a/arch/powerpc/include/asm/apm82181-adma.h
+++ b/arch/powerpc/include/asm/apm82181-adma.h
@@ -203,6 +203,8 @@ typedef struct apm82181_adma_plb_desc_slot {
unsigned long flags;
unsigned long reverse_flags[8];
#define APM82181_DESC_INT 0 /* generate interrupt on complete */
+#define APM82181_DESC_FENCE 1 /* Other tx will use its result */
+ /* This tx needs to be polled to complete */
}apm82181_desc_t;
diff --git a/arch/powerpc/kernel/dma.c b/arch/powerpc/kernel/dma.c
index 6215062caf8..868b5fd5f1e 100644
--- a/arch/powerpc/kernel/dma.c
+++ b/arch/powerpc/kernel/dma.c
@@ -132,6 +132,14 @@ static inline void dma_direct_sync_single_range(struct device *dev,
{
__dma_sync(bus_to_virt(dma_handle+offset), size, direction);
}
+
+static inline void dma_direct_sync_single(struct device *dev,
+ dma_addr_t dma_handle, size_t size,
+ enum dma_data_direction direction)
+{
+ __dma_sync(bus_to_virt(dma_handle), size, direction);
+}
+
#endif
struct dma_map_ops dma_direct_ops = {
@@ -143,6 +151,8 @@ struct dma_map_ops dma_direct_ops = {
.map_page = dma_direct_map_page,
.unmap_page = dma_direct_unmap_page,
#ifdef CONFIG_NOT_COHERENT_CACHE
+ .sync_single_for_cpu = dma_direct_sync_single,
+ .sync_single_for_device = dma_direct_sync_single,
.sync_single_range_for_cpu = dma_direct_sync_single_range,
.sync_single_range_for_device = dma_direct_sync_single_range,
.sync_sg_for_cpu = dma_direct_sync_sg,
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig
index 642036461cd..0551086e350 100644
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
@@ -115,6 +115,17 @@ config APOLLO3G
help
This option enables support for the WDC Apollo3G NAS.
+config BLUESTONE
+ bool "Bluestone"
+ depends on 44x
+ default n
+ select PPC44x_SIMPLE
+ select APM82181
+ select PPC4xx_PCI_EXPRESS
+ select IBM_NEW_EMAC_RGMII
+ help
+ This option enables support for the AMCC APM82181 evaluation board.
+
config CANYONLANDS
bool "Canyonlands"
depends on 44x
diff --git a/arch/powerpc/platforms/44x/Makefile b/arch/powerpc/platforms/44x/Makefile
index fd5583c8e86..084f9b0561a 100644
--- a/arch/powerpc/platforms/44x/Makefile
+++ b/arch/powerpc/platforms/44x/Makefile
@@ -7,3 +7,4 @@ obj-$(CONFIG_XILINX_VIRTEX_5_FXT) += virtex.o
obj-$(CONFIG_XILINX_ML510) += virtex_ml510.o
obj-$(CONFIG_BEECH) += beech-usb.o
obj-$(CONFIG_APOLLO3G) += apollo3g-gpio.o
+obj-$(CONFIG_BLUESTONE) += bluestone-usb.o
diff --git a/arch/powerpc/platforms/44x/ppc44x_simple.c b/arch/powerpc/platforms/44x/ppc44x_simple.c
index 2c78cc8bc59..5f4a4548c6b 100644
--- a/arch/powerpc/platforms/44x/ppc44x_simple.c
+++ b/arch/powerpc/platforms/44x/ppc44x_simple.c
@@ -54,6 +54,7 @@ static char *board[] __initdata = {
"amcc,bamboo",
"amcc,beech",
"amcc,apollo3g",
+ "amcc,bluestone",
"amcc,canyonlands",
"amcc,glacier",
"ibm,ebony",
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c
index 716b57f1e03..94ff12e0bac 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -1960,7 +1960,8 @@ static void __init ppc4xx_pciex_port_setup_hose(struct ppc4xx_pciex_port *port)
port->index);
}
#if defined (CONFIG_APM82181) && defined(CONFIG_PCIE_MAX_PAYLOAD_SIZE_256)
- ppc440_config_pcie_mps(hose);
+ if(port->link)
+ ppc440_config_pcie_mps(hose);
#endif
return;
fail: