diff --git a/config.c b/config.c index af8c7db4cbd2a7b7184c57381fc882a637872e9e..5892186b3d2a8e23a9eda73066f7e402329644eb 100644 --- a/config.c +++ b/config.c @@ -763,6 +763,15 @@ config_init_board(void) board_netdevs = blob_memdup(cur); } +static bool +is_broadcom_board(void) +{ + if (access("/dev/brcmboard", F_OK) == 0) + return true; + + return false; +} + int config_init_all(void) { @@ -792,9 +801,17 @@ config_init_all(void) device_lock(); device_reset_config(); - config_init_devices(true); - config_init_vlans(); - config_init_devices(false); + + if (is_broadcom_board()) { + config_init_devices(false); + config_init_vlans(); + config_init_devices(true); + } else { + config_init_devices(true); + config_init_vlans(); + config_init_devices(false); + } + config_init_interfaces(); config_init_ip(); config_init_rules();