I don't think it's the proxy. It's fairly innocuous and inactive once initial configuration is complete. Code is included below. The only reason it's there is to work around a problem with xc. See viewtopic.php?p=36862
I don't know enough about SMI to replace it at the moment, and I'm not sure it's worth the investment if the -O2 switch works. Please see the code and app note for the AN00199 example. This has a very similar setup, apart from using direct core assignment for the combinable rgmii_ethernet_mac_config
, whereas I use [[combine]]
with a nested par
and include the combinable proxy with them.
Any other thoughts? Thanks for your input so far.
Code: Select all
client ethernet_cfg_if cfg_if,
server eth_cfg_proxy_if prif
// just echo particular requests...
case prif.set_macaddr(size_t ifnum, uint8_t mac_address[MACADDR_NUM_BYTES]):
for(unsigned i; i < MACADDR_NUM_BYTES; i++)
macad[i] = mac_address[i];
case prif.add_macaddr_filter(size_t client_num, int is_hp, ethernet_macaddr_filter_t entry)
-> ethernet_macaddr_filter_result_t result:
result = cfg_if.add_macaddr_filter(client_num, is_hp, entry);
case prif.add_ethertype_filter(size_t client_num, uint16_t ethertype):