This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HDVPSS Firmware loading and starting issue on EVM board with EZSDK 5.05_02_00

Other Parts Discussed in Thread: TVP7002

Hi ,

                 I am using Ezsdk 5.05.02.00 and compiled the entire ezsdk after installing the hdvpss code (I have not modified any part of the code and I am using it on EVM board) and it could generate the firm ware files ti814x_hdvpss_1G.xem3, ti814x_hdvpss_1G.xem3.map at location :/usr/local/ezsdk/component-sources/hdvpss_01_00_01_44/build/ti814x_hdvpss_1G/bin/ti814x-evm/.

When I am using these newly created files it is throwing the error

error log:

root@dm814x-evm:~# firmware_loader 2 new_firmware/ti814x_hdvpss_1G.xem3 start -m
map new_firmware/ti814x_hdvpss_1G.xem3.map -i2
FIRMWARE: I2cInit will be done by M3
FIRMWARE: memory map bin file: new_firmware/ti814x_hdvpss_1G.xem3.map
FIRMWARE: isI2cInitRequiredOnM3: 1
Firmware Loader debugging not configured
Default FL_DEBUG: warning
Allowed FL_DEBUG levels: error, warning, info, debug, log
MemCfg: DCMM (Dynamically Configurable Memory Map) Version :  2.1.2.1

 Invalid memory map used
FIRMWARE: Ipc_CONTROLCMD_STARTCALLBACK Error: ProcMgr status 0xffffffff
FIRMWARE: Could not start: -1

why this "invalid memory map used" error is coming up?

boot.cmd file content are as follows.

fatload mmc 0 0x81000000 ti_logo.bmp
bmp display 0x81000000
setenv bootargs 'console=ttyO0,115200n8 rootwait root=/dev/mmcblk0p2 rw mem=364M vmalloc=500M  notifyk.vpssm3_sva=0xBF900000 ip=off noinitrd'
fatload mmc 0 0x80009000 uImage
bootm 0x80009000

Please help to resolve the newly generated hdvpss firmware loading and starting issue.

Thanks,

