xref: /freebsd/sys/dev/hptnr/README (revision 96950419f15510287080c557174e0d8409f06956)
1Rocket Controller Driver for FreeBSD
2Copyright (C) 2015 HighPoint Technologies, Inc. All rights reserved.
3
4#############################################################################
5Revision History:
6
7   v1.1.4 2015-06-09
8     * Fix a bug that FailLED was not initialized properly.
9
10   v1.1.3 2015-05-19
11     * Support Report Luns command.
12
13   v1.1.2 2015-05-05
14     * Fix a bug that report wrong physical sector size for 512e HDD.
15
16   v1.1.1 2015-03-26
17     * Support 4Kn drive.
18     * Change the SCSI target ID of the disk to be the index of physical connetion to the HBA.
19     * Support staggered drive spin up.
20     * Fix a bug that command would be timeout because of improper interrupt service routine.
21     * Error handling to avoid scsi command lost which caused system hang up.
22     * Fix a bug that fail to get the devcie's serial number via FreeNAS WebGUI.
23
24   v1.0.1 2014-8-19
25     * Do not retry the command and reset the disk when failed to enable or
26       disable spin up feature.
27     * Fix up a bug that disk failed to probe if driver failed to access the
28       10th LBA.
29     * Fix a bug that request timeout but it has been completed in certain
30       cases.
31     * Support smartmontool for R750.
32
33   v1.0 2013-7-3
34        First source code release
35
36#############################################################################
37
381. Overview
39---------------------
40  This package contains FreeBSD driver source code for HighPoint Rocket
41  controller, include:
42  SATA Controller: R750, DC7280.
43
44  NO WARRANTY
45
46  THE DRIVER SOURCE CODE HIGHPOINT PROVIDED IS FREE OF CHARGE, AND THERE IS
47  NO WARRANTY FOR THE PROGRAM. THERE ARE NO RESTRICTIONS ON THE USE OF THIS
48  FREE SOURCE CODE. HIGHPOINT DOES NOT PROVIDE ANY TECHNICAL SUPPORT IF THE
49  CODE HAS BEEN CHANGED FROM ORIGINAL SOURCE CODE.
50
51  LIMITATION OF LIABILITY
52
53  IN NO EVENT WILL HIGHPOINT BE LIABLE FOR DIRECT, INDIRECT, SPECIAL,
54  INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF OR
55  INABILITY TO USE THIS PRODUCT OR DOCUMENTATION, EVEN IF ADVISED OF THE
56  POSSIBILITY OF SUCH DAMAGES. IN PARTICULAR, HIGHPOINT SHALL NOT HAVE
57  LIABILITY FOR ANY HARDWARE, SOFTWARE, OR DATA STORED USED WITH THE
58  PRODUCT, INCLUDING THE COSTS OF REPAIRING, REPLACING, OR RECOVERING
59  SUCH HARDWARE, OR DATA.
60
61
622. Rebuild the kernel with HighPoint Rocket support
63-----------------------------------------------
64
65  1) Install kernel source package and building tools.
66
67  2) Extract the driver files under the kernel source tree:
68
69     # cd /usr/src/sys/
70     # tar xvzf /your/path/to/HPTNR_FreeBSD_Src_1.x.x_xx_xx_xx.tgz
71
72  3) Update the kernel configuration file to include the HighPoint source.
73     Assume the configure file is GENERIC, and new kernel configure file is
74     MYKERNEL:
75
76     # cd i386/conf          (or amd64/conf for AMD64)
77     # cp GENERIC MYKERNEL
78
79  4) Edit MYKERNEL, and add the following line under "RAID controllers
80     interfaced to the SCSI subsystem":
81
82          device  "hptnr"   #HighPoint Rocket
83
84  5) For i386 system, edit /usr/src/sys/conf/files.i386 and append the lines
85     shown below:
86
87          hptnr_lib.o optional    hptnr  \
88              dependency  "$S/dev/hptnr/i386-elf.hptnr_lib.o.uu" \
89              compile-with    "uudecode < $S/dev/hptnr/i386-elf.hptnr_lib.o.uu" \
90              no-implicit-rule
91
92          dev/hptnr/hptnr_os_bsd.c      optional        hptnr
93          dev/hptnr/hptnr_osm_bsd.c     optional        hptnr
94          dev/hptnr/hptnr_config.c      optional        hptnr
95
96     For amd64 system, edit /usr/src/sys/conf/files.amd64 and append the lines
97     shown below:
98
99          hptnr_lib.o optional    hptnr  \
100              dependency  "$S/dev/hptnr/amd64-elf.hptnr_lib.o.uu" \
101              compile-with    "uudecode < $S/dev/hptnr/amd64-elf.hptnr_lib.o.uu" \
102              no-implicit-rule
103
104          dev/hptnr/hptnr_os_bsd.c      optional        hptnr
105          dev/hptnr/hptnr_osm_bsd.c     optional        hptnr
106          dev/hptnr/hptnr_config.c      optional        hptnr
107
108  6) Rebuild and install the kernel:
109
110     a) for FreeBSD 5.x-i386/6.x-i386/7.x-i386/8.x-i386/9.x-i386/10.x-i386:
111
112        # cd /usr/src/sys/i386/conf/
113        # /usr/sbin/config MYKERNEL
114        # cd ../compile/MYKERNEL/
115        # make depend
116        # make
117        # make install
118
119     b) for FreeBSD 5.x-amd64/6.x-amd64/7.x-amd64/8.x-amd64/9.x-amd64/10.x-amd64:
120
121        # cd /usr/src/sys/amd64/conf/
122        # /usr/sbin/config MYKERNEL
123        # cd ../compile/MYKERNEL/
124        # make depend
125        # make
126        # make install
127
128     c) for FreeBSD 4.x:
129
130        # cd /usr/src/sys/i386/conf/
131        # /usr/sbin/config MYKERNEL
132        # cd ../../compile/MYKERNEL/
133        # make depend
134        # make
135        # make install
136
137    If the driver was previously configured as an auto-loaded module by
138    /boot/defaults/loader.conf, please remove the entry hptnr_load="YES"
139    from loader.conf to prevent the driver from being loaded twice.
140
141  7) Reboot from the new kernel.
142
143
1443. Build/Load the driver as a kernel module
145------------------------------------------------
146
147  1) Install kernel source package and building tools.
148
149  2) Extract the driver files under the kernel source tree:
150
151     # cd /usr/src/sys/
152     # tar xvzf /your/path/to/HPTNR_FreeBSD_Src_1.x.x_xx_xx_xx.tgz
153
154
155  4) Build the driver module:
156
157     # cd modules/hptnr
158     # make
159
160  5) Copy the driver module to the kernel module directory
161
162     For FreeBSD 4.x:
163
164     # cp hptnr.ko /modules/
165
166     For FreeBSD 5.x/6.x/7.x/8.x/9.x/10.x:
167
168     # cp hptnr.ko /boot/kernel/
169
170  6) Reboot and load the driver under loader prompt. e.g:
171
172        BTX loader 1.00  BTX version is 1.01
173        Console: internal video/keyboard
174        BIOS driver A: is disk0
175        BIOS driver C: is disk2
176        BIOS 636kB/74512kB available memory
177
178        FreeBSD/i386 bootstrap loader, Revision 0.8
179        (mailto:jkh@narf.osd.bsdi.com, Sat Apr 21 08:46:19 GMT 2001)
180        Loading /boot/defaults/loader.conf
181        /kernel text=0x24f1db data=0x3007ec+0x2062c -
182
183        Hit [Enter] to boot immediagely, or any other key for command prompt.
184        Booting [kernel] in 9 seconds
185
186         <-- press SPACE key here
187        Type '?' for a list of commands, 'help' for more detailed help.
188        ok load hptnr
189        /modules/hptnr.ko text=0xf571 data=0x2c8+0x254
190        ok boot
191
192     For FreeBSD 5.x/6.x/7.x/8.x/9.x/10.x, you can select 6 on the boot menu to get a loader
193     prompt.
194
195  7) You can add a below line into /boot/defaults/loader.conf to load the
196     driver automatically:
197
198           hptnr_load="YES"
199
200     Please refer to the installation guide in HighPoint FreeBSD driver release
201     package for more information.
202
203
204#############################################################################
205Technical support and service
206
207  If you have questions about installing or using your HighPoint product,
208  check the user's guide or readme file first, and you will find answers to
209  most of your questions here. If you need further assistance, please
210  contact us. We offer the following support and information services:
211
212  1)  The HighPoint Web Site provides information on software upgrades,
213      answers to common questions, and other topics. The Web Site is
214      available from Internet 24 hours a day, 7 days a week, at
215      http://www.highpoint-tech.com.
216
217  2)  For technical support, send e-mail to support@highpoint-tech.com
218
219  NOTE: Before you send an e-mail, please visit our Web Site
220        (http://www.highpoint-tech.com) to check if there is a new or
221        updated device driver for your system.
222