dm642init.c
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:3k
- //--------------------------------------------------------------------------
- // IP Stack Client Demo
- //--------------------------------------------------------------------------
- // dm642init.c
- //
- // Private initialization functions for EVMDM642
- //
- // Author: Michael A. Denio
- // Copyright 2003 by Texas Instruments Inc.
- //--------------------------------------------------------------------------
- #include <stdio.h>
- #include "netmain.h" /*change*/
- #include <std.h>
- #include <fvid.h>
- #include <csl_dat.h>
- #include <csl_cache.h>
- #include <tsk.h>
- #include <evmdm642.h>
- #include <evmdm642_led.h>
- #include <evmdm642_eeprom.h>
- // New CSL Functions in csl_mdio.c
- CSLAPI uint MDIO_phyRegWrite( uint phyIdx, uint phyReg, Uint16 data );
- CSLAPI uint MDIO_phyRegRead( uint, uint, UINT16 * );
- extern int StackTest();
- // This string array corresponds to link state as define in csl_mdio.h
- static char *LinkStr[] = { "No Link",
- "10Mb/s Half Duplex",
- "10Mb/s Full Duplex",
- "100Mb/s Half Duplex",
- "100Mb/s Full Duplex" };
- static UINT8 bMacAddr[8];
- void dm642_init()
- {
- CACHE_enableCaching(CACHE_EMIFA_CE00);
- CACHE_enableCaching(CACHE_EMIFA_CE01);
- // Init the EVM
- EVMDM642_init();
- EVMDM642_LED_init();
- // Read in EMAC MAC Address
- /* EVMDM642_EEPROM_read(0x00007F00, (Uint32)bMacAddr, 8);*/ /*change*/
- bMacAddr[0]='D'; bMacAddr[1]=4;
- bMacAddr[2]='A'; bMacAddr[3]=1;
- bMacAddr[4]='Z'; bMacAddr[5]=1;
- bMacAddr[6]='A'; bMacAddr[7]=1;
- }
- //
- // DM642EMAC_getConfig()
- //
- // This is a callback from the Ethernet driver. This function
- // is used by the driver to get its 6 byte MAC address, and
- // to determine which DSP interrupt the EMAC should be mapped to.
- //
- void DM642EMAC_getConfig( UINT8 *pMacAddr, uint *pIntVector )
- {
- printf("Using MAC Address: %02x-%02x-%02x-%02x-%02x-%02xn",
- bMacAddr[0], bMacAddr[1], bMacAddr[2],
- bMacAddr[3], bMacAddr[4], bMacAddr[5]);
- // We fill in the two pointers here. We'll use int 15 for EMAC
- mmCopy( pMacAddr, bMacAddr, 6 );
- *pIntVector = 15;
- }
- //
- // DM642EMAC_linkStatus()
- //
- // This is a callback from the Ethernet driver. This function
- // is called whenever there is a change in link state. The
- // current PHY and current link state are passed as parameters.
- //
- void DM642EMAC_linkStatus( uint phy, uint linkStatus )
- {
- printf("Link Status: %sn",LinkStr[linkStatus]);
- // Since we know we're using the Intel PHY, we'll
- // go ahead and program the LEDs to make sense.
- MDIO_phyRegWrite( phy, 0x14, 0xd5d0 );
- }