Dear,
I try using IPC between PA and DSP on B4860QDS.
i'am using Freescale QoriQ SDK 1.6
and setup follow the IPC instruction in the QoriQ-SDK-1.6-IC-RevB.pdf (9.9 and 9.10)
Thank for held
root@b4860qds:/ipc# ./dsp_bt -h 1 -c 0 -i c0.bin
===B4860QDS DSP boot Application (3.0.0) ===
SYSTEM MAP
DSP PrivArea: Addr=80000000 Size=7ff00000
Shared CtrlArea: Addr=fff00000 Size=100000
DSP Core0 M2: Addr=0 Size=0
DSP Core1 M2: Addr=0 Size=0
DSP M3: Addr=c40000000 Size=8000
PA CCSRBAR: Addr =ffe000000 Size=1000000
DSP CCSRBAR: Addr =ffe000000 Size=1000000
shmget: Cannot allocate memory
error in init_hugetlb frm pre_load_B4
Hi,
What SDOS image are you using?
Can you please try the image in SDK1.6 to check if it's IPC or DSP image problem?
The image is under the path as below:
freescale@freescale-sdk:~/SDK/QorIQ-SDK-V1.6-20140619-yocto/meta-fsl-networking/recipes-bsp/ipc/sdos-demo-1.0$ ls
sdos-demo_1.0.tar.gz
You could also refer to the similar thread IPC and DSP boot Application in Linux SDK v1.5
Have a great day,
Lunmin
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Any resolution on this?
I'm using the SDK v1.8 and running into a similar problem if not the same. I followed all the instructions specified in the Info center pdf. Here is what I'm doing, please let me know if I'm missing something.
uboot args:
bootm_size=0x70000000
othbootargs=default_hugepagesz=256m hugepagesz=256m hugepages=1 rapidio.hdid=1,-1
I rebuilt the kernel to disable the the DMA Engine support and enabled the Freescale DMA support as indicated in the info center pdf.
Here is the output from my board
b4860qds login: root
root@b4860qds:~# insmod /usr/driver/IPC/single_rat/hetmgr.ko
[ 37.747732] Het Mgr 248 0
[ 37.750378] IPC: dsp_shared_size - 0x1000000
[ 37.754659] IPC: dsp_private_addr - 0x80000000
[ 37.759115] IPC: dsp_private_size - 0x7ff00000
[ 37.763570] IPC: shared_ctrl_addr - 0xfff00000
[ 37.768024] IPC: shared_ctrl_size - 0x100000
[ 37.772756] IPC: max_num_ipc_channels 64
[ 37.776778] IPC: max_channel_depth 16
root@b4860qds:~# insmod /usr/driver/IPC/single_rat/shm.ko
[ 42.809952] fsl_shm module installed successfully withmajor num : 247
root@b4860qds:~# insmod /usr/driver/IPC/single_rat/l1d.ko
[ 47.801536] fsl_l1d Major=246 Minor=0
root@b4860qds:~# mknod /dev/fsl_shm c 247 0
root@b4860qds:~# mknod /dev/het_mgr c 248 0
root@b4860qds:~# mknod /dev/fsl_l1d c 246 0
root@b4860qds:~# echo 0x10000000 > /proc/sys/kernel/shmmax
root@b4860qds:~# cd /ipc
root@b4860qds:/ipc# ./dsp_bt -h 0 -c 0 -i ipc_demo_b4860_singlemode_sc0.bin
===B4860QDS DSP boot Application (3.0.0) ===
SYSTEM MAP
DSP [ 72.438862] in func fsl_shm_get_paddr ret = (-14)
PrivArea: Addr=80000000 Size=7ff00000
Shared CtrlArea: Addr=fff00000 Size=100000
DSP Core0 M2: Addr=0 Size=0
DSP Core1 M2: Addr=0 Size=0
DSP M3: Addr=c40000000 Size=8000
PA CCSRBAR: Addr =ffe000000 Size=1000000
DSP CCSRBAR: Addr =ffe000000 Size=1000000
error in init_hugetlb frm pre_load_B4
root@b4860qds:/ipc#
Figured out the issue...
dsp_bt must be built using the 32bit toolchain not 64bit. The kernel and the 3 kernel modules will need to be in 64bit.... very inconvenient