amd64/168320: hptiop driver should support the RR4310 controller card.

Richard eaglebird42 at
Thu May 24 22:20:06 UTC 2012

>Number:         168320
>Category:       amd64
>Synopsis:       hptiop driver should support the RR4310 controller card.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-amd64
>State:          open
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Thu May 24 22:20:05 UTC 2012
>Originator:     Richard
>Release:        8.2
FreeBSD Filenest.eagleserv.local 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Thu Feb 17 02:41:51 UTC 2011     root at  amd64

The RocketRaid 4310 controller card from HighPoint Technologies is not recognized by the hptiop driver. This is due to the source code lacking the correct case(s) for the 4310 (and also lacking for the 4322). After adding in the case in the correct switch statement, the controller should be recognized and the driver attached.
Build the hptiop.ko module from the current source using hptiop.c and the Makefile found in the dev environment at '/usr/src/sys/modules/hptiop/Makefile' and specify it to load at boot. With the 4310 controller card installed, boot the machine with the module installed and see that it is recognized by pciconf and the driver is loaded, but dmesg reports "pci1: <mass storage, RAID> at device 0.0 (no driver attached)", and any array or disks attached to the controller are not shown in /dev/.
In the source code hptiop.c, find the "switch (id) {" statement which is followed by the case "case 0x4320:". In new lines, add "case 0x4322:" and "case 0x4310:" prior to the statement "sas = 1;", and recompile. Upon repeating the test in "How to repeat the problem", it should be found that the driver is attached for the controller and any arrays or disks show up in /dev/. dmesg will also report:
hptiop0: adapter at PCI 1:0:0, IRQ 16
hptiop0: <RocketRAID 4310 SAS Controller
> mem 0xe1000000-0xe17fffff irq 16 at device 0.0 on pci1
hptiop0: 0 RocketRAID 3xxx/4xxx controller driver v1.3 (010208)
hptiop0: Reserved 0x800000 bytes for rid 0x10 type 3 at 0xe1000000
ioapic0: routing intpin 16 (PCI IRQ 16) to lapic 0 vector 49
hptiop0: [GIANT-LOCKED]
hptiop0: [ITHREAD]


More information about the freebsd-amd64 mailing list