diff options
Diffstat (limited to 'cfe/cfe/arch/mips/board/bcm63xx_ram/include/bcm63xx_util.h')
-rwxr-xr-x | cfe/cfe/arch/mips/board/bcm63xx_ram/include/bcm63xx_util.h | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/cfe/cfe/arch/mips/board/bcm63xx_ram/include/bcm63xx_util.h b/cfe/cfe/arch/mips/board/bcm63xx_ram/include/bcm63xx_util.h new file mode 100755 index 0000000..273b9c7 --- /dev/null +++ b/cfe/cfe/arch/mips/board/bcm63xx_ram/include/bcm63xx_util.h @@ -0,0 +1,167 @@ +/*************************************************************************** + * 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_ + |