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

📄 bootconfig.c

📁 vxworks MPC8541 BSP
💻 C
📖 第 1 页 / 共 5 页
字号:
		break;	    case 't':		/* transpose(?) (running out of letters!) */		if ((getArg (&pLine, &adr, HEX, !OPT) == OK) &&		    (getArg (&pLine, &adr2, HEX, !OPT) == OK) &&		    (getArg (&pLine, &nbytes, HEX, !OPT) == OK))		    {		    bcopy ((char *) adr, (char *) adr2, nbytes);		    }		break;	    case 'm':		/* modify */		if (getArg (&pLine, &adr, HEX, !OPT) == OK)		    m ((char *) adr);		break;#ifdef	TARGET_HK_V2F	    case 's':		/* system controller */		{		extern ULONG sysBCLSet ();		if (getArg (&pLine, &value, DEC, !OPT) == OK)		    {		    if (value != 0)			{			(void) sysBCLSet ((ULONG)HK_BCL_SYS_CONTROLLER,					  (ULONG)HK_BCL_SYS_CONTROLLER);			printf ("System controller on.\n");			}		    else			{			(void) sysBCLSet ((ULONG)HK_BCL_SYS_CONTROLLER,					  (ULONG)0);			printf ("System controller off.\n");			}		    }		break;		}#endif	/* TARGET_HK_V2F */#if defined(TARGET_FRC_30) || defined(TARGET_FRC_31) || defined(TARGET_FRC_33)	    case 's':		/* system controller */		if (getArg (&pLine, &value, DEC, !OPT) == OK)		    {		    if (value != 0)			{			*FGA_CTL1 |= FGA_CTL1_SCON;			printf ("System controller on.\n");			}		    else			{			*FGA_CTL1 &= ~FGA_CTL1_SCON;			printf ("System controller off.\n");			}		    }		break;#endif	/* TARGET_FRC_30 || TARGET_FRC_31 || TARGET_FRC_33 */	    case 'p':		/* print boot params */		bootParamsShow (BOOT_LINE_ADRS);		break;	    case 'c':		/* change boot params */		bootParamsPrompt (BOOT_LINE_ADRS);                if (strlen(BOOT_LINE_ADRS) <= BOOT_LINE_SIZE)                    {                    if ((sysNvRamSet (BOOT_LINE_ADRS,                        strlen (BOOT_LINE_ADRS) + 1, 0)) == ERROR)                        printf("\nNOTE: Bootline not saved to NVRAM\n");                    }                else                    printf("\nWARNING:Bootline longer than BOOT_LINE_SIZE \(%d bytes). Not saved to NVRAM\n", (int) BOOT_LINE_SIZE);                break;	    case 'g':		/* go */		if (getArg (&pLine, (int *) &entry, HEX, !OPT) == OK)		    go (entry);		break;#ifdef  INCLUDE_NETWORK	    case 'n':		netifAdrsPrint (pLine);		break;#ifdef ETHERNET_ADR_SET	    case 'N':		mEnet (pLine);		break;#endif  /* ETHERNET_ADR_SET */#endif  /* INCLUDE_NETWORK */	    case '?':			/* help */            case 'h':			/* help */		bootHelp ();		break;            case '@':			/* load and go with internal params */	    case '$':			/* load and go with internal params */		if (bootLoad (pLine, &entry) == OK)		    {		    go (entry);		    }		else		    {		    taskDelay (sysClkRateGet ());	/* pause a second */		    reboot (BOOT_NO_AUTOBOOT);		/* something is awry */		    }		break;	    case 'l':			/* load with internal params */		if (bootLoad (pLine, &entry) == OK)		    {		    printf ("entry = 0x%x\n", (int) entry);		    }		else		    {		    taskDelay (sysClkRateGet ());	/* pause a second */		    reboot (BOOT_NO_AUTOBOOT);		/* something is awry */		    }		break;            case 'v':                   /* print version & logo */                printBootLogo ();                break;	    default:		printf ("Unrecognized command. Type '?' for help.\n");		break;            } /* switch */        } /* FOREVER */#endif /* INCLUDE_BOOTSHELL */    }/******************************************************************************** autoboot - do automatic boot sequence** RETURNS: Doesn't return if successful (starts execution of booted system).*/LOCAL char autoboot     (    int timeout		/* timeout time in seconds */    )    {    ULONG	autoBootTime;    int		timeLeft;    UINT	timeMarker;    int		bytesRead = 0;    FUNCPTR	entry;    char	key;    if (timeout > 0)	{	printf ("\nPress any key to stop auto-boot...\n");	/* Loop looking for a char, or timeout after specified seconds */	autoBootTime = tickGet () + sysClkRateGet () * timeout;	timeMarker = tickGet () + sysClkRateGet ();	timeLeft = timeout;	printf ("%2d\r", timeLeft);	 while ((tickGet () < autoBootTime) && (bytesRead == 0))	    {	    (void) ioctl (consoleFd, FIONREAD, (int) &bytesRead);	    if (tickGet () == timeMarker)		{		timeMarker = tickGet () + sysClkRateGet ();		printf ("%2d\r", --timeLeft);		}	    }	}    if (bytesRead == 0)    /* nothing typed so auto-boot */	{	/* put the console back in line mode so it echoes (so's you can bang	 * on it to see if it's still alive) */	(void) ioctl (consoleFd, FIOSETOPTIONS, OPT_TERMINAL);	printf ("\nauto-booting...\n\n");        /* ROS_BSP */#ifdef INCLUDE_BOOTSHELL	runVersion();	cmdLoop (); /* run fail (maybe no version exists), enter into bshell */#else  /* INCLUDE_BOOTSHELL */	if (bootLoad (BOOT_LINE_ADRS, &entry) == OK)	    go (entry);				/* ... and never return */	else	    {	    printf ("Can't load boot file!!\n");	    taskDelay (sysClkRateGet ());	/* pause a second */	    reboot (BOOT_NO_AUTOBOOT);		/* something is awry */	    }#endif /* INCLUDE_BOOTSHELL */	}    else	{	/* read the key that stopped autoboot */	read (consoleFd, &key, 1);	return (key & 0x7f);		/* mask off parity in raw mode */	}    return (ERROR);			/* for lint - can't really get here */    }/******************************************************************************** printBootLogo - print initial boot banner page*/ void printBootLogo (void)    {    /* ROS_BSP */    char name[20];    b_getMachineName (name);    printf ("\n");    printf ("ZXR10 Switch System Bootstrap\n");    printf ("%s System Boot Version: V"BSP_VERSION "\n", name);    printf ("Creation date: %s\n", creationDate);    printf ("Copyright (c) %s by ZTE Corporation \n", __DATE__);    /*    printf ("CPU: %s\n", sysModel ());    printf ("Version: %s\n", vxWorksVersion);    printf ("BSP version: " BSP_VERSION BSP_REV "\n");    printf ("Creation date: %s\n\n", creationDate);    */    }/********************************************************************************* bootHelp - print brief help list*/LOCAL void bootHelp (void)    {    static char *helpMsg[] =	{	"?",                      "- print this list",	"@",                      "- boot (load and go)",	"p",                      "- print boot params",	"c",                      "- change boot params",	"l",                      "- load boot file",	"g adrs",                 "- go to adrs",	"d adrs[,n]",             "- display memory",	"m adrs",                 "- modify memory",	"f adrs, nbytes, value",  "- fill memory",	"t adrs, adrs, nbytes",   "- copy memory",	"e",                      "- print fatal exception",        "v",                      "- print boot logo with version",#ifdef INCLUDE_NETWORK	"n netif",	  	  "- print network interface device address",#if defined(ETHERNET_ADR_SET)	"N",			  "- set ethernet address",#endif  /* ETHERNET_ADR_SET */#endif  /* INCLUDE_NETWORK */#if defined(TARGET_HK_V2F) || defined(TARGET_FRC_30) || \    defined(TARGET_FRC_31) || defined(TARGET_FRC_33)	"s [0/1]",                "- system controller 0 = off, 1 = on",#endif	/* TARGET_HK_V2F/FRC_30/FRC_31/FRC_33 */	"$dev(0,procnum)host:/file h=# e=# b=# g=# u=usr [pw=passwd] f=#", "",	"                          tn=targetname s=script o=other", "",#ifdef	INCLUDE_SCSI_BOOT	"boot device: scsi=id,lun              file name: /sd0/vxWorks","",#endif	/*INCLUDE_SCSI_BOOT*/#ifdef	INCLUDE_FD	"boot device: fd=drive,fdType          file name: /fd0/vxWorks","",#endif	/* INCLUDE_FD */#ifdef	INCLUDE_IDE	"boot device: ide=drive,configType     file name: /ide0/vxWorks","",#endif	/* INCLUDE_IDE */#ifdef	INCLUDE_ATA	"boot device: ata=ctrl,drive           file name: /ata0/vxWorks","",#endif	/* INCLUDE_ATA */#ifdef	INCLUDE_PCMCIA	"boot device: pcmcia=sock              file name: /pcmcia0/vxWorks","",#endif	/* INCLUDE_PCMCIA */#ifdef	INCLUDE_TFFS	"boot device: tffs=drive,removable     file name: /tffs0/vxWorks","",#endif	/* INCLUDE_TFFS */#ifdef INCLUDE_TSFS_BOOT	"boot device: tsfs                     file name: /tgtsvr/vxWorks","",#endif /*INCLUDE_TSFS_BOOT */	"Boot flags:",		  "",#if defined(TARGET_HK_V2F) || defined(TARGET_FRC_30) || \    defined(TARGET_FRC_31) || defined(TARGET_FRC_33)	"  0x01  - don't be system controller",	"",#endif	/* TARGET_HK_V2F/FRC_30/FRC_31/FRC_33 */	"  0x02  - load local system symbols",		"",	"  0x04  - don't autoboot",			"",	"  0x08  - quick autoboot (no countdown)",	"",#ifdef  INCLUDE_NETWORK	"  0x20  - disable login security",		"",#ifdef  INCLUDE_DHCPC	"  0x40  - use dhcp to get boot parameters",	"",#else#ifdef INCLUDE_BOOTP	"  0x40  - use bootp to get boot parameters",	"",#else	"  0x40  - autoconfigure: NOT AVAILABLE (no method installed)",	"",#endif /* INCLUDE_BOOTP */#endif /* INCLUDE_DHCPC */	"  0x80  - use tftp to get boot image",		"",	"  0x100 - use proxy arp",			"",#endif  /* INCLUDE_NETWORK */	NULL	};    FAST char **pMsg;#ifdef  INCLUDE_NETWORK    FAST NETIF *pNif;#endif  /* INCLUDE_NETWORK */#ifdef INCLUDE_END    int count;    char       muxDevName[8];    END_TBL_ENTRY* pDevTbl;#endif /* INCLUDE_END */    printf ("\n");    for (pMsg = helpMsg; *pMsg != NULL; pMsg += 2)	printf (" %-21s %s\n", *pMsg, *(pMsg + 1));#ifdef  INCLUDE_NETWORK    printf ("\navailable boot devices:");#ifdef INCLUDE_END    printf ("Enhanced Network Devices\n");    for (count = 0, pDevTbl = endDevTbl; pDevTbl->endLoadFunc != END_TBL_END;         pDevTbl++, count++)        {        if (!pDevTbl->processed)            {            muxDevName [0] = EOS;            pDevTbl->endLoadFunc (muxDevName, NULL);            printf (" %s%d", muxDevName, pDevTbl->unit);            }        }#endif /* INCLUDE_END */        for (pNif = netIf; pNif->ifName != 0; pNif++)	{	if (strncmp (pNif->ifName, "lo", 2) != 0)	    printf (" %s", pNif->ifName);	}#endif  /* INCLUDE_NETWORK */#ifdef	INCLUDE_SCSI_BOOT    printf (" scsi");#endif	/*INCLUDE_SCSI_BOOT*/#ifdef  INCLUDE_FD    printf (" fd");#endif  /* INCLUDE_FD */#ifdef  INCLUDE_IDE    printf (" ide");#endif  /* INCLUDE_IDE */#ifdef  INCLUDE_ATA    printf (" ata");#endif  /* INCLUDE_ATA */#ifdef  INCLUDE_TFFS    printf (" tffs");#endif  /* INCLUDE_TFFS */#ifdef  INCLUDE_TSFS_BOOT    printf (" tsfs");#endif  /* INCLUDE_TSFS_BOOT */    printf ("\n");    }/********************************************************************************* bootLoad - load a module into memory** RETURNS: OK or ERROR*/LOCAL STATUS bootLoad  

⌨️ 快捷键说明

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