Wifi mac address modification in WICED
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
SUMMARY:
We shared four ways to set wifi mac address, this blog is to show the process .
Test is based on CYW954907AEVAL1F .
- DCT mode:
- Add define in app.mk: GLOBAL_DEFINES += MAC_ADDRESS_SET_BY_HOST
- 43xxx_Wi-Fi\generated_mac_address.txt
Modify the address in the directory , it works.
#define NVRAM_GENERATED_MAC_ADDRESS "macaddr=00:A0:50:38:f6:35"
#define DCT_GENERATED_MAC_ADDRESS "\x00\xA0\x50\xe8\xf3\x48"
#define DCT_GENERATED_ETHERNET_MAC_ADDRESS "\x00\xA0\x50\xe5\xf3\x47"
- OTP mode
- Disable //GLOBAL_DEFINES += MAC_ADDRESS_SET_BY_HOST
- Need to clean the building, then make again.
Starting WICED vWiced_006.002.001.0002
Platform CYW954907AEVAL1F initialised
Started ThreadX v5.8
Initialising NetX_Duo v5.10_sp3
Creating Packet pools
WLAN MAC Address : B8:D7:AF:4D:1D:D6
WLAN Firmware : wl0: May 15 2018 19:39:17 version 7.15.168.114 (r689934) FWID 01-d6f88905
WLAN CLM : API: 12.2 Data: 9.10.74 Compiler: 1.31.3 ClmImport: 1.36.3 Creation: 2018-05-15 19:33:15
- Let us to go to MFG mode to check the OTP area.
Have a test with mfg mode:
test.mfg_test-CYW954907AEVAL1F download download_apps run
- Modify it in NVRAM:
- 43xxx_Wi-Fi\platforms\CYW954907AEVAL1F\board_revision\P101
static const char wifi_nvram_image[] =
"sromrev=11" "\x00"
"vendid=0x14e4" "\x00"
"devid=0x43d0" "\x00"
"macaddr=00:A0:50:38:f6:35" "\x00"
- Disable //GLOBAL_DEFINES += MAC_ADDRESS_SET_BY_HOST
- Do nothing, clean and build again.
- The mac address still is WLAN MAC Address : B8:D7:AF:4D:1D:D6
I do not find anywhere to fix the MAC address into nvram setting, so I presume OTP priority is higher than NVRAM, if OTP existed the NVRAM mac address will be ignored .
- CUSTOM MODE:
- Enable the define in app makefile: GLOBAL_DEFINES += MAC_ADDRESS_SET_BY_HOST
- Modify the code, add simple test:
- 43xxx_Wi-Fi\WICED\platform\MCU\BCM4390x\
4. bcm4390x_platform.c
wwd_result_t host_platform_get_mac_address( wiced_mac_t* mac )
{
#ifndef WICED_DISABLE_BOOTLOADER
wiced_mac_t* temp_mac;
wiced_result_t result;
result = wiced_dct_read_lock( (void**)&temp_mac, WICED_FALSE, DCT_WIFI_CONFIG_SECTION, OFFSETOF(platform_dct_wifi_config_t, mac_address), sizeof(mac->octet) );
if ( result != WICED_SUCCESS )
{
return (wwd_result_t) result;
}
memcpy( mac->octet, temp_mac, sizeof(mac->octet) );
mac->octet[0]= 0x00;
mac->octet[1]= 0x11;
mac->octet[2]= 0x22;
mac->octet[3]= 0x33;
mac->octet[4]= 0x44;
mac->octet[5]= 0x55;
wiced_dct_read_unlock( temp_mac, WICED_FALSE );
#else
UNUSED_PARAMETER( mac );
#endif
return WWD_SUCCESS;
}
Starting WICED vWiced_006.002.001.0002
Platform CYW954907AEVAL1F initialised
Started ThreadX v5.8
Initialising NetX_Duo v5.10_sp3
Creating Packet pools
WLAN MAC Address : 00:11:22:33:44:55
WLAN Firmware : wl0: May 15 2018 19:39:17 version 7.15.168.114 (r689934) FWID 01-d6f88905
WLAN CLM : API: 12.2 Data: 9.10.74 Compiler: 1.31.3 ClmImport: 1.36.3 Creation: 2018-05-15 19:33:15
Console app