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
|
<section id="s390">
<title>Supporting S390</title>
<para>
Information on the IBM zSeries architecture can be found
in the
<ulink url="http://www.ibm.com/servers/eserver/zseries/library/techpapers/pdf/lnux-14mg.pdf">Linux 2.4 to 2.6 Transition Guide</ulink>.
</para>
<para>
The most common boot device will have a kernel name like "dasdb2",
and is visible in sysfs as <filename>/sys/devices/css0/0.0.a104/0.0.010a</filename>;
here the subdirectories of css0 are for subchannel, then device.
</para>
<para>
There is a file <filename>modules.ccwmap</filename> that looks like so:
<programlisting>
# ccw module match_flags cu_type cu_model dev_type dev_model
zfcp 0x000f 0x1731 0x03 0x1732 0x03
zfcp 0x000f 0x1731 0x03 0x1732 0x04
qeth 0x0003 0x1731 0x01 0x0000 0x00
qeth 0x0003 0x1731 0x05 0x0000 0x00
cu3088 0x0003 0x3088 0x08 0x0000 0x00
</programlisting>
Here channel type/model and device type/model are found in the files
<filename>devtype</filename> and <filename>cutype</filename>, formatted like "%04x/%02x\n".
The match_flags have this interpretation:
<programlisting>
#define CCW_DEVICE_ID_MATCH_CU_TYPE 0x01
#define CCW_DEVICE_ID_MATCH_CU_MODEL 0x02
#define CCW_DEVICE_ID_MATCH_DEVICE_TYPE 0x04
#define CCW_DEVICE_ID_MATCH_DEVICE_MODEL 0x08
</programlisting>
</para>
<para>
The upshot of all this seems to be that we can ignore the css0 and subchannel directory,
then should look up required module based on the modules.ccwmap, in the same way that
lookup is done in usbmap and pcimap.
</para>
<para>
There also is the concept of "ccwgroup", where a single device uses a number of
S390 channels. No indications that this has implications for booting.
</para>
</section>
|