From 0b10449413b37ef9db55ec1dba598a6e16f0c466 Mon Sep 17 00:00:00 2001 From: blogic Date: Fri, 6 Aug 2010 15:49:42 +0000 Subject: [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 --- package/ifx-vmmc/Makefile | 4 ++- package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch | 30 ++++++++++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) (limited to 'package') 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 +# include +# include ++# include + +# 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 +# include @@ -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 } -- cgit v1.2.3