1(C)Copyright 1999-2003 Marvell(R). 2All rights reserved 3=========================================================================== 4 5sk98lin.txt created 15-Dec-2003 6 7Readme File for sk98lin v6.21 8Marvell Yukon/SysKonnect SK-98xx Gigabit Ethernet Adapter family driver for LINUX 9 10This file contains 11 1 Overview 12 2 Required Files 13 3 Installation 14 3.1 Driver Installation 15 3.2 Inclusion of adapter at system start 16 4 Driver Parameters 17 4.1 Per-Port Parameters 18 4.2 Adapter Parameters 19 5 Large Frame Support 20 6 VLAN and Link Aggregation Support (IEEE 802.1, 802.1q, 802.3ad) 21 7 Troubleshooting 22 23=========================================================================== 24 25 261 Overview 27=========== 28 29The sk98lin driver supports the Marvell Yukon and SysKonnect 30SK-98xx/SK-95xx compliant Gigabit Ethernet Adapter on Linux. It has 31been tested with Linux on Intel/x86 machines. 32*** 33 34 352 Required Files 36================= 37 38The linux kernel source. 39No additional files required. 40*** 41 42 433 Installation 44=============== 45 46It is recommended to download the latest version of the driver from the 47SysKonnect web site www.syskonnect.com. If you have downloaded the latest 48driver, the Linux kernel has to be patched before the driver can be 49installed. For details on how to patch a Linux kernel, refer to the 50patch.txt file. 51 523.1 Driver Installation 53------------------------ 54 55The following steps describe the actions that are required to install 56the driver and to start it manually. These steps should be carried 57out for the initial driver setup. Once confirmed to be ok, they can 58be included in the system start. 59 60NOTE 1: To perform the following tasks you need 'root' access. 61 62NOTE 2: In case of problems, please read the section "Troubleshooting" 63 below. 64 65The driver can either be integrated into the kernel or it can be compiled 66as a module. Select the appropriate option during the kernel 67configuration. 68 69Compile/use the driver as a module 70---------------------------------- 71To compile the driver, go to the directory /usr/src/linux and 72execute the command "make menuconfig" or "make xconfig" and proceed as 73follows: 74 75To integrate the driver permanently into the kernel, proceed as follows: 76 771. Select the menu "Network device support" and then "Ethernet(1000Mbit)" 782. Mark "Marvell Yukon Chipset / SysKonnect SK-98xx family support" 79 with (*) 803. Build a new kernel when the configuration of the above options is 81 finished. 824. Install the new kernel. 835. Reboot your system. 84 85To use the driver as a module, proceed as follows: 86 871. Enable 'loadable module support' in the kernel. 882. For automatic driver start, enable the 'Kernel module loader'. 893. Select the menu "Network device support" and then "Ethernet(1000Mbit)" 904. Mark "Marvell Yukon Chipset / SysKonnect SK-98xx family support" 91 with (M) 925. Execute the command "make modules". 936. Execute the command "make modules_install". 94 The appropiate modules will be installed. 957. Reboot your system. 96 97 98Load the module manually 99------------------------ 100To load the module manually, proceed as follows: 101 1021. Enter "modprobe sk98lin". 1032. If a Marvell Yukon or SysKonnect SK-98xx adapter is installed in 104 your computer and you have a /proc file system, execute the command: 105 "ls /proc/net/sk98lin/" 106 This should produce an output containing a line with the following 107 format: 108 eth0 eth1 ... 109 which indicates that your adapter has been found and initialized. 110 111 NOTE 1: If you have more than one Marvell Yukon or SysKonnect SK-98xx 112 adapter installed, the adapters will be listed as 'eth0', 113 'eth1', 'eth2', etc. 114 For each adapter, repeat steps 3 and 4 below. 115 116 NOTE 2: If you have other Ethernet adapters installed, your Marvell 117 Yukon or SysKonnect SK-98xx adapter will be mapped to the 118 next available number, e.g. 'eth1'. The mapping is executed 119 automatically. 120 The module installation message (displayed either in a system 121 log file or on the console) prints a line for each adapter 122 found containing the corresponding 'ethX'. 123 1243. Select an IP address and assign it to the respective adapter by 125 entering: 126 ifconfig eth0 <ip-address> 127 With this command, the adapter is connected to the Ethernet. 128 129 SK-98xx Gigabit Ethernet Server Adapters: The yellow LED on the adapter 130 is now active, the link status LED of the primary port is active and 131 the link status LED of the secondary port (on dual port adapters) is 132 blinking (if the ports are connected to a switch or hub). 133 SK-98xx V2.0 Gigabit Ethernet Adapters: The link status LED is active. 134 In addition, you will receive a status message on the console stating 135 "ethX: network connection up using port Y" and showing the selected 136 connection parameters (x stands for the ethernet device number 137 (0,1,2, etc), y stands for the port name (A or B)). 138 139 NOTE: If you are in doubt about IP addresses, ask your network 140 administrator for assistance. 141 1424. Your adapter should now be fully operational. 143 Use 'ping <otherstation>' to verify the connection to other computers 144 on your network. 1455. To check the adapter configuration view /proc/net/sk98lin/[devicename]. 146 For example by executing: 147 "cat /proc/net/sk98lin/eth0" 148 149Unload the module 150----------------- 151To stop and unload the driver modules, proceed as follows: 152 1531. Execute the command "ifconfig eth0 down". 1542. Execute the command "rmmod sk98lin". 155 1563.2 Inclusion of adapter at system start 157----------------------------------------- 158 159Since a large number of different Linux distributions are 160available, we are unable to describe a general installation procedure 161for the driver module. 162Because the driver is now integrated in the kernel, installation should 163be easy, using the standard mechanism of your distribution. 164Refer to the distribution's manual for installation of ethernet adapters. 165 166*** 167 1684 Driver Parameters 169==================== 170 171Parameters can be set at the command line after the module has been 172loaded with the command 'modprobe'. 173In some distributions, the configuration tools are able to pass parameters 174to the driver module. 175 176If you use the kernel module loader, you can set driver parameters 177in the file /etc/modules.conf (or old name: /etc/conf.modules). 178To set the driver parameters in this file, proceed as follows: 179 1801. Insert a line of the form : 181 options sk98lin ... 182 For "...", the same syntax is required as described for the command 183 line paramaters of modprobe below. 1842. To activate the new parameters, either reboot your computer 185 or 186 unload and reload the driver. 187 The syntax of the driver parameters is: 188 189 modprobe sk98lin parameter=value1[,value2[,value3...]] 190 191 where value1 refers to the first adapter, value2 to the second etc. 192 193NOTE: All parameters are case sensitive. Write them exactly as shown 194 below. 195 196Example: 197Suppose you have two adapters. You want to set auto-negotiation 198on the first adapter to ON and on the second adapter to OFF. 199You also want to set DuplexCapabilities on the first adapter 200to FULL, and on the second adapter to HALF. 201Then, you must enter: 202 203 modprobe sk98lin AutoNeg_A=On,Off DupCap_A=Full,Half 204 205NOTE: The number of adapters that can be configured this way is 206 limited in the driver (file skge.c, constant SK_MAX_CARD_PARAM). 207 The current limit is 16. If you happen to install 208 more adapters, adjust this and recompile. 209 210 2114.1 Per-Port Parameters 212------------------------ 213 214These settings are available for each port on the adapter. 215In the following description, '?' stands for the port for 216which you set the parameter (A or B). 217 218Speed 219----- 220Parameter: Speed_? 221Values: 10, 100, 1000, Auto 222Default: Auto 223 224This parameter is used to set the speed capabilities. It is only valid 225for the SK-98xx V2.0 copper adapters. 226Usually, the speed is negotiated between the two ports during link 227establishment. If this fails, a port can be forced to a specific setting 228with this parameter. 229 230Auto-Negotiation 231---------------- 232Parameter: AutoNeg_? 233Values: On, Off, Sense 234Default: On 235 236The "Sense"-mode automatically detects whether the link partner supports 237auto-negotiation or not. 238 239Duplex Capabilities 240------------------- 241Parameter: DupCap_? 242Values: Half, Full, Both 243Default: Both 244 245This parameters is only relevant if auto-negotiation for this port is 246not set to "Sense". If auto-negotiation is set to "On", all three values 247are possible. If it is set to "Off", only "Full" and "Half" are allowed. 248This parameter is usefull if your link partner does not support all 249possible combinations. 250 251Flow Control 252------------ 253Parameter: FlowCtrl_? 254Values: Sym, SymOrRem, LocSend, None 255Default: SymOrRem 256 257This parameter can be used to set the flow control capabilities the 258port reports during auto-negotiation. It can be set for each port 259individually. 260Possible modes: 261 -- Sym = Symmetric: both link partners are allowed to send 262 PAUSE frames 263 -- SymOrRem = SymmetricOrRemote: both or only remote partner 264 are allowed to send PAUSE frames 265 -- LocSend = LocalSend: only local link partner is allowed 266 to send PAUSE frames 267 -- None = no link partner is allowed to send PAUSE frames 268 269NOTE: This parameter is ignored if auto-negotiation is set to "Off". 270 271Role in Master-Slave-Negotiation (1000Base-T only) 272-------------------------------------------------- 273Parameter: Role_? 274Values: Auto, Master, Slave 275Default: Auto 276 277This parameter is only valid for the SK-9821 and SK-9822 adapters. 278For two 1000Base-T ports to communicate, one must take the role of the 279master (providing timing information), while the other must be the 280slave. Usually, this is negotiated between the two ports during link 281establishment. If this fails, a port can be forced to a specific setting 282with this parameter. 283 284 2854.2 Adapter Parameters 286----------------------- 287 288Connection Type (SK-98xx V2.0 copper adapters only) 289--------------- 290Parameter: ConType 291Values: Auto, 100FD, 100HD, 10FD, 10HD 292Default: Auto 293 294The parameter 'ConType' is a combination of all five per-port parameters 295within one single parameter. This simplifies the configuration of both ports 296of an adapter card! The different values of this variable reflect the most 297meaningful combinations of port parameters. 298 299The following table shows the values of 'ConType' and the corresponding 300combinations of the per-port parameters: 301 302 ConType | DupCap AutoNeg FlowCtrl Role Speed 303 ----------+------------------------------------------------------ 304 Auto | Both On SymOrRem Auto Auto 305 100FD | Full Off None Auto (ignored) 100 306 100HD | Half Off None Auto (ignored) 100 307 10FD | Full Off None Auto (ignored) 10 308 10HD | Half Off None Auto (ignored) 10 309 310Stating any other port parameter together with this 'ConType' variable 311will result in a merged configuration of those settings. This due to 312the fact, that the per-port parameters (e.g. Speed_? ) have a higher 313priority than the combined variable 'ConType'. 314 315NOTE: This parameter is always used on both ports of the adapter card. 316 317Interrupt Moderation 318-------------------- 319Parameter: Moderation 320Values: None, Static, Dynamic 321Default: None 322 323Interrupt moderation is employed to limit the maxmimum number of interrupts 324the driver has to serve. That is, one or more interrupts (which indicate any 325transmit or receive packet to be processed) are queued until the driver 326processes them. When queued interrupts are to be served, is determined by the 327'IntsPerSec' parameter, which is explained later below. 328 329Possible modes: 330 331 -- None - No interrupt moderation is applied on the adapter card. 332 Therefore, each transmit or receive interrupt is served immediately 333 as soon as it appears on the interrupt line of the adapter card. 334 335 -- Static - Interrupt moderation is applied on the adapter card. 336 All transmit and receive interrupts are queued until a complete 337 moderation interval ends. If such a moderation interval ends, all 338 queued interrupts are processed in one big bunch without any delay. 339 The term 'static' reflects the fact, that interrupt moderation is 340 always enabled, regardless how much network load is currently 341 passing via a particular interface. In addition, the duration of 342 the moderation interval has a fixed length that never changes while 343 the driver is operational. 344 345 -- Dynamic - Interrupt moderation might be applied on the adapter card, 346 depending on the load of the system. If the driver detects that the 347 system load is too high, the driver tries to shield the system against 348 too much network load by enabling interrupt moderation. If - at a later 349 time - the CPU utilizaton decreases again (or if the network load is 350 negligible) the interrupt moderation will automatically be disabled. 351 352Interrupt moderation should be used when the driver has to handle one or more 353interfaces with a high network load, which - as a consequence - leads also to a 354high CPU utilization. When moderation is applied in such high network load 355situations, CPU load might be reduced by 20-30%. 356 357NOTE: The drawback of using interrupt moderation is an increase of the round- 358trip-time (RTT), due to the queueing and serving of interrupts at dedicated 359moderation times. 360 361Interrupts per second 362--------------------- 363Parameter: IntsPerSec 364Values: 30...40000 (interrupts per second) 365Default: 2000 366 367This parameter is only used, if either static or dynamic interrupt moderation 368is used on a network adapter card. Using this paramter if no moderation is 369applied, will lead to no action performed. 370 371This parameter determines the length of any interrupt moderation interval. 372Assuming that static interrupt moderation is to be used, an 'IntsPerSec' 373parameter value of 2000 will lead to an interrupt moderation interval of 374500 microseconds. 375 376NOTE: The duration of the moderation interval is to be chosen with care. 377At first glance, selecting a very long duration (e.g. only 100 interrupts per 378second) seems to be meaningful, but the increase of packet-processing delay 379is tremendous. On the other hand, selecting a very short moderation time might 380compensate the use of any moderation being applied. 381 382 383Preferred Port 384-------------- 385Parameter: PrefPort 386Values: A, B 387Default: A 388 389This is used to force the preferred port to A or B (on dual-port network 390adapters). The preferred port is the one that is used if both are detected 391as fully functional. 392 393RLMT Mode (Redundant Link Management Technology) 394------------------------------------------------ 395Parameter: RlmtMode 396Values: CheckLinkState,CheckLocalPort, CheckSeg, DualNet 397Default: CheckLinkState 398 399RLMT monitors the status of the port. If the link of the active port 400fails, RLMT switches immediately to the standby link. The virtual link is 401maintained as long as at least one 'physical' link is up. 402 403Possible modes: 404 405 -- CheckLinkState - Check link state only: RLMT uses the link state 406 reported by the adapter hardware for each individual port to 407 determine whether a port can be used for all network traffic or 408 not. 409 410 -- CheckLocalPort - In this mode, RLMT monitors the network path 411 between the two ports of an adapter by regularly exchanging packets 412 between them. This mode requires a network configuration in which 413 the two ports are able to "see" each other (i.e. there must not be 414 any router between the ports). 415 416 -- CheckSeg - Check local port and segmentation: This mode supports the 417 same functions as the CheckLocalPort mode and additionally checks 418 network segmentation between the ports. Therefore, this mode is only 419 to be used if Gigabit Ethernet switches are installed on the network 420 that have been configured to use the Spanning Tree protocol. 421 422 -- DualNet - In this mode, ports A and B are used as separate devices. 423 If you have a dual port adapter, port A will be configured as eth0 424 and port B as eth1. Both ports can be used independently with 425 distinct IP addresses. The preferred port setting is not used. 426 RLMT is turned off. 427 428NOTE: RLMT modes CLP and CLPSS are designed to operate in configurations 429 where a network path between the ports on one adapter exists. 430 Moreover, they are not designed to work where adapters are connected 431 back-to-back. 432*** 433 434 4355 Large Frame Support 436====================== 437 438The driver supports large frames (also called jumbo frames). Using large 439frames can result in an improved throughput if transferring large amounts 440of data. 441To enable large frames, set the MTU (maximum transfer unit) of the 442interface to the desired value (up to 9000), execute the following 443command: 444 ifconfig eth0 mtu 9000 445This will only work if you have two adapters connected back-to-back 446or if you use a switch that supports large frames. When using a switch, 447it should be configured to allow large frames and auto-negotiation should 448be set to OFF. The setting must be configured on all adapters that can be 449reached by the large frames. If one adapter is not set to receive large 450frames, it will simply drop them. 451 452You can switch back to the standard ethernet frame size by executing the 453following command: 454 ifconfig eth0 mtu 1500 455 456To permanently configure this setting, add a script with the 'ifconfig' 457line to the system startup sequence (named something like "S99sk98lin" 458in /etc/rc.d/rc2.d). 459*** 460 461 4626 VLAN and Link Aggregation Support (IEEE 802.1, 802.1q, 802.3ad) 463================================================================== 464 465The Marvell Yukon/SysKonnect Linux drivers are able to support VLAN and 466Link Aggregation according to IEEE standards 802.1, 802.1q, and 802.3ad. 467These features are only available after installation of open source 468modules available on the Internet: 469For VLAN go to: http://www.candelatech.com/~greear/vlan.html 470For Link Aggregation go to: http://www.st.rim.or.jp/~yumo 471 472NOTE: SysKonnect GmbH does not offer any support for these open source 473 modules and does not take the responsibility for any kind of 474 failures or problems arising in connection with these modules. 475 476NOTE: Configuring Link Aggregation on a SysKonnect dual link adapter may 477 cause problems when unloading the driver. 478 479 4807 Troubleshooting 481================== 482 483If any problems occur during the installation process, check the 484following list: 485 486 487Problem: The SK-98xx adapter can not be found by the driver. 488Solution: In /proc/pci search for the following entry: 489 'Ethernet controller: SysKonnect SK-98xx ...' 490 If this entry exists, the SK-98xx or SK-98xx V2.0 adapter has 491 been found by the system and should be operational. 492 If this entry does not exist or if the file '/proc/pci' is not 493 found, there may be a hardware problem or the PCI support may 494 not be enabled in your kernel. 495 The adapter can be checked using the diagnostics program which 496 is available on the SysKonnect web site: 497 www.syskonnect.com 498 499 Some COMPAQ machines have problems dealing with PCI under Linux. 500 Linux. This problem is described in the 'PCI howto' document 501 (included in some distributions or available from the 502 web, e.g. at 'www.linux.org'). 503 504 505Problem: Programs such as 'ifconfig' or 'route' can not be found or the 506 error message 'Operation not permitted' is displayed. 507Reason: You are not logged in as user 'root'. 508Solution: Logout and login as 'root' or change to 'root' via 'su'. 509 510 511Problem: Upon use of the command 'ping <address>' the message 512 "ping: sendto: Network is unreachable" is displayed. 513Reason: Your route is not set correctly. 514Solution: If you are using RedHat, you probably forgot to set up the 515 route in the 'network configuration'. 516 Check the existing routes with the 'route' command and check 517 if an entry for 'eth0' exists, and if so, if it is set correctly. 518 519 520Problem: The driver can be started, the adapter is connected to the 521 network, but you cannot receive or transmit any packets; 522 e.g. 'ping' does not work. 523Reason: There is an incorrect route in your routing table. 524Solution: Check the routing table with the command 'route' and read the 525 manual help pages dealing with routes (enter 'man route'). 526 527NOTE: Although the 2.2.x kernel versions generate the routing entry 528 automatically, problems of this kind may occur here as well. We've 529 come across a situation in which the driver started correctly at 530 system start, but after the driver has been removed and reloaded, 531 the route of the adapter's network pointed to the 'dummy0'device 532 and had to be corrected manually. 533 534 535Problem: Your computer should act as a router between multiple 536 IP subnetworks (using multiple adapters), but computers in 537 other subnetworks cannot be reached. 538Reason: Either the router's kernel is not configured for IP forwarding 539 or the routing table and gateway configuration of at least one 540 computer is not working. 541 542Problem: Upon driver start, the following error message is displayed: 543 "eth0: -- ERROR -- 544 Class: internal Software error 545 Nr: 0xcc 546 Msg: SkGeInitPort() cannot init running ports" 547Reason: You are using a driver compiled for single processor machines 548 on a multiprocessor machine with SMP (Symmetric MultiProcessor) 549 kernel. 550Solution: Configure your kernel appropriately and recompile the kernel or 551 the modules. 552 553 554 555If your problem is not listed here, please contact SysKonnect's technical 556support for help (linux@syskonnect.de). 557When contacting our technical support, please ensure that the following 558information is available: 559- System Manufacturer and HW Informations (CPU, Memory... ) 560- PCI-Boards in your system 561- Distribution 562- Kernel version 563- Driver version 564*** 565 566 567 568***End of Readme File*** 569