Hi. Yes, what you want to do is possible. But it is a lot of work. It is maybe easier to start with the GPS code that does not have the Kiwi SDR code parts: http://www.jks.com/sdgps/sdgps.html This code just runs a program on the Beagle that prints messages with no web interface and no complications of all the Kiwi SDR code.
1) How are you wiring the Beagle SPI to the Zedboard? Are you using the same SPI pins as go from Beagle to Kiwi FPGA? This is tricky because those same pins are used to download/program the Kiwi FPGA. Did you somehow electrically isolate the Kiwi FPGA from those SPI pins? Otherwise you have to depend on the Kiwi FPGA power-up state to leave those pins in high-impedance mode. It is possible this is okay even if you did not isolate the pins.
2) Did you disable the code in the Kiwi server that programs the Kiwi FPGA?
4) Do you get any error messages on the Beagle console when you run the Kiwi server?
It's not that simple. The Kiwi is a very complicated realtime system. There is a careful balance of resources to minimize the cost of the device while maximizing the number of supported channels. This means there is sometimes a tradeoff between FPGA resources and Beagle cpu cycles.
What you're seeing at first is the GPS acquisition process (very Beagle FFT intensive) being paused when the first connection occurs. And with no connections the audio data pump between FPGA and Beagle is shut off causing a big reduction in system time due to fewer SPI transfers.
The %load number you show looks like user time only. You have to consider system (kernel) time as well. I see numbers like this:
This is about optimal. For no connections you want to spend all available cycles acquiring new GPS sats for maintaining ADC clock calibration. When there are corrections you want to have some cycles leftover for the portion of extension code that runs on the Beagle.