diff options
Diffstat (limited to 'tools/firmware-utils')
-rw-r--r-- | tools/firmware-utils/Makefile | 2 | ||||
-rw-r--r-- | tools/firmware-utils/src/apmib.h | 2032 | ||||
-rw-r--r-- | tools/firmware-utils/src/bixutil.c | 188 | ||||
-rw-r--r-- | tools/firmware-utils/src/cvimg.c | 47 | ||||
-rw-r--r-- | tools/firmware-utils/src/mgbin.c | 431 |
5 files changed, 491 insertions, 2209 deletions
diff --git a/tools/firmware-utils/Makefile b/tools/firmware-utils/Makefile index ce9e1f7ce..c4e1623fa 100644 --- a/tools/firmware-utils/Makefile +++ b/tools/firmware-utils/Makefile @@ -62,7 +62,7 @@ define Host/Compile $(call cc, mkcameofw, -Wall) $(call cc,seama md5) $(call cc,fix-u-media-header cyg_crc32,-Wall) - $(call cc,bixutil) + $(call cc,mgbin) $(call cc,cvimg) endef diff --git a/tools/firmware-utils/src/apmib.h b/tools/firmware-utils/src/apmib.h index 0695457f9..19b971748 100644 --- a/tools/firmware-utils/src/apmib.h +++ b/tools/firmware-utils/src/apmib.h @@ -1,2035 +1,77 @@ -/* - * Header file of AP mib - * Authors: David Hsu <davidhsu@realtek.com.tw> - * - * $Id: apmib.h,v 1.54 2009/09/15 02:12:24 bradhuang Exp $ - * - */ - - -#ifndef INCLUDE_APMIB_H -#define INCLUDE_APMIB_H - -/* Forrest, 2007.11.07. - * If you want to let APMIB adopt shared memory mechanism, define it to 1. - * Or define it to 0 will go back to original local copy mechanism. - * Note: - * 1. I only use shared memory for HW Configuration (pHwSetting), Default - * Configuration (pMibDef) and Current Configuration (pMib). There is - * no shared memory for each linkchain now. - * 2. Because uClibc does not support POSIX inter-process semaphore, I have - * to use SYSTEM V semaphore and shared memory. So if you want to adopt - * shared memory mechanism, you must go to turn on CONFIG_SYSVIPC - * kernel config to support it. - */ -#ifdef CONFIG_APMIB_SHARED - #define CONFIG_APMIB_SHARED_MEMORY 1 -#else - #define CONFIG_APMIB_SHARED_MEMORY 0 -#endif - -// added by rock ///////////////////////////////////////// -#ifdef VOIP_SUPPORT -#include "voip_flash.h" -#include "voip_flash_mib.h" -#endif - -#if defined(CONFIG_DOMAIN_NAME_QUERY_SUPPORT) -//#define LOGDEBUG_ENABLED -#endif - -#define MBSSID - -//hf -#define CONFIG_RTL_BT_CLIENT - -#define COMPRESS_MIB_SETTING -#define MIB_TLV - -#ifdef MIB_TLV -#define MIB_TABLE_LIST 0x8000 -#else -#define MIB_TABLE_LIST 0x0 -#endif - -//#ifdef HOME_GATEWAY -//#define GW_QOS_ENGINE -//#endif -#ifdef ENABLE_QOS // thru makefile - #ifndef QOS_BY_BANDWIDTH - #define GW_QOS_ENGINE - #endif -#endif - -#if defined(CONFIG_RTL_92D_SUPPORT)||defined(CONFIG_RTL_DUAL_PCIESLOT_BIWLAN) -#define NUM_WLAN_INTERFACE 2 // number of wlan interface supported -#else -#define NUM_WLAN_INTERFACE 1 // number of wlan interface supported -#endif - -#if defined(CONFIG_RTL_819X) -#define NUM_WLAN_MULTIPLE_SSID 8 // number of wlan ssid support -#else -//!CONFIG_RTL_8196B => rtl8651c+rtl8190 -#define NUM_WLAN_MULTIPLE_SSID 5 // number of wlan ssid support -#endif - -#ifdef MBSSID -#define NUM_VWLAN 4 // number of virtual wlan interface supported -#else -#define NUM_VWLAN 0 -#endif - -#ifdef UNIVERSAL_REPEATER -#define NUM_VWLAN_INTERFACE NUM_VWLAN+1 -#else -#define NUM_VWLAN_INTERFACE NUM_VWLAN -#endif - -// WLAN MIB id -#define MIB_WLAN_SSID 1 -#define MIB_WLAN_CHANNEL 2 -#define MIB_WLAN_WEP 3 -#define MIB_WLAN_WEP64_KEY1 4 -#define MIB_WLAN_WEP64_KEY2 5 -#define MIB_WLAN_WEP64_KEY3 6 -#define MIB_WLAN_WEP64_KEY4 7 -#define MIB_WLAN_WEP128_KEY1 8 -#define MIB_WLAN_WEP128_KEY2 9 -#define MIB_WLAN_WEP128_KEY3 10 -#define MIB_WLAN_WEP128_KEY4 11 -#define MIB_WLAN_WEP_KEY_TYPE 12 -#define MIB_WLAN_WEP_DEFAULT_KEY 13 -#define MIB_WLAN_FRAG_THRESHOLD 14 -#define MIB_WLAN_SUPPORTED_RATES 15 -#define MIB_WLAN_BEACON_INTERVAL 16 -#define MIB_WLAN_PREAMBLE_TYPE 17 -#define MIB_WLAN_BASIC_RATES 18 -#define MIB_WLAN_RTS_THRESHOLD 19 -#define MIB_WLAN_AUTH_TYPE 20 -#define MIB_WLAN_HIDDEN_SSID 21 -#define MIB_WLAN_WLAN_DISABLED 22 -#define MIB_ELAN_MAC_ADDR 23 -#define MIB_WLAN_WLAN_MAC_ADDR 24 -#define MIB_WLAN_ENCRYPT 25 -#define MIB_WLAN_ENABLE_SUPP_NONWPA 26 -#define MIB_WLAN_SUPP_NONWPA 27 -#define MIB_WLAN_WPA_AUTH 28 -#define MIB_WLAN_WPA_CIPHER_SUITE 29 -#define MIB_WLAN_WPA_PSK 30 -#define MIB_WLAN_WPA_GROUP_REKEY_TIME 31 -#define MIB_WLAN_RS_IP 32 -#define MIB_WLAN_RS_PORT 33 -#define MIB_WLAN_RS_PASSWORD 34 -#define MIB_WLAN_ENABLE_1X 35 -#define MIB_WLAN_PSK_FORMAT 36 -#define MIB_WLAN_WPA2_PRE_AUTH 37 -#define MIB_WLAN_WPA2_CIPHER_SUITE 38 -#define MIB_WLAN_ACCOUNT_RS_ENABLED 39 -#define MIB_WLAN_ACCOUNT_RS_IP 40 -#define MIB_WLAN_ACCOUNT_RS_PORT 41 -#define MIB_WLAN_ACCOUNT_RS_PASSWORD 42 -#define MIB_WLAN_ACCOUNT_RS_UPDATE_ENABLED 43 -#define MIB_WLAN_ACCOUNT_RS_UPDATE_DELAY 44 -#define MIB_WLAN_MAC_AUTH_ENABLED 45 -#define MIB_WLAN_RS_MAXRETRY 46 -#define MIB_WLAN_RS_INTERVAL_TIME 47 -#define MIB_WLAN_ACCOUNT_RS_MAXRETRY 48 -#define MIB_WLAN_ACCOUNT_RS_INTERVAL_TIME 49 - -#define MIB_WLAN_INACTIVITY_TIME 50 -#define MIB_WLAN_RATE_ADAPTIVE_ENABLED 51 -#define MIB_WLAN_MACAC_ENABLED 52 -#define MIB_WLAN_MACAC_NUM 53 -#define MIB_WLAN_MACAC_ADDR ((MIB_WLAN_MACAC_NUM+1)|MIB_TABLE_LIST) -#define MIB_WLAN_AC_ADDR_ADD ((MIB_WLAN_MACAC_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_WLAN_AC_ADDR_DEL ((MIB_WLAN_MACAC_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_WLAN_AC_ADDR_DELALL ((MIB_WLAN_MACAC_NUM+4)|MIB_DELALL_TBL_ENTRY) -#define MIB_WLAN_DTIM_PERIOD 58 -#define MIB_WLAN_MODE 59 -#define MIB_WLAN_NETWORK_TYPE 60 -#define MIB_WLAN_DEFAULT_SSID 61 // used while configured as Ad-hoc and no any other Ad-hoc could be joined - // it will use this default SSID to start BSS -#define MIB_WLAN_IAPP_DISABLED 62 -#define MIB_WLAN_WDS_ENABLED 63 -#define MIB_WLAN_WDS_NUM 64 -#define MIB_WLAN_WDS ((MIB_WLAN_WDS_NUM+1)|MIB_TABLE_LIST) -#define MIB_WLAN_WDS_ADD ((MIB_WLAN_WDS_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_WLAN_WDS_DEL ((MIB_WLAN_WDS_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_WLAN_WDS_DELALL ((MIB_WLAN_WDS_NUM+4)|MIB_DELALL_TBL_ENTRY) -#define MIB_WLAN_WDS_ENCRYPT 69 -#define MIB_WLAN_WDS_WEP_FORMAT 70 -#define MIB_WLAN_WDS_WEP_KEY 71 -#define MIB_WLAN_WDS_PSK_FORMAT 72 -#define MIB_WLAN_WDS_PSK 73 -#define MIB_WLAN_BAND 74 -#define MIB_WLAN_FIX_RATE 75 -#define MIB_WLAN_BLOCK_RELAY 76 -#define MIB_WLAN_MACCLONE_ENABLED 77 -#define MIB_WLAN_PROTECTION_DISABLED 78 -#ifdef TLS_CLIENT -//sc_yang for client mode TLS -#define MIB_CERTROOT_TBL_NUM 79 -#define MIB_CERTROOT_TBL ((MIB_CERTROOT_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_CERTROOT_ADD ((MIB_CERTROOT_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_CERTROOT_DEL ((MIB_CERTROOT_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_CERTROOT_DELALL ((MIB_CERTROOT_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) -#define MIB_CERTUSER_TBL_NUM 84 -#define MIB_CERTUSER_TBL ((MIB_CERTUSER_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_CERTUSER_ADD ((MIB_CERTUSER_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_CERTUSER_DEL ((MIB_CERTUSER_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_CERTUSER_DELALL ((MIB_CERTUSER_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) -#endif - -// for WMM -#define MIB_WLAN_WMM_ENABLED 89 - -#ifdef WLAN_EASY_CONFIG -#define MIB_WLAN_EASYCFG_ENABLED 90 -#define MIB_WLAN_EASYCFG_MODE 91 -#define MIB_WLAN_EASYCFG_SSID 92 -#define MIB_WLAN_EASYCFG_KEY 93 -#define MIB_WLAN_EASYCFG_ALG_REQ 94 -#define MIB_WLAN_EASYCFG_ALG_SUPP 95 -#define MIB_WLAN_EASYCFG_DIGEST 96 -#define MIB_WLAN_EASYCFG_ROLE 97 -#define MIB_WLAN_EASYCFG_SCAN_SSID 98 -#define MIB_WLAN_EASYCFG_WLAN_MODE 99 -#endif // WLAN_EASY_CONFIG - -#ifdef MIB_TLV -#define MIB_ROOT (100|MIB_TABLE_LIST) -#define MIB_WLAN_ROOT (101|MIB_TABLE_LIST) -#else //etop modify -#define MIB_ROOT (100|MIB_TABLE_LIST) -#define MIB_WLAN_ROOT (101|MIB_TABLE_LIST) - -#endif -#if defined(CONFIG_RTL_8198_AP_ROOT) -#define MIB_NTP_ENABLED 151 -#define MIB_NTP_SERVER_ID 152 -#define MIB_NTP_TIMEZONE 153 -#define MIB_NTP_SERVER_IP1 154 -#define MIB_NTP_SERVER_IP2 155 -#endif - -#define MIB_WAN_MAC_ADDR 100 -#define MIB_WAN_IP_ADDR 101 -#define MIB_WAN_SUBNET_MASK 102 -#define MIB_WAN_DEFAULT_GATEWAY 103 -#define MIB_WAN_DHCP 104 -#define MIB_DNS_MODE 105 -#define MIB_PPP_USER_NAME 106 -#define MIB_PPP_PASSWORD 107 -#define MIB_PPP_IDLE_TIME 108 -#define MIB_PPP_CONNECT_TYPE 109 - -#ifdef HOME_GATEWAY - -#define MIB_PORTFW_ENABLED 110 -#define MIB_PORTFW_TBL_NUM 111 -#define MIB_PORTFW_TBL ((MIB_PORTFW_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_PORTFW_ADD ((MIB_PORTFW_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_PORTFW_DEL ((MIB_PORTFW_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_PORTFW_DELALL ((MIB_PORTFW_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) -#define MIB_IPFILTER_ENABLED 116 -#define MIB_IPFILTER_TBL_NUM 117 -#define MIB_IPFILTER_TBL ((MIB_IPFILTER_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_IPFILTER_ADD ((MIB_IPFILTER_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_IPFILTER_DEL ((MIB_IPFILTER_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_IPFILTER_DELALL ((MIB_IPFILTER_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) -#define MIB_MACFILTER_ENABLED 122 -#define MIB_MACFILTER_TBL_NUM 123 -#define MIB_MACFILTER_TBL ((MIB_MACFILTER_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_MACFILTER_ADD ((MIB_MACFILTER_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_MACFILTER_DEL ((MIB_MACFILTER_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_MACFILTER_DELALL ((MIB_MACFILTER_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) -#define MIB_PORTFILTER_ENABLED 128 -#define MIB_PORTFILTER_TBL_NUM 129 -#define MIB_PORTFILTER_TBL ((MIB_PORTFILTER_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_PORTFILTER_ADD ((MIB_PORTFILTER_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_PORTFILTER_DEL ((MIB_PORTFILTER_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_PORTFILTER_DELALL ((MIB_PORTFILTER_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) -#define MIB_TRIGGERPORT_ENABLED 134 -#define MIB_TRIGGERPORT_TBL_NUM 135 -#define MIB_TRIGGERPORT_TBL ((MIB_TRIGGERPORT_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_TRIGGERPORT_ADD ((MIB_TRIGGERPORT_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_TRIGGERPORT_DEL ((MIB_TRIGGERPORT_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_TRIGGERPORT_DELALL ((MIB_TRIGGERPORT_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) -#define MIB_DMZ_ENABLED 140 -#define MIB_DMZ_HOST 141 -#define MIB_UPNP_ENABLED 142 -#define MIB_UPNP_IGD_NAME 143 -#endif //#ifdef HOME_GATEWAY - -#define MIB_PPP_MTU_SIZE 144 -#define MIB_PPTP_IP_ADDR 145 -#define MIB_PPTP_SUBNET_MASK 146 -#define MIB_PPTP_SERVER_IP_ADDR 147 -#define MIB_PPTP_USER_NAME 148 -#define MIB_PPTP_PASSWORD 149 -#define MIB_PPTP_MTU_SIZE 150 -#define MIB_NTP_ENABLED 151 -#define MIB_NTP_SERVER_ID 152 -#define MIB_NTP_TIMEZONE 153 -#define MIB_NTP_SERVER_IP1 154 -#define MIB_NTP_SERVER_IP2 155 -#define MIB_PPTP_SECURITY_ENABLED 156 -#define MIB_FIXED_IP_MTU_SIZE 157 -#define MIB_DHCP_MTU_SIZE 158 -#define MIB_PPTP_MPPC_ENABLED 159 - -#ifdef HOME_GATEWAY - -#ifdef VPN_SUPPORT -#define MIB_IPSECTUNNEL_ENABLED 160 -#define MIB_IPSECTUNNEL_TBL_NUM 161 -#define MIB_IPSECTUNNEL_TBL ((MIB_IPSECTUNNEL_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_IPSECTUNNEL_ADD ((MIB_IPSECTUNNEL_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_IPSECTUNNEL_DEL ((MIB_IPSECTUNNEL_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_IPSECTUNNEL_DELALL ((MIB_IPSECTUNNEL_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) -#define MIB_IPSEC_NATT_ENABLED 167 -#define MIB_IPSEC_RSA_FILE 168 -#endif -#endif // HOME_GATEWAY - -#define MIB_IP_ADDR 170 -#define MIB_SUBNET_MASK 171 -#define MIB_DEFAULT_GATEWAY 172 -#define MIB_DHCP 173 -#define MIB_DHCP_CLIENT_START 174 -#define MIB_DHCP_CLIENT_END 175 -#define MIB_DNS1 176 -#define MIB_DNS2 177 -#define MIB_DNS3 178 -#define MIB_STP_ENABLED 179 -#define MIB_SUPER_NAME 180 -#define MIB_SUPER_PASSWORD 181 -#define MIB_USER_NAME 182 -#define MIB_USER_PASSWORD 183 -#define MIB_SCRLOG_ENABLED 184 -#define MIB_AUTO_DISCOVERY_ENABLED 185 -#define MIB_DEVICE_NAME 186 - -#ifdef HOME_GATEWAY -#define MIB_DDNS_ENABLED 187 -#define MIB_DDNS_TYPE 188 -#define MIB_DDNS_DOMAIN_NAME 189 -#define MIB_DDNS_USER 190 -#define MIB_DDNS_PASSWORD 191 -#endif -#define MIB_OP_MODE 192 -#define MIB_WISP_WAN_ID 193 - -#ifdef HOME_GATEWAY -#define MIB_WEB_WAN_ACCESS_ENABLED 194 -#define MIB_PING_WAN_ACCESS_ENABLED 195 -#define MIB_HOST_NAME 197 -#endif - -#define MIB_DOMAIN_NAME 198 - -#ifdef MIB_TLV -//#define MIB_TABLE_LIST 0x8000 -#define MIB_ID_MASK (0x8000-1) -#define MIB_HW_ROOT (200|MIB_TABLE_LIST) -#define MIB_HW_WLAN_ROOT (201|MIB_TABLE_LIST) -#define MIB_ADD_TBL_ENTRY 0x10000 -#define MIB_DEL_TBL_ENTRY 0x20000 -#define MIB_DELALL_TBL_ENTRY 0x40000 -#define MIB_WLAN_TBL 0x80000 -#else //etop modify :for config -//#define MIB_TABLE_LIST 0x8000 -#define MIB_ID_MASK (0x8000-1) -#define MIB_HW_ROOT (200|MIB_TABLE_LIST) -#define MIB_HW_WLAN_ROOT (201|MIB_TABLE_LIST) -#define MIB_ADD_TBL_ENTRY 0x10000 -#define MIB_DEL_TBL_ENTRY 0x20000 -#define MIB_DELALL_TBL_ENTRY 0x40000 -#define MIB_WLAN_TBL 0x80000 -#endif // #ifdef MIB_TLV - -// Hardware setting MIB -#define MIB_HW_BOARD_VER 200 -#define MIB_HW_NIC0_ADDR 201 -#define MIB_HW_NIC1_ADDR 202 -#define MIB_HW_WLAN_ADDR 203 -#define MIB_HW_REG_DOMAIN 204 -#define MIB_HW_RF_TYPE 205 -#define MIB_HW_TX_POWER_CCK 206 -#define MIB_HW_TX_POWER_OFDM 207 -#define MIB_HW_ANT_DIVERSITY 208 -#define MIB_HW_TX_ANT 209 -#define MIB_HW_CCA_MODE 210 -#define MIB_HW_PHY_TYPE 211 -#define MIB_HW_LED_TYPE 212 -#define MIB_HW_INIT_GAIN 213 - - -#ifdef TLS_CLIENT -#define MIB_ROOT_IDX 214 -#define MIB_USER_IDX 215 -#endif -#ifdef ROUTE_SUPPORT -#define MIB_STATICROUTE_ENABLED 216 -#define MIB_STATICROUTE_TBL_NUM 217 -#define MIB_STATICROUTE_TBL ((MIB_STATICROUTE_TBL_NUM+1)|MIB_TABLE_LIST) /*218*/ -#define MIB_STATICROUTE_ADD ((MIB_STATICROUTE_TBL_NUM+2) | MIB_ADD_TBL_ENTRY) -#define MIB_STATICROUTE_DEL ((MIB_STATICROUTE_TBL_NUM+3) | MIB_DEL_TBL_ENTRY) -#define MIB_STATICROUTE_DELALL ((MIB_STATICROUTE_TBL_NUM+4) | MIB_DELALL_TBL_ENTRY)/*221*/ -#define MIB_RIP_ENABLED 222 -#define MIB_RIP_LAN_TX 223 -#define MIB_RIP_LAN_RX 224 -#define MIB_RIP_WAN_TX 225 -#define MIB_RIP_WAN_RX 226 -#endif - -#define MIB_REMOTELOG_ENABLED 227 -#define MIB_REMOTELOG_SERVER 228 - -#ifdef HOME_GATEWAY -#ifdef DOS_SUPPORT -#define MIB_DOS_ENABLED 229 -#define MIB_DOS_SYSSYN_FLOOD 230 -#define MIB_DOS_SYSFIN_FLOOD 231 -#define MIB_DOS_SYSUDP_FLOOD 232 -#define MIB_DOS_SYSICMP_FLOOD 233 -#define MIB_DOS_PIPSYN_FLOOD 234 -#define MIB_DOS_PIPFIN_FLOOD 235 -#define MIB_DOS_PIPUDP_FLOOD 236 -#define MIB_DOS_PIPICMP_FLOOD 237 -#define MIB_DOS_BLOCK_TIME 238 -#endif -#define MIB_URLFILTER_ENABLED 239 -#define MIB_URLFILTER_TBL_NUM 240 -#define MIB_URLFILTER_TBL ((MIB_URLFILTER_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_URLFILTER_ADD ((MIB_URLFILTER_TBL_NUM+2) | MIB_ADD_TBL_ENTRY) -#define MIB_URLFILTER_DEL ((MIB_URLFILTER_TBL_NUM+3) | MIB_DEL_TBL_ENTRY) -#define MIB_URLFILTER_DELALL ((MIB_URLFILTER_TBL_NUM+4)| MIB_DELALL_TBL_ENTRY) - -#define MIB_VPN_PASSTHRU_IPSEC_ENABLED 245 -#define MIB_VPN_PASSTHRU_PPTP_ENABLED 246 -#define MIB_VPN_PASSTHRU_L2TP_ENABLED 247 -#define MIB_CUSTOM_PASSTHRU_ENABLED 386 -#endif - -//#ifdef SNMP_SUPPORT Keith remove -#define MIB_SNMP_RO_COMMUNITY 248 -#define MIB_SNMP_RW_COMMUNITY 249 -//#endif Keith remove -#ifdef UNIVERSAL_REPEATER -#define MIB_REPEATER_ENABLED1 250 -#define MIB_REPEATER_SSID1 251 -#define MIB_REPEATER_ENABLED2 252 -#define MIB_REPEATER_SSID2 253 -#endif - -// added by rock ///////////////////////////////////////// -#ifdef VOIP_SUPPORT -#define MIB_VOIP_CFG 254 -#endif // VOIP_SUPPORT - -#define MIB_WIFI_SPECIFIC 260 - -#define MIB_PPP_SERVICE_NAME 261 - -#define MIB_WLAN_TURBO_MODE 262 -#define MIB_WLAN_RFPOWER_SCALE 263 - -#ifdef WIFI_SIMPLE_CONFIG -#define MIB_WLAN_WSC_DISABLE 270 -#define MIB_WLAN_WSC_METHOD 271 -#define MIB_WLAN_WSC_CONFIGURED 272 -#define MIB_HW_WSC_PIN 273 -#define MIB_WLAN_WSC_AUTH 274 -#define MIB_WLAN_WSC_ENC 275 -#define MIB_WLAN_WSC_MANUAL_ENABLED 276 -#define MIB_WLAN_WSC_PSK 277 -#define MIB_WLAN_WSC_SSID 278 -#define MIB_WLAN_WSC_UPNP_ENABLED 279 -#define MIB_WLAN_WSC_REGISTRAR_ENABLED 280 -#define MIB_WLAN_WSC_CONFIGBYEXTREG 281 -#endif -//Brad addd -#define MIB_DAYLIGHT_SAVE 282 -#define MIB_IGMP_PROXY_DISABLED 283 -//Brad add for 11N -#define MIB_WLAN_CHANNEL_BONDING 284 -#define MIB_WLAN_CONTROL_SIDEBAND 285 -#define MIB_WLAN_AGGREGATION 286 -#define MIB_WLAN_SHORT_GI 287 -//Brad define -#define MIB_WLAN_WEP64_KEY 288 -#define MIB_WLAN_WEP128_KEY 289 - -#define MIB_HW_11N_XCAP 290 -#define MIB_HW_11N_RXIMR 291 -#define MIB_DHCPRSVDIP_ENABLED 292 -#define MIB_DHCPRSVDIP_TBL_NUM 293 -#define MIB_DHCPRSVDIP_TBL ((MIB_DHCPRSVDIP_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_DHCPRSVDIP_ADD ((MIB_DHCPRSVDIP_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_DHCPRSVDIP_DEL ((MIB_DHCPRSVDIP_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_DHCPRSVDIP_DELALL ((MIB_DHCPRSVDIP_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) -#define MIB_HW_11N_LOFDMPWD 298 -#define MIB_HW_11N_ANTPWD_B 299 -#define MIB_HW_11N_ANTPWD_C 300 -#define MIB_HW_11N_ANTPWD_D 301 -#define MIB_HW_11N_THER_RFIC 302 -#define MIB_HW_WLAN_ADDR1 303 -#define MIB_HW_WLAN_ADDR2 304 -#define MIB_HW_WLAN_ADDR3 305 -#define MIB_HW_WLAN_ADDR4 306 - -// GW_QOS_ENGINE -#define MIB_QOS_ENABLED 307 -#define MIB_QOS_AUTO_UPLINK_SPEED 308 -#define MIB_QOS_MANUAL_UPLINK_SPEED 309 -#define MIB_QOS_RULE_TBL_NUM 310 -#define MIB_QOS_RULE_TBL ((MIB_QOS_RULE_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_QOS_ADD ((MIB_QOS_RULE_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_QOS_DEL ((MIB_QOS_RULE_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_QOS_DELALL ((MIB_QOS_RULE_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) - -#define MIB_WLAN_ACCESS 315 -#define MIB_WLAN_PRIORITY 316 - -#define MIB_START_MP 317 - -#define MIB_SYSTIME_YEAR 321 -#define MIB_SYSTIME_MON 322 -#define MIB_SYSTIME_DAY 323 -#define MIB_SYSTIME_HOUR 324 -#define MIB_SYSTIME_MIN 325 -#define MIB_SYSTIME_SEC 326 - -/* # keith: add l2tp support. 20080515 */ -#define MIB_L2TP_IP_ADDR 331 -#define MIB_L2TP_SUBNET_MASK 332 -#define MIB_L2TP_SERVER_IP_ADDR 333 -#define MIB_L2TP_USER_NAME 334 -#define MIB_L2TP_PASSWORD 335 -#define MIB_L2TP_MTU_SIZE 336 -#define MIB_L2TP_CONNECTION_TYPE 337 -#define MIB_L2TP_IDLE_TIME 338 - -#ifdef CONFIG_IPV6 -#define MIB_IPV6_ID 380 -#define MIB_IPV6_RADVD_PARAM (MIB_IPV6_ID) -#define MIB_IPV6_DNSV6_PARAM (MIB_IPV6_ID+1) -#define MIB_IPV6_DHCPV6S_PARAM (MIB_IPV6_ID+2) -#define MIB_IPV6_ADDR_PARAM (MIB_IPV6_ID+3) -#define MIB_IPV6_TUNNEL_PARAM (MIB_IPV6_ID+4) -#endif - -// SNMP, Forrest added, 2007.10.25. -#ifdef CONFIG_SNMP -#define MIB_SNMP_ENABLED 435 -#define MIB_SNMP_NAME 436 -#define MIB_SNMP_LOCATION 437 -#define MIB_SNMP_CONTACT 438 -#define MIB_SNMP_RWCOMMUNITY 439 -#define MIB_SNMP_ROCOMMUNITY 440 -#define MIB_SNMP_TRAP_RECEIVER1 441 -#define MIB_SNMP_TRAP_RECEIVER2 442 -#define MIB_SNMP_TRAP_RECEIVER3 443 -#endif - -//### add by sen_liu 2011.3.29 TX Beamforming added to mib in 92D -#define MIB_WLAN_TX_BEAMFORMING 450 -//### end - -/*hf add for country str*/ -#define MIB_WLAN_COUNTRY_STRING 451 -/*end*/ -/* # keith: add l2tp support. 20080515 */ -#define MIB_L2TP_WAN_IP_DYNAMIC 501 -#define MIB_L2TP_GATEWAY 502 -//SCHEDULE - -#define MIB_WLAN_SCHEDULE_ENABLED 503 -#define MIB_WLAN_SCHEDULE_TBL_NUM 504 -#define MIB_WLAN_SCHEDULE_TBL ((MIB_WLAN_SCHEDULE_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_WLAN_SCHEDULE_ADD ((MIB_WLAN_SCHEDULE_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_WLAN_SCHEDULE_DEL ((MIB_WLAN_SCHEDULE_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_WLAN_SCHEDULE_DELALL ((MIB_WLAN_SCHEDULE_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) - -#define MIB_PPTP_CONNECTION_TYPE 509 -#define MIB_PPTP_IDLE_TIME 510 - - -//NewAdd For rtl8196B -#define MIB_HW_WLAN_ADDR5 511 -#define MIB_HW_WLAN_ADDR6 512 -#define MIB_HW_WLAN_ADDR7 513 - -#define MIB_HW_TX_POWER_OFDM_1S 514 -#define MIB_HW_TX_POWER_OFDM_2S 515 -#define MIB_HW_11N_LOFDMPWDA 516 -#define MIB_HW_11N_LOFDMPWDB 517 -#define MIB_HW_11N_TSSI1 518 -#define MIB_HW_11N_TSSI2 519 -#define MIB_HW_11N_THER 520 -#define MIB_HW_11N_TRSWITCH 521 //MIB_HW_11N_ESERVED1->MIB_HW_11N_TRSWITCH -#define MIB_HW_11N_TRSWPAPE_C9 522 -#define MIB_HW_11N_TRSWPAPE_CC 523 -#define MIB_HW_11N_TARGET_PWR 524 -#define MIB_HW_11N_RESERVED5 525 -#define MIB_HW_11N_RESERVED6 526 -#define MIB_HW_11N_RESERVED7 527 -#define MIB_HW_11N_RESERVED8 528 - -/*-----end-----*/ - -// SNMP maximum length of fields, Forrest added, 2007.10.25. -#ifdef CONFIG_SNMP -#define MAX_SNMP_NAME_LEN 64 -#define MAX_SNMP_LOCATION_LEN 64 -#define MAX_SNMP_CONTACT_LEN 64 -#define MAX_SNMP_COMMUNITY_LEN 64 -#endif - -//=========add for MESH========= -//#ifdef CONFIG_RTK_MESH Keith remove -#define MIB_MESH_ENABLE 644 //new feature:Mesh enable/disable -#define MIB_MESH_ROOT_ENABLE 551 -#define MIB_MESH_ID 554 -#define MIB_MESH_MAX_NEIGHTBOR 555 -#define MIB_MESH_ENCRYPT 559 -#define MIB_MESH_PSK_FORMAT 560 -#define MIB_MESH_WPA_PSK 561 -#define MIB_MESH_WPA_AUTH 562 -#define MIB_MESH_WPA2_CIPHER_SUITE 563 - -//#ifdef _MESH_ACL_ENABLE_ Keith remove -#define MIB_MESH_ACL_ENABLED 580 -#define MIB_MESH_ACL_NUM 581 -#define MIB_MESH_ACL_ADDR ((MIB_MESH_ACL_NUM+1)|MIB_TABLE_LIST) -#define MIB_MESH_ACL_ADDR_ADD ((MIB_MESH_ACL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_MESH_ACL_ADDR_DEL ((MIB_MESH_ACL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_MESH_ACL_ADDR_DELALL ((MIB_MESH_ACL_NUM+4)|MIB_DELALL_TBL_ENTRY) -//#endif Keith remove - -//#ifdef _11s_TEST_MODE_ Keith remove -#define MIB_MESH_TEST_PARAM1 600 -#define MIB_MESH_TEST_PARAM2 601 -#define MIB_MESH_TEST_PARAM3 602 -#define MIB_MESH_TEST_PARAM4 603 -#define MIB_MESH_TEST_PARAM5 604 -#define MIB_MESH_TEST_PARAM6 605 -#define MIB_MESH_TEST_PARAM7 606 -#define MIB_MESH_TEST_PARAM8 607 -#define MIB_MESH_TEST_PARAM9 608 -#define MIB_MESH_TEST_PARAMA 609 -#define MIB_MESH_TEST_PARAMB 610 -#define MIB_MESH_TEST_PARAMC 611 -#define MIB_MESH_TEST_PARAMD 612 -#define MIB_MESH_TEST_PARAME 613 -#define MIB_MESH_TEST_PARAMF 614 -#define MIB_MESH_TEST_PARAMSTR1 615 -//#endif Keith remove -//#endif // CONFIG_RTK_MESH Keith remove -//=========add for MESH========= - -#define MIB_VLANCONFIG_ENABLED 616 -#define MIB_VLANCONFIG_TBL_NUM 617 -#define MIB_VLANCONFIG_TBL ((MIB_VLANCONFIG_TBL_NUM+1)|MIB_TABLE_LIST) -#define MIB_VLANCONFIG_ADD ((MIB_VLANCONFIG_TBL_NUM+2)|MIB_ADD_TBL_ENTRY) -#define MIB_VLANCONFIG_DEL ((MIB_VLANCONFIG_TBL_NUM+3)|MIB_DEL_TBL_ENTRY) -#define MIB_VLANCONFIG_DELALL ((MIB_VLANCONFIG_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY) - -//#ifdef CONFIG_RTL_WAPI_SUPPORT Keith remove -//WAPI start from 630 -#define MIB_WLAN_WAPI_PSK 630 -#define MIB_WLAN_WAPI_PSKLEN 631 -#define MIB_WLAN_WAPI_PSK_FORMAT 632 -#define MIB_WLAN_WAPI_AUTH 633 -#define MIB_WLAN_WAPI_ASIPADDR 634 -#define MIB_WLAN_WAPI_SEARCHINFO 635 -#define MIB_WLAN_WAPI_SEARCHINDEX 636 -#define MIB_WLAN_WAPI_MCASTREKEY 637 -#define MIB_WLAN_WAPI_MCAST_TIME 638 -#define MIB_WLAN_WAPI_MCAST_PACKETS 639 -#define MIB_WLAN_WAPI_UCASTREKEY 640 -#define MIB_WLAN_WAPI_UCAST_TIME 641 -#define MIB_WLAN_WAPI_UCAST_PACKETS 642 -#define MIB_WLAN_WAPI_CA_INIT 643 - -//Added to support two remote as and one local as at the same time -#define MIB_WLAN_WAPI_CERT_SEL 656 - -#define MIB_NAT_ENABLED 645 -#define MIB_WLAN_STBC_ENABLED 646 -#define MIB_WLAN_COEXIST_ENABLED 647 -#define MIB_SAMBA_ENABLED 650 - -#define MIB_MIB_VER 655 - -//#ifdef CONFIG_RTL_WAPI_SUPPORT Keith remove -#define CERTS_DATABASE "/var/myca/index.txt" -#define ONE_DAY_SECONDS 86400 -#define USER_NAME_LEN 32 -typedef struct _CertsDbEntry_ { - unsigned char userName[USER_NAME_LEN]; //user name of this user cert - unsigned long serial; //serial of this cert - unsigned short validDays; //total valid days of this cert - unsigned short validDaysLeft; //the left valid days of this cert - unsigned char certType; //0(default): X.509; others: reserved - unsigned char certStatus; //0(default): valid; 1: expired; 2: revoked -} CERTS_DB_ENTRY_T, *CERTS_DB_ENTRY_Tp; -//#endif Keith remove -//WAPI END - -// GW_QOS_ENGINE -#define MIB_QOS_AUTO_DOWNLINK_SPEED 651 -#define MIB_QOS_MANUAL_DOWNLINK_SPEED 652 - -//11n onoff TKIP -#define MIB_WLAN_11N_ONOFF_TKIP 660 - -#ifdef CONFIG_RTL_BT_CLIENT -#define MIB_BT_UPLOAD_DIR 680 -#define MIB_BT_DOWNLOAD_DIR 681 -#define MIB_BT_TOTAL_ULIMIT 682 -#define MIB_BT_TOTAL_DLIMIT 683 -#define MIB_BT_REFRESH_TIME 684 -#define MIB_BT_ENABLED 685 -#endif - -#define MIB_WLAN_ACK_TIMEOUT 686 - -/*+++++added by Jack for Tr-069 configuration+++++*/ -#ifdef CONFIG_CWMP_TR069 -#define MIB_CWMP_ID 700 //The value of CWMP_ID is ON or OFF tr069 -#define MIB_CWMP_PROVISIONINGCODE CWMP_ID + 1 //069 -#define MIB_CWMP_ACS_URL CWMP_ID + 2 //069 -#define MIB_CWMP_ACS_USERNAME CWMP_ID + 3 //069 -#define MIB_CWMP_ACS_PASSWORD CWMP_ID + 4 //069 -#define MIB_CWMP_INFORM_ENABLE CWMP_ID + 5 //069 -#define MIB_CWMP_INFORM_INTERVAL CWMP_ID + 6 //069 -#define MIB_CWMP_INFORM_TIME CWMP_ID + 7 -#define MIB_CWMP_CONREQ_USERNAME CWMP_ID + 8 -#define MIB_CWMP_CONREQ_PASSWORD CWMP_ID + 9 -#define MIB_CWMP_ACS_UPGRADESMANAGED CWMP_ID + 10 //069 -//#define MIB_CWMP_LAN_CONFIGPASSWD CWMP_ID + 11 -//#define MIB_CWMP_SERIALNUMBER CWMP_ID + 12 //069 -//#define MIB_CWMP_DHCP_SERVERCONF CWMP_ID + 13 -//#define MIB_CWMP_LAN_IPIFENABLE CWMP_ID + 14 -//#define MIB_CWMP_LAN_ETHIFENABLE CWMP_ID + 15 -//#define MIB_CWMP_WLAN_BASICENCRY CWMP_ID + 16 -//#define MIB_CWMP_WLAN_WPAENCRY CWMP_ID + 17 -#define MIB_CWMP_DL_COMMANDKEY CWMP_ID + 18 -#define MIB_CWMP_DL_STARTTIME CWMP_ID + 19 -#define MIB_CWMP_DL_COMPLETETIME CWMP_ID + 20 -#define MIB_CWMP_DL_FAULTCODE CWMP_ID + 21 -#define MIB_CWMP_INFORM_EVENTCODE CWMP_ID + 22 -#define MIB_CWMP_RB_COMMANDKEY CWMP_ID + 23 -//#define MIB_CWMP_ACS_PARAMETERKEY CWMP_ID + 24 -#define MIB_CWMP_CERT_PASSWORD CWMP_ID + 25 -#define MIB_CWMP_FLAG CWMP_ID + 26 -#define MIB_CWMP_SI_COMMANDKEY CWMP_ID + 27 /*ScheduleInform's commandkey*/ - -#ifdef _PRMT_USERINTERFACE_ /*InternetGatewayDevice.UserInterface.*/ -#define MIB_UIF_PW_REQUIRED CWMP_ID + 28 /*PasswordRequired*/ -#define MIB_UIF_PW_USER_SEL CWMP_ID + 29 /*PasswordUserSelectable*/ -#define MIB_UIF_UPGRADE CWMP_ID + 30 /*UpgradeAvailable*/ -#define MIB_UIF_WARRANTYDATE CWMP_ID + 31 /*WarrantyDate*/ -#define MIB_UIF_AUTOUPDATESERVER CWMP_ID + 32 /*AutoUpdateServer*/ -#define MIB_UIF_USERUPDATESERVER CWMP_ID + 33 /*UserUpdateServer*/ -#endif /*_PRMT_USERINTERFACE_*/ - -#define MIB_CWMP_ACS_KICKURL CWMP_ID + 74 -#define MIB_CWMP_ACS_DOWNLOADURL CWMP_ID + 75 -#define MIB_CWMP_CONREQ_PORT CWMP_ID + 76 /*port for connection request*/ -#define MIB_CWMP_CONREQ_PATH CWMP_ID + 77 /*path for connection request*/ -#define MIB_CWMP_FLAG2 CWMP_ID + 78 - -//#ifdef _PRMT_TR143_ -#define MIB_TR143_UDPECHO_ENABLE CWMP_ID + 79 -#define MIB_TR143_UDPECHO_ITFTYPE CWMP_ID + 80 -#define MIB_TR143_UDPECHO_SRCIP CWMP_ID + 81 -#define MIB_TR143_UDPECHO_PORT CWMP_ID + 82 -#define MIB_TR143_UDPECHO_PLUS CWMP_ID + 83 -//#endif //_PRMT_TR143_ -#define MIB_CWMP_MIB_END CWMP_ID + 200 /* Reserve 200 mib for tr069*/ -#endif /*CONFIG_CWMP_TR069*/ - - - - - -#define MIB_TEST_DATA 10000 - -#define MIB_DHCPRSVDIP_IPADDR 1001 -#define MIB_DHCPRSVDIP_MACADDR 1002 -#define MIB_DHCPRSVDIP_HOSTNAME 1003 - -#define MIB_SCHEDULE_TEXT 1011 -#define MIB_SCHEDULE_ECO 1012 -#define MIB_SCHEDULE_FTIME 1013 -#define MIB_SCHEDULE_TTIME 1014 -#define MIB_SCHEDULE_DAY 1015 - -#define MIB_PORTFW_IPADDR 1021 -#define MIB_PORTFW_FROMPORT 1022 -#define MIB_PORTFW_TOPORT 1023 -#define MIB_PORTFW_PROTOTYPE 1024 -#define MIB_PORTFW_COMMENT 1025 - -#define MIB_IPFILTER_IPADDR 1031 -#define MIB_IPFILTER_PROTOTYPE 1032 -#define MIB_IPFILTER_COMMENT 1033 - -#define MIB_PORTFILTER_FROMPORT 1041 -#define MIB_PORTFILTER_TOPORT 1042 -#define MIB_PORTFILTER_PROTOTYPE 1043 -#define MIB_PORTFILTER_COMMENT 1044 - -#define MIB_MACFILTER_MACADDR 1051 -#define MIB_MACFILTER_COMMENT 1052 - -#define MIB_TRIGGERPORT_TRI_FROMPORT 1061 -#define MIB_TRIGGERPORT_TRI_TOPORT 1062 -#define MIB_TRIGGERPORT_TRI_PROTOTYPE 1063 -#define MIB_TRIGGERPORT_INC_FROMPORT 1064 -#define MIB_TRIGGERPORT_INC_TOPORT 1065 -#define MIB_TRIGGERPORT_INC_PROTOTYPE 1066 -#define MIB_TRIGGERPORT_COMMENT 1067 - -#define MIB_URLFILTER_URLADDR 1071 - -#define MIB_VLANCONFIG_ENTRY_ENABLED 1081 -#define MIB_VLANCONFIG_NETIFACE 1082 -#define MIB_VLANCONFIG_TAGGED 1083 -#define MIB_VLANCONFIG_UNTAGGED 1084 -#define MIB_VLANCONFIG_PRIORITY 1085 -#define MIB_VLANCONFIG_CFI 1086 -#define MIB_VLANCONFIG_GROUPID 1087 -#define MIB_VLANCONFIG_VLANID 1088 - -#define MIB_STATICROUTE_DSTADDR 1091 -#define MIB_STATICROUTE_NETMASK 1092 -#define MIB_STATICROUTE_GATEWAY 1093 -#define MIB_STATICROUTE_INTERFACE 1094 -#define MIB_STATICROUTE_METRIC 1095 - -#define MIB_IPSECTUNNEL_TUNNELID 1101 -#define MIB_IPSECTUNNEL_AUTHTYPE 1102 -#define MIB_IPSECTUNNEL_LCTYPE 1103 -#define MIB_IPSECTUNNEL_LC_IPADDR 1104 -#define MIB_IPSECTUNNEL_LC_MASKLEN 1105 -#define MIB_IPSECTUNNEL_RTTYPE 1106 -#define MIB_IPSECTUNNEL_RT_IPADDR 1107 -#define MIB_IPSECTUNNEL_RT_MASKLEN 1108 -#define MIB_IPSECTUNNEL_RT_GWADDR 1109 -#define MIB_IPSECTUNNEL_KEYMODE 1110 -#define MIB_IPSECTUNNEL_ESPAH 1111 -#define MIB_IPSECTUNNEL_ESPENCR 1112 -#define MIB_IPSECTUNNEL_ESPAUTH 1113 -#define MIB_IPSECTUNNEL_AHAUTH 1114 -#define MIB_IPSECTUNNEL_CONTYPE 1115 -#define MIB_IPSECTUNNEL_PSKEY 1116 -#define MIB_IPSECTUNNEL_RSAKEY 1117 -#define MIB_IPSECTUNNEL_SPI 1118 -#define MIB_IPSECTUNNEL_ENCRKEY 1119 -#define MIB_IPSECTUNNEL_AUTHKEY 1120 -#define MIB_IPSECTUNNEL_ENABLE 1121 -#define MIB_IPSECTUNNEL_CONNNAME 1122 -#define MIB_IPSECTUNNEL_LCIDTYPE 1123 -#define MIB_IPSECTUNNEL_RTIDTYPE 1124 -#define MIB_IPSECTUNNEL_LCID 1125 -#define MIB_IPSECTUNNEL_RTID 1126 -#define MIB_IPSECTUNNEL_IKELIFETIME 1127 -#define MIB_IPSECTUNNEL_IKEENCR 1128 -#define MIB_IPSECTUNNEL_IKEAUTH 1129 -#define MIB_IPSECTUNNEL_IKEKEYGROUP 1130 -#define MIB_IPSECTUNNEL_IPSECLIFETIME 1131 -#define MIB_IPSECTUNNEL_IPSECPFS 1132 - -#define MIB_CERTROOT_COMMENT 1151 - -#define MIB_CERTUSER_COMMENT 1161 -#define MIB_CERTROOT_PASS 1162 - -#define MIB_QOS_ENTRY_NAME 1171 -#define MIB_QOS_ENTRY_ENABLED 1172 -#define MIB_QOS_PRIORITY 1173 -#define MIB_QOS_PROTOCOL 1174 -#define MIB_QOS_LOCAL_IP_START 1175 -#define MIB_QOS_LOCAL_IP_END 1176 -#define MIB_QOS_LOCAL_PORT_START 1177 -#define MIB_QOS_LOCAL_PORT_END 1178 -#define MIB_QOS_REMOTE_IP_START 1179 -#define MIB_QOS_REMOTE_IP_END 1180 -#define MIB_QOS_REMOTE_PORT_START 1181 -#define MIB_QOS_REMOTE_PORT_END 1182 - -#define MIB_IPQOS_ENTRY_NAME 1191 -#define MIB_IPQOS_ENABLED 1192 -#define MIB_IPQOS_MAC 1193 -#define MIB_IPQOS_MODE 1194 -#define MIB_IPQOS_LOCAL_IP_START 1195 -#define MIB_IPQOS_LOCAL_IP_END 1196 -#define MIB_IPQOS_BANDWIDTH 1197 -#define MIB_IPQOS_BANDWIDTH_DOWNLINK 1198 - -#define MIB_MECH_ACL_MACADDR 1201 -#define MIB_MECH_ACL_COMMENT 1202 - -#define MIB_WLAN_ACL_ADDR_MACADDR 1211 -#define MIB_WLAN_ACL_ADDR_COMMENT 1212 - -#define MIB_WLAN_WDS_MACADDR 1221 -#define MIB_WLAN_WDS_FIXEDTXRATE 1222 -#define MIB_WLAN_WDS_COMMENT 1223 - - -//#ifdef CONFIG_RTL_FLASH_DUAL_IMAGE_ENABLE -#define MIB_DUALBANK_ENABLED 1300 -#define MIB_WLAN_PHY_BAND_SELECT 1301 -#define MIB_WLAN_MAC_PHY_MODE 1302 -#define MIB_WLAN_BAND2G5G_SELECT 1303 -//#endif - -//MIBs for 802.1x wlan client mode -#ifdef CONFIG_RTL_802_1X_CLIENT_SUPPORT -#define MIB_WLAN_EAP_TYPE 1311 -#define MIB_WLAN_EAP_INSIDE_TYPE 1312 -#define MIB_WLAN_EAP_USER_ID 1313 -#define MIB_WLAN_RS_USER_NAME 1314 -#define MIB_WLAN_RS_USER_PASSWD 1315 -#define MIB_WLAN_RS_USER_CERT_PASSWD 1316 -#define MIB_WLAN_RS_BAND_SEL 1317 -#endif - -/* USB3G */ -#define MIB_USB3G_USER 1400 -#define MIB_USB3G_PASS 1401 -#define MIB_USB3G_PIN 1402 -#define MIB_USB3G_APN 1403 -#define MIB_USB3G_DIALNUM 1404 -#define MIB_USB3G_CONN_TYPE 1405 -#define MIB_USB3G_IDLE_TIME 1406 -#define MIB_USB3G_MTU_SIZE 1407 - - -#ifdef CONFIG_CWMP_TR069 -/* define the len of the entities */ -#define CWMP_PROVISION_CODE_LEN 64 -#define CWMP_ACS_URL_LEN 256 -#define CWMP_ACS_USERNAME_LEN 256 -#define CWMP_ACS_PASSWD_LEN 256 -#define CWMP_CONREQ_USERNAME_LEN 256 -#define CWMP_CONREQ_PASSWD_LEN 256 -#define CWMP_LANCONF_PASSWD_LEN 64 -#define CWMP_SERIALNUMBER_LEN 64 -#define CWMP_COMMAND_KEY_LEN 32 -#define CWMP_CERT_PASSWD_LEN 64 -/* define the cwmp_flag */ -#define CWMP_FLAG_DEBUG_MSG 0x01 -#define CWMP_FLAG_CERT_AUTH 0x02 -#define CWMP_FLAG_SENDGETRPC 0x04 -#define CWMP_FLAG_SKIPMREBOOT 0x08 -#define CWMP_FLAG_DELAY 0x10 -#define CWMP_FLAG_AUTORUN 0x20 - -/* define the len of the entities */ -#define CWMP_PROVISION_CODE_LEN 32 //64 in spec -#define CWMP_ACS_URL_LEN 64 //256 in spec -#define CWMP_ACS_USERNAME_LEN 32 //256 in spec -#define CWMP_ACS_PASSWD_LEN 32 //256 in spec -#define CWMP_CONREQ_USERNAME_LEN 32 //256 in spec -#define CWMP_CONREQ_PASSWD_LEN 32 //256 in spec -#define CONN_REQ_PATH_LEN 32 //32 in spec -#define CWMP_KICK_URL 32 //64 in spec -#define CWMP_DOWNLOAD_URL 32 //64 in spec -//#define CWMP_LANCONF_PASSWD_LEN 64 -//#define CWMP_SERIALNUMBER_LEN 64 -#define CWMP_COMMAND_KEY_LEN 32 -#define CWMP_CERT_PASSWD_LEN 32 //64 in spec -#define IP_ADDR_LEN 4 -/* define the cwmp_flag */ -#define CWMP_FLAG_DEBUG_MSG 0x01 -#define CWMP_FLAG_CERT_AUTH 0x02 -#define CWMP_FLAG_SENDGETRPC 0x04 -#define CWMP_FLAG_SKIPMREBOOT 0x08 -#define CWMP_FLAG_DELAY 0x10 -#define CWMP_FLAG_AUTORUN 0x20 -#define CWMP_FLAG_CTINFORMEXT 0x40 -#define CWMP_FLAG_SELFREBOOT 0x80 -/*flag for CWMP_FLAG2 setting*/ -#define CWMP_FLAG2_DIS_CONREQ_AUTH 0x01 /*disable connection request authentication*/ -#define CWMP_FLAG2_DEFAULT_WANIP_IN_INFORM 0x02 /*bring the default wan ip in the inform*/ - -/*action type for applying new values*/ -#define CWMP_NONE 0 -#define CWMP_START 1 -#define CWMP_STOP 2 -#define CWMP_RESTART 3 - -/*EC_xxxxx event must consist with those defined in cwmp_rpc.h*/ -#define EC_X_CT_COM_ACCOUNT 0x10000 /*X_CT-COM_ACCOUNTCHANGE*/ - -#endif /*CONFIG_CWMP_TR069*/ - -#if defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) -/*new add since new platform rtl8196c*/ -#define MIB_HW_TX_POWER_CCK_A 901 -#define MIB_HW_TX_POWER_CCK_B 902 -#define MIB_HW_TX_POWER_HT40_1S_A 903 -#define MIB_HW_TX_POWER_HT40_1S_B 904 -#define MIB_HW_TX_POWER_DIFF_HT40_2S 905 -#define MIB_HW_TX_POWER_DIFF_HT20 906 -#define MIB_HW_TX_POWER_DIFF_OFDM 907 -#define MIB_HW_11N_RESERVED9 908 -#define MIB_HW_11N_RESERVED10 909 -#define MIB_HW_TX_POWER_5G_HT40_1S_A 910 -#define MIB_HW_TX_POWER_5G_HT40_1S_B 911 -#define MIB_HW_TX_POWER_DIFF_5G_HT40_2S 912 -#define MIB_HW_TX_POWER_DIFF_5G_HT20 913 -#define MIB_HW_TX_POWER_DIFF_5G_OFDM 914 -/*new add end*/ -#endif - -#define MAX_L2TP_BUFF_LEN 50 - -#define MIB_PPP_SESSION_NUM 940 -#define MIB_PPP_SERVER_MAC 941 -#define MIB_L2TP_PAYLOAD 942 -#define MIB_L2TP_PAYLOAD_LENGTH 943 -#define MIB_L2TP_NS 944 -#define MIB_DHCP_LEASE_TIME 945 - - -// MIB value and constant -#ifdef CONFIG_IPV6 -#define IFNAMESIZE 32 -#define MAX_PREFIX_NUM 2 -#define RR_MAX_NUM 2 -#define NAMSIZE 32 -#define MAX_DNAME_SIZE 128 -#endif -#define MAX_SSID_LEN 33 -#define WEP64_KEY_LEN 5 -#define WEP128_KEY_LEN 13 -#define MAX_NAME_LEN 31 -#define COMMENT_LEN 21 -#define MAX_CCK_CHAN_NUM 14 -#define MAX_OFDM_CHAN_NUM 162 - -#define MAX_2G_CHANNEL_NUM_MIB 14 -#define MAX_5G_CHANNEL_NUM_MIB 196 - -#define MAX_PSK_LEN 64 -#define MAX_RS_PASS_LEN 65 -#define MAX_DOMAIN_LEN 51 -#define MAX_NAME_LEN_LONG 129 - -#define TX_RATE_1M 0x01 -#define TX_RATE_2M 0x02 -#define TX_RATE_5M 0x04 -#define TX_RATE_11M 0x08 - -#define TX_RATE_6M 0x10 -#define TX_RATE_9M 0x20 -#define TX_RATE_12M 0x40 -#define TX_RATE_18M 0x80 -#define TX_RATE_24M 0x100 -#define TX_RATE_36M 0x200 -#define TX_RATE_48M 0x400 -#define TX_RATE_54M 0x800 - -#define MAX_WLAN_AC_NUM 20 - -//#if defined(CONFIG_RTK_MESH) && defined(_MESH_ACL_ENABLE_) Keith remove -#define MAX_MESH_ACL_NUM MAX_WLAN_AC_NUM -//#endif Keith remove - -#define MAX_CERTROOT_NUM 5 -#define MAX_CERTUSER_NUM 5 -#ifdef HOME_GATEWAY -#define MAX_FILTER_NUM 20 -#define MAX_URLFILTER_NUM 8 -#ifdef VPN_SUPPORT -#define MAX_TUNNEL_NUM 10 -#define MAX_RSA_FILE_LEN 2048 -#define MAX_RSA_KEY_LEN 380 -#define MAX_ENCRKEY_LEN 49 -#define MAX_AUTHKEY_LEN 41 -#define MAX_SPI_LEN 5 -#endif -#define MAX_QOS_RULE_NUM 10 -#endif -#define MAX_ROUTE_NUM 10 -#define MAX_DHCP_RSVD_IP_NUM 20 -#define MAXFNAME 60 - -//#ifdef CONFIG_RTL8196B_GW_8M -//#define MAX_WDS_NUM 4 -//#else -#define MAX_WDS_NUM 8 -//#endif - -#ifdef WLAN_EASY_CONFIG -#define MAX_ACF_KEY_LEN 64 -#define MAX_ACF_DIGEST_LEN 32 -#endif - -//#ifdef SNMP_SUPPORT Keith remove -#define MAX_SNMP_COMMUNITY_LEN 64 -//#endif Keith remove - -#ifdef WIFI_SIMPLE_CONFIG -#define PIN_LEN 8 -#endif - -#define IFNAMSIZE 16 -#if defined(CONFIG_RTL_8198_AP_ROOT) && defined(GMII_ENABLED) -#define MAX_IFACE_VLAN_CONFIG (7+5*2) /* eth0~eth6, 2*(wlanX,wlanX-va0~wlanX-va3)no wds and vxd*/ -#else -#define MAX_IFACE_VLAN_CONFIG (6+5*2) /* eth0~eth5, 2*(wlanX,wlanX-va0~wlanX-va3)no wds and vxd*/ -#endif - -#if defined(UNIVERSAL_REPEATER) -#define CONFIG_REPEATER_WPS_SUPPORT -#define CONFIG_ONLY_SUPPORT_CLIENT_REPEATER_WPS -#endif - -#define NEW_SCHEDULE_SUPPORT -#if defined(NEW_SCHEDULE_SUPPORT) -#define MAX_SCHEDULE_NUM 10 -#else -/*Brad add for schedule*/ -#define MAX_SCHEDULE_NUM 1 -#endif - -/* # keith: add l2tp support. 20080515 */ -#define MAX_PPTP_HOST_NAME_LEN 64 - -#ifdef __mips__ -#define FLASH_DEVICE_NAME ("/dev/mtdblock0") -#define FLASH_DEVICE_NAME1 ("/dev/mtdblock1") -#else -#define FLASH_DEVICE_NAME ("setting.bin") -#endif - -#ifdef CONFIG_RTL_FLASH_MAPPING_ENABLE -#define HW_SETTING_OFFSET CONFIG_RTL_HW_SETTING_OFFSET -#define DEFAULT_SETTING_OFFSET CONFIG_RTL_DEFAULT_SETTING_OFFSET -#define CURRENT_SETTING_OFFSET CONFIG_RTL_CURRENT_SETTING_OFFSET -#define WEB_PAGE_OFFSET CONFIG_RTL_WEB_PAGES_OFFSET -#define CODE_IMAGE_OFFSET CONFIG_RTL_CODE_IMAGE_OFFSET -#define ROOT_IMAGE_OFFSET CONFIG_RTL_ROOT_IMAGE_OFFSET -#else -#define HW_SETTING_OFFSET 0x6000 -#define DEFAULT_SETTING_OFFSET 0x8000 -#define CURRENT_SETTING_OFFSET 0xc000 -#define WEB_PAGE_OFFSET 0x10000 -#define CODE_IMAGE_OFFSET 0x20000 -#define ROOT_IMAGE_OFFSET 0xE0000 -#endif - -#ifdef HOME_GATEWAY - #define CERT_PAGE_OFFSET 0x3f0000 -#else - #define CERT_PAGE_OFFSET 0x1f0000 -#endif - -#ifdef CONFIG_RTL_FLASH_MAPPING_ENABLE -#define HW_SETTING_SECTOR_LEN (CONFIG_RTL_DEFAULT_SETTING_OFFSET-CONFIG_RTL_HW_SETTING_OFFSET) -#define DEFAULT_SETTING_SECTOR_LEN (CONFIG_RTL_CURRENT_SETTING_OFFSET-CONFIG_RTL_DEFAULT_SETTING_OFFSET) -#define CURRENT_SETTING_SECTOR_LEN (CONFIG_RTL_WEB_PAGES_OFFSET-CONFIG_RTL_CURRENT_SETTING_OFFSET) -#else -#define HW_SETTING_SECTOR_LEN (0x8000-0x6000) -#define DEFAULT_SETTING_SECTOR_LEN (0xc000-0x8000) -#define CURRENT_SETTING_SECTOR_LEN (0x10000-0xc000) -#endif +#ifndef __APMIB_H +#define __APMIB_H #ifndef WIN32 -#define __PACK__ __attribute__ ((packed)) +#define __PACK__ __attribute__ ((packed)) #else #define __PACK__ #endif - -/* Config/fw image file header */ - -typedef enum { HW_SETTING=1, DEFAULT_SETTING=2, CURRENT_SETTING=4 } CONFIG_DATA_T; +#define BOOT_HEADER ((char *)"boot") #if defined(CONFIG_RTL_8196B) -// update tag -#define HW_SETTING_HEADER_TAG ((char *)"h6") -//Brad add for distinguish ap(da:default setting for ap) or gateway(dg: default setting for gateway) platform -#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT)) -#define DEFAULT_SETTING_HEADER_TAG ((char *)"6V") -#elif (defined(HOME_GATEWAY)) -#define DEFAULT_SETTING_HEADER_TAG ((char *)"6G") -#else -#define DEFAULT_SETTING_HEADER_TAG ((char *)"6A") -#endif -//Brad add for distinguish ap(ca:current setting for ap) or gateway(cg: current setting for gateway) platform -#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT)) -#define CURRENT_SETTING_HEADER_TAG ((char *)"6v") -#elif (defined(HOME_GATEWAY)) -#define CURRENT_SETTING_HEADER_TAG ((char *)"6g") -#else -#define CURRENT_SETTING_HEADER_TAG ((char *)"6a") -#endif -// force tag -#define HW_SETTING_HEADER_FORCE_TAG ((char *)"Hf") -#define DEFAULT_SETTING_HEADER_FORCE_TAG ((char *)"Df") -#define CURRENT_SETTING_HEADER_FORCE_TAG ((char *)"Cf") -// upgrade -#define HW_SETTING_HEADER_UPGRADE_TAG ((char *)"Hu") -#define DEFAULT_SETTING_HEADER_UPGRADE_TAG ((char *)"Du") -#define CURRENT_SETTING_HEADER_UPGRADE_TAG ((char *)"Cu") -#elif defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) - -// update tag -#define HW_SETTING_HEADER_TAG ((char *)"H6") -#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT)) -#define DEFAULT_SETTING_HEADER_TAG ((char *)"6V") -#elif (defined(HOME_GATEWAY)) -#define DEFAULT_SETTING_HEADER_TAG ((char *)"6G") -#else -#define DEFAULT_SETTING_HEADER_TAG ((char *)"6A") -#endif -#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT)) -#define CURRENT_SETTING_HEADER_TAG ((char *)"6v") -#elif (defined(HOME_GATEWAY)) -#define CURRENT_SETTING_HEADER_TAG ((char *)"6g") -#else -#define CURRENT_SETTING_HEADER_TAG ((char *)"6a") -#endif -// force tag -#define HW_SETTING_HEADER_FORCE_TAG ((char *)"Hf") -#define DEFAULT_SETTING_HEADER_FORCE_TAG ((char *)"Df") -#define CURRENT_SETTING_HEADER_FORCE_TAG ((char *)"Cf") -// upgrade -#define HW_SETTING_HEADER_UPGRADE_TAG ((char *)"Hu") -#define DEFAULT_SETTING_HEADER_UPGRADE_TAG ((char *)"Du") -#define CURRENT_SETTING_HEADER_UPGRADE_TAG ((char *)"Cu") -#else -// update tag -#define HW_SETTING_HEADER_TAG ((char *)"hs") -#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT)) -#define DEFAULT_SETTING_HEADER_TAG ((char *)"dv") -#elif (defined(HOME_GATEWAY)) -#define DEFAULT_SETTING_HEADER_TAG ((char *)"dg") -#else -#define DEFAULT_SETTING_HEADER_TAG ((char *)"da") -#endif -#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT)) -#define CURRENT_SETTING_HEADER_TAG ((char *)"cv") -#elif (defined(HOME_GATEWAY)) -#define CURRENT_SETTING_HEADER_TAG ((char *)"cg") +#define ROOT_HEADER ((char *)"r6br") +#elif defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E) +#define ROOT_HEADER ((char *)"r6cr") #else -#define CURRENT_SETTING_HEADER_TAG ((char *)"ca") -#endif -// force tag -#define HW_SETTING_HEADER_FORCE_TAG ((char *)"hf") -#define DEFAULT_SETTING_HEADER_FORCE_TAG ((char *)"df") -#define CURRENT_SETTING_HEADER_FORCE_TAG ((char *)"cf") -// upgrade -#define HW_SETTING_HEADER_UPGRADE_TAG ((char *)"hu") -#define DEFAULT_SETTING_HEADER_UPGRADE_TAG ((char *)"du") -#define CURRENT_SETTING_HEADER_UPGRADE_TAG ((char *)"cu") -#endif //#if defined(CONFIG_RTL_8196B) - - -#if 0//def CONFIG_RTL8196B_GW_8M -#undef DEFAULT_SETTING_HEADER_TAG -#define DEFAULT_SETTING_HEADER_TAG ((char *)"61") - -#undef CURRENT_SETTING_HEADER_TAG -#define CURRENT_SETTING_HEADER_TAG ((char *)"62") -#endif - - -#define TAG_LEN 2 - -#if defined(CONFIG_RTL_8196B) - -#define HW_SETTING_VER 1 // hw setting version -#define DEFAULT_SETTING_VER 2 // default setting version -#define CURRENT_SETTING_VER DEFAULT_SETTING_VER // current setting version - -#elif defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) -#define HW_SETTING_VER 1 // hw setting version -#define DEFAULT_SETTING_VER 1 // default setting version -#define CURRENT_SETTING_VER DEFAULT_SETTING_VER // current setting version -#else - -#define HW_SETTING_VER 3 // hw setting version -#define DEFAULT_SETTING_VER 4 // default setting version -#define CURRENT_SETTING_VER DEFAULT_SETTING_VER // current setting version - -#endif - -#if defined(CONFIG_RTL_8196B) -#define FW_HEADER_WITH_ROOT ((char *)"cr6b") -#define FW_HEADER ((char *)"cs6b") -#elif defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) -#define FW_HEADER_WITH_ROOT ((char *)"cr6c") -#define FW_HEADER ((char *)"cs6c") -#else -#define FW_HEADER_WITH_ROOT ((char *)"csro") -#define FW_HEADER ((char *)"csys") +#define ROOT_HEADER ((char *)"root") #endif //#if defined(CONFIG_RTL_8196B) #if defined(CONFIG_RTL_8196B) #if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT)) -#define WEB_HEADER ((char *)"w6bv") +#define WEB_HEADER ((char *)"w6bv") #elif (defined(HOME_GATEWAY)) -#define WEB_HEADER ((char *)"w6bg") +#define WEB_HEADER ((char *)"w6bg") #else -#define WEB_HEADER ((char *)"w6ba") +#define WEB_HEADER ((char *)"w6ba") #endif -#elif defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) +#elif defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E) #if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT)) -#define WEB_HEADER ((char *)"w6cv") +#define WEB_HEADER ((char *)"w6cv") #elif (defined(HOME_GATEWAY)) -#define WEB_HEADER ((char *)"w6cg") +#define WEB_HEADER ((char *)"w6cg") #else -#define WEB_HEADER ((char *)"w6ca") +#define WEB_HEADER ((char *)"w6ca") #endif #else #if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT)) -#define WEB_HEADER ((char *)"webv") +#define WEB_HEADER ((char *)"webv") #elif (defined(HOME_GATEWAY)) -#define WEB_HEADER ((char *)"webg") +#define WEB_HEADER ((char *)"webg") #else -#define WEB_HEADER ((char *)"weba") +#define WEB_HEADER ((char *)"weba") #endif #endif //#if defined(CONFIG_RTL_8196B) #if defined(CONFIG_RTL_8196B) -#define ROOT_HEADER ((char *)"r6br") -#elif defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) -#define ROOT_HEADER ((char *)"r6cr") -#else -#define ROOT_HEADER ((char *)"root") +#define FW_HEADER_WITH_ROOT ((char *)"cr6b") +#define FW_HEADER ((char *)"cs6b") +#elif defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E) +#define FW_HEADER_WITH_ROOT ((char *)"cr6c") +#define FW_HEADER ((char *)"cs6c") +#else +#define FW_HEADER_WITH_ROOT ((char *)"csro") +#define FW_HEADER ((char *)"csys") #endif //#if defined(CONFIG_RTL_8196B) -#define CERT_HEADER ((char *)"cert") -#define BOOT_HEADER ((char *)"boot") -#define ALL_HEADER ((char *)"allp") -#define SIGNATURE_LEN 4 - -/* wlan driver ioctl id */ -#define SIOCGIWRTLSTAINFO 0x8B30 // get station table information -#define SIOCGIWRTLSTANUM 0x8B31 // get the number of stations in table -#define SIOCGIWRTLSCANREQ 0x8B33 // scan request -#define SIOCGIWRTLGETBSSDB 0x8B34 // get bss data base -#define SIOCGIWRTLJOINREQ 0x8B35 // join request -#define SIOCGIWRTLJOINREQSTATUS 0x8B36 // get status of join request -#define SIOCGIWRTLGETBSSINFO 0x8B37 // get currnet bss info -#define SIOCGIWRTLGETWDSINFO 0x8B38 -#define SIOCGMISCDATA 0x8B48 // get misc data - -//=========add for MESH========= -//#ifdef CONFIG_RTK_MESH Keith remove -// by GANTOE for site survey 2008/12/26 -#define SIOCJOINMESH 0x8B94 -#define SIOCCHECKMESHLINK 0x8B95 -#define RTL8190_IOCTL_GET_MIB 0x89f2 -//#endif Keith remove -//=========add for MESH========= - -#define MAC_ADDR_LEN 6 -#define MAX_STA_NUM 64 // max support sta number +#define ALL_HEADER ((char *)"allp") -/* flag of sta info */ -#define STA_INFO_FLAG_AUTH_OPEN 0x01 -#define STA_INFO_FLAG_AUTH_WEP 0x02 -#define STA_INFO_FLAG_ASOC 0x04 -#define STA_INFO_FLAG_ASLEEP 0x08 - -// bit value for hw board id -#if 0 -// Old code and no longer used -#define ETH_PHY_TYPE 1 -#define BOOT_PORT_SELECT 2 -#define USE_ETH0_WAN 4 -#endif -#define WLAN_RF_2T2R 1 - -#ifdef WIFI_SIMPLE_CONFIG -enum { WSC_AUTH_OPEN=1, WSC_AUTH_WPAPSK=2, WSC_AUTH_SHARED=4, WSC_AUTH_WPA=8, WSC_AUTH_WPA2=0x10, WSC_AUTH_WPA2PSK=0x20, WSC_AUTH_WPA2PSKMIXED=0x22 }; -enum { WSC_ENCRYPT_NONE=1, WSC_ENCRYPT_WEP=2, WSC_ENCRYPT_TKIP=4, WSC_ENCRYPT_AES=8, WSC_ENCRYPT_TKIPAES=12 }; -enum { CONFIG_METHOD_ETH=0x2, CONFIG_METHOD_PIN=0x4, CONFIG_METHOD_PBC=0x80 }; -enum { CONFIG_BY_INTERNAL_REGISTRAR=1, CONFIG_BY_EXTERNAL_REGISTRAR=2}; -#endif -typedef enum { ENCRYPT_DISABLED=0, ENCRYPT_WEP=1, ENCRYPT_WPA=2, ENCRYPT_WPA2=4, ENCRYPT_WPA2_MIXED=6 ,ENCRYPT_WAPI=7} ENCRYPT_T; -typedef enum { WDS_ENCRYPT_DISABLED=0, WDS_ENCRYPT_WEP64=1, WDS_ENCRYPT_WEP128=2, WDS_ENCRYPT_TKIP=3, WDS_ENCRYPT_AES=4} WDS_ENCRYPT_T; -typedef enum { SUPP_NONWPA_NONE=0,SUPP_NONWPA_WEP=1,SUPP_NONWPA_1X=2} SUPP_NONWAP_T; -typedef enum { WPA_AUTH_AUTO=1, WPA_AUTH_PSK=2 } WPA_AUTH_T; -typedef enum { WAPI_AUTH_AUTO=1, WAPI_AUTH_PSK=2 } WAPI_AUTH_T; -typedef enum { WPA_CIPHER_TKIP=1, WPA_CIPHER_AES=2, WPA_CIPHER_MIXED=3 } WPA_CIPHER_T; -typedef enum { WEP_DISABLED=0, WEP64=1, WEP128=2 } WEP_T; -typedef enum { KEY_ASCII=0, KEY_HEX } KEY_TYPE_T; -typedef enum { LONG_PREAMBLE=0, SHORT_PREAMBLE=1 } PREAMBLE_T; -typedef enum { DHCP_DISABLED=0, DHCP_CLIENT=1, DHCP_SERVER=2, PPPOE=3, PPTP=4, L2TP=6, DHCP_AUTO=15 , USB3G=16 } DHCP_T; /* # keith: add l2tp support. 20080515 */ -typedef enum { DHCP_LAN_NONE=0, DHCP_LAN_CLIENT=1, DHCP_LAN_SERVER=2, DHCP_LAN_RELAY=3 } DHCP_TYPE_T; //keith add. LAN SIDE DHCP TYPE -typedef enum { GATEWAY_MODE=0, BRIDGE_MODE=1, WISP_MODE=2 } OPMODE_T; -typedef enum { DISABLE_MODE=0, RIP1_MODE=1, RIP2_MODE=2 } RIP_OPMODE_T; -typedef enum { FCC=1, IC, ETSI, SPAIN, FRANCE, MKK } REG_DOMAIN_T; -typedef enum { AUTH_OPEN=0, AUTH_SHARED, AUTH_BOTH } AUTH_TYPE_T; -typedef enum { DNS_AUTO=0, DNS_MANUAL } DNS_TYPE_T; -typedef enum { CONTINUOUS=0, CONNECT_ON_DEMAND, MANUAL } PPP_CONNECT_TYPE_T; -typedef enum { RF_INTERSIL=1, RF_RFMD=2, RF_PHILIP=3, RF_MAXIM=4, RF_GCT=5, - RF_MAXIM_AG=6, RF_ZEBRA=7, RF_8255=8 } RF_TYPE_T; -typedef enum { LED_TX_RX=0, LED_LINK_TXRX=1, LED_LINKTXRX=2 } LED_TYPE_T; - -//=========add for MESH========= -#ifdef CONFIG_RTK_MESH -typedef enum { RANN=0, PREQ=1 } TREEMECH_T; -#ifdef CONFIG_NEW_MESH_UI -typedef enum { AP_MODE=0, CLIENT_MODE=1, WDS_MODE=2, AP_WDS_MODE=3, AP_MESH_MODE=4, MESH_MODE=5} WLAN_MODE_T; -#else -typedef enum { AP_MODE=0, CLIENT_MODE=1, WDS_MODE=2, AP_WDS_MODE=3, AP_MPP_MODE=4, MPP_MODE=5, MAP_MODE=6, MP_MODE=7 } WLAN_MODE_T; -#endif -#else -typedef enum { AP_MODE=0, CLIENT_MODE=1, WDS_MODE=2, AP_WDS_MODE=3 } WLAN_MODE_T; -#endif // CONFIG_RTK_MESH -//=========add for MESH========= - -typedef enum { INFRASTRUCTURE=0, ADHOC=1 } NETWORK_TYPE_T; -typedef enum { BAND_11B=1, BAND_11G=2, BAND_11BG=3, BAND_11A=4, BAND_11N=8, BAND_5G_11AN=12 } BAND_TYPE_T; -typedef enum { DISABLED=0, A_MPDU=1, A_MSDU=2, A_MIXED=3} AGGREGATION_MODE_T; // GANTOE & epopen: DISABLED=0 original is DISABLE=0, Because conflict with ../../auth/include/1x_common.h in AP/net-snmp-5.x.x -typedef enum { PHYBAND_OFF=0, PHYBAND_2G=1, PHYBAND_5G=2 } PHYBAND_TYPE_T; -typedef enum { SMACSPHY=0, DMACSPHY=1, DMACDPHY=2 } MACPHYMODE_TYPE_T; -typedef enum { BANDMODE2G=0, BANDMODE5G=1, BANDMODEBOTH=2, BANDMODESINGLE=3 } WLANBAND2G5GMODE_TYPE_T; - -#ifdef HOME_GATEWAY -#ifdef VPN_SUPPORT -typedef enum { IKE_MODE=0, MANUAL_MODE=1} KEY_MODE_T; -typedef enum { SINGLE_ADDR=0, SUBNET_ADDR=1, ANY_ADDR=2, NATT_ADDR=3} ADDRESS_MODE_T; -typedef enum { INITIATOR=0, RESPONDER=1} CONN_TYPE_T; -typedef enum { MD5_ALGO=0, AUTH_ALGO=1} AUTH_MODE_T; -typedef enum { ESP_PROTO=0, AH_PROTO=1} IPSEC_PROTO_T; -typedef enum { TRI_DES_ALGO=0, AES_ALGO=1, NONE_ALGO=2} ENCR_MODE_T; -// DH1=768 bits, DH2=1024 bits, DH5= 1536 -typedef enum { DH1_GRP=0, DH2_GRP=1, DH5_GRP=2} KEY_GROUP_T; -#endif // VPN_SUPPORT -typedef enum { PROTO_BOTH=3, PROTO_TCP=1, PROTO_UDP=2 } PROTO_TYPE_T; -#endif // HOME_GATEWAY - -#ifdef WLAN_EASY_CONFIG -enum { MODE_BUTTON=1, MODE_QUESTION=2 }; -enum { - ACF_ALGORITHM_WEP64 = 0x01, - ACF_ALGORITHM_WEP128 = 0x02, - ACF_ALGORITHM_WPA_TKIP = 0x04, - ACF_ALGORITHM_WPA_AES = 0x08, - ACF_ALGORITHM_WPA2_TKIP = 0x10, - ACF_ALGORITHM_WPA2_AES = 0x20, -}; -enum { ROLE_SERVER=1, ROLE_CLIENT=2, ROLE_ADHOC=4}; -#endif // WLAN_EASY_CONFIG - -enum {TURBO_AUTO=0, TURBO_ON=1, TURBO_OFF=2}; - -#ifdef CONFIG_RTL_802_1X_CLIENT_SUPPORT -typedef enum { EAP_MD5=0, EAP_TLS=1, EAP_PEAP=2 } EAP_TYPE_T; -typedef enum { INSIDE_MSCHAPV2=0 } INSIDE_TYPE_T; -#define MAX_EAP_USER_ID_LEN 64 -#define MAX_RS_USER_NAME_LEN 64 -#define MAX_RS_USER_PASS_LEN 64 -#define MAX_RS_USER_CERT_PASS_LEN 64 -#define RS_USER_CERT_5G "/var/1x/client_5g.pem" -#define RS_ROOT_CERT_5G "/var/1x/ca_5g.pem" -#define RS_USER_CERT_2G "/var/1x/client_2g.pem" -#define RS_ROOT_CERT_2G "/var/1x/ca_2g.pem" -#define RS_USER_CERT_TMP "/var/1x/client_tmp.pem" -#define RS_ROOT_CERT_TMP "/var/1x/ca_tmp.pem" -#define CERT_SIZE 0x8000 //32KB, should be sync with users/auth/src/rwCertSrc/rsCertCommon.h -#endif +#define HW_SETTING_OFFSET 0x6000 +#define DEFAULT_SETTING_OFFSET 0x8000 +#define CURRENT_SETTING_OFFSET 0xc000 #define DWORD_SWAP(v) ( (((v&0xff)<<24)&0xff000000) | ((((v>>8)&0xff)<<16)&0xff0000) | \ - ((((v>>16)&0xff)<<8)&0xff00) | (((v>>24)&0xff)&0xff) ) -#define WORD_SWAP(v) ((unsigned short)(((v>>8)&0xff) | ((v<<8)&0xff00))) - -/* scramble saved configuration data */ -#define ENCODE_DATA(data,len) { \ - int i; \ - for (i=0; i<len; i++) \ - data[i] = ~ ( data[i] + 0x38); \ -} - -#define DECODE_DATA(data,len) { \ - int i; \ - for (i=0; i<len; i++) \ - data[i] = ~data[i] - 0x38; \ -} - -/* Do checksum and verification for configuration data */ -#ifndef WIN32 -static inline unsigned char CHECKSUM(unsigned char *data, int len) -#else -__inline unsigned char CHECKSUM(unsigned char *data, int len) -#endif -{ - int i; - unsigned char sum=0; - - for (i=0; i<len; i++) - sum += data[i]; - - sum = ~sum + 1; - return sum; -} -#ifndef WIN32 -static inline int CHECKSUM_OK(unsigned char *data, int len) -#else -__inline int CHECKSUM_OK(unsigned char *data, int len) -#endif -{ - int i; - unsigned char sum=0; - - for (i=0; i<len; i++) - sum += data[i]; - - if (sum == 0) - return 1; - else - return 0; -} - -/* WLAN sta info structure */ -typedef struct wlan_sta_info { - unsigned short aid; - unsigned char addr[6]; - unsigned long tx_packets; - unsigned long rx_packets; - unsigned long expired_time; // 10 msec unit - unsigned short flag; - unsigned char txOperaRates; - unsigned char rssi; - unsigned long link_time; // 1 sec unit - unsigned long tx_fail; - unsigned long tx_bytes; - unsigned long rx_bytes; - unsigned char network; - unsigned char ht_info; // bit0: 0=20M mode, 1=40M mode; bit1: 0=longGI, 1=shortGI - unsigned char resv[6]; -} WLAN_STA_INFO_T, *WLAN_STA_INFO_Tp; - -typedef struct wlan_rate{ -unsigned int id; -unsigned char rate[20]; -}WLAN_RATE_T, *WLAN_RATE_Tp; -typedef enum { - MCS0=0x80, - MCS1=0x81, - MCS2=0x82, - MCS3=0x83, - MCS4=0x84, - MCS5=0x85, - MCS6=0x86, - MCS7=0x87, - MCS8=0x88, - MCS9=0x89, - MCS10=0x8a, - MCS11=0x8b, - MCS12=0x8c, - MCS13=0x8d, - MCS14=0x8e, - MCS15=0x8f - } RATE_11N_T; - -#ifdef WIN32 -#pragma pack(1) -#endif - - -//zj: eco featrue -#define ECO_LEDDIM_MASK 0x08 -#define ECO_TIMER_MASK 0x04 -#define ECO_EVERYDAY_MASK 0x02 -#define ECO_24HOURS_MASK 0x01 - -#define ECO_DAY_MASK 0x0000007F -#define ECO_SUNDAY_MASK 0x00000001 -#define ECO_MONDAY_MASK 0x00000002 -#define ECO_TUESDAY_MASK 0x00000004 -#define ECO_WEDNESDAY_MASK 0x00000008 -#define ECO_THURSDAY_MASK 0x00000010 -#define ECO_FRIDAY_MASK 0x00000020 -#define ECO_SATURDAY_MASK 0x00000040 - -#define SCHEDULE_NAME_LEN 20 -typedef struct schedule_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_SCHEDULE_IMPORT -#include "mibdef.h" -#undef MIB_SCHEDULE_IMPORT - -#undef MIBDEF -}__PACK__ SCHEDULE_T, *SCHEDULE_Tp; - - - -typedef struct macfilter_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_MACFILTER_IMPORT -#include "mibdef.h" -#undef MIB_MACFILTER_IMPORT - -#undef MIBDEF -}__PACK__ MACFILTER_T, *MACFILTER_Tp; - -#ifdef HOME_GATEWAY -typedef struct urlfilter_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_URLFILTER_IMPORT -#include "mibdef.h" -#undef MIB_URLFILTER_IMPORT - -#undef MIBDEF -}__PACK__ URLFILTER_T, *URLFILTER_Tp; + ((((v>>16)&0xff)<<8)&0xff00) | (((v>>24)&0xff)&0xff) ) -typedef struct portfw_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_PORTFW_IMPORT -#include "mibdef.h" -#undef MIB_PORTFW_IMPORT - -#undef MIBDEF -}__PACK__ PORTFW_T, *PORTFW_Tp; - -typedef struct ipfilter_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_IPFILTER_IMPORT -#include "mibdef.h" -#undef MIB_IPFILTER_IMPORT - -#undef MIBDEF -}__PACK__ IPFILTER_T, *IPFILTER_Tp; - -typedef struct portfilter_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_PORTFILTER_IMPORT -#include "mibdef.h" -#undef MIB_PORTFILTER_IMPORT - -#undef MIBDEF -}__PACK__ PORTFILTER_T, *PORTFILTER_Tp; - -typedef struct triggerport_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_TRIGGERPORT_IMPORT -#include "mibdef.h" -#undef MIB_TRIGGERPORT_IMPORT - -#undef MIBDEF -}__PACK__ TRIGGERPORT_T, *TRIGGERPORT_Tp; - -#ifdef GW_QOS_ENGINE -#define MAX_QOS_NAME_LEN 15 -typedef struct qos_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_QOS_IMPORT -#include "mibdef.h" -#undef MIB_QOS_IMPORT - -#undef MIBDEF -}__PACK__ QOS_T, *QOS_Tp; -#endif - -#ifdef QOS_BY_BANDWIDTH -#define QOS_RESTRICT_MIN 0x01 -#define QOS_RESTRICT_MAX 0x02 -#define QOS_RESTRICT_IP 0x04 -#define QOS_RESTRICT_MAC 0x08 -#define MAX_QOS_NAME_LEN 15 - -typedef struct qos_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_IPQOS_IMPORT -#include "mibdef.h" -#undef MIB_IPQOS_IMPORT - -#undef MIBDEF -}__PACK__ IPQOS_T, *IPQOS_Tp; -#endif - -#ifdef VPN_SUPPORT -typedef struct ipsectunnel_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_IPSECTUNNEL_IMPORT -#include "mibdef.h" -#undef MIB_IPSECTUNNEL_IMPORT - -#undef MIBDEF -}__PACK__ IPSECTUNNEL_T, *IPSECTUNNEL_Tp; -#endif // VPN_SUPPORT - -#ifdef CONFIG_IPV6 -#define uint16 unsigned short -#define uint8 unsigned char -#define uint32 unsigned int -/*radvd*/ -struct AdvPrefix { - uint16 Prefix[8]; - uint8 PrefixLen; - uint8 AdvOnLinkFlag; - uint8 AdvAutonomousFlag; - uint32 AdvValidLifetime; - uint32 AdvPreferredLifetime; - - /* Mobile IPv6 extensions */ - uint8 AdvRouterAddr; - - /* 6to4 extensions */ - char if6to4[IFNAMESIZE]; - uint8 enabled; -}__PACK__; - -struct Interface { - char Name[IFNAMESIZE]; /* interface name */ - uint32 MaxRtrAdvInterval; - uint32 MinRtrAdvInterval; - uint32 MinDelayBetweenRAs; - uint8 AdvManagedFlag; - uint8 AdvOtherConfigFlag; - uint32 AdvLinkMTU; - uint32 AdvReachableTime; - uint32 AdvRetransTimer; - uint8 AdvCurHopLimit; - uint16 AdvDefaultLifetime; - char AdvDefaultPreference[IFNAMESIZE]; - uint8 AdvSourceLLAddress; - uint8 UnicastOnly; - struct AdvPrefix prefix[MAX_PREFIX_NUM]; -}__PACK__; - -typedef struct radvdCfgParam_s -{ - uint8 enabled; - /*support eth1 only*/ - struct Interface interface; -}__PACK__ radvdCfgParam_t, *radvdCfgParam_Tp; - - -/*dnsv6*/ -struct rrResource -{ - char domainName[MAX_DNAME_SIZE]; - uint16 address[8]; -}__PACK__; - -typedef struct dnsv6CfgParam_s -{ - uint8 enabled; - /*default name myrouter*/ - char routerName[NAMSIZE]; - struct rrResource rr[RR_MAX_NUM]; -}__PACK__ dnsv6CfgParam_t, *dnsv6CfgParam_Tp; - -/*dhcp6*/ -typedef struct dhcp6sCfgParam_s -{ - uint8 enabled; - char DNSaddr6[48]; - char addr6PoolS[48]; - char addr6PoolE[48]; - /*default name interface*/ - char interfaceNameds[NAMSIZE]; - -}__PACK__ dhcp6sCfgParam_t, *dhcp6sCfgParam_Tp; - -/*IPv6 Addr*/ -typedef struct addrIPv6CfgParam_s -{ - int enabled; /* 0:off 1:on */ - int prefix_len[2]; - uint16 addrIPv6[2][8]; -}__PACK__ addrIPv6CfgParam_t,*daddrIPv6CfgParam_Tp; - -/*Tunnel*/ -/*dhcp6*/ -typedef struct tunnelCfgParam_s -{ - uint8 enabled; -}__PACK__ tunnelCfgParam_t, *tunnelCfgParam_Tp; -#endif - -#endif // HOME_GATEWAY - -#ifdef TLS_CLIENT -typedef struct certroot_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_CERTROOT_IMPORT -#include "mibdef.h" -#undef MIB_CERTROOT_IMPORT - -#undef MIBDEF -}__PACK__ CERTROOT_T, *CERTROOT_Tp; -typedef struct certUser_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_CERTUSER_IMPORT -#include "mibdef.h" -#undef MIB_CERTUSER_IMPORT - -#undef MIBDEF -}__PACK__ CERTUSER_T, *CERTUSER_Tp; -#endif -#ifdef HOME_GATEWAY -#ifdef ROUTE_SUPPORT -typedef struct staticRoute_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_STATICROUTE_IMPORT -#include "mibdef.h" -#undef MIB_STATICROUTE_IMPORT - -#undef MIBDEF -}__PACK__ STATICROUTE_T, *STATICROUTE_Tp; -#endif -#endif - -typedef struct dhcpRsvdIP_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_DHCPRSVDIP_IMPORT -#include "mibdef.h" -#undef MIB_DHCPRSVDIP_IMPORT - -#undef MIBDEF -}__PACK__ DHCPRSVDIP_T, *DHCPRSVDIP_Tp; - -typedef struct wlanwds_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_WDS_IMPORT -#include "mibdef.h" -#undef MIB_WDS_IMPORT -}__PACK__ WDS_T, *WDS_Tp; - - -#if defined(HOME_GATEWAY) || defined(CONFIG_RTL_8198_AP_ROOT) -#if defined(VLAN_CONFIG_SUPPORTED) -typedef struct vlan_lanconfig_entry { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_VLAN_CONFIG_IMPORT -#include "mibdef.h" -#undef MIB_VLAN_CONFIG_IMPORT - -#undef MIBDEF -}__PACK__ VLAN_CONFIG_T, *VLAN_CONFIG_Tp; -#endif -#endif - - -typedef struct hw_wlan_setting { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_HW_WLAN_IMPORT -#include "mibdef.h" -#undef MIB_HW_WLAN_IMPORT - -#undef MIBDEF -}__PACK__ HW_WLAN_SETTING_T, *HW_WLAN_SETTING_Tp; - -typedef struct hw_setting { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_HW_IMPORT -#include "mibdef.h" -#undef MIB_HW_IMPORT - -#undef MIBDEF -}__PACK__ HW_SETTING_T, *HW_SETTING_Tp; - -typedef struct config_wlan_setting { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ - _ctype _cname _crepeat; - -#define MIB_CONFIG_WLAN_SETTING_IMPORT -#include "mibdef.h" -#undef MIB_CONFIG_WLAN_SETTING_IMPORT - -#undef MIBDEF -}__PACK__ CONFIG_WLAN_SETTING_T, *CONFIG_WLAN_SETTING_Tp; - -typedef struct config_setting { -#define MIBDEF(_ctype, _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \ -_ctype _cname _crepeat; - -#define MIB_IMPORT -#include "mibdef.h" -#undef MIB_IMPORT - -#undef MIBDEF -}__PACK__ APMIB_T, *APMIB_Tp; +#define WORD_SWAP(v) ((unsigned short)(((v>>8)&0xff) | ((v<<8)&0xff00))) -/* Config file header */ -typedef struct param_header { - unsigned char signature[SIGNATURE_LEN]; // Tag + version - unsigned short len; -}__PACK__ PARAM_HEADER_T, *PARAM_HEADER_Tp; +#define SIGNATURE_LEN 4 -/* Firmware image file header */ typedef struct img_header { - unsigned char signature[SIGNATURE_LEN]; - unsigned int startAddr; - unsigned int burnAddr; - unsigned int len; + unsigned char signature[SIGNATURE_LEN]; + unsigned int startAddr; + unsigned int burnAddr; + unsigned int len; }__PACK__ IMG_HEADER_T, *IMG_HEADER_Tp; -/* Web page file header */ -typedef IMG_HEADER_T WEB_HEADER_T; -typedef IMG_HEADER_Tp WEB_HEADER_Tp; -#ifdef TLS_CLIENT -typedef IMG_HEADER_T CERT_HEADER_T; -typedef IMG_HEADER_Tp CERT_HEADER_Tp; -#endif -typedef struct _file_entry { - char name[MAXFNAME]; - unsigned int size; -}__PACK__ FILE_ENTRY_T, *FILE_ENTRY_Tp; - -#ifdef COMPRESS_MIB_SETTING -/* Compress config setting file header */ -#if 0 -#define COMP_TRACE fprintf -#else -#define COMP_TRACE -#endif - -#define COMP_SIGNATURE_LEN 6 -#define COMP_HS_SIGNATURE "COMPHS" -#define COMP_CS_SIGNATURE "COMPCS" -#define COMP_DS_SIGNATURE "COMPDS" -typedef struct compress_mib_header { - unsigned char signature[COMP_SIGNATURE_LEN]; - unsigned short compRate; - unsigned int compLen; -}__PACK__ COMPRESS_MIB_HEADER_T, *COMPRESS_MIB_HEADER_Tp; - -#endif // #ifdef COMPRESS_MIB_SETTING - -#ifdef WIN32 -#pragma pack() #endif - - -////////////////////////////////////////////////////////// -int apmib_init_HW(void); -int apmib_init(void); -int apmib_reinit(void); -char *apmib_hwconf(void); -char *apmib_csconf(void); -char *apmib_dsconf(void); -int apmib_get(int id, void *value); -int apmib_getDef(int id, void *value); -int apmib_set(int id, void *value); -int apmib_setDef(int id, void *value); -int apmib_update(CONFIG_DATA_T type); -int apmib_updateDef(void); -int apmib_updateFlash(CONFIG_DATA_T type, char *data, int len, int force, int ver); -int update_linkchain(int fmt, void *Entry_old, void *Entry_new, int type_size); -extern APMIB_Tp pMib, pMibDef; -extern HW_SETTING_Tp pHwSetting; -extern PARAM_HEADER_T hsHeader, dsHeader, csHeader; -extern int wlan_idx; -extern int vwlan_idx; -#ifdef GW_QOS_ENGINE -extern void getVal12(char *value, char **p1, char **p2, char **p3, char **p4, char **p5, char **p6, char **p7, - char **p8, char **p9, char **p10, char **p11, char **p12); -#define QOS_FORMAT ("%d, %d, %d, %s, %s, %d, %d, %s, %s, %d, %d, %s") -#endif - -#ifdef QOS_BY_BANDWIDTH -//#define QOS_FORMAT ("%d, %s, %d, %s, %s, %d, %s") -#define QOS_FORMAT ("%d, %02x%02x%02x%02x%02x%02x, %d, %s, %s, %d, %d, %s") -#endif - -#if CONFIG_APMIB_SHARED_MEMORY == 1 -#define HWCONF_SHM_KEY 0 -#define DSCONF_SHM_KEY 1 -#define CSCONF_SHM_KEY 2 - -int apmib_sem_lock(void); -int apmib_sem_unlock(void); -int apmib_shm_free(void *shm_memory, int shm_key); -#endif - - -#ifdef CONFIG_CWMP_TR069 - -/* Keith add for tr069 --start */ -#undef mib_get -#undef mib_set -#undef mib_update - -#define mib_get(S, T) apmib_get(S, T) -#define mib_set(S, T) apmib_set(S, T) -#define mib_update(S) apmib_update(S) -#define LANDEVNAME2BR0(a) do{ if(a && (strncmp(a, "eth0", 4)==0||strncmp(a, "wlan0", 5)==0||strncmp(a, "usb0", 4)==0)) strcpy(a, "br0"); }while(0) -/* Keith add for tr069 --end */ - -#define TIME_ZONE -#define WLAN_SUPPORT -#ifdef MBSSID -#define WLAN_MBSSID -#endif -#ifdef UNIVERSAL_REPEATER -#define WLAN_REPEATER -#endif -#define MAC_FILTER -#define ENABLE_WPAAES_WPA2TKIP - -#endif //#ifdef CONFIG_CWMP_TR069 -//#if defined(CONFIG_USBDISK_UPDATE_IMAGE) -#define USB_UPLOAD_FORM_PATH "/tmp/usb/sda1/fw.bin" -//#endif -//### add by sen_liu 2011.4.21 sync the system log update (enlarge from 1 pcs to 8 pcs) to SDKv2.5 from kernel 2.4 -#define RINGLOG -#ifdef RINGLOG /* ring log */ -#define MAX_LOG_SIZE 8 /* unit is kbyte */ -#define LOG_SPLIT 7 /* can't greater than 99 */ - /* - for /var/log/message.(LOG_SPLIT-1) to /var/log/message.0 and then /var/log/message - ex: LOG_SPLIT = 7, we will have - /var/log/message.6 - ... - /var/log/message.0 - /var/log/message - */ -#endif /* ring log */ - -//### end -#endif // INCLUDE_APMIB_H diff --git a/tools/firmware-utils/src/bixutil.c b/tools/firmware-utils/src/bixutil.c deleted file mode 100644 index 6e7dcd479..000000000 --- a/tools/firmware-utils/src/bixutil.c +++ /dev/null @@ -1,188 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/mman.h> -#include <time.h> -#include <fcntl.h> -#include <errno.h> - -#define RTL_PRODUCT_MAGIC1 0x59a0e842 -#define SQUASH_MAGIC 0x73717368 -#define RTL_IMAGE_VERSION 1 -#define RTL_IMAGE_TYPE_RDIR 0xb162 -#define RTL_IMAGE_TYPE_BOOT 0xea43 -#define RTL_IMAGE_TYPE_RUN 0x8dc9 -#define RTL_IMAGE_TYPE_KFS 0xd92f -#define RTL_IMAGE_TYPE_CCFG 0x2a05 -#define RTL_IMAGE_TYPE_DCFG 0x6ce8 -#define RTL_IMAGE_TYPE_LOG 0xc371 - -#define ENDIAN_SWITCH32(x) (((x) >> 24) | \ - (((x) >> 8) & 0xFF00) | \ - (((x) << 8) & 0xFF0000) | \ - (((x) << 24) &0xFF000000)) -#define ENDIAN_SWITCH16(x) ((((x) >> 8) & 0xFF) | \ - (((x) << 8) & 0xFF00)) - - -struct image_header { - u_int32_t magic1; - u_int16_t type; - u_int8_t ver; - u_int8_t align1; - u_int16_t year; - u_int8_t mon; - u_int8_t day; - u_int8_t hour; - u_int8_t min; - u_int8_t sec; - u_int8_t align2; - u_int32_t len; - u_int16_t align3; - u_int8_t icsum; - u_int8_t hcsum; -}; - -void print_header(struct image_header *h) -{ - printf("Magic1: 0x%08x\n", ENDIAN_SWITCH32(h->magic1)); - printf("Type: 0x%04x\n", ENDIAN_SWITCH16(h->type)); - printf("Version: %d\n", h->ver); - printf("Built: %04d-%02d-%02d %02d:%02d:%02d\n", - ENDIAN_SWITCH16(h->year), h->mon, h->day, h->hour, - h->min, h->sec); - printf("Length: %ld\n", ENDIAN_SWITCH32(h->len)); - printf("Checksums: 0x%02x (header), 0x%02x (image)\n", - h->hcsum, h->icsum); -} - -void *do_mmap(char *filename, int size, int readonly) -{ - int fd; - int openflags = O_RDWR | O_CREAT | O_TRUNC; - int protflags = PROT_READ | PROT_WRITE; - void *ptr; - struct stat st; - - if (readonly) { - openflags = O_RDONLY; - protflags = PROT_READ; - } - - if (!size) { - if (!readonly) - goto failed; - if (stat(filename, &st) != 0) { - perror("stat failed"); - goto failed; - } - size = st.st_size; - } - - if (!size) - goto failed; - - if ((fd = open(filename, openflags, 0644)) == -1) { - perror("open failed"); - goto failed; - } - - if (!readonly) - ftruncate(fd, size); - - ptr = mmap(0, size, protflags, MAP_SHARED, fd, 0); - if (ptr == MAP_FAILED) { - perror("mmap failed"); - goto mmap_failed; - } - - return ptr; - -mmap_failed: - close(fd); -failed: - return NULL; -} - -int write_image(char *kernel, char *outfile) -{ - unsigned char type; - unsigned long ksize, padded; - unsigned long i; - unsigned char ch, *src, *dst; - struct stat st; - struct image_header *h; - time_t tt; - struct tm *ut; - - tt = time(NULL); - ut = localtime(&tt); - - if (stat(kernel, &st) != 0) - error(-1, "stat %s failed", kernel); - ksize = st.st_size; - - padded = sizeof(struct image_header) + - ksize + ksize % 4; /* fs starts 32-bit aligned (?check) */ - - h = (struct image_header *)do_mmap(outfile, padded, 0); - if (!h) - return -1; - - memset(h, 0, sizeof(struct image_header)); - - dst = (unsigned char *)((unsigned)h + sizeof(struct image_header)); - src = (unsigned char *)do_mmap(kernel, ksize, 1); - if (!src) - return -1; - - for (i = 0; i < ksize; i++) { - dst[i] = src[i]; - h->icsum ^= src[i]; - } - - for (i = 0; i < ksize % 4; i++) - dst[ksize + i] = 0; - - munmap(src, ksize); - - h->magic1 = ENDIAN_SWITCH32(RTL_PRODUCT_MAGIC1); - h->type = ENDIAN_SWITCH16(RTL_IMAGE_TYPE_RUN); - h->ver = RTL_IMAGE_VERSION; - h->year = ENDIAN_SWITCH16(ut->tm_year + 1900); - h->mon = ut->tm_mon + 1; - h->day = ut->tm_mday; - h->hour = ut->tm_hour; - h->min = ut->tm_min; - h->sec = ut->tm_sec; - h->len = ENDIAN_SWITCH32(padded - sizeof(struct image_header)); - - for (i = 0; i < (sizeof(struct image_header) - 1); i++) - h->hcsum ^= ((unsigned char *)&h)[i]; - munmap(h, padded); - return 0; -} - -void usage(void) -{ - exit(1); -} - -int main(int argc, char *argv[]) -{ - if (argc < 3) usage(); - - printf("%d\n", sizeof(struct image_header)); - if (!strncmp(argv[1], "info", 4)) { - print_header((struct image_header *)do_mmap(argv[2], - 0, 1)); - } else if (!strncmp(argv[1], "pack", 4)) { - write_image(argv[2], argv[3]); - } else { - usage(); - } - - return 0; -} diff --git a/tools/firmware-utils/src/cvimg.c b/tools/firmware-utils/src/cvimg.c index a2b9519d5..c5599ef4c 100644 --- a/tools/firmware-utils/src/cvimg.c +++ b/tools/firmware-utils/src/cvimg.c @@ -15,21 +15,18 @@ #include <unistd.h> #include <stdlib.h> #include <string.h> -#define HOME_GATEWAY - -#define CONFIG_RTL_8196C +/* This define is needed to generate proper binary for + * rtl8196c, rtl8198, rtl819Xe and rtl8196e. + * rtl8196b is somehow different (can be fixed in bootloder?). + * See apmib.h for details. + */ +#define CONFIG_RTL_8196C #include "apmib.h" #define COMPACT_FILENAME_BUFFER -static int friendly_strcmp(const char *s1, const char *s2) -{ - if (!s1 || !s2) return (s1>s2) ? -1 : !(s1==s2); - return strcmp(s1,s2); -} - /* 32-bit ELF base types. */ typedef unsigned int Elf32_Addr; typedef unsigned short Elf32_Half; @@ -119,14 +116,14 @@ int main(int argc, char** argv) IMG_HEADER_Tp pHeader; unsigned int startAddr; unsigned int burnAddr; - unsigned short checksum; + unsigned short checksum=0; int is_vmlinux = 0; int is_vmlinuxhdr = 0; int is_signature = 0; - unsigned int lchecksum, padding_len; - unsigned int start_addr; + unsigned int lchecksum, padding_len=0; + unsigned int start_addr=0; - if (argc == 4 && !friendly_strcmp(argv[1], "size_chk")) { + if (argc == 4 && !strcmp(argv[1], "size_chk")) { unsigned int total_size; #ifdef COMPACT_FILENAME_BUFFER @@ -159,7 +156,7 @@ int main(int argc, char** argv) } #ifdef CONFIG_RTL_FLASH_MAPPING_ENABLE - if (argc == 3 && !friendly_strcmp(argv[1], "flash_size_chk")) { + if (argc == 3 && !strcmp(argv[1], "flash_size_chk")) { unsigned int total_size; #ifdef COMPACT_FILENAME_BUFFER @@ -184,7 +181,7 @@ int main(int argc, char** argv) if (status.st_size > (int)total_size) { - printf("Error!!!! : Kernel image too big will overwirte rootfs image, cur size(%d), available size(%d).\n",status.st_size, total_size); + printf("Error!!!! : Kernel image too big will overwirte rootfs image, cur size(%d), available size(%d).\n",(int)status.st_size, total_size); exit(1); } else @@ -195,15 +192,15 @@ int main(int argc, char** argv) } #endif - if (argc == 4 && !friendly_strcmp(argv[1], "vmlinux")) + if (argc == 4 && !strcmp(argv[1], "vmlinux")) is_vmlinux = 1; - if (argc == 5 && !friendly_strcmp(argv[1], "vmlinuxhdr")) { + if (argc == 5 && !strcmp(argv[1], "vmlinuxhdr")) { is_vmlinuxhdr = 1; start_addr = extractStartAddr(argv[4]); } - if (!friendly_strcmp(argv[1], "signature")) { + if (!strcmp(argv[1], "signature")) { is_signature = 1; if (argc != 7) { printf_usage(); @@ -288,15 +285,15 @@ int main(int argc, char** argv) memcpy(&buf[size-12], &lchecksum, 4); } else if (!is_vmlinux) { - if( !friendly_strcmp("root", argv[1])) + if( !strcmp("root", argv[1])) memcpy(pHeader->signature, ROOT_HEADER, SIGNATURE_LEN); - else if ( !friendly_strcmp("boot", argv[1])) + else if ( !strcmp("boot", argv[1])) memcpy(pHeader->signature, BOOT_HEADER, SIGNATURE_LEN); - else if ( !friendly_strcmp("linux", argv[1])) + else if ( !strcmp("linux", argv[1])) memcpy(pHeader->signature, FW_HEADER, SIGNATURE_LEN); - else if ( !friendly_strcmp("linux-ro", argv[1])) + else if ( !strcmp("linux-ro", argv[1])) memcpy(pHeader->signature, FW_HEADER_WITH_ROOT, SIGNATURE_LEN); - else if ( !friendly_strcmp("signature", argv[1])) + else if ( !strcmp("signature", argv[1])) memcpy(pHeader->signature, argv[6], SIGNATURE_LEN); else{ printf("not supported signature\n"); @@ -306,7 +303,7 @@ int main(int argc, char** argv) pHeader->startAddr = DWORD_SWAP(startAddr); pHeader->burnAddr = DWORD_SWAP(burnAddr); - if( !friendly_strcmp("root", argv[1])) { + if( !strcmp("root", argv[1])) { #define SIZE_OF_SQFS_SUPER_BLOCK 640 unsigned int fs_len; fs_len = DWORD_SWAP((size-sizeof(IMG_HEADER_T) - sizeof(checksum)- SIZE_OF_SQFS_SUPER_BLOCK)); @@ -323,7 +320,7 @@ int main(int argc, char** argv) } // Write image to output file - fh = open(outFile, O_RDWR | O_CREAT | O_TRUNC, DEFFILEMODE); + fh = open(outFile, O_RDWR|O_CREAT|O_TRUNC, 0644); if ( fh == -1 ) { printf("Create output file error! [%s]\n", outFile); free(pHeader); diff --git a/tools/firmware-utils/src/mgbin.c b/tools/firmware-utils/src/mgbin.c new file mode 100644 index 000000000..a16ef1e44 --- /dev/null +++ b/tools/firmware-utils/src/mgbin.c @@ -0,0 +1,431 @@ +/* + * utility to merge all binary into one image + * + * Authors: David Hsu <davidhsu@realtek.com.tw> + * + * $Id: mgbin.c,v 1.7 2008/11/25 15:09:22 bradhuang Exp $ + * + */ +#include <string.h> +#include <stdio.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <stdlib.h> +#include <sys/types.h> +#ifdef WIN32 + #include <io.h> +#else + #include <unistd.h> +#endif +#define __mips__ + +#define CONFIG_RTL_8196C +#include "apmib.h" + +//#define DEBUG_PRINT printf +#define DEBUG_PRINT(...) do {} while(0) +#define COMPACT_FILENAME_BUFFER + +///////////////////////////////////////////////////////////////////////////// +/* Input file type */ +typedef enum { BOOT_CODE=0, CONFIG, WEB_PAGES, SYS, ROOT, ALL, INVALID_FILE=-1 } TYPE_T; + +typedef struct _sector { + TYPE_T type; +#ifdef COMPACT_FILENAME_BUFFER + const char *filename; +#else + char filename[80]; +#endif + unsigned long offset; + unsigned long size; + int with_header; +} SECTOR_T; + +///////////////////////////////////////////////////////////////////////////// +static char *copyright="Copyright (c) Realtek Semiconductor Corp., 2007. All Rights Reserved."; +static char *version="1.0"; + +static SECTOR_T sector[ROOT+1]; +static int no_hw_config=0; + +#define BYTE_SWAP(word) (((word >> 8) &0xff) | ((((unsigned char)word)<<8)&0xff00) ) + +///////////////////////////////////////////////////////////////////////////// +static TYPE_T checkInputFile(char *filename, int *pWith_header) +{ + int fh; + char signature[6]; + +#ifdef WIN32 + fh = open(filename, O_RDONLY|O_BINARY); +#else + fh = open(filename, O_RDONLY,S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH); +#endif + if ( fh == -1 ) + return INVALID_FILE; + + lseek(fh, 0, SEEK_SET); + + if ( read(fh, signature, sizeof(signature)) != sizeof(signature)) { + close(fh); + return INVALID_FILE; + } + close(fh); + + *pWith_header = 1; + if ( !memcmp(signature, BOOT_HEADER, 4)) + return BOOT_CODE; + else if ( !memcmp(signature, WEB_HEADER, 3) ) + return WEB_PAGES; + + else if ( !memcmp(signature, FW_HEADER, 4) || + !memcmp(signature, FW_HEADER_WITH_ROOT, 4)) + return SYS; + + else if ( !memcmp(signature, ROOT_HEADER, 4) ) + return ROOT; + + else if ( !memcmp(signature, "h", 1) || !memcmp(signature, "COMPHS", 6)) + return CONFIG; + else if ( !memcmp(signature, "6G", 2) || !memcmp(signature, "6A", 2) || !memcmp(signature, "6g", 2) || !memcmp(signature, "6a", 2) || !memcmp(signature, "COMPDS", 6)) { + no_hw_config = 1; + return CONFIG; + } + else if ( !memcmp(signature, "\x0b\xf0\x00\x02", 4)) { + *pWith_header = 0; + return BOOT_CODE; + } + return INVALID_FILE; +} + +//////////////////////////////////////////////////////////////////////////////// +static void showHelp(void) +{ + printf("\nRTL865x utility to merge binary.\n"); + printf("%s Ver %s.\n\n", copyright, version); + printf("usage: mgbin [-s] [-c] [-a] -o outputfile bootcode config webpages linux root\n"); + printf(" -s : do byte swap\n"); + printf(" -c : cascade. May use this option to merge image for web upload\n"); + printf(" -a : add all tag in header\n"); + +} + + +//////////////////////////////////////////////////////////////////////////////// +static void do_byteswap(unsigned char *buf, int len) +{ + unsigned short wVal, *ptr; + int i=0; + + while (len > 0) { + len -= 2; + ptr = (unsigned short *)&buf[2*i]; + wVal = *ptr; + *ptr = BYTE_SWAP( wVal ); + i++; + } +} + +static unsigned short calculateChecksum(char *buf, int len, unsigned short oldv) +{ + int i, j; + unsigned short sum=oldv, tmp; + + j = (len/2)*2; + + for (i=0; i<j; i+=2) { + tmp = *((unsigned short *)(buf + i)); + sum += WORD_SWAP(tmp); + } + + if ( len % 2 ) { + tmp = buf[len-1]; + sum += WORD_SWAP(tmp); + } + return sum; +} + +//////////////////////////////////////////////////////////////////////////////// +int main(int argc, char** argv) +{ + int argNum=1; +#ifdef COMPACT_FILENAME_BUFFER + const char *outFile = NULL; +#else + char outFile[80]={0}; +#endif + TYPE_T type; + int mask=0, fh_out, fh_in, len, i, total=0; + unsigned char *buf, *buf1; + struct stat sbuf; + int byteswap=0, cascade=0, last_idx=-1, is_all=0; + int offset=0, with_header; + IMG_HEADER_Tp pHeader; + unsigned long burnAddr=0; + IMG_HEADER_T allHeader; + unsigned short checksum=0; + + memset(§or, 0, sizeof(sector)); + + while (argNum < argc) { + if ( !strcmp(argv[argNum], "-o") ) { + if (++argNum >= argc) + break; +#ifdef COMPACT_FILENAME_BUFFER + outFile = argv[argNum]; +#else + sscanf(argv[argNum], "%s", outFile); +#endif + } + else if ( !strcmp(argv[argNum], "-s") ) { + byteswap = 1; + } + else if ( !strcmp(argv[argNum], "-c") ) { + cascade = 1; + } + else if ( !strcmp(argv[argNum], "-a") ) { + is_all = 1; + memset(&allHeader, '\0', sizeof(IMG_HEADER_T)); + memcpy(allHeader.signature, ALL_HEADER, SIGNATURE_LEN); + } +#if 0 + else if ( !strcmp(argv[argNum], "-a2") ) { + is_all = 1; + memset(&allHeader, '\0', sizeof(IMG_HEADER_T)); + memcpy(allHeader.signature, ALL_HEADER2, SIGNATURE_LEN); + } +#endif + else { + if (is_all) { + if ((argNum+1) < argc) { + printf("argument error, only input file could be specified!\n"); + return -1; + } +#ifdef COMPACT_FILENAME_BUFFER + sector[0].filename = argv[argNum]; +#else + strcpy(sector[0].filename,argv[argNum]); +#endif + sector[0].type=ALL; + sector[0].with_header=0; + mask |= (1 << ALL); + } + else { + type=checkInputFile(argv[argNum], &with_header); + DEBUG_PRINT("filename=%s, type=%d\n", argv[argNum], type); + if (type == INVALID_FILE) { + printf("\nInvalid input file %s!!\n", argv[argNum]); + showHelp(); + exit(1); + } +#ifdef COMPACT_FILENAME_BUFFER + sector[type].filename = argv[argNum]; +#else + strcpy(sector[type].filename, argv[argNum]); +#endif + sector[type].with_header = with_header; + sector[type].type = type; + mask |= (1 << type); + } + } + argNum++; + } + +#ifdef COMPACT_FILENAME_BUFFER + if( outFile == NULL ) +#else + if (!outFile[0]) +#endif + { + printf("No output file specified!\n"); + showHelp(); + exit(1); + } + + if (mask == 0) { + printf("No valid input image found!\n"); + exit(1); + } + + // Create output file +#ifdef WIN32 + _chmod(outFile, S_IREAD|S_IWRITE); + fh_out = open(outFile, O_RDWR|O_CREAT|O_TRUNC|O_BINARY); +#else + chmod(outFile, S_IREAD|S_IWRITE); + fh_out = open(outFile, O_RDWR|O_CREAT|O_TRUNC, 0644); +#endif + if (fh_out == -1) { + printf("Create output file %s error!\n", outFile); + exit(1); + } + + if (is_all) { + write(fh_out, &allHeader, sizeof(allHeader)); + total += sizeof(allHeader); + printf("\nGenerate "); + } + else + printf("\nMerge "); + + for (i=BOOT_CODE; i<=ROOT ; i++) { +#ifdef COMPACT_FILENAME_BUFFER + if (sector[i].filename) +#else + if (sector[i].filename[0]) +#endif + { + if ( stat(sector[i].filename, &sbuf) != 0 ) { + printf("Stat file %s error!\n", sector[i].filename); + exit(1); + } + buf = malloc(sbuf.st_size+1); + if (buf == NULL) { + printf("allocate buffer failed %d!\n", (int)sbuf.st_size); + exit(1); + } +#ifdef WIN32 + fh_in = open(sector[i].filename, O_RDONLY|O_BINARY); +#else + fh_in = open(sector[i].filename, O_RDONLY,S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH); +#endif + if (fh_in < 0) { + printf("Open file %s error!\n", sector[i].filename); + close(fh_out); + exit(1); + } + + switch(sector[i].type) { + case BOOT_CODE: + printf("BOOT-CODE "); + break; + case CONFIG: + printf("CONFIG-DATA(%s) ", (no_hw_config ? "no-hw" : "all")); + break; + case WEB_PAGES: + printf("WEB-PAGES "); + break; + case SYS: + printf("LINUX "); + break; + case ROOT: + printf("ROOT "); + break; + case ALL: + printf("ALL "); + break; + case INVALID_FILE: + break; + } + + if (read(fh_in, buf, sbuf.st_size) != sbuf.st_size) { + printf("Read file %s error!\n", sector[i].filename); + close(fh_in); + close(fh_out); + free(buf); + exit(1); + } + + if (is_all) + checksum = calculateChecksum((char *)buf, sbuf.st_size, checksum); + else { + if (sector[i].with_header) { + if (sector[i].type == CONFIG) { + if (no_hw_config == 0) + burnAddr = HW_SETTING_OFFSET; + else + burnAddr = DEFAULT_SETTING_OFFSET; + } + else { + pHeader = (IMG_HEADER_Tp)buf; + burnAddr = DWORD_SWAP(pHeader->burnAddr); + } + } + else + burnAddr = 0; + + if (byteswap) { + if (sbuf.st_size % 2) { + buf[sbuf.st_size] = '\0'; + sbuf.st_size++; + } + do_byteswap(buf, sbuf.st_size); + } + + // try to append 0 if necessary + if (!cascade && last_idx!=-1 && sector[i].with_header) { + if ((sector[last_idx].offset+sector[last_idx].size) < burnAddr) { + len = burnAddr - (sector[last_idx].offset+sector[last_idx].size); + buf1 = calloc(len, 1); + if (buf1 == NULL) { + printf("allocate buffer failed %d!\n", len); + exit(1); + } + write(fh_out, buf1, len); // pad 0 + + free(buf1); + total += len; +// printf("pad size=%d, last_idx=%d, burnAddr=%d\n", len, last_idx, burnAddr); + } + } + + // skip header if necessary + if (!cascade && sector[i].with_header && + ((sector[i].type == ROOT) || (sector[i].type == BOOT_CODE))) { + offset = sizeof(IMG_HEADER_T); +// sbuf.st_size -= sizeof(IMG_HEADER_T); + } + else + offset = 0; + } + +// printf("write offset=%d, size=%d\n", offset, sbuf.st_size); + if ( write(fh_out, buf + offset , sbuf.st_size-offset) != sbuf.st_size-offset) { + printf("Write output file %s error!\n", outFile); + close(fh_in); + close(fh_out); + free(buf); + exit(1); + } + close(fh_in); + if (burnAddr > 0) + sector[i].offset = burnAddr; + else + sector[i].offset = total; + sector[i].size = sbuf.st_size-offset; + +// printf("section[%d], offset=%d, size=%d\n", i, sector[i].offset, sector[i].size); + + total += sbuf.st_size; + free(buf); + last_idx = i; + if (is_all) + break; + } + } + + if (is_all) { + allHeader.len = DWORD_SWAP((total+2)); + checksum = calculateChecksum((char *)&allHeader, sizeof(allHeader), checksum); + checksum = WORD_SWAP((~checksum+1)); + write(fh_out, &checksum, 2); + lseek(fh_out, 0, SEEK_SET); + allHeader.len = DWORD_SWAP((total+2)); +// allHeader.startAddr = DWORD_SWAP(image_num); + write(fh_out, &allHeader, sizeof(allHeader)); + total += (2 + sizeof(allHeader)); + } + close(fh_out); + +#ifdef WIN32 + _chmod(outFile, S_IREAD); +#else + chmod(outFile, DEFFILEMODE); +#endif + + printf("=> %s ok, size=%d.\n", outFile, total); + exit(0); +} + |