Following the discussion about what the base overlay is for, here is a concrete suggestion as to how I think it could be made rather more useful, without having to change it much. The goal is to make it easier for people to do their own PL processing.
First, consider the existing base overlay. Take the part dealing with audio as an example. At present, in simple terms it collects data from the audio codec, and sends it through to the PS, and also sends data back the other way. Think of those as 2 data streams.
What I suggest is to send each of those 2 data streams through a trivial IP block, that in the base overlay just passes them straight from their input to their output.
The end result would work in exactly the same way as the current base overlay. However, it would have a significant advantage to people wishing to do their own processing on the data streams in the PL. (E.g. to add some audio effect). They would modify the pass-through IP block into an audio-effect IP block, by writing new code for it (a trivial example would be to right shift audio values being passed through, to act as a simple volume control).
I guess a little extra thought is needed to deal with clocking, resets, etc.
Clearly, this could be done for other kinds of datastreams too, such as video, and perhaps others.
Comments? Suggestions? Is this something the Pynq developers might consider? At least in principle, it does not seem as if it would need too much work.