User`s guide

3 Porting a BSP to Custom Hardware
3.3 Finalizing Your BSP
101
3
Media Access Controller (MAC) Address for Ethernet Devices
Most modern Ethernet devices require the hardware address (MAC address) to be
specified externally from the Ethernet controller chip. For peripheral boards, such
as PCI network cards, the MAC address is supplied in ROM on the board and
configured into the Ethernet controller during board power-up.
However, for processor boards with on-board Ethernet interfaces, the MAC
address typically must be set by software.In most cases, the board is designed so
that either three or six octets of non-volatile memory (ROM or flash) are reserved
for the MAC address. The MAC address is read from ROM and programmed into
the Ethernet device. If six octets are stored in ROM, they are used as the MAC
address. Otherwise, the manufacturer’s organizationally unique identifier (OUI) is
used for the first three octets, and the value in ROM is used for the last three octets.
However, this mechanism is not supported on all boards or by all BSPs. Instead,
some boards and BSPs use a constant for the MAC address. In this situation, only
one board of a given type can be used on a given subnet. If multiple boards are
used, the resulting address conflicts can disrupt systems on the entire subnet. To
avoid this issue in your BSP, set the lower three octets of the MAC address to the
lower three octets of the device’s IP address.
Other Devices
Similar to the Ethernet END driver load routines described in Adding Ethernet
Devices, p.99, support routines required by drivers are considered optional to the
BSP. The following list is a small sample of some of the other types of device
initialization routines that can be included in a BSP:
There may also be custom hardware that must be supported in order for the BSP
to be useful. The custom hardware support you require may not be provided in the
reference BSP and may not be similar to other device support provided by Wind
River. If this is the case, you must design the interface between the driver and the
BSP.
sysAtaInit( ) initializes the EIDE/ATA interface
sysIbcInit( ) initializes the ISA Bridge Controller (IBC)
sysL2CacheInit( ) initializes the L2 cache
sysScsiInit( ) initializes an on-board SCSI port
sysTffsInit( ) performs board level initialization for TrueFFS