diff options
Diffstat (limited to 'arch/powerpc/include/asm/residual.h')
| -rw-r--r-- | arch/powerpc/include/asm/residual.h | 331 | 
1 files changed, 0 insertions, 331 deletions
diff --git a/arch/powerpc/include/asm/residual.h b/arch/powerpc/include/asm/residual.h deleted file mode 100644 index dc85edbc3..000000000 --- a/arch/powerpc/include/asm/residual.h +++ /dev/null @@ -1,331 +0,0 @@ -/* 7/18/95                                                                    */ -/*----------------------------------------------------------------------------*/ -/*      Residual Data header definitions and prototypes                       */ -/*----------------------------------------------------------------------------*/ - -/* Structure map for RESIDUAL on PowerPC Reference Platform                   */ -/* residual.h - Residual data structure passed in r3.                         */ -/*              Load point passed in r4 to boot image.                        */ -/* For enum's: if given in hex then they are bit significant,                 */ -/*             i.e. only one bit is on for each enum                          */ -/* Reserved fields must be filled with zeros.                                */ - -#ifndef _RESIDUAL_ -#define _RESIDUAL_ - -#ifndef __ASSEMBLY__ - -#define MAX_CPUS 32                     /* These should be set to the maximum */ -#define MAX_MEMS 64                     /* number possible for this system.   */ -#define MAX_DEVICES 256                 /* Changing these will change the     */ -#define AVE_PNP_SIZE 32                 /* structure, hence the version of    */ -#define MAX_MEM_SEGS 64                 /* this header file.                  */ - -/*----------------------------------------------------------------------------*/ -/*               Public structures...                                         */ -/*----------------------------------------------------------------------------*/ - -#include "pnp.h" - -typedef enum _L1CACHE_TYPE { -  NoneCAC = 0, -  SplitCAC = 1, -  CombinedCAC = 2 -  } L1CACHE_TYPE; - -typedef enum _TLB_TYPE { -  NoneTLB = 0, -  SplitTLB = 1, -  CombinedTLB = 2 -  } TLB_TYPE; - -typedef enum _FIRMWARE_SUPPORT { -  Conventional = 0x01, -  OpenFirmware = 0x02, -  Diagnostics = 0x04, -  LowDebug = 0x08, -  Multiboot = 0x10, -  LowClient = 0x20, -  Hex41 = 0x40, -  FAT = 0x80, -  ISO9660 = 0x0100, -  SCSI_InitiatorID_Override = 0x0200, -  Tape_Boot = 0x0400, -  FW_Boot_Path = 0x0800 -  } FIRMWARE_SUPPORT; - -typedef enum _FIRMWARE_SUPPLIERS { -  IBMFirmware = 0x00, -  MotoFirmware = 0x01,                  /* 7/18/95                            */ -  FirmWorks = 0x02,                     /* 10/5/95                            */ -  Bull = 0x03,                          /* 04/03/96                           */ -  } FIRMWARE_SUPPLIERS; - -typedef enum _ENDIAN_SWITCH_METHODS { -  UsePort92 = 0x01, -  UsePCIConfigA8 = 0x02, -  UseFF001030 = 0x03, -  } ENDIAN_SWITCH_METHODS; - -typedef enum _SPREAD_IO_METHODS { -  UsePort850 = 0x00, -/*UsePCIConfigA8 = 0x02,*/ -  } SPREAD_IO_METHODS; - -typedef struct _VPD { - -  /* Box dependent stuff */ -  unsigned char PrintableModel[32];     /* Null terminated string. -					   Must be of the form: -					   vvv,<20h>,<model designation>,<0x0> -					   where vvv is the vendor ID -					   e.g. IBM PPS MODEL 6015<0x0>       */ -  unsigned char Serial[16];             /* 12/94: -					   Serial Number; must be of the form: -					   vvv<serial number> where vvv is the -					   vendor ID. -					   e.g. IBM60151234567<20h><20h>      */ -  unsigned char Reserved[48]; -  unsigned long FirmwareSupplier;       /* See FirmwareSuppliers enum         */ -  unsigned long FirmwareSupports;       /* See FirmwareSupport enum           */ -  unsigned long NvramSize;              /* Size of nvram in bytes             */ -  unsigned long NumSIMMSlots; -  unsigned short EndianSwitchMethod;    /* See EndianSwitchMethods enum       */ -  unsigned short SpreadIOMethod;        /* See SpreadIOMethods enum           */ -  unsigned long SmpIar; -  unsigned long RAMErrLogOffset;        /* Heap offset to error log           */ -  unsigned long Reserved5; -  unsigned long Reserved6; -  unsigned long ProcessorHz;            /* Processor clock frequency in Hertz */ -  unsigned long ProcessorBusHz;         /* Processor bus clock frequency      */ -  unsigned long Reserved7; -  unsigned long TimeBaseDivisor;        /* (Bus clocks per timebase tic)*1000 */ -  unsigned long WordWidth;              /* Word width in bits                 */ -  unsigned long PageSize;               /* Page size in bytes                 */ -  unsigned long CoherenceBlockSize;     /* Unit of transfer in/out of cache -					   for which coherency is maintained; -					   normally <= CacheLineSize.         */ -  unsigned long GranuleSize;            /* Unit of lock allocation to avoid   */ -					/*   false sharing of locks.          */ - -  /* L1 Cache variables */ -  unsigned long CacheSize;              /* L1 Cache size in KB. This is the   */ -					/*   total size of the L1, whether    */ -					/*   combined or split                */ -  unsigned long CacheAttrib;            /* L1CACHE_TYPE                       */ -  unsigned long CacheAssoc;             /* L1 Cache associativity. Use this -					   for combined cache. If split, put -					   zeros here.                        */ -  unsigned long CacheLineSize;          /* L1 Cache line size in bytes. Use -					   for combined cache. If split, put -					   zeros here.                        */ -  /* For split L1 Cache: (= combined if combined cache) */ -  unsigned long I_CacheSize; -  unsigned long I_CacheAssoc; -  unsigned long I_CacheLineSize; -  unsigned long D_CacheSize; -  unsigned long D_CacheAssoc; -  unsigned long D_CacheLineSize; - -  /* Translation Lookaside Buffer variables */ -  unsigned long TLBSize;                /* Total number of TLBs on the system */ -  unsigned long TLBAttrib;              /* Combined I+D or split TLB          */ -  unsigned long TLBAssoc;               /* TLB Associativity. Use this for -					   combined TLB. If split, put zeros -					   here.                              */ -  /* For split TLB: (= combined if combined TLB) */ -  unsigned long I_TLBSize; -  unsigned long I_TLBAssoc; -  unsigned long D_TLBSize; -  unsigned long D_TLBAssoc; - -  unsigned long ExtendedVPD;            /* Offset to extended VPD area; -					   null if unused                     */ -  } VPD; - -typedef enum _DEVICE_FLAGS { -  Enabled = 0x4000,                     /* 1 - PCI device is enabled          */ -  Integrated = 0x2000, -  Failed = 0x1000,                      /* 1 - device failed POST code tests  */ -  Static = 0x0800,                      /* 0 - dynamically configurable -					   1 - static                         */ -  Dock = 0x0400,                        /* 0 - not a docking station device -					   1 - is a docking station device    */ -  Boot = 0x0200,                        /* 0 - device cannot be used for BOOT -					   1 - can be a BOOT device           */ -  Configurable = 0x0100,                /* 1 - device is configurable         */ -  Disableable = 0x80,                   /* 1 - device can be disabled         */ -  PowerManaged = 0x40,                  /* 0 - not managed; 1 - managed       */ -  ReadOnly = 0x20,                      /* 1 - device is read only            */ -  Removable = 0x10,                     /* 1 - device is removable            */ -  ConsoleIn = 0x08, -  ConsoleOut = 0x04, -  Input = 0x02, -  Output = 0x01 -  } DEVICE_FLAGS; - -typedef enum _BUS_ID { -  ISADEVICE = 0x01, -  EISADEVICE = 0x02, -  PCIDEVICE = 0x04, -  PCMCIADEVICE = 0x08, -  PNPISADEVICE = 0x10, -  MCADEVICE = 0x20, -  MXDEVICE = 0x40,                      /* Devices on mezzanine bus           */ -  PROCESSORDEVICE = 0x80,               /* Devices on processor bus           */ -  VMEDEVICE = 0x100, -  } BUS_ID; - -typedef struct _DEVICE_ID { -  unsigned long BusId;                  /* See BUS_ID enum above              */ -  unsigned long DevId;                  /* Big Endian format                  */ -  unsigned long SerialNum;              /* For multiple usage of a single -					   DevId                              */ -  unsigned long Flags;                  /* See DEVICE_FLAGS enum above        */ -  unsigned char BaseType;               /* See pnp.h for bit definitions      */ -  unsigned char SubType;                /* See pnp.h for bit definitions      */ -  unsigned char Interface;              /* See pnp.h for bit definitions      */ -  unsigned char Spare; -  } DEVICE_ID; - -typedef union _BUS_ACCESS { -  struct _PnPAccess{ -    unsigned char CSN; -    unsigned char LogicalDevNumber; -    unsigned short ReadDataPort; -    } PnPAccess; -  struct _ISAAccess{ -    unsigned char SlotNumber;           /* ISA Slot Number generally not -					   available; 0 if unknown            */ -    unsigned char LogicalDevNumber; -    unsigned short ISAReserved; -    } ISAAccess; -  struct _MCAAccess{ -    unsigned char SlotNumber; -    unsigned char LogicalDevNumber; -    unsigned short MCAReserved; -    } MCAAccess; -  struct _PCMCIAAccess{ -    unsigned char SlotNumber; -    unsigned char LogicalDevNumber; -    unsigned short PCMCIAReserved; -    } PCMCIAAccess; -  struct _EISAAccess{ -    unsigned char SlotNumber; -    unsigned char FunctionNumber; -    unsigned short EISAReserved; -    } EISAAccess; -  struct _PCIAccess{ -    unsigned char BusNumber; -    unsigned char DevFuncNumber; -    unsigned short PCIReserved; -    } PCIAccess; -  struct _ProcBusAccess{ -    unsigned char BusNumber; -    unsigned char BUID; -    unsigned short ProcBusReserved; -    } ProcBusAccess; -  } BUS_ACCESS; - -/* Per logical device information */ -typedef struct _PPC_DEVICE { -  DEVICE_ID DeviceId; -  BUS_ACCESS BusAccess; - -  /* The following three are offsets into the DevicePnPHeap */ -  /* All are in PnP compressed format                       */ -  unsigned long AllocatedOffset;        /* Allocated resource description     */ -  unsigned long PossibleOffset;         /* Possible resource description      */ -  unsigned long CompatibleOffset;       /* Compatible device identifiers      */ -  } PPC_DEVICE; - -typedef enum _CPU_STATE { -  CPU_GOOD = 0,                         /* CPU is present, and active         */ -  CPU_GOOD_FW = 1,                      /* CPU is present, and in firmware    */ -  CPU_OFF = 2,                          /* CPU is present, but inactive       */ -  CPU_FAILED = 3,                       /* CPU is present, but failed POST    */ -  CPU_NOT_PRESENT = 255                 /* CPU not present                    */ -  } CPU_STATE; - -typedef struct _PPC_CPU { -  unsigned long CpuType;                /* Result of mfspr from Processor -					   Version Register (PVR). -					   PVR(0-15) = Version (e.g. 601) -					   PVR(16-31 = EC Level               */ -  unsigned char CpuNumber;              /* CPU Number for this processor      */ -  unsigned char CpuState;               /* CPU State, see CPU_STATE enum      */ -  unsigned short Reserved; -  } PPC_CPU; - -typedef struct _PPC_MEM { -  unsigned long SIMMSize;               /* 0 - absent or bad -					   8M, 32M (in MB)                    */ -  } PPC_MEM; - -typedef enum _MEM_USAGE { -  Other = 0x8000, -  ResumeBlock = 0x4000,                 /* for use by power management        */ -  SystemROM = 0x2000,                   /* Flash memory (populated)           */ -  UnPopSystemROM = 0x1000,              /* Unpopulated part of SystemROM area */ -  IOMemory = 0x0800, -  SystemIO = 0x0400, -  SystemRegs = 0x0200, -  PCIAddr = 0x0100, -  PCIConfig = 0x80, -  ISAAddr = 0x40, -  Unpopulated = 0x20,                   /* Unpopulated part of System Memory  */ -  Free = 0x10,                          /* Free part of System Memory         */ -  BootImage = 0x08,                     /* BootImage part of System Memory    */ -  FirmwareCode = 0x04,                  /* FirmwareCode part of System Memory */ -  FirmwareHeap = 0x02,                  /* FirmwareHeap part of System Memory */ -  FirmwareStack = 0x01                  /* FirmwareStack part of System Memory*/ -  } MEM_USAGE; - -typedef struct _MEM_MAP { -  unsigned long Usage;                  /* See MEM_USAGE above                */ -  unsigned long BasePage;               /* Page number measured in 4KB pages  */ -  unsigned long PageCount;              /* Page count measured in 4KB pages   */ -  } MEM_MAP; - -typedef struct _RESIDUAL { -  unsigned long ResidualLength;         /* Length of Residual                 */ -  unsigned char Version;                /* of this data structure             */ -  unsigned char Revision;               /* of this data structure             */ -  unsigned short EC;                    /* of this data structure             */ -  /* VPD */ -  VPD VitalProductData; -  /* CPU */ -  unsigned short MaxNumCpus;            /* Max CPUs in this system            */ -  unsigned short ActualNumCpus;         /* ActualNumCpus < MaxNumCpus means   */ -					/* that there are unpopulated or      */ -					/* otherwise unusable cpu locations   */ -  PPC_CPU Cpus[MAX_CPUS]; -  /* Memory */ -  unsigned long TotalMemory;            /* Total amount of memory installed   */ -  unsigned long GoodMemory;             /* Total amount of good memory        */ -  unsigned long ActualNumMemSegs; -  MEM_MAP Segs[MAX_MEM_SEGS]; -  unsigned long ActualNumMemories; -  PPC_MEM Memories[MAX_MEMS]; -  /* Devices */ -  unsigned long ActualNumDevices; -  PPC_DEVICE Devices[MAX_DEVICES]; -  unsigned char DevicePnPHeap[2*MAX_DEVICES*AVE_PNP_SIZE]; -  } RESIDUAL; - - -extern RESIDUAL *res; -extern void print_residual_device_info(void); -extern PPC_DEVICE *residual_find_device(unsigned long BusMask, -					unsigned char * DevID, int BaseType, -					int SubType, int Interface, int n); -extern PnP_TAG_PACKET *PnP_find_packet(unsigned char *p, unsigned packet_tag, -				       int n); -extern PnP_TAG_PACKET *PnP_find_small_vendor_packet(unsigned char *p, -						    unsigned packet_type, -						    int n); -extern PnP_TAG_PACKET *PnP_find_large_vendor_packet(unsigned char *p, -						    unsigned packet_type, -						    int n); -#endif /* __ASSEMBLY__ */ -#endif  /* ndef _RESIDUAL_ */  |