Lines Matching refs:mac
38 uint8_t mac[ESP_MAC_ADDRESS_LEN]; member
65 static esp_err_t generate_mac(uint8_t *mac, uint8_t *base_mac_addr, esp_mac_type_t type);
66 static esp_err_t get_efuse_factory_mac(uint8_t *mac);
67 static esp_err_t get_efuse_mac_custom(uint8_t *mac);
69 static esp_err_t get_efuse_mac_ext(uint8_t *mac);
83 static esp_err_t get_mac_addr_from_mac_table(uint8_t *mac, int idx, bool silent) in get_mac_addr_from_mac_table() argument
97 err = get_efuse_factory_mac(s_mac_table[idx].mac); in get_mac_addr_from_mac_table()
103 err = get_efuse_mac_custom(s_mac_table[idx].mac); in get_mac_addr_from_mac_table()
107 err = get_efuse_mac_ext(s_mac_table[idx].mac); in get_mac_addr_from_mac_table()
121 memcpy(mac, s_mac_table[idx].mac, s_mac_table[idx].len); in get_mac_addr_from_mac_table()
135 esp_err_t esp_iface_mac_addr_set(const uint8_t *mac, esp_mac_type_t type) in esp_iface_mac_addr_set() argument
137 if (mac == NULL) { in esp_iface_mac_addr_set()
152 if (mac[0] & 0x01) { in esp_iface_mac_addr_set()
158 memcpy(s_mac_table[idx].mac, mac, s_mac_table[idx].len); in esp_iface_mac_addr_set()
163 esp_err_t esp_base_mac_addr_set(const uint8_t *mac) in esp_base_mac_addr_set() argument
165 return esp_iface_mac_addr_set(mac, ESP_MAC_BASE); in esp_base_mac_addr_set()
168 esp_err_t esp_base_mac_addr_get(uint8_t *mac) in esp_base_mac_addr_get() argument
170 return esp_read_mac(mac, ESP_MAC_BASE); in esp_base_mac_addr_get()
174 static esp_err_t get_efuse_mac_ext(uint8_t *mac) in get_efuse_mac_ext() argument
177 esp_err_t err = esp_efuse_read_field_blob(ESP_EFUSE_MAC_EXT, mac, 16); in get_efuse_mac_ext()
185 static esp_err_t insert_mac_ext_into_mac(uint8_t *mac) in insert_mac_ext_into_mac() argument
188 memcpy(mac_tmp, &mac[3], 3); in insert_mac_ext_into_mac()
189 esp_err_t err = get_efuse_mac_ext(&mac[3]); in insert_mac_ext_into_mac()
193 memcpy(&mac[5], mac_tmp, 3); in insert_mac_ext_into_mac()
198 esp_err_t esp_efuse_mac_get_custom(uint8_t *mac) in esp_efuse_mac_get_custom() argument
200 esp_err_t err = get_efuse_mac_custom(mac); in esp_efuse_mac_get_custom()
205 return insert_mac_ext_into_mac(mac); in esp_efuse_mac_get_custom()
211 static esp_err_t get_efuse_mac_custom(uint8_t *mac) in get_efuse_mac_custom() argument
216 esp_err_t err = esp_efuse_read_field_blob(ESP_EFUSE_USER_DATA_MAC_CUSTOM, mac, size_bits); in get_efuse_mac_custom()
221 if (mac[0] == 0 && memcmp(mac, &mac[1], size - 1) == 0) { in get_efuse_mac_custom()
239 esp_efuse_read_field_blob(ESP_EFUSE_MAC_CUSTOM, mac, 48); in get_efuse_mac_custom()
241 uint8_t calc_crc = esp_rom_efuse_mac_address_crc8(mac, 6); in get_efuse_mac_custom()
255 esp_err_t esp_efuse_mac_get_default(uint8_t *mac) in esp_efuse_mac_get_default() argument
257 esp_err_t err = get_efuse_factory_mac(mac); in esp_efuse_mac_get_default()
262 return insert_mac_ext_into_mac(mac); in esp_efuse_mac_get_default()
268 static esp_err_t get_efuse_factory_mac(uint8_t *mac) in get_efuse_factory_mac() argument
272 esp_err_t err = esp_efuse_read_field_blob(ESP_EFUSE_MAC_FACTORY, mac, size_bits); in get_efuse_factory_mac()
280 uint8_t calc_crc = esp_rom_efuse_mac_address_crc8(mac, 6); in get_efuse_factory_mac()
285 uint32_t mac_high = ((uint32_t)mac[0] << 8) | mac[1]; in get_efuse_factory_mac()
286 …uint32_t mac_low = ((uint32_t)mac[2] << 24) | ((uint32_t)mac[3] << 16) | ((uint32_t)mac[4] << 8) |… in get_efuse_factory_mac()
323 esp_err_t esp_read_mac(uint8_t *mac, esp_mac_type_t type) in esp_read_mac() argument
325 if (mac == NULL) { in esp_read_mac()
334 if (get_mac_addr_from_mac_table(mac, idx, true) == ESP_OK) { in esp_read_mac()
347 err = generate_mac(mac, base_mac_addr, type); in esp_read_mac()
354 memcpy(s_mac_table[idx].mac, mac, s_mac_table[idx].len); in esp_read_mac()
358 static esp_err_t generate_mac(uint8_t *mac, uint8_t *base_mac_addr, esp_mac_type_t type) in generate_mac() argument
362 memcpy(mac, base_mac_addr, 6); in generate_mac()
366 memcpy(mac, base_mac_addr, 6); in generate_mac()
374 if (memcmp(mac, mac_begin, 6) >= 0 && memcmp(mac_end, mac, 6) >= 0 ) { in generate_mac()
375 mac[3] += 0x02; // contain carry bit in generate_mac()
376 mac[4] += 0xd0; in generate_mac()
378 mac[5] += 1; in generate_mac()
381 mac[5] += 1; in generate_mac()
384 esp_derive_local_mac(mac, base_mac_addr); in generate_mac()
389 memcpy(mac, base_mac_addr, 6); in generate_mac()
392 mac[5] += MAC_ADDR_UNIVERSE_BT_OFFSET; in generate_mac()
400 memcpy(mac, base_mac_addr, 6); in generate_mac()
401 mac[5] += 3; in generate_mac()
404 esp_derive_local_mac(mac, base_mac_addr); in generate_mac()
410 memcpy(mac, base_mac_addr, 3); in generate_mac()
412 esp_read_mac(&mac[3], ESP_MAC_EFUSE_EXT); in generate_mac()
414 memcpy(&mac[5], &base_mac_addr[3], 3); in generate_mac()