Blame view

Documentation/DocBook/s390-drivers.tmpl 5.4 KB
3a2fbff22   Cornelia Huck   [S390] cio: Add s...
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
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
  	"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
  
  <book id="s390drivers">
   <bookinfo>
    <title>Writing s390 channel device drivers</title>
  
    <authorgroup>
     <author>
      <firstname>Cornelia</firstname>
      <surname>Huck</surname>
      <affiliation>
       <address>
         <email>cornelia.huck@de.ibm.com</email>
       </address>
      </affiliation>
     </author>
    </authorgroup>
  
    <copyright>
     <year>2007</year>
     <holder>IBM Corp.</holder>
    </copyright>
  
    <legalnotice>
     <para>
       This documentation is free software; you can redistribute
       it and/or modify it under the terms of the GNU General Public
       License as published by the Free Software Foundation; either
       version 2 of the License, or (at your option) any later
       version.
     </para>
  
     <para>
       This program is distributed in the hope that it will be
       useful, but WITHOUT ANY WARRANTY; without even the implied
       warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       See the GNU General Public License for more details.
     </para>
  
     <para>
       You should have received a copy of the GNU General Public
       License along with this program; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
       MA 02111-1307 USA
     </para>
  
     <para>
       For more details see the file COPYING in the source
       distribution of Linux.
     </para>
    </legalnotice>
   </bookinfo>
  
  <toc></toc>
  
    <chapter id="intro">
     <title>Introduction</title>
    <para>
      This document describes the interfaces available for device drivers that
2fffc9355   Cornelia Huck   [S390] cio: Updat...
62
      drive s390 based channel attached I/O devices. This includes interfaces for
3a2fbff22   Cornelia Huck   [S390] cio: Add s...
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
      interaction with the hardware and interfaces for interacting with the
      common driver core. Those interfaces are provided by the s390 common I/O
      layer.
    </para>
    <para>
      The document assumes a familarity with the technical terms associated
      with the s390 channel I/O architecture. For a description of this
      architecture, please refer to the "z/Architecture: Principles of
      Operation", IBM publication no. SA22-7832.
    </para>
    <para>
      While most I/O devices on a s390 system are typically driven through the
      channel I/O mechanism described here, there are various other methods
      (like the diag interface). These are out of the scope of this document.
    </para>
    <para>
      Some additional information can also be found in the kernel source
      under Documentation/s390/driver-model.txt.
    </para>
    </chapter>
    <chapter id="ccw">
     <title>The ccw bus</title>
    <para>
  	The ccw bus typically contains the majority of devices available to
  	a s390 system. Named after the channel command word (ccw), the basic
  	command structure used to address its devices, the ccw bus contains
2fffc9355   Cornelia Huck   [S390] cio: Updat...
89
90
91
92
  	so-called channel attached devices. They are addressed via I/O
  	subchannels, visible on the css bus. A device driver for
  	channel-attached devices, however, will never interact	with the
  	subchannel directly, but only via the I/O device on the ccw bus,
3a2fbff22   Cornelia Huck   [S390] cio: Add s...
93
94
95
96
97
98
99
100
101
102
  	the ccw device.
    </para>
      <sect1 id="channelIO">
       <title>I/O functions for channel-attached devices</title>
      <para>
        Some hardware structures have been translated into C structures for use
        by the common I/O layer and device drivers. For more information on
        the hardware structures represented here, please consult the Principles
        of Operation.
      </para>
37193fb46   Randy Dunlap   docbook: fix s390...
103
  !Iarch/s390/include/asm/cio.h
3a2fbff22   Cornelia Huck   [S390] cio: Add s...
104
105
106
107
108
109
110
111
112
113
114
115
116
      </sect1>
      <sect1 id="ccwdev">
       <title>ccw devices</title>
      <para>
        Devices that want to initiate channel I/O need to attach to the ccw bus.
        Interaction with the driver core is done via the common I/O layer, which
        provides the abstractions of ccw devices and ccw device drivers.
      </para>
      <para>
        The functions that initiate or terminate channel I/O all act upon a
        ccw device structure. Device drivers must not bypass those functions
        or strange side effects may happen.
      </para>
37193fb46   Randy Dunlap   docbook: fix s390...
117
  !Iarch/s390/include/asm/ccwdev.h
3a2fbff22   Cornelia Huck   [S390] cio: Add s...
118
119
120
121
122
123
124
125
126
127
  !Edrivers/s390/cio/device.c
  !Edrivers/s390/cio/device_ops.c
      </sect1>
      <sect1 id="cmf">
       <title>The channel-measurement facility</title>
    <para>
  	The channel-measurement facility provides a means to collect
  	measurement data which is made available by the channel subsystem
  	for each channel attached device.
    </para>
37193fb46   Randy Dunlap   docbook: fix s390...
128
  !Iarch/s390/include/asm/cmb.h
3a2fbff22   Cornelia Huck   [S390] cio: Add s...
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
  !Edrivers/s390/cio/cmf.c
      </sect1>
    </chapter>
  
    <chapter id="ccwgroup">
     <title>The ccwgroup bus</title>
    <para>
  	The ccwgroup bus only contains artificial devices, created by the user.
  	Many networking devices (e.g. qeth) are in fact composed of several
  	ccw devices (like read, write and data channel for qeth). The
  	ccwgroup bus provides a mechanism to create a meta-device which
  	contains those ccw devices as slave devices and can be associated
  	with the netdevice.
    </para>
     <sect1 id="ccwgroupdevices">
      <title>ccw group devices</title>
37193fb46   Randy Dunlap   docbook: fix s390...
145
  !Iarch/s390/include/asm/ccwgroup.h
3a2fbff22   Cornelia Huck   [S390] cio: Add s...
146
147
148
  !Edrivers/s390/cio/ccwgroup.c
     </sect1>
    </chapter>
2fffc9355   Cornelia Huck   [S390] cio: Updat...
149
150
151
152
153
154
155
156
157
158
    <chapter id="genericinterfaces">
     <title>Generic interfaces</title>
    <para>
  	Some interfaces are available to other drivers that do not necessarily
  	have anything to do with the busses described above, but still are
  	indirectly using basic infrastructure in the common I/O layer.
  	One example is the support for adapter interrupts.
    </para>
  !Edrivers/s390/cio/airq.c
    </chapter>
3a2fbff22   Cornelia Huck   [S390] cio: Add s...
159
  </book>