Mercurial > ecos
changeset 1759:91e29b9a5d05
Add option for redboot to initialize only one net device
line wrap: on
line diff
--- a/packages/hal/arm/xscale/grg/current/ChangeLog +++ b/packages/hal/arm/xscale/grg/current/ChangeLog @@ -1,3 +1,10 @@ +2004-09-19 Mark Salter <msalter@redhat.com> + + * misc/redboot_ROM.ecm: Add CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE. + * misc/redboot_RAM.ecm: Ditto. + * misc/redboot_ROMLE.ecm: Ditto. + * misc/redboot_RAMLE.ecm: Ditto. + 2004-09-02 Mark Salter <msalter@redhat.com> * include/hal_platform_extras.h: Removed.
--- a/packages/hal/arm/xscale/grg/current/misc/redboot_RAM.ecm +++ b/packages/hal/arm/xscale/grg/current/misc/redboot_RAM.ecm @@ -119,6 +119,10 @@ cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_S user_value 1 } +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + user_value 1 +}; + cdl_option CYGHWR_HAL_ARM_BIGENDIAN { user_value 1 };
--- a/packages/hal/arm/xscale/grg/current/misc/redboot_RAMLE.ecm +++ b/packages/hal/arm/xscale/grg/current/misc/redboot_RAMLE.ecm @@ -119,6 +119,10 @@ cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_S user_value 1 } +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + user_value 1 +}; + cdl_option CYGHWR_HAL_ARM_BIGENDIAN { user_value 0 };
--- a/packages/hal/arm/xscale/grg/current/misc/redboot_ROM.ecm +++ b/packages/hal/arm/xscale/grg/current/misc/redboot_ROM.ecm @@ -127,6 +127,10 @@ cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_S user_value 1 } +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + user_value 1 +}; + cdl_option CYGHWR_HAL_ARM_BIGENDIAN { user_value 1 };
--- a/packages/hal/arm/xscale/grg/current/misc/redboot_ROMLE.ecm +++ b/packages/hal/arm/xscale/grg/current/misc/redboot_ROMLE.ecm @@ -131,6 +131,10 @@ cdl_option CYGHWR_HAL_ARM_BIGENDIAN { user_value 0 }; +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + user_value 1 +}; + cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER { user_value MSBFIRST }
--- a/packages/hal/arm/xscale/ixdp425/current/ChangeLog +++ b/packages/hal/arm/xscale/ixdp425/current/ChangeLog @@ -1,3 +1,12 @@ +2004-09-19 Mark Salter <msalter@redhat.com> + + * misc/redboot_ROM.ecm: Add CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE. + * misc/redboot_RAM.ecm: Ditto. + * misc/redboot_ROMRAM.ecm: Ditto. + * misc/redboot_ROMLE.ecm: Ditto. + * misc/redboot_RAMLE.ecm: Ditto. + * misc/redboot_ROMRAMLE.ecm: Ditto. + 2004-09-07 Mark Salter <msalter@redhat.com> * misc/redboot_ROM.ecm (CYGBLD_REDBOOT_MIN_IMAGE_SIZE): Set to 0x80000.
--- a/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAM.ecm +++ b/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAM.ecm @@ -119,6 +119,10 @@ cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_S user_value 1 } +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + user_value 1 +}; + cdl_option CYGHWR_HAL_ARM_BIGENDIAN { user_value 1 };
--- a/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAMLE.ecm +++ b/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAMLE.ecm @@ -119,6 +119,10 @@ cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_S user_value 1 } +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + user_value 1 +}; + cdl_option CYGHWR_HAL_ARM_BIGENDIAN { user_value 0 };
--- a/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROM.ecm +++ b/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROM.ecm @@ -127,6 +127,10 @@ cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_S user_value 1 } +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + user_value 1 +}; + cdl_option CYGHWR_HAL_ARM_BIGENDIAN { user_value 1 };
--- a/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMLE.ecm +++ b/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMLE.ecm @@ -127,6 +127,10 @@ cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_S user_value 1 } +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + user_value 1 +}; + cdl_option CYGHWR_HAL_ARM_BIGENDIAN { user_value 0 };
--- a/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAM.ecm +++ b/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAM.ecm @@ -127,6 +127,10 @@ cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_S user_value 1 } +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + user_value 1 +}; + cdl_option CYGHWR_HAL_ARM_BIGENDIAN { user_value 1 };
--- a/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAMLE.ecm +++ b/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAMLE.ecm @@ -127,6 +127,10 @@ cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_S user_value 1 } +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + user_value 1 +}; + cdl_option CYGHWR_HAL_ARM_BIGENDIAN { user_value 0 };
--- a/packages/redboot/current/ChangeLog +++ b/packages/redboot/current/ChangeLog @@ -1,3 +1,9 @@ +2004-09-19 Mark Salter <msalter@redhat.com> + + * cdl/redboot.cdl: Add CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE + * src/net/net_io.c (net_init): Initialize only one network + device if CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE defined. + 2004-09-19 Andrew Lunn <andrew.lunn@ascom.ch> * src/load.c (do_load): Removed compiler warning when building
--- a/packages/redboot/current/cdl/redboot.cdl +++ b/packages/redboot/current/cdl/redboot.cdl @@ -483,6 +483,18 @@ cdl_package CYGPKG_REDBOOT { This is the index of the first network device driver that RedBoot will try to initialize." } + + cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + display "Initialize only one net device" + flavor bool + active_if { CYGHWR_NET_DRIVERS > 1 } + default_value 0 + description " + This option tells RedBoot to stop initializing network + devices when it finds the first device which is + successfully initialized. The default behavior causes + all network devices to be initialized." + } } cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
--- a/packages/redboot/current/src/net/net_io.c +++ b/packages/redboot/current/src/net/net_io.c @@ -8,7 +8,7 @@ //####ECOSGPLCOPYRIGHTBEGIN#### // ------------------------------------------- // This file is part of eCos, the Embedded Configurable Operating System. -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Red Hat, Inc. +// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Red Hat, Inc. // Copyright (C) 2002, 2003, 2004 Gary Thomas // // eCos is free software; you can redistribute it and/or modify it under @@ -724,8 +724,18 @@ net_init(void) default_index = net_devindex(default_devname); if (default_index < 0) default_index = 0; +#ifdef CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE + if ((t = net_devtab_entry(default_index)) != NULL && t->init(t)) { + t->status = CYG_NETDEVTAB_STATUS_AVAIL; + primary_net = __local_enet_sc; + } else +#endif #endif for (index = 0; (t = net_devtab_entry(index)) != NULL; index++) { +#ifdef CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE + if (index == default_index) + continue; +#endif if (t->init(t)) { t->status = CYG_NETDEVTAB_STATUS_AVAIL; if (primary_net == (struct eth_drv_sc *)0) {
