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

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * ItVpdAreas.h
  3.  * Copyright (C) 2001  Mike Corrigan IBM Corporation
  4.  * 
  5.  * This program is free software; you can redistribute it and/or modify
  6.  * it under the terms of the GNU General Public License as published by
  7.  * the Free Software Foundation; either version 2 of the License, or
  8.  * (at your option) any later version.
  9.  * 
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  * 
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  18.  */
  19. //=====================================================================================
  20. //
  21. //      This file defines the address and length of all of the VPD area passed to
  22. // the OS from PLIC (most of which start from the SP).
  23. //
  24. #ifndef _PPC_TYPES_H
  25. #include        <asm/types.h>
  26. #endif
  27. #ifndef _ITVPDAREAS_H
  28. #define _ITVPDAREAS_H
  29. // VPD Entry index is carved in stone - cannot be changed (easily).
  30. #define ItVpdCecVpd    0
  31. #define ItVpdDynamicSpace    1
  32. #define ItVpdExtVpd    2
  33. #define ItVpdExtVpdOnPanel    3
  34. #define ItVpdFirstPaca    4
  35. #define ItVpdIoVpd    5
  36. #define ItVpdIplParms    6
  37. #define ItVpdMsVpd    7
  38. #define ItVpdPanelVpd    8
  39. #define ItVpdLpNaca    9
  40. #define ItVpdBackplaneAndMaybeClockCardVpd        10 
  41. #define ItVpdRecoveryLogBuffer           11
  42. #define ItVpdSpCommArea   12
  43. #define ItVpdSpLogBuffer   13
  44. #define ItVpdSpLogBufferSave   14
  45. #define ItVpdSpCardVpd   15
  46. #define ItVpdFirstProcVpd   16
  47. #define ItVpdApModelVpd   17
  48. #define ItVpdClockCardVpd   18
  49. #define ItVpdBusExtCardVpd   19
  50. #define ItVpdProcCapacityVpd   20
  51. #define ItVpdInteractiveCapacityVpd   21
  52. #define ItVpdFirstSlotLabel   22
  53. #define ItVpdFirstLpQueue   23
  54. #define ItVpdFirstL3CacheVpd   24
  55. #define ItVpdFirstProcFruVpd   25
  56. #define ItVpdMaxEntries   26
  57. #define ItDmaMaxEntries   10
  58. #define ItVpdAreasMaxSlotLabels  192 
  59. struct SlicVpdAdrs {
  60. u32 pad1;
  61. void *  vpdAddr;
  62. };
  63. struct ItVpdAreas
  64. {
  65. u32 xSlicDesc; // Descriptor 000-003
  66. u16 xSlicSize; // Size of this control block 004-005
  67. u16 xPlicAdjustVpdLens:1; // Flag to indicate new interface  006-007
  68. u16 xRsvd1:15; // Reserved bits ...
  69. u16 xSlicVpdEntries; // Number of VPD entries 008-009
  70. u16 xSlicDmaEntries; // Number of DMA entries 00A-00B
  71. u16 xSlicMaxLogicalProcs; // Maximum logical processors 00C-00D
  72. u16 xSlicMaxPhysicalProcs; // Maximum physical processors 00E-00F
  73. u16 xSlicDmaToksOffset; // Offset into this of array 010-011
  74. u16 xSlicVpdAdrsOffset; // Offset into this of array 012-013
  75. u16 xSlicDmaLensOffset; // Offset into this of array 014-015
  76. u16 xSlicVpdLensOffset; // Offset into this of array 016-017
  77. u16 xSlicMaxSlotLabels; // Maximum number of slot labels 018-019
  78. u16 xSlicMaxLpQueues; // Maximum number of LP Queues 01A-01B
  79. u8 xRsvd2[4]; // Reserved 01C-01F
  80. u64 xRsvd3[12]; // Reserved 020-07F
  81. u32 xPlicDmaLens[ItDmaMaxEntries];// Array of DMA lengths 080-0A7
  82. u32 xPlicDmaToks[ItDmaMaxEntries];// Array of DMA tokens 0A8-0CF
  83. u32 xSlicVpdLens[ItVpdMaxEntries];// Array of VPD lengths 0D0-12F
  84. void * xSlicVpdAdrs[ItVpdMaxEntries];// Array of VPD buffers 130-1EF
  85. };
  86. #endif // _ITVPDAREAS_H