mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-18 18:23:53 +08:00
8b4a503d65
Convert all text files with s390 documentation to ReST format. Tried to preserve as much as possible the original document format. Still, some of the files required some work in order for it to be visible on both plain text and after converted to html. The conversion is actually: - add blank lines and identation in order to identify paragraphs; - fix tables markups; - add some lists markups; - mark literal blocks; - adjust title markups. At its new index.rst, let's add a :orphan: while this is not linked to the main index.rst file, in order to avoid build warnings. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
85 lines
3.4 KiB
ReStructuredText
85 lines
3.4 KiB
ReStructuredText
==================
|
|
DASD device driver
|
|
==================
|
|
|
|
S/390's disk devices (DASDs) are managed by Linux via the DASD device
|
|
driver. It is valid for all types of DASDs and represents them to
|
|
Linux as block devices, namely "dd". Currently the DASD driver uses a
|
|
single major number (254) and 4 minor numbers per volume (1 for the
|
|
physical volume and 3 for partitions). With respect to partitions see
|
|
below. Thus you may have up to 64 DASD devices in your system.
|
|
|
|
The kernel parameter 'dasd=from-to,...' may be issued arbitrary times
|
|
in the kernel's parameter line or not at all. The 'from' and 'to'
|
|
parameters are to be given in hexadecimal notation without a leading
|
|
0x.
|
|
If you supply kernel parameters the different instances are processed
|
|
in order of appearance and a minor number is reserved for any device
|
|
covered by the supplied range up to 64 volumes. Additional DASDs are
|
|
ignored. If you do not supply the 'dasd=' kernel parameter at all, the
|
|
DASD driver registers all supported DASDs of your system to a minor
|
|
number in ascending order of the subchannel number.
|
|
|
|
The driver currently supports ECKD-devices and there are stubs for
|
|
support of the FBA and CKD architectures. For the FBA architecture
|
|
only some smart data structures are missing to make the support
|
|
complete.
|
|
We performed our testing on 3380 and 3390 type disks of different
|
|
sizes, under VM and on the bare hardware (LPAR), using internal disks
|
|
of the multiprise as well as a RAMAC virtual array. Disks exported by
|
|
an Enterprise Storage Server (Seascape) should work fine as well.
|
|
|
|
We currently implement one partition per volume, which is the whole
|
|
volume, skipping the first blocks up to the volume label. These are
|
|
reserved for IPL records and IBM's volume label to assure
|
|
accessibility of the DASD from other OSs. In a later stage we will
|
|
provide support of partitions, maybe VTOC oriented or using a kind of
|
|
partition table in the label record.
|
|
|
|
Usage
|
|
=====
|
|
|
|
-Low-level format (?CKD only)
|
|
For using an ECKD-DASD as a Linux harddisk you have to low-level
|
|
format the tracks by issuing the BLKDASDFORMAT-ioctl on that
|
|
device. This will erase any data on that volume including IBM volume
|
|
labels, VTOCs etc. The ioctl may take a `struct format_data *` or
|
|
'NULL' as an argument::
|
|
|
|
typedef struct {
|
|
int start_unit;
|
|
int stop_unit;
|
|
int blksize;
|
|
} format_data_t;
|
|
|
|
When a NULL argument is passed to the BLKDASDFORMAT ioctl the whole
|
|
disk is formatted to a blocksize of 1024 bytes. Otherwise start_unit
|
|
and stop_unit are the first and last track to be formatted. If
|
|
stop_unit is -1 it implies that the DASD is formatted from start_unit
|
|
up to the last track. blksize can be any power of two between 512 and
|
|
4096. We recommend no blksize lower than 1024 because the ext2fs uses
|
|
1kB blocks anyway and you gain approx. 50% of capacity increasing your
|
|
blksize from 512 byte to 1kB.
|
|
|
|
Make a filesystem
|
|
=================
|
|
|
|
Then you can mk??fs the filesystem of your choice on that volume or
|
|
partition. For reasons of sanity you should build your filesystem on
|
|
the partition /dev/dd?1 instead of the whole volume. You only lose 3kB
|
|
but may be sure that you can reuse your data after introduction of a
|
|
real partition table.
|
|
|
|
Bugs
|
|
====
|
|
|
|
- Performance sometimes is rather low because we don't fully exploit clustering
|
|
|
|
TODO-List
|
|
=========
|
|
|
|
- Add IBM'S Disk layout to genhd
|
|
- Enhance driver to use more than one major number
|
|
- Enable usage as a module
|
|
- Support Cache fast write and DASD fast write (ECKD)
|