dm642init.c
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:3k
源码类别:

DSP编程

开发平台:

C/C++

  1. //--------------------------------------------------------------------------
  2. // IP Stack Client Demo
  3. //--------------------------------------------------------------------------
  4. // dm642init.c
  5. //
  6. // Private initialization functions for EVMDM642
  7. //
  8. // Author: Michael A. Denio
  9. // Copyright 2003 by Texas Instruments Inc.
  10. //--------------------------------------------------------------------------
  11. #include <stdio.h>
  12. #include "netmain.h"  /*change*/
  13. #include <std.h>
  14. #include <fvid.h>
  15. #include <csl_dat.h>
  16. #include <csl_cache.h>
  17. #include <tsk.h>
  18. #include <evmdm642.h>
  19. #include <evmdm642_led.h>
  20. #include <evmdm642_eeprom.h>
  21. // New CSL Functions in csl_mdio.c
  22. CSLAPI uint MDIO_phyRegWrite( uint phyIdx, uint phyReg, Uint16 data );
  23. CSLAPI uint MDIO_phyRegRead( uint, uint, UINT16 * );
  24. extern int StackTest();
  25. // This string array corresponds to link state as define in csl_mdio.h
  26. static char *LinkStr[] = { "No Link",
  27.                            "10Mb/s Half Duplex",
  28.                            "10Mb/s Full Duplex",
  29.                            "100Mb/s Half Duplex",
  30.                            "100Mb/s Full Duplex" };
  31. static UINT8 bMacAddr[8];
  32. void dm642_init()
  33. {
  34.     CACHE_enableCaching(CACHE_EMIFA_CE00);
  35.     CACHE_enableCaching(CACHE_EMIFA_CE01);
  36.     // Init the EVM
  37.     EVMDM642_init();
  38.     EVMDM642_LED_init();
  39.     // Read in EMAC MAC Address
  40.    /* EVMDM642_EEPROM_read(0x00007F00, (Uint32)bMacAddr, 8);*/ /*change*/
  41.    bMacAddr[0]='D'; bMacAddr[1]=4; 
  42.     bMacAddr[2]='A'; bMacAddr[3]=1; 
  43.     bMacAddr[4]='Z'; bMacAddr[5]=1; 
  44.     bMacAddr[6]='A'; bMacAddr[7]=1; 
  45. }
  46. //
  47. // DM642EMAC_getConfig()
  48. //
  49. // This is a callback from the Ethernet driver. This function
  50. // is used by the driver to get its 6 byte MAC address, and
  51. // to determine which DSP interrupt the EMAC should be mapped to.
  52. //
  53. void DM642EMAC_getConfig( UINT8 *pMacAddr, uint *pIntVector )
  54. {
  55.     printf("Using MAC Address: %02x-%02x-%02x-%02x-%02x-%02xn",
  56.             bMacAddr[0], bMacAddr[1], bMacAddr[2],
  57.             bMacAddr[3], bMacAddr[4], bMacAddr[5]);
  58.     // We fill in the two pointers here. We'll use int 15 for EMAC
  59.     mmCopy( pMacAddr, bMacAddr, 6 );
  60.     *pIntVector = 15;
  61. }
  62. //
  63. // DM642EMAC_linkStatus()
  64. //
  65. // This is a callback from the Ethernet driver. This function
  66. // is called whenever there is a change in link state. The
  67. // current PHY and current link state are passed as parameters.
  68. //
  69. void DM642EMAC_linkStatus( uint phy, uint linkStatus )
  70. {
  71.     printf("Link Status: %sn",LinkStr[linkStatus]);
  72.     // Since we know we're using the Intel PHY, we'll
  73.     // go ahead and program the LEDs to make sense.
  74.     MDIO_phyRegWrite( phy, 0x14, 0xd5d0 );
  75. }