On 4/6/21 11:26 pm, Joel Sherrill wrote:
> On Fri, Jun 4, 2021 at 7:59 AM Kinsey Moore <kinsey.mo...@oarcorp.com
> <mailto:kinsey.mo...@oarcorp.com>> wrote:
> 
>     On 6/4/2021 02:32, Christian MAUDERER wrote:
>     > Am 02.06.21 um 20:37 schrieb Kinsey Moore:
>     >> Hello,
>     >>
>     >>  From what I’ve seen of the various BSPs supported by LibBSD that
>     >> have multiple ethernet peripherals,
>     >>
>     >> only one tends to be chosen and supported. I’ve encountered a
>     >> situation where the majority of platform
>     >>
>     >> examples (Zynq Ultrascale+ MPSoC dev boards) use CGEM3 as the
>     >> only/primary ethernet interface and I
>     >>
>     >> need to have the option of selecting a different peripheral as the
>     >> primary interface.
>     >>
>     >> Unfortunately, the current configuration of LibBSD/RTEMS does not
>     >> allow for easy switching among the
>     >>
>     >> available interfaces. The easy one-off option is to just create a BSP
>     >> variant with a little bit of extra logic
>     >>
>     >> to select the correct interface in LibBSD, but this problem seems
>     >> more generally applicable than just
>     >>
>     >> ethernet and just this one BSP. Is the best alternative to configure
>     >> all available devices in
>     >>
>     >> nexus-devices.h and let LibBSD figure it out?
>     >>
>     >> Thanks,
>     >> Kinsey
>     >>
>     >
>     > If the problem is with "nexus-devices.h": You can always just add
>     > further devices or a completely own set of devices in your
>     > application. For example it should be no problem to use
>     >
>     > ====
>     > SYSINIT_MODULE_REFERENCE(wlan_ratectl_none);
>     > SYSINIT_MODULE_REFERENCE(wlan_sta);
>     > SYSINIT_MODULE_REFERENCE(wlan_amrr);
>     > SYSINIT_MODULE_REFERENCE(wlan_wep);
>     > SYSINIT_MODULE_REFERENCE(wlan_tkip);
>     > SYSINIT_MODULE_REFERENCE(wlan_ccmp);
>     > SYSINIT_DRIVER_REFERENCE(rtwn_usb, uhub);
>     > SYSINIT_REFERENCE(rtwn_rtl8188eufw);
>     >
>     > #define RTEMS_BSD_CONFIG_BSP_CONFIG
>     > #define RTEMS_BSD_CONFIG_TERMIOS_KQUEUE_AND_POLL
>     > #define RTEMS_BSD_CONFIG_INIT
>     >
>     > #include <machine/rtems-bsd-config.h>
>     > ====
>     >
>     > in your application to add WLAN support. You could also remove the
>     > RTEMS_BSD_CONFIG_BSP_CONFIG (which has the effect that nexus-devices.h
>     > is not included in the rtems-bsd-config.h) and define a different set
>     > of modules for your application.
>     >
>     > Best regards
>     >
>     > Christian
> 
>     I guess this is a misunderstanding on my part. It might still be nice to
>     have something switchable for testing purposes, but I see that it can be
>     altered relatively easily on the application side of things.
> 
> 
> I think what you want is like what some of the BSPs do which have a 
> second ifdef inside the LIBBSP conditional. This is an example from
> the QORIQ. Perhaps an option in the BSP?

Is the Ultrascale's interface different to the Zync, ie same driver?

> https://git.rtems.org/rtems-libbsd/tree/rtemsbsd/include/bsp/nexus-devices.h#n212
>  
> <https://git.rtems.org/rtems-libbsd/tree/rtemsbsd/include/bsp/nexus-devices.h#n212>
> 
> Would this qualify as a BSP variant? 

If the hardware exists then I suggest adding both interfaces. This does not
effect how or why they are configured (see the config INI file). I would prefer
we do not add more variants for hardware that is present, ie 2 NICs.

> If you can probe for each, you could configure both but I suspect that's
> likely undesirable for many applications. A configure option might be
> the cleanest thing. Probably not worth a BSP variant.

If this is for testing then I suggest you extend or look at the INI file
configure option. You should be able to select the interface to use for testing.

Chris
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to