00001 /*++ 00002 00003 Copyright (c) 1991 Microsoft Corporation 00004 00005 Module Name: 00006 00007 jazznvr.h 00008 00009 Abstract: 00010 00011 This module contains definitions for the Jazz non-volatile ram structures. 00012 00013 Author: 00014 00015 David M. Robinson (davidro) 11-Nov-1991 00016 00017 Revision History: 00018 00019 --*/ 00020 00021 #ifndef _JAZZNVR_ 00022 #define _JAZZNVR_ 00023 00024 // 00025 // Define the private configuration packet structure, which contains a 00026 // configuration component as well as pointers to the component's parent, 00027 // peer, child, and configuration data. 00028 // 00029 00030 typedef struct _CONFIGURATION_PACKET { 00031 CONFIGURATION_COMPONENT Component; 00032 struct _CONFIGURATION_PACKET *Parent; 00033 struct _CONFIGURATION_PACKET *Peer; 00034 struct _CONFIGURATION_PACKET *Child; 00035 PVOID ConfigurationData; 00036 } CONFIGURATION_PACKET, *PCONFIGURATION_PACKET; 00037 00038 // 00039 // The compressed configuration packet structure used to store configuration 00040 // data in NVRAM. 00041 // 00042 00043 typedef struct _COMPRESSED_CONFIGURATION_PACKET { 00044 UCHAR Parent; 00045 UCHAR Class; 00046 UCHAR Type; 00047 UCHAR Flags; 00048 ULONG Key; 00049 USHORT Version; 00050 USHORT ConfigurationDataLength; 00051 USHORT Identifier; 00052 USHORT ConfigurationData; 00053 } COMPRESSED_CONFIGURATION_PACKET, *PCOMPRESSED_CONFIGURATION_PACKET; 00054 00055 // 00056 // Defines for Identifier index. 00057 // 00058 00059 #define NO_CONFIGURATION_IDENTIFIER 0xFFFF 00060 00061 // 00062 // Defines for the volatile and non-volatile configuration tables. 00063 // 00064 00065 #define NUMBER_OF_ENTRIES 32 00066 #define LENGTH_OF_IDENTIFIER 504 00067 #define LENGTH_OF_DATA 2048 00068 #define LENGTH_OF_ENVIRONMENT 1024 00069 00070 #define MAXIMUM_ENVIRONMENT_VALUE 128 00071 00072 // 00073 // The volatile configuration table structure. 00074 // 00075 00076 typedef struct _CONFIGURATION { 00077 CONFIGURATION_PACKET Packet[NUMBER_OF_ENTRIES]; 00078 UCHAR Identifier[LENGTH_OF_IDENTIFIER]; 00079 UCHAR Data[LENGTH_OF_DATA]; 00080 } CONFIGURATION, *PCONFIGURATION; 00081 00082 // 00083 // The non-volatile configuration table structure. 00084 // 00085 00086 typedef struct _NV_CONFIGURATION { 00087 COMPRESSED_CONFIGURATION_PACKET Packet[NUMBER_OF_ENTRIES]; 00088 UCHAR Identifier[LENGTH_OF_IDENTIFIER]; 00089 UCHAR Data[LENGTH_OF_DATA]; 00090 UCHAR Checksum1[4]; 00091 UCHAR Environment[LENGTH_OF_ENVIRONMENT]; 00092 UCHAR Checksum2[4]; 00093 } NV_CONFIGURATION, *PNV_CONFIGURATION; 00094 00095 // 00096 // Non-volatile ram layout. 00097 // 00098 00099 #if defined(MIPS) 00100 00101 #define NVRAM_CONFIGURATION NVRAM_VIRTUAL_BASE 00102 #define NVRAM_SYSTEM_ID NVRAM_VIRTUAL_BASE + 0x00002000 00103 00104 #endif 00105 00106 #endif // _JAZZNVR_