#ifndef _DBINFO_DOT_H_ #define _DBINFO_DOT_H_ //======================================================================== // // dbinfo.h - structure for data block located in flash // // // // $Date: 2003/09/08 20:08:29 $ // $Revision: 1.3 $ // // // HISTORY: // // $Log: dbinfo.h,v $ // Revision 1.3 2003/09/08 20:08:29 billf // added constants for the removable port option bit // // Revision 1.2 2003/09/05 13:29:42 billf // added an option for removable cards (Sentinel) and defined names for the option bits // // Revision 1.1.1.1 2003/03/17 15:27:03 billf // Initial import // // // // //======================================================================== #include "platform.h" // NOTE: If a new layout struct is created, you need to include the members // of the old layout struct. #define _DB_MAX_NUM_UARTS 12 // 12*8 = 96 #define _DB_STR_LENGTH 32 #define _DB_OPTION_WORDS 8 #define _DB_LAST_KNOWN_VERSION 0 typedef struct tag_uart_info { U32 numberOfUarts __PACKED__; U32 ioAddress __PACKED__; U32 irqNumber __PACKED__; U32 bufferFlag __PACKED__; } type_uart_info; #define _DB_UART_END (~0) #define DUAL_POWER_BIT 1 #define REMOVABLE_CARDS_BIT 2 #define DUAL_POWER_SUPPLIES(info) ((info)->options[0] & DUAL_POWER_BIT) #define REMOVABLE_PORTS(info) ((info)->options[0] & REMOVABLE_CARDS_BIT) typedef struct tag_db_info_0 { char FamilyStr[_DB_STR_LENGTH] __PACKED__; // Secure Console Server char ModelStr[_DB_STR_LENGTH] __PACKED__; // 320 char MiscStr[_DB_STR_LENGTH] __PACKED__; char hardwareRevisionStr[_DB_STR_LENGTH] __PACKED__; char FPGA_VersionStr[_DB_STR_LENGTH] __PACKED__; U32 Model __PACKED__; // 320 U32 Release __PACKED__; // TDB U16 numberOfPorts __PACKED__; // 32 U16 modem __PACKED__; // 0 means none, else yes U16 options[_DB_OPTION_WORDS] __PACKED__; // TBD type_uart_info uarts[_DB_MAX_NUM_UARTS] __PACKED__; } type_DB_INFO_0; typedef struct tag_db_info_header { U8 signature[4] __PACKED__; // 'LSI ' U16 layoutVersion __PACKED__; // Layout version (current Nov. 2002 is 0) U32 length __PACKED__; // size (bytes) of DB_PRODUCT_BLOCK.layouts U16 checkSum __PACKED__; } type_DB_INFO_HEADER; // top level structure typedef struct tag_db_product_block { type_DB_INFO_HEADER dbHeader __PACKED__; union { type_DB_INFO_0 dbInfo0 __PACKED__; // type_CS_INFO_1 dbInfo1 __PACKED__; // type_CS_INFO_2 dbInfo2 __PACKED__; } layouts; } type_DB_PRODUCT_BLOCK; #define DB_SIGNATURE "LSI " #endif