The result is a cool and huge and non-practical mp3 player!
Checkout the video where I show how it works!
The driver is a simple char device where the mp3 file gets dumped.
The mp3decoder board is fed by a SPI at the fpga.
How did it:
The Linux driver allocates a buffer that will act as a FIFO. It gets filled whenever data is sent to the char device and get empty when the decoder chip requests data.
My first implementation was a failure... The interrupt routine was taking too long to dump the data and the FIFO was getting empty, that caused music to stop until it was again filled.
To solve this I had to do several tweaks to the interrupt routine, codding some assembly and also optimized the SD card driver to read data faster.
The result was a 68000 running the latest Linux kernel and playing mp3 files from an SD card! (tested with mp3 bitrates up to 320kbit/s)
I know... not a big deal nowadays, but for a CPU with almost 34 (maybe older than you?) it really is impressive.
Whenever I get some time, I plan to connect a simple USB host chip and then... try USB devices!