📄 hfctldevcfgfunc.c
字号:
printf("hfCtlDevDMA0FuncConfigList: DMACSR0 = 0x%.8x\n", *pTempCharData);
/* get DMA register DMAARB0 */
iStatus = HFCtlPmcGetRegDmaArbitration(fd, pTempData);
if (iStatus == ERROR)
{
return(ERROR);
}
printf("hfCtlDevDMA0FuncConfigList: DMAARB0 = 0x%.8x\n", *pTempData);
/* get DMA register DMATHR */
iStatus = HFCtlPmcGetRegDmaThreshold(fd, pTempData);
if (iStatus == ERROR)
{
return(ERROR);
}
printf("hfCtlDevDMA0FuncConfigList: DMATHR = 0x%.8x\n", *pTempData);
/* get DMA register DMADAC0 */
iStatus = HFCtlPmcGetRegDmaDAC0(fd, pTempData);
if (iStatus == ERROR)
{
return(ERROR);
}
printf("hfCtlDevDMA0FuncConfigList: DMADAC0 = 0x%.8x\n", *pTempData);
return(OK);
}
/******************************************************************************
TITLE: hfCtlDevLAS0ConfigTest
DESC: test routine of hfCtlDevLAS0ConfigList() and hfCtlDevLAS0Config()
PARAM: fd - file descriptor
RETURN: OK - operation was successful
ERROR - operation Failed
******************************************************************************/
STATUS hfCtlDevLAS0ConfigTest(int iReadTime, int iDebug)
{
int i;
int iHfCtlFd;
int iStatus;
char hfCtldevName[15];
unsigned long ulRegData;
unsigned char ucRegCharData;
unsigned long *pTempData;
unsigned char *pTempCharData;
unsigned long *pLocalSpace0Adrs;
unsigned long *pLocalSpace1Adrs;
sprintf(hfCtldevName, "/HFCtlPmc/0");
/* open the device */
iHfCtlFd = open(hfCtldevName, O_RDWR, 0644);
if (iHfCtlFd == ERROR)
{
printf("hfCtlDevLAS0ConfigTest: Unable to open HfCtlDev device!\n");
return(ERROR);
}
iStatus = hfCtlDevLAS0ConfigList(iHfCtlFd);
if (iStatus == ERROR)
{
printf("hfCtlDevLAS0ConfigTest: hfCtlDevLAS0ConfigList() failed!\n");
close(iHfCtlFd);
return(ERROR);
}
#if 0
iStatus = hfCtlDevLAS0Config(iHfCtlFd);
if (iStatus == ERROR)
{
printf("hfCtlDevLAS0ConfigTest: hfCtlDevLAS0Config() failed!\n");
close(iHfCtlFd);
return(ERROR);
}
/*
printf("hfCtlDevLAS0ConfigTest: AFTER config LAS0!\n");
*/ /* comment by chenxuhao at 2004-12-2 */
iStatus = hfCtlDevLAS0ConfigList(iHfCtlFd);
if (iStatus == ERROR)
{
printf("hfCtlDevLAS0ConfigTest: hfCtlDevLAS0ConfigList() failed!\n");
close(iHfCtlFd);
return(ERROR);
}
#endif /* if 0 */
/* start a direct slave read */
pLocalSpace0Adrs = (unsigned long *)(HFCtlPmcDev.boardDataSpace0);
if (iDebug)
{
printf("hfCtlDevLAS0ConfigTest: pLocalSpace0Adrs = 0x%.8x\n", pLocalSpace0Adrs);
}
for(i = 0; i < iReadTime; i++)
{
printf("hfCtlDevLAS0ConfigTest: 0x%.8x = 0x%.8x\n", &pLocalSpace0Adrs[i], pLocalSpace0Adrs[i]);
}
/* start a direct slave write */
pLocalSpace0Adrs = (unsigned long *)(HFCtlPmcDev.boardDataSpace0);
if (iDebug)
{
printf("hfCtlDevLAS0ConfigTest: pLocalSpace0Adrs = 0x%.8x\n", pLocalSpace0Adrs);
}
for(i = 0; i < iReadTime; i++)
{
pLocalSpace0Adrs[i + 6] = 0xaaaa5555 + i * 5;
}
/* start a direct slave read */
pLocalSpace0Adrs = (unsigned long *)(HFCtlPmcDev.boardDataSpace0);
if (iDebug)
{
printf("hfCtlDevLAS0ConfigTest: pLocalSpace0Adrs = 0x%.8x\n", pLocalSpace0Adrs);
}
for(i = 0; i < iReadTime; i++)
{
printf("hfCtlDevLAS0ConfigTest: 0x%.8x = 0x%.8x\n", &pLocalSpace0Adrs[i + 6], pLocalSpace0Adrs[i + 6]);
}
/* close the device */
close(iHfCtlFd);
return(OK);
}
/******************************************************************************
TITLE: hfCtlDevLAS0Config1Test
DESC: test routine of hfCtlDevLAS0ConfigList() and hfCtlDevLAS0Config()
PARAM: iOffset - offset address
iReadTime - number of DW to read
iDebug - switch to list Debug info
RETURN: OK - operation was successful
ERROR - operation Failed
******************************************************************************/
STATUS hfCtlDevLAS0Config1Test(int iOffset, int iReadTime, int iDebug, int iRdWrOn)
{
int i;
int iHfCtlFd;
int iStatus;
char hfCtldevName[15];
unsigned long ulRegData;
unsigned char ucRegCharData;
unsigned long *pTempData;
unsigned char *pTempCharData;
unsigned long *pLocalSpace0Adrs;
unsigned long *pLocalSpace1Adrs;
sprintf(hfCtldevName, "/HFCtlPmc/0");
/* open the device */
iHfCtlFd = open(hfCtldevName, O_RDWR, 0644);
if (iHfCtlFd == ERROR)
{
printf("hfCtlDevLAS0Config1Test: Unable to open HfCtlDev device!\n");
return(ERROR);
}
iStatus = hfCtlDevLAS0ConfigList(iHfCtlFd);
if (iStatus == ERROR)
{
printf("hfCtlDevLAS0Config1Test: hfCtlDevLAS0ConfigList() failed!\n");
close(iHfCtlFd);
return(ERROR);
}
#if 0
iStatus = hfCtlDevLAS0Config(iHfCtlFd);
if (iStatus == ERROR)
{
printf("hfCtlDevLAS0Config1Test: hfCtlDevLAS0Config() failed!\n");
close(iHfCtlFd);
return(ERROR);
}
/*
printf("hfCtlDevLAS0Config1Test: AFTER config LAS0!\n");
*/ /* comment by chenxuhao at 2004-12-2 */
iStatus = hfCtlDevLAS0ConfigList(iHfCtlFd);
if (iStatus == ERROR)
{
printf("hfCtlDevLAS0Config1Test: hfCtlDevLAS0ConfigList() failed!\n");
close(iHfCtlFd);
return(ERROR);
}
#endif /* if 0 */
if (iRdWrOn & 0x1)
{
/* start a direct slave read */
pLocalSpace0Adrs = (unsigned long *)(HFCtlPmcDev.boardDataSpace0 + iOffset);
if (iDebug)
{
printf("hfCtlDevLAS0Config1Test: pLocalSpace0Adrs = 0x%.8x\n", pLocalSpace0Adrs);
}
for(i = 0; i < iReadTime; i++)
{
printf("hfCtlDevLAS0Config1Test: 0x%.8x = 0x%.8x\n", &pLocalSpace0Adrs[i], pLocalSpace0Adrs[i]);
}
}
if (iRdWrOn & 0x2)
{
/* start a direct slave write */
pLocalSpace0Adrs = (unsigned long *)(HFCtlPmcDev.boardDataSpace0 + iOffset);
if (iDebug)
{
printf("hfCtlDevLAS0Config1Test: pLocalSpace0Adrs = 0x%.8x\n", pLocalSpace0Adrs);
}
for(i = 0; i < iReadTime; i++)
{
pLocalSpace0Adrs[i] = 0xaaaa8888 + i * 5;
}
}
#if 0
/* start a direct slave read */
pLocalSpace0Adrs = (unsigned long *)(HFCtlPmcDev.boardDataSpace0);
if (iDebug)
{
printf("hfCtlDevLAS0Config1Test: pLocalSpace0Adrs = 0x%.8x\n", pLocalSpace0Adrs);
}
for(i = 0; i < iReadTime; i++)
{
printf("hfCtlDevLAS0Config1Test: 0x%.8x = 0x%.8x\n", &pLocalSpace0Adrs[i], pLocalSpace0Adrs[i]);
}
#endif /* if 0 */
/* close the device */
close(iHfCtlFd);
return(OK);
}
/******************************************************************************
TITLE: hfCtlDevLAS0ConfigListTest
DESC: test routine of hfCtlDevLAS0ConfigList()
PARAM: fd - file descriptor
RETURN: OK - operation was successful
ERROR - operation Failed
******************************************************************************/
STATUS hfCtlDevLAS0ConfigListTest()
{
int i;
int iHfCtlFd;
int iStatus;
char hfCtldevName[15];
unsigned long ulRegData;
unsigned char ucRegCharData;
unsigned long *pTempData;
unsigned char *pTempCharData;
unsigned long *pLocalSpace0Adrs;
unsigned long *pLocalSpace1Adrs;
sprintf(hfCtldevName, "/HFCtlPmc/0");
/* open the device */
iHfCtlFd = open(hfCtldevName, O_RDWR, 0644);
if (iHfCtlFd == ERROR)
{
printf("hfCtlDevLAS0ConfigTest: Unable to open HfCtlDev device!\n");
return(ERROR);
}
iStatus = hfCtlDevLAS0ConfigList(iHfCtlFd);
if (iStatus == ERROR)
{
printf("hfCtlDevLAS0ConfigTest: hfCtlDevLAS0ConfigList() failed!\n");
close(iHfCtlFd);
return(ERROR);
}
/* close the device */
close(iHfCtlFd);
return(OK);
}
/******************************************************************************
TITLE: hfCtlDevDMA0FuncConfigListTest
DESC: test routine of hfCtlDevDMA0FuncConfigList()
PARAM: NONE
RETURN: OK - operation was successful
ERROR - operation Failed
******************************************************************************/
STATUS hfCtlDevDMA0FuncConfigListTest()
{
int i;
int iHfCtlFd;
int iStatus;
char hfCtldevName[15];
unsigned long ulRegData;
unsigned char ucRegCharData;
unsigned long *pTempData;
unsigned char *pTempCharData;
unsigned long *pLocalSpace0Adrs;
unsigned long *pLocalSpace1Adrs;
sprintf(hfCtldevName, "/HFCtlPmc/0");
/* open the device */
iHfCtlFd = open(hfCtldevName, O_RDWR, 0644);
if (iHfCtlFd == ERROR)
{
printf("hfCtlDevDMA0FuncConfigListTest: Unable to open HfCtlDev device!\n");
return(ERROR);
}
iStatus = hfCtlDevDMA0FuncConfigList(iHfCtlFd);
if (iStatus == ERROR)
{
printf("hfCtlDevDMA0FuncConfigListTest: hfCtlDevDMA0FuncConfigList() failed!\n");
close(iHfCtlFd);
return(ERROR);
}
/* close the device */
close(iHfCtlFd);
return(OK);
}
/******************************************************************************
TITLE: hfCtlDevDMA0FuncConfigListTest
DESC: test routine of hfCtlDevDMA0FuncConfig()
PARAM: iRead - switch to read or write
iDmaByteSize - dma size in Bytes
RETURN: OK - operation was successful
ERROR - operation Failed
******************************************************************************/
STATUS hfCtlDevDMA0FuncConfigTest(int iRead, int iDmaByteSize)
{
int i;
int iHfCtlFd;
int iStatus;
char hfCtldevName[15];
unsigned long ulDmaDataPciAdrs;
unsigned long *pDmaDataAdrs;
unsigned long *pLocalSpace0Adrs;
HFCTL_PCIDMA hfCtlPciDma;
pDmaDataAdrs = malloc(iDmaByteSize);
if (pDmaDataAdrs == NULL)
{
printf("hfCtlDevDMA0FuncConfigTest: memory allocation failed!\n");
return(ERROR);
}
bfill((unsigned char *)pDmaDataAdrs, iDmaByteSize, 0);
#if 0
for(i = 0; i < (iDmaByteSize / 4); i++)
{
printf("hfCtlDevDMA0FuncConfigTest: pDmaDataAdrs[%d] = 0x%.8x\n", i, pDmaDataAdrs[i]);
}
#endif /* if 0 */
ulDmaDataPciAdrs = (unsigned long)LOCAL2PCI_MEM((unsigned long)pDmaDataAdrs);
#if 0
printf("hfCtlDevDMA0FuncConfigTest: pDmaDataAdrs = 0x%.8x\n", pDmaDataAdrs);
printf("hfCtlDevDMA0FuncConfigTest: ulDmaDataPciAdrs = 0x%.8x\n", ulDmaDataPciAdrs);
#endif /* if 0 */
sprintf(hfCtldevName, "/HFCtlPmc/0");
/* open the device */
iHfCtlFd = open(hfCtldevName, O_RDWR, 0644);
if (iHfCtlFd == ERROR)
{
printf("hfCtlDevDMA0FuncConfigTest: Unable to open HfCtlDev device!\n");
free(pDmaDataAdrs);
return(ERROR);
}
if (iRead)
{
printf("hfCtlDevDMA0FuncConfigTest: iRead = %d\n", iRead);
hfCtlPciDma.pciAddress = ulDmaDataPciAdrs;
hfCtlPciDma.LocalAddress = 0;
hfCtlPciDma.count = iDmaByteSize;
hfCtlPciDma.lockAdrs = FALSE;
hfCtlPciDma.Read = TRUE;
iStatus = hfCtlDevDMA0FuncConfig(iHfCtlFd, &hfCtlPciDma);
if (iStatus == ERROR)
{
printf("hfCtlDevDMA0FuncConfigTest: hfCtlDevDMA0FuncConfig() failed!\n");
free(pDmaDataAdrs);
close(iHfCtlFd);
return(ERROR);
}
#if 0
for(i = 0; i < (iDmaByteSize / 4); i++)
{
printf("hfCtlDevDMA0FuncConfigTest: pDmaDataAdrs[%d] = 0x%.8x\n", i, pDmaDataAdrs[i]);
}
#endif /* if 0 */
cacheInvalidate(DATA_CACHE, pDmaDataAdrs, iDmaByteSize);
for(i = 0; i < (iDmaByteSize / 4); i++)
{
printf("hfCtlDevDMA0FuncConfigTest: pDmaDataAdrs[%d] = 0x%.8x\n", i, pDmaDataAdrs[i]);
}
}
else
{
for(i = 0; i < (iDmaByteSize / 4); i++)
{
pDmaDataAdrs[i] = 0x12345678 + i * 8;
}
cacheFlush(DATA_CACHE, pDmaDataAdrs, iDmaByteSize);
for(i = 0; i < (iDmaByteSize / 4); i++)
{
printf("hfCtlDevDMA0FuncConfigTest: pDmaDataAdrs[%d] = 0x%.8x\n", i, pDmaDataAdrs[i]);
}
hfCtlPciDma.pciAddress = ulDmaDataPciAdrs;
hfCtlPciDma.LocalAddress = 6 * 4;
hfCtlPciDma.count = iDmaByteSize;
hfCtlPciDma.lockAdrs = FALSE;
hfCtlPciDma.Read = FALSE;
iStatus = hfCtlDevDMA0FuncConfig(iHfCtlFd, &hfCtlPciDma);
if (iStatus == ERROR)
{
printf("hfCtlDevDMA0FuncConfigTest: hfCtlDevDMA0FuncConfig() failed!\n");
free(pDmaDataAdrs);
close(iHfCtlFd);
return(ERROR);
}
/* start a direct slave read */
pLocalSpace0Adrs = (unsigned long *)(HFCtlPmcDev.boardDataSpace0);
for(i = 0; i < (iDmaByteSize / 4); i++)
{
printf("hfCtlDevLocalSpace0ReadTest: 0x%.8x = 0x%.8x\n", &pLocalSpace0Adrs[i + 6], pLocalSpace0Adrs[i + 6]);
}
}
/* free the memory */
free(pDmaDataAdrs);
/* close the device */
close(iHfCtlFd);
return(OK);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -