The first issue that I ran into while debugging stuff on the Wiz is that it's a pain to get the kernel messages. BW has compiled the kernel with Sigma Designs' CONFIG_SD_UARTPRINTK hack, which sends output only to the serial port and not to dmesg (see the SD kernel sources in the GPL_DA package). You can get the very last line written by peeking in kernel memory, but beyond that you'd have to hook printk to log stuff somewhere.
I figured that rather than going down that path it would be more useful in the long run to connect a serial cable to my Wiz. As correctly guessed by peteru and verified with an oscilloscope, the serial console (/dev/ttyAM0) is the 4-pin header on the motherboard, the pinout looks like this:
Code: Select all
1 [right side]: +5V
2: serial data out (3.3V LVTTL, 115200 8n1)
3: serial data in, presumably (5K pulldown to GND)
4: GND
In terms of actually getting a replacement CD player app working, I've been looking at getting the MRUA libraries from SD (also in the GPL_DA package) running on the box. All of the SD sample apps eventually break with error 12, RM_INVALIDMODE, when 'setting'/'exchanging' properties (which are the interface to hardware modules on the chip). Supposedly that means that it thinks the property is read-only. For instance:
Code: Select all
# ./colorbars
[colorbars.c:134] Cannot set color bars intensity, 12
# ./display_ascii 0 -X 300 -Y 200 -S 2 -F 255,0,0,255 -B 0,0,255,128 font.psf "foo bar"
[osdlib.c:227] Cannot exchange Property 4019 on module 3, 12
Error getting OSD infos : RM_INVALIDMODE
# ./play_picture mono.bmp
[parse_display_cmdline.c:1779] Cannot open display 12
[play_picture.c:205] Cannot set display options 12
Code: Select all
ioctl(4, EM8XXX_IOCTL_SET_PROPERTY, {moduleId=18 propId=4026 propInVal=0x91b4e5c6 propInSize=0x1 propOutVal=(nil) propOutSize=0 status=6}) = 0
ioctl(4, EM8XXX_IOCTL_SET_PROPERTY, {moduleId=19 propId=4026 propInVal=0x91b4e5c6 propInSize=0x1 propOutVal=(nil) propOutSize=0 status=6}) = 0
ioctl(4, EM8XXX_IOCTL_SET_PROPERTY, {moduleId=20 propId=4026 propInVal=0x91b4e5c6 propInSize=0x1 propOutVal=(nil) propOutSize=0 status=18}) = 0
ioctl(4, EM8XXX_IOCTL_SET_PROPERTY, {moduleId=21 propId=4026 propInVal=0x91b4e5c6 propInSize=0x1 propOutVal=(nil) propOutSize=0 status=18}) = 0
I can only guess that maybe that there's a slight ABI difference between the em8xxx module from the GPL_DA package and the one on the Wiz, or maybe wizdvp is setting things up so as to lock out other apps (although I've tried killing wizdvp before running the apps).
Anyone else played with MRUA? Anyone have any ideas?