Ti dvsdk on omap3530 use devkit8000 (1)

Source: Internet
Author: User
Tags sdo server memory

From this chapter, I want to change the question.

Of course, we should continue with the previous writing.

 

The last time we talked about the success of LCD loading, we mentioned that rootfs was not mounted. The printed information is as follows:

 

========================================================== ========================================================== ===

Looking up port of RPC 100003/2 on 192.168.16.20.
Looking up port of RPC 100005/1 on 192.168.16.20.
VFS: mounted root (NFS filesystem) on device 0: 12.
Freeing init memory: 140 K

Init: Version 2.86 booting

Please wait: booting...
Starting udev
Rings WPL Debug: udev flag 1, exec to here.
Rings WPL Debug: udev flag 2, exeudev: Starting version 141
C To here.
Udevd [449]: inotify_add_watch (3, (null), 10) failed: Bad address // note: this error is caused by udev loading. Ignore it first.
..................
Udevd [449]: inotify_add_watch (3, (null), 10) failed: Bad address

 

Rings WPL Debug: udev flag 3, exec to here.
Remounting root file system...
Root: Mount: mounting rootfs on/failed: no such file or directory
Wed Dec 2 19:30:00 UTC 2009

Init: Entering runlevel: 5

Starting telnet daemon.
Starting syslogd/klogd: Done
Starting thttpd.
Cmemk: disagrees about version of symbol find_vma
Cmemk: Unknown symbol find_vma
Cmemk: disagrees about version of symbol _ register_chrdev
Cmemk: Unknown symbol _ register_chrdevdsplinkk: disagrees about version of symbol set_user_nice
Dsplinkk: Unknown symbol set_user_nice
Dsplinkk: disagrees about version of symbol wake_up_process
Dsplinkk: Unknown symbol wake_up_process
Dsplinkk: disagrees about version of symbol clk_get_rate
Dsplinkk: Unknown symbol clk_get_rate
Dsplinkk: disagrees about version of symbol filp_close
Dsplinkk: Unknown symbol filp_close
Dsplinkk: disagrees about version of symbol _ register_chrdev
Dsplinkk: Unknown symbol _ register_chrdev
Insmod: Error inserting 'dsplinkk. ko':-1 unknown symbol in Module
Busybox v1.13.2 (2009-12-02 19:10:22 est) Multi-call binary

Usage: mknod [Options] Name type major minor

Create a special file (Block, character, or pipe)

Options:
-M create the special file using the specified mode (default A = RW)
Types include:
B: Make a block Device
C or U: Make a character device
P: Make a named pipe (major and minor are ignored)

Lpm_omap3530: Unknown symbol ips_notify
Lpm_omap3530: Unknown symbol ips_register
Lpm_omap3530: Unknown symbol ips_unregister
Lpm_omap3530: disagrees about version of symbol cdev_add
Lpm_omap3530: Unknown symbol cdev_add
Lpm_omap3530: Unknown symbol ldrv_proc_setstate
Lpm_omap3530: Unknown symbol ldrv_proc_getstate
Lpm_omap3530: Unknown symbol pmgr_proc_getsymboladdress
Lpm_omap3530: disagrees about version of symbol cdev_init
Lpm_omap3530: Unknown symbol cdev_init
Lpm_omap3530: disagrees about version of symbol cdev_del
Lpm_omap3530: Unknown symbol cdev_del
Insmod: Error inserting 'lpm _ omap3530.ko ':-1 unknown symbol in Module
Sdmak: disagrees about version of symbol put_page
Sdmak: Unknown symbol put_page
Sdmak: disagrees about version of symbol _ register_chrdev
Sdmak: Unknown symbol _ register_chrdev
Insmod: Error inserting 'sdmak. ko':-1 unknown symbol in Module
Demo interface started at level 0.
Cmem error: init: failed to open/dev/cmem: 'No such file or directory'
Error: failed to create display device instance
SH: can't create/sys/devices/platform/omapdss/overlay0/global_alpha: nonexistent directory
Error: failed to execute: Echo 0>/sys/devices/platform/omapdss/overlay0/global_alpha

 

========================================================== ========================================================== ===

 

After reading this, the system displays a warning message during udev loading.

When the system starts up to this point, telnet and httpd are all up. The LCD displays the penguin and logon prompt, which is actually ready for use. However, blocking on the console cannot be used.

 

One by one.

 

First of all, positioning and ideas: After Linux is started, control has been handed over to rootfs. rootfs is extracted from the compressed file of the NFS system corresponding to the dvsdk I downloaded from Ti, and it should be okay. However, this NFS must be compiled for the board configuration and related kernel of the EVM, that is, the pile of things compiled by make everythings in the Ti dvsdk mentioned earlier. The error source should be: 1 is not compatible with the kernel and driver. This is not compatible with the library used by the application. It should be re-compiled for the new kernel. 2, kernel configuration problems may not be configured like the EVM in the kernel, which must be somewhat different.

 

First check the first error:

