frcEagle02.c
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:4k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* frcEagle02.c - Force Eagle-02 module library */
  2. /* Copyright 1984-1996 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 01c,24jun96,wlf  doc: cleanup.
  8. 01b,20oct92,caf  changed sysEagle01Init() to sysEagleInit(), made it NOMANUAL.
  9.  initialized *FGA_ICRLOCAL6.
  10. 01a,16jul92,caf  created.
  11. */
  12. /*
  13. DESCRIPTION
  14. This library contains routines to manipulate the Force EAGLE-02
  15. module.  This library addresses initialization plus the LANCE Ethernet
  16. function of the EAGLE-02.
  17. */
  18. /* includes */
  19. #include "drv/multi/fc68165.h"
  20. /* globals */
  21. FC68165 *stIOC= (FC68165 *) FRC40_E002_IOC_BASE_ADRS;
  22. /*******************************************************************************
  23. *
  24. * sysEagleInit - initialize the Force EAGLE-02 module hardware
  25. *
  26. * This routine initializes the Force EAGLE-02 module hardware.
  27. *
  28. * RETURNS: N/A
  29. */
  30. void sysEagleInit (void)
  31.     {
  32.     /* Do FC68165 init - IOC and FLASH set by FGA002 Boot Software */
  33.     stIOC->cs_range [FRC40_E002_IOCCS_VSB1] = FRC40_E002_VSB1_BASE_ADRS   |
  34. FRC40_E002_VSB1_SIZE     |
  35. IOC_CSRNG_FLXI     |
  36. IOC_CSRNG_SELCODE_SUPRONLY  |
  37. IOC_CSRNG_CACHEINHIB;
  38.     stIOC->cs_range [FRC40_E002_IOCCS_CSR] = FRC40_E002_CSR_BASE_ADRS    |
  39. FRC40_E002_CSR_SIZE     |
  40. IOC_CSRNG_FLXI     |
  41. IOC_CSRNG_SELCODE_SUPRONLY  |
  42. IOC_CSRNG_CACHEINHIB;
  43.     stIOC->cs_range [FRC40_E002_IOCCS_VSB2] = FRC40_E002_VSB2_BASE_ADRS   |
  44. FRC40_E002_VSB2_SIZE     |
  45. IOC_CSRNG_FLXI     |
  46. IOC_CSRNG_SELCODE_SUPRONLY  |
  47. IOC_CSRNG_CACHEINHIB;
  48.     stIOC->cs_range [FRC40_E002_IOCCS_SRAM] = FRC40_E002_SRAM_BASE_ADRS   |
  49. FRC40_E002_SRAM_SIZE     |
  50. IOC_CSRNG_FLXI     |
  51. IOC_CSRNG_SELCODE_SUPRONLY  |
  52. IOC_CSRNG_CACHEINHIB;
  53.     stIOC->cs_range [FRC40_E002_IOCCS_LANCE] = FRC40_E002_LANCE_BASE_ADRS  |
  54. FRC40_E002_LANCE_SIZE     |
  55. IOC_CSRNG_FLXI     |
  56. IOC_CSRNG_SELCODE_SUPRONLY  |
  57. IOC_CSRNG_CACHEINHIB;
  58.     stIOC->cs_config [FRC40_E002_IOCCS_VSB1] = IOC_CSCFG_FLXI_SCS     |
  59. IOC_CSCFG_FLXI_SBS     |
  60. IOC_CSCFG_FLXI_BRDA     |
  61. IOC_CSCFG_FLXI_BRDE     |
  62. IOC_CSCFG_FLXI_WAITS_15     |
  63. IOC_CSCFG_FLXI_STROBE_WORD  |
  64. IOC_CSCFG_FLXI_DSACK_NONE;
  65.     stIOC->cs_config [FRC40_E002_IOCCS_CSR] = IOC_CSCFG_FLXI_SCS     |
  66. IOC_CSCFG_FLXI_SBS     |
  67. IOC_CSCFG_FLXI_BRDA     |
  68. IOC_CSCFG_FLXI_BRDE     |
  69. IOC_CSCFG_FLXI_WAITS_15     |
  70. IOC_CSCFG_FLXI_STROBE_WORD  |
  71. IOC_CSCFG_FLXI_DSACK_NONE;
  72.     stIOC->cs_config [FRC40_E002_IOCCS_VSB2] = IOC_CSCFG_FLXI_SCS     |
  73. IOC_CSCFG_FLXI_SBS     |
  74. IOC_CSCFG_FLXI_BRDA     |
  75. IOC_CSCFG_FLXI_BRDE     |
  76. IOC_CSCFG_FLXI_WAITS_15     |
  77. IOC_CSCFG_FLXI_STROBE_WORD  |
  78. IOC_CSCFG_FLXI_DSACK_NONE;
  79.     stIOC->cs_config [FRC40_E002_IOCCS_SRAM] = IOC_CSCFG_FLXI_SCS     |
  80. IOC_CSCFG_FLXI_SBS     |
  81. IOC_CSCFG_FLXI_BRDA     |
  82. IOC_CSCFG_FLXI_BRDE     |
  83. IOC_CSCFG_FLXI_WAITS_15     |
  84. IOC_CSCFG_FLXI_STROBE_WORD  |
  85. IOC_CSCFG_FLXI_DSACK_NONE;
  86.     stIOC->cs_config [FRC40_E002_IOCCS_LANCE] = IOC_CSCFG_FLXI_SCS     |
  87. IOC_CSCFG_FLXI_SBS     |
  88. IOC_CSCFG_FLXI_BRDA     |
  89. IOC_CSCFG_FLXI_BRDE     |
  90. IOC_CSCFG_FLXI_WAITS_15     |
  91. IOC_CSCFG_FLXI_STROBE_WORD  |
  92. IOC_CSCFG_FLXI_DSACK_NONE;
  93.     /* extended interrupt control registers */
  94.     *FGA_ICRLOCAL1 = INT_LVL_VSB | FGA_ICR_ACTIVITY;
  95.     *FGA_ICRLOCAL6 = NULL;
  96.     *FGA_ICRLOCAL7 = INT_LVL_LANCE;
  97.     }
  98. /*******************************************************************************
  99. *
  100. * sysLanIntEnable - enable a LAN interrupt level
  101. *
  102. * This routine enables interrupts for the on-board LAN chip at a specified
  103. * level.  LAN interrupts are controlled by the FGA-002 chip.
  104. *
  105. * RETURNS: OK, always.
  106. *
  107. * SEE ALSO: sysLanIntDisable()
  108. */
  109. STATUS sysLanIntEnable
  110.     (
  111.     int intLevel        /* interrupt level to enable */
  112.     )
  113.     {
  114.     /* unmask local LANCE interrupt */
  115.     *FGA_ICRLOCAL7 |= FGA_ICR_ENABLE;
  116.     return (OK);
  117.     }
  118. /*******************************************************************************
  119. *
  120. * sysLanIntDisable - disable a LAN interrupt level
  121. *
  122. * This routine disables a specified interrupt level for the on-board LAN chip.
  123. * LAN interrupts are controlled by the FGA-002 chip.
  124. *
  125. * RETURNS: OK, always.
  126. *
  127. * SEE ALSO: sysLanIntEnable()
  128. */
  129. STATUS sysLanIntDisable (void)
  130.     {
  131.     /* mask LANCE interrupt */
  132.     *FGA_ICRLOCAL7 &= ~FGA_ICR_ENABLE;
  133.     return (OK);
  134.     }