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

📄 bootconfig.c

📁 mpc5200 for bsp,it is have passed built.
💻 C
📖 第 1 页 / 共 5 页
字号:
/* bootConfig.c - system configuration module for boot ROMs *//*DESCRIPTIONThis is the WRS-supplied configuration module for the VxWorks boot ROM.It is a stripped-down version of usrConfig.c, having no VxWorks shell ordebugging facilities.  Its primary function is to load an object moduleover the network with either RSH or FTP.  Additionally, a simple set ofsingle letter commands is provided for displaying and modifying memorycontents.  Use this module as a starting point for placing applications in ROM.*/#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 "ifIndexLib.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"#ifdef INCLUDE_BOOTP#include "bootpLib.h"#endif /* INCLUDE_BOOTP */#ifdef	INCLUDE_PPP#include "pppLib.h"#endif	/* INCLUDE_PPP */#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 /* INCLUDE_SM_NET */#endif /* INCLUDE_SECOND_SMNET || ... */#if (defined(INCLUDE_SECOND_SMNET) && !defined(INCLUDE_SM_NET_ADDRGET))#  define INCLUDE_SM_NET_ADDRGET#endif /* INCLUDE_SECOND_SMNET && !INCLUDE_SM_NET_ADDRGET */#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		3	/* number of seconds before auto-boot *//* maximum line length for cmd input to 'm' and 'mEnet' routine */#define MAX_LINE        160	/* maximum line length for bootCmdLoop() command line input */#define BOOT_CMD_MAX_LINE        BOOT_LINE_SIZE#define RSHD		514	/* rshd service */#define DEC		FALSE	/* getArg parameters */#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 /* one partition on the disk */#endif  /* NUM_PARTITIONS_DISK_BOOT */#ifndef    PARTITION_DISK_BOOT#   define PARTITION_DISK_BOOT         1 /* partition mounted during boot */#endif  /* PARTITION_DISK_BOOT *//* DO NOT ADD ANYTHING BEFORE THE FIRST ROUTINE compressedEntry() */void		usrInit ();IMPORT void 	sysInitAlt ();extern int      random ();#if	(CPU_FAMILY==MIPS)IMPORT void 	sysGpInit ();#endif	/* (CPU_FAMILY==MIPS) */#ifdef  INCLUDE_NETWORK#ifdef ETHERNET_ADR_SETvoid		mEnet (char *);void 		sysEnetAddrGet ();void 		sysEnetAddrSet ();#endif  /* ETHERNET_ADR_SET */#endif  /* INCLUDE_NETWORK */#ifdef INCLUDE_ENDLOCAL void* findCookie(int unitNo, char* devName);#endif /* INCLUDE_END *//********************************************************************************* compressedEntry - compressed entry point after decompression ** This routine is the entry point after the bootroms decompress, if* compression is utilized.  This routine must be the first item of the* text segment of this file.  With ANSI C, strings will appear in text* segment so one should avoid entering strings, routines, or anything* else that might displace this routine from base of the text segment.** It is unwise to add functionality to this routine without due cause.* We are in the prehistoric period of system initialization.  ** NOMANUAL*/void compressedEntry     (    int startType    )    {#if (CPU_FAMILY==MIPS)    WRS_ASM (".extern _gp; la $gp,_gp");#endif#if	(CPU_FAMILY==I960)    sysInitAlt (startType);		/* jump to the i960 entry point */#else    usrInit (startType);		/* all others procede below */#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;	 /* Wind kernel configuration facility */#undef	INCLUDE_SHOW_ROUTINES		/* keep out kernel show routines */#undef	INCLUDE_SM_NET_SHOW#include "usrKernel.c"			/* kernel configuration facility *//* imports */IMPORT char	edata [];		/* defined by the loader */IMPORT char	end [];			/* defined by the loader */#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   /* INCLUDE_INITIAL_MEM_ALLOCATION */#define MEM_POOL_START_ADRS FREE_MEM_START_ADRS#endif  /* INCLUDE_INITIAL_MEM_ALLOCATION */#ifdef  INCLUDE_TSFS_BOOT		/* boot via Target Server File System */#if ((WDB_COMM_TYPE == WDB_COMM_SERIAL) && \	(CONSOLE_TTY == NONE || CONSOLE_TTY == WDB_TTY_CHANNEL))#define INCLUDE_TSFS_BOOT_VIO_CONSOLE	/* needed for Target Server Console */#endif#define INCLUDE_WDB			/* WDB agent needed for TSFS Boot */#define INCLUDE_WDB_TSFS		/* target-server file system */#undef  INCLUDE_WDB_BANNER		/* print banner after agent starts */#undef 	INCLUDE_WDB_TTY_TEST		/* test serial line communcation */#undef  INCLUDE_WDB_START_NOTIFY	/* notify the host of task creation */#undef  INCLUDE_WDB_USER_EVENT		/* user events handling */#undef  INCLUDE_WDB_CTXT		/* context control */#undef  INCLUDE_WDB_FUNC_CALL		/* spawn function as separate task */#undef  INCLUDE_WDB_GOPHER		/* gopher info gathering */#undef  INCLUDE_WDB_EXIT_NOTIFY		/* notify the host of task exit */#undef  INCLUDE_WDB_REG			/* get/set hardware registers */#undef  INCLUDE_WDB_EVENTPOINTS		/* eventpoints handling */#undef  INCLUDE_WDB_MEM			/* optional memory services */#undef  INCLUDE_WDB_BP			/* breakpoint support */#include "wdb/wdbEvtLib.h"#include "usrWdb.c"    			/* WDB agent configuration */#else	/* INCLUDE_TSFS_BOOT not defined */#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 *//* global variables */SYMTAB_ID	sysSymTbl;int		consoleFd;		/* fd of initial console device */char		consoleName [20];	/* console device name, eg. "/tyCo/0" */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -