?? bootconfig.c
字號:
/* bootConfig.c - system configuration module for boot ROMs *//* Copyright 2004-2005 */#include "vxWorks.h"#include "bootEcoffLib.h"#include "bootElfLib.h"#include "bootLib.h"#include "bootLoadLib.h"#include "bsdSockLib.h"#include "cacheLib.h"#include "cbioLib.h"#include "ctype.h"#include "dosFsLib.h"#include "dpartCbio.h"#include "errno.h"#include "errnoLib.h"#include "fcntl.h"#include "fioLib.h"#include "ftpLib.h"#include "hostLib.h"#include "icmpLib.h"#include "ifLib.h"#include "if_sl.h"#include "inetLib.h"#include "intLib.h"#include "ioLib.h"#include "iosLib.h"#include "loadAoutLib.h"#include "loadCoffLib.h"#include "loadLib.h"#include "logLib.h"#include "memLib.h"#include "msgQLib.h"#include "netLib.h"#include "pipeDrv.h"#include "proxyLib.h"#include "qLib.h"#include "qPriBMapLib.h"#include "rebootLib.h"#include "remLib.h"#include "rngLib.h"#include "routeLib.h"#include "semLib.h"#include "sockLib.h"#include "stdio.h"#include "string.h"#include "sysLib.h"#include "sysSymTbl.h"#include "taskHookLib.h"#include "taskLib.h"#include "tftpLib.h"#include "tickLib.h"#include "trcLib.h"#include "unistd.h"#include "usrFdiskPartLib.h"#include "version.h"#include "wdLib.h"#include "net/if.h"#include "net/mbuf.h"#include "netinet/if_ether.h"#include "drv/netif/smNetLib.h"#include "ipProto.h"#include "private/excLibP.h"#include "private/kernelLibP.h"#include "private/workQLibP.h"#include "config.h"#include "scsiLib.h"#include "..\bsps3c2410x\s3c2410xSio.h"struct ipparamsinfo{ char ipadrinfo[50]; char netmaskinfo[50]; char gatewayinfo[50]; ULONG netmaskshowinfo; UCHAR macshowinfo[6]; int dhcpflag; int bootpflag;};struct ipparamsinfo IP_PARAMS;#ifdef INCLUDE_BOOTP#include "bootpLib.h"#endif #ifdef INCLUDE_PPP#include "pppLib.h"#endif #ifdef INCLUDE_DHCPC#include "dhcpcLib.h"#include "dhcpcBootLib.h"#include "dhcp/dhcpc.h"#include "dhcp/dhcpcCommonLib.h"#endif#if (defined(INCLUDE_SECOND_SMNET) || \ defined(INCLUDE_SM_NET_ADDRGET) || \ defined(INCLUDE_SM_SEQ_ADDR))# ifndef INCLUDE_SM_NET# define INCLUDE_SM_NET# endif #endif #if (defined(INCLUDE_SECOND_SMNET) && !defined(INCLUDE_SM_NET_ADDRGET))# define INCLUDE_SM_NET_ADDRGET#endif #ifdef INCLUDE_SM_NET# ifndef INCLUDE_BSD# define INCLUDE_BSD# endif /* INCLUDE_BSD */# ifndef INCLUDE_SM_COMMON# define INCLUDE_SM_COMMON# endif /* INCLUDE_SM_COMMON */#endif /* INCLUDE_SM_NET *//* defines */#define STREQ(A, B) (strcmp(A, B) == 0 ? 1 : 0)#define TIMEOUT 7 #define MAX_LINE 160 #define BOOT_CMD_MAX_LINE BOOT_LINE_SIZE#define RSHD 514 #define DEC FALSE #define HEX TRUE#define OPT TRUE#define MAX_ADR_SIZE 6 #define DOS_ID_OFFSET 3#define FIRST_PARTITION_SECTOR_OFFSET (0x1be + 8)#define VXDOS "VXDOS"#define VXEXT "VXEXT"#ifndef NUM_PARTITIONS_DISK_BOOT# define NUM_PARTITIONS_DISK_BOOT 1 #endif #ifndef PARTITION_DISK_BOOT# define PARTITION_DISK_BOOT 1 #endif /* PARTITION_DISK_BOOT */void usrInit ();IMPORT void sysInitAlt ();extern int random ();extern unsigned char SST39VF160_ChipProg(unsigned long ulRomAddr,unsigned long ulRamAddr,unsigned long ulRomSize);extern STATUS sysRomGet (char *string, int strLen, int offset );#if (CPU_FAMILY==MIPS)IMPORT void sysGpInit ();#endif #ifdef INCLUDE_NETWORK#ifdef ETHERNET_ADR_SETvoid mEnet (char *);void sysEnetAddrGet ();void sysEnetAddrSet ();#endif #endif #ifdef INCLUDE_ENDLOCAL void* findCookie(int unitNo, char* devName);#endif /* INCLUDE_END */void compressedEntry ( int startType ) {#if (CPU_FAMILY==MIPS) WRS_ASM (".extern _gp; la $gp,_gp");#endif#if (CPU_FAMILY==I960) sysInitAlt (startType); #else usrInit (startType); #endif }#ifdef INCLUDE_END#include "end.h"#include "muxLib.h"#include "muxTkLib.h"#include "configNet.h"#include "m2Lib.h"IMPORT int ipAttach ();IMPORT END_TBL_ENTRY endDevTbl[];typedef struct cookie_tbl { int unitNo; char devName[END_NAME_MAX]; void* pCookie; }COOKIE_TBL;COOKIE_TBL cookieTbl[32];#ifndef MUX_MAX_BINDS#define MUX_MAX_BINDS 8#endifvoid* pCookie;M2_INTERFACETBL endM2Tbl;#endif /* INCLUDE_END */#ifndef IP_MAX_UNITS #define IP_MAX_UNITS 1#endifIP_DRV_CTRL ipDrvCtrl [IP_MAX_UNITS];int ipMaxUnits = IP_MAX_UNITS;#undef INCLUDE_SHOW_ROUTINES #undef INCLUDE_SM_NET_SHOW#include "usrKernel.c" IMPORT char edata []; IMPORT char end []; #define FREE_MEM_START_ADRS FREE_RAM_ADRS#ifdef INCLUDE_INITIAL_MEM_ALLOCATION#define MEM_POOL_START_ADRS \ (ROUND_UP(FREE_MEM_START_ADRS, (INITIAL_MEM_ALIGNMENT)) + \ (INITIAL_MEM_SIZE))#else #define MEM_POOL_START_ADRS FREE_MEM_START_ADRS#endif #ifdef INCLUDE_TSFS_BOOT #if ((WDB_COMM_TYPE == WDB_COMM_SERIAL) && \ (CONSOLE_TTY == NONE || CONSOLE_TTY == WDB_TTY_CHANNEL))#define INCLUDE_TSFS_BOOT_VIO_CONSOLE #endif#define INCLUDE_WDB #define INCLUDE_WDB_TSFS #undef INCLUDE_WDB_BANNER #undef INCLUDE_WDB_TTY_TEST #undef INCLUDE_WDB_START_NOTIFY #undef INCLUDE_WDB_USER_EVENT #undef INCLUDE_WDB_CTXT #undef INCLUDE_WDB_FUNC_CALL #undef INCLUDE_WDB_GOPHER #undef INCLUDE_WDB_EXIT_NOTIFY #undef INCLUDE_WDB_REG #undef INCLUDE_WDB_EVENTPOINTS #undef INCLUDE_WDB_MEM #undef INCLUDE_WDB_BP #include "wdb/wdbEvtLib.h"#include "usrWdb.c" #else #undef INCLUDE_WDB#endif /* INCLUDE_TSFS_BOOT */#ifdef INCLUDE_NETWORK/* forward declarations */LOCAL STATUS usrNetProtoInit (void);IMPORT int lnEbsaattach ();IMPORT int oliattach ();IMPORT int dcattach ();IMPORT int eglattach ();IMPORT int eiattach ();IMPORT int feiattach ();IMPORT int exattach ();IMPORT int enpattach ();IMPORT int ieattach ();IMPORT int ilacattach ();IMPORT int lnattach ();IMPORT int lnsgiattach ();IMPORT int nicattach ();IMPORT int nicEvbattach ();IMPORT int medattach ();IMPORT int elcattach ();IMPORT int ultraattach ();IMPORT int eexattach ();IMPORT int eltattach ();IMPORT int eneattach ();IMPORT int esmcattach ();IMPORT int quattach ();IMPORT int loattach ();IMPORT int snattach ();IMPORT int fnattach ();IMPORT STATUS slipInit ();IMPORT int ifreset ();IMPORT void if_dettach ();IMPORT u_long in_netof ();IMPORT struct ifnet * ifunit ();IMPORT int pcmciaattach ();IMPORT int netLibInitialized;#ifdef NETIF_USR_DECL NETIF_USR_DECL /* additional declarations, from BSP */#endif#ifdef INCLUDE_IF_USRIMPORT int IF_USR_ATTACH ();#endif /* INCLUDE_IF_USR */LOCAL NETIF netIf [] = {#ifdef NETIF_USR_ENTRIES NETIF_USR_ENTRIES /* additional entries, from BSP */#endif#ifdef INCLUDE_IF_USR { IF_USR_NAME, IF_USR_ATTACH, IF_USR_ARG1, IF_USR_ARG2, IF_USR_ARG3, IF_USR_ARG4, IF_USR_ARG5, IF_USR_ARG6, IF_USR_ARG7, IF_USR_ARG8 },#endif /* INCLUDE_IF_USR */#ifdef INCLUDE_LNEBSA { "lnEbsa", lnEbsaattach, (char*)IO_ADRS_LNEBSA, INT_VEC_LNEBSA, INT_LVL_LNEBSA, LNEBSA_POOL_ADRS, LNEBSA_POOL_SIZE, LNEBSA_DATA_WIDTH, LNEBSA_MODE, LNEBSA_DMA_CHAN },#endif /* INCLUDE_LNEBSA */#ifdef INCLUDE_OLI { "oli", oliattach, (char*)IO_ADRS_NISA_BASE, IO_ADRS_NISA_PCMCIA, IO_ADRS_NISA_PCMEM, INT_VEC_PCMCIA_A, INT_LVL_PCMCIA_A, INT_VEC_PCMCIA_B, INT_LVL_PCMCIA_B },#endif#ifdef INCLUDE_DC { "dc", dcattach, (char*)IO_ADRS_DC, INT_VEC_DC, INT_LVL_DC, DC_POOL_ADRS, DC_POOL_SIZE, DC_DATA_WIDTH, DC_RAM_PCI_ADRS, DC_MODE },#endif /* INCLUDE_DC */#ifdef INCLUDE_EGL { "egl", eglattach, (char*)IO_ADRS_EGL, INT_VEC_EGL, INT_LVL_EGL },#endif /* INCLUDE_EGL */#ifdef INCLUDE_EI { "ei", eiattach, (char*)INT_VEC_EI, EI_SYSBUS, EI_POOL_ADRS, 0, 0},#endif /* INCLUDE_EI */#ifdef INCLUDE_FEI { "fei", feiattach, (char*)FEI_POOL_ADRS, 0, 0, 0, 0},#endif /* INCLUDE_FEI */#ifdef INCLUDE_EX { "ex", exattach, (char*)IO_ADRS_EX, INT_VEC_EX, INT_LVL_EX, IO_AM_EX_MASTER, IO_AM_EX },#endif /* INCLUDE_EX */#ifdef INCLUDE_ENP { "enp", enpattach, (char*)IO_ADRS_ENP, INT_VEC_ENP, INT_LVL_ENP, IO_AM_ENP },#endif /* INCLUDE_ENP */#ifdef INCLUDE_IE { "ie", ieattach, (char*)IO_ADRS_IE, INT_VEC_IE, INT_LVL_IE },#endif /* INCLUDE_IE */#ifdef INCLUDE_ILAC { "ilac", ilacattach, (char*)IO_ADRS_ILAC, INT_VEC_ILAC},#endif /* INCLUDE_ILAC */#ifdef INCLUDE_LN { "ln", lnattach, (char*)IO_ADRS_LN, INT_VEC_LN, INT_LVL_LN, LN_POOL_ADRS, LN_POOL_SIZE, LN_DATA_WIDTH, LN_PADDING, LN_RING_BUF_SIZE },#endif /* INCLUDE_LN */#ifdef INCLUDE_LNSGI { "lnsgi", lnsgiattach, (char*)IO_ADRS_LNSGI, INT_VEC_LNSGI, INT_LVL_LNSGI, LNSGI_POOL_ADRS, LNSGI_POOL_SIZE, LNSGI_DATA_WIDTH, LNSGI_PADDING, LNSGI_RING_BUF_SIZE },#endif /* INCLUDE_LNSGI */#ifdef INCLUDE_NIC { "nic", nicattach, (char*)IO_ADRS_NIC, INT_VEC_NIC, INT_LVL_NIC },#endif /* INCLUDE_NIC */#ifdef INCLUDE_NIC_EVB { "nicEvb", nicEvbattach, (char*)IO_ADRS_NIC,INT_VEC_NIC,INT_LVL_NIC },#endif /* INCLUDE_NIC_EVB */#ifdef INCLUDE_MED { "med", medattach, (char*)IO_ADRS_DBETH, INT_VEC_DBETH, INT_LVL_DBETH},#endif /* INCLUDE_MED */#ifdef INCLUDE_ELC { "elc", elcattach, (char*)IO_ADRS_ELC, INT_VEC_ELC, INT_LVL_ELC, MEM_ADRS_ELC, MEM_SIZE_ELC, CONFIG_ELC},#endif /* INCLUDE_ELC */#ifdef INCLUDE_ULTRA { "ultra", ultraattach, (char*)IO_ADRS_ULTRA, INT_VEC_ULTRA, INT_LVL_ULTRA, MEM_ADRS_ULTRA, MEM_SIZE_ULTRA, CONFIG_ULTRA},#endif /* INCLUDE_ULTRA */#ifdef INCLUDE_EEX { "eex", eexattach, (char*)IO_ADRS_EEX, INT_VEC_EEX, INT_LVL_EEX, NTFDS_EEX, CONFIG_EEX},#endif /* INCLUDE_EEX */#ifdef INCLUDE_ELT { "elt", eltattach, (char*)IO_ADRS_ELT, INT_VEC_ELT, INT_LVL_ELT, NRF_ELT, CONFIG_ELT},#endif /* INCLUDE_ELT */#ifdef INCLUDE_ENE { "ene", eneattach, (char*)IO_ADRS_ENE, INT_VEC_ENE, INT_LVL_ENE},#endif /* INCLUDE_ELT */#ifdef INCLUDE_ESMC { "esmc", esmcattach, (char*)IO_ADRS_ESMC, INT_VEC_ESMC, INT_LVL_ESMC, CONFIG_ESMC, RX_MODE_ESMC},#endif /* INCLUDE_ESMC */#ifdef INCLUDE_QU { "qu", quattach, (char*)IO_ADRS_QU_EN, INT_VEC_QU_EN, QU_EN_SCC, QU_EN_TX_BD, QU_EN_RX_BD, QU_EN_TX_OFF, QU_EN_RX_OFF, QU_EN_MEM},#endif /* INCLUDE_QU */#ifdef INCLUDE_SN { "sn", snattach, (char*)IO_ADRS_SN, INT_VEC_SN },#endif /* INCLUDE_SN */#ifdef INCLUDE_FN { "fn", fnattach },#endif /* INCLUDE_FN */#ifdef INCLUDE_SM_NET { "sm", smNetAttach2, 0, 0, 0, 0, 0, 0, 0, 0 },#endif /* INCLUDE_SM_NET */#ifdef INCLUDE_PCMCIA { "pcmcia", pcmciaattach, 0, 0, 0, 0, 0, 0 },#endif /* INCLUDE_PCMCIA */#ifdef INCLUDE_PPP {"ppp", 0, 0, 0, 0, 0},#endif /* INCLUDE_PPP */#ifdef INCLUDE_SLIP { "sl", 0, 0, 0, 0, 0 },#endif /* INCLUDE_SLIP */ { "lo", loattach, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0 }, };#endif /* INCLUDE_NETWORK */SYMTAB_ID sysSymTbl;int consoleFd; char consoleName [20]; int sysStartType; BOOL scsiInitialized = FALSE;int bootCmdTaskPriority = 1;int bootCmdTaskOptions = VX_SUPERVISOR_MODE;int bootCmdTaskStackSize = BOOT_CMD_STACK_SIZE;#define TRAP_VALUE_1 0x12348765#define TRAP_VALUE_2 0x5a5ac3c3LOCAL volatile UINT32 trapValue1 = TRAP_VALUE_1;LOCAL volatile UINT32 trapValue2 = TRAP_VALUE_2;#ifdef INCLUDE_NETWORK#ifdef INCLUDE_TCPTCP_CFG_PARAMS tcpCfgParams = { TCP_FLAGS_DFLT, TCP_SND_SIZE_DFLT, TCP_RCV_SIZE_DFLT, TCP_CON_TIMEO_DFLT, TCP_REXMT_THLD_DFLT, TCP_MSS_DFLT, TCP_RND_TRIP_DFLT, TCP_IDLE_TIMEO_DFLT, TCP_MAX_PROBE_DFLT, };#endif #ifdef INCLUDE_UDPUDP_CFG_PARAMS udpCfgParams = { UDP_FLAGS_DFLT, UDP_SND_SIZE_DFLT, UDP_RCV_SIZE_DFLT };#endif #ifdef INCLUDE_ICMPICMP_CFG_PARAMS icmpCfgParams = { ICMP_FLAGS_DFLT };#endif IP_CFG_PARAMS ipCfgParams = { IP_FLAGS_DFLT, IP_TTL_DFLT, IP_QLEN_DFLT, IP_FRAG_TTL_DFLT };M_CL_CONFIG mClBlkConfig = { NUM_NET_MBLKS_MIN, NUM_CL_BLKS_MIN, NULL, 0 };CL_DESC clDescTbl [] = { {64, NUM_64_MIN, NULL, 0}, {128, NUM_128_MIN, NULL, 0}, {256, NUM_256_MIN, NULL, 0}, {512, NUM_512_MIN, NULL, 0}, {1024, NUM_1024_MIN, NULL, 0}, };int clDescTblNumEnt = (NELEMENTS(clDescTbl));M_CL_CONFIG sysMclBlkConfig = { NUM_SYS_MBLKS_MIN, NUM_SYS_CL_BLKS_MIN, NULL, 0 };CL_DESC sysClDescTbl [] = { {64, NUM_SYS_64_MIN, NULL, 0}, {128, NUM_SYS_128_MIN, NULL, 0}, {256, NUM_SYS_256_MIN, NULL, 0}, {512, NUM_SYS_512_MIN, NULL, 0}, }; int sysClDescTblNumEnt = (NELEMENTS(sysClDescTbl));#ifdef INCLUDE_PPP#ifndef PPP_OPTIONS_FLAGS#define PPP_OPTIONS_FLAGS ((PPP_OPT_NO_ALL << PPP_S_NO_ALL) | \ (PPP_OPT_PASSIVE_MODE << PPP_S_PASSIVE_MODE) | \ (PPP_OPT_SILENT_MODE << PPP_S_SILENT_MODE) | \ (PPP_OPT_DEFAULTROUTE << PPP_S_DEFAULTROUTE) | \ (PPP_OPT_PROXYARP << PPP_S_PROXYARP) | \ (PPP_OPT_IPCP_ACCEPT_LOCAL << PPP_S_IPCP_ACCEPT_LOCAL) | \ (PPP_OPT_IPCP_ACCEPT_REMOTE << PPP_S_IPCP_ACCEPT_REMOTE) | \ (PPP_OPT_NO_IP << PPP_S_NO_IP) | \ (PPP_OPT_NO_ACC << PPP_S_NO_ACC) | \ (PPP_OPT_NO_PC << PPP_S_NO_PC) | \ (PPP_OPT_NO_VJ << PPP_S_NO_VJ) | \ (PPP_OPT_NO_VJCCOMP << PPP_S_NO_VJCCOMP) | \ (PPP_OPT_NO_ASYNCMAP << PPP_S_NO_ASYNCMAP) | \ (PPP_OPT_NO_MN << PPP_S_NO_MN) | \ (PPP_OPT_NO_MRU << PPP_S_NO_MRU) | \ (PPP_OPT_NO_PAP << PPP_S_NO_PAP) | \ (PPP_OPT_NO_CHAP << PPP_S_NO_CHAP) | \
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -