⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bootconfig.c

📁 s3c2410 vxworks 的bsp
💻 C
📖 第 1 页 / 共 5 页
字号:
/* 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 + -