59 lines
2.9 KiB
Plaintext
59 lines
2.9 KiB
Plaintext
HOWTO --> PCI-Express test scripts for LTP
|
|
Amit Khanna amit.khanna@intel.com
|
|
08/20/2004
|
|
|
|
1. About this HOWTO
|
|
|
|
This document describes the addition of PCI-Express test cases to the existing LTP project.
|
|
These test cases/scripts will enhance the LTP's capability to test PCI-Express devices/drivers.
|
|
|
|
2. Copyright (c) Intel Corporation, 2004
|
|
|
|
3. What is this patch doing?
|
|
|
|
a. A function "test_find_pci_exp_cap" has been added to the tpci.c file of LTP project.
|
|
(\ltp\testcases\kernel\device-drivers\pci\tpci\tpci.c)
|
|
This function makes a call to pci_find_capability, which will determine if a device
|
|
has PCI-Express capability. A PCI Express device function indicates PCI-Express support
|
|
by implementing the PCI-Express capability structure in its capability list.
|
|
|
|
b. A function "test_read_pci_exp_config" has been added to the tpci.c file of LTP project.
|
|
This function calls "pci_config_read" and determines if the PCI-Express enhanced config
|
|
space of the device can be read successfully or not.
|
|
|
|
"pci_config_read" function here reads the Advanced Error Reporting CAP-ID register located
|
|
at the PCI-Express enhanced config space address 0x100. The value of this register is a READ-ONLY
|
|
value which is constant on all the PCI-Express devices. If the value read from this register matches with the
|
|
defined macro AER_CAP_ID_VALUE(in tpci.h) that means that PCI-Express driver is accessing
|
|
the enhanced config space SUCCESSFULLY.
|
|
|
|
c. A user space function 'ki_generic()" is already available in user_tpci.c file of LTP project,
|
|
(\ltp\testcases\kernel\device-drivers\pci\user_tpci\user_tpci.c) which will drive the kernel
|
|
module tpci to test various pci and pci-express functions (defined & prototyped in tpci.c).
|
|
|
|
|
|
4. Including PCI-Express support into the kernel
|
|
|
|
By default, the kernel may not enable PCI-Express feature. A kernel
|
|
configuration option must be selected to enable PCI-Express support.
|
|
|
|
To include PCI-Express support into the kernel requires users to enable PCI-Access mode with
|
|
"Any" or "MMCFG" in the "General Setup" menu in the kernel configuration menu.
|
|
|
|
5. FAQ
|
|
|
|
Q1. Are there any limitations on using this patch?
|
|
|
|
A1. If the device supports PCI-Express feature and the PCI-Express feature is enabled in the kernel,
|
|
then only a user will be able to access the PCI-Express space.
|
|
Even if the device doesn't support PCI-Express feature, the traditional PCI-space would still be accessible.
|
|
|
|
Q2. What is this AER_CAP_ID_VALUE macro defined in tpci.h?
|
|
|
|
A2. AER_CAP_ID_VALUE represents the value of Advanced Error Reporting Capability ID in the PCI Express config space.
|
|
The default value of this is always same for all PCI-Express devices. i.e. 0x14011.
|
|
In the function "test_read_pci_exp_config" in tpci.c file, it is compared with the value retrieved from a PCI-Express
|
|
capable device. If both the values match that means that the PCI-Express driver is accessing the PCI-Express config space
|
|
SUCCESSFULLY.
|
|
***FINISH***
|