1 /***************************************************************************
2 * Broadcom Corp. Confidential
3 * Copyright 2001 Broadcom Corp. All Rights Reserved.
5 * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED
6 * SOFTWARE LICENSE AGREEMENT BETWEEN THE USER AND BROADCOM.
7 * YOU HAVE NO RIGHT TO USE OR EXPLOIT THIS MATERIAL EXCEPT
8 * SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
10 ***************************************************************************
11 * File Name : board_api.h (adapted from flash_api.h by Yen Tran)
13 * Created on : 02/20/2002 seanl
14 ***************************************************************************/
16 #if !defined(_BOARD_API_H_)
19 #if defined(__cplusplus)
23 #if !defined(_BOARD_H)
25 // for the action in BOARD_IOCTL_PARMS for flash operation
39 typedef struct boardIoctParms
45 BOARD_IOCTL_ACTION action; /* flash read/write: nvram, persistent, bcm image */
60 kLedEnd, // NOTE: Insert the new led name before this one. Alway stay at the end.
65 kLedStateOff, /* turn led off */
66 kLedStateOn, /* turn led on */
67 kLedStateFail, /* turn led on red */
68 kLedStateBlinkOnce, /* blink once, ~100ms and ignore the same call during the 100ms period */
69 kLedStateSlowBlinkContinues, /* slow blink continues at ~600ms interval */
70 kLedStateFastBlinkContinues, /* fast blink continues at ~200ms interval */
74 /* GPIO Definitions */
75 #define GPIO_BOARD_ID_1 0x0020
76 #define GPIO_BOARD_ID_2 0x0040
77 #define GPIO_BOARD_ID_3 0x0080
79 /* Identify BCM96345 board type by checking GPIO bits.
80 * GPIO bit 7 6 5 Board type
90 #define BOARD_ID_BCM9634X_MASK (GPIO_BOARD_ID_1|GPIO_BOARD_ID_2|GPIO_BOARD_ID_3)
91 #define BOARD_ID_BCM96345SV (GPIO_BOARD_ID_2|GPIO_BOARD_ID_3)
92 #define BOARD_ID_BCM96345R00 (GPIO_BOARD_ID_1|GPIO_BOARD_ID_2|GPIO_BOARD_ID_3)
93 #define BOARD_ID_BCM96345I (GPIO_BOARD_ID_1|GPIO_BOARD_ID_3)
94 #define BOARD_ID_BCM96345R10 (GPIO_BOARD_ID_3)
95 #define BOARD_ID_BCM96345USB (GPIO_BOARD_ID_1|GPIO_BOARD_ID_2)
96 #define BOARD_ID_BCM96345GW (GPIO_BOARD_ID_2)
98 /* Defines. for board driver */
99 #define BOARD_IOCTL_MAGIC 'B'
100 #define BOARD_DRV_MAJOR 206
102 #define BOARD_IOCTL_FLASH_INIT \
103 _IOWR(BOARD_IOCTL_MAGIC, 0, BOARD_IOCTL_PARMS)
105 #define BOARD_IOCTL_FLASH_WRITE \
106 _IOWR(BOARD_IOCTL_MAGIC, 1, BOARD_IOCTL_PARMS)
108 #define BOARD_IOCTL_FLASH_READ \
109 _IOWR(BOARD_IOCTL_MAGIC, 2, BOARD_IOCTL_PARMS)
111 #define BOARD_IOCTL_GET_NR_PAGES \
112 _IOWR(BOARD_IOCTL_MAGIC, 3, BOARD_IOCTL_PARMS)
114 #define BOARD_IOCTL_DUMP_ADDR \
115 _IOWR(BOARD_IOCTL_MAGIC, 4, BOARD_IOCTL_PARMS)
117 #define BOARD_IOCTL_SET_MEMORY \
118 _IOWR(BOARD_IOCTL_MAGIC, 5, BOARD_IOCTL_PARMS)
120 #define BOARD_IOCTL_MIPS_SOFT_RESET \
121 _IOWR(BOARD_IOCTL_MAGIC, 6, BOARD_IOCTL_PARMS)
123 #define BOARD_IOCTL_LED_CTRL \
124 _IOWR(BOARD_IOCTL_MAGIC, 7, BOARD_IOCTL_PARMS)
126 #define BOARD_IOCTL_GET_ID \
127 _IOWR(BOARD_IOCTL_MAGIC, 8, BOARD_IOCTL_PARMS)
129 #define BOARD_IOCTL_GET_MAC_ADDRESS \
130 _IOWR(BOARD_IOCTL_MAGIC, 9, BOARD_IOCTL_PARMS)
132 #define BOARD_IOCTL_RELEASE_MAC_ADDRESS \
133 _IOWR(BOARD_IOCTL_MAGIC, 10, BOARD_IOCTL_PARMS)
135 #define BOARD_IOCTL_GET_PSI_SIZE \
136 _IOWR(BOARD_IOCTL_MAGIC, 11, BOARD_IOCTL_PARMS)
138 #define BOARD_IOCTL_GET_SDRAM_SIZE \
139 _IOWR(BOARD_IOCTL_MAGIC, 12, BOARD_IOCTL_PARMS)
141 #define BOARD_IOCTL_GET_ENET_MODE_FLAG \
142 _IOWR(BOARD_IOCTL_MAGIC, 13, BOARD_IOCTL_PARMS)
144 #define BOARD_IOCTL_SET_ENET_MODE_FLAG \
145 _IOWR(BOARD_IOCTL_MAGIC, 14, BOARD_IOCTL_PARMS)
147 #define BOARD_IOCTL_GET_BOOTLINE \
148 _IOWR(BOARD_IOCTL_MAGIC, 15, BOARD_IOCTL_PARMS)
150 #define BOARD_IOCTL_SET_BOOTLINE \
151 _IOWR(BOARD_IOCTL_MAGIC, 16, BOARD_IOCTL_PARMS)
153 #define BOARD_IOCTL_GET_BASE_MAC_ADDRESS \
154 _IOWR(BOARD_IOCTL_MAGIC, 17, BOARD_IOCTL_PARMS)
156 #define BOARD_IOCTL_GET_CHIP_ID \
157 _IOWR(BOARD_IOCTL_MAGIC, 18, BOARD_IOCTL_PARMS)
159 #define BOARD_IOCTL_GET_NUM_ENET \
160 _IOWR(BOARD_IOCTL_MAGIC, 19, BOARD_IOCTL_PARMS)
162 #define BOARD_IOCTL_GET_CFE_VER \
163 _IOWR(BOARD_IOCTL_MAGIC, 20, BOARD_IOCTL_PARMS)
165 #define BOARD_IOCTL_GET_ENET_CFG \
166 _IOWR(BOARD_IOCTL_MAGIC, 21, BOARD_IOCTL_PARMS)
168 #define BOARD_IOCTL_GET_GPIO \
169 _IOWR(BOARD_IOCTL_MAGIC, 22, BOARD_IOCTL_PARMS)
171 #define BOARD_IOCTL_SET_GPIO \
172 _IOWR(BOARD_IOCTL_MAGIC, 23, BOARD_IOCTL_PARMS)
174 #define BOARD_IOCTL_GET_RESET_STATUS \
175 _IOWR(BOARD_IOCTL_MAGIC, 24, BOARD_IOCTL_PARMS)
179 int sysScratchPadSet(char *tokenId, char *tokBuf, int bufLen);
180 int sysScratchPadGet(char *tokenId, char *tokBuf, int bufLen);
181 int sysPersistentGet(char *string,int strLen,int offset);
182 int sysPersistentSet(char *string,int strLen,int offset);
183 int sysNvRamSet(char *string,int strLen,int offset);
184 int sysNvRamGet(char *string,int strLen,int offset);
185 void sysFlashImageInit(void);
186 int sysFlashImageGet(void *image, int size, int addr,
187 BOARD_IOCTL_ACTION imageType);
188 int sysFlashImageSet(void *image, int size, int addr,
189 BOARD_IOCTL_ACTION imageType);
190 int sysNrPagesGet(void);
191 int sysDumpAddr(char *addr, int len);
192 int sysSetMemory(char *addr, int size, unsigned long value );
193 void sysMipsSoftReset(void);
194 int sysGetBoardIdName(char *name, int length);
195 int sysGetMacAddress( unsigned char *pucaAddr, unsigned long ulId );
196 int sysReleaseMacAddress( unsigned char *pucaAddr );
197 int sysGetSdramSize( void );
198 int sysGetPsiSize( void );
199 int sysGetEnetModeFlag(void);
200 int sysSetEnetModeFlag(unsigned long);
201 int sysGetBootline(char *string,int strLen);
202 int sysSetBootline(char *string,int strLen);
203 void sysLedCtrl(BOARD_LED_NAME, BOARD_LED_STATE);
204 int sysFlashSizeGet(void);
205 int sysGetBaseMacAddress(unsigned char *pucaAddr);
206 int sysGetChipId(void);
207 int sysGetNumEnet(void);
208 int sysGetCFEVersion(char *string, int strLen);
209 int sysGetEnetCfg(char *string, int strLen);
210 int sysGetResetStatus( void );
211 #if defined(__cplusplus)
215 #endif /* _BOARD_API_H_ */