i40e/base: fix hardware port number for pass-thru
authorHelin Zhang <helin.zhang@intel.com>
Thu, 30 Apr 2015 15:03:30 +0000 (23:03 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Sun, 17 May 2015 21:18:23 +0000 (23:18 +0200)
commit12b116260b9e49c0f57ea2f6a0571e7e778ad191
tree24b9f031e94cb323175fdb9e87a3385e3ae710fe
parent51b27bc5d898f63135337099b1e76858080db34b
i40e/base: fix hardware port number for pass-thru

Getting the pf_id from the function number was a good place to
start, but when the PF was setup in pass-thru mode, the PCI
bus/device/function was virtualized and the number in the VM is
different from the number in the bare metal. This caused HW
configuration issues when the wrong pf_id was used to set up the
HMC and other structures. The PF_FUNC_RID register has the real
bus/device/function information as configured by the BIOS, so use
that for a better number.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
lib/librte_pmd_i40e/i40e/i40e_common.c