home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-powerpc / firmware.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  3.0 KB  |  100 lines

  1. /*
  2.  *  Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org)
  3.  *
  4.  *  Modifications for ppc64:
  5.  *      Copyright (C) 2003 Dave Engebretsen <engebret@us.ibm.com>
  6.  *
  7.  *  This program is free software; you can redistribute it and/or
  8.  *  modify it under the terms of the GNU General Public License
  9.  *  as published by the Free Software Foundation; either version
  10.  *  2 of the License, or (at your option) any later version.
  11.  */
  12. #ifndef __ASM_POWERPC_FIRMWARE_H
  13. #define __ASM_POWERPC_FIRMWARE_H
  14.  
  15. #ifdef __KERNEL__
  16.  
  17. #ifndef __ASSEMBLY__
  18.  
  19. /* firmware feature bitmask values */
  20. #define FIRMWARE_MAX_FEATURES 63
  21.  
  22. #define FW_FEATURE_PFT        (1UL<<0)
  23. #define FW_FEATURE_TCE        (1UL<<1)
  24. #define FW_FEATURE_SPRG0    (1UL<<2)
  25. #define FW_FEATURE_DABR        (1UL<<3)
  26. #define FW_FEATURE_COPY        (1UL<<4)
  27. #define FW_FEATURE_ASR        (1UL<<5)
  28. #define FW_FEATURE_DEBUG    (1UL<<6)
  29. #define FW_FEATURE_TERM        (1UL<<7)
  30. #define FW_FEATURE_PERF        (1UL<<8)
  31. #define FW_FEATURE_DUMP        (1UL<<9)
  32. #define FW_FEATURE_INTERRUPT    (1UL<<10)
  33. #define FW_FEATURE_MIGRATE    (1UL<<11)
  34. #define FW_FEATURE_PERFMON    (1UL<<12)
  35. #define FW_FEATURE_CRQ        (1UL<<13)
  36. #define FW_FEATURE_VIO        (1UL<<14)
  37. #define FW_FEATURE_RDMA        (1UL<<15)
  38. #define FW_FEATURE_LLAN        (1UL<<16)
  39. #define FW_FEATURE_BULK        (1UL<<17)
  40. #define FW_FEATURE_XDABR    (1UL<<18)
  41. #define FW_FEATURE_MULTITCE    (1UL<<19)
  42. #define FW_FEATURE_SPLPAR    (1UL<<20)
  43. #define FW_FEATURE_ISERIES    (1UL<<21)
  44. #define FW_FEATURE_LPAR        (1UL<<22)
  45.  
  46. enum {
  47. #ifdef CONFIG_PPC64
  48.     FW_FEATURE_PSERIES_POSSIBLE = FW_FEATURE_PFT | FW_FEATURE_TCE |
  49.         FW_FEATURE_SPRG0 | FW_FEATURE_DABR | FW_FEATURE_COPY |
  50.         FW_FEATURE_ASR | FW_FEATURE_DEBUG | FW_FEATURE_TERM |
  51.         FW_FEATURE_PERF | FW_FEATURE_DUMP | FW_FEATURE_INTERRUPT |
  52.         FW_FEATURE_MIGRATE | FW_FEATURE_PERFMON | FW_FEATURE_CRQ |
  53.         FW_FEATURE_VIO | FW_FEATURE_RDMA | FW_FEATURE_LLAN |
  54.         FW_FEATURE_BULK | FW_FEATURE_XDABR | FW_FEATURE_MULTITCE |
  55.         FW_FEATURE_SPLPAR | FW_FEATURE_LPAR,
  56.     FW_FEATURE_PSERIES_ALWAYS = 0,
  57.     FW_FEATURE_ISERIES_POSSIBLE = FW_FEATURE_ISERIES | FW_FEATURE_LPAR,
  58.     FW_FEATURE_ISERIES_ALWAYS = FW_FEATURE_ISERIES | FW_FEATURE_LPAR,
  59.     FW_FEATURE_POSSIBLE =
  60. #ifdef CONFIG_PPC_PSERIES
  61.         FW_FEATURE_PSERIES_POSSIBLE |
  62. #endif
  63. #ifdef CONFIG_PPC_ISERIES
  64.         FW_FEATURE_ISERIES_POSSIBLE |
  65. #endif
  66.         0,
  67.     FW_FEATURE_ALWAYS =
  68. #ifdef CONFIG_PPC_PSERIES
  69.         FW_FEATURE_PSERIES_ALWAYS &
  70. #endif
  71. #ifdef CONFIG_PPC_ISERIES
  72.         FW_FEATURE_ISERIES_ALWAYS &
  73. #endif
  74.         FW_FEATURE_POSSIBLE,
  75.  
  76. #else /* CONFIG_PPC64 */
  77.     FW_FEATURE_POSSIBLE = 0,
  78.     FW_FEATURE_ALWAYS = 0,
  79. #endif
  80. };
  81.  
  82. /* This is used to identify firmware features which are available
  83.  * to the kernel.
  84.  */
  85. extern unsigned long    powerpc_firmware_features;
  86.  
  87. #define firmware_has_feature(feature)                    \
  88.     ((FW_FEATURE_ALWAYS & (feature)) ||                \
  89.         (FW_FEATURE_POSSIBLE & powerpc_firmware_features & (feature)))
  90.  
  91. extern void system_reset_fwnmi(void);
  92. extern void machine_check_fwnmi(void);
  93.  
  94. /* This is true if we are using the firmware NMI handler (typically LPAR) */
  95. extern int fwnmi_active;
  96.  
  97. #endif /* __ASSEMBLY__ */
  98. #endif /* __KERNEL__ */
  99. #endif /* __ASM_POWERPC_FIRMWARE_H */
  100.