Hi,
I am trying to use TI codec engine with gstreamer on BB C3 running
latest (unstable) Angstrom. As recommended, I've add
mem=99M@0x80000000 mem=128M@0x88000000 to the bootargs. However, in a
lot of case it does not work for me (hangs up, or gives other errors).
So while looking for the reasons, my attention was caught by the
following output during the boot process:
[ 29.441345] Reference Linux version 2.6.32
[ 29.445739] File
/home/oe/angstrom/work/beagleboard-angstrom-linux-gnueabi/ti-linuxutils-1_2_25_01_06-rc
[ 29.465606] CMEM Range Overlaps Kernel Physical - allowing overlap
[ 29.471954] CMEM phys_start (0x86300000) overlaps kernel
(0x80000000 -> 0x8e300000)
[ 29.481567] allocated heap buffer 0xd1000000 of size 0x53d000
[ 29.487426] cmemk initialized
If I interpret it correctly, it says that kernel actually does not
"left" these memory areas and that is why there is an overlap. I would
appreciate if someone can say whether it could be a problem and if
yes, what is the right way to fix it.
Just for reference, here is what I see in /proc/cmdline:
root@beagleboard:~# cat /proc/cmdline
console=ttyS2,115200n8 mem=99M@0x80000000 mem=128M@0x88000000
buddy=${buddy} root=/dev/mmcblk0p2 rw rootwait
What I am also can not quite understand is the following. Despite the
messages mentioned above, cmemk module gets loaded during the boot
process. But if I then remove the module manually and try to load it
with provided /usr/share/ti/gst/omap3530/loadmodules.sh, there is an
error message printed and cmemk is not loaded:
[ 763.923767] CMEMK module: built on May 5 2010 at 21:39:26
[ 763.929412] Reference Linux version 2.6.32
[ 763.933715] File
/home/oe/angstrom/work/beagleboard-angstrom-linux-gnueabi/ti-linuxutils-1_2_25_01_06-rc
[ 763.953704] CMEMK Error: CMEM phys_start (0x86300000) overlaps
kernel (0x80000000 -> 0x8e300000)
FATAL: Error inserting cmemk
(/lib/modules/2.6.32/kernel/drivers/dsp/cmemk.ko): Invalid argument
Since the memory ranges mentioned here are the same as in the boot up
message I mentioned above, I assume that it is a problem. So I would
really appreciate if someone can provide some hints how to resolve it.
Thank you,
Andrey.
Hi,
I am trying to use TI codec engine with gstreamer on BB C3 running
latest (unstable) Angstrom. As recommended, I've add
mem=99M@0x80000000 mem=128M@0x88000000 to the bootargs. However, in a
lot of case it does not work for me (hangs up, or gives other errors).
So while looking for the reasons, my attention was caught by the
following output during the boot process:
[ 29.441345] Reference Linux version 2.6.32
[ 29.445739] File
/home/oe/angstrom/work/beagleboard-angstrom-linux-gnueabi/ti-linuxutils-1_2_25_01_06-rc
[ 29.465606] CMEM Range Overlaps Kernel Physical - allowing overlap
[ 29.471954] CMEM phys_start (0x86300000) overlaps kernel
(0x80000000 -> 0x8e300000)
[ 29.481567] allocated heap buffer 0xd1000000 of size 0x53d000
[ 29.487426] cmemk initialized
If I interpret it correctly, it says that kernel actually does not
"left" these memory areas and that is why there is an overlap. I would
appreciate if someone can say whether it could be a problem and if
yes, what is the right way to fix it.
cmem doens't know about the memory hole we create, so in this case the message is harmless.
Just for reference, here is what I see in /proc/cmdline:
root@beagleboard:~# cat /proc/cmdline
console=ttyS2,115200n8 mem=99M@0x80000000 mem=128M@0x88000000
buddy=${buddy} root=/dev/mmcblk0p2 rw rootwait
What I am also can not quite understand is the following. Despite the
messages mentioned above, cmemk module gets loaded during the boot
process. But if I then remove the module manually and try to load it
with provided /usr/share/ti/gst/omap3530/loadmodules.sh, there is an
error message printed and cmemk is not loaded:
[ 763.923767] CMEMK module: built on May 5 2010 at 21:39:26
[ 763.929412] Reference Linux version 2.6.32
[ 763.933715] File
/home/oe/angstrom/work/beagleboard-angstrom-linux-gnueabi/ti-linuxutils-1_2_25_01_06-rc
[ 763.953704] CMEMK Error: CMEM phys_start (0x86300000) overlaps
kernel (0x80000000 -> 0x8e300000)
FATAL: Error inserting cmemk
(/lib/modules/2.6.32/kernel/drivers/dsp/cmemk.ko): Invalid argument
That script doesn't have allowOverlap=1, have a look at /etc/init.d/gstti-init.
regards,
Koen
Hi,
this overlaps with kernel range, the space given for cmem is presently used by kernel.
either restrict the kernel by given bootargs “mem=XX M” or provide range of memory not accessed by kernel.
example,
0xC0000000 - 0xC4FFFFFF for kernel (80M)
0xC5000000 - 0xC5FFFFFF for cmem, (16M)
ur bootargs should be mem=80M for kernel and in cmem, phystarrt=0xc5000000 phyend=0xc5ffffff.
Thank you very much for the quick answer!
[ 29.441345] Reference Linux version 2.6.32
[ 29.445739] File
/home/oe/angstrom/work/beagleboard-angstrom-linux-gnueabi/ti-linuxutils-1_2_25_01_06-rc
[ 29.465606] CMEM Range Overlaps Kernel Physical - allowing overlap
[ 29.471954] CMEM phys_start (0x86300000) overlaps kernel
(0x80000000 -> 0x8e300000)
[ 29.481567] allocated heap buffer 0xd1000000 of size 0x53d000
[ 29.487426] cmemk initialized
If I interpret it correctly, it says that kernel actually does not
"left" these memory areas and that is why there is an overlap. I would
appreciate if someone can say whether it could be a problem and if
yes, what is the right way to fix it.
cmem doens't know about the memory hole we create, so in this case the message is harmless.
Could you please elaborate on it a little bit? Is there something
special made in kernel to leave this hole?
Does it also means that for my case I should look somewhere else for
the reasons why gstreamer does not work for me and assume that all
required modules are configured and initialized correctly?
Thank you,
Andrey.
Thank you Harish Kumar for the quick response!
this overlaps with kernel range, the space given for cmem is presently used
by kernel.
either restrict the kernel by given bootargs "mem=XX M" or provide range of
memory not accessed by kernel.
example,
0xC0000000 - 0xC4FFFFFF for kernel (80M)
0xC5000000 - 0xC5FFFFFF for cmem, (16M)
ur bootargs should be mem=80M for kernel and in cmem, phystarrt=0xc5000000
phyend=0xc5ffffff.
So does it means that the parameters suggested here
http://www.angstrom-distribution.org/demo/beagleboard/README.txt, i.e.
mem=99M@0x80000000 mem=128M@0x88000000 are incomplete or incorrect?
Koen mentioned in his reply to this question that "cmem doens't know
about the memory hole we create". Maybe there is something special
made in kernel which also makes it possible to use bootargs mentioned
above?
Thank you very much!
Andrey.
No, the parameters from angstrom are correct, they come straight from TI 
Op 8 mei 2010 om 10:46 heeft Andrey Nechypurenko <andreynech@googlemail.com
this will help u to understand,
http://processors.wiki.ti.com/index.php/Changing_the_DVEVM_memory_map
http://processors.wiki.ti.com/index.php/Codec_Engine_Examples_Memory_Map
My hope was that I would be able to avoid dealing with it
but it
seams like I will have to.
Thanks,
Andrey.
Thank you very much for the quick answer!
[ 29.441345] Reference Linux version 2.6.32
[ 29.445739] File
/home/oe/angstrom/work/beagleboard-angstrom-linux-gnueabi/ti-linuxutils-1_2_25_01_06-rc
[ 29.465606] CMEM Range Overlaps Kernel Physical - allowing overlap
[ 29.471954] CMEM phys_start (0x86300000) overlaps kernel
(0x80000000 -> 0x8e300000)
[ 29.481567] allocated heap buffer 0xd1000000 of size 0x53d000
[ 29.487426] cmemk initialized
If I interpret it correctly, it says that kernel actually does not
"left" these memory areas and that is why there is an overlap. I would
appreciate if someone can say whether it could be a problem and if
yes, what is the right way to fix it.
cmem doens't know about the memory hole we create, so in this case the message is harmless.
Could you please elaborate on it a little bit? Is there something
special made in kernel to leave this hole?
Nothing special is being done (besides the mem=, mem=), cmem naively only checks start and env of the kernel mem, not the bounds of the actual cmem area. The omap3 codec people never thought that people would use >128MB ram.
The mem=99M@ is for using the media codecs (e.g. gstreamer-ti), for the dsplink and ce samples you need mem=80M since they require a bigger area.
regards,
Koen
Hi,
example,
0xC0000000 - 0xC4FFFFFF for kernel (80M)
0xC5000000 - 0xC5FFFFFF for cmem, (16M)
ur bootargs should be mem=80M for kernel and in cmem, phystarrt=0xc5000000
phyend=0xc5ffffff.
This configuration also does not really work for me. In particular,
attempt to run the pipleline mentioned here:
http://processors.wiki.ti.com/index.php/Example_GStreamer_Pipelines#H.264_RTP_Streaming
Results in the following errormessage printed on the root console:
Unhandled fault: external abort on non-linefetch (0x1818) at 0x42998000
With original Angstrom settings, there is no such error message, but
the pipeline still does not generate any network traffic
.
Regards,
Andrey.