rtems-libbsd and NICs

Wu, Mark H. Mark.H.Wu at disney.com
Wed Jun 24 16:28:29 UTC 2015


I'm trying to get my network interface up and running using rtems-libbsd. It looks like it's supported by the e1000 driver. I have successfully linked an application with libbsd, and have lo0 (as shown in the examples) initialized using ifconfig with no errors. But I'm not sure how to get my particular NIC running. I've followed the model shown in default-network-init.h, but I still have a few questions:

1. How do I know what the prefix is for e1000 devices?
2. How do I get those drivers linked into the build?

I've read libbsd.txt and the mailing list discussion (<https://lists.rtems.org/pipermail/devel/2012-April/000557.html>), but I'm still not clear where I would find the answer to #1. I specifically wasn't sure what it meant by "You should grep for the SYSINIT(9) (with specializations, see man page) macros in the network code to identify its components."

For #2, it seemed that if I could find that answer, I can use that prefix as an entry into _bsd_nexus_devices[]. I tried using "em" (that I found on the Internet), but it didn't seem to work. I'm guessing that there is some trick there. I have _bsd_nexus_devices[] = {"em", NULL}; followed by an #include of <machine/rtems-bsd-sysinit.h>, as the post described, but I'm still getting the error that interface em0 does not exist. I assume that this is a result of not having the correct drivers linked.

Is there an example file which shows the actual inclusion of a NIC? default-network-init.h doesn't seem to have anything that I could see. 

Thanks.

Mark.




More information about the users mailing list