xref: /openbmc/linux/Documentation/powerpc/hvcs.rst (revision ac94be498f84f7327533b62faca4c3da64434904)
1*4d2e26a3SMauro Carvalho Chehab===============================================================
2*4d2e26a3SMauro Carvalho ChehabHVCS IBM "Hypervisor Virtual Console Server" Installation Guide
3*4d2e26a3SMauro Carvalho Chehab===============================================================
4*4d2e26a3SMauro Carvalho Chehab
5*4d2e26a3SMauro Carvalho Chehabfor Linux Kernel 2.6.4+
6*4d2e26a3SMauro Carvalho Chehab
7*4d2e26a3SMauro Carvalho ChehabCopyright (C) 2004 IBM Corporation
8*4d2e26a3SMauro Carvalho Chehab
9*4d2e26a3SMauro Carvalho Chehab.. ===========================================================================
10*4d2e26a3SMauro Carvalho Chehab.. NOTE:Eight space tabs are the optimum editor setting for reading this file.
11*4d2e26a3SMauro Carvalho Chehab.. ===========================================================================
12*4d2e26a3SMauro Carvalho Chehab
13*4d2e26a3SMauro Carvalho Chehab
14*4d2e26a3SMauro Carvalho ChehabAuthor(s): Ryan S. Arnold <rsa@us.ibm.com>
15*4d2e26a3SMauro Carvalho Chehab
16*4d2e26a3SMauro Carvalho ChehabDate Created: March, 02, 2004
17*4d2e26a3SMauro Carvalho ChehabLast Changed: August, 24, 2004
18*4d2e26a3SMauro Carvalho Chehab
19*4d2e26a3SMauro Carvalho Chehab.. Table of contents:
20*4d2e26a3SMauro Carvalho Chehab
21*4d2e26a3SMauro Carvalho Chehab	1.  Driver Introduction:
22*4d2e26a3SMauro Carvalho Chehab	2.  System Requirements
23*4d2e26a3SMauro Carvalho Chehab	3.  Build Options:
24*4d2e26a3SMauro Carvalho Chehab		3.1  Built-in:
25*4d2e26a3SMauro Carvalho Chehab		3.2  Module:
26*4d2e26a3SMauro Carvalho Chehab	4.  Installation:
27*4d2e26a3SMauro Carvalho Chehab	5.  Connection:
28*4d2e26a3SMauro Carvalho Chehab	6.  Disconnection:
29*4d2e26a3SMauro Carvalho Chehab	7.  Configuration:
30*4d2e26a3SMauro Carvalho Chehab	8.  Questions & Answers:
31*4d2e26a3SMauro Carvalho Chehab	9.  Reporting Bugs:
32*4d2e26a3SMauro Carvalho Chehab
33*4d2e26a3SMauro Carvalho Chehab1. Driver Introduction:
34*4d2e26a3SMauro Carvalho Chehab=======================
35*4d2e26a3SMauro Carvalho Chehab
36*4d2e26a3SMauro Carvalho ChehabThis is the device driver for the IBM Hypervisor Virtual Console Server,
37*4d2e26a3SMauro Carvalho Chehab"hvcs".  The IBM hvcs provides a tty driver interface to allow Linux user
38*4d2e26a3SMauro Carvalho Chehabspace applications access to the system consoles of logically partitioned
39*4d2e26a3SMauro Carvalho Chehaboperating systems (Linux and AIX) running on the same partitioned Power5
40*4d2e26a3SMauro Carvalho Chehabppc64 system.  Physical hardware consoles per partition are not practical
41*4d2e26a3SMauro Carvalho Chehabon this hardware so system consoles are accessed by this driver using
42*4d2e26a3SMauro Carvalho Chehabfirmware interfaces to virtual terminal devices.
43*4d2e26a3SMauro Carvalho Chehab
44*4d2e26a3SMauro Carvalho Chehab2. System Requirements:
45*4d2e26a3SMauro Carvalho Chehab=======================
46*4d2e26a3SMauro Carvalho Chehab
47*4d2e26a3SMauro Carvalho ChehabThis device driver was written using 2.6.4 Linux kernel APIs and will only
48*4d2e26a3SMauro Carvalho Chehabbuild and run on kernels of this version or later.
49*4d2e26a3SMauro Carvalho Chehab
50*4d2e26a3SMauro Carvalho ChehabThis driver was written to operate solely on IBM Power5 ppc64 hardware
51*4d2e26a3SMauro Carvalho Chehabthough some care was taken to abstract the architecture dependent firmware
52*4d2e26a3SMauro Carvalho Chehabcalls from the driver code.
53*4d2e26a3SMauro Carvalho Chehab
54*4d2e26a3SMauro Carvalho ChehabSysfs must be mounted on the system so that the user can determine which
55*4d2e26a3SMauro Carvalho Chehabmajor and minor numbers are associated with each vty-server.  Directions
56*4d2e26a3SMauro Carvalho Chehabfor sysfs mounting are outside the scope of this document.
57*4d2e26a3SMauro Carvalho Chehab
58*4d2e26a3SMauro Carvalho Chehab3. Build Options:
59*4d2e26a3SMauro Carvalho Chehab=================
60*4d2e26a3SMauro Carvalho Chehab
61*4d2e26a3SMauro Carvalho ChehabThe hvcs driver registers itself as a tty driver.  The tty layer
62*4d2e26a3SMauro Carvalho Chehabdynamically allocates a block of major and minor numbers in a quantity
63*4d2e26a3SMauro Carvalho Chehabrequested by the registering driver.  The hvcs driver asks the tty layer
64*4d2e26a3SMauro Carvalho Chehabfor 64 of these major/minor numbers by default to use for hvcs device node
65*4d2e26a3SMauro Carvalho Chehabentries.
66*4d2e26a3SMauro Carvalho Chehab
67*4d2e26a3SMauro Carvalho ChehabIf the default number of device entries is adequate then this driver can be
68*4d2e26a3SMauro Carvalho Chehabbuilt into the kernel.  If not, the default can be over-ridden by inserting
69*4d2e26a3SMauro Carvalho Chehabthe driver as a module with insmod parameters.
70*4d2e26a3SMauro Carvalho Chehab
71*4d2e26a3SMauro Carvalho Chehab3.1 Built-in:
72*4d2e26a3SMauro Carvalho Chehab-------------
73*4d2e26a3SMauro Carvalho Chehab
74*4d2e26a3SMauro Carvalho ChehabThe following menuconfig example demonstrates selecting to build this
75*4d2e26a3SMauro Carvalho Chehabdriver into the kernel::
76*4d2e26a3SMauro Carvalho Chehab
77*4d2e26a3SMauro Carvalho Chehab	Device Drivers  --->
78*4d2e26a3SMauro Carvalho Chehab		Character devices  --->
79*4d2e26a3SMauro Carvalho Chehab			<*> IBM Hypervisor Virtual Console Server Support
80*4d2e26a3SMauro Carvalho Chehab
81*4d2e26a3SMauro Carvalho ChehabBegin the kernel make process.
82*4d2e26a3SMauro Carvalho Chehab
83*4d2e26a3SMauro Carvalho Chehab3.2 Module:
84*4d2e26a3SMauro Carvalho Chehab-----------
85*4d2e26a3SMauro Carvalho Chehab
86*4d2e26a3SMauro Carvalho ChehabThe following menuconfig example demonstrates selecting to build this
87*4d2e26a3SMauro Carvalho Chehabdriver as a kernel module::
88*4d2e26a3SMauro Carvalho Chehab
89*4d2e26a3SMauro Carvalho Chehab	Device Drivers  --->
90*4d2e26a3SMauro Carvalho Chehab		Character devices  --->
91*4d2e26a3SMauro Carvalho Chehab			<M> IBM Hypervisor Virtual Console Server Support
92*4d2e26a3SMauro Carvalho Chehab
93*4d2e26a3SMauro Carvalho ChehabThe make process will build the following kernel modules:
94*4d2e26a3SMauro Carvalho Chehab
95*4d2e26a3SMauro Carvalho Chehab	- hvcs.ko
96*4d2e26a3SMauro Carvalho Chehab	- hvcserver.ko
97*4d2e26a3SMauro Carvalho Chehab
98*4d2e26a3SMauro Carvalho ChehabTo insert the module with the default allocation execute the following
99*4d2e26a3SMauro Carvalho Chehabcommands in the order they appear::
100*4d2e26a3SMauro Carvalho Chehab
101*4d2e26a3SMauro Carvalho Chehab	insmod hvcserver.ko
102*4d2e26a3SMauro Carvalho Chehab	insmod hvcs.ko
103*4d2e26a3SMauro Carvalho Chehab
104*4d2e26a3SMauro Carvalho ChehabThe hvcserver module contains architecture specific firmware calls and must
105*4d2e26a3SMauro Carvalho Chehabbe inserted first, otherwise the hvcs module will not find some of the
106*4d2e26a3SMauro Carvalho Chehabsymbols it expects.
107*4d2e26a3SMauro Carvalho Chehab
108*4d2e26a3SMauro Carvalho ChehabTo override the default use an insmod parameter as follows (requesting 4
109*4d2e26a3SMauro Carvalho Chehabtty devices as an example)::
110*4d2e26a3SMauro Carvalho Chehab
111*4d2e26a3SMauro Carvalho Chehab	insmod hvcs.ko hvcs_parm_num_devs=4
112*4d2e26a3SMauro Carvalho Chehab
113*4d2e26a3SMauro Carvalho ChehabThere is a maximum number of dev entries that can be specified on insmod.
114*4d2e26a3SMauro Carvalho ChehabWe think that 1024 is currently a decent maximum number of server adapters
115*4d2e26a3SMauro Carvalho Chehabto allow.  This can always be changed by modifying the constant in the
116*4d2e26a3SMauro Carvalho Chehabsource file before building.
117*4d2e26a3SMauro Carvalho Chehab
118*4d2e26a3SMauro Carvalho ChehabNOTE: The length of time it takes to insmod the driver seems to be related
119*4d2e26a3SMauro Carvalho Chehabto the number of tty interfaces the registering driver requests.
120*4d2e26a3SMauro Carvalho Chehab
121*4d2e26a3SMauro Carvalho ChehabIn order to remove the driver module execute the following command::
122*4d2e26a3SMauro Carvalho Chehab
123*4d2e26a3SMauro Carvalho Chehab	rmmod hvcs.ko
124*4d2e26a3SMauro Carvalho Chehab
125*4d2e26a3SMauro Carvalho ChehabThe recommended method for installing hvcs as a module is to use depmod to
126*4d2e26a3SMauro Carvalho Chehabbuild a current modules.dep file in /lib/modules/`uname -r` and then
127*4d2e26a3SMauro Carvalho Chehabexecute::
128*4d2e26a3SMauro Carvalho Chehab
129*4d2e26a3SMauro Carvalho Chehab	modprobe hvcs hvcs_parm_num_devs=4
130*4d2e26a3SMauro Carvalho Chehab
131*4d2e26a3SMauro Carvalho ChehabThe modules.dep file indicates that hvcserver.ko needs to be inserted
132*4d2e26a3SMauro Carvalho Chehabbefore hvcs.ko and modprobe uses this file to smartly insert the modules in
133*4d2e26a3SMauro Carvalho Chehabthe proper order.
134*4d2e26a3SMauro Carvalho Chehab
135*4d2e26a3SMauro Carvalho ChehabThe following modprobe command is used to remove hvcs and hvcserver in the
136*4d2e26a3SMauro Carvalho Chehabproper order::
137*4d2e26a3SMauro Carvalho Chehab
138*4d2e26a3SMauro Carvalho Chehab	modprobe -r hvcs
139*4d2e26a3SMauro Carvalho Chehab
140*4d2e26a3SMauro Carvalho Chehab4. Installation:
141*4d2e26a3SMauro Carvalho Chehab================
142*4d2e26a3SMauro Carvalho Chehab
143*4d2e26a3SMauro Carvalho ChehabThe tty layer creates sysfs entries which contain the major and minor
144*4d2e26a3SMauro Carvalho Chehabnumbers allocated for the hvcs driver.  The following snippet of "tree"
145*4d2e26a3SMauro Carvalho Chehaboutput of the sysfs directory shows where these numbers are presented::
146*4d2e26a3SMauro Carvalho Chehab
147*4d2e26a3SMauro Carvalho Chehab	sys/
148*4d2e26a3SMauro Carvalho Chehab	|-- *other sysfs base dirs*
149*4d2e26a3SMauro Carvalho Chehab	|
150*4d2e26a3SMauro Carvalho Chehab	|-- class
151*4d2e26a3SMauro Carvalho Chehab	|   |-- *other classes of devices*
152*4d2e26a3SMauro Carvalho Chehab	|   |
153*4d2e26a3SMauro Carvalho Chehab	|   `-- tty
154*4d2e26a3SMauro Carvalho Chehab	|       |-- *other tty devices*
155*4d2e26a3SMauro Carvalho Chehab	|       |
156*4d2e26a3SMauro Carvalho Chehab	|       |-- hvcs0
157*4d2e26a3SMauro Carvalho Chehab	|       |   `-- dev
158*4d2e26a3SMauro Carvalho Chehab	|       |-- hvcs1
159*4d2e26a3SMauro Carvalho Chehab	|       |   `-- dev
160*4d2e26a3SMauro Carvalho Chehab	|       |-- hvcs2
161*4d2e26a3SMauro Carvalho Chehab	|       |   `-- dev
162*4d2e26a3SMauro Carvalho Chehab	|       |-- hvcs3
163*4d2e26a3SMauro Carvalho Chehab	|       |   `-- dev
164*4d2e26a3SMauro Carvalho Chehab	|       |
165*4d2e26a3SMauro Carvalho Chehab	|       |-- *other tty devices*
166*4d2e26a3SMauro Carvalho Chehab	|
167*4d2e26a3SMauro Carvalho Chehab	|-- *other sysfs base dirs*
168*4d2e26a3SMauro Carvalho Chehab
169*4d2e26a3SMauro Carvalho ChehabFor the above examples the following output is a result of cat'ing the
170*4d2e26a3SMauro Carvalho Chehab"dev" entry in the hvcs directory::
171*4d2e26a3SMauro Carvalho Chehab
172*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/class/tty/hvcs0/ # cat dev
173*4d2e26a3SMauro Carvalho Chehab	254:0
174*4d2e26a3SMauro Carvalho Chehab
175*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/class/tty/hvcs1/ # cat dev
176*4d2e26a3SMauro Carvalho Chehab	254:1
177*4d2e26a3SMauro Carvalho Chehab
178*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/class/tty/hvcs2/ # cat dev
179*4d2e26a3SMauro Carvalho Chehab	254:2
180*4d2e26a3SMauro Carvalho Chehab
181*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/class/tty/hvcs3/ # cat dev
182*4d2e26a3SMauro Carvalho Chehab	254:3
183*4d2e26a3SMauro Carvalho Chehab
184*4d2e26a3SMauro Carvalho ChehabThe output from reading the "dev" attribute is the char device major and
185*4d2e26a3SMauro Carvalho Chehabminor numbers that the tty layer has allocated for this driver's use.  Most
186*4d2e26a3SMauro Carvalho Chehabsystems running hvcs will already have the device entries created or udev
187*4d2e26a3SMauro Carvalho Chehabwill do it automatically.
188*4d2e26a3SMauro Carvalho Chehab
189*4d2e26a3SMauro Carvalho ChehabGiven the example output above, to manually create a /dev/hvcs* node entry
190*4d2e26a3SMauro Carvalho Chehabmknod can be used as follows::
191*4d2e26a3SMauro Carvalho Chehab
192*4d2e26a3SMauro Carvalho Chehab	mknod /dev/hvcs0 c 254 0
193*4d2e26a3SMauro Carvalho Chehab	mknod /dev/hvcs1 c 254 1
194*4d2e26a3SMauro Carvalho Chehab	mknod /dev/hvcs2 c 254 2
195*4d2e26a3SMauro Carvalho Chehab	mknod /dev/hvcs3 c 254 3
196*4d2e26a3SMauro Carvalho Chehab
197*4d2e26a3SMauro Carvalho ChehabUsing mknod to manually create the device entries makes these device nodes
198*4d2e26a3SMauro Carvalho Chehabpersistent.  Once created they will exist prior to the driver insmod.
199*4d2e26a3SMauro Carvalho Chehab
200*4d2e26a3SMauro Carvalho ChehabAttempting to connect an application to /dev/hvcs* prior to insertion of
201*4d2e26a3SMauro Carvalho Chehabthe hvcs module will result in an error message similar to the following::
202*4d2e26a3SMauro Carvalho Chehab
203*4d2e26a3SMauro Carvalho Chehab	"/dev/hvcs*: No such device".
204*4d2e26a3SMauro Carvalho Chehab
205*4d2e26a3SMauro Carvalho ChehabNOTE: Just because there is a device node present doesn't mean that there
206*4d2e26a3SMauro Carvalho Chehabis a vty-server device configured for that node.
207*4d2e26a3SMauro Carvalho Chehab
208*4d2e26a3SMauro Carvalho Chehab5. Connection
209*4d2e26a3SMauro Carvalho Chehab=============
210*4d2e26a3SMauro Carvalho Chehab
211*4d2e26a3SMauro Carvalho ChehabSince this driver controls devices that provide a tty interface a user can
212*4d2e26a3SMauro Carvalho Chehabinteract with the device node entries using any standard tty-interactive
213*4d2e26a3SMauro Carvalho Chehabmethod (e.g. "cat", "dd", "echo").  The intent of this driver however, is
214*4d2e26a3SMauro Carvalho Chehabto provide real time console interaction with a Linux partition's console,
215*4d2e26a3SMauro Carvalho Chehabwhich requires the use of applications that provide bi-directional,
216*4d2e26a3SMauro Carvalho Chehabinteractive I/O with a tty device.
217*4d2e26a3SMauro Carvalho Chehab
218*4d2e26a3SMauro Carvalho ChehabApplications (e.g. "minicom" and "screen") that act as terminal emulators
219*4d2e26a3SMauro Carvalho Chehabor perform terminal type control sequence conversion on the data being
220*4d2e26a3SMauro Carvalho Chehabpassed through them are NOT acceptable for providing interactive console
221*4d2e26a3SMauro Carvalho ChehabI/O.  These programs often emulate antiquated terminal types (vt100 and
222*4d2e26a3SMauro Carvalho ChehabANSI) and expect inbound data to take the form of one of these supported
223*4d2e26a3SMauro Carvalho Chehabterminal types but they either do not convert, or do not _adequately_
224*4d2e26a3SMauro Carvalho Chehabconvert, outbound data into the terminal type of the terminal which invoked
225*4d2e26a3SMauro Carvalho Chehabthem (though screen makes an attempt and can apparently be configured with
226*4d2e26a3SMauro Carvalho Chehabmuch termcap wrestling.)
227*4d2e26a3SMauro Carvalho Chehab
228*4d2e26a3SMauro Carvalho ChehabFor this reason kermit and cu are two of the recommended applications for
229*4d2e26a3SMauro Carvalho Chehabinteracting with a Linux console via an hvcs device.  These programs simply
230*4d2e26a3SMauro Carvalho Chehabact as a conduit for data transfer to and from the tty device.  They do not
231*4d2e26a3SMauro Carvalho Chehabrequire inbound data to take the form of a particular terminal type, nor do
232*4d2e26a3SMauro Carvalho Chehabthey cook outbound data to a particular terminal type.
233*4d2e26a3SMauro Carvalho Chehab
234*4d2e26a3SMauro Carvalho ChehabIn order to ensure proper functioning of console applications one must make
235*4d2e26a3SMauro Carvalho Chehabsure that once connected to a /dev/hvcs console that the console's $TERM
236*4d2e26a3SMauro Carvalho Chehabenv variable is set to the exact terminal type of the terminal emulator
237*4d2e26a3SMauro Carvalho Chehabused to launch the interactive I/O application.  If one is using xterm and
238*4d2e26a3SMauro Carvalho Chehabkermit to connect to /dev/hvcs0 when the console prompt becomes available
239*4d2e26a3SMauro Carvalho Chehabone should "export TERM=xterm" on the console.  This tells ncurses
240*4d2e26a3SMauro Carvalho Chehabapplications that are invoked from the console that they should output
241*4d2e26a3SMauro Carvalho Chehabcontrol sequences that xterm can understand.
242*4d2e26a3SMauro Carvalho Chehab
243*4d2e26a3SMauro Carvalho ChehabAs a precautionary measure an hvcs user should always "exit" from their
244*4d2e26a3SMauro Carvalho Chehabsession before disconnecting an application such as kermit from the device
245*4d2e26a3SMauro Carvalho Chehabnode.  If this is not done, the next user to connect to the console will
246*4d2e26a3SMauro Carvalho Chehabcontinue using the previous user's logged in session which includes
247*4d2e26a3SMauro Carvalho Chehabusing the $TERM variable that the previous user supplied.
248*4d2e26a3SMauro Carvalho Chehab
249*4d2e26a3SMauro Carvalho ChehabHotplug add and remove of vty-server adapters affects which /dev/hvcs* node
250*4d2e26a3SMauro Carvalho Chehabis used to connect to each vty-server adapter.  In order to determine which
251*4d2e26a3SMauro Carvalho Chehabvty-server adapter is associated with which /dev/hvcs* node a special sysfs
252*4d2e26a3SMauro Carvalho Chehabattribute has been added to each vty-server sysfs entry.  This entry is
253*4d2e26a3SMauro Carvalho Chehabcalled "index" and showing it reveals an integer that refers to the
254*4d2e26a3SMauro Carvalho Chehab/dev/hvcs* entry to use to connect to that device.  For instance cating the
255*4d2e26a3SMauro Carvalho Chehabindex attribute of vty-server adapter 30000004 shows the following::
256*4d2e26a3SMauro Carvalho Chehab
257*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat index
258*4d2e26a3SMauro Carvalho Chehab	2
259*4d2e26a3SMauro Carvalho Chehab
260*4d2e26a3SMauro Carvalho ChehabThis index of '2' means that in order to connect to vty-server adapter
261*4d2e26a3SMauro Carvalho Chehab30000004 the user should interact with /dev/hvcs2.
262*4d2e26a3SMauro Carvalho Chehab
263*4d2e26a3SMauro Carvalho ChehabIt should be noted that due to the system hotplug I/O capabilities of a
264*4d2e26a3SMauro Carvalho Chehabsystem the /dev/hvcs* entry that interacts with a particular vty-server
265*4d2e26a3SMauro Carvalho Chehabadapter is not guaranteed to remain the same across system reboots.  Look
266*4d2e26a3SMauro Carvalho Chehabin the Q & A section for more on this issue.
267*4d2e26a3SMauro Carvalho Chehab
268*4d2e26a3SMauro Carvalho Chehab6. Disconnection
269*4d2e26a3SMauro Carvalho Chehab================
270*4d2e26a3SMauro Carvalho Chehab
271*4d2e26a3SMauro Carvalho ChehabAs a security feature to prevent the delivery of stale data to an
272*4d2e26a3SMauro Carvalho Chehabunintended target the Power5 system firmware disables the fetching of data
273*4d2e26a3SMauro Carvalho Chehaband discards that data when a connection between a vty-server and a vty has
274*4d2e26a3SMauro Carvalho Chehabbeen severed.  As an example, when a vty-server is immediately disconnected
275*4d2e26a3SMauro Carvalho Chehabfrom a vty following output of data to the vty the vty adapter may not have
276*4d2e26a3SMauro Carvalho Chehabenough time between when it received the data interrupt and when the
277*4d2e26a3SMauro Carvalho Chehabconnection was severed to fetch the data from firmware before the fetch is
278*4d2e26a3SMauro Carvalho Chehabdisabled by firmware.
279*4d2e26a3SMauro Carvalho Chehab
280*4d2e26a3SMauro Carvalho ChehabWhen hvcs is being used to serve consoles this behavior is not a huge issue
281*4d2e26a3SMauro Carvalho Chehabbecause the adapter stays connected for large amounts of time following
282*4d2e26a3SMauro Carvalho Chehabalmost all data writes.  When hvcs is being used as a tty conduit to tunnel
283*4d2e26a3SMauro Carvalho Chehabdata between two partitions [see Q & A below] this is a huge problem
284*4d2e26a3SMauro Carvalho Chehabbecause the standard Linux behavior when cat'ing or dd'ing data to a device
285*4d2e26a3SMauro Carvalho Chehabis to open the tty, send the data, and then close the tty.  If this driver
286*4d2e26a3SMauro Carvalho Chehabmanually terminated vty-server connections on tty close this would close
287*4d2e26a3SMauro Carvalho Chehabthe vty-server and vty connection before the target vty has had a chance to
288*4d2e26a3SMauro Carvalho Chehabfetch the data.
289*4d2e26a3SMauro Carvalho Chehab
290*4d2e26a3SMauro Carvalho ChehabAdditionally, disconnecting a vty-server and vty only on module removal or
291*4d2e26a3SMauro Carvalho Chehabadapter removal is impractical because other vty-servers in other
292*4d2e26a3SMauro Carvalho Chehabpartitions may require the usage of the target vty at any time.
293*4d2e26a3SMauro Carvalho Chehab
294*4d2e26a3SMauro Carvalho ChehabDue to this behavioral restriction disconnection of vty-servers from the
295*4d2e26a3SMauro Carvalho Chehabconnected vty is a manual procedure using a write to a sysfs attribute
296*4d2e26a3SMauro Carvalho Chehaboutlined below, on the other hand the initial vty-server connection to a
297*4d2e26a3SMauro Carvalho Chehabvty is established automatically by this driver.  Manual vty-server
298*4d2e26a3SMauro Carvalho Chehabconnection is never required.
299*4d2e26a3SMauro Carvalho Chehab
300*4d2e26a3SMauro Carvalho ChehabIn order to terminate the connection between a vty-server and vty the
301*4d2e26a3SMauro Carvalho Chehab"vterm_state" sysfs attribute within each vty-server's sysfs entry is used.
302*4d2e26a3SMauro Carvalho ChehabReading this attribute reveals the current connection state of the
303*4d2e26a3SMauro Carvalho Chehabvty-server adapter.  A zero means that the vty-server is not connected to a
304*4d2e26a3SMauro Carvalho Chehabvty.  A one indicates that a connection is active.
305*4d2e26a3SMauro Carvalho Chehab
306*4d2e26a3SMauro Carvalho ChehabWriting a '0' (zero) to the vterm_state attribute will disconnect the VTERM
307*4d2e26a3SMauro Carvalho Chehabconnection between the vty-server and target vty ONLY if the vterm_state
308*4d2e26a3SMauro Carvalho Chehabpreviously read '1'.  The write directive is ignored if the vterm_state
309*4d2e26a3SMauro Carvalho Chehabread '0' or if any value other than '0' was written to the vterm_state
310*4d2e26a3SMauro Carvalho Chehabattribute.  The following example will show the method used for verifying
311*4d2e26a3SMauro Carvalho Chehabthe vty-server connection status and disconnecting a vty-server connection::
312*4d2e26a3SMauro Carvalho Chehab
313*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat vterm_state
314*4d2e26a3SMauro Carvalho Chehab	1
315*4d2e26a3SMauro Carvalho Chehab
316*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs/30000004 # echo 0 > vterm_state
317*4d2e26a3SMauro Carvalho Chehab
318*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat vterm_state
319*4d2e26a3SMauro Carvalho Chehab	0
320*4d2e26a3SMauro Carvalho Chehab
321*4d2e26a3SMauro Carvalho ChehabAll vty-server connections are automatically terminated when the device is
322*4d2e26a3SMauro Carvalho Chehabhotplug removed and when the module is removed.
323*4d2e26a3SMauro Carvalho Chehab
324*4d2e26a3SMauro Carvalho Chehab7. Configuration
325*4d2e26a3SMauro Carvalho Chehab================
326*4d2e26a3SMauro Carvalho Chehab
327*4d2e26a3SMauro Carvalho ChehabEach vty-server has a sysfs entry in the /sys/devices/vio directory, which
328*4d2e26a3SMauro Carvalho Chehabis symlinked in several other sysfs tree directories, notably under the
329*4d2e26a3SMauro Carvalho Chehabhvcs driver entry, which looks like the following example::
330*4d2e26a3SMauro Carvalho Chehab
331*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs # ls
332*4d2e26a3SMauro Carvalho Chehab	.  ..  30000003  30000004  rescan
333*4d2e26a3SMauro Carvalho Chehab
334*4d2e26a3SMauro Carvalho ChehabBy design, firmware notifies the hvcs driver of vty-server lifetimes and
335*4d2e26a3SMauro Carvalho Chehabpartner vty removals but not the addition of partner vtys.  Since an HMC
336*4d2e26a3SMauro Carvalho ChehabSuper Admin can add partner info dynamically we have provided the hvcs
337*4d2e26a3SMauro Carvalho Chehabdriver sysfs directory with the "rescan" update attribute which will query
338*4d2e26a3SMauro Carvalho Chehabfirmware and update the partner info for all the vty-servers that this
339*4d2e26a3SMauro Carvalho Chehabdriver manages.  Writing a '1' to the attribute triggers the update.  An
340*4d2e26a3SMauro Carvalho Chehabexplicit example follows:
341*4d2e26a3SMauro Carvalho Chehab
342*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs # echo 1 > rescan
343*4d2e26a3SMauro Carvalho Chehab
344*4d2e26a3SMauro Carvalho ChehabReading the attribute will indicate a state of '1' or '0'.  A one indicates
345*4d2e26a3SMauro Carvalho Chehabthat an update is in process.  A zero indicates that an update has
346*4d2e26a3SMauro Carvalho Chehabcompleted or was never executed.
347*4d2e26a3SMauro Carvalho Chehab
348*4d2e26a3SMauro Carvalho ChehabVty-server entries in this directory are a 32 bit partition unique unit
349*4d2e26a3SMauro Carvalho Chehabaddress that is created by firmware.  An example vty-server sysfs entry
350*4d2e26a3SMauro Carvalho Chehablooks like the following::
351*4d2e26a3SMauro Carvalho Chehab
352*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs/30000004 # ls
353*4d2e26a3SMauro Carvalho Chehab	.   current_vty   devspec       name          partner_vtys
354*4d2e26a3SMauro Carvalho Chehab	..  index         partner_clcs  vterm_state
355*4d2e26a3SMauro Carvalho Chehab
356*4d2e26a3SMauro Carvalho ChehabEach entry is provided, by default with a "name" attribute.  Reading the
357*4d2e26a3SMauro Carvalho Chehab"name" attribute will reveal the device type as shown in the following
358*4d2e26a3SMauro Carvalho Chehabexample::
359*4d2e26a3SMauro Carvalho Chehab
360*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs/30000003 # cat name
361*4d2e26a3SMauro Carvalho Chehab	vty-server
362*4d2e26a3SMauro Carvalho Chehab
363*4d2e26a3SMauro Carvalho ChehabEach entry is also provided, by default, with a "devspec" attribute which
364*4d2e26a3SMauro Carvalho Chehabreveals the full device specification when read, as shown in the following
365*4d2e26a3SMauro Carvalho Chehabexample::
366*4d2e26a3SMauro Carvalho Chehab
367*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat devspec
368*4d2e26a3SMauro Carvalho Chehab	/vdevice/vty-server@30000004
369*4d2e26a3SMauro Carvalho Chehab
370*4d2e26a3SMauro Carvalho ChehabEach vty-server sysfs dir is provided with two read-only attributes that
371*4d2e26a3SMauro Carvalho Chehabprovide lists of easily parsed partner vty data: "partner_vtys" and
372*4d2e26a3SMauro Carvalho Chehab"partner_clcs"::
373*4d2e26a3SMauro Carvalho Chehab
374*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat partner_vtys
375*4d2e26a3SMauro Carvalho Chehab	30000000
376*4d2e26a3SMauro Carvalho Chehab	30000001
377*4d2e26a3SMauro Carvalho Chehab	30000002
378*4d2e26a3SMauro Carvalho Chehab	30000000
379*4d2e26a3SMauro Carvalho Chehab	30000000
380*4d2e26a3SMauro Carvalho Chehab
381*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat partner_clcs
382*4d2e26a3SMauro Carvalho Chehab	U5112.428.103048A-V3-C0
383*4d2e26a3SMauro Carvalho Chehab	U5112.428.103048A-V3-C2
384*4d2e26a3SMauro Carvalho Chehab	U5112.428.103048A-V3-C3
385*4d2e26a3SMauro Carvalho Chehab	U5112.428.103048A-V4-C0
386*4d2e26a3SMauro Carvalho Chehab	U5112.428.103048A-V5-C0
387*4d2e26a3SMauro Carvalho Chehab
388*4d2e26a3SMauro Carvalho ChehabReading partner_vtys returns a list of partner vtys.  Vty unit address
389*4d2e26a3SMauro Carvalho Chehabnumbering is only per-partition-unique so entries will frequently repeat.
390*4d2e26a3SMauro Carvalho Chehab
391*4d2e26a3SMauro Carvalho ChehabReading partner_clcs returns a list of "converged location codes" which are
392*4d2e26a3SMauro Carvalho Chehabcomposed of a system serial number followed by "-V*", where the '*' is the
393*4d2e26a3SMauro Carvalho Chehabtarget partition number, and "-C*", where the '*' is the slot of the
394*4d2e26a3SMauro Carvalho Chehabadapter.  The first vty partner corresponds to the first clc item, the
395*4d2e26a3SMauro Carvalho Chehabsecond vty partner to the second clc item, etc.
396*4d2e26a3SMauro Carvalho Chehab
397*4d2e26a3SMauro Carvalho ChehabA vty-server can only be connected to a single vty at a time.  The entry,
398*4d2e26a3SMauro Carvalho Chehab"current_vty" prints the clc of the currently selected partner vty when
399*4d2e26a3SMauro Carvalho Chehabread.
400*4d2e26a3SMauro Carvalho Chehab
401*4d2e26a3SMauro Carvalho ChehabThe current_vty can be changed by writing a valid partner clc to the entry
402*4d2e26a3SMauro Carvalho Chehabas in the following example::
403*4d2e26a3SMauro Carvalho Chehab
404*4d2e26a3SMauro Carvalho Chehab	Pow5:/sys/bus/vio/drivers/hvcs/30000004 # echo U5112.428.10304
405*4d2e26a3SMauro Carvalho Chehab	8A-V4-C0 > current_vty
406*4d2e26a3SMauro Carvalho Chehab
407*4d2e26a3SMauro Carvalho ChehabChanging the current_vty when a vty-server is already connected to a vty
408*4d2e26a3SMauro Carvalho Chehabdoes not affect the current connection.  The change takes effect when the
409*4d2e26a3SMauro Carvalho Chehabcurrently open connection is freed.
410*4d2e26a3SMauro Carvalho Chehab
411*4d2e26a3SMauro Carvalho ChehabInformation on the "vterm_state" attribute was covered earlier on the
412*4d2e26a3SMauro Carvalho Chehabchapter entitled "disconnection".
413*4d2e26a3SMauro Carvalho Chehab
414*4d2e26a3SMauro Carvalho Chehab8. Questions & Answers:
415*4d2e26a3SMauro Carvalho Chehab=======================
416*4d2e26a3SMauro Carvalho Chehab
417*4d2e26a3SMauro Carvalho ChehabQ: What are the security concerns involving hvcs?
418*4d2e26a3SMauro Carvalho Chehab
419*4d2e26a3SMauro Carvalho ChehabA: There are three main security concerns:
420*4d2e26a3SMauro Carvalho Chehab
421*4d2e26a3SMauro Carvalho Chehab	1. The creator of the /dev/hvcs* nodes has the ability to restrict
422*4d2e26a3SMauro Carvalho Chehab	the access of the device entries to certain users or groups.  It
423*4d2e26a3SMauro Carvalho Chehab	may be best to create a special hvcs group privilege for providing
424*4d2e26a3SMauro Carvalho Chehab	access to system consoles.
425*4d2e26a3SMauro Carvalho Chehab
426*4d2e26a3SMauro Carvalho Chehab	2. To provide network security when grabbing the console it is
427*4d2e26a3SMauro Carvalho Chehab	suggested that the user connect to the console hosting partition
428*4d2e26a3SMauro Carvalho Chehab	using a secure method, such as SSH or sit at a hardware console.
429*4d2e26a3SMauro Carvalho Chehab
430*4d2e26a3SMauro Carvalho Chehab	3. Make sure to exit the user session when done with a console or
431*4d2e26a3SMauro Carvalho Chehab	the next vty-server connection (which may be from another
432*4d2e26a3SMauro Carvalho Chehab	partition) will experience the previously logged in session.
433*4d2e26a3SMauro Carvalho Chehab
434*4d2e26a3SMauro Carvalho Chehab---------------------------------------------------------------------------
435*4d2e26a3SMauro Carvalho Chehab
436*4d2e26a3SMauro Carvalho ChehabQ: How do I multiplex a console that I grab through hvcs so that other
437*4d2e26a3SMauro Carvalho Chehabpeople can see it:
438*4d2e26a3SMauro Carvalho Chehab
439*4d2e26a3SMauro Carvalho ChehabA: You can use "screen" to directly connect to the /dev/hvcs* device and
440*4d2e26a3SMauro Carvalho Chehabsetup a session on your machine with the console group privileges.  As
441*4d2e26a3SMauro Carvalho Chehabpointed out earlier by default screen doesn't provide the termcap settings
442*4d2e26a3SMauro Carvalho Chehabfor most terminal emulators to provide adequate character conversion from
443*4d2e26a3SMauro Carvalho Chehabterm type "screen" to others.  This means that curses based programs may
444*4d2e26a3SMauro Carvalho Chehabnot display properly in screen sessions.
445*4d2e26a3SMauro Carvalho Chehab
446*4d2e26a3SMauro Carvalho Chehab---------------------------------------------------------------------------
447*4d2e26a3SMauro Carvalho Chehab
448*4d2e26a3SMauro Carvalho ChehabQ: Why are the colors all messed up?
449*4d2e26a3SMauro Carvalho ChehabQ: Why are the control characters acting strange or not working?
450*4d2e26a3SMauro Carvalho ChehabQ: Why is the console output all strange and unintelligible?
451*4d2e26a3SMauro Carvalho Chehab
452*4d2e26a3SMauro Carvalho ChehabA: Please see the preceding section on "Connection" for a discussion of how
453*4d2e26a3SMauro Carvalho Chehabapplications can affect the display of character control sequences.
454*4d2e26a3SMauro Carvalho ChehabAdditionally, just because you logged into the console using and xterm
455*4d2e26a3SMauro Carvalho Chehabdoesn't mean someone else didn't log into the console with the HMC console
456*4d2e26a3SMauro Carvalho Chehab(vt320) before you and leave the session logged in.  The best thing to do
457*4d2e26a3SMauro Carvalho Chehabis to export TERM to the terminal type of your terminal emulator when you
458*4d2e26a3SMauro Carvalho Chehabget the console.  Additionally make sure to "exit" the console before you
459*4d2e26a3SMauro Carvalho Chehabdisconnect from the console.  This will ensure that the next user gets
460*4d2e26a3SMauro Carvalho Chehabtheir own TERM type set when they login.
461*4d2e26a3SMauro Carvalho Chehab
462*4d2e26a3SMauro Carvalho Chehab---------------------------------------------------------------------------
463*4d2e26a3SMauro Carvalho Chehab
464*4d2e26a3SMauro Carvalho ChehabQ: When I try to CONNECT kermit to an hvcs device I get:
465*4d2e26a3SMauro Carvalho Chehab"Sorry, can't open connection: /dev/hvcs*"What is happening?
466*4d2e26a3SMauro Carvalho Chehab
467*4d2e26a3SMauro Carvalho ChehabA: Some other Power5 console mechanism has a connection to the vty and
468*4d2e26a3SMauro Carvalho Chehabisn't giving it up.  You can try to force disconnect the consoles from the
469*4d2e26a3SMauro Carvalho ChehabHMC by right clicking on the partition and then selecting "close terminal".
470*4d2e26a3SMauro Carvalho ChehabOtherwise you have to hunt down the people who have console authority.  It
471*4d2e26a3SMauro Carvalho Chehabis possible that you already have the console open using another kermit
472*4d2e26a3SMauro Carvalho Chehabsession and just forgot about it.  Please review the console options for
473*4d2e26a3SMauro Carvalho ChehabPower5 systems to determine the many ways a system console can be held.
474*4d2e26a3SMauro Carvalho Chehab
475*4d2e26a3SMauro Carvalho ChehabOR
476*4d2e26a3SMauro Carvalho Chehab
477*4d2e26a3SMauro Carvalho ChehabA: Another user may not have a connectivity method currently attached to a
478*4d2e26a3SMauro Carvalho Chehab/dev/hvcs device but the vterm_state may reveal that they still have the
479*4d2e26a3SMauro Carvalho Chehabvty-server connection established.  They need to free this using the method
480*4d2e26a3SMauro Carvalho Chehaboutlined in the section on "Disconnection" in order for others to connect
481*4d2e26a3SMauro Carvalho Chehabto the target vty.
482*4d2e26a3SMauro Carvalho Chehab
483*4d2e26a3SMauro Carvalho ChehabOR
484*4d2e26a3SMauro Carvalho Chehab
485*4d2e26a3SMauro Carvalho ChehabA: The user profile you are using to execute kermit probably doesn't have
486*4d2e26a3SMauro Carvalho Chehabpermissions to use the /dev/hvcs* device.
487*4d2e26a3SMauro Carvalho Chehab
488*4d2e26a3SMauro Carvalho ChehabOR
489*4d2e26a3SMauro Carvalho Chehab
490*4d2e26a3SMauro Carvalho ChehabA: You probably haven't inserted the hvcs.ko module yet but the /dev/hvcs*
491*4d2e26a3SMauro Carvalho Chehabentry still exists (on systems without udev).
492*4d2e26a3SMauro Carvalho Chehab
493*4d2e26a3SMauro Carvalho ChehabOR
494*4d2e26a3SMauro Carvalho Chehab
495*4d2e26a3SMauro Carvalho ChehabA: There is not a corresponding vty-server device that maps to an existing
496*4d2e26a3SMauro Carvalho Chehab/dev/hvcs* entry.
497*4d2e26a3SMauro Carvalho Chehab
498*4d2e26a3SMauro Carvalho Chehab---------------------------------------------------------------------------
499*4d2e26a3SMauro Carvalho Chehab
500*4d2e26a3SMauro Carvalho ChehabQ: When I try to CONNECT kermit to an hvcs device I get:
501*4d2e26a3SMauro Carvalho Chehab"Sorry, write access to UUCP lockfile directory denied."
502*4d2e26a3SMauro Carvalho Chehab
503*4d2e26a3SMauro Carvalho ChehabA: The /dev/hvcs* entry you have specified doesn't exist where you said it
504*4d2e26a3SMauro Carvalho Chehabdoes?  Maybe you haven't inserted the module (on systems with udev).
505*4d2e26a3SMauro Carvalho Chehab
506*4d2e26a3SMauro Carvalho Chehab---------------------------------------------------------------------------
507*4d2e26a3SMauro Carvalho Chehab
508*4d2e26a3SMauro Carvalho ChehabQ: If I already have one Linux partition installed can I use hvcs on said
509*4d2e26a3SMauro Carvalho Chehabpartition to provide the console for the install of a second Linux
510*4d2e26a3SMauro Carvalho Chehabpartition?
511*4d2e26a3SMauro Carvalho Chehab
512*4d2e26a3SMauro Carvalho ChehabA: Yes granted that your are connected to the /dev/hvcs* device using
513*4d2e26a3SMauro Carvalho Chehabkermit or cu or some other program that doesn't provide terminal emulation.
514*4d2e26a3SMauro Carvalho Chehab
515*4d2e26a3SMauro Carvalho Chehab---------------------------------------------------------------------------
516*4d2e26a3SMauro Carvalho Chehab
517*4d2e26a3SMauro Carvalho ChehabQ: Can I connect to more than one partition's console at a time using this
518*4d2e26a3SMauro Carvalho Chehabdriver?
519*4d2e26a3SMauro Carvalho Chehab
520*4d2e26a3SMauro Carvalho ChehabA: Yes.  Of course this means that there must be more than one vty-server
521*4d2e26a3SMauro Carvalho Chehabconfigured for this partition and each must point to a disconnected vty.
522*4d2e26a3SMauro Carvalho Chehab
523*4d2e26a3SMauro Carvalho Chehab---------------------------------------------------------------------------
524*4d2e26a3SMauro Carvalho Chehab
525*4d2e26a3SMauro Carvalho ChehabQ: Does the hvcs driver support dynamic (hotplug) addition of devices?
526*4d2e26a3SMauro Carvalho Chehab
527*4d2e26a3SMauro Carvalho ChehabA: Yes, if you have dlpar and hotplug enabled for your system and it has
528*4d2e26a3SMauro Carvalho Chehabbeen built into the kernel the hvcs drivers is configured to dynamically
529*4d2e26a3SMauro Carvalho Chehabhandle additions of new devices and removals of unused devices.
530*4d2e26a3SMauro Carvalho Chehab
531*4d2e26a3SMauro Carvalho Chehab---------------------------------------------------------------------------
532*4d2e26a3SMauro Carvalho Chehab
533*4d2e26a3SMauro Carvalho ChehabQ: For some reason /dev/hvcs* doesn't map to the same vty-server adapter
534*4d2e26a3SMauro Carvalho Chehabafter a reboot.  What happened?
535*4d2e26a3SMauro Carvalho Chehab
536*4d2e26a3SMauro Carvalho ChehabA: Assignment of vty-server adapters to /dev/hvcs* entries is always done
537*4d2e26a3SMauro Carvalho Chehabin the order that the adapters are exposed.  Due to hotplug capabilities of
538*4d2e26a3SMauro Carvalho Chehabthis driver assignment of hotplug added vty-servers may be in a different
539*4d2e26a3SMauro Carvalho Chehaborder than how they would be exposed on module load.  Rebooting or
540*4d2e26a3SMauro Carvalho Chehabreloading the module after dynamic addition may result in the /dev/hvcs*
541*4d2e26a3SMauro Carvalho Chehaband vty-server coupling changing if a vty-server adapter was added in a
542*4d2e26a3SMauro Carvalho Chehabslot between two other vty-server adapters.  Refer to the section above
543*4d2e26a3SMauro Carvalho Chehabon how to determine which vty-server goes with which /dev/hvcs* node.
544*4d2e26a3SMauro Carvalho ChehabHint; look at the sysfs "index" attribute for the vty-server.
545*4d2e26a3SMauro Carvalho Chehab
546*4d2e26a3SMauro Carvalho Chehab---------------------------------------------------------------------------
547*4d2e26a3SMauro Carvalho Chehab
548*4d2e26a3SMauro Carvalho ChehabQ: Can I use /dev/hvcs* as a conduit to another partition and use a tty
549*4d2e26a3SMauro Carvalho Chehabdevice on that partition as the other end of the pipe?
550*4d2e26a3SMauro Carvalho Chehab
551*4d2e26a3SMauro Carvalho ChehabA: Yes, on Power5 platforms the hvc_console driver provides a tty interface
552*4d2e26a3SMauro Carvalho Chehabfor extra /dev/hvc* devices (where /dev/hvc0 is most likely the console).
553*4d2e26a3SMauro Carvalho ChehabIn order to get a tty conduit working between the two partitions the HMC
554*4d2e26a3SMauro Carvalho ChehabSuper Admin must create an additional "serial server" for the target
555*4d2e26a3SMauro Carvalho Chehabpartition with the HMC gui which will show up as /dev/hvc* when the target
556*4d2e26a3SMauro Carvalho Chehabpartition is rebooted.
557*4d2e26a3SMauro Carvalho Chehab
558*4d2e26a3SMauro Carvalho ChehabThe HMC Super Admin then creates an additional "serial client" for the
559*4d2e26a3SMauro Carvalho Chehabcurrent partition and points this at the target partition's newly created
560*4d2e26a3SMauro Carvalho Chehab"serial server" adapter (remember the slot).  This shows up as an
561*4d2e26a3SMauro Carvalho Chehabadditional /dev/hvcs* device.
562*4d2e26a3SMauro Carvalho Chehab
563*4d2e26a3SMauro Carvalho ChehabNow a program on the target system can be configured to read or write to
564*4d2e26a3SMauro Carvalho Chehab/dev/hvc* and another program on the current partition can be configured to
565*4d2e26a3SMauro Carvalho Chehabread or write to /dev/hvcs*.  Now you have a tty conduit between two
566*4d2e26a3SMauro Carvalho Chehabpartitions.
567*4d2e26a3SMauro Carvalho Chehab
568*4d2e26a3SMauro Carvalho Chehab---------------------------------------------------------------------------
569*4d2e26a3SMauro Carvalho Chehab
570*4d2e26a3SMauro Carvalho Chehab9. Reporting Bugs:
571*4d2e26a3SMauro Carvalho Chehab==================
572*4d2e26a3SMauro Carvalho Chehab
573*4d2e26a3SMauro Carvalho ChehabThe proper channel for reporting bugs is either through the Linux OS
574*4d2e26a3SMauro Carvalho Chehabdistribution company that provided your OS or by posting issues to the
575*4d2e26a3SMauro Carvalho ChehabPowerPC development mailing list at:
576*4d2e26a3SMauro Carvalho Chehab
577*4d2e26a3SMauro Carvalho Chehablinuxppc-dev@lists.ozlabs.org
578*4d2e26a3SMauro Carvalho Chehab
579*4d2e26a3SMauro Carvalho ChehabThis request is to provide a documented and searchable public exchange
580*4d2e26a3SMauro Carvalho Chehabof the problems and solutions surrounding this driver for the benefit of
581*4d2e26a3SMauro Carvalho Chehaball users.
582