1977b899cSMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0
2977b899cSMauro Carvalho Chehab
3977b899cSMauro Carvalho Chehab=========================================================
4977b899cSMauro Carvalho ChehabBusLogic MultiMaster and FlashPoint SCSI Driver for Linux
5977b899cSMauro Carvalho Chehab=========================================================
6977b899cSMauro Carvalho Chehab
7977b899cSMauro Carvalho Chehab			 Version 2.0.15 for Linux 2.0
8977b899cSMauro Carvalho Chehab
9977b899cSMauro Carvalho Chehab			 Version 2.1.15 for Linux 2.1
10977b899cSMauro Carvalho Chehab
11977b899cSMauro Carvalho Chehab			      PRODUCTION RELEASE
12977b899cSMauro Carvalho Chehab
13977b899cSMauro Carvalho Chehab				17 August 1998
14977b899cSMauro Carvalho Chehab
15977b899cSMauro Carvalho Chehab			       Leonard N. Zubkoff
16977b899cSMauro Carvalho Chehab
17977b899cSMauro Carvalho Chehab			       Dandelion Digital
18977b899cSMauro Carvalho Chehab
19977b899cSMauro Carvalho Chehab			       lnz@dandelion.com
20977b899cSMauro Carvalho Chehab
21977b899cSMauro Carvalho Chehab	 Copyright 1995-1998 by Leonard N. Zubkoff <lnz@dandelion.com>
22977b899cSMauro Carvalho Chehab
23977b899cSMauro Carvalho Chehab
24977b899cSMauro Carvalho ChehabIntroduction
25977b899cSMauro Carvalho Chehab============
26977b899cSMauro Carvalho Chehab
27977b899cSMauro Carvalho ChehabBusLogic, Inc. designed and manufactured a variety of high performance SCSI
28977b899cSMauro Carvalho Chehabhost adapters which share a common programming interface across a diverse
29977b899cSMauro Carvalho Chehabcollection of bus architectures by virtue of their MultiMaster ASIC technology.
30977b899cSMauro Carvalho ChehabBusLogic was acquired by Mylex Corporation in February 1996, but the products
31977b899cSMauro Carvalho Chehabsupported by this driver originated under the BusLogic name and so that name is
32977b899cSMauro Carvalho Chehabretained in the source code and documentation.
33977b899cSMauro Carvalho Chehab
34977b899cSMauro Carvalho ChehabThis driver supports all present BusLogic MultiMaster Host Adapters, and should
35977b899cSMauro Carvalho Chehabsupport any future MultiMaster designs with little or no modification.  More
36977b899cSMauro Carvalho Chehabrecently, BusLogic introduced the FlashPoint Host Adapters, which are less
37977b899cSMauro Carvalho Chehabcostly and rely on the host CPU, rather than including an onboard processor.
38977b899cSMauro Carvalho ChehabDespite not having an onboard CPU, the FlashPoint Host Adapters perform very
39977b899cSMauro Carvalho Chehabwell and have very low command latency.  BusLogic has recently provided me with
40977b899cSMauro Carvalho Chehabthe FlashPoint Driver Developer's Kit, which comprises documentation and freely
41977b899cSMauro Carvalho Chehabredistributable source code for the FlashPoint SCCB Manager.  The SCCB Manager
42977b899cSMauro Carvalho Chehabis the library of code that runs on the host CPU and performs functions
43977b899cSMauro Carvalho Chehabanalogous to the firmware on the MultiMaster Host Adapters.  Thanks to their
44977b899cSMauro Carvalho Chehabhaving provided the SCCB Manager, this driver now supports the FlashPoint Host
45977b899cSMauro Carvalho ChehabAdapters as well.
46977b899cSMauro Carvalho Chehab
47977b899cSMauro Carvalho ChehabMy primary goals in writing this completely new BusLogic driver for Linux are
48977b899cSMauro Carvalho Chehabto achieve the full performance that BusLogic SCSI Host Adapters and modern
49977b899cSMauro Carvalho ChehabSCSI peripherals are capable of, and to provide a highly robust driver that can
50977b899cSMauro Carvalho Chehabbe depended upon for high performance mission critical applications.  All of
51977b899cSMauro Carvalho Chehabthe major performance features can be configured from the Linux kernel command
52977b899cSMauro Carvalho Chehabline or at module initialization time, allowing individual installations to
53977b899cSMauro Carvalho Chehabtune driver performance and error recovery to their particular needs.
54977b899cSMauro Carvalho Chehab
55977b899cSMauro Carvalho ChehabThe latest information on Linux support for BusLogic SCSI Host Adapters, as
56977b899cSMauro Carvalho Chehabwell as the most recent release of this driver and the latest firmware for the
57977b899cSMauro Carvalho ChehabBT-948/958/958D, will always be available from my Linux Home Page at URL
58977b899cSMauro Carvalho Chehab"http://sourceforge.net/projects/dandelion/".
59977b899cSMauro Carvalho Chehab
60977b899cSMauro Carvalho ChehabBug reports should be sent via electronic mail to "lnz@dandelion.com".  Please
61977b899cSMauro Carvalho Chehabinclude with the bug report the complete configuration messages reported by the
62977b899cSMauro Carvalho Chehabdriver and SCSI subsystem at startup, along with any subsequent system messages
63977b899cSMauro Carvalho Chehabrelevant to SCSI operations, and a detailed description of your system's
64977b899cSMauro Carvalho Chehabhardware configuration.
65977b899cSMauro Carvalho Chehab
66977b899cSMauro Carvalho ChehabMylex has been an excellent company to work with and I highly recommend their
67977b899cSMauro Carvalho Chehabproducts to the Linux community.  In November 1995, I was offered the
68977b899cSMauro Carvalho Chehabopportunity to become a beta test site for their latest MultiMaster product,
69977b899cSMauro Carvalho Chehabthe BT-948 PCI Ultra SCSI Host Adapter, and then again for the BT-958 PCI Wide
70977b899cSMauro Carvalho ChehabUltra SCSI Host Adapter in January 1996.  This was mutually beneficial since
71977b899cSMauro Carvalho ChehabMylex received a degree and kind of testing that their own testing group cannot
72977b899cSMauro Carvalho Chehabreadily achieve, and the Linux community has available high performance host
73977b899cSMauro Carvalho Chehabadapters that have been well tested with Linux even before being brought to
74977b899cSMauro Carvalho Chehabmarket.  This relationship has also given me the opportunity to interact
75977b899cSMauro Carvalho Chehabdirectly with their technical staff, to understand more about the internal
76977b899cSMauro Carvalho Chehabworkings of their products, and in turn to educate them about the needs and
77977b899cSMauro Carvalho Chehabpotential of the Linux community.
78977b899cSMauro Carvalho Chehab
79977b899cSMauro Carvalho ChehabMore recently, Mylex has reaffirmed the company's interest in supporting the
80977b899cSMauro Carvalho ChehabLinux community, and I am now working on a Linux driver for the DAC960 PCI RAID
81977b899cSMauro Carvalho ChehabControllers.  Mylex's interest and support is greatly appreciated.
82977b899cSMauro Carvalho Chehab
83977b899cSMauro Carvalho ChehabUnlike some other vendors, if you contact Mylex Technical Support with a
84977b899cSMauro Carvalho Chehabproblem and are running Linux, they will not tell you that your use of their
85977b899cSMauro Carvalho Chehabproducts is unsupported.  Their latest product marketing literature even states
86977b899cSMauro Carvalho Chehab"Mylex SCSI host adapters are compatible with all major operating systems
87977b899cSMauro Carvalho Chehabincluding: ... Linux ...".
88977b899cSMauro Carvalho Chehab
89977b899cSMauro Carvalho ChehabMylex Corporation is located at 34551 Ardenwood Blvd., Fremont, California
90977b899cSMauro Carvalho Chehab94555, USA and can be reached at 510/796-6100 or on the World Wide Web at
91977b899cSMauro Carvalho Chehabhttp://www.mylex.com.  Mylex HBA Technical Support can be reached by electronic
92977b899cSMauro Carvalho Chehabmail at techsup@mylex.com, by Voice at 510/608-2400, or by FAX at 510/745-7715.
93977b899cSMauro Carvalho ChehabContact information for offices in Europe and Japan is available on the Web
94977b899cSMauro Carvalho Chehabsite.
95977b899cSMauro Carvalho Chehab
96977b899cSMauro Carvalho Chehab
97977b899cSMauro Carvalho ChehabDriver Features
98977b899cSMauro Carvalho Chehab===============
99977b899cSMauro Carvalho Chehab
100977b899cSMauro Carvalho ChehabConfiguration Reporting and Testing
101977b899cSMauro Carvalho Chehab-----------------------------------
102977b899cSMauro Carvalho Chehab
103977b899cSMauro Carvalho Chehab  During system initialization, the driver reports extensively on the host
104977b899cSMauro Carvalho Chehab  adapter hardware configuration, including the synchronous transfer parameters
105977b899cSMauro Carvalho Chehab  requested and negotiated with each target device.  AutoSCSI settings for
106977b899cSMauro Carvalho Chehab  Synchronous Negotiation, Wide Negotiation, and Disconnect/Reconnect are
107977b899cSMauro Carvalho Chehab  reported for each target device, as well as the status of Tagged Queuing.
108977b899cSMauro Carvalho Chehab  If the same setting is in effect for all target devices, then a single word
109977b899cSMauro Carvalho Chehab  or phrase is used; otherwise, a letter is provided for each target device to
110977b899cSMauro Carvalho Chehab  indicate the individual status.  The following examples
111977b899cSMauro Carvalho Chehab  should clarify this reporting format:
112977b899cSMauro Carvalho Chehab
113977b899cSMauro Carvalho Chehab    Synchronous Negotiation: Ultra
114977b899cSMauro Carvalho Chehab
115977b899cSMauro Carvalho Chehab      Synchronous negotiation is enabled for all target devices and the host
116977b899cSMauro Carvalho Chehab      adapter will attempt to negotiate for 20.0 mega-transfers/second.
117977b899cSMauro Carvalho Chehab
118977b899cSMauro Carvalho Chehab    Synchronous Negotiation: Fast
119977b899cSMauro Carvalho Chehab
120977b899cSMauro Carvalho Chehab      Synchronous negotiation is enabled for all target devices and the host
121977b899cSMauro Carvalho Chehab      adapter will attempt to negotiate for 10.0 mega-transfers/second.
122977b899cSMauro Carvalho Chehab
123977b899cSMauro Carvalho Chehab    Synchronous Negotiation: Slow
124977b899cSMauro Carvalho Chehab
125977b899cSMauro Carvalho Chehab      Synchronous negotiation is enabled for all target devices and the host
126977b899cSMauro Carvalho Chehab      adapter will attempt to negotiate for 5.0 mega-transfers/second.
127977b899cSMauro Carvalho Chehab
128977b899cSMauro Carvalho Chehab    Synchronous Negotiation: Disabled
129977b899cSMauro Carvalho Chehab
130977b899cSMauro Carvalho Chehab      Synchronous negotiation is disabled and all target devices are limited to
131977b899cSMauro Carvalho Chehab      asynchronous operation.
132977b899cSMauro Carvalho Chehab
133977b899cSMauro Carvalho Chehab    Synchronous Negotiation: UFSNUUU#UUUUUUUU
134977b899cSMauro Carvalho Chehab
135977b899cSMauro Carvalho Chehab      Synchronous negotiation to Ultra speed is enabled for target devices 0
136977b899cSMauro Carvalho Chehab      and 4 through 15, to Fast speed for target device 1, to Slow speed for
137977b899cSMauro Carvalho Chehab      target device 2, and is not permitted to target device 3.  The host
138977b899cSMauro Carvalho Chehab      adapter's SCSI ID is represented by the "#".
139977b899cSMauro Carvalho Chehab
140977b899cSMauro Carvalho Chehab    The status of Wide Negotiation, Disconnect/Reconnect, and Tagged Queuing
141977b899cSMauro Carvalho Chehab    are reported as "Enabled", Disabled", or a sequence of "Y" and "N" letters.
142977b899cSMauro Carvalho Chehab
143977b899cSMauro Carvalho ChehabPerformance Features
144977b899cSMauro Carvalho Chehab--------------------
145977b899cSMauro Carvalho Chehab
146977b899cSMauro Carvalho Chehab  BusLogic SCSI Host Adapters directly implement SCSI-2 Tagged Queuing, and so
147977b899cSMauro Carvalho Chehab  support has been included in the driver to utilize tagged queuing with any
148977b899cSMauro Carvalho Chehab  target devices that report having the tagged queuing capability.  Tagged
149977b899cSMauro Carvalho Chehab  queuing allows for multiple outstanding commands to be issued to each target
150977b899cSMauro Carvalho Chehab  device or logical unit, and can improve I/O performance substantially.  In
151977b899cSMauro Carvalho Chehab  addition, BusLogic's Strict Round Robin Mode is used to optimize host adapter
152977b899cSMauro Carvalho Chehab  performance, and scatter/gather I/O can support as many segments as can be
153977b899cSMauro Carvalho Chehab  effectively utilized by the Linux I/O subsystem.  Control over the use of
154977b899cSMauro Carvalho Chehab  tagged queuing for each target device as well as individual selection of the
155977b899cSMauro Carvalho Chehab  tagged queue depth is available through driver options provided on the kernel
156977b899cSMauro Carvalho Chehab  command line or at module initialization time.  By default, the queue depth
157977b899cSMauro Carvalho Chehab  is determined automatically based on the host adapter's total queue depth and
158977b899cSMauro Carvalho Chehab  the number, type, speed, and capabilities of the target devices found.  In
159977b899cSMauro Carvalho Chehab  addition, tagged queuing is automatically disabled whenever the host adapter
160977b899cSMauro Carvalho Chehab  firmware version is known not to implement it correctly, or whenever a tagged
161977b899cSMauro Carvalho Chehab  queue depth of 1 is selected.  Tagged queuing is also disabled for individual
162977b899cSMauro Carvalho Chehab  target devices if disconnect/reconnect is disabled for that device.
163977b899cSMauro Carvalho Chehab
164977b899cSMauro Carvalho ChehabRobustness Features
165977b899cSMauro Carvalho Chehab-------------------
166977b899cSMauro Carvalho Chehab
167977b899cSMauro Carvalho Chehab  The driver implements extensive error recovery procedures.  When the higher
168977b899cSMauro Carvalho Chehab  level parts of the SCSI subsystem request that a timed out command be reset,
169977b899cSMauro Carvalho Chehab  a selection is made between a full host adapter hard reset and SCSI bus reset
170977b899cSMauro Carvalho Chehab  versus sending a bus device reset message to the individual target device
171977b899cSMauro Carvalho Chehab  based on the recommendation of the SCSI subsystem.  Error recovery strategies
172977b899cSMauro Carvalho Chehab  are selectable through driver options individually for each target device,
173977b899cSMauro Carvalho Chehab  and also include sending a bus device reset to the specific target device
174977b899cSMauro Carvalho Chehab  associated with the command being reset, as well as suppressing error
175977b899cSMauro Carvalho Chehab  recovery entirely to avoid perturbing an improperly functioning device.  If
176977b899cSMauro Carvalho Chehab  the bus device reset error recovery strategy is selected and sending a bus
177977b899cSMauro Carvalho Chehab  device reset does not restore correct operation, the next command that is
178977b899cSMauro Carvalho Chehab  reset will force a full host adapter hard reset and SCSI bus reset.  SCSI bus
179977b899cSMauro Carvalho Chehab  resets caused by other devices and detected by the host adapter are also
180977b899cSMauro Carvalho Chehab  handled by issuing a soft reset to the host adapter and re-initialization.
181977b899cSMauro Carvalho Chehab  Finally, if tagged queuing is active and more than one command reset occurs
182977b899cSMauro Carvalho Chehab  in a 10 minute interval, or if a command reset occurs within the first 10
183977b899cSMauro Carvalho Chehab  minutes of operation, then tagged queuing will be disabled for that target
184977b899cSMauro Carvalho Chehab  device.  These error recovery options improve overall system robustness by
185977b899cSMauro Carvalho Chehab  preventing individual errant devices from causing the system as a whole to
186977b899cSMauro Carvalho Chehab  lock up or crash, and thereby allowing a clean shutdown and restart after the
187977b899cSMauro Carvalho Chehab  offending component is removed.
188977b899cSMauro Carvalho Chehab
189977b899cSMauro Carvalho ChehabPCI Configuration Support
190977b899cSMauro Carvalho Chehab-------------------------
191977b899cSMauro Carvalho Chehab
192977b899cSMauro Carvalho Chehab  On PCI systems running kernels compiled with PCI BIOS support enabled, this
193977b899cSMauro Carvalho Chehab  driver will interrogate the PCI configuration space and use the I/O port
194977b899cSMauro Carvalho Chehab  addresses assigned by the system BIOS, rather than the ISA compatible I/O
195977b899cSMauro Carvalho Chehab  port addresses.  The ISA compatible I/O port address is then disabled by the
196977b899cSMauro Carvalho Chehab  driver.  On PCI systems it is also recommended that the AutoSCSI utility be
197977b899cSMauro Carvalho Chehab  used to disable the ISA compatible I/O port entirely as it is not necessary.
198977b899cSMauro Carvalho Chehab  The ISA compatible I/O port is disabled by default on the BT-948/958/958D.
199977b899cSMauro Carvalho Chehab
200977b899cSMauro Carvalho Chehab/proc File System Support
201977b899cSMauro Carvalho Chehab-------------------------
202977b899cSMauro Carvalho Chehab
203977b899cSMauro Carvalho Chehab  Copies of the host adapter configuration information together with updated
204977b899cSMauro Carvalho Chehab  data transfer and error recovery statistics are available through the
205977b899cSMauro Carvalho Chehab  /proc/scsi/BusLogic/<N> interface.
206977b899cSMauro Carvalho Chehab
207977b899cSMauro Carvalho ChehabShared Interrupts Support
208977b899cSMauro Carvalho Chehab-------------------------
209977b899cSMauro Carvalho Chehab
210977b899cSMauro Carvalho Chehab  On systems that support shared interrupts, any number of BusLogic Host
211977b899cSMauro Carvalho Chehab  Adapters may share the same interrupt request channel.
212977b899cSMauro Carvalho Chehab
213977b899cSMauro Carvalho Chehab
214977b899cSMauro Carvalho ChehabSupported Host Adapters
215977b899cSMauro Carvalho Chehab=======================
216977b899cSMauro Carvalho Chehab
217977b899cSMauro Carvalho ChehabThe following list comprises the supported BusLogic SCSI Host Adapters as of
218977b899cSMauro Carvalho Chehabthe date of this document.  It is recommended that anyone purchasing a BusLogic
219977b899cSMauro Carvalho ChehabHost Adapter not in the following table contact the author beforehand to verify
220977b899cSMauro Carvalho Chehabthat it is or will be supported.
221977b899cSMauro Carvalho Chehab
222977b899cSMauro Carvalho ChehabFlashPoint Series PCI Host Adapters:
223977b899cSMauro Carvalho Chehab
224977b899cSMauro Carvalho Chehab=======================	=============================================
225977b899cSMauro Carvalho ChehabFlashPoint LT (BT-930)	Ultra SCSI-3
226977b899cSMauro Carvalho ChehabFlashPoint LT (BT-930R)	Ultra SCSI-3 with RAIDPlus
227977b899cSMauro Carvalho ChehabFlashPoint LT (BT-920)	Ultra SCSI-3 (BT-930 without BIOS)
228977b899cSMauro Carvalho ChehabFlashPoint DL (BT-932)	Dual Channel Ultra SCSI-3
229977b899cSMauro Carvalho ChehabFlashPoint DL (BT-932R)	Dual Channel Ultra SCSI-3 with RAIDPlus
230977b899cSMauro Carvalho ChehabFlashPoint LW (BT-950)	Wide Ultra SCSI-3
231977b899cSMauro Carvalho ChehabFlashPoint LW (BT-950R)	Wide Ultra SCSI-3 with RAIDPlus
232977b899cSMauro Carvalho ChehabFlashPoint DW (BT-952)	Dual Channel Wide Ultra SCSI-3
233977b899cSMauro Carvalho ChehabFlashPoint DW (BT-952R)	Dual Channel Wide Ultra SCSI-3 with RAIDPlus
234977b899cSMauro Carvalho Chehab=======================	=============================================
235977b899cSMauro Carvalho Chehab
236977b899cSMauro Carvalho ChehabMultiMaster "W" Series Host Adapters:
237977b899cSMauro Carvalho Chehab
238977b899cSMauro Carvalho Chehab=======     ===		==============================
239977b899cSMauro Carvalho ChehabBT-948	    PCI		Ultra SCSI-3
240977b899cSMauro Carvalho ChehabBT-958	    PCI		Wide Ultra SCSI-3
241977b899cSMauro Carvalho ChehabBT-958D	    PCI		Wide Differential Ultra SCSI-3
242977b899cSMauro Carvalho Chehab=======     ===		==============================
243977b899cSMauro Carvalho Chehab
244977b899cSMauro Carvalho ChehabMultiMaster "C" Series Host Adapters:
245977b899cSMauro Carvalho Chehab
246977b899cSMauro Carvalho Chehab========    ====	==============================
247977b899cSMauro Carvalho ChehabBT-946C	    PCI		Fast SCSI-2
248977b899cSMauro Carvalho ChehabBT-956C	    PCI		Wide Fast SCSI-2
249977b899cSMauro Carvalho ChehabBT-956CD    PCI		Wide Differential Fast SCSI-2
250977b899cSMauro Carvalho ChehabBT-445C	    VLB		Fast SCSI-2
251977b899cSMauro Carvalho ChehabBT-747C	    EISA	Fast SCSI-2
252977b899cSMauro Carvalho ChehabBT-757C	    EISA	Wide Fast SCSI-2
253977b899cSMauro Carvalho ChehabBT-757CD    EISA	Wide Differential Fast SCSI-2
254977b899cSMauro Carvalho Chehab========    ====	==============================
255977b899cSMauro Carvalho Chehab
256977b899cSMauro Carvalho ChehabMultiMaster "S" Series Host Adapters:
257977b899cSMauro Carvalho Chehab
258977b899cSMauro Carvalho Chehab=======     ====	==============================
259977b899cSMauro Carvalho ChehabBT-445S	    VLB		Fast SCSI-2
260977b899cSMauro Carvalho ChehabBT-747S	    EISA	Fast SCSI-2
261977b899cSMauro Carvalho ChehabBT-747D	    EISA	Differential Fast SCSI-2
262977b899cSMauro Carvalho ChehabBT-757S	    EISA	Wide Fast SCSI-2
263977b899cSMauro Carvalho ChehabBT-757D	    EISA	Wide Differential Fast SCSI-2
264977b899cSMauro Carvalho ChehabBT-742A	    EISA	SCSI-2 (742A revision H)
265977b899cSMauro Carvalho Chehab=======     ====	==============================
266977b899cSMauro Carvalho Chehab
267977b899cSMauro Carvalho ChehabMultiMaster "A" Series Host Adapters:
268977b899cSMauro Carvalho Chehab
269977b899cSMauro Carvalho Chehab=======     ====	==============================
270977b899cSMauro Carvalho ChehabBT-742A	    EISA	SCSI-2 (742A revisions A - G)
271977b899cSMauro Carvalho Chehab=======     ====	==============================
272977b899cSMauro Carvalho Chehab
273977b899cSMauro Carvalho ChehabAMI FastDisk Host Adapters that are true BusLogic MultiMaster clones are also
274977b899cSMauro Carvalho Chehabsupported by this driver.
275977b899cSMauro Carvalho Chehab
276977b899cSMauro Carvalho ChehabBusLogic SCSI Host Adapters are available packaged both as bare boards and as
277977b899cSMauro Carvalho Chehabretail kits.  The BT- model numbers above refer to the bare board packaging.
278977b899cSMauro Carvalho ChehabThe retail kit model numbers are found by replacing BT- with KT- in the above
279977b899cSMauro Carvalho Chehablist.  The retail kit includes the bare board and manual as well as cabling and
280977b899cSMauro Carvalho Chehabdriver media and documentation that are not provided with bare boards.
281977b899cSMauro Carvalho Chehab
282977b899cSMauro Carvalho Chehab
283977b899cSMauro Carvalho ChehabFlashPoint Installation Notes
284977b899cSMauro Carvalho Chehab=============================
285977b899cSMauro Carvalho Chehab
286977b899cSMauro Carvalho ChehabRAIDPlus Support
287977b899cSMauro Carvalho Chehab----------------
288977b899cSMauro Carvalho Chehab
289977b899cSMauro Carvalho Chehab  FlashPoint Host Adapters now include RAIDPlus, Mylex's bootable software
290977b899cSMauro Carvalho Chehab  RAID.  RAIDPlus is not supported on Linux, and there are no plans to support
291977b899cSMauro Carvalho Chehab  it.  The MD driver in Linux 2.0 provides for concatenation (LINEAR) and
292977b899cSMauro Carvalho Chehab  striping (RAID-0), and support for mirroring (RAID-1), fixed parity (RAID-4),
293977b899cSMauro Carvalho Chehab  and distributed parity (RAID-5) is available separately.  The built-in Linux
294977b899cSMauro Carvalho Chehab  RAID support is generally more flexible and is expected to perform better
295977b899cSMauro Carvalho Chehab  than RAIDPlus, so there is little impetus to include RAIDPlus support in the
296977b899cSMauro Carvalho Chehab  BusLogic driver.
297977b899cSMauro Carvalho Chehab
298977b899cSMauro Carvalho ChehabEnabling UltraSCSI Transfers
299977b899cSMauro Carvalho Chehab----------------------------
300977b899cSMauro Carvalho Chehab
301977b899cSMauro Carvalho Chehab  FlashPoint Host Adapters ship with their configuration set to "Factory
302977b899cSMauro Carvalho Chehab  Default" settings that are conservative and do not allow for UltraSCSI speed
303977b899cSMauro Carvalho Chehab  to be negotiated.  This results in fewer problems when these host adapters
304977b899cSMauro Carvalho Chehab  are installed in systems with cabling or termination that is not sufficient
305977b899cSMauro Carvalho Chehab  for UltraSCSI operation, or where existing SCSI devices do not properly
306977b899cSMauro Carvalho Chehab  respond to synchronous transfer negotiation for UltraSCSI speed.  AutoSCSI
307977b899cSMauro Carvalho Chehab  may be used to load "Optimum Performance" settings which allow UltraSCSI
308977b899cSMauro Carvalho Chehab  speed to be negotiated with all devices, or UltraSCSI speed can be enabled on
309977b899cSMauro Carvalho Chehab  an individual basis.  It is recommended that SCAM be manually disabled after
310977b899cSMauro Carvalho Chehab  the "Optimum Performance" settings are loaded.
311977b899cSMauro Carvalho Chehab
312977b899cSMauro Carvalho Chehab
313977b899cSMauro Carvalho ChehabBT-948/958/958D Installation Notes
314977b899cSMauro Carvalho Chehab==================================
315977b899cSMauro Carvalho Chehab
316977b899cSMauro Carvalho ChehabThe BT-948/958/958D PCI Ultra SCSI Host Adapters have some features which may
317977b899cSMauro Carvalho Chehabrequire attention in some circumstances when installing Linux.
318977b899cSMauro Carvalho Chehab
319977b899cSMauro Carvalho ChehabPCI I/O Port Assignments
320977b899cSMauro Carvalho Chehab------------------------
321977b899cSMauro Carvalho Chehab
322977b899cSMauro Carvalho Chehab  When configured to factory default settings, the BT-948/958/958D will only
323977b899cSMauro Carvalho Chehab  recognize the PCI I/O port assignments made by the motherboard's PCI BIOS.
324977b899cSMauro Carvalho Chehab  The BT-948/958/958D will not respond to any of the ISA compatible I/O ports
325977b899cSMauro Carvalho Chehab  that previous BusLogic SCSI Host Adapters respond to.  This driver supports
326977b899cSMauro Carvalho Chehab  the PCI I/O port assignments, so this is the preferred configuration.
327977b899cSMauro Carvalho Chehab  However, if the obsolete BusLogic driver must be used for any reason, such as
328977b899cSMauro Carvalho Chehab  a Linux distribution that does not yet use this driver in its boot kernel,
329977b899cSMauro Carvalho Chehab  BusLogic has provided an AutoSCSI configuration option to enable a legacy ISA
330977b899cSMauro Carvalho Chehab  compatible I/O port.
331977b899cSMauro Carvalho Chehab
332977b899cSMauro Carvalho Chehab  To enable this backward compatibility option, invoke the AutoSCSI utility via
333977b899cSMauro Carvalho Chehab  Ctrl-B at system startup and select "Adapter Configuration", "View/Modify
334977b899cSMauro Carvalho Chehab  Configuration", and then change the "ISA Compatible Port" setting from
335977b899cSMauro Carvalho Chehab  "Disable" to "Primary" or "Alternate".  Once this driver has been installed,
336977b899cSMauro Carvalho Chehab  the "ISA Compatible Port" option should be set back to "Disable" to avoid
337977b899cSMauro Carvalho Chehab  possible future I/O port conflicts.  The older BT-946C/956C/956CD also have
338977b899cSMauro Carvalho Chehab  this configuration option, but the factory default setting is "Primary".
339977b899cSMauro Carvalho Chehab
340977b899cSMauro Carvalho ChehabPCI Slot Scanning Order
341977b899cSMauro Carvalho Chehab-----------------------
342977b899cSMauro Carvalho Chehab
343977b899cSMauro Carvalho Chehab  In systems with multiple BusLogic PCI Host Adapters, the order in which the
344977b899cSMauro Carvalho Chehab  PCI slots are scanned may appear reversed with the BT-948/958/958D as
345977b899cSMauro Carvalho Chehab  compared to the BT-946C/956C/956CD.  For booting from a SCSI disk to work
346977b899cSMauro Carvalho Chehab  correctly, it is necessary that the host adapter's BIOS and the kernel agree
347977b899cSMauro Carvalho Chehab  on which disk is the boot device, which requires that they recognize the PCI
348977b899cSMauro Carvalho Chehab  host adapters in the same order.  The motherboard's PCI BIOS provides a
349977b899cSMauro Carvalho Chehab  standard way of enumerating the PCI host adapters, which is used by the Linux
350977b899cSMauro Carvalho Chehab  kernel.  Some PCI BIOS implementations enumerate the PCI slots in order of
351977b899cSMauro Carvalho Chehab  increasing bus number and device number, while others do so in the opposite
352977b899cSMauro Carvalho Chehab  direction.
353977b899cSMauro Carvalho Chehab
354977b899cSMauro Carvalho Chehab  Unfortunately, Microsoft decided that Windows 95 would always enumerate the
355977b899cSMauro Carvalho Chehab  PCI slots in order of increasing bus number and device number regardless of
356977b899cSMauro Carvalho Chehab  the PCI BIOS enumeration, and requires that their scheme be supported by the
357977b899cSMauro Carvalho Chehab  host adapter's BIOS to receive Windows 95 certification.  Therefore, the
358977b899cSMauro Carvalho Chehab  factory default settings of the BT-948/958/958D enumerate the host adapters
359977b899cSMauro Carvalho Chehab  by increasing bus number and device number.  To disable this feature, invoke
360977b899cSMauro Carvalho Chehab  the AutoSCSI utility via Ctrl-B at system startup and select "Adapter
361977b899cSMauro Carvalho Chehab  Configuration", "View/Modify Configuration", press Ctrl-F10, and then change
362977b899cSMauro Carvalho Chehab  the "Use Bus And Device # For PCI Scanning Seq." option to OFF.
363977b899cSMauro Carvalho Chehab
364977b899cSMauro Carvalho Chehab  This driver will interrogate the setting of the PCI Scanning Sequence option
365977b899cSMauro Carvalho Chehab  so as to recognize the host adapters in the same order as they are enumerated
366977b899cSMauro Carvalho Chehab  by the host adapter's BIOS.
367977b899cSMauro Carvalho Chehab
368977b899cSMauro Carvalho ChehabEnabling UltraSCSI Transfers
369977b899cSMauro Carvalho Chehab----------------------------
370977b899cSMauro Carvalho Chehab
371977b899cSMauro Carvalho Chehab  The BT-948/958/958D ship with their configuration set to "Factory Default"
372977b899cSMauro Carvalho Chehab  settings that are conservative and do not allow for UltraSCSI speed to be
373977b899cSMauro Carvalho Chehab  negotiated.  This results in fewer problems when these host adapters are
374977b899cSMauro Carvalho Chehab  installed in systems with cabling or termination that is not sufficient for
375977b899cSMauro Carvalho Chehab  UltraSCSI operation, or where existing SCSI devices do not properly respond
376977b899cSMauro Carvalho Chehab  to synchronous transfer negotiation for UltraSCSI speed.  AutoSCSI may be
377977b899cSMauro Carvalho Chehab  used to load "Optimum Performance" settings which allow UltraSCSI speed to be
378977b899cSMauro Carvalho Chehab  negotiated with all devices, or UltraSCSI speed can be enabled on an
379977b899cSMauro Carvalho Chehab  individual basis.  It is recommended that SCAM be manually disabled after the
380977b899cSMauro Carvalho Chehab  "Optimum Performance" settings are loaded.
381977b899cSMauro Carvalho Chehab
382977b899cSMauro Carvalho Chehab
383977b899cSMauro Carvalho ChehabDriver Options
384977b899cSMauro Carvalho Chehab==============
385977b899cSMauro Carvalho Chehab
386977b899cSMauro Carvalho ChehabBusLogic Driver Options may be specified either via the Linux Kernel Command
387977b899cSMauro Carvalho ChehabLine or via the Loadable Kernel Module Installation Facility.  Driver Options
388977b899cSMauro Carvalho Chehabfor multiple host adapters may be specified either by separating the option
389977b899cSMauro Carvalho Chehabstrings by a semicolon, or by specifying multiple "BusLogic=" strings on the
390977b899cSMauro Carvalho Chehabcommand line.  Individual option specifications for a single host adapter are
391977b899cSMauro Carvalho Chehabseparated by commas.  The Probing and Debugging Options apply to all host
392977b899cSMauro Carvalho Chehabadapters whereas the remaining options apply individually only to the
393977b899cSMauro Carvalho Chehabselected host adapter.
394977b899cSMauro Carvalho Chehab
395977b899cSMauro Carvalho ChehabThe BusLogic Driver Probing Options comprise the following:
396977b899cSMauro Carvalho Chehab
397977b899cSMauro Carvalho ChehabNoProbe
398977b899cSMauro Carvalho Chehab
399977b899cSMauro Carvalho Chehab  The "NoProbe" option disables all probing and therefore no BusLogic Host
400977b899cSMauro Carvalho Chehab  Adapters will be detected.
401977b899cSMauro Carvalho Chehab
402977b899cSMauro Carvalho ChehabNoProbePCI
403977b899cSMauro Carvalho Chehab
404977b899cSMauro Carvalho Chehab  The "NoProbePCI" options disables the interrogation of PCI Configuration
405977b899cSMauro Carvalho Chehab  Space and therefore only ISA Multimaster Host Adapters will be detected, as
406977b899cSMauro Carvalho Chehab  well as PCI Multimaster Host Adapters that have their ISA Compatible I/O
407977b899cSMauro Carvalho Chehab  Port set to "Primary" or "Alternate".
408977b899cSMauro Carvalho Chehab
409977b899cSMauro Carvalho ChehabNoSortPCI
410977b899cSMauro Carvalho Chehab
411977b899cSMauro Carvalho Chehab  The "NoSortPCI" option forces PCI MultiMaster Host Adapters to be
412977b899cSMauro Carvalho Chehab  enumerated in the order provided by the PCI BIOS, ignoring any setting of
413977b899cSMauro Carvalho Chehab  the AutoSCSI "Use Bus And Device # For PCI Scanning Seq." option.
414977b899cSMauro Carvalho Chehab
415977b899cSMauro Carvalho ChehabMultiMasterFirst
416977b899cSMauro Carvalho Chehab
417977b899cSMauro Carvalho Chehab  The "MultiMasterFirst" option forces MultiMaster Host Adapters to be probed
418977b899cSMauro Carvalho Chehab  before FlashPoint Host Adapters.  By default, if both FlashPoint and PCI
419977b899cSMauro Carvalho Chehab  MultiMaster Host Adapters are present, this driver will probe for
420977b899cSMauro Carvalho Chehab  FlashPoint Host Adapters first unless the BIOS primary disk is controlled
421977b899cSMauro Carvalho Chehab  by the first PCI MultiMaster Host Adapter, in which case MultiMaster Host
422977b899cSMauro Carvalho Chehab  Adapters will be probed first.
423977b899cSMauro Carvalho Chehab
424977b899cSMauro Carvalho ChehabFlashPointFirst
425977b899cSMauro Carvalho Chehab
426977b899cSMauro Carvalho Chehab  The "FlashPointFirst" option forces FlashPoint Host Adapters to be probed
427977b899cSMauro Carvalho Chehab  before MultiMaster Host Adapters.
428977b899cSMauro Carvalho Chehab
429977b899cSMauro Carvalho ChehabThe BusLogic Driver Tagged Queuing Options allow for explicitly specifying
430977b899cSMauro Carvalho Chehabthe Queue Depth and whether Tagged Queuing is permitted for each Target
431977b899cSMauro Carvalho ChehabDevice (assuming that the Target Device supports Tagged Queuing).  The Queue
432977b899cSMauro Carvalho ChehabDepth is the number of SCSI Commands that are allowed to be concurrently
433977b899cSMauro Carvalho Chehabpresented for execution (either to the Host Adapter or Target Device).  Note
434977b899cSMauro Carvalho Chehabthat explicitly enabling Tagged Queuing may lead to problems; the option to
435977b899cSMauro Carvalho Chehabenable or disable Tagged Queuing is provided primarily to allow disabling
436977b899cSMauro Carvalho ChehabTagged Queuing on Target Devices that do not implement it correctly.  The
437977b899cSMauro Carvalho Chehabfollowing options are available:
438977b899cSMauro Carvalho Chehab
439977b899cSMauro Carvalho ChehabQueueDepth:<integer>
440977b899cSMauro Carvalho Chehab
441977b899cSMauro Carvalho Chehab  The "QueueDepth:" or QD:" option specifies the Queue Depth to use for all
442977b899cSMauro Carvalho Chehab  Target Devices that support Tagged Queuing, as well as the maximum Queue
443977b899cSMauro Carvalho Chehab  Depth for devices that do not support Tagged Queuing.  If no Queue Depth
444977b899cSMauro Carvalho Chehab  option is provided, the Queue Depth will be determined automatically based
445977b899cSMauro Carvalho Chehab  on the Host Adapter's Total Queue Depth and the number, type, speed, and
446*8cad3b66SChristoph Hellwig  capabilities of the detected Target Devices.  Target Devices that
447977b899cSMauro Carvalho Chehab  do not support Tagged Queuing always have their Queue Depth set to
448977b899cSMauro Carvalho Chehab  BusLogic_UntaggedQueueDepth or BusLogic_UntaggedQueueDepthBB, unless a
449977b899cSMauro Carvalho Chehab  lower Queue Depth option is provided.  A Queue Depth of 1 automatically
450977b899cSMauro Carvalho Chehab  disables Tagged Queuing.
451977b899cSMauro Carvalho Chehab
452977b899cSMauro Carvalho ChehabQueueDepth:[<integer>,<integer>...]
453977b899cSMauro Carvalho Chehab
454977b899cSMauro Carvalho Chehab  The "QueueDepth:[...]" or "QD:[...]" option specifies the Queue Depth
455977b899cSMauro Carvalho Chehab  individually for each Target Device.  If an <integer> is omitted, the
456977b899cSMauro Carvalho Chehab  associated Target Device will have its Queue Depth selected automatically.
457977b899cSMauro Carvalho Chehab
458977b899cSMauro Carvalho ChehabTaggedQueuing:Default
459977b899cSMauro Carvalho Chehab
460977b899cSMauro Carvalho Chehab  The "TaggedQueuing:Default" or "TQ:Default" option permits Tagged Queuing
461977b899cSMauro Carvalho Chehab  based on the firmware version of the BusLogic Host Adapter and based on
462977b899cSMauro Carvalho Chehab  whether the Queue Depth allows queuing multiple commands.
463977b899cSMauro Carvalho Chehab
464977b899cSMauro Carvalho ChehabTaggedQueuing:Enable
465977b899cSMauro Carvalho Chehab
466977b899cSMauro Carvalho Chehab  The "TaggedQueuing:Enable" or "TQ:Enable" option enables Tagged Queuing for
467977b899cSMauro Carvalho Chehab  all Target Devices on this Host Adapter, overriding any limitation that
468977b899cSMauro Carvalho Chehab  would otherwise be imposed based on the Host Adapter firmware version.
469977b899cSMauro Carvalho Chehab
470977b899cSMauro Carvalho ChehabTaggedQueuing:Disable
471977b899cSMauro Carvalho Chehab
472977b899cSMauro Carvalho Chehab  The "TaggedQueuing:Disable" or "TQ:Disable" option disables Tagged Queuing
473977b899cSMauro Carvalho Chehab  for all Target Devices on this Host Adapter.
474977b899cSMauro Carvalho Chehab
475977b899cSMauro Carvalho ChehabTaggedQueuing:<Target-Spec>
476977b899cSMauro Carvalho Chehab
477977b899cSMauro Carvalho Chehab  The "TaggedQueuing:<Target-Spec>" or "TQ:<Target-Spec>" option controls
478977b899cSMauro Carvalho Chehab  Tagged Queuing individually for each Target Device.  <Target-Spec> is a
479977b899cSMauro Carvalho Chehab  sequence of "Y", "N", and "X" characters.  "Y" enables Tagged Queuing, "N"
480977b899cSMauro Carvalho Chehab  disables Tagged Queuing, and "X" accepts the default based on the firmware
481977b899cSMauro Carvalho Chehab  version.  The first character refers to Target Device 0, the second to
482977b899cSMauro Carvalho Chehab  Target Device 1, and so on; if the sequence of "Y", "N", and "X" characters
483977b899cSMauro Carvalho Chehab  does not cover all the Target Devices, unspecified characters are assumed
484977b899cSMauro Carvalho Chehab  to be "X".
485977b899cSMauro Carvalho Chehab
486977b899cSMauro Carvalho ChehabThe BusLogic Driver Miscellaneous Options comprise the following:
487977b899cSMauro Carvalho Chehab
488977b899cSMauro Carvalho ChehabBusSettleTime:<seconds>
489977b899cSMauro Carvalho Chehab
490977b899cSMauro Carvalho Chehab  The "BusSettleTime:" or "BST:" option specifies the Bus Settle Time in
491977b899cSMauro Carvalho Chehab  seconds.  The Bus Settle Time is the amount of time to wait between a Host
492977b899cSMauro Carvalho Chehab  Adapter Hard Reset which initiates a SCSI Bus Reset and issuing any SCSI
493977b899cSMauro Carvalho Chehab  Commands.  If unspecified, it defaults to BusLogic_DefaultBusSettleTime.
494977b899cSMauro Carvalho Chehab
495977b899cSMauro Carvalho ChehabInhibitTargetInquiry
496977b899cSMauro Carvalho Chehab
497977b899cSMauro Carvalho Chehab  The "InhibitTargetInquiry" option inhibits the execution of an Inquire
498977b899cSMauro Carvalho Chehab  Target Devices or Inquire Installed Devices command on MultiMaster Host
499977b899cSMauro Carvalho Chehab  Adapters.  This may be necessary with some older Target Devices that do not
500977b899cSMauro Carvalho Chehab  respond correctly when Logical Units above 0 are addressed.
501977b899cSMauro Carvalho Chehab
502977b899cSMauro Carvalho ChehabThe BusLogic Driver Debugging Options comprise the following:
503977b899cSMauro Carvalho Chehab
504977b899cSMauro Carvalho ChehabTraceProbe
505977b899cSMauro Carvalho Chehab
506977b899cSMauro Carvalho Chehab  The "TraceProbe" option enables tracing of Host Adapter Probing.
507977b899cSMauro Carvalho Chehab
508977b899cSMauro Carvalho ChehabTraceHardwareReset
509977b899cSMauro Carvalho Chehab
510977b899cSMauro Carvalho Chehab  The "TraceHardwareReset" option enables tracing of Host Adapter Hardware
511977b899cSMauro Carvalho Chehab  Reset.
512977b899cSMauro Carvalho Chehab
513977b899cSMauro Carvalho ChehabTraceConfiguration
514977b899cSMauro Carvalho Chehab
515977b899cSMauro Carvalho Chehab  The "TraceConfiguration" option enables tracing of Host Adapter
516977b899cSMauro Carvalho Chehab  Configuration.
517977b899cSMauro Carvalho Chehab
518977b899cSMauro Carvalho ChehabTraceErrors
519977b899cSMauro Carvalho Chehab
520977b899cSMauro Carvalho Chehab  The "TraceErrors" option enables tracing of SCSI Commands that return an
521977b899cSMauro Carvalho Chehab  error from the Target Device.  The CDB and Sense Data will be printed for
522977b899cSMauro Carvalho Chehab  each SCSI Command that fails.
523977b899cSMauro Carvalho Chehab
524977b899cSMauro Carvalho ChehabDebug
525977b899cSMauro Carvalho Chehab
526977b899cSMauro Carvalho Chehab  The "Debug" option enables all debugging options.
527977b899cSMauro Carvalho Chehab
528977b899cSMauro Carvalho ChehabThe following examples demonstrate setting the Queue Depth for Target Devices
529977b899cSMauro Carvalho Chehab1 and 2 on the first host adapter to 7 and 15, the Queue Depth for all Target
530977b899cSMauro Carvalho ChehabDevices on the second host adapter to 31, and the Bus Settle Time on the
531977b899cSMauro Carvalho Chehabsecond host adapter to 30 seconds.
532977b899cSMauro Carvalho Chehab
533977b899cSMauro Carvalho ChehabLinux Kernel Command Line::
534977b899cSMauro Carvalho Chehab
535977b899cSMauro Carvalho Chehab  linux BusLogic=QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30
536977b899cSMauro Carvalho Chehab
537977b899cSMauro Carvalho ChehabLILO Linux Boot Loader (in /etc/lilo.conf)::
538977b899cSMauro Carvalho Chehab
539977b899cSMauro Carvalho Chehab  append = "BusLogic=QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30"
540977b899cSMauro Carvalho Chehab
541977b899cSMauro Carvalho ChehabINSMOD Loadable Kernel Module Installation Facility::
542977b899cSMauro Carvalho Chehab
543977b899cSMauro Carvalho Chehab  insmod BusLogic.o \
544977b899cSMauro Carvalho Chehab      'BusLogic="QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30"'
545977b899cSMauro Carvalho Chehab
546977b899cSMauro Carvalho Chehab
547977b899cSMauro Carvalho Chehab.. Note::
548977b899cSMauro Carvalho Chehab
549977b899cSMauro Carvalho Chehab      Module Utilities 2.1.71 or later is required for correct parsing
550977b899cSMauro Carvalho Chehab      of driver options containing commas.
551977b899cSMauro Carvalho Chehab
552977b899cSMauro Carvalho Chehab
553977b899cSMauro Carvalho ChehabDriver Installation
554977b899cSMauro Carvalho Chehab===================
555977b899cSMauro Carvalho Chehab
556977b899cSMauro Carvalho ChehabThis distribution was prepared for Linux kernel version 2.0.35, but should be
557977b899cSMauro Carvalho Chehabcompatible with 2.0.4 or any later 2.0 series kernel.
558977b899cSMauro Carvalho Chehab
559977b899cSMauro Carvalho ChehabTo install the new BusLogic SCSI driver, you may use the following commands,
560977b899cSMauro Carvalho Chehabreplacing "/usr/src" with wherever you keep your Linux kernel source tree::
561977b899cSMauro Carvalho Chehab
562977b899cSMauro Carvalho Chehab  cd /usr/src
563977b899cSMauro Carvalho Chehab  tar -xvzf BusLogic-2.0.15.tar.gz
564977b899cSMauro Carvalho Chehab  mv README.* LICENSE.* BusLogic.[ch] FlashPoint.c linux/drivers/scsi
565977b899cSMauro Carvalho Chehab  patch -p0 < BusLogic.patch (only for 2.0.33 and below)
566977b899cSMauro Carvalho Chehab  cd linux
567977b899cSMauro Carvalho Chehab  make config
568977b899cSMauro Carvalho Chehab  make zImage
569977b899cSMauro Carvalho Chehab
570977b899cSMauro Carvalho ChehabThen install "arch/x86/boot/zImage" as your standard kernel, run lilo if
571977b899cSMauro Carvalho Chehabappropriate, and reboot.
572977b899cSMauro Carvalho Chehab
573977b899cSMauro Carvalho Chehab
574977b899cSMauro Carvalho ChehabBusLogic Announcements Mailing List
575977b899cSMauro Carvalho Chehab===================================
576977b899cSMauro Carvalho Chehab
577977b899cSMauro Carvalho ChehabThe BusLogic Announcements Mailing List provides a forum for informing Linux
578977b899cSMauro Carvalho Chehabusers of new driver releases and other announcements regarding Linux support
579977b899cSMauro Carvalho Chehabfor BusLogic SCSI Host Adapters.  To join the mailing list, send a message to
580977b899cSMauro Carvalho Chehab"buslogic-announce-request@dandelion.com" with the line "subscribe" in the
581977b899cSMauro Carvalho Chehabmessage body.
582