Zynq BSP progress

Claus, Ric claus at slac.stanford.edu
Thu Apr 11 19:49:26 UTC 2013


I am getting close to being comfortable with letting my RTEMS 4.11 BSP for Xilinx Zynq-based boards out into the wild.  However, I am still facing a few problems.

The first is that the network driver continues to be unstable.  The latest issue seems to be due to the fact that the DMA engine absconds with the lower two bits of the buffer address to indicate ownership and the ring buffer wrap point, so the minimum buffer alignment granularity is a longword.  Because an ethernet header is 14 bytes long, this forces the data payload of a received buffer to be word (16 bit) aligned.  For reasons I have yet to understand, this is not a problem for small payloads, but for larger ones (~500+ bytes, I think) I get alignment exceptions in udp_input().  Has anyone encountered this and know what to do about it?

The second is that neither DHCP nor NFS seems to work.  Still have to figure out why.  This is based on results with the network-demos package.

Finally, I anticipate that one BSP should be able to satisfy multiple boards, e.g., the zc702, the zedboard, etc.  Currently we have a separate BSP for each, but the differences ought to be parameterizable.  However, I don't understand enough about the configure.ac syntax and its applicability to figure out how to parameterize the makefile.ac.  Could someone please help me out with a tutorial, primer or pointer?  Also, is it a reasonable model to expect a user to modify configure.ac to indicate where to find 3rd party software the BSP needs to build against, or should this come from the existence and value of an environment variable or some such?  Another place where I guess one could place these kinds of things is in <bsp>/make/custom/<file>.cfg, but I haven't figured out how to specify which of these to use to $RTEMS_ROOT/src/configure.

	Thanks,
			Ric



More information about the devel mailing list