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

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2. ** linux/machw.h -- This header defines some macros and pointers for
  3. **                    the various Macintosh custom hardware registers.
  4. **
  5. ** Copyright 1997 by Michael Schmitz
  6. **
  7. ** This file is subject to the terms and conditions of the GNU General Public
  8. ** License.  See the file COPYING in the main directory of this archive
  9. ** for more details.
  10. **
  11. */
  12. #ifndef _ASM_MACHW_H_
  13. #define _ASM_MACHW_H_
  14. /*
  15.  * head.S maps the videomem to VIDEOMEMBASE
  16.  */
  17. #define VIDEOMEMBASE 0xf0000000
  18. #define VIDEOMEMSIZE (4096*1024)
  19. #define VIDEOMEMMASK (-4096*1024)
  20. #ifndef __ASSEMBLY__
  21. #include <linux/types.h>
  22. #if 0
  23. /* Mac SCSI Controller 5380 */
  24. #define MAC_5380_BAS (0x50F10000) /* This is definitely wrong!! */
  25. struct MAC_5380 {
  26. u_char scsi_data;
  27. u_char char_dummy1;
  28. u_char scsi_icr;
  29. u_char char_dummy2;
  30. u_char scsi_mode;
  31. u_char char_dummy3;
  32. u_char scsi_tcr;
  33. u_char char_dummy4;
  34. u_char scsi_idstat;
  35. u_char char_dummy5;
  36. u_char scsi_dmastat;
  37. u_char char_dummy6;
  38. u_char scsi_targrcv;
  39. u_char char_dummy7;
  40. u_char scsi_inircv;
  41. };
  42. #define mac_scsi       ((*(volatile struct MAC_5380 *)MAC_5380_BAS))
  43. /*
  44. ** SCC Z8530
  45. */
  46.  
  47. #define MAC_SCC_BAS (0x50F04000)
  48. struct MAC_SCC
  49.  {
  50.   u_char cha_a_ctrl;
  51.   u_char char_dummy1;
  52.   u_char cha_a_data;
  53.   u_char char_dummy2;
  54.   u_char cha_b_ctrl;
  55.   u_char char_dummy3;
  56.   u_char cha_b_data;
  57.  };
  58. # define mac_scc ((*(volatile struct SCC*)MAC_SCC_BAS))
  59. #endif
  60. /* hardware stuff */
  61. #define MACHW_DECLARE(name) unsigned name : 1
  62. #define MACHW_SET(name) (mac_hw_present.name = 1)
  63. #define MACHW_PRESENT(name) (mac_hw_present.name)
  64. struct mac_hw_present {
  65.   /* video hardware */
  66.   /* sound hardware */
  67.   /* disk storage interfaces */
  68.   MACHW_DECLARE(MAC_SCSI_80);     /* Directly mapped NCR5380 */
  69.   MACHW_DECLARE(MAC_SCSI_96);     /* 53c9[46] */
  70.   MACHW_DECLARE(MAC_SCSI_96_2);   /* 2nd 53c9[46] Q900 and Q950 */
  71.   MACHW_DECLARE(IDE);             /* IDE Interface */
  72.   /* other I/O hardware */
  73.   MACHW_DECLARE(SCC);             /* Serial Communications Contr. */
  74.   /* DMA */
  75.   MACHW_DECLARE(SCSI_DMA);        /* DMA for the NCR5380 */
  76.   /* real time clocks */
  77.   MACHW_DECLARE(RTC_CLK);         /* clock chip */
  78.   /* supporting hardware */
  79.   MACHW_DECLARE(VIA1);            /* Versatile Interface Ad. 1 */
  80.   MACHW_DECLARE(VIA2);            /* Versatile Interface Ad. 2 */
  81.   MACHW_DECLARE(RBV);             /* Versatile Interface Ad. 2+ */
  82.   /* NUBUS */
  83.   MACHW_DECLARE(NUBUS);           /* NUBUS */
  84. };
  85. extern struct mac_hw_present mac_hw_present;
  86. #endif /* __ASSEMBLY__ */
  87. #endif /* linux/machw.h */