[Discuss OpenCPI] Proper Platform Definition

From: Brian Padalino <bpadalino_at_gmail.com>
Date: Tue, 21 Jan 20 22:23:36 -0500

I've got a custom platform I'm trying to create, but I'm a little confused
about the best practices.

I'm looking at the normal OpenCPI repository as well as this E310
repository for reference:

  https://github.com/opencpi/av.bsp.e310

In general, I see that platforms define devices which can be instantiated
in configurations. So the platform will have all the device mappings, and
the configurations actually instantiate a real device worker.

For the E310 repository, an e310_conn is made as an abstraction for a slot
on the E310 even through there are no slots, really. This is very similar
to my situation as everything is soldered to the board but possibly not
populated.

Currently, I've just been defining the devices and signals for the
platform, but no slot. Is this all a matter of personal preference, or is
it better to make a slot even though it isn't actually a slot?

Lastly, I have configurations which have LVDS signals defined as outputs.
If I want to drive those signals to safe levels if those devices are not
instantiated, what's best practices here? The Xilinx tools need those
pairs driven by an OBUFDS, but if that device isn't instantiated that
primitive won't get instantiated. Should this be a property of the device,
then, to say if it's actually doing something or if it's just driving
nothing?

I tend to see a lot regarding differential pairs in the development guides,
but not so much used in practice except for the ml605 platform which seems
to be a bit older. Hence all the questions.

Thanks,
Brian


Received on Wed Jan 22 2020 - 03:23:36 CST

This archive was generated by hypermail 2.3.0 : Fri Jun 05 2026 - 08:45:25 CDT