2026-04-05 21:04:56 +09:00
|
|
|
#include "net.h"
|
|
|
|
|
#include "pico/unique_id.h"
|
|
|
|
|
#include "w6300.h"
|
|
|
|
|
|
|
|
|
|
bool net_init() {
|
|
|
|
|
w6300::init_spi();
|
|
|
|
|
w6300::init_critical_section();
|
|
|
|
|
w6300::reset();
|
|
|
|
|
w6300::init();
|
|
|
|
|
if (!w6300::check()) return false;
|
|
|
|
|
|
|
|
|
|
pico_unique_board_id_t uid;
|
|
|
|
|
pico_get_unique_board_id(&uid);
|
|
|
|
|
w6300::net_info info = {};
|
|
|
|
|
info.mac[0] = (uid.id[0] & 0xFC) | 0x02;
|
|
|
|
|
info.mac[1] = uid.id[1];
|
|
|
|
|
info.mac[2] = uid.id[2];
|
|
|
|
|
info.mac[3] = uid.id[3];
|
|
|
|
|
info.mac[4] = uid.id[4];
|
|
|
|
|
info.mac[5] = uid.id[5];
|
2026-04-06 17:20:13 +09:00
|
|
|
|
|
|
|
|
info.lla[0] = 0xfe;
|
|
|
|
|
info.lla[1] = 0x80;
|
|
|
|
|
info.lla[8] = info.mac[0] ^ 0x02;
|
|
|
|
|
info.lla[9] = info.mac[1];
|
|
|
|
|
info.lla[10] = info.mac[2];
|
|
|
|
|
info.lla[11] = 0xff;
|
|
|
|
|
info.lla[12] = 0xfe;
|
|
|
|
|
info.lla[13] = info.mac[3];
|
|
|
|
|
info.lla[14] = info.mac[4];
|
|
|
|
|
info.lla[15] = info.mac[5];
|
|
|
|
|
|
2026-04-05 21:04:56 +09:00
|
|
|
w6300::init_net(info);
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|