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.

TDA2EXEVM: usecase start issue

Part Number: TDA2EXEVM

Hi,

We are using tda2ex evm board with vision sdk 2.12.

We are trying boot time optimization. 

1. If i pass below bootargs usecase working file 

console=ttyS0,115200n8 root=PARTUUID=251de8a6-02 rw elevator=noop lpj=61475 rootfstype=ext4 rootwait

2. For kernel message suppress i use below bootargs but usecase doesn't start its keeps on wait for ipc init

console=ttyS0,115200n8 root=PARTUUID=251de8a6-02 rw elevator=noop loglevel=4 lpj=61475 rootfstype=ext4 rootwait

log:

Starting kernel ...

Reserved memory: regions without no-map are not yet supported
Reserved memory: regions without no-map are not yet supported
omap_hsmmc 480d1000.mmc: no pinctrl state for hs mode
omap_voltage_late_init: Voltage driver support not added

Welcome to Arago 2016.08!

[ OK ] Listening on Syslog Socket.
[ OK ] Listening on /dev/initctl Compatibility Named Pipe.
[ OK ] Listening on Journal Socket (/dev/log).
[ OK ] Started Dispatch Password Requests to Console Directory Watch.
[ OK ] Reached target Swap.
[ OK ] Created slice System Slice.
[ OK ] Created slice system-serial\x2dgetty.slice.
[ OK ] Reached target Slices.
[ OK ] Started Forward Password Requests to Wall Directory Watch.
[ OK ] Reached target Paths.
[ OK ] Listening on udev Control Socket.
[ OK ] Listening on udev Kernel Socket.
[ OK ] Listening on Journal Socket.
Starting Apply Kernel Variables...
Starting Journal Service...
Starting udev Kernel Device Manager...
Starting Create list of required st... nodes for the current kernel...
Starting Remount Root and Kernel File Systems...
[ OK ] Listening on Network Service Netlink Socket.
[ OK ] Started Apply Kernel Variables.
[ OK ] Started Create list of required sta...ce nodes for the current kernel.
[ OK ] Started Remount Root and Kernel File Systems.
[ OK ] Started Journal Service.
[ OK ] Started udev Kernel Device Manager.
Starting udev Coldplug all Devices...
Starting Load/Save Random Seed...
Starting Flush Journal to Persistent Storage...
[ OK ] Reached target Local File Systems (Pre).
[ OK ] Reached target Local File Systems.
[ OK ] Started Load/Save Random Seed.
[ OK ] Started Flush Journal to Persistent Storage.
Starting Create Volatile Files and Directories...
[ OK ] Started Create Volatile Files and Directories.
Starting Network Time Synchronization...
[ OK ] Started Network Time Synchronization.
[ OK ] Reached target System Time Synchronized.
Starting Synchronize System and HW clocks...
[ OK ] Started Synchronize System and HW clocks.
[ OK ] Started udev Coldplug all Devices.
[ OK ] Reached target System Initialization.
[ OK ] Listening on dropbear.socket.
[ OK ] Listening on D-Bus System Message Bus Socket.
[ OK ] Started Daily Cleanup of Temporary Directories.
[ OK ] Reached target Timers.
[ OK ] Listening on RPCbind Server Activation Socket.
[ OK ] Reached target Sockets.
[ OK ] Reached target Basic System.
Starting tiipclad-daemon.service...
[ OK ] Started strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf.
[ OK ] Started System Logging Service.
[ OK ] Started D-Bus System Message Bus.
Starting Network Service...
[ OK ] Started Kernel Logging Service.
[ OK ] Started tiipclad-daemon.service.
[ OK ] Found device /dev/ttyS0.
[ OK ] Started Network Service.
[ OK ] Reached target Network.
Starting Network Name Resolution...
[ OK ] Started Serial Getty on ttyS0.
[ OK ] Reached target Login Prompts.
Starting alignment.service...
[ OK ] Started Network Name Resolution.
Arago Project http://arago-project.org dra7xx-evm ttyS0
Arago 2016.08 dra7xx-evm ttyS0
[ OK ] Started alignment.service.
dra7xx-evm login: root (automatic login)
Last login: Wed Aug 23 15:21:44 UTC 2017 on ttyS0
[ OK ] Reached target Sound Card.
[ OK ] Reached target Multi-User System.

root@dra7xx-evm:~#./vision_sdk_load.sh
root@dra7xx-evm:~#./vision_sdk_linux_demo.out
[HOST] OSA: MEM: 0: Mapped 0xa0100000 to 0xb6927000 of size 0x00100000
[HOST] OSA: MEM: 1: Mapped 0x84203000 to 0xa6f27000 of size 0x0fa00000
[HOST] OSA: MEM: 2: Mapped 0xa0200000 to 0xa6e67000 of size 0x00040000
[HOST] OSA: MEM: 3: Mapped 0xa02c0000 to 0xa6ea7000 of size 0x00080000
[HOST] OSA: HOST Remote Log Shared Memory @ 0xa024f140
[HOST] OSA: IPU2 Remote Log Shared Memory @ 0xa0363da0
[HOST] [HOST ] 21.294149 s: SYSTEM: System A15 Init in progress !!!

 some times socket bind failed.

Why kernel log suppression making problem in usecase init?

3. Have any doc for  systemd boot time optimization ?

My boot time

Startup finished in 1.552s (kernel) + 18.187s (userspace) = 19.740s.

Regards,

RAJ M 

  • Hi,

    The questions is raised to an expert.

    Best regards
    Lucy
  • Hello,

    Reducing loglevel means the kernel would boot faster.
    This clearly indicates some kind of race situation between Linux and BIOS
    These type of issues might be really hard to debug. So be prepared.

    First thing you can do is to try to root cause the symptoms.
    * Rebuild vision SDK with PROFILE_a15=debug and run gdb to find out what exactly is failng in IPC
    * Check if the /dev/rpmsg device is present in the failure case
    * Find out the state of remote core when the connection failures (Connect CCS and dump backtrace)
  • Hello,

    We are following the below guide for boot time optimization

    Linux Boot Time Optimizations on DRA7xx Devices\^J.pdf

    So its already tested tda2ex-evm right?

    As per our debug below function keeps on waiting for remote core confirm init status.
    vi vision_sdk/hlos/src/system/system_common.c
    System_waitAppInitComplete()

    while(1)
    {
    RemoteLog_getAppInitState(procId, &state);
    if (state == CORE_APP_INITSTATUS_CONFIRM_INIT_DONE)
    {
    initDone[procId] = TRUE;
    }
    }

    Regards,
    RAJ M
  • Hi ,

    * Check if the /dev/rpmsg device is present in the failure case

    For success case also /dev/rpmsg not created.

    kindly provide suggestion to solve this. 

    BR

    RAJ M

  • Hello Raj M

    The boot optimizations are validated standalone.
    You are trying to load vision SDK with it.
    Note that there are multiple dependencies between Linux and BIOS and all of it needs to co ordinate properly.

    I see that by reducing loglevel, some code is executing earlier and causing some race condition.
    Connect CCS and identify at what point the IPU and A15 code is stuck.

    According to you if A15 is stuck for AppInit, check why the state is not updated.
    Do you see remote cores booted up fully??
    Check the dmesg log for details on remoteproc Linux driver.


    Nikhil D