⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pciconfigshow.c

📁 MPC8241:本程序是freescale的824*系列的BSP源程序
💻 C
📖 第 1 页 / 共 2 页
字号:
        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_PRE_MEM_LIMIT, 			 &pB->preLimit);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_PRE_MEM_BASE_U, 			 &pB->preBaseUpper);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_PRE_MEM_LIMIT_U, 			 &pB->preLimitUpper);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_IO_BASE_U, 			 &pB->ioBaseUpper);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_IO_LIMIT_U, 			 &pB->ioLimitUpper);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_ROM_BASE, 			 &pB->romBase);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_BRG_INT_LINE, 			 &pB->intLine);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_BRG_INT_PIN, 			 &pB->intPin);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_BRIDGE_CONTROL, 			 &pB->control);        pciBheaderPrint (pB);	}    else					/* PCI device */	{        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_VENDOR_ID, 			 &pD->vendorId);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_DEVICE_ID, 			 &pD->deviceId);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_COMMAND, 			 &pD->command);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_STATUS, 			 &pD->status);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_REVISION, 			 &pD->revisionId);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_PROGRAMMING_IF, 			 &pD->progIf);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_SUBCLASS, 			 &pD->subClass);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_CLASS, 			 &pD->classCode);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_CACHE_LINE_SIZE, 			 &pD->cacheLine);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_LATENCY_TIMER, 			 &pD->latency);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_HEADER_TYPE, 			 &pD->headerType);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_BIST, 			 &pD->bist);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_BASE_ADDRESS_0, 			 &pD->base0);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_BASE_ADDRESS_1, 			 &pD->base1);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_BASE_ADDRESS_2, 			 &pD->base2);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_BASE_ADDRESS_3, 			 &pD->base3);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_BASE_ADDRESS_4, 			 &pD->base4);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_BASE_ADDRESS_5, 			 &pD->base5);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_CIS, 			 &pD->cis);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_SUB_VENDER_ID, 			 &pD->subVendorId);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_SUB_SYSTEM_ID, 			 &pD->subSystemId);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_EXPANSION_ROM, 			 &pD->romBase);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_DEV_INT_LINE, 			 &pD->intLine);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_DEV_INT_PIN, 			 &pD->intPin);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_MIN_GRANT, 			 &pD->minGrant);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_MAX_LATENCY, 			 &pD->maxLatency);        pciDheaderPrint (pD);	}    return (OK);    }/********************************************************************************* pciFindDeviceShow - find a device by deviceId, then print an information.** This routine finds a device by deviceId, then print an information.** RETURNS: OK, or ERROR if this library is not initialized.**/STATUS pciFindDeviceShow    (    int	vendorId,	/* vendor ID */    int	deviceId,	/* device ID */    int	index		/* desired instance of device */    )    {    int busNo;    int deviceNo;    int funcNo;    if (pciFindDevice (vendorId, deviceId, index, &busNo, &deviceNo, &funcNo)	== OK)	{	printf ("deviceId = 0x%.8x\n", deviceId);	printf ("vendorId = 0x%.8x\n", vendorId);	printf ("index =    0x%.8x\n", index);	printf ("busNo =    0x%.8x\n", busNo);	printf ("deviceNo = 0x%.8x\n", deviceNo);	printf ("funcNo =   0x%.8x\n", funcNo);	return (OK);	}    return (ERROR);    }/********************************************************************************* pciFindClassShow - find a device by 24-bit class code** This routine finds a device by its 24-bit PCI class code, then prints its* information.** RETURNS: OK, or ERROR if this library is not initialized.**/STATUS pciFindClassShow    (    int	classCode,	/* 24-bit class code */    int	index		/* desired instance of device */    )    {    int busNo;    int deviceNo;    int funcNo;    if (pciFindClass (classCode, index, &busNo, &deviceNo, &funcNo) == OK)	{	printf ("class code = 0x%.8x\n", classCode);	printf ("index =      0x%.8x\n", index);	printf ("busNo =      0x%.8x\n", busNo);	printf ("deviceNo =   0x%.8x\n", deviceNo);	printf ("funcNo =     0x%.8x\n", funcNo);	return (OK);	}    return (ERROR);    }/********************************************************************************* pciDheaderPrint - print a PCI device header** This routine prints a PCI device header.** RETURNS: N/A**/LOCAL void pciDheaderPrint    (    PCI_HEADER_DEVICE * pD    )    {    printf ("vendor ID =                   0x%.4x\n", (ushort_t)pD->vendorId);    printf ("device ID =                   0x%.4x\n", (ushort_t)pD->deviceId);    printf ("command register =            0x%.4x\n", (ushort_t)pD->command);    printf ("status register =             0x%.4x\n", (ushort_t)pD->status);	    printf ("revision ID =                 0x%.2x\n", (uchar_t)pD->revisionId);    printf ("class code =                  0x%.2x\n", (uchar_t)pD->classCode);	    printf ("sub class code =              0x%.2x\n", (uchar_t)pD->subClass);    printf ("programming interface =       0x%.2x\n", (uchar_t)pD->progIf);	    printf ("cache line =                  0x%.2x\n", (uchar_t)pD->cacheLine);    printf ("latency time =                0x%.2x\n", (uchar_t)pD->latency);    printf ("header type =                 0x%.2x\n", (uchar_t)pD->headerType);    printf ("BIST =                        0x%.2x\n", (uchar_t)pD->bist);	    printf ("base address 0 =              0x%.8x\n", pD->base0);	    printf ("base address 1 =              0x%.8x\n", pD->base1);	    printf ("base address 2 =              0x%.8x\n", pD->base2);	    printf ("base address 3 =              0x%.8x\n", pD->base3);	    printf ("base address 4 =              0x%.8x\n", pD->base4);	    printf ("base address 5 =              0x%.8x\n", pD->base5);	    printf ("cardBus CIS pointer =         0x%.8x\n", pD->cis);	    printf ("sub system vendor ID =        0x%.4x\n", (ushort_t)pD->subVendorId);    printf ("sub system ID =               0x%.4x\n", (ushort_t)pD->subSystemId);    printf ("expansion ROM base address =  0x%.8x\n", pD->romBase);    printf ("interrupt line =              0x%.2x\n", (uchar_t)pD->intLine);    printf ("interrupt pin =               0x%.2x\n", (uchar_t)pD->intPin);	    printf ("min Grant =                   0x%.2x\n", (uchar_t)pD->minGrant);    printf ("max Latency =                 0x%.2x\n", (uchar_t)pD->maxLatency);    }/********************************************************************************* pciBheaderPrint - print a PCI-to-PCI bridge header** This routine prints a PCI-to-PCI bridge header.** RETURNS: N/A**/LOCAL void pciBheaderPrint    (    PCI_HEADER_BRIDGE * pB    )    {    printf ("vendor ID =                   0x%.4x\n", (ushort_t)pB->vendorId);    printf ("device ID =                   0x%.4x\n", (ushort_t)pB->deviceId);    printf ("command register =            0x%.4x\n", (ushort_t)pB->command);    printf ("status register =             0x%.4x\n", (ushort_t)pB->status);	    printf ("revision ID =                 0x%.2x\n", (uchar_t)pB->revisionId);    printf ("class code =                  0x%.2x\n", (uchar_t)pB->classCode);	    printf ("sub class code =              0x%.2x\n", (uchar_t)pB->subClass);    printf ("programming interface =       0x%.2x\n", (uchar_t)pB->progIf);	    printf ("cache line =                  0x%.2x\n", (uchar_t)pB->cacheLine);    printf ("latency time =                0x%.2x\n", (uchar_t)pB->latency);    printf ("header type =                 0x%.2x\n", (uchar_t)pB->headerType);    printf ("BIST =                        0x%.2x\n", (uchar_t)pB->bist);    printf ("base address 0 =              0x%.8x\n", pB->base0);	    printf ("base address 1 =              0x%.8x\n", pB->base1);	    printf ("primary bus number =          0x%.2x\n", (uchar_t)pB->priBus);	    printf ("secondary bus number =        0x%.2x\n", (uchar_t)pB->secBus);	    printf ("subordinate bus number =      0x%.2x\n", (uchar_t)pB->subBus);	    printf ("secondary latency timer =     0x%.2x\n", (uchar_t)pB->secLatency);    printf ("IO base =                     0x%.2x\n", (uchar_t)pB->ioBase);    printf ("IO limit =                    0x%.2x\n", (uchar_t)pB->ioLimit);    printf ("secondary status =            0x%.4x\n", (ushort_t)pB->secStatus);    printf ("memory base =                 0x%.4x\n", (ushort_t)pB->memBase);    printf ("memory limit =                0x%.4x\n", (ushort_t)pB->memLimit);	    printf ("prefetch memory base =        0x%.4x\n", (ushort_t)pB->preBase);    printf ("prefetch memory limit =       0x%.4x\n", (ushort_t)pB->preLimit);    printf ("prefetch memory base upper =  0x%.8x\n", pB->preBaseUpper);    printf ("prefetch memory limit upper = 0x%.8x\n", pB->preLimitUpper);    printf ("IO base upper 16 bits =       0x%.4x\n", (ushort_t)pB->ioBaseUpper);    printf ("IO limit upper 16 bits =      0x%.4x\n", (ushort_t)pB->ioLimitUpper);    printf ("expansion ROM base address =  0x%.8x\n", pB->romBase);    printf ("interrupt line =              0x%.2x\n", (uchar_t)pB->intLine);    printf ("interrupt pin =               0x%.2x\n", (uchar_t)pB->intPin);	    printf ("bridge control =              0x%.4x\n", (ushort_t)pB->control);    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -