/*************************************************************************** * Broadcom Corp. Confidential * Copyright 2001, 2002 Broadcom Corp. All Rights Reserved. * * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED * SOFTWARE LICENSE AGREEMENT BETWEEN THE USER AND BROADCOM. * YOU HAVE NO RIGHT TO USE OR EXPLOIT THIS MATERIAL EXCEPT * SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. * *************************************************************************** * File Name : bcm63xx_util.h * * Created on : 04/18/2002 seanl ***************************************************************************/ #if !defined(_BCM63XX_UTIL_H_) #define _BCM63XX_UTIL_H_ #include "lib_types.h" #include "lib_string.h" #include "lib_queue.h" #include "lib_malloc.h" #include "lib_printf.h" #include "cfe_iocb.h" #include "cfe_device.h" #include "cfe_console.h" #include "cfe_devfuncs.h" #include "cfe_timer.h" #include "cfe_ioctl.h" #include "cfe_error.h" #include "env_subr.h" #include "ui_command.h" #include "cfe.h" #include "net_ebuf.h" #include "net_ether.h" #include "net_api.h" #include "cfe_fileops.h" #include "bsp_config.h" #include "cfe_mem.h" #include "cfe_loader.h" #include "addrspace.h" #include "dev_bcm63xx_flash.h" #include "bcm_hwdefs.h" #include "bcmTag.h" #include "boardparms.h" #include "boardparms_voice.h" #include "bcm_map.h" extern unsigned long cfe_sdramsize; #define NAND_FLASH_BOOT_IMAGE_NAME "vmlinux.lz" #define BOARD_IMAGE_DOWNLOAD_ADDRESS \ ((cfe_sdramsize > 0x00800000) ? 0x80800000 : 0x80000000) #define BOARD_IMAGE_DOWNLOAD_SIZE \ ((cfe_sdramsize > 0x00800000) ? cfe_sdramsize - 0x00800000 : 0x00400000) #define MAX_PROMPT_LEN 50 // assume no one wants to type more than 50 chars #define MAX_MAC_STR_LEN 19 // mac address string 18+1 in regular format #define PROMPT_DEFINE_LEN 2 #define MASK_LEN 8 // vxworks like ffffff00 typedef struct { char* promptName; char* errorPrompt; char promptDefine[PROMPT_DEFINE_LEN]; char parameter[MAX_PROMPT_LEN]; int maxValueLength; int (*func)(char *); int enabled; } PARAMETER_SETTING, *PPARAMETER_SETTING; #define IP_PROMPT "Invalid ip address. eg. 192.168.1.200[:ffffff00]" #define RUN_FROM_PROMPT "f = jump to flash; h = tftpd from host" #define HOST_FN_PROMPT "eg. vmlinux" #define FLASH_FN_PROMPT "eg. bcm963xx_fs_kernel" #define BOOT_DELAY_PROMPT "range 0-9, 0=forever prompt" #define BOOT_PARTITION_PROMPT "1 = latest image, 2 = previous image" #define AFE_PROMPT "Invalid AFE ID eg. 0x10608100" // error input prompts #define BOARDID_STR_PROMPT "Invalid board ID" #define MAC_CT_PROMPT "Invalid MAC addresses number: 1 - 32" #define MAC_ADDR_PROMPT "Invalid MAC address format: eg. 12:34:56:ab:cd:ef or 123456abcdef" #define PSI_SIZE_PROMPT "Invalid PSI size: (1-64) Kbytes" #define BACKUP_PSI_PROMPT "Enable Backup PSI (0 or 1)" #define SYSLOG_SIZE_PROMPT "Invalid System Log size: (0-256) Kbytes" #define CPU_TP_PROMPT "Invalid thread number: [0|1]" #define GPON_SN_PROMPT "Invalid GPON Serial Number" #define GPON_PW_PROMPT "Invalid GPON Password" #define WPS_DEVICE_PIN_PROMPT "Invalid WPS Device Pin" // bootline definition: // Space is the deliminator of the parameters. Currently supports following parameters: // t=xxx.xxx.xxx.xxx h=xxx.xxx.xxx.xxx g=xxx.xxx.xxx.xxx r=f/h (run from flash or host) // f=vmlinux (if r=h) i=bcm963xx_fs_kernel d=3 (default delay, range 0-9, 0=forever prompt) #define BOOT_IP_LEN 18 // "t=xxx.xxx.xxx.xxx" #define BOOT_FILENAME_LEN 50 // "f=vmlinux" typedef struct { char boardIp[BOOT_IP_LEN]; char boardMask[BOOT_IP_LEN]; // set for the board only and ignore for the host/gw. fmt :ffffff00 char hostIp[BOOT_IP_LEN]; char gatewayIp[BOOT_IP_LEN]; char runFrom; char hostFileName[BOOT_FILENAME_LEN]; char flashFileName[BOOT_FILENAME_LEN]; int bootDelay; char bootPartition; } BOOT_INFO, *PBOOT_INFO; #define LED_OFF 0 #define LED_ON 1 extern void getBootLine(void); extern void setDefaultBootline(void); extern int printSysInfo(void); extern int changeBootLine(void); extern int changeAfeId(void); extern void dumpHex(unsigned char *start, int len); extern BOOT_INFO bootInfo; extern void enet_init(void); extern int verifyTag(PFILE_TAG pTag, int verbose); extern int flashImage(unsigned char *ptr); extern int writeWholeImage(unsigned char *ptr, int size); /* Foxconn add start by Cliff Wang, 03/23/2010 */ extern int bcm63xx_run(int breakIntoCfe); /* Foxconn add end by Cliff Wang, 03/23/2010 */ extern int getPartitionFromTag( PFILE_TAG pTag ); extern PFILE_TAG getTagFromPartition(int imageNumber); extern PFILE_TAG getBootImageTag(void); extern int parsexdigit(char str); extern int setDefaultBoardParam(void); /* Bob added to set default board parameters, 11/01/2010 */ extern int setBoardParam(void); extern int setGponBoardParam(void); extern int setWpsDevicePinBoardParam(void); extern int setVoiceBoardParam(void); extern int getBoardParam(void); extern void displayBoardParam(void); extern int processPrompt(PPARAMETER_SETTING promptPtr, int promptCt); extern UINT32 getCrc32(unsigned char *pdata, UINT32 size, UINT32 crc); extern int yesno(void); extern int bcm63xx_cfe_rawload(cfe_loadargs_t *la); extern int bcm63xx_cfe_elfload(cfe_loadargs_t *la); extern void setGpio (unsigned short led_gpio, unsigned short led_state); extern void setLed ( unsigned short led, unsigned short led_state ); extern void setAllLedsOff(void); extern void setPowerOnLedOn(void); extern void setBreakIntoCfeLed(void); extern void softReset(void); extern void validateNandPartTbl(PNVRAM_DATA pNvramData); extern void writeNvramData(PNVRAM_DATA pNvramData); extern int readNvramData(PNVRAM_DATA pNvramData); /* Foxconn add start by Jenny Zhao, 07/02/2008*/ extern int nmrp_led_toggle(void); extern int power_led_toggle(int state); extern int verify_board_id(char *buf); /* Foxconn add end by Jenny Zhao, 07/02/2008*/ #endif // _BCM63XX_UTIL_H_