Cmemk: disagrees about version of symbol find_vma
Cmemk: Unknown symbol find_vma
Cmemk: disagrees about version of symbol _ register_chrdev
Cmemk: Unknown symbol _ register_chrdev

 

First, find out where to load the driver. Find./-name cmemk. Ko under rootfs. Check that there is a loadmodules. Sh Under opt/dvsdk/omap3530, where there is a script to load. After reading the information, you can see that the driver needs to be re-compiled. Find the dvsdk directory and use a coincidence. The path of the specified PSP kernel is not modified, instead, use the original kernel MV as another name to create a soft chain with the same name, link it to the currently used Beagle-based kernel, and then look at make help:

 

Make cmem available

Make cmem_clean

Execute make cmem_clean first, and then execute make. Yes, make install, prompting all files to be copied to $ home/workdir/filesys/opt/dvsdk/omap3530.

 

Replace cmemk. Ko with the same name file in rootfs (in fact, the relative location is the same) and start again:

 

Cmemk module: built on Jul 7 2010 at 14:14:53
Reference Linux version 2.6.32
File/home/WPL/dvsdk/dvsdk_3_01_00_10/linuxutils_2_25_02_08/packages/Ti/SDO/linuxutils/cmem/src/module/cmemk. c
Cmem range overlaps kernel physical-allowing overlap
Cmem phys_start (0x86300000) overlaps kernel (0x80000000-> 0x88000000)
Cmemk error: failed to request_mem_region (0x86300000,157 28640)
Insmod: Error inserting 'cmemk. ko':-1 bad address

 

Hmm? There are no errors such as previous link symbols. The initialization memory overwrite error occurs. According to the information, cmem is allocated to the memory, which is included in the Linux kernel.

 

What should I do? Google first, find this:

Http://www.linuxforum.net/forum/showflat.php? Cat = & board = Ti & number = 746894 & page = 14 & view = expanded & SB = 6 & O = 0

I looked at it and said that I didn't understand what it meant by modifying the mem size in bootargs in uboot. I thought the kernel didn't know How to Use 128 of the memory?

 

Then add mem = 128 M.

 

After it is started, it is found that this is still the case.

 

Then, open some web pages to see what cmem is doing,

 

On dvevm, the memory is 256 m, so the routines in codec are configured according to the M memory. In other specific applications, the target board memory is not set to 256 MB. Therefore, memory configuration is an important technology on the DaVinci Development Board.
The company's development board is 128 M. According to the relevant documents, re-configure and compile the program. The video_copy routine is successfully run on the m Development Board. The procedure is as follows:
DDR memory is shared by arm and DSP, from ox80000000 to 0x90000000. The memory is divided into the following parts:
1: LINUX partition: In ARM Linux, the page is 4 kb. This part of memory is used by Linux alone. As there is virtual memory, developers cannot directly operate the memory.
2: cmem: contiguous Memory Allocator. Used to share memory between ARM and DSP. Because the memory on Linux uses a virtual mechanism, the allocated memory may not be consecutive, And the DSP Memory does not have a virtual memory mechanism. The physical memory is physically continuous. Therefore, if a piece of memory is directly passed as a parameter to the DSP side for processing, the correct result will not be obtained. Therefore, cmem is used to solve this problem. Through cmem, continuous memory can be opened for sharing memory between ARM and DSP.
3: The ddralgheap and DDR sections: used for Codec dynamic memory opening
4: DDR (DDR2 in codec engine1.2): used to store DSP-side code and static data.
5: The dsplinkmem section: used for dsplink,
6: reset_vector: used for DSP Reset vector. It must be 128 direct and the starting address must be an integer m.
Therefore, the total memory = DSP Server Memory + cmem + Linux memory. The following is the specific memory configuration of the author:


............

 

I don't feel it after reading it, but I know that cmem is shared memory, and it is between ARM and DSP. I still want to see loading configuration.

 

#
# Default Memory Map
#
# Start ADDR size description
#-------------------------------------------
#0x80000000 99 MB Linux
#0x86300000 15 MB cmem
#0x87200000 13 MB codec Server

# Allocate 15 MB for cmem
Insmod cmemk. Ko phys_start = 0x86300000 phys_end = 0x87200000 pools = 1x4096 then, 1X1429133, 6x1048576,4x829133, 1X327680,1 x allowoverlap = 1

I mainly look at the memory allocation table in the comment and know that cmem needs to occupy 15 MB of memory, while Linux accounts for 99 mb. Suddenly I think, should I initialize the Linux Men = 99 m?

 

I tried it in uboot, but it is OK. The print is as follows:

 

Cmemk module: built on Jul 7 2010 at 14:14:53
Reference Linux version 2.6.32
File/home/WPL/dvsdk/dvsdk_3_01_00_10/linuxutils_2_25_02_08/packages/Ti/SDO/linuxutils/cmem/src/module/cmemk. c
Allocated heap buffer 0xc7000000 of size 0x17000
Cmemk initialized

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.