diff options
Diffstat (limited to 'wl1271/TWD/FW_Transfer/fwDebug.c')
-rw-r--r-- | wl1271/TWD/FW_Transfer/fwDebug.c | 344 |
1 files changed, 0 insertions, 344 deletions
diff --git a/wl1271/TWD/FW_Transfer/fwDebug.c b/wl1271/TWD/FW_Transfer/fwDebug.c deleted file mode 100644 index aab35e5..0000000 --- a/wl1271/TWD/FW_Transfer/fwDebug.c +++ /dev/null @@ -1,344 +0,0 @@ -/* - * fwDebug.c - * - * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * * Neither the name Texas Instruments nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - - -/** \file FWDebug.c - * - * \see FWDebug.h - */ - -#define __FILE_ID__ FILE_ID_103 -#include "tidef.h" -#include "fwDebug_api.h" -#include "osApi.h" -#include "report.h" -#include "BusDrv.h" -#include "TwIf.h" - - - -#define DMA_SIZE_BUF 256 - -typedef struct -{ - TI_HANDLE hOs; - TI_HANDLE hReport; - TI_HANDLE hTwif; - - TFwDubCallback fCb; - TI_HANDLE hCb; - - TI_UINT8* pReadBuf; - - TTxnStruct tTxn; - TI_UINT8* pDMABuf; - -}TFwDebug; - -/* Local functions */ -static void fwDbg_WriteAddrCb (TI_HANDLE hFwDebug,TTxnStruct* pTxn); -static void fwDbg_ReadAddrCb (TI_HANDLE hFwDebug,TTxnStruct* pTxn); - - - -/* - * \brief Create the FW Debug module - * - * \param hOs - Handle to OS - * \return The created object - * - * \par Description - * This function will allocate memory to FW Debug module. - * - * \sa - */ -TI_HANDLE fwDbg_Create (TI_HANDLE hOs) -{ - TFwDebug *pFwDebug = (TFwDebug *)os_memoryAlloc(hOs,sizeof(TFwDebug)); - - if (pFwDebug == NULL) - { - WLAN_OS_REPORT (("FATAL ERROR: fwDbg_Create(): Error Creating TFwDebug - Aborting\n")); - return NULL; - } - - /* reset module object */ - os_memoryZero (hOs, pFwDebug, sizeof (TFwDebug)); - pFwDebug->hOs = hOs; - - return pFwDebug; -} - - -/* - * \brief Initialize the module - * - * \param hFwDebug - Handle to FW Debug - * \param hReport - Handle to report - * \param hTwif - Handle to TWIF - * \return none - * - * \par Description - * - * - * \sa - */ -void fwDbg_Init (TI_HANDLE hFwDebug, - TI_HANDLE hReport, - TI_HANDLE hTwif) -{ - TFwDebug* pFwDebug = (TFwDebug*)hFwDebug; - pFwDebug->hReport = hReport; - pFwDebug->hTwif = hTwif; - - /* Allocate DMA memory for read write transact */ - pFwDebug->pDMABuf = (TI_UINT8*)os_memoryAlloc(pFwDebug->hOs,DMA_SIZE_BUF); -} - - -/* - * \brief Destroy the object - * - * \param hFwDebug - Handle to FW Debug - * \return none - * - * \par Description - * Deallocate the object memory - * - * \sa - */ -void fwDbg_Destroy (TI_HANDLE hFwDebug) -{ - TFwDebug* pFwDebug = (TFwDebug*)hFwDebug; - - if (pFwDebug) - { - if (pFwDebug->pDMABuf) - { - os_memoryFree(pFwDebug->hOs,pFwDebug->pDMABuf,DMA_SIZE_BUF); - } - os_memoryFree(pFwDebug->hOs,pFwDebug,sizeof(pFwDebug)); - } -} - - -/* - * \brief Write Address to FW - * - * \param hFwDebug - Handle to FW Debug - * \param Address - Absolute HW address - * \param Length - Length in byte to write - * \param Buffer - Buffer to copy to FW - * \param fCb - CB function - * \param hCb - CB Handle - * \return none - * - * \par Description - * Write buffer to HW must receive length in byte max size 256 bytes - * address must be absolute HW address. - * - * \sa - */ -TI_STATUS fwDbg_WriteAddr (TI_HANDLE hFwDebug, - TI_UINT32 Address, - TI_UINT32 Length, - TI_UINT8* Buffer, - TFwDubCallback fCb, - TI_HANDLE hCb) -{ - TI_STATUS rc; - TTxnStruct *pTxn; - TFwDebug* pFwDebug = (TFwDebug*)hFwDebug; - - pTxn = &pFwDebug->tTxn; - - /* check if length is large than default threshold */ - if (Length > DMA_SIZE_BUF) - { -TRACE1(pFwDebug->hOs, REPORT_SEVERITY_ERROR, "fwDbg_WriteAddr : Buffer Length too large -- %d",Length); - return TXN_STATUS_ERROR; - } - - pFwDebug->fCb = fCb; - pFwDebug->hCb = hCb; - /* copy the given buffer to DMA buffer */ - os_memoryCopy(pFwDebug->hOs,pFwDebug->pDMABuf,Buffer,Length); - /* Build the command TxnStruct */ - TXN_PARAM_SET(pTxn, TXN_LOW_PRIORITY, TXN_FUNC_ID_WLAN, TXN_DIRECTION_WRITE, TXN_INC_ADDR) - /* Applying a CB in case of an async read */ - BUILD_TTxnStruct(pTxn, Address, pFwDebug->pDMABuf, Length,(TTxnDoneCb)fwDbg_WriteAddrCb, pFwDebug) - rc = twIf_Transact(pFwDebug->hTwif,pTxn); - - return rc; -} - - -/* - * \brief Read Address to FW - * - * \param hFwDebug - Handle to FW Debug - * \param Address - Absolute HW address - * \param Length - Length in byte to write - * \param Buffer - Buffer to copy to FW - * \param fCb - CB function - * \param hCb - CB Handle - * \return none - * - * \par Description - * Read from HW, must receive length in byte max size 256 bytes - * address must be absolute HW address. - * - * \sa - */ -TI_STATUS fwDbg_ReadAddr (TI_HANDLE hFwDebug, - TI_UINT32 Address, - TI_UINT32 Length, - TI_UINT8* Buffer, - TFwDubCallback fCb, - TI_HANDLE hCb) -{ - TI_STATUS rc; - TTxnStruct *pTxn; - TFwDebug *pFwDebug = (TFwDebug*)hFwDebug; - pTxn = &pFwDebug->tTxn; - /* check if length is large than default threshold */ - if (Length > DMA_SIZE_BUF) - { -TRACE1(pFwDebug->hOs, REPORT_SEVERITY_ERROR, "fwDbg_ReadAddr : Buffer Length too large -- %d",Length); - return TXN_STATUS_ERROR; - } - - pFwDebug->fCb = fCb; - pFwDebug->hCb = hCb; - pFwDebug->pReadBuf = Buffer; - - /* Build the command TxnStruct */ - TXN_PARAM_SET(pTxn, TXN_LOW_PRIORITY, TXN_FUNC_ID_WLAN, TXN_DIRECTION_READ, TXN_INC_ADDR) - /* Applying a CB in case of an async read */ - BUILD_TTxnStruct(pTxn, Address, pFwDebug->pDMABuf, Length,(TTxnDoneCb)fwDbg_ReadAddrCb, pFwDebug) - rc = twIf_Transact(pFwDebug->hTwif,pTxn); - if (rc == TXN_STATUS_COMPLETE) - { - /* copy from DMA buufer to given buffer */ - os_memoryCopy(pFwDebug->hOs,pFwDebug->pReadBuf,pFwDebug->pDMABuf,Length); - } - return rc; -} - - -/* - * \brief Write CB function - * - * \param hFwDebug - Handle to FW Debug - * \param pTxn - pointer ti Transact - * \return none - * - * \par Description - * This function called from TWIF upon Async Write - * - * \sa - */ -static void fwDbg_WriteAddrCb (TI_HANDLE hFwDebug,TTxnStruct* pTxn) -{ - TFwDebug *pFwDebug = (TFwDebug*)hFwDebug; - - if (pFwDebug->fCb && pFwDebug->hCb) - { - pFwDebug->fCb(pFwDebug->hCb); - } -} - - -/* - * \brief Read CB function - * - * \param hFwDebug - Handle to FW Debug - * \param pTxn - pointer ti Transact - * \return none - * - * \par Description - * This function called from TWIF upon Async Read - * - * \sa - */ -static void fwDbg_ReadAddrCb (TI_HANDLE hFwDebug,TTxnStruct* pTxn) -{ - TFwDebug *pFwDebug = (TFwDebug*)hFwDebug; - /* copy from DMA buufer to given buffer */ - os_memoryCopy(pFwDebug->hOs,pFwDebug->pReadBuf,pFwDebug->pDMABuf,pTxn->aLen[0]); - - if (pFwDebug->fCb && pFwDebug->hCb) - { - pFwDebug->fCb(pFwDebug->hCb); - } -} - - -/* - * \brief Check HW address - * - * \param hFwDebug - Handle to FW Debug - * \return TI_TRUE, TI_FALSE - * - * \par Description - * This function called to check the given address to be a valid memory address. - * - * \sa - */ -TI_BOOL fwDbg_isValidMemoryAddr (TI_HANDLE hFwDebug, TI_UINT32 Address, TI_UINT32 Length) -{ - TFwDebug *pFwDebug = (TFwDebug*)hFwDebug; - - return twIf_isValidMemoryAddr(pFwDebug->hTwif, Address, Length); -} - - -/* - * \brief Check HW address - * - * \param hFwDebug - Handle to FW Debug - * \return TI_TRUE, TI_FALSE - * - * \par Description - * This function called to check the given address to be a valid register address. - * - * \sa - */ -TI_BOOL fwDbg_isValidRegAddr (TI_HANDLE hFwDebug, TI_UINT32 Address, TI_UINT32 Length) -{ - TFwDebug *pFwDebug = (TFwDebug*)hFwDebug; - - return twIf_isValidRegAddr(pFwDebug->hTwif, Address, Length); -} - |