mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
net: NC-SI setup and handling
Add the handling of NC-SI ethernet frames, and add a check at the start of net_loop() to configure NC-SI before starting other network commands. Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com> Signed-off-by: Joel Stanley <joel@jms.id.au> Reviewed-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
This commit is contained in:
committed by
Tom Rini
parent
7723828c97
commit
09bd3d0b0a
26
net/net.c
26
net/net.c
@@ -93,6 +93,7 @@
|
||||
#include <net.h>
|
||||
#include <net/fastboot.h>
|
||||
#include <net/tftp.h>
|
||||
#include <net/ncsi.h>
|
||||
#if defined(CONFIG_CMD_PCAP)
|
||||
#include <net/pcap.h>
|
||||
#endif
|
||||
@@ -410,6 +411,16 @@ int net_loop(enum proto_t protocol)
|
||||
net_try_count = 1;
|
||||
debug_cond(DEBUG_INT_STATE, "--- net_loop Entry\n");
|
||||
|
||||
#ifdef CONFIG_PHY_NCSI
|
||||
if (phy_interface_is_ncsi() && protocol != NCSI && !ncsi_active()) {
|
||||
printf("%s: configuring NCSI first\n", __func__);
|
||||
if (net_loop(NCSI) < 0)
|
||||
return ret;
|
||||
eth_init_state_only();
|
||||
goto restart;
|
||||
}
|
||||
#endif
|
||||
|
||||
bootstage_mark_name(BOOTSTAGE_ID_ETH_START, "eth_start");
|
||||
net_init();
|
||||
if (eth_is_on_demand_init()) {
|
||||
@@ -526,6 +537,11 @@ restart:
|
||||
case WOL:
|
||||
wol_start();
|
||||
break;
|
||||
#endif
|
||||
#if defined(CONFIG_PHY_NCSI)
|
||||
case NCSI:
|
||||
ncsi_probe_packages();
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
@@ -637,7 +653,7 @@ restart:
|
||||
env_set_hex("filesize", net_boot_file_size);
|
||||
env_set_hex("fileaddr", image_load_addr);
|
||||
}
|
||||
if (protocol != NETCONS)
|
||||
if (protocol != NETCONS && protocol != NCSI)
|
||||
eth_halt();
|
||||
else
|
||||
eth_halt_state_only();
|
||||
@@ -1321,6 +1337,11 @@ void net_process_received_packet(uchar *in_packet, int len)
|
||||
case PROT_WOL:
|
||||
wol_receive(ip, len);
|
||||
break;
|
||||
#endif
|
||||
#ifdef CONFIG_PHY_NCSI
|
||||
case PROT_NCSI:
|
||||
ncsi_receive(et, ip, len);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1381,6 +1402,9 @@ common:
|
||||
|
||||
#ifdef CONFIG_CMD_RARP
|
||||
case RARP:
|
||||
#endif
|
||||
#ifdef CONFIG_PHY_NCSI
|
||||
case NCSI:
|
||||
#endif
|
||||
case BOOTP:
|
||||
case CDP:
|
||||
|
Reference in New Issue
Block a user