p2debug.h
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:4k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. /*++
  2. THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. PARTICULAR PURPOSE.
  6. Copyright (c) 1995-2000 Microsoft Corporation.  All rights reserved.
  7. Module Name:  
  8.   p2.h
  9. Abstract:  
  10.     This file provides definitions for the debug section of the Windows CE P2
  11.     Reference Platform provided by the housekeeping FPGA.  The interfaces that
  12.     are described here are only available on a development platform that is
  13.     compatible with the P2 platform; they are not available on an OEM platform.
  14.   
  15. Functions:
  16.   
  17. Notes:
  18. Revision History:
  19. --*/
  20. #ifndef _P2DEBUG_H_
  21. #define _P2DEBUG_H_
  22. //
  23. // Housekeeping FPGA registers.
  24. //
  25. // This rather involved ifdef tree localizes the differences
  26. // between the 4101 and 4102 as much as possible.  It depends   
  27. // on a define in p2.h to indicate the CPU since there is
  28. // that is where the 4101/4102 def is set.
  29. #if defined(R4100) || defined(R4300) || defined(IDT32364)
  30. #ifndef _P2_H_
  31. #include <p2.h>
  32. #endif
  33. #ifdef R4101
  34. // 4101 defs
  35. #define HKEEP_FPGA_REGS_BASE 0xb7000000 // Housekeeping FPGA reg base
  36. // The following define the addresses of the housekeeping Regs
  37. // The high and low equates are for the .s files
  38. #define LEDALPHA_HADDR         0xb700
  39. #define LEDALPHA_LADDR         0x60
  40. #define LEDDESCRETE_HADDR      0xb700
  41. #define LEDDESCRETE_LADDR      0x40
  42. #define PAR_CONTROL_REG    (HKEEP_FPGA_REGS_BASE + 0x20)
  43. #define LED_DISCRETE       (HKEEP_FPGA_REGS_BASE + 0x40)
  44. #define LED_ALPHA          (HKEEP_FPGA_REGS_BASE + 0x60)
  45. // LED_ALPHA_MIRROR is mask of how large a range is mirrored for LEDS
  46. #define LED_ALPHA_MIRROR     (0x0F)
  47. #endif //R4101
  48. #ifdef R4102
  49. // 4102 defs
  50. #define HKEEP_FPGA_REGS_BASE   0xb0000000 // Housekeeping FPGA reg base
  51. #define LEDALPHA_HADDR         0xb006
  52. #define LEDALPHA_LADDR         0x0
  53. #define LEDDESCRETE_HADDR      0xb004
  54. #define LEDDESCRETE_LADDR      0x0
  55. #endif //R4102
  56. #if defined(R4300) || defined(IDT32364)
  57. #define HKEEP_FPGA_REGS_BASE   0xa4000000 // Housekeeping FPGA reg base
  58. #define LEDALPHA_HADDR         0xa406
  59. #define LEDALPHA_LADDR         0x0
  60. #define LEDDISCRETE_HADDR      0xa404
  61. #define LEDDISCRETE_LADDR      0x0
  62. #endif //R4300
  63. #else // Okay, back to the non-NEC defs...
  64. #ifdef R3000
  65. #define HKEEP_FPGA_REGS_BASE 0xb0000000 // Housekeeping FPGA reg base
  66. #elif defined(SH7709)
  67. #define HKEEP_FPGA_REGS_BASE 0xa8000000 // Hitachi SH7709/SH7729 base
  68. #else
  69. #define HKEEP_FPGA_REGS_BASE 0xa4000000 // Housekeeping FPGA reg base
  70. #endif
  71. #endif //R4100
  72. //
  73. // Parallel port interface.
  74. //
  75. #ifndef R4101
  76. #ifdef R3912
  77. #define PAR_CONTROL_REG (HKEEP_FPGA_REGS_BASE + 0x00002000)
  78. #else
  79. #define PAR_CONTROL_REG (HKEEP_FPGA_REGS_BASE + 0x00020000)
  80. #endif
  81. #endif
  82. #define PAR_EN 0x80000000
  83. #define PAR_AUTOEN 0x20000000
  84. #define PAR_BUSY 0x10000000
  85. #define PAR_NACK 0x08000000
  86. #define PAR_ERROR 0x04000000
  87. #define PAR_SELECT 0x02000000
  88. #define PAR_NFAULT 0x01000000
  89. #define PAR_INTR_MASK 0x00200000
  90. #define PAR_INTR 0x00100000
  91. #define PAR_SELECTIN 0x00080000
  92. #define PAR_INIT 0x00040000
  93. #define PAR_AUTOFD 0x00020000
  94. #define PAR_STROBE 0x00010000
  95. #define PAR_DATA_IN 0x0000FF00
  96. #define PAR_DATA_OUT 0x000000FF
  97. #define PAR_BUSY_NFAULT (PAR_BUSY | PAR_NFAULT)
  98. #define PAR_BUSY_NFAULT_AUTOEN_SELECT (PAR_BUSY | PAR_NFAULT | PAR_AUTOEN | PAR_SELECT)
  99. //
  100. // LED interfaces.
  101. //
  102. #ifndef R4101
  103. #ifdef R3912
  104. #define LED_DISCRETE (HKEEP_FPGA_REGS_BASE + 0x4000)
  105. #define LED_ALPHA (HKEEP_FPGA_REGS_BASE + 0x6000)
  106. #define LED_ALPHA_MIRROR     (0x0FFF)
  107. #else
  108. #define LED_DISCRETE 0xB1600018  // S3C2400X01
  109. #define LED_ALPHA     0xB1600018
  110. #define LED_ALPHA_MIRROR (0xFFFF)
  111. #endif
  112. #endif
  113. #ifdef R3912
  114. #define SWITCH_S1       (HKEEP_FPGA_REGS_BASE + 0x8000)
  115. #else
  116. #define SWITCH_S1       (HKEEP_FPGA_REGS_BASE + 0x80000)
  117. #endif
  118. // Lets define some indexes to be used for various classes of LED writes.
  119. #define LED_INDEX_GENERIC   0       // Miscellaneous LED data 
  120. #define LED_INDEX_DATA      1       // LED value contains DATA of some sort
  121. #define LED_INDEX_ISR       2       // An interrupt has occurred
  122. #endif // _P2DEBUG_H_