aboutsummaryrefslogtreecommitdiff
path: root/share/man/man4/cfumass.4
blob: 7870ab197484d2fc3cfea0e4106c313d6266b475 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
.\" Copyright (c) 2017 The FreeBSD Foundation
.\"
.\" This software was developed by Edward Tomasz Napierala under sponsorship
.\" from the FreeBSD Foundation.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
.Dd April 21, 2018
.Dt CFUMASS 4
.Os
.Sh NAME
.Nm cfumass
.Nd USB device side support for Mass Storage Class Transport
.Sh SYNOPSIS
This driver can be compiled into the kernel by placing these lines in
the kernel configuration file:
.Bd -ragged -offset indent
.Cd "device usb"
.Cd "device usb_template"
.Cd "device ctl"
.Cd "device cfumass"
.Ed
.Pp
The driver module can also be loaded at boot by adding this line to
.Xr loader.conf 5 :
.Bd -literal -offset indent
cfumass_load="YES"
.Ed
.Sh DESCRIPTION
The
.Nm
driver provides device side support for emulating an USB mass storage
device compliant with the USB Mass Storage Class Bulk-Only (BBB) Transport
specification, implemented as a
.Xr ctl 4
frontend driver.
.Pp
To use
.Nm :
.Bl -bullet
.It
.Xr cfumass 4
must be loaded as a module or compiled into the kernel.
.It
The USB Mass Storage template must be chosen by setting the
.Va hw.usb.template
sysctl to 0.
.It
The USB OTG port must be working in USB device-side mode.
This happens automatically upon connection to a USB host.
.It
There must be a
.Xr ctl 4
LUN configured for the
.Pa cfumass
port.
.El
.Pp
Upon loading, the driver creates a
.Xr ctl 4
port named
.Pa cfumass ,
presenting the first LUN mapped for that port - usually LUN 0 - to
the USB host.
See
.Xr ctl.conf 5
and
.Xr ctld 8
for details on configuring the LUN.
See the
.Cm cfumass_enable
and
.Cm cfumass_dir
.Xr rc 8
variables in
.Xr rc.conf 5
for an automated way to configure it at boot.
.Sh SYSCTL VARIABLES
These variables are available as both
.Xr sysctl 8
variables and
.Xr loader 8
tunables:
.Bl -tag -width indent
.It Va hw.usb.cfumass.debug
Verbosity level for log messages from the
.Nm
driver.
Set to 0 to disable logging or 1 to warn about potential problems.
Larger values enable debugging output.
Defaults to 1.
.It Va hw.usb.cfumass.ignore_stop
Ignore START STOP UNIT SCSI commands with START and LOEJ bits cleared.
Some initiators send that command to stop the target when the user
attempts to gracefully eject the drive, but fail to start it when the
drive is reconnected.
Set to 0 to handle the command in a standards-compliant way,
1 to ignore it and log a warning, or 2 to ignore it silently.
Defaults to 1.
.It Va hw.usb.cfumass.max_lun
Max LUN number to report to the initiator (USB host).
Must be between 0 and 15.
Some initiators incorrectly handle values larger than 0.
Defaults to 0.
.El
.Sh SEE ALSO
.Xr ctl 4 ,
.Xr umass 4 ,
.Xr usb 4 ,
.Xr usb_template 4 ,
.Xr ctl.conf 5 ,
.Xr ctld 8
.Sh HISTORY
The
.Nm
driver first appeared in
.Fx 11.1 .
.Sh AUTHORS
The
.Nm
driver was developed by
.An Edward Tomasz Napierala Aq Mt trasz@FreeBSD.org
under sponsorship from the FreeBSD Foundation.