Now the tutorial continues, as I promised
1. use this firmware, download here: Test Firmware
(This firmware is just used to make sure your VoCore do not have other drivers stop you install the new one. It installed enough tools for this tutorial, so you do not have to find it online)
2. flash this firmware to your VoCore.
3. get two files here:package uncompress and upload them to VoCore /tmp/ folder.
“vocore_gdma.ko” is the driver.
“out” is the test data file, just a part of a wav file, 44100Hz, 16bits, stereo.
4. copy and run the following magic command.
i2cset -y 0 0x1a 0x1e 0x00 i2cset -y 0 0x1a 0x0e 0x02 i2cset -y 0 0x1a 0x08 0x05 i2cset -y 0 0x1a 0x68 0x07 i2cset -y 0 0x1a 0x6a 0x86 i2cset -y 0 0x1a 0x6c 0xc2 i2cset -y 0 0x1a 0x6e 0x26 i2cset -y 0 0x1a 0x32 0xc0 i2cset -y 0 0x1a 0x35 0xe1 i2cset -y 0 0x1a 0x5e 0x0c i2cset -y 0 0x1a 0x45 0x00 i2cset -y 0 0x1a 0x4b 0x00 i2cset -y 0 0x1a 0x0a 0x00 i2cset -y 0 0x1a 0x05 0xff i2cset -y 0 0x1a 0x07 0xff
4.1. insert driver to kernel.
4.2. send data to audio buffer.
cat /tmp/out > /sys/devices/10000000.palmbus/10002800.gdma/data
5. now, everything is ready, final command to play “out”.
echo 1 > /sys/devices/10000000.palmbus/10002800.gdma/play
6. After 5, you can heard some “music” output from your headphone, just a 5.9 seconds dead loop. Call this command to stop it.
echo 0 > /sys/devices/10000000.palmbus/10002800.gdma/play
PS: the music slice is from alan, 悲しみは雪に眠る, a lovely music
PSS: the music is weird somewhere…I think I must make some mistake when setting up the wm8960…(i2cset command)
But anyway, there is some music output at last. 😀
Here is the driver source code:vocore-gdma.c
Here is app from Wutong, did not use DMA interrupts, so you can run it under user mode.