From 758e766b2df97af71a3d964f59840d1847b5d893 Mon Sep 17 00:00:00 2001 From: ghaddab Date: Mon, 13 Jan 2014 14:10:29 +0000 Subject: [PATCH] slight modification for 64 bits kernels git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4852 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- .../ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c | 33 +++++++++++-------- .../ARCH/EXMIMO/DRIVER/eurecom/module_main.c | 15 ++++----- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c b/targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c index 7b88055fee..09664e4215 100644 --- a/targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c +++ b/targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c @@ -54,16 +54,16 @@ void mem_ClearPageReserved(void *kvirt_addr, unsigned int size_pages) // returns -1 on error, 0 on success int bigshm_init(int card) { - printk("[openair][module] calling pci_alloc_consistent for card %d, bigshm (size: %u*%lu bytes)...\n", card, BIGSHM_SIZE_PAGES, PAGE_SIZE); + printk("[openair][module] calling pci_alloc_consistent for card %d, bigshm (size: %lu*%lu bytes)...\n", card, BIGSHM_SIZE_PAGES, PAGE_SIZE); if ( sizeof(dma_addr_t) != 4) - printk("!!! WARNING: sizeof (dma_addr_t) = %d! Only 32bit mode (= 4) (also: no PAE) is supported at this time!\n", sizeof(dma_addr_t)); + printk("!!! WARNING: sizeof (dma_addr_t) = %lu! Only 32bit mode (= 4) (also: no PAE) is supported at this time!\n", sizeof(dma_addr_t)); if ( bigshm_head[card] == NULL ) bigshm_head[card] = pci_alloc_consistent( pdev[card], BIGSHM_SIZE_PAGES<> PAGE_SHIFT) + 1; size <<= PAGE_SHIFT; for (j=0; jadc_head[j]) ); + + exmimo_pci_kvirt[card_id].adc_head[j] = (uint32_t *)pci_alloc_consistent( pdev[card_id], size, &dma_addr_dummy); + p_exmimo_pci_phys[card_id]->adc_head[j]=((uint32_t*)&dma_addr_dummy)[0]; printk("exmimo_pci_kvirt[%d].adc_head[%d] = %p (phys = %08x)\n", card_id, j, exmimo_pci_kvirt[card_id].adc_head[j], p_exmimo_pci_phys[card_id]->adc_head[j]); if ( exmimo_pci_kvirt[card_id].adc_head[j] == NULL) return -1; - + // printk("[MODULE MAIN0]Phys address TX[0] : (%8lx)\n",p_exmimo_pci_phys[0]->dac_head[ openair_mmap_getAntTX(2) ]); + mem_SetPageReserved( exmimo_pci_kvirt[card_id].adc_head[j], size >> PAGE_SHIFT ); memset( exmimo_pci_kvirt[card_id].adc_head[j], 0x10+j, size); + // printk("[MODULE MAIN1]Phys address TX[0] : (%8lx)\n",p_exmimo_pci_phys[0]->dac_head[ openair_mmap_getAntTX(2) ]); - exmimo_pci_kvirt[card_id].dac_head[j] = (uint32_t *)pci_alloc_consistent( pdev[card_id], size, - (dma_addr_t*)&(p_exmimo_pci_phys[card_id]->dac_head[j]) ); + exmimo_pci_kvirt[card_id].dac_head[j] = (uint32_t *)pci_alloc_consistent( pdev[card_id], size,&dma_addr_dummy); + p_exmimo_pci_phys[card_id]->dac_head[j]=((uint32_t*)&dma_addr_dummy)[0]; - printk("exmimo_pci_kvirt[%d].dac_head[%d] = %p (phys = %08x)\n", card_id, j, exmimo_pci_kvirt[card_id].dac_head[j], p_exmimo_pci_phys[card_id]->dac_head[j]); + // printk("exmimo_pci_kvirt[%d].dac_head[%d] = %p (phys = %08x)\n", card_id, j, exmimo_pci_kvirt[card_id].dac_head[j], p_exmimo_pci_phys[card_id]->dac_head[j]); if ( exmimo_pci_kvirt[card_id].dac_head[j] == NULL) return -ENOMEM; + // printk("[MODULE MAIN2]Phys address TX[0] : (%8lx)\n",p_exmimo_pci_phys[0]->dac_head[ openair_mmap_getAntTX(2) ]); mem_SetPageReserved( exmimo_pci_kvirt[card_id].dac_head[j], size >> PAGE_SHIFT ); memset( exmimo_pci_kvirt[card_id].dac_head[j], 0x20+j, size); + // printk("[MODULE MAIN3]Phys address TX[0] : (%8lx)\n",p_exmimo_pci_phys[0]->dac_head[ openair_mmap_getAntTX(2) ]); } return 0; } @@ -215,6 +220,7 @@ int exmimo_allocate_rx_tx_buffers(int card_id) */ int exmimo_memory_alloc(int card) { +int i; if ( bigshm_init( card ) ) { printk("exmimo_memory_alloc(): bigshm_init failed for card %d.\n", card); return -ENOMEM; @@ -229,6 +235,7 @@ int exmimo_memory_alloc(int card) printk("exmimo_memory_alloc(): exmimo_allocate_rx_tx_buffers() failed to allocate enough memory for RX and TX buffers for card %i!\n", card); return -ENOMEM; } + return 0; } @@ -281,7 +288,7 @@ int exmimo_firmware_cleanup(int card) } if ( bigshm_head[card] ) { - printk("free bigshm_head[%d] pdev %p, size %u, head %p, phys %x\n", card, pdev[card], BIGSHM_SIZE_PAGES< 0) - printk("[openair][INIT_MODULE][INFO]: Enabled PCIe error reporting\n"); - else - printk("[openair][INIT_MODULE][INFO]: Failed to enable PCIe error reporting\n"); + //if (pci_enable_pcie_error_reporting(pdev[card]) > 0) + // printk("[openair][INIT_MODULE][INFO]: Enabled PCIe error reporting\n"); + //else + // printk("[openair][INIT_MODULE][INFO]: Failed to enable PCIe error reporting\n"); - pci_cleanup_aer_uncorrect_error_status(pdev[card]); + //pci_cleanup_aer_uncorrect_error_status(pdev[card]); mmio_start[card] = pci_resource_start(pdev[card], 0); // get start of BAR0 mmio_length[card] = pci_resource_len (pdev[card], 0); @@ -202,7 +201,7 @@ static int __init openair_init_module( void ) openair_cleanup(); return -ENOMEM; } - + exmimo_pci_kvirt[card].exmimo_id_ptr->board_vendor = exmimo_id_tmp[card].board_vendor; exmimo_pci_kvirt[card].exmimo_id_ptr->board_exmimoversion = exmimo_id_tmp[card].board_exmimoversion; exmimo_pci_kvirt[card].exmimo_id_ptr->board_hwrev = exmimo_id_tmp[card].board_hwrev; @@ -276,7 +275,7 @@ static int __init openair_init_module( void ) static void __exit openair_cleanup_module(void) { - int card; + //int card; printk("[openair][CLEANUP MODULE]\n"); // stop any ongoing acquisition