summaryrefslogtreecommitdiffstats
path: root/package/ifx-vmmc
diff options
context:
space:
mode:
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-08-06 15:49:42 +0000
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-08-06 15:49:42 +0000
commit0b10449413b37ef9db55ec1dba598a6e16f0c466 (patch)
tree60b055fcb96e047becbeb0bc2c643591a1e9b628 /package/ifx-vmmc
parent661d69728519dd178dc614eee51245b26940a170 (diff)
[ifxmips]
* remove references to gpio_dev * make vmmc driver register its own memory and dont rely on arch code to do so * makes any Danube board with a CFI commandset 2 NOR flash chip functional again * fixes filenames of downloaded firmwares thanks, Ithamar R. Adema git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22515 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/ifx-vmmc')
-rw-r--r--package/ifx-vmmc/Makefile4
-rw-r--r--package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch30
2 files changed, 29 insertions, 5 deletions
diff --git a/package/ifx-vmmc/Makefile b/package/ifx-vmmc/Makefile
index c7f1593bf..e691cd151 100644
--- a/package/ifx-vmmc/Makefile
+++ b/package/ifx-vmmc/Makefile
@@ -72,6 +72,7 @@ FW_DIR:=lib/firmware
ifeq ($(CONFIG_VOICE_CPE_VMMC_WITH_DEVICE_DANUBE_extract),y)
CONFIGURE_ARGS += --with-device=DANUBE
FW_TARGET:=danube_firmware.bin
+ FW_SOURCE:=danube_firmware.bin
FW_URL:=http://www.arcor.de/hilfe/files/pdf/
FW_FILE=arcor_A800_452CPW_FW_1.02.206(20081201).bin
FW_MD5SUM:=19d9af4e369287a0f0abaed415cdac10
@@ -82,6 +83,7 @@ endif
ifeq ($(CONFIG_VOICE_CPE_VMMC_WITH_DEVICE_DANUBE),y)
CONFIGURE_ARGS += --with-device=DANUBE
+ FW_SOURCE:=voip_R12.1.0.1.0-enc.bin
FW_TARGET:=danube_firmware.bin
FW_FILE=fw_voip_danube-12.1.0.1.0.tar.gz
FW_MD5SUM:=51868b88dee9dbc65d3dbba355ded91c
@@ -152,7 +154,7 @@ endef
define KernelPackage/ifx-vmmc/install
$(INSTALL_DIR) $(1)/etc/init.d $(1)/$(FW_DIR)
$(INSTALL_BIN) ./files/vmmc.init $(1)/etc/init.d/vmmc
- $(CP) $(PKG_BUILD_DIR)/firmware/$(FW_TARGET) $(1)/$(FW_DIR)/$(FW_TARGET)
+ $(CP) $(PKG_BUILD_DIR)/firmware/$(FW_SOURCE) $(1)/$(FW_DIR)/$(FW_TARGET)
$(CP) $(PKG_BUILD_DIR)/coef/$(COEF_TARGET) $(1)/$(FW_DIR)/$(COEF_TARGET)
endef
diff --git a/package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch b/package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch
index 6a4cc8d59..5d3d1c6ca 100644
--- a/package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch
+++ b/package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch
@@ -351,7 +351,7 @@
timer = TIMER1A;
--- a/src/mps/drv_mps_vmmc_danube.c
+++ b/src/mps/drv_mps_vmmc_danube.c
-@@ -32,9 +32,22 @@
+@@ -32,9 +32,20 @@
#include "ifxos_select.h"
#include "ifxos_interrupt.h"
@@ -363,12 +363,10 @@
+# include <asm/mach-ifxmips/ifxmips_irq.h>
+# include <asm/mach-ifxmips/ifxmips_gptu.h>
+# include <asm/mach-ifxmips/ifxmips_prom.h>
++# include <linux/dma-mapping.h>
+
+# define IFX_RCU_RST_REQ IFXMIPS_RCU_RST
+# define IFX_RCU_RST_REQ_CPU1 IFXMIPS_RCU_RST_CPU1
-+
-+# define ifx_get_cp1_base prom_get_cp1_base
-+# define ifx_get_cp1_size prom_get_cp1_size
+#else
+# include <asm/ifx/ifx_regs.h>
+# include <asm/ifx_vpe.h>
@@ -377,6 +375,30 @@
#include "drv_mps_vmmc.h"
#include "drv_mps_vmmc_dbg.h"
+@@ -72,6 +71,23 @@ volatile IFX_uint32_t *danube_cp1_base;
+ /* Local function definition */
+ /* ============================= */
+
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28))
++IFX_uint32_t ifx_get_cp1_size(IFX_void_t)
++{
++ return 2;
++}
++
++IFX_uint32_t *ifx_get_cp1_base(IFX_void_t)
++{
++ if (!danube_cp1_base) {
++ dma_addr_t dma;
++ danube_cp1_base = dma_alloc_coherent(NULL, ifx_get_cp1_size()<<20, &dma, GFP_ATOMIC);
++ }
++
++ return (IFX_uint32_t*)danube_cp1_base;
++}
++#endif
++
+ /******************************************************************************
+ * DANUBE Specific Routines
+ ******************************************************************************/
@@ -119,6 +132,15 @@ IFX_int32_t ifx_mps_download_firmware (m
}