hardware.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:4k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * Hardware specific macros, defines and structures
  3.  *
  4.  * This software may be used and distributed according to the terms
  5.  * of the GNU General Public License, incorporated herein by reference.
  6.  *
  7.  */
  8. #ifndef HARDWARE_H
  9. #define HARDWARE_H
  10. #include <asm/param.h> /* For HZ */
  11. /*
  12.  * General hardware parameters common to all ISA adapters
  13.  */
  14. #define MAX_CARDS 4 /* The maximum number of cards to
  15.    control or probe for. */
  16. #define SIGNATURE 0x87654321 /* Board reset signature */
  17. #define SIG_OFFSET 0x1004 /* Where to find signature in shared RAM */
  18. #define TRACE_OFFSET 0x1008 /* Trace enable word offset in shared RAM */
  19. #define BUFFER_OFFSET 0x1800 /* Beginning of buffers */
  20. /* I/O Port parameters */
  21. #define IOBASE_MIN 0x180 /* Lowest I/O port address */
  22. #define IOBASE_MAX 0x3C0 /* Highest I/O port address */
  23. #define IOBASE_OFFSET 0x20 /* Inter-board I/O port gap used during
  24.    probing */
  25. #define FIFORD_OFFSET 0x0
  26. #define FIFOWR_OFFSET 0x400
  27. #define FIFOSTAT_OFFSET 0x1000
  28. #define RESET_OFFSET 0x2800
  29. #define PG0_OFFSET 0x3000 /* Offset from I/O Base for Page 0 register */
  30. #define PG1_OFFSET 0x3400 /* Offset from I/O Base for Page 1 register */
  31. #define PG2_OFFSET 0x3800 /* Offset from I/O Base for Page 2 register */
  32. #define PG3_OFFSET 0x3C00 /* Offset from I/O Base for Page 3 register */
  33. #define FIFO_READ 0 /* FIFO Read register */
  34. #define FIFO_WRITE 1 /* FIFO Write rgister */
  35. #define LO_ADDR_PTR 2 /* Extended RAM Low Addr Pointer */
  36. #define HI_ADDR_PTR 3 /* Extended RAM High Addr Pointer */
  37. #define NOT_USED_1 4
  38. #define FIFO_STATUS 5 /* FIFO Status Register */
  39. #define NOT_USED_2 6
  40. #define MEM_OFFSET 7
  41. #define SFT_RESET 10 /* Reset Register */
  42. #define EXP_BASE 11 /* Shared RAM Base address */
  43. #define EXP_PAGE0 12 /* Shared RAM Page0 register */
  44. #define EXP_PAGE1 13 /* Shared RAM Page1 register */
  45. #define EXP_PAGE2 14 /* Shared RAM Page2 register */
  46. #define EXP_PAGE3 15 /* Shared RAM Page3 register */
  47. #define IRQ_SELECT 16 /* IRQ selection register */
  48. #define MAX_IO_REGS 17 /* Total number of I/O ports */
  49. /* FIFO register values */
  50. #define RF_HAS_DATA 0x01 /* fifo has data */
  51. #define RF_QUART_FULL 0x02 /* fifo quarter full */
  52. #define RF_HALF_FULL 0x04 /* fifo half full */
  53. #define RF_NOT_FULL 0x08 /* fifo not full */
  54. #define WF_HAS_DATA 0x10 /* fifo has data */
  55. #define WF_QUART_FULL 0x20 /* fifo quarter full */
  56. #define WF_HALF_FULL 0x40 /* fifo half full */
  57. #define WF_NOT_FULL 0x80 /* fifo not full */
  58. /* Shared RAM parameters */
  59. #define SRAM_MIN 0xC0000         /* Lowest host shared RAM address */
  60. #define SRAM_MAX 0xEFFFF         /* Highest host shared RAM address */
  61. #define SRAM_PAGESIZE 0x4000 /* Size of one RAM page (16K) */
  62. /* Shared RAM buffer parameters */
  63. #define BUFFER_SIZE 0x800 /* The size of a buffer in bytes */
  64. #define BUFFER_BASE BUFFER_OFFSET /* Offset from start of shared RAM
  65.    where buffer start */
  66. #define BUFFERS_MAX 16 /* Maximum number of send/receive
  67.    buffers per channel */
  68. #define HDLC_PROTO 0x01 /* Frame Format for Layer 2 */
  69. #define BRI_BOARD 0
  70. #define POTS_BOARD 1
  71. #define PRI_BOARD 2
  72. /*
  73.  * Specific hardware parameters for the DataCommute/BRI
  74.  */
  75. #define BRI_CHANNELS 2 /* Number of B channels */
  76. #define BRI_BASEPG_VAL 0x98
  77. #define BRI_MAGIC 0x60000 /* Magic Number */
  78. #define BRI_MEMSIZE 0x10000 /* Ammount of RAM (64K) */
  79. #define BRI_PARTNO "72-029"
  80. #define BRI_FEATURES ISDN_FEATURE_L2_HDLC | ISDN_FEATURE_L3_TRANS;
  81. /*
  82.  * Specific hardware parameters for the DataCommute/PRI
  83.  */
  84. #define PRI_CHANNELS 23 /* Number of B channels */
  85. #define PRI_BASEPG_VAL 0x88
  86. #define PRI_MAGIC 0x20000 /* Magic Number */
  87. #define PRI_MEMSIZE 0x100000 /* Amount of RAM (1M) */
  88. #define PRI_PARTNO "72-030"
  89. #define PRI_FEATURES ISDN_FEATURE_L2_HDLC | ISDN_FEATURE_L3_TRANS;
  90. /*
  91.  * Some handy macros
  92.  */
  93. /* Return the number of jiffies in a given number of msecs */
  94. #define milliseconds(x) (x/(1000/HZ))
  95. /* Determine if a channel number is valid for the adapter */
  96. #define IS_VALID_CHANNEL(y,x) ((x>0) && (x <= adapter[y]->channels))
  97. #endif