Sudheer.

  • Hello,

    What you are using EVM or custom board?

    Are you observing problem whe you are loading dm814x_hdvpss.xem3?

    In EZSDK we have two VPSS firmwares.

    Have you tried to load it with slaveloader?

    BR

    Margarita

  • I am using EVM board.

    I am not facing any problem when I am loading the dm8148x_hdvpss.xem3 which is given default in the file system.

    I am facing problem when I am loading the ti814x_hdvpss_1G.xem3.map firmware which is generated newly.


    I could able to load the firmware using the slaveloader but after loading the firmware using slaveloader I am facing the problem in loading the vpss.ko file.

    you mean to say ti814x_hdvpss_1G.xem3.map and ti814x_hdvpss_512M.xem3.map.

    I have tried both and response is same for the both firmwares.

    Thanks,

    Sudheer.

  • Hello,

    sudheer singh1 said:
    you mean to say ti814x_hdvpss_1G.xem3.map and ti814x_hdvpss_512M.xem3.map.

    No. I mean

    sudheer singh1 said:
    dm8148x_hdvpss.xem3
      and
    sudheer singh1 said:
    ti814x_hdvpss_1G.xem3
    .

    EZSDK has different M3 firmware and utility to load M3 with PSP.

    ./slaveloader startup VPSS-M3 ti814x_hdvpss_1G.xem3 is the usage of PSP.

    EZSDK use the below command:

    ./firmware_loader 2 dm814x_hdvpss.xem3 start

    The HDVPSS binaries that present in the PSP package contain only the driver interfaces and not the full multimedia stack.

    BR

    Margarita

  • Hi Sudheer,
    You should not load this firmware from HDVPSS package as this has different memory map. If you have overlay package with you installed.
    Try building firmwares for hdvpss and video M3 as shown below
    make -f Overlay.Makefile omx
    This will build firmwares in

    /ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/omx-ti81xx-src_05_02_00_48/bin/dm814xbm/bin/ti814x-evm
    You need to copy these into targetfs as dm8148x_hdvpss.xem3 and dm814x_hdvicp.xem3.

    Ram
  • Hello,

    sudheer singh1 said:
    I could able to load the firmware using the slaveloader but after loading the firmware using slaveloader I am facing the problem in loading the vpss.ko file.

    Have you rebuilt the vpss.ko as well?

    BR

    Margarita

  • yes I have rebuilt vpss.ko.

    while inserting the vpss.ko with the following arguments
    insmod vpss.ko sbufaddr=0x8DE00000 mode=hdmi:1080p-60 i2c_mode=1


    when the sbufaddr = 0xBFB00000

    root@dm814x-evm:~/new_firmware# insmod vpss.ko sbufaddr=0xBFB00000 mode=hdmi:10
    80p-60 i2c_mode=1

    Vpss_probe is being calledcpu version 0x81400281
    notify_shm_drv_sendevent failed! status = 0xfffffff0
    notify_send_event failed! status = 0xfffffff0
    notify_shm_drv_sendevent failed! status = 0xfffffff0
    notify_send_event failed! status = 0xfffffff0
    notify_shm_drv_sendevent failed! status = 0xfffffff0
    notify_send_event failed! status = 0xfffffff0

    VPSS_CORE : Failed to init fvid2 interface,
    vpss: probe of vpss failed with error -22
    VPSS_CORE : failed to register ti81xx-vpss driver






    when I am changing the sbufaddr to 0x8DE00000 from 0xBFB00000

    error log:
    root@dm814x-evm:~/new_firmware# insmod vpss.ko sbufaddr=0x8DE00000 mode=hdmi:10
    80p-60 i2c_mode=1

    Vpss_probe is being calledcpu version 0x81400281
    BUG: Your driver calls ioremap() on system memory. This leads
    to architecturally unpredictable behaviour on ARMv6+, and ioremap()
    will fail in the next kernel release. Please fix your driver.
    ------------[ cut here ]------------
    WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x198()
    Modules linked in: vpss(+) syslink
    Backtrace:
    [<c0048f2c>] (dump_backtrace+0x0/0x110) from [<c03c7810>] (dump_stack+0x18/0x1c)
    r6:c0493ccc r5:000000d3 r4:00000000 r3:60000013
    [<c03c77f8>] (dump_stack+0x0/0x1c) from [<c006d444>] (warn_slowpath_common+0x54/0x6c)
    [<c006d3f0>] (warn_slowpath_common+0x0/0x6c) from [<c006d480>] (warn_slowpath_null+0x24/0x2c)
    r8:bf3522e4 r7:00000000 r6:00000000 r5:0008de00 r4:00200000
    r3:00000009
    [<c006d45c>] (warn_slowpath_null+0x0/0x2c) from [<c004cc0c>] (__arm_ioremap_pfn_caller+0x58/0x198)
    [<c004cbb4>] (__arm_ioremap_pfn_caller+0x0/0x198) from [<c004cdc8>] (__arm_ioremap_caller+0x5c/0x64)
    [<c004cd6c>] (__arm_ioremap_caller+0x0/0x64) from [<c005f198>] (omap_ioremap+0x60/0x64)
    r4:8de00000
    [<c005f138>] (omap_ioremap+0x0/0x64) from [<bf359414>] (vps_sbuf_init+0x11c/0x1d4 [vpss])
    r7:c052d120 r6:d0127c00 r5:00200000 r4:8de00000
    [<bf3592f8>] (vps_sbuf_init+0x0/0x1d4 [vpss]) from [<bf3430c8>] (vps_probe+0x64/0x190 [vpss])
    r8:00000000 r7:bf351dec r6:bf351dec r5:bf35227c r4:c052d120
    [<bf343064>] (vps_probe+0x0/0x190 [vpss]) from [<c021d074>] (platform_drv_probe+0x1c/0x20)
    r6:bf351dec r5:c052d15c r4:c052d128 r3:bf343064
    [<c021d058>] (platform_drv_probe+0x0/0x20) from [<c021c0e8>] (driver_probe_device+0xd0/0x18c)
    [<c021c018>] (driver_probe_device+0x0/0x18c) from [<c021c20c>] (__driver_attach+0x68/0x8c)
    r7:00000000 r6:bf351dec r5:c052d15c r4:c052d128
    [<c021c1a4>] (__driver_attach+0x0/0x8c) from [<c021b270>] (bus_for_each_dev+0x54/0x84)
    r6:00000000 r5:c021c1a4 r4:bf351dec r3:c021c1a4
    [<c021b21c>] (bus_for_each_dev+0x0/0x84) from [<c021bd80>] (driver_attach+0x20/0x28)
    r6:c0546dc8 r5:d37abb00 r4:bf351dec
    [<c021bd60>] (driver_attach+0x0/0x28) from [<c021b97c>] (bus_add_driver+0xb4/0x234)
    [<c021b8c8>] (bus_add_driver+0x0/0x234) from [<c021c66c>] (driver_register+0xb0/0x138)
    [<c021c5bc>] (driver_register+0x0/0x138) from [<c021d530>] (platform_driver_register+0x4c/0x60)
    [<c021d4e4>] (platform_driver_register+0x0/0x60) from [<c021d564>] (platform_driver_probe+0x20/0x70)
    [<c021d544>] (platform_driver_probe+0x0/0x70) from [<bf358054>] (vps_init+0x54/0x84 [vpss])
    r5:00000000 r4:bf352158
    [<bf358000>] (vps_init+0x0/0x84 [vpss]) from [<c003b4fc>] (do_one_initcall+0xc0/0x194)
    [<c003b43c>] (do_one_initcall+0x0/0x194) from [<c0097ee4>] (sys_init_module+0x1634/0x17f4)
    r8:00000001 r7:d0127f00 r6:00000001 r5:00000000 r4:bf352158
    [<c00968b0>] (sys_init_module+0x0/0x17f4) from [<c0045380>] (ret_fast_syscall+0x0/0x30)
    ---[ end trace d00bc29aac45382c ]---

    notify_shm_drv_sendevent failed! status = 0xfffffff0
    notify_send_event failed! status = 0xfffffff0
    notify_shm_drv_sendevent failed! status = 0xfffffff0
    notify_send_event failed! status = 0xfffffff0
    notify_shm_drv_sendevent failed! status = 0xfffffff0

    VPSS_CORE : Failed to init fvid2 interface,
    vpss: probe of vpss failed with error -22
    VPSS_CORE : failed to register ti81xx-vpss driver
    insmod: error inserting 'vpss.ko': -1 No such device




    Is there is any issue with sbufaddr as it is responding different for different address.


    Thanks,
    Sudheer.
  • Hello,

    I would recommend you to check here:

    Check your bootargs  notifyk.vpssm3_sva= is correct. You could check here :

    BR

    Margarita

  • Hi,
    How to compile the firmware_loader code in ezsdk folder?

    Thanks,
    Sudheer.
  • Hello,

    You could find the source code here: board-support/media-controller-utils_3_00_00_05/src and the makefile.

    BR

    Margarita

  • Hi,

                 With the help of slave loader I am able to load the firmware but when I am inserting the newly generated vpss.ko I am getting the error log as

    notify_send_event failed! status = 0xfffffff0
    notify_shm_drv_sendevent failed! status = 0xfffffff0
    notify_send_event failed! status = 0xfffffff0
    VPSS_CORE : Failed to init fvid2 interface,
    vpss: probe of vpss failed with error -22
    VPSS_CORE : failed to register ti81xx-vpss driver
    insmod: error inserting 'vpss.ko': -1 No such device

    is the issue with the firmware or the issue with the vpss.ko

    if the issue is with vpss.ko, I think there is some issue with address which is available with vpss.ko which is related to hdvpss firmware, If so how to modify the address related stuff in the Linux vpss driver code.

    In some of the links they ware mentioning the changes in u-boot which I have already done and some changes in firmware_loader which I am not using now and in boot args "mem=176M " is used right now.


    I have gone through the multiple links related to the firmware loading issue and I dint find any ware about the Linux vpss code related modifications.

    Please help to resolve the issue asap.

    Thanks,

    Sudheer.

  • Hi ,
    For 1G and 512MB hdvpss firmwares, below are the notifyk.vpssm3_sva and sbufaddr values

    VPSS-M3 Firmware Notify Buffer Default Value(notifyk.vpssm3_sva) Sharing Buffer Default Value(sbufaddr)
    ti814x_hdvpss_512M.xem3 0x8DB00000 0x8DE00000
    ti814x_hdvpss_1G.xem3 0xA0000000 0xA0200000

    I have tried with both the firmware and the corresponding changes in u-boot and boot arguments, but it are not giving the proper response.

    The new firmware generated is the proxyServer. Will this be any cause for the notify issue in vpss driver?


    Thanks,
    Sudheer.
  • Hi,

                  In the default file system at location "/usr/share/ti/ti-media-controller-utils"  there are set of files (prebuilt-images) i.e

    1.   dm814x_hdvpss.xem3  

    2.   dm814x_hdvpss_v4l2.xem3


    Would you please let me know what is the difference between these two firmwares.

    Thanks,

    Sudheer.


                    

  • Hello,

    dm814x_hdvpss.xem3:
    - This is use for OpenMax application. So user will use their application is OpenMax interface.
    * Display driver is controlled by A8 with OpenMax from user. Does not support V4L2.
    * Capture driver is controlled by A8 with OpenMax from user. Does not support V4L2.
    - This can NOT be used to use I2C from A8 during HDVPSS driver is working.
    - The feature is same as dm816x_hdvpss_v4l2_xem3 without I2C control.


    dm814x_hdvpss_v4l2_xem3:
    - This is use for V4L2 application. So user will use their application is V4L2 interface.
    * Display driver is controlled by A8 with V4L2. Does not support OpenMax.
    * Capture driver is controlled by A8 with V4L2. Does not support OpenMax.
    - This can be used to use I2C from A8 during HDVPSS driver is working.
    - The feature is same as dm816x_hdvpss_xem3 without I2C control

    BR
    Margarita
  • Hi Margarita,
    Thanks for quick response, now my concern is with the newly generated firmwares which is located at "/usr/local/ezsdk/component-sources/hdvpss_01_00_01_44/build/ti814x_hdvpss_1G/bin/ti814x-evm" in EZSDK i.e. "ti814x_hdvpss_1G.xem3", is this use for V4L2 application or OpenMax application?

    Pleas let me know if we has to use for V4L2 application what will be my firmware file and where will it be generated.


    Thanks,
    Sudheer.
  • Hello,

    sudheer singh1 said:
    Pleas let me know if we has to use for V4L2 application what will be my firmware file and where will it be generated.

    What is your use case?

    As Ram Prasad said the dm814x_hdvpss.xem3 could be build by make -f Overlay.Makefile all, in case that you have the overlay package. The v4l2 firmware could be build the same way as the make -f Overlay.Makefile all.

    The ti814x_hdvpss_1G.xem3 is the usage of PSP and it has a different memory map.

    BR

    Margarita

  • Hi,
    We used to use the prebuilt dm814x_hdvpss_v4l2_xem3 firmware and v4l2 application. Now we have changed the decoder chip, for that we want to modify the v4l2 firmware.

    For that we have initially not modified the code and just compiled with the command "make -f Overlay.Makefile all" and generated the ti814x_hdvpss_1G.xem3.

    For omx there is separate folder in ezsdk i.e.
    /usr/local/ezsdk/component-sources/omx-ti81xx-src_05_02_00_48

    I am expecting that newly generated ti8148x_hdvpss_1G.xem3 firmware is similar to dm814x_hdvpss_v4l2.xem3, is this true?


    Thanks,
    Sudheer.
  • Hello,

    sudheer singh1 said:
    Now we have changed the decoder chip, for that we want to modify the v4l2 firmware.

    You want to change the external decoder tvp7002 to other one, correct?

    If you will use the v4l2 capture driver you should follow this user guide to add the new external decoder:

    In this case there is no need to rebuild the dm814x_hdvpss_v4l2_xem3 firmware.

    But if you are planning to rebuild it, notice that the overlay package is under NDA and can not be discuss here.

    BR
    Margarita