Deploy For Standalone Embedded Target

BP
Brian Padalino
Thu, Jan 23, 2020 12:21 AM

I've gotten my FPGA bit files running, and now I am getting to the point
where I want to deploy full applications to the embedded target.

Currently, I do not want to run in networked mode and it will all be run on
the embedded target.

In the OpenCPI repository where I have built the runtime, core project, and
asset project, I run:

make deploy Platform=myplatform:xilinx17_4

I then see in
./cdk/exports/myplatform/myplatform-deploy/sdcard-xilinx17_4/opencpi
contains a nice group of files.  Unfortunately, it seems like only the
ocpi.core.*.so files are being included.

Is there a command to take the output of ocpi.core, ocpi.assets (and, I
suppose, even for my out-of-tree project that is registered with OpenCPI)
for my target and add it all to the SD card?

Thanks,
Brian

I've gotten my FPGA bit files running, and now I am getting to the point where I want to deploy full applications to the embedded target. Currently, I do not want to run in networked mode and it will all be run on the embedded target. In the OpenCPI repository where I have built the runtime, core project, and asset project, I run: make deploy Platform=myplatform:xilinx17_4 I then see in ./cdk/exports/myplatform/myplatform-deploy/sdcard-xilinx17_4/opencpi contains a nice group of files. Unfortunately, it seems like only the ocpi.core.*.so files are being included. Is there a command to take the output of ocpi.core, ocpi.assets (and, I suppose, even for my out-of-tree project that is registered with OpenCPI) for my target and add it all to the SD card? Thanks, Brian
JK
James Kulp
Thu, Jan 23, 2020 1:31 PM

When making a standalone SD card, it is usually the user's choice as to
which artifacts should be copied to the SD card.
In any project, all the artifacts are sym-linked into the artifacts/
subdirectory, so if you wanted them all, you could copy from there
(following links of course).
But that will copy things that are not sensible on the SD card
(artifacts for other platforms).
A better approach is to generate a list of appropriate artifacts using
the "ocpirun --artifacts" command.
This command finds all the artifacts in the OCPI_LIBRARY_PATH that are
for the listed platforms.

I.e.

arts=$(OCPI_LIBRARY_PATH=projects/assets/artifacts ocpirun
--artifacts=centos7,xsim)

So then you could:

cp -L $arts /mnt/cardxxxxx/opencpi/my-artifacts

Assuming that directory existed and was in the OCPI_LIBRARY_PATH on the
embedded platform.

Jim

On 1/22/20 7:21 PM, Brian Padalino wrote:

I've gotten my FPGA bit files running, and now I am getting to the point
where I want to deploy full applications to the embedded target.

Currently, I do not want to run in networked mode and it will all be run on
the embedded target.

In the OpenCPI repository where I have built the runtime, core project, and
asset project, I run:

make deploy Platform=myplatform:xilinx17_4

I then see in
./cdk/exports/myplatform/myplatform-deploy/sdcard-xilinx17_4/opencpi
contains a nice group of files.  Unfortunately, it seems like only the
ocpi.core.*.so files are being included.

Is there a command to take the output of ocpi.core, ocpi.assets (and, I
suppose, even for my out-of-tree project that is registered with OpenCPI)
for my target and add it all to the SD card?

Thanks,
Brian

When making a standalone SD card, it is usually the user's choice as to which artifacts should be copied to the SD card. In any project, all the artifacts are sym-linked into the artifacts/ subdirectory, so if you wanted them all, you could copy from there (following links of course). But that will copy things that are not sensible on the SD card (artifacts for other platforms). A better approach is to generate a list of appropriate artifacts using the "ocpirun --artifacts" command. This command finds all the artifacts in the OCPI_LIBRARY_PATH that are for the listed platforms. I.e. arts=$(OCPI_LIBRARY_PATH=projects/assets/artifacts ocpirun --artifacts=centos7,xsim) So then you could: cp -L $arts /mnt/cardxxxxx/opencpi/my-artifacts Assuming that directory existed and was in the OCPI_LIBRARY_PATH on the embedded platform. Jim On 1/22/20 7:21 PM, Brian Padalino wrote: > I've gotten my FPGA bit files running, and now I am getting to the point > where I want to deploy full applications to the embedded target. > > Currently, I do not want to run in networked mode and it will all be run on > the embedded target. > > In the OpenCPI repository where I have built the runtime, core project, and > asset project, I run: > > make deploy Platform=myplatform:xilinx17_4 > > I then see in > ./cdk/exports/myplatform/myplatform-deploy/sdcard-xilinx17_4/opencpi > contains a nice group of files. Unfortunately, it seems like only the > ocpi.core.*.so files are being included. > > Is there a command to take the output of ocpi.core, ocpi.assets (and, I > suppose, even for my out-of-tree project that is registered with OpenCPI) > for my target and add it all to the SD card? > > Thanks, > Brian >
BP
Brian Padalino
Thu, Jan 23, 2020 7:59 PM

On Thu, Jan 23, 2020 at 8:32 AM James Kulp jek@parera.com wrote:

When making a standalone SD card, it is usually the user's choice as to
which artifacts should be copied to the SD card.
In any project, all the artifacts are sym-linked into the artifacts/
subdirectory, so if you wanted them all, you could copy from there
(following links of course).
But that will copy things that are not sensible on the SD card
(artifacts for other platforms).
A better approach is to generate a list of appropriate artifacts using
the "ocpirun --artifacts" command.
This command finds all the artifacts in the OCPI_LIBRARY_PATH that are
for the listed platforms.

I.e.

arts=$(OCPI_LIBRARY_PATH=projects/assets/artifacts ocpirun
--artifacts=centos7,xsim)

So then you could:

cp -L $arts /mnt/cardxxxxx/opencpi/my-artifacts

Assuming that directory existed and was in the OCPI_LIBRARY_PATH on the
embedded platform.

Thanks, Jim.  This is exactly what I was looking for.

Brian

On Thu, Jan 23, 2020 at 8:32 AM James Kulp <jek@parera.com> wrote: > When making a standalone SD card, it is usually the user's choice as to > which artifacts should be copied to the SD card. > In any project, all the artifacts are sym-linked into the artifacts/ > subdirectory, so if you wanted them all, you could copy from there > (following links of course). > But that will copy things that are not sensible on the SD card > (artifacts for other platforms). > A better approach is to generate a list of appropriate artifacts using > the "ocpirun --artifacts" command. > This command finds all the artifacts in the OCPI_LIBRARY_PATH that are > for the listed platforms. > > I.e. > > arts=$(OCPI_LIBRARY_PATH=projects/assets/artifacts ocpirun > --artifacts=centos7,xsim) > > > So then you could: > > cp -L $arts /mnt/cardxxxxx/opencpi/my-artifacts > > Assuming that directory existed and was in the OCPI_LIBRARY_PATH on the > embedded platform. > Thanks, Jim. This is exactly what I was looking for. Brian