Ethernet point-to-point on Polarfire SoC-based boards

Hi everybody! How is the support for the Ethernet interface on the BeagleV-Fire (or on the mpfs-icicle in alternative)? It looks to me like the drivers are missing.

What I would like to do is establish a point-to-point connection between my desktop PC (running an engineering simulation) and the SBC (running the control algorithms), for them to be able to exchange information through a websocket server. What are my options here? If Ethernet is not viable, can I use USB or something else?

I cannot add to much about the BeagleV-Fire hardware. I have not looked at it until now and it was a brief review.

  1. The GigE MAC is an IP block but I cannot see if it is a one that has been used elsewhere. If it has has it makes adding support simpler. We need a FreeBSD style driver to work with LibBSD.

  2. Ethernet or USB both need LibBSD drivers for this board. At a guess Ethernet support would be simplest but someone needs to add it.

  3. If you have Ethernet you can use TCP. If you want Websockets that can be done using the Civetweb server. I am using Civetweb’s Websockets in applications and they work great, no problems with them.

Microchip responded to my question very quickly (thanks Microchip and M, nice work :slight_smile: ) with the following link for the PolarFire SoC 2 x SGMII MAC

I have not found a FreeBSD driver however Microchip has this code:

  1. platform/drivers/mss/mss_ethernet_mac at main · polarfire-soc/platform · GitHub

  2. rtems/bsps/riscv/mpfs at mpfs-rtems · polarfire-soc/rtems · GitHub

Thank you very much for having a look at this. Unfortunately, this is my first endeavor with embedded programming and I have to admit I don’t fully grasp most of what you are saying. Not only that, but I have rather strict deadlines and I don’t think it is feasible for me to add Ethernet support myself in such a short time. That being said, here’s a couple details I may add:

Thanks for the response and I understand. I posted the technical detail as I went to capture the state of development for the BeagleV-Fire board. It would be awesome to see it supported. And SMP on RTEMS is nice and a lot of fun.

RTEMS is open source and development is driven by the community. We need businesses and organizations to provide patches we can consume or to fund someone to do the work. The up side for the org or bushiness is the project maintains that code going forward and RTEMS has a long history of supporting hardware for a long time.

Don’t get me wrong, I really appreciate the time and effort you put into explaining the current state of support. Even if I don’t fully understand all the technical details, it’s been super helpful.

Just a quick update: a few days ago, the vendor released a new RC Ubuntu ISO with a newer kernel. That let me build an image with real-time support and functioning Ethernet as well. I’ll drop the link here in case someone more experienced can spot something in the source that might help with a possible RTEMS port (even though I suppose there’s nothing new concerning the drivers).

For now, I’m switching over to embedded Linux since I only need soft real-time performance, but I’ll definitely keep an eye on RTEMS for a future rewrite or another project down the line.

Thanks for info. I have not checked the link but we do not allow GPL code in RTEMS.

Great you have found a solution and all the best with the “soft” real time.

1 Like