This guide covers the workflow for building and deploying server or FPGA firmware changes to a live PandA for manual testing.
Simulation-mode testing (server)¶
Server changes can be unit-tested natively in simulation mode — no PandA
required. The only dependencies are make and gcc.
cd PandABlocks-server
make simSimulation mode runs the server against a software model of the block hardware. See the PandABlocks-server documentation for the full test flow.
Live testing with devtool (server and FPGA)¶
To test changes against real hardware, use the Yocto devtool workflow inside
the kas build container:
Open a shell in the
kascontainer:KAS_MACHINE=<machine> kas-container --ssh-agent shell kas.yml
Use
devtoolto build an updated package in the Yocto workspace:devtool modify <recipe-name> # make your changes in the workspace source tree devtool build <recipe-name>Deploy the built
.ipkto the PandA:devtool deploy-target <recipe-name> root@<panda-hostname>Restart the relevant service on the PandA:
ssh root@<panda-hostname> systemctl daemon-reload ssh root@<panda-hostname> systemctl restart <service-name>Test your changes on the live hardware.
Deploying a custom FPGA bitstream¶
To test a custom FPGA bitstream:
Build the
.ipkcontaining the bitstream in PandABlocks-FPGA (see the FPGA repo docs).Install it on the PandA:
scp panda-fpga_<version>.ipk root@<panda-hostname>:/tmp/ ssh root@<panda-hostname> opkg install --force-reinstall /tmp/panda-fpga_<version>.ipkOverride the active bitstream if needed — see Choose the FPGA bitstream.
Restart the relevant service:
ssh root@<panda-hostname> systemctl restart panda-fpga