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***
 |