@ -208,6 +208,9 @@ int __maybe_unused net_busy_flag;
static int on_bootfile ( const char * name , const char * value , enum env_op op ,
int flags )
{
if ( flags & H_PROGRAMMATIC )
return 0 ;
switch ( op ) {
case env_op_create :
case env_op_overwrite :
@ -222,6 +225,92 @@ static int on_bootfile(const char *name, const char *value, enum env_op op,
}
U_BOOT_ENV_CALLBACK ( bootfile , on_bootfile ) ;
static int on_ipaddr ( const char * name , const char * value , enum env_op op ,
int flags )
{
if ( flags & H_PROGRAMMATIC )
return 0 ;
net_ip = string_to_ip ( value ) ;
return 0 ;
}
U_BOOT_ENV_CALLBACK ( ipaddr , on_ipaddr ) ;
static int on_gatewayip ( const char * name , const char * value , enum env_op op ,
int flags )
{
if ( flags & H_PROGRAMMATIC )
return 0 ;
net_gateway = string_to_ip ( value ) ;
return 0 ;
}
U_BOOT_ENV_CALLBACK ( gatewayip , on_gatewayip ) ;
static int on_netmask ( const char * name , const char * value , enum env_op op ,
int flags )
{
if ( flags & H_PROGRAMMATIC )
return 0 ;
net_netmask = string_to_ip ( value ) ;
return 0 ;
}
U_BOOT_ENV_CALLBACK ( netmask , on_netmask ) ;
static int on_serverip ( const char * name , const char * value , enum env_op op ,
int flags )
{
if ( flags & H_PROGRAMMATIC )
return 0 ;
net_server_ip = string_to_ip ( value ) ;
return 0 ;
}
U_BOOT_ENV_CALLBACK ( serverip , on_serverip ) ;
static int on_nvlan ( const char * name , const char * value , enum env_op op ,
int flags )
{
if ( flags & H_PROGRAMMATIC )
return 0 ;
net_native_vlan = string_to_vlan ( value ) ;
return 0 ;
}
U_BOOT_ENV_CALLBACK ( nvlan , on_nvlan ) ;
static int on_vlan ( const char * name , const char * value , enum env_op op ,
int flags )
{
if ( flags & H_PROGRAMMATIC )
return 0 ;
net_our_vlan = string_to_vlan ( value ) ;
return 0 ;
}
U_BOOT_ENV_CALLBACK ( vlan , on_vlan ) ;
# if defined(CONFIG_CMD_DNS)
static int on_dnsip ( const char * name , const char * value , enum env_op op ,
int flags )
{
if ( flags & H_PROGRAMMATIC )
return 0 ;
net_dns_server = string_to_ip ( value ) ;
return 0 ;
}
U_BOOT_ENV_CALLBACK ( dnsip , on_dnsip ) ;
# endif
/*
* Check if autoload is enabled . If so , use either NFS or TFTP to download
* the boot file .
@ -252,22 +341,6 @@ void net_auto_load(void)
static void net_init_loop ( void )
{
static int env_changed_id ;
int env_id = get_env_id ( ) ;
/* update only when the environment has changed */
if ( env_changed_id ! = env_id ) {
net_ip = getenv_ip ( " ipaddr " ) ;
net_gateway = getenv_ip ( " gatewayip " ) ;
net_netmask = getenv_ip ( " netmask " ) ;
net_server_ip = getenv_ip ( " serverip " ) ;
net_native_vlan = getenv_vlan ( " nvlan " ) ;
net_our_vlan = getenv_vlan ( " vlan " ) ;
# if defined(CONFIG_CMD_DNS)
net_dns_server = getenv_ip ( " dnsip " ) ;
# endif
env_changed_id = env_id ;
}
if ( eth_get_dev ( ) )
memcpy ( net_ethaddr , eth_get_ethaddr ( ) , 6 ) ;