diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/lguest/lguest.c | 17 | ||||
-rw-r--r-- | Documentation/networking/00-INDEX | 10 | ||||
-rw-r--r-- | Documentation/networking/3c505.txt | 3 | ||||
-rw-r--r-- | Documentation/networking/Configurable | 34 | ||||
-rw-r--r-- | Documentation/networking/comx.txt | 248 | ||||
-rw-r--r-- | Documentation/networking/ncsa-telnet | 16 | ||||
-rw-r--r-- | Documentation/networking/pt.txt | 58 | ||||
-rw-r--r-- | Documentation/networking/routing.txt | 46 | ||||
-rw-r--r-- | Documentation/networking/slicecom.hun | 371 | ||||
-rw-r--r-- | Documentation/networking/slicecom.txt | 369 | ||||
-rw-r--r-- | Documentation/powerpc/booting-without-of.txt | 275 |
11 files changed, 283 insertions, 1164 deletions
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c index f2668390e8f7..42008395534d 100644 --- a/Documentation/lguest/lguest.c +++ b/Documentation/lguest/lguest.c | |||
@@ -62,8 +62,8 @@ typedef uint8_t u8; | |||
62 | #endif | 62 | #endif |
63 | /* We can have up to 256 pages for devices. */ | 63 | /* We can have up to 256 pages for devices. */ |
64 | #define DEVICE_PAGES 256 | 64 | #define DEVICE_PAGES 256 |
65 | /* This fits nicely in a single 4096-byte page. */ | 65 | /* This will occupy 2 pages: it must be a power of 2. */ |
66 | #define VIRTQUEUE_NUM 127 | 66 | #define VIRTQUEUE_NUM 128 |
67 | 67 | ||
68 | /*L:120 verbose is both a global flag and a macro. The C preprocessor allows | 68 | /*L:120 verbose is both a global flag and a macro. The C preprocessor allows |
69 | * this, and although I wouldn't recommend it, it works quite nicely here. */ | 69 | * this, and although I wouldn't recommend it, it works quite nicely here. */ |
@@ -1036,7 +1036,8 @@ static void add_virtqueue(struct device *dev, unsigned int num_descs, | |||
1036 | void *p; | 1036 | void *p; |
1037 | 1037 | ||
1038 | /* First we need some pages for this virtqueue. */ | 1038 | /* First we need some pages for this virtqueue. */ |
1039 | pages = (vring_size(num_descs) + getpagesize() - 1) / getpagesize(); | 1039 | pages = (vring_size(num_descs, getpagesize()) + getpagesize() - 1) |
1040 | / getpagesize(); | ||
1040 | p = get_pages(pages); | 1041 | p = get_pages(pages); |
1041 | 1042 | ||
1042 | /* Initialize the configuration. */ | 1043 | /* Initialize the configuration. */ |
@@ -1045,7 +1046,7 @@ static void add_virtqueue(struct device *dev, unsigned int num_descs, | |||
1045 | vq->config.pfn = to_guest_phys(p) / getpagesize(); | 1046 | vq->config.pfn = to_guest_phys(p) / getpagesize(); |
1046 | 1047 | ||
1047 | /* Initialize the vring. */ | 1048 | /* Initialize the vring. */ |
1048 | vring_init(&vq->vring, num_descs, p); | 1049 | vring_init(&vq->vring, num_descs, p, getpagesize()); |
1049 | 1050 | ||
1050 | /* Add the configuration information to this device's descriptor. */ | 1051 | /* Add the configuration information to this device's descriptor. */ |
1051 | add_desc_field(dev, VIRTIO_CONFIG_F_VIRTQUEUE, | 1052 | add_desc_field(dev, VIRTIO_CONFIG_F_VIRTQUEUE, |
@@ -1342,7 +1343,7 @@ static bool service_io(struct device *dev) | |||
1342 | if (out->type & VIRTIO_BLK_T_SCSI_CMD) { | 1343 | if (out->type & VIRTIO_BLK_T_SCSI_CMD) { |
1343 | fprintf(stderr, "Scsi commands unsupported\n"); | 1344 | fprintf(stderr, "Scsi commands unsupported\n"); |
1344 | in->status = VIRTIO_BLK_S_UNSUPP; | 1345 | in->status = VIRTIO_BLK_S_UNSUPP; |
1345 | wlen = sizeof(in); | 1346 | wlen = sizeof(*in); |
1346 | } else if (out->type & VIRTIO_BLK_T_OUT) { | 1347 | } else if (out->type & VIRTIO_BLK_T_OUT) { |
1347 | /* Write */ | 1348 | /* Write */ |
1348 | 1349 | ||
@@ -1363,7 +1364,7 @@ static bool service_io(struct device *dev) | |||
1363 | /* Die, bad Guest, die. */ | 1364 | /* Die, bad Guest, die. */ |
1364 | errx(1, "Write past end %llu+%u", off, ret); | 1365 | errx(1, "Write past end %llu+%u", off, ret); |
1365 | } | 1366 | } |
1366 | wlen = sizeof(in); | 1367 | wlen = sizeof(*in); |
1367 | in->status = (ret >= 0 ? VIRTIO_BLK_S_OK : VIRTIO_BLK_S_IOERR); | 1368 | in->status = (ret >= 0 ? VIRTIO_BLK_S_OK : VIRTIO_BLK_S_IOERR); |
1368 | } else { | 1369 | } else { |
1369 | /* Read */ | 1370 | /* Read */ |
@@ -1376,10 +1377,10 @@ static bool service_io(struct device *dev) | |||
1376 | ret = readv(vblk->fd, iov+1, in_num-1); | 1377 | ret = readv(vblk->fd, iov+1, in_num-1); |
1377 | verbose("READ from sector %llu: %i\n", out->sector, ret); | 1378 | verbose("READ from sector %llu: %i\n", out->sector, ret); |
1378 | if (ret >= 0) { | 1379 | if (ret >= 0) { |
1379 | wlen = sizeof(in) + ret; | 1380 | wlen = sizeof(*in) + ret; |
1380 | in->status = VIRTIO_BLK_S_OK; | 1381 | in->status = VIRTIO_BLK_S_OK; |
1381 | } else { | 1382 | } else { |
1382 | wlen = sizeof(in); | 1383 | wlen = sizeof(*in); |
1383 | in->status = VIRTIO_BLK_S_IOERR; | 1384 | in->status = VIRTIO_BLK_S_IOERR; |
1384 | } | 1385 | } |
1385 | } | 1386 | } |
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX index f5a5e6d3d541..563e442f2d42 100644 --- a/Documentation/networking/00-INDEX +++ b/Documentation/networking/00-INDEX | |||
@@ -4,8 +4,6 @@ | |||
4 | - information on the 3Com EtherLink Plus (3c505) driver. | 4 | - information on the 3Com EtherLink Plus (3c505) driver. |
5 | 6pack.txt | 5 | 6pack.txt |
6 | - info on the 6pack protocol, an alternative to KISS for AX.25 | 6 | - info on the 6pack protocol, an alternative to KISS for AX.25 |
7 | Configurable | ||
8 | - info on some of the configurable network parameters | ||
9 | DLINK.txt | 7 | DLINK.txt |
10 | - info on the D-Link DE-600/DE-620 parallel port pocket adapters | 8 | - info on the D-Link DE-600/DE-620 parallel port pocket adapters |
11 | PLIP.txt | 9 | PLIP.txt |
@@ -26,8 +24,6 @@ baycom.txt | |||
26 | - info on the driver for Baycom style amateur radio modems | 24 | - info on the driver for Baycom style amateur radio modems |
27 | bridge.txt | 25 | bridge.txt |
28 | - where to get user space programs for ethernet bridging with Linux. | 26 | - where to get user space programs for ethernet bridging with Linux. |
29 | comx.txt | ||
30 | - info on drivers for COMX line of synchronous serial adapters. | ||
31 | cops.txt | 27 | cops.txt |
32 | - info on the COPS LocalTalk Linux driver | 28 | - info on the COPS LocalTalk Linux driver |
33 | cs89x0.txt | 29 | cs89x0.txt |
@@ -78,20 +74,14 @@ ltpc.txt | |||
78 | - the Apple or Farallon LocalTalk PC card driver | 74 | - the Apple or Farallon LocalTalk PC card driver |
79 | multicast.txt | 75 | multicast.txt |
80 | - Behaviour of cards under Multicast | 76 | - Behaviour of cards under Multicast |
81 | ncsa-telnet | ||
82 | - notes on how NCSA telnet (DOS) breaks with MTU discovery enabled. | ||
83 | netdevices.txt | 77 | netdevices.txt |
84 | - info on network device driver functions exported to the kernel. | 78 | - info on network device driver functions exported to the kernel. |
85 | olympic.txt | 79 | olympic.txt |
86 | - IBM PCI Pit/Pit-Phy/Olympic Token Ring driver info. | 80 | - IBM PCI Pit/Pit-Phy/Olympic Token Ring driver info. |
87 | policy-routing.txt | 81 | policy-routing.txt |
88 | - IP policy-based routing | 82 | - IP policy-based routing |
89 | pt.txt | ||
90 | - the Gracilis Packetwin AX.25 device driver | ||
91 | ray_cs.txt | 83 | ray_cs.txt |
92 | - Raylink Wireless LAN card driver info. | 84 | - Raylink Wireless LAN card driver info. |
93 | routing.txt | ||
94 | - the new routing mechanism | ||
95 | shaper.txt | 85 | shaper.txt |
96 | - info on the module that can shape/limit transmitted traffic. | 86 | - info on the module that can shape/limit transmitted traffic. |
97 | sk98lin.txt | 87 | sk98lin.txt |
diff --git a/Documentation/networking/3c505.txt b/Documentation/networking/3c505.txt index b9d5b7230118..72f38b13101d 100644 --- a/Documentation/networking/3c505.txt +++ b/Documentation/networking/3c505.txt | |||
@@ -14,8 +14,7 @@ If no base address is given at boot time, the driver will autoprobe | |||
14 | ports 0x300, 0x280 and 0x310 (in that order). If no IRQ is given, the driver | 14 | ports 0x300, 0x280 and 0x310 (in that order). If no IRQ is given, the driver |
15 | will try to probe for it. | 15 | will try to probe for it. |
16 | 16 | ||
17 | The driver can be used as a loadable module. See net-modules.txt for details | 17 | The driver can be used as a loadable module. |
18 | of the parameters it can take. | ||
19 | 18 | ||
20 | Theoretically, one instance of the driver can now run multiple cards, | 19 | Theoretically, one instance of the driver can now run multiple cards, |
21 | in the standard way (when loading a module, say "modprobe 3c505 | 20 | in the standard way (when loading a module, say "modprobe 3c505 |
diff --git a/Documentation/networking/Configurable b/Documentation/networking/Configurable deleted file mode 100644 index 69c0dd466ead..000000000000 --- a/Documentation/networking/Configurable +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | |||
2 | There are a few network parameters that can be tuned to better match | ||
3 | the kernel to your system hardware and intended usage. The defaults | ||
4 | are usually a good choice for 99% of the people 99% of the time, but | ||
5 | you should be aware they do exist and can be changed. | ||
6 | |||
7 | The current list of parameters can be found in the files: | ||
8 | |||
9 | linux/net/TUNABLE | ||
10 | Documentation/networking/ip-sysctl.txt | ||
11 | |||
12 | Some of these are accessible via the sysctl interface, and many more are | ||
13 | scheduled to be added in this way. For example, some parameters related | ||
14 | to Address Resolution Protocol (ARP) are very easily viewed and altered. | ||
15 | |||
16 | # cat /proc/sys/net/ipv4/arp_timeout | ||
17 | 6000 | ||
18 | # echo 7000 > /proc/sys/net/ipv4/arp_timeout | ||
19 | # cat /proc/sys/net/ipv4/arp_timeout | ||
20 | 7000 | ||
21 | |||
22 | Others are already accessible via the related user space programs. | ||
23 | For example, MAX_WINDOW has a default of 32 k which is a good choice for | ||
24 | modern hardware, but if you have a slow (8 bit) Ethernet card and/or a slow | ||
25 | machine, then this will be far too big for the card to keep up with fast | ||
26 | machines transmitting on the same net, resulting in overruns and receive errors. | ||
27 | A value of about 4 k would be more appropriate, which can be set via: | ||
28 | |||
29 | # route add -net 192.168.3.0 window 4096 | ||
30 | |||
31 | The remainder of these can only be presently changed by altering a #define | ||
32 | in the related header file. This means an edit and recompile cycle. | ||
33 | |||
34 | Paul Gortmaker 06/96 | ||
diff --git a/Documentation/networking/comx.txt b/Documentation/networking/comx.txt deleted file mode 100644 index d1526eba2645..000000000000 --- a/Documentation/networking/comx.txt +++ /dev/null | |||
@@ -1,248 +0,0 @@ | |||
1 | |||
2 | COMX drivers for the 2.2 kernel | ||
3 | |||
4 | Originally written by: Tivadar Szemethy, <tiv@itc.hu> | ||
5 | Currently maintained by: Gergely Madarasz <gorgo@itc.hu> | ||
6 | |||
7 | Last change: 21/06/1999. | ||
8 | |||
9 | INTRODUCTION | ||
10 | |||
11 | This document describes the software drivers and their use for the | ||
12 | COMX line of synchronous serial adapters for Linux version 2.2.0 and | ||
13 | above. | ||
14 | The cards are produced and sold by ITC-Pro Ltd. Budapest, Hungary | ||
15 | For further info contact <info@itc.hu> | ||
16 | or http://www.itc.hu (mostly in Hungarian). | ||
17 | The firmware files and software are available from ftp://ftp.itc.hu | ||
18 | |||
19 | Currently, the drivers support the following cards and protocols: | ||
20 | |||
21 | COMX (2x64 kbps intelligent board) | ||
22 | CMX (1x256 + 1x128 kbps intelligent board) | ||
23 | HiCOMX (2x2Mbps intelligent board) | ||
24 | LoCOMX (1x512 kbps passive board) | ||
25 | MixCOM (1x512 or 2x512kbps passive board with a hardware watchdog an | ||
26 | optional BRI interface and optional flashROM (1-32M)) | ||
27 | SliceCOM (1x2Mbps channelized E1 board) | ||
28 | PciCOM (X21) | ||
29 | |||
30 | At the moment of writing this document, the (Cisco)-HDLC, LAPB, SyncPPP and | ||
31 | Frame Relay (DTE, rfc1294 IP encapsulation with partially implemented Q933a | ||
32 | LMI) protocols are available as link-level protocol. | ||
33 | X.25 support is being worked on. | ||
34 | |||
35 | USAGE | ||
36 | |||
37 | Load the comx.o module and the hardware-specific and protocol-specific | ||
38 | modules you'll need into the running kernel using the insmod utility. | ||
39 | This creates the /proc/comx directory. | ||
40 | See the example scripts in the 'etc' directory. | ||
41 | |||
42 | /proc INTERFACE INTRO | ||
43 | |||
44 | The COMX driver set has a new type of user interface based on the /proc | ||
45 | filesystem which eliminates the need for external user-land software doing | ||
46 | IOCTL calls. | ||
47 | Each network interface or device (i.e. those ones you configure with 'ifconfig' | ||
48 | and 'route' etc.) has a corresponding directory under /proc/comx. You can | ||
49 | dynamically create a new interface by saying 'mkdir /proc/comx/comx0' (or you | ||
50 | can name it whatever you want up to 8 characters long, comx[n] is just a | ||
51 | convention). | ||
52 | Generally the files contained in these directories are text files, which can | ||
53 | be viewed by 'cat filename' and you can write a string to such a file by | ||
54 | saying 'echo _string_ >filename'. This is very similar to the sysctl interface. | ||
55 | Don't use a text editor to edit these files, always use 'echo' (or 'cat' | ||
56 | where appropriate). | ||
57 | When you've created the comx[n] directory, two files are created automagically | ||
58 | in it: 'boardtype' and 'protocol'. You have to fill in these files correctly | ||
59 | for your board and protocol you intend to use (see the board and protocol | ||
60 | descriptions in this file below or the example scripts in the 'etc' directory). | ||
61 | After filling in these files, other files will appear in the directory for | ||
62 | setting the various hardware- and protocol-related informations (for example | ||
63 | irq and io addresses, keepalive values etc.) These files are set to default | ||
64 | values upon creation, so you don't necessarily have to change all of them. | ||
65 | |||
66 | When you're ready with filling in the files in the comx[n] directory, you can | ||
67 | configure the corresponding network interface with the standard network | ||
68 | configuration utilities. If you're unable to bring the interfaces up, look up | ||
69 | the various kernel log files on your system, and consult the messages for | ||
70 | a probable reason. | ||
71 | |||
72 | EXAMPLE | ||
73 | |||
74 | To create the interface 'comx0' which is the first channel of a COMX card: | ||
75 | |||
76 | insmod comx | ||
77 | # insmod comx-hw-comx ; insmod comx-proto-ppp (these are usually | ||
78 | autoloaded if you use the kernel module loader) | ||
79 | |||
80 | mkdir /proc/comx/comx0 | ||
81 | echo comx >/proc/comx/comx0/boardtype | ||
82 | echo 0x360 >/proc/comx/comx0/io <- jumper-selectable I/O port | ||
83 | echo 0x0a >/proc/comx/comx0/irq <- jumper-selectable IRQ line | ||
84 | echo 0xd000 >/proc/comx/comx0/memaddr <- software-configurable memory | ||
85 | address. COMX uses 64 KB, and this | ||
86 | can be: 0xa000, 0xb000, 0xc000, | ||
87 | 0xd000, 0xe000. Avoid conflicts | ||
88 | with other hardware. | ||
89 | cat </etc/siol1.rom >/proc/comx/comx0/firmware <- the firmware for the card | ||
90 | echo HDLC >/proc/comx/comx0/protocol <- the data-link protocol | ||
91 | echo 10 >/proc/comx/comx0/keepalive <- the keepalive for the protocol | ||
92 | ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255 <- | ||
93 | finally configure it with ifconfig | ||
94 | Check its status: | ||
95 | cat /proc/comx/comx0/status | ||
96 | |||
97 | If you want to use the second channel of this board: | ||
98 | |||
99 | mkdir /proc/comx/comx1 | ||
100 | echo comx >/proc/comx/comx1/boardtype | ||
101 | echo 0x360 >/proc/comx/comx1/io | ||
102 | echo 10 >/proc/comx/comx1/irq | ||
103 | echo 0xd000 >/proc/comx/comx1/memaddr | ||
104 | echo 1 >/proc/comx/comx1/channel <- channels are numbered | ||
105 | as 0 (default) and 1 | ||
106 | |||
107 | Now, check if the driver recognized that you're going to use the other | ||
108 | channel of the same adapter: | ||
109 | |||
110 | cat /proc/comx/comx0/twin | ||
111 | comx1 | ||
112 | cat /proc/comx/comx1/twin | ||
113 | comx0 | ||
114 | |||
115 | You don't have to load the firmware twice, if you use both channels of | ||
116 | an adapter, just write it into the channel 0's /proc firmware file. | ||
117 | |||
118 | Default values: io 0x360 for COMX, 0x320 (HICOMX), irq 10, memaddr 0xd0000 | ||
119 | |||
120 | THE LOCOMX HARDWARE DRIVER | ||
121 | |||
122 | The LoCOMX driver doesn't require firmware, and it doesn't use memory either, | ||
123 | but it uses DMA channels 1 and 3. You can set the clock rate (if enabled by | ||
124 | jumpers on the board) by writing the kbps value into the file named 'clock'. | ||
125 | Set it to 'external' (it is the default) if you have external clock source. | ||
126 | |||
127 | (Note: currently the LoCOMX driver does not support the internal clock) | ||
128 | |||
129 | THE COMX, CMX AND HICOMX DRIVERS | ||
130 | |||
131 | On the HICOMX, COMX and CMX, you have to load the firmware (it is different for | ||
132 | the three cards!). All these adapters can share the same memory | ||
133 | address (we usually use 0xd0000). On the CMX you can set the internal | ||
134 | clock rate (if enabled by jumpers on the small adapter boards) by writing | ||
135 | the kbps value into the 'clock' file. You have to do this before initializing | ||
136 | the card. If you use both HICOMX and CMX/COMX cards, initialize the HICOMX | ||
137 | first. The I/O address of the HICOMX board is not configurable by any | ||
138 | method available to the user: it is hardwired to 0x320, and if you have to | ||
139 | change it, consult ITC-Pro Ltd. | ||
140 | |||
141 | THE MIXCOM DRIVER | ||
142 | |||
143 | The MixCOM board doesn't require firmware, the driver communicates with | ||
144 | it through I/O ports. You can have three of these cards in one machine. | ||
145 | |||
146 | THE SLICECOM DRIVER | ||
147 | |||
148 | The SliceCOM board doesn't require firmware. You can have 4 of these cards | ||
149 | in one machine. The driver doesn't (yet) support shared interrupts, so | ||
150 | you will need a separate IRQ line for every board. | ||
151 | Read Documentation/networking/slicecom.txt for help on configuring | ||
152 | this adapter. | ||
153 | |||
154 | THE HDLC/PPP LINE PROTOCOL DRIVER | ||
155 | |||
156 | The HDLC/SyncPPP line protocol driver uses the kernel's built-in syncppp | ||
157 | driver (syncppp.o). You don't have to manually select syncppp.o when building | ||
158 | the kernel, the dependencies compile it in automatically. | ||
159 | |||
160 | |||
161 | |||
162 | |||
163 | EXAMPLE | ||
164 | (setting up hw parameters, see above) | ||
165 | |||
166 | # using HDLC: | ||
167 | echo hdlc >/proc/comx/comx0/protocol | ||
168 | echo 10 >/proc/comx/comx0/keepalive <- not necessary, 10 is the default | ||
169 | ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255 | ||
170 | |||
171 | (setting up hw parameters, see above) | ||
172 | |||
173 | # using PPP: | ||
174 | echo ppp >/proc/comx/comx0/protocol | ||
175 | ifconfig comx0 up | ||
176 | ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255 | ||
177 | |||
178 | |||
179 | THE LAPB LINE PROTOCOL DRIVER | ||
180 | |||
181 | For this, you'll need to configure LAPB support (See 'LAPB Data Link Driver' in | ||
182 | 'Network options' section) into your kernel (thanks to Jonathan Naylor for his | ||
183 | excellent implementation). | ||
184 | comx-proto-lapb.o provides the following files in the appropriate directory | ||
185 | (the default values in parens): t1 (5), t2 (1), n2 (20), mode (DTE, STD) and | ||
186 | window (7). Agree with the administrator of your peer router on these | ||
187 | settings (most people use defaults, but you have to know if you are DTE or | ||
188 | DCE). | ||
189 | |||
190 | EXAMPLE | ||
191 | |||
192 | (setting up hw parameters, see above) | ||
193 | echo lapb >/proc/comx/comx0/protocol | ||
194 | echo dce >/proc/comx/comx0/mode <- DCE interface in this example | ||
195 | ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255 | ||
196 | |||
197 | |||
198 | THE FRAME RELAY PROTOCOL DRIVER | ||
199 | |||
200 | You DON'T need any other frame relay related modules from the kernel to use | ||
201 | COMX-Frame Relay. This protocol is a bit more complicated than the others, | ||
202 | because it allows to use 'subinterfaces' or DLCIs within one physical device. | ||
203 | First you have to create the 'master' device (the actual physical interface) | ||
204 | as you would do for other protocols. Specify 'frad' as protocol type. | ||
205 | Now you can bring this interface up by saying 'ifconfig comx0 up' (or whatever | ||
206 | you've named the interface). Do not assign any IP address to this interface | ||
207 | and do not set any routes through it. | ||
208 | Then, set up your DLCIs the following way: create a comx interface for each | ||
209 | DLCI you intend to use (with mkdir), and write 'dlci' to the 'boardtype' file, | ||
210 | and 'ietf-ip' to the 'protocol' file. Currently, the only supported | ||
211 | encapsulation type is this (also called as RFC1294/1490 IP encapsulation). | ||
212 | Write the DLCI number to the 'dlci' file, and write the name of the physical | ||
213 | COMX device to the file called 'master'. | ||
214 | Now you can assign an IP address to this interface and set routes using it. | ||
215 | See the example file for further info and example config script. | ||
216 | Notes: this driver implements a DTE interface with partially implemented | ||
217 | Q933a LMI. | ||
218 | You can find an extensively commented example in the 'etc' directory. | ||
219 | |||
220 | FURTHER /proc FILES | ||
221 | |||
222 | boardtype: | ||
223 | Type of the hardware. Valid values are: | ||
224 | 'comx', 'hicomx', 'locomx', 'cmx', 'slicecom'. | ||
225 | |||
226 | protocol: | ||
227 | Data-link protocol on this channel. Can be: HDLC, LAPB, PPP, FRAD | ||
228 | |||
229 | status: | ||
230 | You can read the channel's actual status from the 'status' file, for example | ||
231 | 'cat /proc/comx/comx3/status'. | ||
232 | |||
233 | lineup_delay: | ||
234 | Interpreted in seconds (default is 1). Used to avoid line jitter: the system | ||
235 | will consider the line status 'UP' only if it is up for at least this number | ||
236 | of seconds. | ||
237 | |||
238 | debug: | ||
239 | You can set various debug options through this file. Valid options are: | ||
240 | 'comx_events', 'comx_tx', 'comx_rx', 'hw_events', 'hw_tx', 'hw_rx'. | ||
241 | You can enable a debug options by writing its name prepended by a '+' into | ||
242 | the debug file, for example 'echo +comx_rx >comx0/debug'. | ||
243 | Disabling an option happens similarly, use the '-' prefix | ||
244 | (e.g. 'echo -hw_rx >debug'). | ||
245 | Debug results can be read from the debug file, for example: | ||
246 | tail -f /proc/comx/comx2/debug | ||
247 | |||
248 | |||
diff --git a/Documentation/networking/ncsa-telnet b/Documentation/networking/ncsa-telnet deleted file mode 100644 index d77d28b09093..000000000000 --- a/Documentation/networking/ncsa-telnet +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | NCSA telnet doesn't work with path MTU discovery enabled. This is due to a | ||
2 | bug in NCSA that also stops it working with other modern networking code | ||
3 | such as Solaris. | ||
4 | |||
5 | The following information is courtesy of | ||
6 | Marek <marekm@i17linuxb.ists.pwr.wroc.pl> | ||
7 | |||
8 | There is a fixed version somewhere on ftp.upe.ac.za (sorry, I don't | ||
9 | remember the exact pathname, and this site is very slow from here). | ||
10 | It may or may not be faster for you to get it from | ||
11 | ftp://ftp.ists.pwr.wroc.pl/pub/msdos/telnet/ncsa_upe/tel23074.zip | ||
12 | (source is in v230704s.zip). I have tested it with 1.3.79 (with | ||
13 | path mtu discovery enabled - ncsa 2.3.08 didn't work) and it seems | ||
14 | to work. I don't know if anyone is working on this code - this | ||
15 | version is over a year old. Too bad - it's faster and often more | ||
16 | stable than these windoze telnets, and runs on almost anything... | ||
diff --git a/Documentation/networking/pt.txt b/Documentation/networking/pt.txt deleted file mode 100644 index 72e888c1d988..000000000000 --- a/Documentation/networking/pt.txt +++ /dev/null | |||
@@ -1,58 +0,0 @@ | |||
1 | This is the README for the Gracilis Packetwin device driver, version 0.5 | ||
2 | ALPHA for Linux 1.3.43. | ||
3 | |||
4 | These files will allow you to talk to the PackeTwin (now know as PT) and | ||
5 | connect through it just like a pair of TNCs. To do this you will also | ||
6 | require the AX.25 code in the kernel enabled. | ||
7 | |||
8 | There are four files in this archive; this readme, a patch file, a .c file | ||
9 | and finally a .h file. The two program files need to be put into the | ||
10 | drivers/net directory in the Linux source tree, for me this is the | ||
11 | directory /usr/src/linux/drivers/net. The patch file needs to be patched in | ||
12 | at the top of the Linux source tree (/usr/src/linux in my case). | ||
13 | |||
14 | You will most probably have to edit the pt.c file to suit your own setup, | ||
15 | this should just involve changing some of the defines at the top of the file. | ||
16 | Please note that if you run an external modem you must specify a speed of 0. | ||
17 | |||
18 | The program is currently setup to run a 4800 baud external modem on port A | ||
19 | and a Kantronics DE-9600 daughter board on port B so if you have this (or | ||
20 | something similar) then you're right. | ||
21 | |||
22 | To compile in the driver, put the files in the correct place and patch in | ||
23 | the diff. You will have to re-configure the kernel again before you | ||
24 | recompile it. | ||
25 | |||
26 | The driver is not real good at the moment for finding the card. You can | ||
27 | 'help' it by changing the order of the potential addresses in the structure | ||
28 | found in the pt_init() function so the address of where the card is is put | ||
29 | first. | ||
30 | |||
31 | After compiling, you have to get them going, they are pretty well like any | ||
32 | other net device and just need ifconfig to get them going. | ||
33 | As an example, here is my /etc/rc.net | ||
34 | -------------------------- | ||
35 | |||
36 | # | ||
37 | # Configure the PackeTwin, port A. | ||
38 | /sbin/ifconfig pt0a 44.136.8.87 hw ax25 vk2xlz mtu 512 | ||
39 | /sbin/ifconfig pt0a 44.136.8.87 broadcast 44.136.8.255 netmask 255.255.255.0 | ||
40 | /sbin/route add -net 44.136.8.0 netmask 255.255.255.0 dev pt0a | ||
41 | /sbin/route add -net 44.0.0.0 netmask 255.0.0.0 gw 44.136.8.68 dev pt0a | ||
42 | /sbin/route add -net 138.25.16.0 netmask 255.255.240.0 dev pt0a | ||
43 | /sbin/route add -host 44.136.8.255 dev pt0a | ||
44 | # | ||
45 | # Configure the PackeTwin, port B. | ||
46 | /sbin/ifconfig pt0b 44.136.8.87 hw ax25 vk2xlz-1 mtu 512 | ||
47 | /sbin/ifconfig pt0b 44.136.8.87 broadcast 44.255.255.255 netmask 255.0.0.0 | ||
48 | /sbin/route add -host 44.136.8.216 dev pt0b | ||
49 | /sbin/route add -host 44.136.8.95 dev pt0b | ||
50 | /sbin/route add -host 44.255.255.255 dev pt0b | ||
51 | |||
52 | This version of the driver comes under the GNU GPL. If you have one of my | ||
53 | previous (non-GPL) versions of the driver, please update to this one. | ||
54 | |||
55 | I hope that this all works well for you. I would be pleased to hear how | ||
56 | many people use the driver and if it does its job. | ||
57 | |||
58 | - Craig vk2xlz <csmall@small.dropbear.id.au> | ||
diff --git a/Documentation/networking/routing.txt b/Documentation/networking/routing.txt deleted file mode 100644 index a26838b930f2..000000000000 --- a/Documentation/networking/routing.txt +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | The directory ftp.inr.ac.ru:/ip-routing contains: | ||
2 | |||
3 | - iproute.c - "professional" routing table maintenance utility. | ||
4 | |||
5 | - rdisc.tar.gz - rdisc daemon, ported from Sun. | ||
6 | STRONGLY RECOMMENDED FOR ALL HOSTS. | ||
7 | |||
8 | - routing.tgz - original Mike McLagan's route by source patch. | ||
9 | Currently it is obsolete. | ||
10 | |||
11 | - gated.dif-ss<NEWEST>.gz - gated-R3_6Alpha_2 fixes. | ||
12 | Look at README.gated | ||
13 | |||
14 | - mrouted-3.8.dif.gz - mrouted-3.8 fixes. | ||
15 | |||
16 | - rtmon.c - trivial debugging utility: reads and stores netlink. | ||
17 | |||
18 | |||
19 | NEWS for user. | ||
20 | |||
21 | - Policy based routing. Routing decisions are made on the basis | ||
22 | not only of destination address, but also source address, | ||
23 | TOS and incoming interface. | ||
24 | - Complete set of IP level control messages. | ||
25 | Now Linux is the only OS in the world complying to RFC requirements. | ||
26 | Great win 8) | ||
27 | - New interface addressing paradigm. | ||
28 | Assignment of address ranges to interface, | ||
29 | multiple prefixes etc. etc. | ||
30 | Do not bother, it is compatible with the old one. Moreover: | ||
31 | - You don't need to do "route add aaa.bbb.ccc... eth0" anymore, | ||
32 | it is done automatically. | ||
33 | - "Abstract" UNIX sockets and security enhancements. | ||
34 | This is necessary to use TIRPC and TLI emulation library. | ||
35 | |||
36 | NEWS for hacker. | ||
37 | |||
38 | - New destination cache. Flexible, robust and just beautiful. | ||
39 | - Network stack is reordered, simplified, optimized, a lot of bugs fixed. | ||
40 | (well, and new bugs were introduced, but I haven't seen them yet 8)) | ||
41 | It is difficult to describe all the changes, look into source. | ||
42 | |||
43 | If you see this file, then this patch works 8) | ||
44 | |||
45 | Alexey Kuznetsov. | ||
46 | kuznet@ms2.inr.ac.ru | ||
diff --git a/Documentation/networking/slicecom.hun b/Documentation/networking/slicecom.hun deleted file mode 100644 index bed2f045e550..000000000000 --- a/Documentation/networking/slicecom.hun +++ /dev/null | |||
@@ -1,371 +0,0 @@ | |||
1 | |||
2 | SliceCOM adapter felhasznaloi dokumentacioja - 0.51 verziohoz | ||
3 | |||
4 | Bartók István <bartoki@itc.hu> | ||
5 | Utolso modositas: Wed Aug 29 17:26:58 CEST 2001 | ||
6 | |||
7 | ----------------------------------------------------------------- | ||
8 | |||
9 | Hasznalata: | ||
10 | |||
11 | Forditas: | ||
12 | |||
13 | Code maturity level options | ||
14 | [*] Prompt for development and/or incomplete code/drivers | ||
15 | |||
16 | Network device support | ||
17 | Wan interfaces | ||
18 | <M> MultiGate (COMX) synchronous | ||
19 | <M> Support for MUNICH based boards: SliceCOM, PCICOM (NEW) | ||
20 | <M> Support for HDLC and syncPPP... | ||
21 | |||
22 | |||
23 | A modulok betoltese: | ||
24 | |||
25 | modprobe comx | ||
26 | |||
27 | modprobe comx-proto-ppp # a Cisco-HDLC es a SyncPPP protokollt is | ||
28 | # ez a modul adja | ||
29 | |||
30 | modprobe comx-hw-munich # a modul betoltodeskor azonnal jelent a | ||
31 | # syslogba a detektalt kartyakrol | ||
32 | |||
33 | |||
34 | Konfiguralas: | ||
35 | |||
36 | # Ezen az interfeszen Cisco-HDLC vonali protokoll fog futni | ||
37 | # Az interfeszhez rendelt idoszeletek: 1,2 (128 kbit/sec-es vonal) | ||
38 | # (a G.703 keretben az elso adatot vivo idoszelet az 1-es) | ||
39 | # | ||
40 | mkdir /proc/comx/comx0.1/ | ||
41 | echo slicecom >/proc/comx/comx0.1/boardtype | ||
42 | echo hdlc >/proc/comx/comx0.1/protocol | ||
43 | echo 1 2 >/proc/comx/comx0.1/timeslots | ||
44 | |||
45 | |||
46 | # Ezen az interfeszen SyncPPP vonali protokoll fog futni | ||
47 | # Az interfeszhez rendelt idoszelet: 3 (64 kbit/sec-es vonal) | ||
48 | # | ||
49 | mkdir /proc/comx/comx0.2/ | ||
50 | echo slicecom >/proc/comx/comx0.2/boardtype | ||
51 | echo ppp >/proc/comx/comx0.2/protocol | ||
52 | echo 3 >/proc/comx/comx0.2/timeslots | ||
53 | |||
54 | ... | ||
55 | |||
56 | ifconfig comx0.1 up | ||
57 | ifconfig comx0.2 up | ||
58 | |||
59 | ----------------------------------------------------------------- | ||
60 | |||
61 | A COMX driverek default 20 csomagnyi transmit queue-t rendelnek a halozati | ||
62 | interfeszekhez. WAN halozatokban ennel hosszabbat is szokas hasznalni | ||
63 | (20 es 100 kozott), hogy a vonal kihasznaltsaga nagy terheles eseten jobb | ||
64 | legyen (bar ezzel megno a varhato kesleltetes a csomagok sorban allasa miatt): | ||
65 | |||
66 | # ifconfig comx0 txqueuelen 50 | ||
67 | |||
68 | Ezt a beallitasi lehetoseget csak az ujabb disztribuciok ifconfig parancsa | ||
69 | tamogatja (amik mar a 2.2 kernelekhez keszultek, mint a RedHat 6.1 vagy a | ||
70 | Debian 2.2). | ||
71 | |||
72 | A 2.1-es Debian disztribuciohoz a http://www.debian.org/~rcw/2.2/netbase/ | ||
73 | cimrol toltheto le ujabb netbase csomag, ami mar ilyet tamogato ifconfig | ||
74 | parancsot tartalmaz. Bovebben a 2.2 kernel hasznalatarol Debian 2.1 alatt: | ||
75 | http://www.debian.org/releases/stable/running-kernel-2.2 | ||
76 | |||
77 | ----------------------------------------------------------------- | ||
78 | |||
79 | A kartya LED-jeinek jelentese: | ||
80 | |||
81 | piros - eg, ha Remote Alarm-ot kuld a tuloldal | ||
82 | zold - eg, ha a vett jelben megtalalja a keretszinkront | ||
83 | |||
84 | Reszletesebben: | ||
85 | |||
86 | piros: zold: jelentes: | ||
87 | |||
88 | - - nincs keretszinkron (nincs jel, vagy rossz a jel) | ||
89 | - eg "minden rendben" | ||
90 | eg eg a vetel OK, de a tuloldal Remote Alarm-ot kuld | ||
91 | eg - ez nincs ertelmezve, egyelore funkcio nelkul | ||
92 | |||
93 | ----------------------------------------------------------------- | ||
94 | |||
95 | Reszletesebb leiras a hardver beallitasi lehetosegeirol: | ||
96 | |||
97 | Az altalanos,- es a protokoll-retegek beallitasi lehetosegeirol a 'comx.txt' | ||
98 | fajlban leirtak SliceCOM kartyanal is ervenyesek, itt csak a hardver-specifikus | ||
99 | beallitasi lehetosegek vannak osszefoglalva: | ||
100 | |||
101 | Konfiguralasi interfesz a /proc/comx/ alatt: | ||
102 | |||
103 | Minden timeslot-csoportnak kulon comx* interfeszt kell letrehozni mkdir-rel: | ||
104 | comx0, comx1, .. stb. Itt beallithato, hogy az adott interfesz hanyadik kartya | ||
105 | melyik timeslotja(i)bol alljon ossze. A Cisco-fele serial3:1 elnevezesek | ||
106 | (serial3:1 = a 3. kartyaban az 1-es idoszelet-csoport) Linuxon aliasing-ot | ||
107 | jelentenenek, ezert mi nem tudunk ilyen elnevezest hasznalni. | ||
108 | |||
109 | Tobb kartya eseten a comx0.1, comx0.2, ... vagy slice0.1, slice0.2 nevek | ||
110 | hasznalhatoak. | ||
111 | |||
112 | Tobb SliceCOM kartya is lehet egy gepben, de sajat interrupt kell mindegyiknek, | ||
113 | nem tud meg megosztott interruptot kezelni. | ||
114 | |||
115 | Az egesz kartyat erinto beallitasok: | ||
116 | |||
117 | Az ioport es irq beallitas nincs: amit a PCI BIOS kioszt a rendszernek, | ||
118 | azt hasznalja a driver. | ||
119 | |||
120 | |||
121 | comx0/boardnum - hanyadik SliceCOM kartya a gepben (a 'termeszetes' PCI | ||
122 | sorrendben ertve: ahogyan a /proc/pci-ban vagy az 'lspci' | ||
123 | kimeneteben megjelenik, altalaban az alaplapi PCI meghajto | ||
124 | aramkorokhoz kozelebb eso kartyak a kisebb sorszamuak) | ||
125 | |||
126 | Default: 0 (0-tol kezdodik a szamolas) | ||
127 | |||
128 | |||
129 | Bar a kovetkezoket csak egy-egy interfeszen allitjuk at, megis az egesz kartya | ||
130 | mukodeset egyszerre allitjak. A megkotes hogy csak UP-ban levo interfeszen | ||
131 | hasznalhatoak, azert van, mert kulonben nem vart eredmenyekre vezetne egy ilyen | ||
132 | paranccsorozat: | ||
133 | |||
134 | echo 0 >boardnum | ||
135 | echo internal >clock_source | ||
136 | echo 1 >boardnum | ||
137 | |||
138 | - Ez a 0-s board clock_source-at allitana at. | ||
139 | |||
140 | Ezek a beallitasok megmaradnak az osszes interfesz torlesekor, de torlodnek | ||
141 | a driver modul ki/betoltesekor. | ||
142 | |||
143 | |||
144 | comx0/clock_source - A Tx orajelforrasa, a Cisco-val hasonlatosra keszult. | ||
145 | Hasznalata: | ||
146 | |||
147 | papaya:# echo line >/proc/comx/comx0/clock_source | ||
148 | papaya:# echo internal >/proc/comx/comx0/clock_source | ||
149 | |||
150 | line - A Tx orajelet a vett adatfolyambol dekodolja, igyekszik | ||
151 | igazodni hozza. Ha nem lat orajelet az inputon, akkor | ||
152 | atall a sajat orajelgeneratorara. | ||
153 | internal - A Tx orajelet a sajat orajelgeneratora szolgaltatja. | ||
154 | |||
155 | Default: line | ||
156 | |||
157 | Normal osszeallitas eseten a tavkozlesi szolgaltato eszkoze | ||
158 | (pl. HDSL modem) adja az orajelet, ezert ez a default. | ||
159 | |||
160 | |||
161 | comx0/framing - A CRC4 ki/be kapcsolasa | ||
162 | |||
163 | A CRC4: 16 PCM keretet (A PCM keret az, amibe a 32 darab 64 | ||
164 | kilobites csatorna van bemultiplexalva. Nem osszetevesztendo a HDLC | ||
165 | kerettel.) 2x8 -as csoportokra osztanak, es azokhoz 4-4 bites CRC-t | ||
166 | szamolnak. Elsosorban a vonal minosegenek a monitorozasara szolgal. | ||
167 | |||
168 | papaya:~# echo crc4 >/proc/comx/comx0/framing | ||
169 | papaya:~# echo no-crc4 >/proc/comx/comx0/framing | ||
170 | |||
171 | Default a 'crc4', a MATAV vonalak altalaban igy futnak. De ha nem | ||
172 | egyforma is a beallitas a vonal ket vegen, attol a forgalom altalaban | ||
173 | at tud menni. | ||
174 | |||
175 | |||
176 | comx0/linecode - A vonali kodolas beallitasa | ||
177 | |||
178 | papaya:~# echo hdb3 >/proc/comx/comx0/linecode | ||
179 | papaya:~# echo ami >/proc/comx/comx0/linecode | ||
180 | |||
181 | Default a 'hdb3', a MATAV vonalak igy futnak. | ||
182 | |||
183 | (az AMI kodolas igen ritka E1-es vonalaknal). Ha ez a beallitas nem | ||
184 | egyezik a vonal ket vegen, akkor elofordulhat hogy a keretszinkron | ||
185 | osszejon, de CRC4-hibak es a vonalakon atvitt adatokban is hibak | ||
186 | keletkeznek (amit a HDLC/SyncPPP szinten CRC-hibaval jelez) | ||
187 | |||
188 | |||
189 | comx0/reg - a kartya aramkoreinek, a MUNICH (reg) es a FALC (lbireg) | ||
190 | comx0/lbireg regisztereinek kozvetlen elerese. Hasznalata: | ||
191 | |||
192 | echo >reg 0x04 0x0 - a 4-es regiszterbe 0-t ir | ||
193 | echo >reg 0x104 - printk()-val kiirja a 4-es regiszter | ||
194 | tartalmat a syslogba. | ||
195 | |||
196 | WARNING: ezek csak a fejleszteshez keszultek, sok galibat | ||
197 | lehet veluk okozni! | ||
198 | |||
199 | |||
200 | comx0/loopback - A kartya G.703 jelenek a visszahurkolasara is van lehetoseg: | ||
201 | |||
202 | papaya:# echo none >/proc/comx/comx0/loopback | ||
203 | papaya:# echo local >/proc/comx/comx0/loopback | ||
204 | papaya:# echo remote >/proc/comx/comx0/loopback | ||
205 | |||
206 | none - nincs visszahurkolas, normal mukodes | ||
207 | local - a kartya a sajat maga altal adott jelet kapja vissza | ||
208 | remote - a kartya a kivulrol vett jelet adja kifele | ||
209 | |||
210 | Default: none | ||
211 | |||
212 | ----------------------------------------------------------------- | ||
213 | |||
214 | Az interfeszhez (Cisco terminologiaban 'channel-group') kapcsolodo beallitasok: | ||
215 | |||
216 | comx0/timeslots - mely timeslotok (idoszeletek) tartoznak az adott interfeszhez. | ||
217 | |||
218 | papaya:~# cat /proc/comx/comx0/timeslots | ||
219 | 1 3 4 5 6 | ||
220 | papaya:~# | ||
221 | |||
222 | Egy timeslot megkeresese (hanyas interfeszbe tartozik nalunk): | ||
223 | |||
224 | papaya:~# grep ' 4' /proc/comx/comx*/timeslots | ||
225 | /proc/comx/comx0/timeslots:1 3 4 5 6 | ||
226 | papaya:~# | ||
227 | |||
228 | Beallitasa: | ||
229 | papaya:~# echo '1 5 2 6 7 8' >/proc/comx/comx0/timeslots | ||
230 | |||
231 | A timeslotok sorrendje nem szamit, '1 3 2' ugyanaz mint az '1 2 3'. | ||
232 | |||
233 | Beallitashoz az adott interfesznek DOWN-ban kell lennie | ||
234 | (ifconfig comx0 down), de ugyanannak a kartyanak a tobbi interfesze | ||
235 | uzemelhet kozben. | ||
236 | |||
237 | Beallitaskor leellenorzi, hogy az uj timeslotok nem utkoznek-e egy | ||
238 | masik interfesz timeslotjaival. Ha utkoznek, akkor nem allitja at. | ||
239 | |||
240 | Mindig 10-es szamrendszerben tortenik a timeslotok ertelmezese, nehogy | ||
241 | a 08, 09 alaku felirast rosszul ertelmezze. | ||
242 | |||
243 | ----------------------------------------------------------------- | ||
244 | |||
245 | Az interfeszek es a kartya allapotanak lekerdezese: | ||
246 | |||
247 | - A ' '-szel kezdodo sorok az eredeti kimenetet, a //-rel kezdodo sorok a | ||
248 | magyarazatot jelzik. | ||
249 | |||
250 | papaya:~$ cat /proc/comx/comx1/status | ||
251 | Interface administrative status is UP, modem status is UP, protocol is UP | ||
252 | Modem status changes: 0, Transmitter status is IDLE, tbusy: 0 | ||
253 | Interface load (input): 978376 / 947808 / 951024 bits/s (5s/5m/15m) | ||
254 | (output): 978376 / 947848 / 951024 bits/s (5s/5m/15m) | ||
255 | Debug flags: none | ||
256 | RX errors: len: 22, overrun: 1, crc: 0, aborts: 0 | ||
257 | buffer overrun: 0, pbuffer overrun: 0 | ||
258 | TX errors: underrun: 0 | ||
259 | Line keepalive (value: 10) status UP [0] | ||
260 | |||
261 | // Itt kezdodik a hardver-specifikus resz: | ||
262 | Controller status: | ||
263 | No alarms | ||
264 | |||
265 | // Alarm: hibajelzes: | ||
266 | // | ||
267 | // No alarms - minden rendben | ||
268 | // | ||
269 | // LOS - Loss Of Signal - nem erzekel jelet a bemeneten. | ||
270 | // AIS - Alarm Indication Signal - csak egymas utani 1-esek jonnek | ||
271 | // a bemeneten, a tuloldal igy is jelezheti hogy meghibasodott vagy | ||
272 | // nincs inicializalva. | ||
273 | // AUXP - Auxiliary Pattern Indication - 01010101.. sorozat jon a bemeneten. | ||
274 | // LFA - Loss of Frame Alignment - nincs keretszinkron | ||
275 | // RRA - Receive Remote Alarm - a tuloldal el, de hibat jelez. | ||
276 | // LMFA - Loss of CRC4 Multiframe Alignment - nincs CRC4-multikeret-szinkron | ||
277 | // NMF - No Multiframe alignment Found after 400 msec - ilyen alarm a no-crc4 | ||
278 | // es crc4 keretezesek eseten nincs, lasd lentebb | ||
279 | // | ||
280 | // Egyeb lehetseges hibajelzesek: | ||
281 | // | ||
282 | // Transmit Line Short - a kartya ugy erzi hogy az adasi kimenete rovidre | ||
283 | // van zarva, ezert kikapcsolta az adast. (nem feltetlenul veszi eszre | ||
284 | // a kulso rovidzarat) | ||
285 | |||
286 | // A veteli oldal csomagjainak lancolt listai, debug celokra: | ||
287 | |||
288 | Rx ring: | ||
289 | rafutott: 0 | ||
290 | lastcheck: 50845731, jiffies: 51314281 | ||
291 | base: 017b1858 | ||
292 | rx_desc_ptr: 0 | ||
293 | rx_desc_ptr: 017b1858 | ||
294 | hw_curr_ptr: 017b1858 | ||
295 | 06040000 017b1868 017b1898 c016ff00 | ||
296 | 06040000 017b1878 017b1e9c c016ff00 | ||
297 | 46040000 017b1888 017b24a0 c016ff00 | ||
298 | 06040000 017b1858 017b2aa4 c016ff00 | ||
299 | |||
300 | // A kartyat hasznalo tobbi interfesz: a 0-s channel-group a comx1 interfesz, | ||
301 | // es az 1,2,...,16 timeslotok tartoznak hozza: | ||
302 | |||
303 | Interfaces using this board: (channel-group, interface, timeslots) | ||
304 | 0 comx1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ||
305 | 1 comx2: 17 | ||
306 | 2 comx3: 18 | ||
307 | 3 comx4: 19 | ||
308 | 4 comx5: 20 | ||
309 | 5 comx6: 21 | ||
310 | 6 comx7: 22 | ||
311 | 7 comx8: 23 | ||
312 | 8 comx9: 24 | ||
313 | 9 comx10: 25 | ||
314 | 10 comx11: 26 | ||
315 | 11 comx12: 27 | ||
316 | 12 comx13: 28 | ||
317 | 13 comx14: 29 | ||
318 | 14 comx15: 30 | ||
319 | 15 comx16: 31 | ||
320 | |||
321 | // Hany esemenyt kezelt le a driver egy-egy hardver-interrupt kiszolgalasanal: | ||
322 | |||
323 | Interrupt work histogram: | ||
324 | hist[ 0]: 0 hist[ 1]: 2 hist[ 2]: 18574 hist[ 3]: 79 | ||
325 | hist[ 4]: 14 hist[ 5]: 1 hist[ 6]: 0 hist[ 7]: 1 | ||
326 | hist[ 8]: 0 hist[ 9]: 7 | ||
327 | |||
328 | // Hany kikuldendo csomag volt mar a Tx-ringben amikor ujabb lett irva bele: | ||
329 | |||
330 | Tx ring histogram: | ||
331 | hist[ 0]: 2329 hist[ 1]: 0 hist[ 2]: 0 hist[ 3]: 0 | ||
332 | |||
333 | // Az E1-interfesz hiba-szamlaloi, az rfc2495-nek megfeleloen: | ||
334 | // (kb. a Cisco routerek "show controllers e1" formatumaban: http://www.cisco.com/univercd/cc/td/doc/product/software/ios11/rbook/rinterfc.htm#xtocid25669126) | ||
335 | |||
336 | Data in current interval (91 seconds elapsed): | ||
337 | 9516 Line Code Violations, 65 Path Code Violations, 2 E-Bit Errors | ||
338 | 0 Slip Secs, 2 Fr Loss Secs, 2 Line Err Secs, 0 Degraded Mins | ||
339 | 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 11 Unavail Secs | ||
340 | Data in Interval 1 (15 minutes): | ||
341 | 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors | ||
342 | 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins | ||
343 | 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs | ||
344 | Data in last 4 intervals (1 hour): | ||
345 | 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors | ||
346 | 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins | ||
347 | 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs | ||
348 | Data in last 96 intervals (24 hours): | ||
349 | 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors | ||
350 | 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins | ||
351 | 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs | ||
352 | |||
353 | ----------------------------------------------------------------- | ||
354 | |||
355 | Nehany kulonlegesebb beallitasi lehetoseg (idovel beepulhetnek majd a driverbe): | ||
356 | Ezekkel sok galibat lehet okozni, nagyon ovatosan kell oket hasznalni! | ||
357 | |||
358 | modified CRC-4, for improved interworking of CRC-4 and non-CRC-4 | ||
359 | devices: (lasd page 107 es g706 Annex B) | ||
360 | lbireg[ 0x1b ] |= 0x08 | ||
361 | lbireg[ 0x1c ] |= 0xc0 | ||
362 | - ilyenkor ertelmezett az NMF - 'No Multiframe alignment Found after | ||
363 | 400 msec' alarm. | ||
364 | |||
365 | FALC - a vonali meghajto IC | ||
366 | local loop - a sajat adasomat halljam vissza | ||
367 | remote loop - a kivulrol jovo adast adom vissza | ||
368 | |||
369 | Egy hibakeresesre hasznalhato dolog: | ||
370 | - 1-es timeslot local loop a FALC-ban: echo >lbireg 0x1d 0x21 | ||
371 | - local loop kikapcsolasa: echo >lbireg 0x1d 0x00 | ||
diff --git a/Documentation/networking/slicecom.txt b/Documentation/networking/slicecom.txt deleted file mode 100644 index c82c0cf981b4..000000000000 --- a/Documentation/networking/slicecom.txt +++ /dev/null | |||
@@ -1,369 +0,0 @@ | |||
1 | |||
2 | SliceCOM adapter user's documentation - for the 0.51 driver version | ||
3 | |||
4 | Written by Bartók István <bartoki@itc.hu> | ||
5 | |||
6 | English translation: Lakatos György <gyuri@itc.hu> | ||
7 | Mon Dec 11 15:28:42 CET 2000 | ||
8 | |||
9 | Last modified: Wed Aug 29 17:25:37 CEST 2001 | ||
10 | |||
11 | ----------------------------------------------------------------- | ||
12 | |||
13 | Usage: | ||
14 | |||
15 | Compiling the kernel: | ||
16 | |||
17 | Code maturity level options | ||
18 | [*] Prompt for development and/or incomplete code/drivers | ||
19 | |||
20 | Network device support | ||
21 | Wan interfaces | ||
22 | <M> MultiGate (COMX) synchronous | ||
23 | <M> Support for MUNICH based boards: SliceCOM, PCICOM (NEW) | ||
24 | <M> Support for HDLC and syncPPP... | ||
25 | |||
26 | |||
27 | Loading the modules: | ||
28 | |||
29 | modprobe comx | ||
30 | |||
31 | modprobe comx-proto-ppp # module for Cisco-HDLC and SyncPPP protocols | ||
32 | |||
33 | modprobe comx-hw-munich # the module logs information by the kernel | ||
34 | # about the detected boards | ||
35 | |||
36 | |||
37 | Configuring the board: | ||
38 | |||
39 | # This interface will use the Cisco-HDLC line protocol, | ||
40 | # the timeslices assigned are 1,2 (128 KiBit line speed) | ||
41 | # (the first data timeslice in the G.703 frame is no. 1) | ||
42 | # | ||
43 | mkdir /proc/comx/comx0.1/ | ||
44 | echo slicecom >/proc/comx/comx0.1/boardtype | ||
45 | echo hdlc >/proc/comx/comx0.1/protocol | ||
46 | echo 1 2 >/proc/comx/comx0.1/timeslots | ||
47 | |||
48 | |||
49 | # This interface uses SyncPPP line protocol, the assigned | ||
50 | # is no. 3 (64 KiBit line speed) | ||
51 | # | ||
52 | mkdir /proc/comx/comx0.2/ | ||
53 | echo slicecom >/proc/comx/comx0.2/boardtype | ||
54 | echo ppp >/proc/comx/comx0.2/protocol | ||
55 | echo 3 >/proc/comx/comx0.2/timeslots | ||
56 | |||
57 | ... | ||
58 | |||
59 | ifconfig comx0.1 up | ||
60 | ifconfig comx0.2 up | ||
61 | |||
62 | ----------------------------------------------------------------- | ||
63 | |||
64 | The COMX interfaces use a 10 packet transmit queue by default, however WAN | ||
65 | networks sometimes use bigger values (20 to 100), to utilize the line better | ||
66 | by large traffic (though the line delay increases because of more packets | ||
67 | join the queue). | ||
68 | |||
69 | # ifconfig comx0 txqueuelen 50 | ||
70 | |||
71 | This option is only supported by the ifconfig command of the later | ||
72 | distributions, which came with 2.2 kernels, such as RedHat 6.1 or Debian 2.2. | ||
73 | |||
74 | You can download a newer netbase packet from | ||
75 | http://www.debian.org/~rcw/2.2/netbase/ for Debian 2.1, which has a new | ||
76 | ifconfig. You can get further information about using 2.2 kernel with | ||
77 | Debian 2.1 from http://www.debian.org/releases/stable/running-kernel-2.2 | ||
78 | |||
79 | ----------------------------------------------------------------- | ||
80 | |||
81 | The SliceCom LEDs: | ||
82 | |||
83 | red - on, if the interface is unconfigured, or it gets Remote Alarm-s | ||
84 | green - on, if the board finds frame-sync in the received signal | ||
85 | |||
86 | A bit more detailed: | ||
87 | |||
88 | red: green: meaning: | ||
89 | |||
90 | - - no frame-sync, no signal received, or signal SNAFU. | ||
91 | - on "Everything is OK" | ||
92 | on on Reception is ok, but the remote end sends Remote Alarm | ||
93 | on - The interface is unconfigured | ||
94 | |||
95 | ----------------------------------------------------------------- | ||
96 | |||
97 | A more detailed description of the hardware setting options: | ||
98 | |||
99 | The general and the protocol layer options described in the 'comx.txt' file | ||
100 | apply to the SliceCom as well, I only summarize the SliceCom hardware specific | ||
101 | settings below. | ||
102 | |||
103 | The '/proc/comx' configuring interface: | ||
104 | |||
105 | An interface directory should be created for every timeslot group with | ||
106 | 'mkdir', e,g: 'comx0', 'comx1' etc. The timeslots can be assigned here to the | ||
107 | specific interface. The Cisco-like naming convention (serial3:1 - first | ||
108 | timeslot group of the 3rd. board) can't be used here, because these mean IP | ||
109 | aliasing in Linux. | ||
110 | |||
111 | You can give any meaningful name to keep the configuration clear; | ||
112 | e.g: 'comx0.1', 'comx0.2', 'comx1.1', comx1.2', if you have two boards | ||
113 | with two interfaces each. | ||
114 | |||
115 | Settings, which apply to the board: | ||
116 | |||
117 | Neither 'io' nor 'irq' settings required, the driver uses the resources | ||
118 | given by the PCI BIOS. | ||
119 | |||
120 | comx0/boardnum - board number of the SliceCom in the PC (using the 'natural' | ||
121 | PCI order) as listed in '/proc/pci' or the output of the | ||
122 | 'lspci' command, generally the slots nearer to the motherboard | ||
123 | PCI driver chips have the lower numbers. | ||
124 | |||
125 | Default: 0 (the counting starts with 0) | ||
126 | |||
127 | Though the options below are to be set on a single interface, they apply to the | ||
128 | whole board. The restriction, to use them on 'UP' interfaces, is because the | ||
129 | command sequence below could lead to unpredictable results. | ||
130 | |||
131 | # echo 0 >boardnum | ||
132 | # echo internal >clock_source | ||
133 | # echo 1 >boardnum | ||
134 | |||
135 | The sequence would set the clock source of board 0. | ||
136 | |||
137 | These settings will persist after all the interfaces are cleared, but are | ||
138 | cleared when the driver module is unloaded and loaded again. | ||
139 | |||
140 | comx0/clock_source - source of the transmit clock | ||
141 | Usage: | ||
142 | |||
143 | # echo line >/proc/comx/comx0/clock_source | ||
144 | # echo internal >/proc/comx/comx0/clock_source | ||
145 | |||
146 | line - The Tx clock is being decoded if the input data stream, | ||
147 | if no clock seen on the input, then the board will use it's | ||
148 | own clock generator. | ||
149 | |||
150 | internal - The Tx clock is supplied by the builtin clock generator. | ||
151 | |||
152 | Default: line | ||
153 | |||
154 | Normally, the telecommunication company's end device (the HDSL | ||
155 | modem) provides the Tx clock, that's why 'line' is the default. | ||
156 | |||
157 | comx0/framing - Switching CRC4 off/on | ||
158 | |||
159 | CRC4: 16 PCM frames (The 32 64Kibit channels are multiplexed into a | ||
160 | PCM frame, nothing to do with HDLC frames) are divided into 2x8 | ||
161 | groups, each group has a 4 bit CRC. | ||
162 | |||
163 | # echo crc4 >/proc/comx/comx0/framing | ||
164 | # echo no-crc4 >/proc/comx/comx0/framing | ||
165 | |||
166 | Default is 'crc4', the Hungarian MATAV lines behave like this. | ||
167 | The traffic generally passes if this setting on both ends don't match. | ||
168 | |||
169 | comx0/linecode - Setting the line coding | ||
170 | |||
171 | # echo hdb3 >/proc/comx/comx0/linecode | ||
172 | # echo ami >/proc/comx/comx0/linecode | ||
173 | |||
174 | Default a 'hdb3', MATAV lines use this. | ||
175 | |||
176 | (AMI coding is rarely used with E1 lines). Frame sync may occur, if | ||
177 | this setting doesn't match the other end's, but CRC4 and data errors | ||
178 | will come, which will result in CRC errors on HDLC/SyncPPP level. | ||
179 | |||
180 | comx0/reg - direct access to the board's MUNICH (reg) and FALC (lbireg) | ||
181 | comx0/lbireg circuit's registers | ||
182 | |||
183 | # echo >reg 0x04 0x0 - write 0 to register 4 | ||
184 | # echo >reg 0x104 - write the contents of register 4 with | ||
185 | printk() to syslog | ||
186 | |||
187 | WARNING! These are only for development purposes, messing with this will | ||
188 | result much trouble! | ||
189 | |||
190 | comx0/loopback - Places a loop to the board's G.703 signals | ||
191 | |||
192 | # echo none >/proc/comx/comx0/loopback | ||
193 | # echo local >/proc/comx/comx0/loopback | ||
194 | # echo remote >/proc/comx/comx0/loopback | ||
195 | |||
196 | none - normal operation, no loop | ||
197 | local - the board receives it's own output | ||
198 | remote - the board sends the received data to the remote side | ||
199 | |||
200 | Default: none | ||
201 | |||
202 | ----------------------------------------------------------------- | ||
203 | |||
204 | Interface (channel group in Cisco terms) settings: | ||
205 | |||
206 | comx0/timeslots - which timeslots belong to the given interface | ||
207 | |||
208 | Setting: | ||
209 | |||
210 | # echo '1 5 2 6 7 8' >/proc/comx/comx0/timeslots | ||
211 | |||
212 | # cat /proc/comx/comx0/timeslots | ||
213 | 1 2 5 6 7 8 | ||
214 | # | ||
215 | |||
216 | Finding a timeslot: | ||
217 | |||
218 | # grep ' 4' /proc/comx/comx*/timeslots | ||
219 | /proc/comx/comx0/timeslots:1 3 4 5 6 | ||
220 | # | ||
221 | |||
222 | The timeslots can be in any order, '1 2 3' is the same as '1 3 2'. | ||
223 | |||
224 | The interface has to be DOWN during the setting ('ifconfig comx0 | ||
225 | down'), but the other interfaces could operate normally. | ||
226 | |||
227 | The driver checks if the assigned timeslots are vacant, if not, then | ||
228 | the setting won't be applied. | ||
229 | |||
230 | The timeslot values are treated as decimal numbers, not to misunderstand | ||
231 | values of 08, 09 form. | ||
232 | |||
233 | ----------------------------------------------------------------- | ||
234 | |||
235 | Checking the interface and board status: | ||
236 | |||
237 | - Lines beginning with ' ' (space) belong to the original output, the lines | ||
238 | which begin with '//' are the comments. | ||
239 | |||
240 | papaya:~$ cat /proc/comx/comx1/status | ||
241 | Interface administrative status is UP, modem status is UP, protocol is UP | ||
242 | Modem status changes: 0, Transmitter status is IDLE, tbusy: 0 | ||
243 | Interface load (input): 978376 / 947808 / 951024 bits/s (5s/5m/15m) | ||
244 | (output): 978376 / 947848 / 951024 bits/s (5s/5m/15m) | ||
245 | Debug flags: none | ||
246 | RX errors: len: 22, overrun: 1, crc: 0, aborts: 0 | ||
247 | buffer overrun: 0, pbuffer overrun: 0 | ||
248 | TX errors: underrun: 0 | ||
249 | Line keepalive (value: 10) status UP [0] | ||
250 | |||
251 | // The hardware specific part starts here: | ||
252 | Controller status: | ||
253 | No alarms | ||
254 | |||
255 | // Alarm: | ||
256 | // | ||
257 | // No alarms - Everything OK | ||
258 | // | ||
259 | // LOS - Loss Of Signal - No signal sensed on the input | ||
260 | // AIS - Alarm Indication Signal - The remote side sends '11111111'-s, | ||
261 | // it tells, that there's an error condition, or it's not | ||
262 | // initialised. | ||
263 | // AUXP - Auxiliary Pattern Indication - 01010101.. received. | ||
264 | // LFA - Loss of Frame Alignment - no frame sync received. | ||
265 | // RRA - Receive Remote Alarm - the remote end's OK, but signals error cond. | ||
266 | // LMFA - Loss of CRC4 Multiframe Alignment - no CRC4 multiframe sync. | ||
267 | // NMF - No Multiframe alignment Found after 400 msec - no such alarm using | ||
268 | // no-crc4 or crc4 framing, see below. | ||
269 | // | ||
270 | // Other possible error messages: | ||
271 | // | ||
272 | // Transmit Line Short - the board felt, that it's output is short-circuited, | ||
273 | // so it switched the transmission off. (The board can't definitely tell, | ||
274 | // that it's output is short-circuited.) | ||
275 | |||
276 | // Chained list of the received packets, for debug purposes: | ||
277 | |||
278 | Rx ring: | ||
279 | rafutott: 0 | ||
280 | lastcheck: 50845731, jiffies: 51314281 | ||
281 | base: 017b1858 | ||
282 | rx_desc_ptr: 0 | ||
283 | rx_desc_ptr: 017b1858 | ||
284 | hw_curr_ptr: 017b1858 | ||
285 | 06040000 017b1868 017b1898 c016ff00 | ||
286 | 06040000 017b1878 017b1e9c c016ff00 | ||
287 | 46040000 017b1888 017b24a0 c016ff00 | ||
288 | 06040000 017b1858 017b2aa4 c016ff00 | ||
289 | |||
290 | // All the interfaces using the board: comx1, using the 1,2,...16 timeslots, | ||
291 | // comx2, using timeslot 17, etc. | ||
292 | |||
293 | Interfaces using this board: (channel-group, interface, timeslots) | ||
294 | 0 comx1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ||
295 | 1 comx2: 17 | ||
296 | 2 comx3: 18 | ||
297 | 3 comx4: 19 | ||
298 | 4 comx5: 20 | ||
299 | 5 comx6: 21 | ||
300 | 6 comx7: 22 | ||
301 | 7 comx8: 23 | ||
302 | 8 comx9: 24 | ||
303 | 9 comx10: 25 | ||
304 | 10 comx11: 26 | ||
305 | 11 comx12: 27 | ||
306 | 12 comx13: 28 | ||
307 | 13 comx14: 29 | ||
308 | 14 comx15: 30 | ||
309 | 15 comx16: 31 | ||
310 | |||
311 | // The number of events handled by the driver during an interrupt cycle: | ||
312 | |||
313 | Interrupt work histogram: | ||
314 | hist[ 0]: 0 hist[ 1]: 2 hist[ 2]: 18574 hist[ 3]: 79 | ||
315 | hist[ 4]: 14 hist[ 5]: 1 hist[ 6]: 0 hist[ 7]: 1 | ||
316 | hist[ 8]: 0 hist[ 9]: 7 | ||
317 | |||
318 | // The number of packets to send in the Tx ring, when a new one arrived: | ||
319 | |||
320 | Tx ring histogram: | ||
321 | hist[ 0]: 2329 hist[ 1]: 0 hist[ 2]: 0 hist[ 3]: 0 | ||
322 | |||
323 | // The error counters of the E1 interface, according to the RFC2495, | ||
324 | // (similar to the Cisco "show controllers e1" command's output: | ||
325 | // http://www.cisco.com/univercd/cc/td/doc/product/software/ios11/rbook/rinterfc.htm#xtocid25669126) | ||
326 | |||
327 | Data in current interval (91 seconds elapsed): | ||
328 | 9516 Line Code Violations, 65 Path Code Violations, 2 E-Bit Errors | ||
329 | 0 Slip Secs, 2 Fr Loss Secs, 2 Line Err Secs, 0 Degraded Mins | ||
330 | 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 11 Unavail Secs | ||
331 | Data in Interval 1 (15 minutes): | ||
332 | 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors | ||
333 | 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins | ||
334 | 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs | ||
335 | Data in last 4 intervals (1 hour): | ||
336 | 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors | ||
337 | 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins | ||
338 | 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs | ||
339 | Data in last 96 intervals (24 hours): | ||
340 | 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors | ||
341 | 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins | ||
342 | 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs | ||
343 | |||
344 | ----------------------------------------------------------------- | ||
345 | |||
346 | Some unique options, (may get into the driver later): | ||
347 | Treat them very carefully, these can cause much trouble! | ||
348 | |||
349 | modified CRC-4, for improved interworking of CRC-4 and non-CRC-4 | ||
350 | devices: (see page 107 and g706 Annex B) | ||
351 | lbireg[ 0x1b ] |= 0x08 | ||
352 | lbireg[ 0x1c ] |= 0xc0 | ||
353 | |||
354 | - The NMF - 'No Multiframe alignment Found after 400 msec' alarm | ||
355 | comes into account. | ||
356 | |||
357 | FALC - the line driver chip. | ||
358 | local loop - I hear my transmission back. | ||
359 | remote loop - I echo the remote transmission back. | ||
360 | |||
361 | Something useful for finding errors: | ||
362 | |||
363 | - local loop for timeslot 1 in the FALC chip: | ||
364 | |||
365 | # echo >lbireg 0x1d 0x21 | ||
366 | |||
367 | - Switching the loop off: | ||
368 | |||
369 | # echo >lbireg 0x1d 0x00 | ||
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt index a96e85397eb7..ac1be25c1e25 100644 --- a/Documentation/powerpc/booting-without-of.txt +++ b/Documentation/powerpc/booting-without-of.txt | |||
@@ -52,6 +52,7 @@ Table of Contents | |||
52 | i) Freescale QUICC Engine module (QE) | 52 | i) Freescale QUICC Engine module (QE) |
53 | j) CFI or JEDEC memory-mapped NOR flash | 53 | j) CFI or JEDEC memory-mapped NOR flash |
54 | k) Global Utilities Block | 54 | k) Global Utilities Block |
55 | l) Xilinx IP cores | ||
55 | 56 | ||
56 | VII - Specifying interrupt information for devices | 57 | VII - Specifying interrupt information for devices |
57 | 1) interrupts property | 58 | 1) interrupts property |
@@ -851,12 +852,18 @@ address which can extend beyond that limit. | |||
851 | /cpus/PowerPC,970FX@0 | 852 | /cpus/PowerPC,970FX@0 |
852 | /cpus/PowerPC,970FX@1 | 853 | /cpus/PowerPC,970FX@1 |
853 | (unit addresses do not require leading zeroes) | 854 | (unit addresses do not require leading zeroes) |
854 | - d-cache-line-size : one cell, L1 data cache line size in bytes | 855 | - d-cache-block-size : one cell, L1 data cache block size in bytes (*) |
855 | - i-cache-line-size : one cell, L1 instruction cache line size in | 856 | - i-cache-block-size : one cell, L1 instruction cache block size in |
856 | bytes | 857 | bytes |
857 | - d-cache-size : one cell, size of L1 data cache in bytes | 858 | - d-cache-size : one cell, size of L1 data cache in bytes |
858 | - i-cache-size : one cell, size of L1 instruction cache in bytes | 859 | - i-cache-size : one cell, size of L1 instruction cache in bytes |
859 | 860 | ||
861 | (*) The cache "block" size is the size on which the cache management | ||
862 | instructions operate. Historically, this document used the cache | ||
863 | "line" size here which is incorrect. The kernel will prefer the cache | ||
864 | block size and will fallback to cache line size for backward | ||
865 | compatibility. | ||
866 | |||
860 | Recommended properties: | 867 | Recommended properties: |
861 | 868 | ||
862 | - timebase-frequency : a cell indicating the frequency of the | 869 | - timebase-frequency : a cell indicating the frequency of the |
@@ -870,6 +877,10 @@ address which can extend beyond that limit. | |||
870 | for the above, the common code doesn't use that property, but | 877 | for the above, the common code doesn't use that property, but |
871 | you are welcome to re-use the pSeries or Maple one. A future | 878 | you are welcome to re-use the pSeries or Maple one. A future |
872 | kernel version might provide a common function for this. | 879 | kernel version might provide a common function for this. |
880 | - d-cache-line-size : one cell, L1 data cache line size in bytes | ||
881 | if different from the block size | ||
882 | - i-cache-line-size : one cell, L1 instruction cache line size in | ||
883 | bytes if different from the block size | ||
873 | 884 | ||
874 | You are welcome to add any property you find relevant to your board, | 885 | You are welcome to add any property you find relevant to your board, |
875 | like some information about the mechanism used to soft-reset the | 886 | like some information about the mechanism used to soft-reset the |
@@ -2242,6 +2253,266 @@ platforms are moved over to use the flattened-device-tree model. | |||
2242 | available. | 2253 | available. |
2243 | For Axon: 0x0000012a | 2254 | For Axon: 0x0000012a |
2244 | 2255 | ||
2256 | l) Xilinx IP cores | ||
2257 | |||
2258 | The Xilinx EDK toolchain ships with a set of IP cores (devices) for use | ||
2259 | in Xilinx Spartan and Virtex FPGAs. The devices cover the whole range | ||
2260 | of standard device types (network, serial, etc.) and miscellanious | ||
2261 | devices (gpio, LCD, spi, etc). Also, since these devices are | ||
2262 | implemented within the fpga fabric every instance of the device can be | ||
2263 | synthesised with different options that change the behaviour. | ||
2264 | |||
2265 | Each IP-core has a set of parameters which the FPGA designer can use to | ||
2266 | control how the core is synthesized. Historically, the EDK tool would | ||
2267 | extract the device parameters relevant to device drivers and copy them | ||
2268 | into an 'xparameters.h' in the form of #define symbols. This tells the | ||
2269 | device drivers how the IP cores are configured, but it requres the kernel | ||
2270 | to be recompiled every time the FPGA bitstream is resynthesized. | ||
2271 | |||
2272 | The new approach is to export the parameters into the device tree and | ||
2273 | generate a new device tree each time the FPGA bitstream changes. The | ||
2274 | parameters which used to be exported as #defines will now become | ||
2275 | properties of the device node. In general, device nodes for IP-cores | ||
2276 | will take the following form: | ||
2277 | |||
2278 | (name)@(base-address) { | ||
2279 | compatible = "xlnx,(ip-core-name)-(HW_VER)" | ||
2280 | [, (list of compatible devices), ...]; | ||
2281 | reg = <(baseaddr) (size)>; | ||
2282 | interrupt-parent = <&interrupt-controller-phandle>; | ||
2283 | interrupts = < ... >; | ||
2284 | xlnx,(parameter1) = "(string-value)"; | ||
2285 | xlnx,(parameter2) = <(int-value)>; | ||
2286 | }; | ||
2287 | |||
2288 | (ip-core-name): the name of the ip block (given after the BEGIN | ||
2289 | directive in system.mhs). Should be in lowercase | ||
2290 | and all underscores '_' converted to dashes '-'. | ||
2291 | (name): is derived from the "PARAMETER INSTANCE" value. | ||
2292 | (parameter#): C_* parameters from system.mhs. The C_ prefix is | ||
2293 | dropped from the parameter name, the name is converted | ||
2294 | to lowercase and all underscore '_' characters are | ||
2295 | converted to dashes '-'. | ||
2296 | (baseaddr): the C_BASEADDR parameter. | ||
2297 | (HW_VER): from the HW_VER parameter. | ||
2298 | (size): equals C_HIGHADDR - C_BASEADDR + 1 | ||
2299 | |||
2300 | Typically, the compatible list will include the exact IP core version | ||
2301 | followed by an older IP core version which implements the same | ||
2302 | interface or any other device with the same interface. | ||
2303 | |||
2304 | 'reg', 'interrupt-parent' and 'interrupts' are all optional properties. | ||
2305 | |||
2306 | For example, the following block from system.mhs: | ||
2307 | |||
2308 | BEGIN opb_uartlite | ||
2309 | PARAMETER INSTANCE = opb_uartlite_0 | ||
2310 | PARAMETER HW_VER = 1.00.b | ||
2311 | PARAMETER C_BAUDRATE = 115200 | ||
2312 | PARAMETER C_DATA_BITS = 8 | ||
2313 | PARAMETER C_ODD_PARITY = 0 | ||
2314 | PARAMETER C_USE_PARITY = 0 | ||
2315 | PARAMETER C_CLK_FREQ = 50000000 | ||
2316 | PARAMETER C_BASEADDR = 0xEC100000 | ||
2317 | PARAMETER C_HIGHADDR = 0xEC10FFFF | ||
2318 | BUS_INTERFACE SOPB = opb_7 | ||
2319 | PORT OPB_Clk = CLK_50MHz | ||
2320 | PORT Interrupt = opb_uartlite_0_Interrupt | ||
2321 | PORT RX = opb_uartlite_0_RX | ||
2322 | PORT TX = opb_uartlite_0_TX | ||
2323 | PORT OPB_Rst = sys_bus_reset_0 | ||
2324 | END | ||
2325 | |||
2326 | becomes the following device tree node: | ||
2327 | |||
2328 | opb-uartlite-0@ec100000 { | ||
2329 | device_type = "serial"; | ||
2330 | compatible = "xlnx,opb-uartlite-1.00.b"; | ||
2331 | reg = <ec100000 10000>; | ||
2332 | interrupt-parent = <&opb-intc>; | ||
2333 | interrupts = <1 0>; // got this from the opb_intc parameters | ||
2334 | current-speed = <d#115200>; // standard serial device prop | ||
2335 | clock-frequency = <d#50000000>; // standard serial device prop | ||
2336 | xlnx,data-bits = <8>; | ||
2337 | xlnx,odd-parity = <0>; | ||
2338 | xlnx,use-parity = <0>; | ||
2339 | }; | ||
2340 | |||
2341 | Some IP cores actually implement 2 or more logical devices. In this case, | ||
2342 | the device should still describe the whole IP core with a single node | ||
2343 | and add a child node for each logical device. The ranges property can | ||
2344 | be used to translate from parent IP-core to the registers of each device. | ||
2345 | (Note: this makes the assumption that both logical devices have the same | ||
2346 | bus binding. If this is not true, then separate nodes should be used for | ||
2347 | each logical device). The 'cell-index' property can be used to enumerate | ||
2348 | logical devices within an IP core. For example, the following is the | ||
2349 | system.mhs entry for the dual ps2 controller found on the ml403 reference | ||
2350 | design. | ||
2351 | |||
2352 | BEGIN opb_ps2_dual_ref | ||
2353 | PARAMETER INSTANCE = opb_ps2_dual_ref_0 | ||
2354 | PARAMETER HW_VER = 1.00.a | ||
2355 | PARAMETER C_BASEADDR = 0xA9000000 | ||
2356 | PARAMETER C_HIGHADDR = 0xA9001FFF | ||
2357 | BUS_INTERFACE SOPB = opb_v20_0 | ||
2358 | PORT Sys_Intr1 = ps2_1_intr | ||
2359 | PORT Sys_Intr2 = ps2_2_intr | ||
2360 | PORT Clkin1 = ps2_clk_rx_1 | ||
2361 | PORT Clkin2 = ps2_clk_rx_2 | ||
2362 | PORT Clkpd1 = ps2_clk_tx_1 | ||
2363 | PORT Clkpd2 = ps2_clk_tx_2 | ||
2364 | PORT Rx1 = ps2_d_rx_1 | ||
2365 | PORT Rx2 = ps2_d_rx_2 | ||
2366 | PORT Txpd1 = ps2_d_tx_1 | ||
2367 | PORT Txpd2 = ps2_d_tx_2 | ||
2368 | END | ||
2369 | |||
2370 | It would result in the following device tree nodes: | ||
2371 | |||
2372 | opb_ps2_dual_ref_0@a9000000 { | ||
2373 | ranges = <0 a9000000 2000>; | ||
2374 | // If this device had extra parameters, then they would | ||
2375 | // go here. | ||
2376 | ps2@0 { | ||
2377 | compatible = "xlnx,opb-ps2-dual-ref-1.00.a"; | ||
2378 | reg = <0 40>; | ||
2379 | interrupt-parent = <&opb-intc>; | ||
2380 | interrupts = <3 0>; | ||
2381 | cell-index = <0>; | ||
2382 | }; | ||
2383 | ps2@1000 { | ||
2384 | compatible = "xlnx,opb-ps2-dual-ref-1.00.a"; | ||
2385 | reg = <1000 40>; | ||
2386 | interrupt-parent = <&opb-intc>; | ||
2387 | interrupts = <3 0>; | ||
2388 | cell-index = <0>; | ||
2389 | }; | ||
2390 | }; | ||
2391 | |||
2392 | Also, the system.mhs file defines bus attachments from the processor | ||
2393 | to the devices. The device tree structure should reflect the bus | ||
2394 | attachments. Again an example; this system.mhs fragment: | ||
2395 | |||
2396 | BEGIN ppc405_virtex4 | ||
2397 | PARAMETER INSTANCE = ppc405_0 | ||
2398 | PARAMETER HW_VER = 1.01.a | ||
2399 | BUS_INTERFACE DPLB = plb_v34_0 | ||
2400 | BUS_INTERFACE IPLB = plb_v34_0 | ||
2401 | END | ||
2402 | |||
2403 | BEGIN opb_intc | ||
2404 | PARAMETER INSTANCE = opb_intc_0 | ||
2405 | PARAMETER HW_VER = 1.00.c | ||
2406 | PARAMETER C_BASEADDR = 0xD1000FC0 | ||
2407 | PARAMETER C_HIGHADDR = 0xD1000FDF | ||
2408 | BUS_INTERFACE SOPB = opb_v20_0 | ||
2409 | END | ||
2410 | |||
2411 | BEGIN opb_uart16550 | ||
2412 | PARAMETER INSTANCE = opb_uart16550_0 | ||
2413 | PARAMETER HW_VER = 1.00.d | ||
2414 | PARAMETER C_BASEADDR = 0xa0000000 | ||
2415 | PARAMETER C_HIGHADDR = 0xa0001FFF | ||
2416 | BUS_INTERFACE SOPB = opb_v20_0 | ||
2417 | END | ||
2418 | |||
2419 | BEGIN plb_v34 | ||
2420 | PARAMETER INSTANCE = plb_v34_0 | ||
2421 | PARAMETER HW_VER = 1.02.a | ||
2422 | END | ||
2423 | |||
2424 | BEGIN plb_bram_if_cntlr | ||
2425 | PARAMETER INSTANCE = plb_bram_if_cntlr_0 | ||
2426 | PARAMETER HW_VER = 1.00.b | ||
2427 | PARAMETER C_BASEADDR = 0xFFFF0000 | ||
2428 | PARAMETER C_HIGHADDR = 0xFFFFFFFF | ||
2429 | BUS_INTERFACE SPLB = plb_v34_0 | ||
2430 | END | ||
2431 | |||
2432 | BEGIN plb2opb_bridge | ||
2433 | PARAMETER INSTANCE = plb2opb_bridge_0 | ||
2434 | PARAMETER HW_VER = 1.01.a | ||
2435 | PARAMETER C_RNG0_BASEADDR = 0x20000000 | ||
2436 | PARAMETER C_RNG0_HIGHADDR = 0x3FFFFFFF | ||
2437 | PARAMETER C_RNG1_BASEADDR = 0x60000000 | ||
2438 | PARAMETER C_RNG1_HIGHADDR = 0x7FFFFFFF | ||
2439 | PARAMETER C_RNG2_BASEADDR = 0x80000000 | ||
2440 | PARAMETER C_RNG2_HIGHADDR = 0xBFFFFFFF | ||
2441 | PARAMETER C_RNG3_BASEADDR = 0xC0000000 | ||
2442 | PARAMETER C_RNG3_HIGHADDR = 0xDFFFFFFF | ||
2443 | BUS_INTERFACE SPLB = plb_v34_0 | ||
2444 | BUS_INTERFACE MOPB = opb_v20_0 | ||
2445 | END | ||
2446 | |||
2447 | Gives this device tree (some properties removed for clarity): | ||
2448 | |||
2449 | plb-v34-0 { | ||
2450 | #address-cells = <1>; | ||
2451 | #size-cells = <1>; | ||
2452 | device_type = "ibm,plb"; | ||
2453 | ranges; // 1:1 translation | ||
2454 | |||
2455 | plb-bram-if-cntrl-0@ffff0000 { | ||
2456 | reg = <ffff0000 10000>; | ||
2457 | } | ||
2458 | |||
2459 | opb-v20-0 { | ||
2460 | #address-cells = <1>; | ||
2461 | #size-cells = <1>; | ||
2462 | ranges = <20000000 20000000 20000000 | ||
2463 | 60000000 60000000 20000000 | ||
2464 | 80000000 80000000 40000000 | ||
2465 | c0000000 c0000000 20000000>; | ||
2466 | |||
2467 | opb-uart16550-0@a0000000 { | ||
2468 | reg = <a00000000 2000>; | ||
2469 | }; | ||
2470 | |||
2471 | opb-intc-0@d1000fc0 { | ||
2472 | reg = <d1000fc0 20>; | ||
2473 | }; | ||
2474 | }; | ||
2475 | }; | ||
2476 | |||
2477 | That covers the general approach to binding xilinx IP cores into the | ||
2478 | device tree. The following are bindings for specific devices: | ||
2479 | |||
2480 | i) Xilinx ML300 Framebuffer | ||
2481 | |||
2482 | Simple framebuffer device from the ML300 reference design (also on the | ||
2483 | ML403 reference design as well as others). | ||
2484 | |||
2485 | Optional properties: | ||
2486 | - resolution = <xres yres> : pixel resolution of framebuffer. Some | ||
2487 | implementations use a different resolution. | ||
2488 | Default is <d#640 d#480> | ||
2489 | - virt-resolution = <xvirt yvirt> : Size of framebuffer in memory. | ||
2490 | Default is <d#1024 d#480>. | ||
2491 | - rotate-display (empty) : rotate display 180 degrees. | ||
2492 | |||
2493 | ii) Xilinx SystemACE | ||
2494 | |||
2495 | The Xilinx SystemACE device is used to program FPGAs from an FPGA | ||
2496 | bitstream stored on a CF card. It can also be used as a generic CF | ||
2497 | interface device. | ||
2498 | |||
2499 | Optional properties: | ||
2500 | - 8-bit (empty) : Set this property for SystemACE in 8 bit mode | ||
2501 | |||
2502 | iii) Xilinx EMAC and Xilinx TEMAC | ||
2503 | |||
2504 | Xilinx Ethernet devices. In addition to general xilinx properties | ||
2505 | listed above, nodes for these devices should include a phy-handle | ||
2506 | property, and may include other common network device properties | ||
2507 | like local-mac-address. | ||
2508 | |||
2509 | iv) Xilinx Uartlite | ||
2510 | |||
2511 | Xilinx uartlite devices are simple fixed speed serial ports. | ||
2512 | |||
2513 | Requred properties: | ||
2514 | - current-speed : Baud rate of uartlite | ||
2515 | |||
2245 | More devices will be defined as this spec matures. | 2516 | More devices will be defined as this spec matures. |
2246 | 2517 | ||
2247 | VII - Specifying interrupt information for devices | 2518 | VII - Specifying interrupt information for devices |