Hi,
I'm trying to get an LCD connected to VOUT1 on our custom AM3874 board running Android 4.0 ICS from the Rowboat project. I have previously verified the display timing on VOUT0 on the 8148 evm. board, with the following rc.syslink:
insmod /system/bin/syslink/syslink.ko/system/bin/syslink/slaveloader_release startup VPSS-M3 /system/bin/syslink/ti814x_hdvpss_1G.xem3insmod /system/lib/modules/2.6.37+/kernel/drivers/video/ti81xx/vpss/vpss.ko sbufaddr=0xA0200000 debug=1 timeout=0insmod /system/lib/modules/2.6.37+/kernel/drivers/video/ti81xx/ti81xxfb/ti81xxfb.ko debug=1insmod /system/lib/modules/2.6.37+/kernel/drivers/video/ti81xx/ti81xxhdmi/ti81xxhdmi.ko debug=1echo 0 > /sys/devices/platform/vpss/graphics0/enabledecho 1:dvo2 > /sys/devices/platform/vpss/graphics0/nodesecho vcompmux:dvo2 > /sys/devices/platform/vpss/video0/nodesecho 0 > /sys/devices/platform/vpss/display1/enabledecho 33260,800/0/256/0,480/0/45/0,1 > /sys/devices/platform/vpss/display1/timingsecho triplediscrete,rgb888 > /sys/devices/platform/vpss/display1/outputecho 1 > /sys/devices/platform/vpss/display1/enabledecho 1 > /sys/devices/platform/vpss/graphics0/enabled
Our board has 512MB of memory, so I have switched to the ti814x_hdvpss_512M.xem3 firmware, changed sbufaddr to 0x8DE00000, notifyk.vpssm3_sva to 0x8DB00000 and modified the DMM_LISA_MAP values as specified in the VPSS user guide. I have also set up the pinmux for the VOUT1 pins in u-boot.
I have changed the rc.syslink script to the following (ti81xxhdmi.ko is no longer loaded):
insmod /system/bin/syslink/syslink.ko/system/bin/syslink/slaveloader_release startup VPSS-M3 /system/bin/syslink/ti814x_hdvpss_512M.xem3insmod /system/lib/modules/2.6.37+/kernel/drivers/video/ti81xx/vpss/vpss.ko sbufaddr=0x8DE00000 timeout=0 debug=1insmod /system/lib/modules/2.6.37+/kernel/drivers/video/ti81xx/ti81xxfb/ti81xxfb.ko debug=1echo 0 > /sys/devices/platform/vpss/graphics0/enabledecho 1:hdmi > /sys/devices/platform/vpss/graphics0/nodesecho vcompmux:hdmi > /sys/devices/platform/vpss/video0/nodesecho 0 > /sys/devices/platform/vpss/display0/enabledecho 33260,800/0/256/0,480/0/45/0,1 > /sys/devices/platform/vpss/display0/timingsecho triplediscrete,rgb888 > /sys/devices/platform/vpss/display0/outputecho 1 > /sys/devices/platform/vpss/display0/enabledecho 1 > /sys/devices/platform/vpss/graphics0/enabled
The board boots up fine and I can start the rc.syslink service, but nothing happens on neither the VOUT1 data nor clock pins. However, the VOUT0 port is started up, with a 148.5 MHz pixel clock. This is the output when I run /system/bin/syslink/rc.syslink start:
root@android:/ # /system/bin/syslink/rc.syslink start SysLink version : 2.00.00.78SysLink module created on Date:Jun 27 2012 Time:14:49:29Attached to slave procId 2.Loaded file /system/bin/syslink/ti814x_hdvpss_512M.xem3 on slave procId 2.Started slave procId 2.VPSS_GRPX : please open fb0 node first.VPSS_GRPX : please open fb0 node first./dev/mem opened.Memory mapped at address 0x40144000.Value at address 0x48180F04 (0x40144f04): 0x1Written 0x0; readback 0x0/dev/mem opened.Memory mapped at address 0x400a4000.Value at address 0x48180900 (0x400a4900): 0x2Written 0x2; readback 0x2/dev/mem opened.Memory mapped at address 0x401d2000.Value at address 0x48180920 (0x401d2920): 0x70000Written 0x2; readback 0x2init: untracked pid 513 exitedrequest_suspend_state: wakeup (0->0) at 106363748004 (1970-01-01 00:01:46.361242955 UTC)init: untracked pid 491 exitedinit: untracked pid 492 exitedLoaded PowerVR consumer services.
Have I missed something in the rc.syslink script? This question mentions a bug in the M3 firmware which overrules the pinmux settings:
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/146722/649603.aspx
Do I have to work around this somehow?
Thanks.
-Jeppe
I have created this module (http://pastebin.com/hm4q6HTG) to re-mux the VOUT1 pins after loading the M3 firmware by inserting an insmod in rc.syslink after running slaveloader. It was necessary to export the omap_mux_init_signal from mux.c and remove the __init section attribute. I now get a 20 MHz clock output on VOUT[1]_CLK (where I expected a 33.26 MHz pixel clock) and nothing happens on the data or AVID pins.
Is this the right direction, or have I missed a step?
Ok, the M3 firmware definitely performs some pinmuxing when it is loaded. I have the backlight control for my display connected to TIM7_IO on AA10 which is also used for VOUT[0]_AVID. As soon as i load the M3 firmware my display lights up.
Is it possible to get a list of the hardcoded pinmux configuration in the M3 firmware so I can fix it in my module? Or is it possible to swap the ti814x_hdvpss_512M.xem3 file to a newer version without changing the PSP version? I would like to not differ to much from the kernel used in the ti81xx Rowboat version.
I think you are on very old release of HDVPSS thats why you are facing this problem. Its not possible to replace ti814x_hdvpss_512.xem3 to a newer version without moving kernel version.
Regards,
Hardik Shah
Please mark this post as answered via the Verify Answer button below if you think it answers your question. Thanks!
Hi Hardik,
I got it running with notifyk.vpssm3_sva=0x8DB00000, sbufaddr=0x8DE00000 and mem=176M.
Can I get a memory map for the M3 firmware as used in the Rowboat distribution (I think it's PSP version 04.00.00.12)? Is it possible to get the source code for the firmware to free up additional memory by signing an NDA?
Thank you.
I dont think it is possible to free any memory used by firmware. Since firmware is designed for using optimum memory. Further memory map is decided by EZSDK and the Rowboat distribution. So you need to refer those documents. Memory map is not decided by PSP itself.
Thank you for your reply. Maybe I have misunderstood, but the notify/sharing buffer addresses mentioned in the VPSS user guide (0x8DB00000/0x8DE00000) must be defined by the M3 firmware? I'm basically trying to figure out where the 176MB limit comes from and how the 512MB of RAM are divided between the processors. I can find a memory map for 512MB for the EZSDK (http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map) but it doesn't seem to match with the values in the VPSS user guide.
We're having trouble with apps crashing due to low memory because we're limited to only 176MB of RAM, so if possible I would like to extend this if possible.
Maybe I should repost the question on the rowboat google groups.
I have posted a question to the rowboat mailing-list: https://groups.google.com/forum/?fromgroups#!topic/rowboat/sGkEvTlXbiE
Hi, Jeppe
I have some questions about am389xEVM, but nobody answer it. And it's hard to find that someone use android with am389x EVM.
if possible, could you please have a look the following link and give me the answer?
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/209622.aspx
Best Regards.
Jay
Hi Jay,
We used the TMDXEVM8148 to evaluate the software before getting our AM3874 boards. We use the ti81xx Android ICS branch from Gitorious. I don't think there's an official ICS download for the TI814x/AM387x.
Best regards,
Hi Jeppe.
I really appriciate your answer.