📄 readme.txt
字号:
CIRRUS LAN(tm) CS8900 VxWORKS MUX-Based ENHANCED NETWORK DRIVER (END)
===============================================================================
This readme file describes how to install and configure the VxWorks enhanced
network driver, version 3.04a, for the Cirrus Logic CS8900 Ethernet
controller chip.
0.0 TABLE OF CONTENTS
=====================
1.0 DRIVER OVERVIEW
2.0 INSTALLATION
3.0 CONFIGURATION
4.0 DISPLAYING DRIVER STATISTICS and CONFIGURATION
5.0 PORTING TO A NEW BSP
6.0 CONTACTING Cirrus' TECHNICAL SUPPORT
1.0 DRIVER OVERVIEW
=======================
The version 3.04a Cirrus LAN(tm) CS8900 MUX-based END Driver for VxWorks
provides a high performance interface between the CS8900 Ethernet Controller and
the VxWorks network communication protocols. This driver has been tested on
Intel [3|4|5]86-based ISA systems and on an IDT R3041 (MIPS) based system.
However, the driver's organization facilitates porting to new BSPs.
The driver is organized in three source file modules: csEnd.c, csEnd.h, and
csSysEnd.c. The csEnd.c and csEnd.h provide BSP-independent routines and
definitions while the csSysEnd.c module consists of BSP-dependent routines.
Porting the driver to a new BSP requires modification of only the csSysEnd.c
module.
The current version of the driver is distributed with the csSysEnd.c module for
the x386-based ISA BSP. This module can be used for ISA systems as is or
used as an example for porting the driver to other VxWorks BSPs.
1. Features
-----------
* High Performance
* Supports "Early TX" feature of CS8900
* Automatic retransmission on TX underruns
* Local TX queue permits start of next TX immediately after completion of
previous TX (no ISR/Task level context switch required)
* Local RX frame queue minimizes missed frames
* Supports loaning of local RX buffers to upper-layer protocols
* Run-time configuration from NVRAM or compile-time configuration supported
(no NVRAM required)
* IO space or memory space models supported
* Support END features: multicasting, polled-mode Ethernet, multi-network
protocols, and promiscuous mode.
2. Limitations
--------------
* Auto detection of media type is not supported. A single media type must be
specified at compile time.
* Driver supports only one CS8900 per system.
3. Known Defects
----------------
No known defects.
4. System Requirements
----------------------
This driver has been designed to build and run using the following software
components:
Tornado Version 1.0.1 (or greater)
VxWorks Version 5.3.1 (or greater)
GNU Toolkit Version 2.7 (or greater)
2.0 INSTALLATION
================
The following installation procedure installs and builds the Cirrus
Logic CS8900 ver. 3.04a network interface driver. If the boot image
is loaded through network via FTP, the VxWorks operating system startup code
automatically attaches and initializes the CS8900 network interface driver and
bind IP to it.
1. Copy the source files
------------------------
The CS8900 network interface driver consists of three source files:
csEnd.c -- BSP-independent driver routines
csEnd.h -- Header file: CS8900 driver and register defines
csSysEnd.c -- BSP-specific driver routines
Copy all three files to BSP directory (e.g. c:\tornado\target\config\pc486).
2. Modify the configuration files
---------------------------------
The configNet.h and config.h files in the BSP directory needs to be modified.
2.1 Modify the configNet.h file
--------------------------------
Comment out or delete the lines related to FEI82557 or other END drivers in the
configNet.h file in the BSP directory.
Add the following lines to the configNet.h file in the BSP directory:
/* Parameters for loading the CS8900 Ethernet driver
*
* The initialization string format for LOAD_STRING is:
* "0xIOAddr:0xIntLevel:0xMemAddr:MediaType:0xConfigFlags"
*
* where MediaType includes:
* MEDIA_AUI 1
* MEDIA_10BASE2 2
* MEDIA_10BASET 3
*/
#define CS_LOAD_FUNC csEndLoad
#define CS_LOAD_STRING "0x300:0xa:0x0:3:0x0"
IMPORT END_OBJ* CS_LOAD_FUNC(char*, void*);
END_TBL_ENTRY endDevTbl [] =
{
{ 0, CS_LOAD_FUNC, CS_LOAD_STRING, 1, NULL, FALSE},
{ 0, END_TBL_END, NULL, 0, NULL, FALSE},
};
The initialization string specified here are an example configuration typical
for an x86 ISA-based system. Change the initialization string as appropriate
for your BSP. See the section on Configuration for more information.
2.2 Modify the config.h file
--------------------------------
If you want to boot the VxWorks operating system image over the LAN, then
modify the boot device in the DEFAULT_BOOT_LINE definition to be "cs". The
DEFAULT_BOOT_LINE definition should look similar to:
#define DEFAULT_BOOT_LINE \
"cs(0,0)host:/pc486/vxWorks h=90.0.0.1 e=90.0.0.2 u=userName pw=password"
If you want to boot the VxWorks operating system image from the local disk and
bind IP to CS8900, the DEFAULT_BOOT_LINE definition should look similar to:
#define STANDALONE_NET
#define DEFAULT_BOOT_LINE \
"fd=0,0(0,0)host:/fd0/vxWorks h=90.0.0.1 e=90.0.0.2 u=userName o=cs"
where
h = IP address of host (machine where VxWorks image resides)
e = IP address of target
u = ftp account user name on the host
pw = ftp account password on the host
o = other options
"cs" is the name of the CS8900 device.
Since the CS8900 driver is an Enhanced Network Driver(END), make sure
INCLUDE_END is defined in the config.h file to enable the END functions.
Comment out the definition for the Intel's FEI network drivers if you don't
need the FEI devices.
/* Optional Ethernet devices */
#define INCLUDE_END /* Enhanced Network Driver see configNet.h */
#define END_OVERRIDE /* define if you are using old boot ROMs. */
/*#ifdef INCLUDE_END*/
/*#define INCLUDE_FEI*/ /* include Intel Ether Express PRO100B PCI */
/*#define INCLUDE_FEI_END */ /* END-style Intel Ether Express PRO100B PCI */
/*#define INCLUDE_PCI*/ /* include PCI bus library */
/*#else*/
/*#define INCLUDE_FEI*/ /* include Intel Ether Express PRO100B PCI */
/*#endif *//* INCLUDE_END */
3. Modify the Makefile
----------------------
You must modify the Makefile in the BSP directory. Add the csEnd.o object file
to the MACH_EXTRA variable:
MACH_EXTRA = csEnd.o
This line causes the linker to include the CS8900 network interface driver
object file, csEnd.o, in the VxWorks (or bootrom_uncmp) image. Make sure that
the file name of csEnd.c has the same upper or lower cases as csEnd.o defined
in MACH_EXTRA.
4. Build the Network Interface Driver
-------------------------------------
Add a dependency for the CS8900 network interface driver into the
dependency file for the BSP. You can do this by "cleaning" the BSP directory
and then making VxWorks. Change to the BSP directory on the host and issue the
following two commands:
make clean
make VxWorks
The first command deletes the dependency file, along with other files. The
second command makes the VxWorks image. While making the VxWorks image, the
make utility notices that the dependency file is missing and regenerates it.
The regenerated dependency file includes a dependency for the CS8900 network
interface driver, because the csEnd.c file is sitting in the BSP directory.
To make a boot diskette for an x86 ISA-based system, place a diskette in drive
A: and issuing the following two commands:
make bootrom_uncmp
mkboot a: bootrom_uncmp
3.0 CONFIGURATION
=================
The CS8900 enhanced network driver is configured via definitions in the
"configNet.h" and "csSysEnd.c" files. In addition, the driver can take
configuration information from non-volatile storage such as an EEPROM attached
to the CS8900 or from system ROM. (Refer to the CS8900 Technical Reference
Manual for the format required for configuration data stored in EEPROM.)
Parameters in "configNet.h"
-----------------------
The following definitions are used to configure the CS8900 and specify its
hardware interface to the driver and operating system:
/* Parameters for loading the CS8900 Ethernet driver
*
* The initialization string format for LOAD_STRING is:
* "0xIOAdr:0xIntLevel:0xMemAddr:MediaType:0xConfigFlags"
*
* where MediaType includes:
* MEDIA_AUI 1
* MEDIA_10BASE2 2
* MEDIA_10BASET 3
*/
#define CS_LOAD_FUNC csEndLoad
#define CS_LOAD_STRING "0x300:0xa:0x0:3:0x0"
IMPORT END_OBJ* CS_LOAD_FUNC(char*, void*);
END_TBL_ENTRY endDevTbl [] =
{
{ 0, CS_LOAD_FUNC, CS_LOAD_STRING, 1, NULL, FALSE},
{ 0, END_TBL_END, NULL, 0, NULL, FALSE},
};
CS_LOAD_FUNC Name of CS8900 driver's "Load" routine.
This value should always be "csEndLoad" (without quotes).
CS_LOAD_STRING The initialization string passed into csEndLoad() when the
CS8900 driver is loaded. The initialization string format for
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -