diff options
Diffstat (limited to 'arch/powerpc')
-rwxr-xr-x | arch/powerpc/boot/dts/beech.dts | 9 | ||||
-rw-r--r-- | arch/powerpc/include/asm/apm82181-adma.h | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/dma.c | 10 | ||||
-rw-r--r-- | arch/powerpc/platforms/44x/Kconfig | 11 | ||||
-rw-r--r-- | arch/powerpc/platforms/44x/Makefile | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/44x/ppc44x_simple.c | 1 | ||||
-rw-r--r-- | arch/powerpc/sysdev/ppc4xx_pci.c | 3 |
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: |