Thank you very much for a quick reply.
I will summarize the actions in this post so that other people may have a complete solution to the problem.
The problem basically lies in the fact that ESXi 5.1 does not associate the generic driver (qla2xxx) with the IDs of the HBAs.
The ID of this HBA model(QLE220) is 5432, and the Vendor ID is 1077 (i.e. QLogic)
The QLogic web site states that the HBA is in its End Of Life, however Dell apparently still has some HBAs on stock and
you may still build and order a server with this specific HBA model. Dell also states that ESXi 5.1 is fully supported on this server (Dell R810).
So beware of the QLE220 if you intend to use it with VMware.
Now let's get to the solution.
I credit my solution to Andy's findings as stated in his blog article:
http://andysworld.org.uk/2011/09/20/tweaking-esxi-50-adding-un-supported-hardware-to-vmware-vsphere-esxi-50-adding-a-qle-220-to-esxi-50/
I laud his work and insight, as there is no other soultion that comes as close to the solution as he does.
As Andy points us to the right direction, in that, we need to modify the device mapping configuration files.
In ESXi 5.1 the required device map configuration files - qla2xxx.map and the complementary qla2xxx.ids - are stored in the /bootbank/scsi_qla.v01 archive( n.b. IN ESXi 5.0 these files are stored in the /bootbank/scsi_qla.v00 archive).
so the complete solution is as follows:
cd /tmp/
cp /bootbank/scsi_qla.v01 /tmp/scsi_qla.gz
gunzip scsi_qla.gz
vmtar -x scsi_qla -o scsi_qla.tar
mkdir /tmp/qla
tar xvf scsi_qla.tar -C /tmp/qla/
the output is:
etc/
etc/vmware/
etc/vmware/driver.map.d/
etc/vmware/driver.map.d/qla2xxx.map
usr/
usr/lib/
usr/lib/vmware/
usr/lib/vmware/vmkmod/
usr/lib/vmware/vmkmod/qla2xxx
usr/share/
usr/share/hwdata/
usr/share/hwdata/driver.pciids.d/
usr/share/hwdata/driver.pciids.d/qla2xxx.ids
now we edit the device map configuration files:
vi etc/vmware/driver.map.d/qla2xxx.map
and add the highlighted line:
regtype=linux,bus=pci,id=1077:2031 0000:0000,driver=qla2xxx,class=storage
regtype=linux,bus=pci,id=1077:2400 0000:0000,driver=qla2xxx,class=storage
regtype=linux,bus=pci,id=1077:2422 0000:0000,driver=qla2xxx,class=storage
regtype=linux,bus=pci,id=1077:2432 0000:0000,driver=qla2xxx,class=storage
regtype=linux,bus=pci,id=1077:2532 0000:0000,driver=qla2xxx,class=storage
regtype=linux,bus=pci,id=1077:5432 0000:0000,driver=qla2xxx,class=storage
regtype=linux,bus=pci,id=1077:8001 0000:0000,driver=qla2xxx,class=storage
regtype=linux,bus=pci,id=1077:8021 0000:0000,driver=qla2xxx,class=storage
regtype=linux,bus=pci,id=1077:8031 0000:0000,driver=qla2xxx,class=storage
regtype=linux,bus=pci,id=1077:8432 0000:0000,driver=qla2xxx,class=storage
The line order may not need to be sequential but I added it sequentially for clarity.
and edit the Description file
vi /usr/share/hwdata/driver.pciids.d/qla2xxx.ids
I added the highlighted line
# This file is automatically generated by pciidlib.py
# Any changes you make manually will be lost at the next build.
# Please edit <driver>.xml for permanent changes.
#
# Vendors, devices and subsystems.
# Syntax:
# vendor vendor_name
# device device_name <-- single tab
# subvendor subdevice subsystem_name <-- two tabs
1077 QLogic Corp
2031 2600 Series 16Gb Fibre Channel to PCI Express HBA
2400 QLA2400
2422 ISP2422-based 4Gb Fibre Channel to PCI-X HBA
2432 ISP2432-based 4Gb Fibre Channel to PCI Express HBA
2532 ISP2532-based 8Gb Fibre Channel to PCI Express HBA
5432 QLE220 4Gb Fibre Channel to PCI Express HBA
8001 ISP81xx-based 10 GbE FCoE to PCI Express CNA
8021 8200 Series 10GbE Converged Network Adapter (FCoE)
This is merely the description of the device and may not need to be added but I must recommend that you add it (additionally you can customize the Description)
Having done the modifcation of the device map configuration files all you need to do is reverse package the configuration files and place the new repackaged archive in its original location (/bootbank)
This will do the trick:
cd /tmp/qla
tar -cf scsi_qla.tar *
vmtar -c scsi_qla.tar -o scsi_qla
gzip scsi_qla
mv scsi_qla.gz scsi_qla.v01
cp scsi_qla.v01 /bootbank/scsi_qla.v01
Now all you need to do is reboot the server.