Hi,
This case is following the old case https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1029131/tda4vm-how-to-disalbe-auto-boot-to-boot-core0-and-core1-from-userspace-in-that-order/3806064?tisearch=e2e-sitesearch&keymatch=%20user%3A478089#3806064.
We hope to start the SRV application as early as possible. The SRV depends on the main r5f0_0, According to the source code , the r5f0_0 boot up by k3_r5_rproc_start who called by rproc firmwork.
Below is our startup timeline:
0s :start kernel
0.9s : systemd[1]: Starting Coldplug All udev Devices...
1.3s :k3-dsp-rproc and k3_r5_rproc
1.6 :remote processor 5c00000.r5f is now up
1.9 :virtio_rpmsg_bus virtio3: creating channel rpmsg-kdrv addr 0x1a
3.6 :virtio_rpmsg_bus virtio3: creating channel ti.ipc4.ping-pong addr 0xe
virtio3 is for r5f0_1 5c00000.r5f .
The fw of r5f0_0 and r5f0_1 are loaded in uboot by ipc-only mode, the c66 c71 dsp fw are loaded by remoteproc driver in remoteproc mode.
Our linux do init with systemd, please give us some suggestions about:
1. could we start r5 in uboot to save time ?
2. how to boot r5 as early as possible in kernel?
Thanks.
The following the our dmesg log:
[2021-08-31 10:59:34.526] [ 0.309486] Run /sbin/init as init process [2021-08-31 10:59:34.567] [ 0.427866] systemd[1]: System time before build time, advancing clock. [2021-08-31 10:59:34.567] [ 0.458901] NET: Registered protocol family 10 [2021-08-31 10:59:34.567] [ 0.459262] Segment Routing with IPv6 [2021-08-31 10:59:34.567] [ 0.471653] systemd[1]: systemd 246 running in system mode. (-PAM -AUDIT -SELINUX -IMA -APPARMOR -SMACK -SYSVINIT -UTMP -LIBCRYPTSETUP +GCRYPT +GNUTLS -ACL +XZ -L) [2021-08-31 10:59:34.568] [ 0.471819] systemd[1]: Detected architecture arm64. [2021-08-31 10:59:34.610] [ 0.509922] systemd[1]: Set hostname to <buildroot>. [2021-08-31 10:59:34.610] [ 0.578604] systemd[1]: multi-user.target: Wants dependency dropin /etc/systemd/system/multi-user.target.wants/daemon_watch.service_original is not a symlink, ign. [2021-08-31 10:59:34.611] [ 0.594425] systemd[1]: sysinit.target: Wants dependency dropin /etc/systemd/system/sysinit.target.wants/daemon_watch.service is not a symlink, ignoring. [2021-08-31 10:59:34.612] [ 0.630805] systemd[1]: Configuration file /etc/systemd/system/daemon_watch.service is marked executable. Please remove executable permission bits. Proceeding any. [2021-08-31 10:59:34.653] [ 0.631153] systemd[1]: /etc/systemd/system/daemon_watch.service:10: Support for option SysVStartPriority= has been removed and it is ignored [2021-08-31 10:59:34.654] [ 0.631339] systemd[1]: Configuration file /etc/systemd/system/boot_test.service is marked executable. Please remove executable permission bits. Proceeding anyway. [2021-08-31 10:59:34.655] [ 0.631344] systemd[1]: Configuration file /etc/systemd/system/boot_test.service is marked world-writable. Please remove world writability permission bits. Procee. [2021-08-31 10:59:34.696] [ 0.631696] systemd[1]: /etc/systemd/system/boot_test.service:12: Support for option SysVStartPriority= has been removed and it is ignored [2021-08-31 10:59:34.697] [ 0.639800] systemd[1]: Queued start job for default target Multi-User System. [2021-08-31 10:59:34.697] [ 0.640155] random: systemd: uninitialized urandom read (16 bytes read) [2021-08-31 10:59:34.698] [ 0.640213] systemd[1]: system-serial\x2dgetty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling. [2021-08-31 10:59:34.739] [ 0.640217] systemd[1]: (This warning is only shown for the first unit using IP firewalling.) [2021-08-31 10:59:34.740] [ 0.641393] systemd[1]: Created slice system-serial\x2dgetty.slice. [2021-08-31 10:59:34.740] [ 0.653617] random: systemd: uninitialized urandom read (16 bytes read) [2021-08-31 10:59:34.740] [ 0.653706] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [2021-08-31 10:59:34.741] [ 0.669519] random: systemd: uninitialized urandom read (16 bytes read) [2021-08-31 10:59:34.741] [ 0.669591] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [2021-08-31 10:59:34.782] [ 0.685623] systemd[1]: Reached target Paths. [2021-08-31 10:59:34.782] [ 0.697528] systemd[1]: Reached target Remote File Systems. [2021-08-31 10:59:34.783] [ 0.709520] systemd[1]: Reached target Slices. [2021-08-31 10:59:34.783] [ 0.721533] systemd[1]: Reached target Swap. [2021-08-31 10:59:34.783] [ 0.733748] systemd[1]: Listening on Syslog Socket. [2021-08-31 10:59:34.784] [ 0.751160] systemd[1]: Condition check resulted in Journal Audit Socket being skipped. [2021-08-31 10:59:34.784] [ 0.751499] systemd[1]: Listening on Journal Socket (/dev/log). [2021-08-31 10:59:34.784] [ 0.761732] systemd[1]: Listening on Journal Socket. [2021-08-31 10:59:34.825] [ 0.773752] systemd[1]: Listening on udev Control Socket. [2021-08-31 10:59:34.825] [ 0.785659] systemd[1]: Listening on udev Kernel Socket. [2021-08-31 10:59:34.826] [ 0.799298] systemd[1]: Mounting Huge Pages File System... [2021-08-31 10:59:34.826] [ 0.815478] systemd[1]: Mounting POSIX Message Queue File System... [2021-08-31 10:59:34.826] [ 0.831649] systemd[1]: Mounting Kernel Debug File System... [2021-08-31 10:59:34.827] [ 0.841758] systemd[1]: Condition check resulted in Kernel Trace File System being skipped. [2021-08-31 10:59:34.827] [ 0.844482] systemd[1]: Mounting Temporary Directory (/tmp)... [2021-08-31 10:59:34.868] [ 0.853962] systemd[1]: Condition check resulted in /opt/gaia/test_boot_performance.sh Compatibility being skipped. [2021-08-31 10:59:34.869] [ 0.855963] systemd[1]: Starting Create list of static device nodes for the current kernel... [2021-08-31 10:59:34.869] [ 0.875956] systemd[1]: Starting Journal Service... [2021-08-31 10:59:34.870] [ 0.896523] systemd[1]: Starting Load Kernel Modules... [2021-08-31 10:59:34.870] [ 0.911529] systemd[1]: Starting Remount Root and Kernel File Systems... [2021-08-31 10:59:34.870] [ 0.924168] systemd[1]: Starting Coldplug All udev Devices... [2021-08-31 10:59:34.871] [ 0.936080] systemd[1]: Started Journal Service. [2021-08-31 10:59:34.911] [ 1.321959] k3-dsp-rproc 4d80800000.dsp: assigned reserved memory node c66-dma-memory@a7000000 [2021-08-31 10:59:34.912] [ 1.322166] k3-dsp-rproc 4d80800000.dsp: configured DSP for remoteproc mode [2021-08-31 10:59:34.912] [ 1.322330] remoteproc remoteproc0: 4d80800000.dsp is available [2021-08-31 10:59:34.913] [ 1.323021] k3-dsp-rproc 4d81800000.dsp: assigned reserved memory node c66-dma-memory@a6000000 [2021-08-31 10:59:34.913] [ 1.323260] k3-dsp-rproc 4d81800000.dsp: configured DSP for remoteproc mode [2021-08-31 10:59:34.914] [ 1.323434] remoteproc remoteproc1: 4d81800000.dsp is available [2021-08-31 10:59:34.954] [ 1.323927] k3-dsp-rproc 64800000.dsp: assigned reserved memory node c71-dma-memory@a8000000 [2021-08-31 10:59:34.955] [ 1.324198] k3-dsp-rproc 64800000.dsp: configured DSP for remoteproc mode [2021-08-31 10:59:34.955] [ 1.324253] remoteproc remoteproc2: 64800000.dsp is available [2021-08-31 10:59:34.956] [ 1.380577] remoteproc remoteproc0: powering up 4d80800000.dsp [2021-08-31 10:59:34.956] [ 1.380590] remoteproc remoteproc0: Booting fw image j7-c66_0-fw, size 2590432 [2021-08-31 10:59:34.956] [ 1.382238] k3-dsp-rproc 4d80800000.dsp: booting DSP core using boot addr = 0xa6200000 [2021-08-31 10:59:34.997] [ 1.382687] remoteproc0#vdev0buffer: assigned reserved memory node c66-dma-memory@a7000000 [2021-08-31 10:59:34.998] [ 1.382764] remoteproc0#vdev0buffer: registered virtio0 (type 7) [2021-08-31 10:59:34.998] [ 1.382768] remoteproc remoteproc0: remote processor 4d80800000.dsp is now up [2021-08-31 10:59:34.999] [ 1.384241] platform 41000000.r5f: ti-sci processor request failed: -19 [2021-08-31 10:59:34.999] [ 1.384246] platform 41000000.r5f: ti_sci_proc_request failed, ret = -19 [2021-08-31 10:59:34.999] [ 1.384262] k3_r5_rproc bus@100000:bus@28380000:r5fss@41000000: k3_r5_core_of_init failed, ret = -19 [2021-08-31 10:59:35.040] [ 1.384265] k3_r5_rproc bus@100000:bus@28380000:r5fss@41000000: k3_r5_cluster_of_init failed, ret = -19 [2021-08-31 10:59:35.041] [ 1.386376] platform 5c00000.r5f: configured R5F for IPC-only mode [2021-08-31 10:59:35.041] [ 1.386824] platform 5c00000.r5f: assigned reserved memory node vision_apps-r5f-dma-memory@a1000000 [2021-08-31 10:59:35.042] [ 1.392486] remoteproc remoteproc3: 5c00000.r5f is available [2021-08-31 10:59:35.042] [ 1.406577] platform 5d00000.r5f: configured R5F for IPC-only mode [2021-08-31 10:59:35.042] [ 1.406614] platform 5d00000.r5f: assigned reserved memory node r5f-dma-memory@a3000000 [2021-08-31 10:59:35.083] [ 1.406708] remoteproc remoteproc4: 5d00000.r5f is available [2021-08-31 10:59:35.084] [ 1.407737] remoteproc remoteproc1: powering up 4d81800000.dsp [2021-08-31 10:59:35.084] [ 1.407747] remoteproc remoteproc1: Booting fw image j7-c66_1-fw, size 2590432 [2021-08-31 10:59:35.085] [ 1.409280] k3-dsp-rproc 4d81800000.dsp: booting DSP core using boot addr = 0xa7200000 [2021-08-31 10:59:35.085] [ 1.409715] remoteproc1#vdev0buffer: assigned reserved memory node c66-dma-memory@a6000000 [2021-08-31 10:59:35.086] [ 1.409786] remoteproc1#vdev0buffer: registered virtio1 (type 7) [2021-08-31 10:59:35.126] [ 1.409790] remoteproc remoteproc1: remote processor 4d81800000.dsp is now up [2021-08-31 10:59:35.127] [ 1.535293] remoteproc remoteproc4: powering up 5d00000.r5f [2021-08-31 10:59:35.127] [ 1.535303] remoteproc remoteproc4: Booting fw image j7-main-r5f0_1-fw, size 1923072 [2021-08-31 10:59:35.128] [ 1.535434] platform 5d00000.r5f: R5F core initialized in IPC-only mode [2021-08-31 10:59:35.128] [ 1.535443] remoteproc4#vdev0buffer: assigned reserved memory node r5f-dma-memory@a3000000 [2021-08-31 10:59:35.128] [ 1.535492] remoteproc4#vdev0buffer: registered virtio2 (type 7) [2021-08-31 10:59:35.169] [ 1.535495] remoteproc remoteproc4: remote processor 5d00000.r5f is now up [2021-08-31 10:59:35.170] [ 1.585175] virtio_rpmsg_bus virtio0: rpmsg host is online [2021-08-31 10:59:35.170] [ 1.585639] virtio_rpmsg_bus virtio1: rpmsg host is online [2021-08-31 10:59:35.170] [ 1.586040] virtio_rpmsg_bus virtio2: rpmsg host is online [2021-08-31 10:59:35.171] [ 1.591650] virtio_rpmsg_bus virtio0: creating channel rpmsg_chrdev addr 0xd [2021-08-31 10:59:35.171] [ 1.592317] virtio_rpmsg_bus virtio1: creating channel rpmsg_chrdev addr 0xd [2021-08-31 10:59:35.171] [ 1.592578] virtio_rpmsg_bus virtio2: creating channel rpmsg_chrdev addr 0xd [2021-08-31 10:59:35.212] [ 1.597199] remoteproc remoteproc3: powering up 5c00000.r5f [2021-08-31 10:59:35.213] [ 1.597210] remoteproc remoteproc3: Booting fw image j7-main-r5f0_0-fw, size 4712792 [2021-08-31 10:59:35.213] [ 1.597318] platform 5c00000.r5f: R5F core initialized in IPC-only mode [2021-08-31 10:59:35.214] [ 1.597326] remoteproc3#vdev0buffer: assigned reserved memory node vision_apps-r5f-dma-memory@a1000000 [2021-08-31 10:59:35.214] [ 1.597821] virtio_rpmsg_bus virtio3: rpmsg host is online [2021-08-31 10:59:35.215] [ 1.597852] remoteproc3#vdev0buffer: registered virtio3 (type 7) [2021-08-31 10:59:35.255] [ 1.597856] remoteproc remoteproc3: remote processor 5c00000.r5f is now up [2021-08-31 10:59:35.256] [ 1.603365] virtio_rpmsg_bus virtio3: creating channel rpmsg_chrdev addr 0xd [2021-08-31 10:59:35.256] [ 1.675309] omap_rng 4e10000.rng: Random Number Generator ver. 241b34c [2021-08-31 10:59:35.256] [ 1.675776] random: crng init done [2021-08-31 10:59:35.256] [ 1.675780] random: 7 urandom warning(s) missed due to ratelimiting [2021-08-31 10:59:35.257] [ 1.757987] remoteproc remoteproc2: powering up 64800000.dsp [2021-08-31 10:59:35.257] [ 1.757998] remoteproc remoteproc2: Booting fw image j7-c71_0-fw, size 12473064 [2021-08-31 10:59:35.298] [ 1.761236] k3-dsp-rproc 64800000.dsp: booting DSP core using boot addr = 0xa8200000 [2021-08-31 10:59:35.299] [ 1.762656] remoteproc2#vdev0buffer: assigned reserved memory node c71-dma-memory@a8000000 [2021-08-31 10:59:35.299] [ 1.763120] virtio_rpmsg_bus virtio4: rpmsg host is online [2021-08-31 10:59:35.299] [ 1.763214] remoteproc2#vdev0buffer: registered virtio4 (type 7) [2021-08-31 10:59:35.300] [ 1.763218] remoteproc remoteproc2: remote processor 64800000.dsp is now up [2021-08-31 10:59:35.300] [ 1.793281] virtio_rpmsg_bus virtio4: creating channel rpmsg_chrdev addr 0xd [2021-08-31 10:59:35.301] [ 1.793543] virtio_rpmsg_bus virtio0: creating channel rpmsg_chrdev addr 0x15 [2021-08-31 10:59:35.342] [ 1.793661] virtio_rpmsg_bus virtio1: creating channel rpmsg_chrdev addr 0x15 [2021-08-31 10:59:35.342] [ 1.793952] virtio_rpmsg_bus virtio3: creating channel rpmsg_chrdev addr 0x15 [2021-08-31 10:59:35.342] [ 1.794128] virtio_rpmsg_bus virtio2: creating channel rpmsg_chrdev addr 0x15 [2021-08-31 10:59:35.343] [ 1.794277] virtio_rpmsg_bus virtio4: creating channel rpmsg_chrdev addr 0x15 [2021-08-31 10:59:35.343] [ 1.794832] virtio_rpmsg_bus virtio4: creating channel ti.ipc4.ping-pong addr 0xe [2021-08-31 10:59:35.344] [ 1.809514] virtio_rpmsg_bus virtio0: creating channel ti.ipc4.ping-pong addr 0xe [2021-08-31 10:59:35.385] [ 1.809619] virtio_rpmsg_bus virtio1: creating channel ti.ipc4.ping-pong addr 0xe [2021-08-31 10:59:35.385] [ 1.875052] virtio_rpmsg_bus virtio2: creating channel ti.ipc4.ping-pong addr 0xe [2021-08-31 10:59:35.386] [ 1.975669] virtio_rpmsg_bus virtio3: creating channel ti.ethfw.notifyservice addr 0x1e [2021-08-31 10:59:35.386] [ 1.976845] virtio_rpmsg_bus virtio3: creating channel rpmsg-kdrv addr 0x1a [2021-08-31 10:59:35.386] [ 1.978102] rpmsg-kdrv-eth-switch rpmsg-kdrv-2-mpu_1_0_ethswitch-device-0: Device info: permissions: 07FFFFFF uart_id: 6 [2021-08-31 10:59:35.428] [ 1.978108] rpmsg-kdrv-eth-switch rpmsg-kdrv-2-mpu_1_0_ethswitch-device-0: FW ver 0.1 (rev 1) 26/Aug/2021 SHA:25c3a738 [2021-08-31 10:59:35.428] [ 1.986836] j721e-cpsw-virt-mac main_r5fss_cpsw9g_virt_mac0: virt_cpsw_nuss mac loaded [2021-08-31 10:59:35.429] [ 1.986843] j721e-cpsw-virt-mac main_r5fss_cpsw9g_virt_mac0: rdev_features:00000003 rdev_mtu:1522 flow_id:172 tx_psil_dst_id:4A00 [2021-08-31 10:59:35.429] [ 1.986847] j721e-cpsw-virt-mac main_r5fss_cpsw9g_virt_mac0: local_mac_addr:00:00:00:00:00:00 rdev_mac_addr:70:ff:76:1d:92:c1