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
38 typedef struct boardIoctParms
44 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_WLAN_ANT_INUSE \
169 _IOWR(BOARD_IOCTL_MAGIC, 22, BOARD_IOCTL_PARMS)
171 #define BOARD_IOCTL_SET_TRIGGER_EVENT \
172 _IOWR(BOARD_IOCTL_MAGIC, 23, BOARD_IOCTL_PARMS)
174 #define BOARD_IOCTL_GET_TRIGGER_EVENT \
175 _IOWR(BOARD_IOCTL_MAGIC, 24, BOARD_IOCTL_PARMS)
177 #define BOARD_IOCTL_UNSET_TRIGGER_EVENT \
178 _IOWR(BOARD_IOCTL_MAGIC, 25, BOARD_IOCTL_PARMS)
180 #define BOARD_IOCTL_SET_SES_LED \
181 _IOWR(BOARD_IOCTL_MAGIC, 26, BOARD_IOCTL_PARMS)
183 #define BOARD_IOCTL_GET_CNTRY_SEL \
184 _IOWR(BOARD_IOCTL_MAGIC, 27, BOARD_IOCTL_PARMS)
188 int sysScratchPadSet(char *tokenId, char *tokBuf, int bufLen);
189 int sysScratchPadGet(char *tokenId, char *tokBuf, int bufLen);
190 int sysPersistentGet(char *string,int strLen,int offset);
191 int sysPersistentSet(char *string,int strLen,int offset);
192 int sysNvRamSet(char *string,int strLen,int offset);
193 int sysNvRamGet(char *string,int strLen,int offset);
194 void sysFlashImageInit(void);
195 int sysFlashImageGet(void *image, int size, int addr,
196 BOARD_IOCTL_ACTION imageType);
197 int sysFlashImageSet(void *image, int size, int addr,
198 BOARD_IOCTL_ACTION imageType);
199 int sysNrPagesGet(void);
200 int sysDumpAddr(char *addr, int len);
201 int sysSetMemory(char *addr, int size, unsigned long value );
202 void sysMipsSoftReset(void);
203 int sysGetBoardIdName(char *name, int length);
204 int sysGetMacAddress( unsigned char *pucaAddr, unsigned long ulId );
205 int sysReleaseMacAddress( unsigned char *pucaAddr );
206 int sysGetSdramSize( void );
207 int sysGetPsiSize( void );
208 int sysGetEnetModeFlag(void);
209 int sysSetEnetModeFlag(unsigned long);
210 int sysGetBootline(char *string,int strLen);
211 int sysSetBootline(char *string,int strLen);
212 void sysLedCtrl(BOARD_LED_NAME, BOARD_LED_STATE);
213 int sysFlashSizeGet(void);
214 int sysGetBaseMacAddress(unsigned char *pucaAddr);
215 int sysGetChipId(void);
216 int sysGetNumEnet(void);
217 int sysGetCFEVersion(char *string, int strLen);
218 int sysGetEnetCfg(char *string, int strLen);
219 int sysGetCountry(char *string, int strLen);
220 #if defined(__cplusplus)
224 #endif /* _BOARD_API_H_ */