package/ifx-vmmc/Makefile |
72 | 72 | ifeq ($(CONFIG_VOICE_CPE_VMMC_WITH_DEVICE_DANUBE_extract),y) |
73 | 73 | CONFIGURE_ARGS += --with-device=DANUBE |
74 | 74 | FW_TARGET:=danube_firmware.bin |
| 75 | FW_SOURCE:=danube_firmware.bin |
75 | 76 | FW_URL:=http://www.arcor.de/hilfe/files/pdf/ |
76 | 77 | FW_FILE=arcor_A800_452CPW_FW_1.02.206(20081201).bin |
77 | 78 | FW_MD5SUM:=19d9af4e369287a0f0abaed415cdac10 |
... | ... | |
82 | 83 | |
83 | 84 | ifeq ($(CONFIG_VOICE_CPE_VMMC_WITH_DEVICE_DANUBE),y) |
84 | 85 | CONFIGURE_ARGS += --with-device=DANUBE |
| 86 | FW_SOURCE:=voip_R12.1.0.1.0-enc.bin |
85 | 87 | FW_TARGET:=danube_firmware.bin |
86 | 88 | FW_FILE=fw_voip_danube-12.1.0.1.0.tar.gz |
87 | 89 | FW_MD5SUM:=51868b88dee9dbc65d3dbba355ded91c |
... | ... | |
152 | 154 | define KernelPackage/ifx-vmmc/install |
153 | 155 | $(INSTALL_DIR) $(1)/etc/init.d $(1)/$(FW_DIR) |
154 | 156 | $(INSTALL_BIN) ./files/vmmc.init $(1)/etc/init.d/vmmc |
155 | | $(CP) $(PKG_BUILD_DIR)/firmware/$(FW_TARGET) $(1)/$(FW_DIR)/$(FW_TARGET) |
| 157 | $(CP) $(PKG_BUILD_DIR)/firmware/$(FW_SOURCE) $(1)/$(FW_DIR)/$(FW_TARGET) |
156 | 158 | $(CP) $(PKG_BUILD_DIR)/coef/$(COEF_TARGET) $(1)/$(FW_DIR)/$(COEF_TARGET) |
157 | 159 | endef |
158 | 160 | |
package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch |
351 | 351 | timer = TIMER1A; |
352 | 352 | --- a/src/mps/drv_mps_vmmc_danube.c |
353 | 353 | +++ b/src/mps/drv_mps_vmmc_danube.c |
354 | | @@ -32,9 +32,22 @@ |
| 354 | @@ -32,9 +32,20 @@ |
355 | 355 | #include "ifxos_select.h" |
356 | 356 | #include "ifxos_interrupt.h" |
357 | 357 | |
... | ... | |
363 | 363 | +# include <asm/mach-ifxmips/ifxmips_irq.h> |
364 | 364 | +# include <asm/mach-ifxmips/ifxmips_gptu.h> |
365 | 365 | +# include <asm/mach-ifxmips/ifxmips_prom.h> |
| 366 | +# include <linux/dma-mapping.h> |
366 | 367 | + |
367 | 368 | +# define IFX_RCU_RST_REQ IFXMIPS_RCU_RST |
368 | 369 | +# define IFX_RCU_RST_REQ_CPU1 IFXMIPS_RCU_RST_CPU1 |
369 | | + |
370 | | +# define ifx_get_cp1_base prom_get_cp1_base |
371 | | +# define ifx_get_cp1_size prom_get_cp1_size |
372 | 370 | +#else |
373 | 371 | +# include <asm/ifx/ifx_regs.h> |
374 | 372 | +# include <asm/ifx_vpe.h> |
... | ... | |
377 | 375 | |
378 | 376 | #include "drv_mps_vmmc.h" |
379 | 377 | #include "drv_mps_vmmc_dbg.h" |
| 378 | @@ -72,6 +71,23 @@ volatile IFX_uint32_t *danube_cp1_base; |
| 379 | /* Local function definition */ |
| 380 | /* ============================= */ |
| 381 | |
| 382 | +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)) |
| 383 | +IFX_uint32_t ifx_get_cp1_size(IFX_void_t) |
| 384 | +{ |
| 385 | + return 2; |
| 386 | +} |
| 387 | + |
| 388 | +IFX_uint32_t *ifx_get_cp1_base(IFX_void_t) |
| 389 | +{ |
| 390 | + if (!danube_cp1_base) { |
| 391 | + dma_addr_t dma; |
| 392 | + danube_cp1_base = dma_alloc_coherent(NULL, ifx_get_cp1_size()<<20, &dma, GFP_ATOMIC); |
| 393 | + } |
| 394 | + |
| 395 | + return (IFX_uint32_t*)danube_cp1_base; |
| 396 | +} |
| 397 | +#endif |
| 398 | + |
| 399 | /****************************************************************************** |
| 400 | * DANUBE Specific Routines |
| 401 | ******************************************************************************/ |
380 | 402 | @@ -119,6 +132,15 @@ IFX_int32_t ifx_mps_download_firmware (m |
381 | 403 | } |
382 | 404 | |
target/linux/ifxmips/files-2.6.33/arch/mips/ifxmips/common/prom.c |
9 | 9 | #include <ifxmips.h> |
10 | 10 | #include <ifxmips_prom.h> |
11 | 11 | |
12 | | /* for voice cpu (MIPS24K) */ |
13 | | unsigned int *prom_cp1_base; |
14 | | unsigned int prom_cp1_size = 0; |
15 | | |
16 | 12 | /* for Multithreading (APRP) on MIPS34K */ |
17 | 13 | unsigned long physical_memsize; |
18 | 14 | |
... | ... | |
21 | 17 | { |
22 | 18 | } |
23 | 19 | |
24 | | unsigned int* |
25 | | prom_get_cp1_base(void) |
26 | | { |
27 | | return prom_cp1_base; |
28 | | } |
29 | | EXPORT_SYMBOL(prom_get_cp1_base); |
30 | | |
31 | | unsigned int |
32 | | prom_get_cp1_size(void) |
33 | | { |
34 | | /* return size im MB */ |
35 | | return prom_cp1_size>>20; |
36 | | } |
37 | | EXPORT_SYMBOL(prom_get_cp1_size); |
38 | | |
39 | 20 | extern unsigned char ifxmips_ethaddr[6]; |
40 | 21 | int cmdline_mac = 0; |
41 | 22 | |
... | ... | |
115 | 96 | } |
116 | 97 | memsize *= 1024 * 1024; |
117 | 98 | |
118 | | /* only on Twinpass/Danube a second CPU is used for Voice */ |
119 | | if ((cpu_data[0].cputype == CPU_24K) && (prom_cp1_size)) |
120 | | { |
121 | | #define CP1_SIZE 2 << 20 |
122 | | prom_cp1_size = CP1_SIZE; |
123 | | memsize -= prom_cp1_size; |
124 | | prom_cp1_base = (unsigned int *)KSEG1ADDR(memsize); |
125 | | |
126 | | early_printf("Using %dMB Ram and reserving %dMB for cp1\n", |
127 | | memsize>>20, prom_cp1_size>>20); |
128 | | } |
129 | | |
130 | 99 | add_memory_region(0x00000000, memsize, BOOT_MEM_RAM); |
131 | 100 | } |
132 | 101 | |
target/linux/ifxmips/patches-2.6.33/200-cfi-swap.patch |
25 | 25 | case FL_WRITING: |
26 | 26 | --- a/drivers/mtd/chips/cfi_cmdset_0002.c |
27 | 27 | +++ b/drivers/mtd/chips/cfi_cmdset_0002.c |
28 | | @@ -1068,7 +1068,9 @@ static int __xipram do_write_oneword(str |
| 28 | @@ -39,7 +39,11 @@ |
| 29 | #include <linux/mtd/xip.h> |
| 30 | |
| 31 | #define AMD_BOOTLOC_BUG |
| 32 | -#define FORCE_WORD_WRITE 0 |
| 33 | +#ifdef CONFIG_IFXMIPS |
| 34 | +# define FORCE_WORD_WRITE 1 |
| 35 | +#else |
| 36 | +# define FORCE_WORD_WRITE 0 |
| 37 | +#endif |
| 38 | |
| 39 | #define MAX_WORD_RETRIES 3 |
| 40 | |
| 41 | @@ -1096,7 +1096,9 @@ static int __xipram do_write_oneword(str |
29 | 42 | int retry_cnt = 0; |
30 | 43 | |
31 | 44 | adr += chip->start; |