/*----------------------------------------------------------------------------*/ BOOL kalDevPortRead ( IN P_GLUE_INFO_T prGlueInfo, IN UINT_32 u4Port, IN UINT_32 u4Len, OUT PUINT_8 pucBuf, IN UINT_32 u4ValidOutBufSize ) { ASSERT(u4Len); #if DBG if (IS_NOT_ALIGN_4((UINT_32)pucBuf) || (u4Len & 0x03)) { DBGLOG(HAL, ERROR, ("kalDevPortRead error, address: 0x%p, len:%d!\n", pucBuf, u4Len)); return FALSE; } #endif GLUE_ACQUIRE_SPIN_LOCK(prGlueInfo, SPIN_LOCK_SPI_ACCESS); SpiReadWriteData32(SPI_FUN_RD, u4Port, pucBuf, u4Len); GLUE_RELEASE_SPIN_LOCK(prGlueInfo, SPIN_LOCK_SPI_ACCESS); return TRUE; } /* kalDevPortRead */
/*----------------------------------------------------------------------------*/ VOID dumpMemory32(IN PUINT_32 pu4StartAddr, IN UINT_32 u4Length) { PUINT_8 pucAddr; ASSERT(pu4StartAddr); LOG_FUNC("DUMP32 ADDRESS: %p, Length: %u\n", pu4StartAddr, u4Length); if (IS_NOT_ALIGN_4((ULONG) pu4StartAddr)) { UINT_32 u4ProtrudeLen = sizeof(UINT_32) - ((ULONG) pu4StartAddr % 4); u4ProtrudeLen = ((u4Length < u4ProtrudeLen) ? u4Length : u4ProtrudeLen); LOG_FUNC("pu4StartAddr is not at DW boundary.\n"); pucAddr = (PUINT_8) &pu4StartAddr[0]; switch (u4ProtrudeLen) { case 1: LOG_FUNC("(%p) %02x------\n", pu4StartAddr, pucAddr[0]); break; case 2: LOG_FUNC("(%p) %02x%02x----\n", pu4StartAddr, pucAddr[1], pucAddr[0]); break; case 3: LOG_FUNC("(%p) %02x%02x%02x--\n", pu4StartAddr, pucAddr[2], pucAddr[1], pucAddr[0]); break; default: break; } u4Length -= u4ProtrudeLen; pu4StartAddr = (PUINT_32) ((ULONG) pu4StartAddr + u4ProtrudeLen); } while (u4Length > 0) { if (u4Length >= 16) { LOG_FUNC("(%p) %08x %08x %08x %08x\n", pu4StartAddr, pu4StartAddr[0], pu4StartAddr[1], pu4StartAddr[2], pu4StartAddr[3]); pu4StartAddr += 4; u4Length -= 16; } else { switch (u4Length) { case 1: pucAddr = (PUINT_8) &pu4StartAddr[0]; LOG_FUNC("(%p) ------%02x\n", pu4StartAddr, pucAddr[0]); break; case 2: pucAddr = (PUINT_8) &pu4StartAddr[0]; LOG_FUNC("(%p) ----%02x%02x\n", pu4StartAddr, pucAddr[1], pucAddr[0]); break; case 3: pucAddr = (PUINT_8) &pu4StartAddr[0]; LOG_FUNC("(%p) --%02x%02x%02x\n", pu4StartAddr, pucAddr[2], pucAddr[1], pucAddr[0]); break; case 4: LOG_FUNC("(%p) %08x\n", pu4StartAddr, pu4StartAddr[0]); break; case 5: pucAddr = (PUINT_8) &pu4StartAddr[1]; LOG_FUNC("(%p) %08x ------%02x\n", pu4StartAddr, pu4StartAddr[0], pucAddr[0]); break; case 6: pucAddr = (PUINT_8) &pu4StartAddr[1]; LOG_FUNC("(%p) %08x ----%02x%02x\n", pu4StartAddr, pu4StartAddr[0], pucAddr[1], pucAddr[0]); break; case 7: pucAddr = (PUINT_8) &pu4StartAddr[1]; LOG_FUNC("(%p) %08x --%02x%02x%02x\n", pu4StartAddr, pu4StartAddr[0], pucAddr[2], pucAddr[1], pucAddr[0]); break; case 8: LOG_FUNC("(%p) %08x %08x\n", pu4StartAddr, pu4StartAddr[0], pu4StartAddr[1]); break; case 9: pucAddr = (PUINT_8) &pu4StartAddr[2]; LOG_FUNC("(%p) %08x %08x ------%02x\n", pu4StartAddr, pu4StartAddr[0], pu4StartAddr[1], pucAddr[0]); break; case 10: pucAddr = (PUINT_8) &pu4StartAddr[2]; LOG_FUNC("(%p) %08x %08x ----%02x%02x\n", pu4StartAddr, pu4StartAddr[0], pu4StartAddr[1], pucAddr[1], pucAddr[0]); break; case 11: pucAddr = (PUINT_8) &pu4StartAddr[2]; LOG_FUNC("(%p) %08x %08x --%02x%02x%02x\n", pu4StartAddr, pu4StartAddr[0], pu4StartAddr[1], pucAddr[2], pucAddr[1], pucAddr[0]); break; case 12: LOG_FUNC("(%p) %08x %08x %08x\n", pu4StartAddr, pu4StartAddr[0], pu4StartAddr[1], pu4StartAddr[2]); break; case 13: pucAddr = (PUINT_8) &pu4StartAddr[3]; LOG_FUNC("(%p) %08x %08x %08x ------%02x\n", pu4StartAddr, pu4StartAddr[0], pu4StartAddr[1], pu4StartAddr[2], pucAddr[0]); break; case 14: pucAddr = (PUINT_8) &pu4StartAddr[3]; LOG_FUNC("(%p) %08x %08x %08x ----%02x%02x\n", pu4StartAddr, pu4StartAddr[0], pu4StartAddr[1], pu4StartAddr[2], pucAddr[1], pucAddr[0]); break; case 15: pucAddr = (PUINT_8) &pu4StartAddr[3]; LOG_FUNC("(%p) %08x %08x %08x --%02x%02x%02x\n", pu4StartAddr, pu4StartAddr[0], pu4StartAddr[1], pu4StartAddr[2], pucAddr[2], pucAddr[1], pucAddr[0]); break; /* default: break; */ } u4Length = 0; } } } /* end of dumpMemory32() */