Digi RAS4 - dgdm won't load on CentOS 4.5

The digi RAS driver does not load cleanly on CentOS 4.5 x86_64 - 2.6.9-55.ELsmp
Building from the dgdm-1.1-12.src.rpm… - compile errors below…
The rpm builds and installs, but the service load gives:

dgdm: dgdm_triboot(0) - Adapter download error! We did not finish! state=0xfffffffe, status=18
DGDM - ERROR STATUS: TRIBL_FEP_ERROR
dgdm: board 0: AccelePort RAS (rev 10), irq 58, addrs: 0xfd800000 0xfd400000 0xfd3f0000
dgdm: dxb structure (94672 bytes) is aligned at 1086bd40000

"/usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c: In function dxb_cdata': /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:647: warning: cast from pointer to integer of different size /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c: In function dxb_open’:
/usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:951: warning: cast from pointer to integer of different size
/usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c: In function dxb_close': /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:1209: warning: cast from pointer to integer of different size /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c: In function dxb_push’:
/usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:1815: warning: cast from pointer to integer of different size
/usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c: In function dxb_dxbuf_poll_one': /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:3087: warning: cast from pointer to integer of different size /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:3113: warning: cast from pointer to integer of different size /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c: In function process_openack’:
/usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:3748: warning: cast from pointer to integer of different size
/usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c: In function process_data': /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:3921: warning: cast from pointer to integer of different size /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c: In function dxb_buf_alloc’:
/usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:5121: warning: cast from pointer to integer of different size
/usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c: In function dxb_set_phys': /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:5261: warning: cast from pointer to integer of different size /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:5261: warning: cast from pointer to integer of different size /usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c: In function dxb_init’:
/usr/src/redhat/BUILD/dgdm-1.1/driver/libdxb/dxblib.c:5328: warning: cast from pointer to integer of different size
CC [M] /usr/src/redhat/BUILD/dgdm-1.1/driver/triboot/tribl.o
"

Though CentOS 5 isn’t officially supported by this driver, I know for a fact that it works fine under CentOS 5 because the engineer who maintains that driver uses that OS for his build machine.

“dgdm: dgdm_triboot(0) - Adapter download error! We did not finish! state=0xfffffffe, status=18 DGDM - ERROR STATUS: TRIBL_FEP_ERROR”

That output does NOT look like a driver issue. Based on the output, it seems like either the card is defective, the PCI slot is defective, or the card isn’t quite seated in that PCI slot properly, so those are the things I’d recommend checking.

PCI resource contention is also a possibility. The following article will help troubleshooting that:

http://www.digi.com/support/kbase/kbaseresultdetl.jsp?id=223

Well, I have this card running fine on other CentOS systems… just not 64-bit CentOS servers like this. The driver doesn’t compile nicely under 64-bit… and the card is new. I could test it in another server to check. Now, this is a Proliant DL585 G2 with two PCI slots. The rest are x4 and x8 PCI-Express.

What does the error mean?

kernel: dgdm: dgdm_triboot(0) - Adapter download error! We did not finish! state=0xfffffffe, status=18
kernel: DGDM - ERROR STATUS: TRIBL_FEP_ERROR
kernel: dgdm: board 0: AccelePort RAS (rev 10), irq 58, addrs: 0xfd800000 0xfd400000 0xfd3f0000
kernel: dgdm: dxb structure (94672 bytes) is aligned at 102ca8c0000

This error means that the firmware could not be uploaded to the adapter. This is typically seen when the adapter is defective, it is not recognized by the system BIOS or the BIOS did not assign unique resources, causing contention.

You may want to consider installing the latest driver pre-release candidate if you are running a current kernel:

ftp://ftp1.digi.com/support/beta/linux/dgdm/dgdm-1.1-12.src.rpm

I’ve established that this is not a problem with the actual card. Using it in another system to works just fine. The official answer from Digi is that my HP Proliant DL585 G2 and DL385 G2 servers simply aren’t supported. That’s unacceptable.

Have you pursued the possibility that the adapter is not recognized by the system BIOS or the BIOS did not assign unique resources, causing contention? Perhaps HP may be of some assistance here?

Have you tried assigning an IRQ to the PCI-X slot or deactivating MPS Table Mode in RBSU?

I discovered that this affects my intel-based Proliant servers, too. The problems seems to be 64-bit Linux. Installing a 32-bit version of RedHat Enterprise works. However, I need to use 64-bit (x86_64) RHEL on these servers.

These new servers only allow Full Table APIC to be set.