ISP Linux Driver [2025.1]

ISP Linux Driver [2025.1]

1. ISP Linux Software Stack

  • ISP software stack:
    The existing Versal AI Edge Series Gen 2 ISP software stack is distributed between an APU (A78) running Linux in SMP mode and multiple RPUs (R52) running FreeRTOS in AMP mode. Communication and synchronization between these diverse operating systems is achieved through lightweight mailbox communication using Inter Processor Interrupts (IPI). The APU acts as a master, orchestrating multiple RPUs, managing the image pipeline, allocating buffers, and forwarding them to subsequent processing stages.

    image-20250527-073845.png
  • APU software stack:
    The existing framework involves a software package consisting of ISP Linux v4l2 out of tree driver modules, a mailbox driver and a proprietary user space application called media server.

    image-20250527-073718.png
  • Application:

    • GStreamer or any v4l2-video test application will send requests to the video driver to launch ISP video pipelines.

  • Media server:

    • Media server is a daemon application that listens for ISP subdev events, parses the ISP filter configuration files, and communicates the configuration settings to the RPU firmware.

    • To run the pipeline, the media server parses the ISP pipeline filter configuration files and communicates the configuration settings to the RPU.

    • The subdev driver uses the Media server to offload the process for configuring the ISP filters.

  • Kernel drivers:

    • The ISP Linux driver consists of a mailbox driver, ISP subdev driver and video driver.

    • The subdev and video drivers communicate through entity operations.

    • Both subdev and video drivers communicate with the RPU through the mailbox driver.

  • ISP operating modes

    1. Non-MCM mode (MIMO I/O type):

      • When ISP is configured in Memory In Memory Out (MIMO) I/O type, it takes raw image files as an input and produces output through the primary output.

        image-20250606-131355.png

         

    2. Non-MCM mode (LIMO and LILO I/O types):

      • When ISP is configured in Live In Memory Out (LIMO) and Live In Live out (LILO) I/O types, ISP will get single live streaming bayer input data from the sensor through the MIPI interface and converts it into raw output formats (RGB/YUV).

      • In the case of LIMO, ISP Internal DMA will be used to write the output frame to DDR.

      • In the case of LILO, ISP streaming output is fed to the FrameBufferWrite DMA through the output bus adapter (OBA).

        image (4).png

         

      • The v4l2 application will use the videoX nodes to communicate with the video driver.

      • The video driver will further communicate with the subdev driver, which sends commands to the RPU firmware through the mailbox to establish and maintain ISP pipelines.

    3. MCM mode:

      • In MCM mode, each ISP tile can have a maximum of 4 live input streams for ISP0 and 2 live input streams for ISP1.

      • For an input stream, there will be an associated port as part of the subdev.

      • Each port will have a maximum of 2 video outputs.

        image-20250606-131454.png

         

2. Yocto Build and Image Generation Guide

2.1 Pre-requisites

  1. Set up the Yocto build environment as described in the Yocto Project build setup instructions for EDF wiki page.

  2. Perform steps 1-4 in EDF Linux disk image build using a prebuilt Yocto Project machine to add the meta-xilinx-restricted-VEK385 layer to the build.

2.2 Generate ISP SDT Files

Use the SDTGEN tool to generate the System Device Tree (SDT) files required for building the device tree with custom ISP hardware configurations.

Step-by-Step Instructions:

  1. Source the Vivado environment (use a different terminal).

    source <vivado_2025.1_path>/installs/lin64/2025.1/Vivado/settings64.sh
  2. Run the sdtgen command, which launches an sdtgen console. Follow the below steps on the console to generate dt artifacts.

    sdtgen% sdtgen sdtgen% set_dt_param -dir <out directory> -xsa <path-to-xsa> -board_dts versal2-vek385-revA For example: set_dt_param -dir sdt_out -xsa 3tile_mcm.xsa -board_dts versal2-vek385-revA
    sdtgen% generate_sdt
    sdtgen% exit
    1. sdt_out folder is created with ISP device-tree source files.

2.3 Generate Machine Configuration

  1. After SDT generation, run the gen-machineconf tool to provide ISP device-tree source files as an input to the Yocto project with a custom gen-machine name.

    gen-machineconf parse-sdt --hw-description <above created sdtgen folder> -c conf -l conf/local.conf -g full --machine-name <machine-name> example: gen-machineconf parse-sdt --hw-description sdt_out -c conf -l conf/local.conf -g full --machine-name vek385-mimo-machine

Pass a custom machine-name in the gen-machine conf command. This name will be used in subsequent steps for generating boot.bin.

2.4 Customize Device Tree for ISP Linux Driver

  1. Create an isp_rproc6_remoteproc.dtsi file in the below location to add the required changes.

    vim sources/meta-xilinx-restricted-vek385/recipes-bsp/device-tree/files/isp_rproc6_remoteproc.dtsi
  2. Copy and Paste the following content to isp_rproc6_remoteproc.dtsi required by the ISP Linux driver.

    / { reserved-memory { rproc6: rproc6@0c000000 { no-map; reg = <0x00 0x0c000000 0x00 0x05126000>; }; }; remoteproc@ebac0000 { compatible = "xlnx,versal-net-r52fss"; #address-cells = <0x02>; #size-cells = <0x02>; xlnx,cluster-mode = <0x00>; ranges = <0x06 0x00 0x00 0xebb80000 0x00 0x10000 0x06 0x10000 0x00 0xebb90000 0x00 0x8000 0x06 0x18000 0x00 0xebba0000 0x00 0x8000 0x07 0x00 0x00 0xebbc0000 0x00 0x10000 0x07 0x10000 0x00 0xebbd0000 0x00 0x8000 0x07 0x18000 0x00 0xebbe0000 0x00 0x8000>; r52f@6 { compatible = "xlnx,versal2-r52f"; power-domains = <&versal2_firmware 0x181100f3 &versal2_firmware 0x18318106 &versal2_firmware 0x18318107 &versal2_firmware 0x18318108>; reg = <0x06 0x00 0x00 0x10000 0x06 0x10000 0x00 0x8000 0x06 0x18000 0x00 0x8000>; reg-names = "r52_0d_atcm_global@ebb80000\0r52_0d_btcm_global@ebb90000\0r52_0d_ctcm_global@ebba0000"; memory-region = <&rproc6>; }; }; };
  3. Add the created isp_rproc6_remoteproc.dtsi file to the following .bbappend file:

    vim sources/meta-xilinx-restricted-vek385/recipes-bsp/device-tree/device-tree.bbappend
    • For example: the above device-tree.bbappend contains the following text:

      FILESEXTRAPATHS:prepend:<vek385-mimo-machine>:linux := "${THISDIR}/files:" EXTRA_DT_INCLUDE_FILES:append:<vek385-mimo-machine>:linux = " versal-2ve-2vm-vek385-sdt-seg-system-conf.dtsi isp_rproc6_remoteproc.dtsi"

Update the machine name with the actual machine-name passed in gen-machine conf and in the EXTRA_DT_INCLUDE_FILES: line append the isp_rproc6_remoteproc.dtsi.

  1. In the Image Recovery Layer, replace Machine Name <vek385-mimo-machine> with the actual machine name used in gen-machine conf.

    vim sources/meta-xilinx-restricted-vek385/dynamic-layers/meta-xilinx-imgrcvry/recipes-bsp/device-tree/device-tree.bbappend
    • For example: the above device-tree.bbappend contains the following text.

      FILESEXTRAPATHS:prepend:<vek385-mimo-machine>:imgrcvry := "${THISDIR}/files:" FILESEXTRAPATHS:prepend:<vek385-mimo-machine>:linux := "${THISDIR}/files:" EXTRA_DT_INCLUDE_FILES:append:<vek385-mimo-machine>:imgrcvry = " imgrcvry-system-conf.dtsi" EXTRA_DT_INCLUDE_FILES:append:<vek385-mimo-machine>:linux = " imgrcvry-system-conf.dtsi"

Update the machine name with the actual machine-name passed in gen-machine conf.

2.5 Generate boot.bin (for JTAG Boot Mode)

  1. Build boot components

  2. Replace Machine Name <vek385-mimo-machine> with the actual machine name used in gen-machine conf.

    MACHINE=<vek385-mimo-machine> bitbake xilinx-bootbin
  3. On successful build, the images for the target machine will be available in the relevant output directory ${TMPDIR}/deploy/images/${MACHINE}/ 

    <your TMPDIR>/deploy/images/<machine-name>/ boot.bin system.dtb
  4. Build Kernel Image and Rootfs.

    1. Add the following to local.conf file to get ISP and HDMI modules, along with the ISP Firmware in rootfs.

      IMAGE_INSTALL:append = " kernel-module-isp isp-media-server isp-firmware kernel-module-hdmi21"

      This is necessary to include:

      • ISP kernel driver

      • ISP media server (userspace)

      • RPU ISP firmware

      • HDMI 2.1 kernel driver (if required)

    2. To generate kernel and rootfs, run the following command.

      MACHINE=amd-cortexa78-mali-common bitbake edf-linux-disk-image
  5. Kernel and rootfs will be generated at the following output location:

    <your TMPDIR>/deploy/images/<machine-name>/ rootfs (edf-linux-disk-image-<machine-name>.rootfs-<timestamp>.cpio.gz.u-boot) Image

2.6 Customizing the Base PS DTB

  1. Once the build is complete, convert the generated dtb to dts.

    <your temp path>/deploy/images/<machine_name>/system.dtb into dts dtc -I dtb -O dts -o system.dts system.dtb
  2. In the dts under the mailbox@eb380000 node, update the interrupt-parent property value according to the user design (check for the phandle of the interrupt controller in the same .dts and update the value against the interrupt-parent parameter of mailbox node).

    example : mailbox@eb380000 {        interrupt-parent = <0x25>; };
  3. Recompile system.dts to system.dtb

    dtc -I dts -O dtb -o system.dtb system.dts
  4. Now the following images are available:

    • boot.bin -><your TMPDIR>/deploy/images/<machine-name>/boot.bin

    • Image -><your TMPDIR>/deploy/images/<machine-name>/Image

    • rootfs -><your TMPDIR>/deploy/images/<machine-name>/edf-linux-disk-image-versal2-dt.rootfs-XXX.cpio.gz.u-boot

    • system.dtb -><your TMPDIR>/deploy/images/<machine-name>/system.dtb

2.7 Procedure to Generate Overlay Images

  1. To convert the dtsi to dtbo, Collect pl.dtsi from the pl_overlay folder in the following build directory.

    vim <yocto_build_tempdir_path>/build/conf/dts/<Machine>/pl_overlay/pl.dtsi
  2. In pl.dtsi, two properties mentioned below needs to be updated under visp_ss node.

    1. Add the memory-region property under the visp node and it should point to the phandle of rpu6_calib_load (the rpu6_calib_load can be found in the system.dts customized in Customizing the Base PS DTB).

    2. The xlnx,rpu property should be set to 6, as the RPU firmware in the 2025.1 release supports only value 6.

      visp_ss@b1300000: visp_ss@b1300000 { ... ... --> memory-region = <&rproc_D_0_6_calib_load>; --> xlnx,rpu = <6>; ... ... };
    3. (Mandatory check for MCM use case) The ibaX_vcid values are fixed at the sensor end, hence the auto_generated iba_vcIds in dtsi are required to be mapped accordingly.
      xlnx,iba0_vcid = <0>;
      xlnx,iba1_vcid = <1>;
      xlnx,iba2_vcid = <0>;
      xlnx,iba3_vcid = <1>;

  3. In pl.dtsi, the two properties mentioned below needs to be updated under the visp_mbox_rpu_6 node.

    1. Add the memory-region property under the visp_mbox_rpu_6 node and it should point to the phandle of isp_mbox_buffer (the isp_mbox_buffernode can be found in the system.dts customized in Customizing the Base PS DTB).

    2. The mboxes property needs to be updated with the phandle of the child0 subnode of mailbox@eb380000. (The mailbox@eb380000 can be found in system.dts customized in Customizing the Base PS DTB).

      Example for visp_mbox_rpu_6: visp_mbox_rpu_6: visp_mbox_rpu_6 { ... ... -> memory-region = <&isp_mbox_buffer>; -> mboxes = <&child0 0>, <&child0 1>; ... ... };
    3. the Final ISP and Mailbox node for MIMO I/O type is as shown below:

      visp_ss_0: visp_ss@b1300000 { interrupts = <0 106 4> , <0 107 4> , <0 104 4> , <0 105 4>; compatible = "xlnx,visp-ss-mimo-1.0"; xlnx,io_mode = "mimo"; memory-region = <&rproc_D_0_6_calib_load>; xlnx,num_streams = <0>; interrupt-parent = <&gic>; reg = <0x0 0xb1300000 0x0 0x10000>; xlnx,netfps = <0>; isp_id = <0>; xlnx,rpu = <6>; interrupt-names = "tile0_isp0_fusa_irq" , "tile0_isp0_isp_irq" , "tile0_isp_isr_irq" , "tile0_isp_xmpu_interrupt"; xlnx,mem_inputs = <1>; }; visp_mbox_rpu_6: visp_mbox_rpu_6 { compatible = "xlnx,mimo-mbox"; mbox-names = "tx" , "rx"; memory-region = <&isp_mbox_buffer>; mboxes = <&child0 0>, <&child0 1>; rpu_id = <6>; };
  4. The final ISP and Mailbox node for different configurations are below:

    1. LIMO Non-MCM configuration:

      visp_ss_0: visp_ss@b1300000 { interrupts = <0 106 4> , <0 107 4> , <0 104 4> , <0 105 4>; compatible = "xlnx,visp-ss-limo-1.0"; xlnx,io_mode = "limo"; memory-region = <&rproc_D_0_6_calib_load>; xlnx,iba0_data_format = <12>; xlnx,iba0_max-width = <3840>; memory-region = <0x0e>; xlnx,num_streams = <1>; interrupt-parent = <&gic>; reg = <0x0 0xb1300000 0x0 0x10000>; xlnx,netfps = <60>; xlnx,iba0_frame_rate = <60>; isp_id = <0>; xlnx,iba0_ppc = <4>; xlnx,iba0_max-height = <2160>; xlnx,rpu = <6>; interrupt-names = "tile0_isp0_fusa_irq" , "tile0_isp0_isp_irq" , "tile0_isp_isr_irq" , "tile0_isp_xmpu_interrupt"; xlnx,iba0_vcid = <0>; xlnx,mem_inputs = <0>; portss00: ports { #address-cells = <1>; #size-cells = <0>; visp_ss_portsvisp_ss_00visp_ss_0: port@0 { reg = <0>; visp_ss_0mipi_csi2_rx_subsyst_0: endpoint { remote-endpoint = <&mipi_csirx_outmipi_csi2_rx_subsyst_0>; }; }; port001: port@1 { reg = <1>; visp_isp0_port000_mp: endpoint { type = "output"; remote-endpoint = <&visp_video_0_0_0>; }; }; port002: port@2 { reg = <2>; visp_isp0_port000_sp: endpoint { type = "output"; remote-endpoint = <&visp_video_0_0_1>; }; }; }; }; visp_video_0: visp_video_0 { compatible = "xlnx,visp-video"; id = <0>; vcap_ports00: ports { #address-cells = <1>; #size-cells = <0>; vport001: port@0 { reg = <0>; visp_video_0_0_0: endpoint { remote-endpoint = <&visp_isp0_port000_mp>; }; }; vport002: port@1 { reg = <1>; visp_video_0_0_1: endpoint { remote-endpoint = <&visp_isp0_port000_sp>; }; }; }; }; visp_mbox_rpu_6: visp_mbox_rpu_6 { status = "okay"; compatible = "xlnx,mbox"; mbox-names = "tx" , "rx"; memory-region = <&isp_mbox_buffer>; mboxes = <&child0 0>, <&child0 1>; rpu_id = <6>; };
    2. LIMO MCM (ISP0 4 streams):

      visp_ss_0: visp_ss@b1300000 { xlnx,iba1_frame_rate = <15>; interrupts = <0 106 4> , <0 107 4> , <0 104 4> , <0 105 4>; compatible = "xlnx,visp-ss-limo-1.0"; memory-region = <&rproc_D_0_6_calib_load>; xlnx,iba2_vcid = <0>; xlnx,iba3_frame_rate = <15>; xlnx,io_mode = "limo"; xlnx,iba0_data_format = <12>; xlnx,iba1_data_format = <16>; xlnx,iba0_max-width = <3840>; xlnx,num_streams = <4>; interrupt-parent = <&gic>; xlnx,iba2_data_format = <16>; xlnx,iba1_max-width = <3840>; xlnx,iba3_data_format = <16>; xlnx,iba2_max-width = <3840>; xlnx,iba1_max-height = <2160>; reg = <0x0 0xb1300000 0x0 0x10000>; xlnx,netfps = <60>; xlnx,iba3_max-width = <3840>; xlnx,iba0_frame_rate = <15>; xlnx,iba3_max-height = <2160>; xlnx,iba1_vcid = <1>; isp_id = <0>; xlnx,iba2_frame_rate = <15>; xlnx,iba3_vcid = <1>; xlnx,iba0_ppc = <4>; xlnx,iba1_ppc = <4>; xlnx,iba0_max-height = <2160>; xlnx,rpu = <6>; xlnx,iba2_ppc = <4>; interrupt-names = "tile0_isp0_fusa_irq" , "tile0_isp0_isp_irq" , "tile0_isp_isr_irq" , "tile0_isp_xmpu_interrupt"; xlnx,iba3_ppc = <4>; xlnx,iba2_max-height = <2160>; xlnx,iba0_vcid = <0>; xlnx,mem_inputs = <0>; portss00: ports { #address-cells = <1>; #size-cells = <0>; visp_ss_portsvisp_ss_00visp_ss_0: port@0 { reg = <0>; }; port001: port@1 { reg = <1>; visp_isp0_port000_mp: endpoint { type = "output"; remote-endpoint = <&visp_video_0_0_0>; }; }; port002: port@2 { reg = <2>; visp_isp0_port000_sp: endpoint { type = "output"; remote-endpoint = <&visp_video_0_0_1>; }; }; visp_ss_portsvisp_ss_05visp_ss_0: port@5 { reg = <5>; }; port006: port@6 { reg = <6>; visp_isp0_port001_mp: endpoint { type = "output"; remote-endpoint = <&visp_video_0_1_0>; }; }; port007: port@7 { reg = <7>; visp_isp0_port001_sp: endpoint { type = "output"; remote-endpoint = <&visp_video_0_1_1>; }; }; visp_ss_portsvisp_ss_010visp_ss_0: port@10 { reg = <10>; }; port0011: port@11 { reg = <11>; visp_isp0_port002_mp: endpoint { type = "output"; remote-endpoint = <&visp_video_0_2_0>; }; }; port0012: port@12 { reg = <12>; visp_isp0_port002_sp: endpoint { type = "output"; remote-endpoint = <&visp_video_0_2_1>; }; }; visp_ss_portsvisp_ss_015visp_ss_0: port@15 { reg = <15>; }; port0016: port@16 { reg = <16>; visp_isp0_port003_mp: endpoint { type = "output"; remote-endpoint = <&visp_video_0_3_0>; }; }; port0017: port@17 { reg = <17>; visp_isp0_port003_sp: endpoint { type = "output"; remote-endpoint = <&visp_video_0_3_1>; }; }; }; }; visp_video_0: visp_video_0 { compatible = "xlnx,visp-video"; id = <0>; vcap_ports00: ports { #address-cells = <1>; #size-cells = <0>; vport001: port@0 { reg = <0>; visp_video_0_0_0: endpoint { remote-endpoint = <&visp_isp0_port000_mp>; }; }; vport002: port@1 { reg = <1>; visp_video_0_0_1: endpoint { remote-endpoint = <&visp_isp0_port000_sp>; }; }; vport006: port@2 { reg = <2>; visp_video_0_1_0: endpoint { remote-endpoint = <&visp_isp0_port001_mp>; }; }; vport007: port@3 { reg = <3>; visp_video_0_1_1: endpoint { remote-endpoint = <&visp_isp0_port001_sp>; }; }; vport0011: port@4 { reg = <4>; visp_video_0_2_0: endpoint { remote-endpoint = <&visp_isp0_port002_mp>; }; }; vport0012: port@5 { reg = <5>; visp_video_0_2_1: endpoint { remote-endpoint = <&visp_isp0_port002_sp>; }; }; vport0016: port@6 { reg = <6>; visp_video_0_3_0: endpoint { remote-endpoint = <&visp_isp0_port003_mp>; }; }; vport0017: port@7 { reg = <7>; visp_video_0_3_1: endpoint { remote-endpoint = <&visp_isp0_port003_sp>; }; }; }; };
    3. LILO:

      visp_ss_0: visp_ss@b1300000 { interrupts = <0 106 4> , <0 107 4> , <0 104 4> , <0 105 4>; compatible = "xlnx,visp-ss-lilo-1.0"; xlnx,io_mode = "lilo"; memory-region = <&rproc_D_0_6_calib_load>; memory-region = <0x0a>; xlnx,oba0_sp_data_format = "YUV422"; xlnx,iba0_data_format = <12>; xlnx,iba0_max-width = <3840>; xlnx,num_streams = <1>; interrupt-parent = <&gic>; xlnx,oba0_mp_bpp = <10>; xlnx,oba0_mp_ppc = <4>; reg = <0x0 0xb1300000 0x0 0x10000>; xlnx,netfps = <60>; xlnx,iba0_frame_rate = <60>; isp_id = <0>; xlnx,oba0_sp_bpp = <10>; xlnx,oba0_sp_ppc = <4>; xlnx,iba0_ppc = <4>; xlnx,oba0_mp_data_format = "YUV422"; xlnx,iba0_max-height = <2160>; xlnx,rpu = <6>; interrupt-names = "tile0_isp0_fusa_irq" , "tile0_isp0_isp_irq" , "tile0_isp_isr_irq" , "tile0_isp_xmpu_interrupt"; xlnx,iba0_vcid = <0>; xlnx,mem_inputs = <0>; portss00: ports { #address-cells = <1>; #size-cells = <0>; port00 { reg = <1>; visp_outvisp_ss_0: endpoint { remote-endpoint = <&frmbuf_wr_ss_v_frmbuf_wr_0visp_ss_0>; }; }; visp_ss_portsvisp_ss_00visp_ss_0: port@0 { reg = <0>; visp_ss_0hier_1to1semu_mipi_0_video_switch_2to1_axis_switch_video: endpoint { remote-endpoint = <&axis_switch_out1hier_1to1semu_mipi_0_video_switch_2to1_axis_switch_video>; }; }; }; }; vcap_visp_ss_0: vcap_visp_ss_0 { compatible = "xlnx,video"; dmas = <&frmbuf_wr_ss_v_frmbuf_wr_0 0>; dma-names = "port0"; vcap_portsvisp_ss_0: ports { #address-cells = <1>; #size-cells = <0>; vcap_portvisp_ss_0: port { direction = "input"; reg = <0>; frmbuf_wr_ss_v_frmbuf_wr_0visp_ss_0: endpoint { remote-endpoint = <&visp_outvisp_ss_0>; }; }; }; }; visp_mbox_rpu_6: visp_mbox_rpu_6 { status = "okay"; compatible = "xlnx,mbox"; mbox-names = "tx" , "rx"; memory-region = <&isp_mbox_buffer>; mboxes = <&child0 0>, <&child0 1>; rpu_id = <6>; };

2.7.1 Add HDMI Support (If Required):

The following changes are added to pl.dtsi before compiling to a Device Tree Blob Overlay (*.dtbo). These changes are necessary for the HDMI pipeline to initialize and operate correctly.

Refer to Xilinx DRM KMS HDMI 2.1 TX Subsystem Driver - Xilinx Wiki - Confluence.

&amba_pl { ref40: ref40m { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <40000000>; }; xfmc: xv_fmc { compatible = "vfmc"; }; }; &display_hdmi_ss_axi_iic_hdmi{ idt_241: clock-generator@6c { compatible = "idt,idt8t49"; #clock-cells = <1>; reg = <0x6c>; clocks = <&ref40>; clock-frequency = <148500000>; clock-names = "input-xtal"; }; ti_tmds1204_tx: ti_tmds1204-tx@5e { compatible = "ti_tmds1204,ti_tmds1204-tx"; #clock-cells = <1>; reg = <0x5e>; clocks = <&ref40>; clock-frequency = <148500000>; clock-names = "input-xtal"; }; ti_tmds1204_rx: ti_tmds1204-rx@5b { compatible = "ti_tmds1204,ti_tmds1204-rx"; #clock-cells = <1>; reg = <0x5b>; clocks = <&ref40>; clock-frequency = <148500000>; clock-names = "input-xtal"; }; }; &display_hdmi_ss_hdmiphy_ss_0_hdmi_gt_controller{ clock-names = "apb_clk" , "axi4lite_aclk" , "gt_refclk1_odiv2" , "gt_refclk2_odiv2" , "gt_txusrclk" , "sb_aclk" , "tx_axi4s_aclk","vid_phy_axi4lite_aclk", "drpclk", "tmds_clock"; clocks = <&misc_clk_0>, <&misc_clk_0>, <&misc_clk_1>, <&misc_clk_2>, <&misc_clk_3>, <&misc_clk_0>, <&misc_clk_3>,<&misc_clk_0>, <&misc_clk_0>,<&idt_241 1>; xlnx,hdmi-connector = <&xfmc>; }; &i2c0 { expander@74 { compatible = "expander-fmc74"; reg = <0x74>; }; };

Example: GStreamer command to run a HDMI pipeline:

gst-launch-1.0 -v v4l2src device=/dev/video0 io-mode=4 ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" ! queue ! perf name=video0 ! kmssink bus-id=b0100000.v_mix plane-id=35 &

If HDMI support is required for the LILO I/O type, follow the steps in Add HDMI Support.

2.7.2 Applying AR for MIPI Stability Issue

For LIMO and LILO use-cases, where MIPI is connected through LPD and not actively programmed by the ISP, the following updates are required in the device-tree:

a. Remove the MIPI and corresponding GPIOs device-tree node from pl.dtsi or any *.dtsi files.

b. You will need to apply the LPD AR patch for updating the MIPI reset sequence in ISP firmware.

  1. Remove the complete mipi_csi2_rx_subsyst* per the example shown below:

    mipi_csi2_rx_subsyst_0: mipi_csi2_rx_subsystem@81000000 { xlnx,data-lane2-byte = "All_Byte"; xlnx,dpy-en-reg-if = <1>; xlnx,cmn-vc = <4>; xlnx,dphy-lanes = <4>; xlnx,ip-name = "mipi_csi2_rx_subsystem"; reg = <0x0 0x81000000 0x0 0x2000>; xlnx,vfb-tu-width = <1>; xlnx,ppc = <4>; xlnx,csi-buf-depth = <4096>; xlnx,exdes-fmc = "LI-IMX274MIPI-FMC , V1.0 , Single , Sensor"; xlnx,supportlevel = <1>; xlnx,clk-lane-io-loc-name = "None"; xlnx,max-lanes = <4>; xlnx,is-versal; xlnx,cmn-inc-iic = <0>; xlnx,clk-lane-io-loc = "None"; xlnx,esc-timeout = <25600>; interrupt-names = "csirxss_csi_irq"; xlnx,cmn-inc-vfb; xlnx,axis-tuser-width = <96>; compatible = "xlnx,mipi-csi2-rx-subsystem-6.0" , "xlnx,mipi-csi2-rx-subsystem-5.0"; xlnx,en-active-lanes; xlnx,idly-tap = <1>; dphy-present = <0>; xlnx,cmn-num-pixels = <4>; xlnx,cmn-proj-family = <0>; xlnx,csi2rx-dbg = <0>; xlnx,fifo-rd-en-control; xlnx,vfb; interrupt-parent = <&axi_intc_0>; xlnx,data-lane1-io-loc-name = "None"; xlnx,hs-timeout = <65541>; xlnx,data-lane3-io-loc-name = "None"; xlnx,ext-mmcm = <0>; xlnx,data-lane1-byte = "All_Byte"; xlnx,cal-mode = "NONE"; xlnx,csi-filter-userdatatype; rxphy-connected = <&mipi_csi2_rx_subsyst_0_phy>; xlnx,mipi-rx-phy-mode = <1>; xlnx,data-lane0-io-position = <2>; xlnx,exdes-board = "VEK280"; xlnx,data-lane2-io-position = <6>; xlnx,vc = <4>; xlnx,en-vcx = <0>; xlnx,name = "mipi_csi2_rx_subsyst_0"; xlnx,csi-emb-non-img = <0>; interrupts = < 0 2 >; xlnx,dphyrx-board-interface = "Custom"; xlnx,data-lane3-io-loc = "None"; xlnx,hs-settle-ns = <25>; clocks = <&misc_clk_8>, <&misc_clk_0>, <&misc_clk_0>; xlnx,data-lane2-io-loc = "None"; xlnx,is-ksb; xlnx,mipi-slv-int = <0>; xlnx,cmn-fifo-rd-en-cntrl; xlnx,data-lane3-byte = "All_Byte"; xlnx,stretch-line-rate = <4500>; xlnx,phy-mode = "DPHY"; xlnx,axis-tdest-width = <4>; xlnx,en-csi-v2 = <0>; xlnx,edk-iptype = "PERIPHERAL"; xlnx,init = <100000>; xlnx,cmn-pxl-format = <0x2c>; xlnx,int-qor-check = <0>; clock-names = "dphy_clk_200M" , "lite_aclk" , "video_aclk"; xlnx,data-lane1-io-loc = "None"; xlnx,data-lane0-byte = "All_Byte"; xlnx,ooc-vid-clk = <0x65b710>; csirx-present = <1>; xlnx,yuv420-buf-dpth = <128>; xlnx,hp-io-bank-selection = <64>; xlnx,idly-group-name = "mipi_csi2rx_idly_group"; xlnx,lprx-disable-extport = <0>; csirx-connected = <&mipi_csi2_rx_subsyst_0_rx>; xlnx,highaddr = <0x81001fff>; xlnx,cmn-num-lanes = <4>; xlnx,exdes-config = "MIPI_Video_Pipe_Camera_to_Display"; xlnx,exdesboard-version = <2>; xlnx,dphy-preset = "CSI2RX_XLNX"; xlnx,data-lane0-io-loc-name = "None"; xlnx,csi-pxl-format = <0x2c>; xlnx,clk-lane-io-position = <0>; xlnx,data-lane2-io-loc-name = "None"; xlnx,data-lane0-io-loc = "None"; xlnx,inc-phy; xlnx,hs-line-rate = <800>; rxphy-present = <1>; xlnx,dpy-line-rate = <1500>; xlnx,csi-en-activelanes; xlnx,sprt-isp-bridge; xlnx,csi-en-crc = <1>; xlnx,axis-tdata-width = <32>; xlnx,csi-controller-reg-if; xlnx,data-lane1-io-position = <4>; xlnx,dphy-mode = "SLAVE"; xlnx,data-lane3-io-position = <8>; mipi_csi_portsmipi_csi2_rx_subsyst_0: ports { #address-cells = <1>; #size-cells = <0>; mipi_csi_port1mipi_csi2_rx_subsyst_0: port@1 { xlnx,video-width = <8>; reg = <1>; xlnx,video-format = <12>; xlnx,cfa-pattern = "rggb"; mipi_csirx_outmipi_csi2_rx_subsyst_0: endpoint { remote-endpoint = <&visp_ss_0mipi_csi2_rx_subsyst_0>; }; }; mipi_csi_port0mipi_csi2_rx_subsyst_0: port@0 { xlnx,video-width = <8>; reg = <0>; xlnx,video-format = <12>; xlnx,cfa-pattern = "rggb"; mipi_csi_inmipi_csi2_rx_subsyst_0: endpoint { data-lanes = < 1 2 3 4 >; }; }; }; };
  2. Delete the port@0 entry from the visp_ss node as this endpoint is typically connected to the MIPI interface.

    image-20250529-093030.png
  3. Remove the corresponding MIPI GPIO nodes. (The gpio nodes might vary from the following picture, identify the right MIPI related GPIOs based on the design and remove it from device tree).

    image-20250603-075825.png
  4. Once changes are completed, Convert the pl.dtsi to dtbo (overlay dtb).

    convert to dtbo dtc -I dts -O dtb -@ -o test.dtbo pl.dtsi
  5. Collect *pld.pdi from the sdtgen output directory in Generate ISP SDT Files.

  6. Create a file named shell.json and add the following content.

    cat > shell.json <<EOL { "shell_type" : "XRT_FLAT", "num_slots" : "1" } EOL
  7. Copy .dtbo, shell.json and *pld.pdi into a folder. Now, the required overlay files are ready.

    Directory Structure: vek385-mimo/ ├── test.dtbo ├── shell.json └── versal_gen2_platform_wrapper_pld.pdi

3. Checklist for ISP Build Steps to Generate Artifacts

Ensure that the following base artifacts and configuration steps are properly completed:

  1. Set Up the Build Environment

    • Follow the instructions in the Pre-requisites section to initialize the Yocto build environment.

  2. Download Required Layers

    • Download and extract meta-xilinx-restricted-vek385.tar.gz from the VEK385 EA lounge to the sources/ directory of your Yocto project.

  3. Generate SDT Files Using SDTGEN Tool

    • Use the sdtgen tool to generate SDT output from the .xsa hardware design. This will be used for generating the machine configuration.

  4. Generate Machine Configuration

    • Run gen-machineconf using the generated SDT directory to create machine-specific conf and device-tree files.

  5. Update Device Tree and Machine Info

    • Add your custom .dtsi and update machine-specific .bbappend files under meta-xilinx-restricted-vek385 to include:

      • Custom .dtsi in EXTRA_DT_INCLUDE_FILES

      • Correct custom machine name in FILESEXTRAPATHS

  6. Build the Image

    • Run bitbake xilinx-bootbin and bitbake edf-linux-disk-image with your custom machine name. Output files (boot.bin/rootfs/Image) will be located at:

      ${TMPDIR}/deploy/images/${MACHINE}/
  7. Edit Base DTB and Recompile

    • After build, convert the generated system.dtb to system.dts, make the required PS-side changes (for example: interrupt-parent updates), and recompile to system.dtb.

  8. Generate DT Overlay

    • Once all changes are incorporated (including MIPI/HDMI updates etc.), generate the overlay .dtbo as needed for your platform.

4. Steps to Run ISP Pipeline MIMO/LIMO/LILO

  1. Load the base Images on target.

  2. Set up the Terminal for APU Debug Log.

4.1 Steps for Booting in JTAG Boot Mode

Users can also boot using any other preferred modes such as OSPI and proceed to the next section after bootup.

  1. Open the com0/3 terminal to monitor APU logs.

  2. From xsdb list targets and select target xc2ve3858.

    1. Device program the boot.bin

    2. For example: device program boot.bin

  3. Enter the following U-Boot commands to boot Linux.

    dhcp;setenv tftpblocksize 8192;tftpb 0x20200000 Image; tftpb 0x24000000 rootfs.cpio.gz.u-boot;tftpb 0x20100000 system.dtb ;booti 0x20200000 0x24000000 0x20100000 $fdtcontroladdr
  4. After boot, login with the following:

    Username: amd-edf Password: (any)

4.2 Load and Start the RPU ELF

  1. Navigate to the firmware directory.

    cd /lib/firmware
  2. Verify that the RPU firmware is present (example name):

    ls isp-r52-6-firmware.elf
  3. Load the firmware through remoteproc:

    echo isp-r52-6-firmware.elf > /sys/class/remoteproc/remoteproc0/firmware
  4. Start the RPU core:

    echo start > /sys/class/remoteproc/remoteproc0/state
  5. Once this step is completed, the RPU core starts executing the loaded firmware.

  6. The below snippet is from a Successfully loaded RPU firmware.

    image-20250529-065240.png

4.3 Loading Overlay Images on Target

  1. Create a folder and copy .dtbo, shell.json and *pld.pdi to it (file can be found in Procedure to Generate Overlay Images).

  2. Copy the folder to /lib/firmware/xilinx/

    cp -r vek385-test /lib/firmware/xilinx/
  3. Run the following command to load overlay images:

    dfx-mgr-client -load vek385-test
  4. After loading the overlay images, observe the following log:

    image-20250529-073551.png
  5. Verify whether the ISP Linux modules are loaded or not.

    • Use the following command to check lsmod | grep visp.

      image-20250529-074324.png

5. Launch MIMO Pipeline

  1. Ensure that the MIMO overlay Images are loaded.

  2. Copy the required ISP input image files (.raw) of the user’s choice.

  3. Run the media_server application to apply filter configurations on the ISP.

    Example: mimo_isp_media_server -d <v4l-subdevID> -p <path of Json files> mimo_isp_media_server -d 0 -p /usr/share/mimo_example_jsons/ &
  4. Launch the gstreamer pipelines with .raw file as an input.

    gst-launch-1.0 multifilesrc location=<input_file.raw> num-buffers=1 loop=true blocksize=4147200 ! capsfilter caps="video/x-bayer, format=rg12, width=1920, height=1080, framerate=1/10, colorimetry=sRGB" ! v4l2xm2msc capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12, width=1920, height=1080 ! filesink location=out.yuv
  5. In a working case, ensure that the gst-launch log is as below:

    image-20250604-125435.png
  6. Generated output file will be written to out.yuv.

  7. View the output file using yuv player.

6. Launch LIMO Non-MCM Pipeline

  1. Ensure that the LIMO overlay Images are loaded.

  2.  Verify whether the ISP Linux modules are loaded or not.

    • Use the following command to check lsmod | grep visp.

      image-20250519-050948.png
  3. Remove the auto-loaded modules and reload the modules under /lib/modules/6.*/updates/.

    #rmmod the auto-loaded modules rmmod visp_video rmmod visp rmmod visp_mbox #load the modules insmod /lib/modules/<kernel>/updates/visp_mbox/visp_mbox.ko insmod /lib/modules/<kernel>/updates/visp/visp.ko insmod /lib/modules/<kernel>/updates/visp_video/visp_video.ko
  4. The following snippets show the success log for each driver probe.
    visp_mbox:

    image-20250528-174654.png

    visp:

    image-20250604-053605.png

    visp_video:

    image-20250528-174724.png
  5. For each subdev being validated, specify the sensor IDs (MIPI ID) and name. 

    # usage : echo <port ID> sensor_id=<ID> > /proc/vsi/isp_subdevX -> X replace with corresponding subdev<id> echo <port ID> sensor=<Sensor_name> > /proc/vsi/isp_subdevX ## command explanation: Port ID: in non-MCM mode this value is always 0. Sensor: sensor name =ox03f10(3MP)/ox08b40(8MP) ID : sensor id dependes on MIPI ID to which sensor is connected. /proc/vsi/isp_subdevX : X stands the subdev ID being used. ### sample usage example if senor_id is 2 for isp_subdev 0 for 3MP. echo 0 sensor_id=2 > /proc/vsi/isp_subdev0 echo 0 sensor=ox03f10 > /proc/vsi/isp_subdev0 example if senor_id is 2 for isp_subdev 0 for 8MP. echo 0 sensor_id=2 > /proc/vsi/isp_subdev0 echo 0 sensor=ox08b40 > /proc/vsi/isp_subdev0
  6. For each of the subdevs being used, specify the tuning files path

    1. The following example contains default paths of tuning files present in roots.

      #usage : echo <port ID> <file>=<path> > /proc/vsi/isp_subdevX -> X replace with corresponding subdev<id> ##command explanation Port ID: in non-MCM mode this value is always 0. file : file type (xml/auto_json/manual_json) path : path for the file type specified. /proc/vsi/isp_subdevX : X stands the subdev ID being used. ###below is the example to set files for isp_subdev0 echo 0 xml=/usr/share/limo_example_jsons/OX03f10.xml  > /proc/vsi/isp_subdev0 echo 0 auto_json=/usr/share/limo_example_jsons/auto.json > /proc/vsi/isp_subdev0 echo 0 manu_json=/usr/share/limo_example_jsons/manual_ext.json > /proc/vsi/isp_subdev0
  7. Launch the media_server to parse ISP filter configuration.

    isp_media_server &
  8. Run the gstreamer pipeline to launch the ISP live sensor pipeline with fake sink:

    gst-launch-1.0  v4l2src device=/dev/video0  io-mode=4  ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" !     queue ! perf name=ISP0_MP_FS  ! fakesink -v & gst-launch-1.0  v4l2src device=/dev/video1  io-mode=4  ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" !     queue ! perf name=ISP_MP_FS  ! fakesink -v & gst-launch-1.0  v4l2src device=/dev/video3  io-mode=4  ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" !     queue ! perf name=ISP0_MP_FS  ! fakesink -v &

Only use Ctrl+C to gracefully close the gstreamer pipeline.

7. Launch LILO Pipeline

  1. Ensure that the LILO overlay Images are loaded.

  2. Remove the modules and reload the modules under /lib/modules/6.*/updates/.

    #rmmod the auto-loaded modules rmmod visp_lilo rmmod visp_mbox #load the modules insmod /lib/modules/<kernel>/updates/visp_mbox/visp_mbox.ko insmod /lib/modules/<kernel>/updates/visp_lilo/visp_lilo.ko
  3. For each subdev being validated, specify the sensor IDs (MIPI ID) and name.

    #usage : echo <port ID> sensor_id=<ID> > /proc/vsi/isp_subdevX -> X replace with corresponding subdev<id> echo <port ID> sensor=<Sensor_name> > /proc/vsi/isp_subdevX ##command explanation Port ID: in non-MCM mode this value is always 0. Sensor: sensor name =ox03f10(3MP)/ox08b40(8MP) ID : sensor id dependes on MIPI ID to which sensor is connected. /proc/vsi/isp_subdevX : X stands the subdev ID being used. ###example example if senor_id is 2 for isp_subdev 0 for 3MP. echo 0 sensor_id=2 > /proc/vsi/isp_subdev0 echo 0 sensor=ox03f10 > /proc/vsi/isp_subdev0 example if senor_id is 2 for isp_subdev 0 for 8MP. echo 0 sensor_id=2 > /proc/vsi/isp_subdev0 echo 0 sensor=ox08b40 > /proc/vsi/isp_subdev0
  4. For each of the subdevs being used, specify the tuning files path.

    • The following example contains default paths of the tuning files present in rootfs.

      #usage : echo <port ID> <file>=<path> > /proc/vsi/isp_subdevX -> X replace with corresponding subdev<id> ##command explanation Port ID: in non-MCM mode this value is always 0. file : file type (xml/auto_json/manual_json) path : path for the file type specified. /proc/vsi/isp_subdevX : X stands the subdev ID being used. ###below is the example to set tuning files for isp_subdev0 echo 0 xml=/usr/share/limo_example_jsons/OX03f10.xml  > /proc/vsi/isp_subdev0 echo 0 auto_json=/usr/share/limo_example_jsons/auto.json > /proc/vsi/isp_subdev0 echo 0 manu_json=/usr/share/limo_example_jsons/manual_ext.json > /proc/vsi/isp_subdev0
    • Example snippet for steps 2 and 3:

      image-20250528-151306.png
  5. Launch the media_server application which parses ISP filter configuration.

    isp_media_server &
  6. Launch the pipelines for the corresponding videoX.

    1. To find the corresponding video node, use media-ctl -p -d /dev/mediaX.

Only RGB format and 1920x1080 resolution is supported with ISP Linux driver for this release in LILO mode.

gst-launch-1.0  v4l2src device=/dev/video0  io-mode=4  ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" !     queue ! perf name=ISP0_MP_FS  ! fakesink -v & gst-launch-1.0  v4l2src device=/dev/video1  io-mode=4  ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" !     queue ! perf name=ISP0_MP_FS  ! fakesink -v & gst-launch-1.0  v4l2src device=/dev/video3  io-mode=4  ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" !     queue ! perf name=ISP0_MP_FS  ! fakesink -v &

Only use Ctrl+C to gracefully close the gstreamer pipeline.

  1. LILO segmented boot log.

    BOOTP broadcast 1 DHCP client bound to address 10.10.70.1 (2 ms) Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'default.boot'. Load address: 0x8000000 Loading: * TFTP error: 'File not found' (1) Not retrying... missing environment variable: pxeuuid Retrieving file: pxelinux.cfg/01-00-0a-35-1d-5b-24 Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/01-00-0a-35-1d-5b-24'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/0A0A4601 Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/0A0A4601'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/0A0A460 Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/0A0A460'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/0A0A46 Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/0A0A46'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/0A0A4 Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/0A0A4'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/0A0A Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/0A0A'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/0A0 Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/0A0'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/0A Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/0A'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/0 Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/0'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/default-arm-versal2-versal2 Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/default-arm-versal2-versal2'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/default-arm-versal2 Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/default-arm-versal2'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/default-arm Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/default-arm'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Retrieving file: pxelinux.cfg/default Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'pxelinux.cfg/default'. Load address: 0x10000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Config file not found BOOTP broadcast 1 DHCP client bound to address 10.10.70.1 (4 ms) Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'boot.scr.uimg'. Load address: 0x78000000 Loading: * TFTP error: 'File not found' (1) Not retrying... BOOTP broadcast 1 DHCP client bound to address 10.10.70.1 (3 ms) Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'default.boot'. Load address: 0x20200000 Loading: * TFTP error: 'File not found' (1) Not retrying... versal2> dhcp;setenv tftpblocksize 8192;tftpb 0x20200000 Image_0405_Latest; tftpb 0x24000000 rootfs_0405.cpio.gz.u-boot;tftpb 0x20100000 cortexa78-linux_lilo_seg.dtb ;booti 0x20200000 0x24000000 0x20100000 $fdtcontroladdr BOOTP broadcast 1 DHCP client bound to address 10.10.70.1 (2 ms) Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'default.boot'. Load address: 0x8000000 Loading: * TFTP error: 'File not found' (1) Not retrying... Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'Image_0405_Latest'. Load address: 0x20200000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ###### 29.3 MiB/s done Bytes transferred = 27064832 (19cfa00 hex) Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'rootfs_0405.cpio.gz.u-boot'. Load address: 0x24000000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ##################### 29.6 MiB/s done Bytes transferred = 289214548 (113d1054 hex) Using ethernet@f1a60000 device TFTP from server 10.10.70.101; our IP address is 10.10.70.1 Filename 'cortexa78-linux_lilo_seg.dtb'. Load address: 0x20100000 Loading: # 10.6 MiB/s done Bytes transferred = 55329 (d821 hex) ## Loading init Ramdisk from Legacy Image at 24000000 ... Image Name: edf-linux-disk-image-amd-cortexa Image Type: AArch64 Linux RAMDisk Image (uncompressed) Data Size: 289214484 Bytes = 275.8 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 7be8e780 Booting using the fdt blob at 0x7be8e780 Working FDT set to 7be8e780 Loading Ramdisk to 69abd000, end 7ae8e014 ... OK Loading Device Tree to 0000000069aac000, end 0000000069abc450 ... OK Working FDT set to 69aac000 No RNG device Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd423] [ 0.000000] Linux version 6.12.10-xilinx-gc51589ffca42 (oe-user@oe-host) (aarch64-amd-linux-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP Sun Apr 27 14:57:07 UTC 2025 [ 0.000000] KASLR disabled due to lack of seed [ 0.000000] Machine model: AMD Versal VEK385 revA [ 0.000000] earlycon: pl11 at MMIO32 0x00000000f1930000 (options '') [ 0.000000] printk: legacy bootconsole [pl11] enabled [ 0.000000] efi: UEFI not found. [ 0.000000] OF: reserved mem: 0x000000000c000000..0x0000000011125fff (83096 KiB) nomap non-reusable rproc6@0c000000 [ 0.000000] OF: reserved mem: 0x0000000011126000..0x000000001114dfff (160 KiB) nomap non-reusable rpu6_calib_load [ 0.000000] OF: reserved mem: 0x000000001114e000..0x000000001214efff (16388 KiB) nomap non-reusable rpu6_hal_mem_priv [ 0.000000] OF: reserved mem: 0x000000001829e000..0x000000001869dfff (4096 KiB) nomap non-reusable isp_mbox_buffer@1829E000 [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000000000000-0x00000000ffffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal [mem 0x0000000100000000-0x000000087fffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x000000000bffffff] [ 0.000000] node 0: [mem 0x000000000c000000-0x000000001214efff] [ 0.000000] node 0: [mem 0x000000001214f000-0x000000001829dfff] [ 0.000000] node 0: [mem 0x000000001829e000-0x000000001869dfff] [ 0.000000] node 0: [mem 0x000000001869e000-0x000000007fffffff] [ 0.000000] node 0: [mem 0x0000000800000000-0x000000087fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000087fffffff] [ 0.000000] cma: Reserved 256 MiB at 0x0000000059a00000 on node -1 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.5 [ 0.000000] percpu: Embedded 22 pages/cpu s52248 r8192 d29672 u90112 [ 0.000000] Detected PIPT I-cache on CPU0 [ 0.000000] CPU features: detected: Address authentication (architected QARMA5 algorithm) [ 0.000000] CPU features: detected: GIC system register CPU interface [ 0.000000] CPU features: detected: Virtualization Host Extensions [ 0.000000] CPU features: detected: Spectre-v4 [ 0.000000] CPU features: detected: Spectre-BHB [ 0.000000] alternatives: applying boot alternatives [ 0.000000] Kernel command line: earlycon=pl011,mmio32,0xf1930000 console=ttyAMA1,115200 [ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear) [ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear) [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 1048576 [ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off [ 0.000000] software IO TLB: area num 8. [ 0.000000] software IO TLB: mapped [mem 0x000000007c000000-0x0000000080000000] (64MB) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1 [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=16 to nr_cpu_ids=8. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8 [ 0.000000] RCU Tasks Trace: Setting shift to 3 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=8. [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode [ 0.000000] GICv3: 512 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] Root IRQ handler: gic_handle_irq [ 0.000000] GICv3: GICv3 features: 16 PPIs [ 0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=1 [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000e2060000 [ 0.000000] ITS [mem 0xe2040000-0xe205ffff] [ 0.000000] ITS@0x00000000e2040000: allocated 8192 Devices @800070000 (indirect, esz 8, psz 64K, shr 1) [ 0.000000] ITS@0x00000000e2040000: allocated 32768 Interrupt Collections @800080000 (flat, esz 2, psz 64K, shr 1) [ 0.000000] GICv3: using LPI property table @0x0000000800090000 [ 0.000000] GICv3: CPU0: using allocated LPI pending table @0x00000008000a0000 [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention. [ 0.000000] arch_timer: cp15 timer(s) running at 100.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0x1ffffffffffffff max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns [ 0.000000] sched_clock: 57 bits at 100MHz, resolution 10ns, wraps every 4398046511100ns [ 0.008287] Console: colour dummy device 80x25 [ 0.012791] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=400000) [ 0.023343] pid_max: default: 32768 minimum: 301 [ 0.028055] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.035535] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.043857] cacheinfo: Unable to detect cache hierarchy for CPU 0 [ 0.058145] rcu: Hierarchical SRCU implementation. [ 0.062985] rcu: Max phase no-delay instances is 1000. [ 0.068318] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level [ 0.076584] EFI services will not be available. [ 0.081267] smp: Bringing up secondary CPUs ... [ 0.086039] Detected PIPT I-cache on CPU1 [ 0.086071] GICv3: CPU1: found redistributor 100 region 0:0x00000000e2080000 [ 0.086078] GICv3: CPU1: using allocated LPI pending table @0x00000008000b0000 [ 0.086092] CPU1: Booted secondary processor 0x0000000100 [0x410fd423] [ 0.086313] Detected PIPT I-cache on CPU2 [ 0.086342] GICv3: CPU2: found redistributor 10000 region 0:0x00000000e20a0000 [ 0.086348] GICv3: CPU2: using allocated LPI pending table @0x00000008000c0000 [ 0.086364] CPU2: Booted secondary processor 0x0000010000 [0x410fd423] [ 0.086567] Detected PIPT I-cache on CPU3 [ 0.086586] GICv3: CPU3: found redistributor 10100 region 0:0x00000000e20c0000 [ 0.086590] GICv3: CPU3: using allocated LPI pending table @0x00000008000d0000 [ 0.086602] CPU3: Booted secondary processor 0x0000010100 [0x410fd423] [ 0.086803] Detected PIPT I-cache on CPU4 [ 0.086827] GICv3: CPU4: found redistributor 20000 region 0:0x00000000e20e0000 [ 0.086832] GICv3: CPU4: using allocated LPI pending table @0x00000008000e0000 [ 0.086846] CPU4: Booted secondary processor 0x0000020000 [0x410fd423] [ 0.087033] Detected PIPT I-cache on CPU5 [ 0.087053] GICv3: CPU5: found redistributor 20100 region 0:0x00000000e2100000 [ 0.087058] GICv3: CPU5: using allocated LPI pending table @0x00000008000f0000 [ 0.087070] CPU5: Booted secondary processor 0x0000020100 [0x410fd423] [ 0.087267] Detected PIPT I-cache on CPU6 [ 0.087293] GICv3: CPU6: found redistributor 30000 region 0:0x00000000e2120000 [ 0.087299] GICv3: CPU6: using allocated LPI pending table @0x0000000800100000 [ 0.087313] CPU6: Booted secondary processor 0x0000030000 [0x410fd423] [ 0.087505] Detected PIPT I-cache on CPU7 [ 0.087525] GICv3: CPU7: found redistributor 30100 region 0:0x00000000e2140000 [ 0.087530] GICv3: CPU7: using allocated LPI pending table @0x0000000800110000 [ 0.087542] CPU7: Booted secondary processor 0x0000030100 [0x410fd423] [ 0.087579] smp: Brought up 1 node, 8 CPUs [ 0.268144] SMP: Total of 8 processors activated. [ 0.272893] CPU: All CPU(s) started at EL2 [ 0.277026] CPU features: detected: 32-bit EL0 Support [ 0.282215] CPU features: detected: Data cache clean to the PoU not required for I/D coherence [ 0.290919] CPU features: detected: Common not Private translations [ 0.297250] CPU features: detected: CRC32 instructions [ 0.302438] CPU features: detected: Generic authentication (architected QARMA5 algorithm) [ 0.310702] CPU features: detected: RCpc load-acquire (LDAPR) [ 0.316505] CPU features: detected: LSE atomic instructions [ 0.322132] CPU features: detected: Privileged Access Never [ 0.327759] CPU features: detected: RAS Extension Support [ 0.333210] CPU features: detected: Speculative Store Bypassing Safe (SSBS) [ 0.340279] alternatives: applying system-wide alternatives [ 0.350221] CPU features: detected: Hardware dirty bit management on CPU0-7 [ 0.357546] Memory: 3367052K/4194304K available (17024K kernel code, 1086K rwdata, 4972K rodata, 3200K init, 482K bss, 560224K reserved, 262144K cma-reserved) [ 0.372093] devtmpfs: initialized [ 0.377177] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.387036] futex hash table entries: 2048 (order: 5, 131072 bytes, linear) [ 0.395843] 26016 pages in range for non-PLT usage [ 0.395846] 517536 pages in range for PLT usage [ 0.400733] pinctrl core: initialized pinctrl subsystem [ 0.410700] DMI not present or invalid. [ 0.415529] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.421746] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations [ 0.428906] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations [ 0.436771] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.444785] audit: initializing netlink subsys (disabled) [ 0.450283] audit: type=2000 audit(0.284:1): state=initialized audit_enabled=0 res=1 [ 0.450414] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.465019] ASID allocator initialised with 65536 entries [ 0.470526] Serial: AMBA PL011 UART driver [ 0.475658] /axi/interrupt-controller@e2000000: Fixed dependency cycle(s) with /axi/interrupt-controller@e2000000 [ 0.487112] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages [ 0.493975] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page [ 0.500307] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages [ 0.507165] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page [ 0.513496] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages [ 0.520354] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page [ 0.526684] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages [ 0.533541] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page [ 0.607895] raid6: neonx8 gen() 10280 MB/s [ 0.680228] raid6: neonx4 gen() 10104 MB/s [ 0.752559] raid6: neonx2 gen() 9840 MB/s [ 0.824889] raid6: neonx1 gen() 8248 MB/s [ 0.897218] raid6: int64x8 gen() 6176 MB/s [ 0.969550] raid6: int64x4 gen() 5854 MB/s [ 1.041883] raid6: int64x2 gen() 4921 MB/s [ 1.114221] raid6: int64x1 gen() 3928 MB/s [ 1.118530] raid6: using algorithm neonx8 gen() 10280 MB/s [ 1.192090] raid6: .... xor() 8098 MB/s, rmw enabled [ 1.197103] raid6: using neon recovery algorithm [ 1.201910] iommu: Default domain type: Translated [ 1.206753] iommu: DMA domain TLB invalidation policy: strict mode [ 1.213249] SCSI subsystem initialized [ 1.217082] usbcore: registered new interface driver usbfs [ 1.222627] usbcore: registered new interface driver hub [ 1.227998] usbcore: registered new device driver usb [ 1.233120] mc: Linux media interface: v0.10 [ 1.237435] videodev: Linux video capture interface: v2.00 [ 1.242980] pps_core: LinuxPPS API ver. 1 registered [ 1.247992] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 1.257224] PTP clock support registered [ 1.261188] EDAC MC: Ver: 3.0.0 [ 1.264420] scmi_core: SCMI protocol bus registered [ 1.269414] zynqmp-ipi-mbox mailbox@eb3f0440: Registered ZynqMP IPI mbox with TX/RX channels. [ 1.278118] zynqmp-ipi-mbox child@0: Registered ZynqMP IPI mbox with TX/RX channels. [ 1.285954] zynqmp-ipi-mbox child@1: Registered ZynqMP IPI mbox with TX/RX channels. [ 1.293784] zynqmp-ipi-mbox child@2: Registered ZynqMP IPI mbox with TX/RX channels. [ 1.301614] zynqmp-ipi-mbox child@3: Registered ZynqMP IPI mbox with TX/RX channels. [ 1.309541] FPGA manager framework [ 1.313013] Advanced Linux Sound Architecture Driver Initialized. [ 1.319332] Bluetooth: Core ver 2.22 [ 1.322944] NET: Registered PF_BLUETOOTH protocol family [ 1.328313] Bluetooth: HCI device and connection manager initialized [ 1.334732] Bluetooth: HCI socket layer initialized [ 1.339657] Bluetooth: L2CAP socket layer initialized [ 1.344759] Bluetooth: SCO socket layer initialized [ 1.349825] clocksource: Switched to clocksource arch_sys_counter [ 1.356056] VFS: Disk quotas dquot_6.6.0 [ 1.360022] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 1.368070] NET: Registered PF_INET protocol family [ 1.373077] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 1.381464] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear) [ 1.390099] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 1.397928] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear) [ 1.405963] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear) [ 1.413990] TCP: Hash tables configured (established 32768 bind 32768) [ 1.420623] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear) [ 1.427404] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear) [ 1.434657] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 1.440499] RPC: Registered named UNIX socket transport module. [ 1.446483] RPC: Registered udp transport module. [ 1.451233] RPC: Registered tcp transport module. [ 1.455981] RPC: Registered tcp-with-tls transport module. [ 1.461522] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 1.468033] PCI: CLS 0 bytes, default 64 [ 1.472142] Trying to unpack rootfs image as initramfs... [ 1.477960] Initialise system trusted keyrings [ 1.482519] workingset: timestamp_bits=46 max_order=20 bucket_order=0 [ 1.489228] NFS: Registering the id_resolver key type [ 1.494346] Key type id_resolver registered [ 1.498568] Key type id_legacy registered [ 1.502621] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 1.509395] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... [ 1.516939] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. [ 1.536675] NET: Registered PF_ALG protocol family [ 1.541516] xor: measuring software checksum speed [ 1.546576] 8regs : 14701 MB/sec [ 1.551202] 32regs : 14389 MB/sec [ 1.555748] arm64_neon : 21912 MB/sec [ 1.560145] xor: using function: arm64_neon (21912 MB/sec) [ 1.565687] Key type asymmetric registered [ 1.569821] Asymmetric key parser 'x509' registered [ 1.574765] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243) [ 1.582280] io scheduler mq-deadline registered [ 1.586856] io scheduler kyber registered [ 1.590911] io scheduler bfq registered [ 1.598483] ledtrig-cpu: registered to indicate activity on CPUs [ 1.612901] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [ 1.619685] Serial: AMBA driver [ 1.624914] brd: module loaded [ 1.629276] loop: module loaded [ 1.633489] CAN device driver interface [ 1.637488] usbcore: registered new interface driver asix [ 1.642948] usbcore: registered new interface driver ax88179_178a [ 1.649109] usbcore: registered new interface driver cdc_ether [ 1.655005] usbcore: registered new interface driver net1080 [ 1.660730] usbcore: registered new interface driver cdc_subset [ 1.666714] usbcore: registered new interface driver zaurus [ 1.672346] usbcore: registered new interface driver cdc_ncm [ 1.678064] usbcore: registered new interface driver r8153_ecm [ 1.684008] VFIO - User Level meta-driver version: 0.3 [ 1.689352] usbcore: registered new interface driver uas [ 1.694730] usbcore: registered new interface driver usb-storage [ 1.700801] usbcore: registered new device driver onboard-usb-dev [ 1.707070] i2c_dev: i2c /dev entries driver [ 1.711624] usbcore: registered new interface driver uvcvideo [ 1.717431] Driver for 1-wire Dallas network protocol. [ 1.722743] Bluetooth: HCI UART driver ver 2.3 [ 1.727233] Bluetooth: HCI UART protocol H4 registered [ 1.732422] Bluetooth: HCI UART protocol BCSP registered [ 1.737793] Bluetooth: HCI UART protocol LL registered [ 1.742981] Bluetooth: HCI UART protocol ATH3K registered [ 1.748435] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 1.754773] Bluetooth: HCI UART protocol Intel registered [ 1.760228] Bluetooth: HCI UART protocol QCA registered [ 1.765510] usbcore: registered new interface driver bcm203x [ 1.771229] usbcore: registered new interface driver bpa10x [ 1.776860] usbcore: registered new interface driver bfusb [ 1.782402] usbcore: registered new interface driver btusb [ 1.787950] usbcore: registered new interface driver ath3k [ 1.793569] sdhci: Secure Digital Host Controller Interface driver [ 1.799813] sdhci: Copyright(c) Pierre Ossman [ 1.804209] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.810033] SMCCC: SOC_ID: ID = jep106:0049:0000 Revision = 0x00000000 [ 1.816705] zynqmp_firmware_probe Platform Management API v2.0 [ 1.822630] zynqmp_firmware_probe Trustzone version v1.0 [ 1.828462] xlnx_event_manager xlnx_event_manager: SGI 15 Registered over TF-A [ 1.835765] xlnx_event_manager xlnx_event_manager: Xilinx Event Management driver probed [ 1.875931] securefw securefw: securefw probed [ 1.880566] xilinx_ecdsa xilinx_ecdsa.0: ECDSA is not supported on the platform [ 1.887998] zynqmp-aes zynqmp-aes.0: AES is not supported on the platform [ 1.894898] zynqmp-sha3-384 zynqmp-sha3-384.0: SHA is not supported on the platform [ 1.902672] usbcore: registered new interface driver usbhid [ 1.908301] usbhid: USB HID core driver [ 1.912422] remoteproc remoteproc0: ebb80000.r52f is available [ 1.919046] fpga_manager fpga0: Xilinx Versal FPGA Manager registered [ 1.925781] pktgen: Packet Generator for packet performance testing. Version: 2.75 [ 1.933954] IPVS: Registered protocols (TCP, UDP, SCTP, AH, ESP) [ 1.940030] IPVS: Connection hash table configured (size=4096, memory=32Kbytes) [ 1.947466] IPVS: ipvs loaded. [ 1.950592] Initializing XFRM netlink socket [ 1.954923] NET: Registered PF_INET6 protocol family [ 1.960176] Segment Routing with IPv6 [ 1.963884] In-situ OAM (IOAM) with IPv6 [ 1.967871] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 1.974003] NET: Registered PF_PACKET protocol family [ 1.979108] NET: Registered PF_KEY protocol family [ 1.983958] Bridge firewalling registered [ 1.988003] can: controller area network core [ 1.992410] NET: Registered PF_CAN protocol family [ 1.997247] can: raw protocol [ 2.000239] can: broadcast manager protocol [ 2.004462] can: netlink gateway - max_hops=1 [ 2.008905] Bluetooth: RFCOMM TTY layer initialized [ 2.013833] Bluetooth: RFCOMM socket layer initialized [ 2.019028] Bluetooth: RFCOMM ver 1.11 [ 2.022811] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 2.028175] Bluetooth: BNEP filters: protocol multicast [ 2.033456] Bluetooth: BNEP socket layer initialized [ 2.038476] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 2.044459] Bluetooth: HIDP socket layer initialized [ 2.049487] 8021q: 802.1Q VLAN Support v1.8 [ 2.053787] 9pnet: Installing 9P2000 support [ 2.058110] Key type dns_resolver registered [ 2.062469] NET: Registered PF_VSOCK protocol family [ 2.069280] registered taskstats version 1 [ 2.073481] Loading compiled-in X.509 certificates [ 2.081273] Btrfs loaded, zoned=no, fsverity=no [ 2.092557] f1930000.serial: ttyAMA1 at MMIO 0xf1930000 (irq = 18, base_baud = 0) is a PL011 rev3 [ 2.101557] printk: legacy console [ttyAMA1] enabled [ 2.101557] printk: legacy console [ttyAMA1] enabled [ 2.111534] printk: legacy bootconsole [pl11] disabled [ 2.111534] printk: legacy bootconsole [pl11] disabled [ 2.122088] of-fpga-region fpga-region: FPGA Region probed [ 2.132224] 16 fixed-partitions partitions found on MTD device f1010000.spi.0 [ 2.139363] Creating 16 MTD partitions on "f1010000.spi.0": [ 2.144927] 0x000000000000-0x000000060000 : "Image Selector" [ 2.151031] 0x000000060000-0x0000000c0000 : "Image Selector Backup" [ 2.157584] 0x0000000c0000-0x0000000e0000 : "Image Selector Scratchpad" [ 2.164470] 0x0000000e0000-0x0000014e0000 : "Image Recovery" [ 2.170386] 0x0000014e0000-0x000001500000 : "Image Recovery Scratchpad" [ 2.177284] 0x000001500000-0x000001520000 : "SystemReady-DT Update Metadata" [ 2.184581] 0x000001520000-0x000001540000 : "SystemReady-DT Update Metadata Backup" [ 2.192485] 0x000001540000-0x000001560000 : "U-Boot Variables" [ 2.198558] 0x000001560000-0x000001580000 : "U-Boot Variables Backup" [ 2.205232] 0x000001580000-0x000008780000 : "Bank A Space" [ 2.210951] 0x000008780000-0x0000087a0000 : "U-Boot Variables Bank A" [ 2.217647] 0x0000087a0000-0x0000087c0000 : "U-Boot Variables Bank A Backup" [ 2.224946] 0x0000087c0000-0x00000f9c0000 : "Bank B Space" [ 2.230670] 0x00000f9c0000-0x00000f9e0000 : "U-Boot Variables Bank B" [ 2.237363] 0x00000f9e0000-0x00000fa00000 : "U-Boot Variables Bank B Backup" [ 2.244685] 0x00000fa00000-0x00000ffe0000 : "User Scratchpad" [ 6.419729] Freeing initrd memory: 282436K [ 6.428719] macb f1a60000.ethernet eth0: Cadence GEM rev 0x0107010b at 0xf1a60000 irq 33 (00:0a:35:1d:5b:24) [ 6.441588] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller [ 6.447085] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1 [ 6.454786] xhci-hcd xhci-hcd.0.auto: USB3 root hub has no ports [ 6.460785] xhci-hcd xhci-hcd.0.auto: hcc params 0x0238fe65 hci version 0x110 quirks 0x0000808000000810 [ 6.470181] xhci-hcd xhci-hcd.0.auto: irq 35, io mem 0xf1c00000 [ 6.476186] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.12 [ 6.484447] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 6.491669] usb usb1: Product: xHCI Host Controller [ 6.496539] usb usb1: Manufacturer: Linux 6.12.10-xilinx-gc51589ffca42 xhci-hcd [ 6.503839] usb usb1: SerialNumber: xhci-hcd.0.auto [ 6.508859] hub 1-0:1.0: USB hub found [ 6.512611] hub 1-0:1.0: 1 port detected [ 6.516650] onboard-usb-dev f1c00000.usb:hub@1: supply vdd not found, using dummy regulator [ 6.525026] onboard-usb-dev f1c00000.usb:hub@1: supply vdd2 not found, using dummy regulator [ 6.554290] rtc_zynqmp f12a0000.rtc: registered as rtc0 [ 6.559520] rtc_zynqmp f12a0000.rtc: setting system clock to 2018-04-11T16:27:03 UTC (1523464023) [ 6.568521] cdns-i2c f1950000.i2c: can't get pinctrl, bus recovery not supported [ 6.576347] pca953x 8-0020: supply vcc not found, using dummy regulator [ 6.582984] pca953x 8-0020: using no AI [ 6.592350] at24 8-0054: supply vcc not found, using dummy regulator [ 6.600161] at24 8-0054: 16384 byte 24c128 EEPROM, writable, 1 bytes/write [ 6.607078] pca954x 8-0077: supply vdd not found, using dummy regulator [ 6.615080] i2c i2c-8: Added multiplexed i2c bus 9 [ 6.619923] i2c i2c-8: Added multiplexed i2c bus 10 [ 6.624839] i2c i2c-8: Added multiplexed i2c bus 11 [ 6.629754] i2c i2c-8: Added multiplexed i2c bus 12 [ 6.634708] i2c i2c-8: Added multiplexed i2c bus 13 [ 6.639618] i2c i2c-8: Added multiplexed i2c bus 14 [ 6.644529] i2c i2c-8: Added multiplexed i2c bus 15 [ 6.649435] i2c i2c-8: Added multiplexed i2c bus 16 [ 6.654309] pca954x 8-0077: registered 8 multiplexed busses for I2C switch pca9548 [ 6.661885] i2c i2c-1: Added multiplexed i2c bus 8 [ 6.666670] pca9541 1-0072: registered master selector for I2C pca9541 [ 6.673201] cdns-i2c f1950000.i2c: 400 kHz mmio f1950000 irq 38 [ 6.679434] ufshcd-versal2 f10b0000.ufs: ufshcd_populate_vreg: Unable to find vdd-hba-supply regulator, assuming enabled [ 6.690299] ufshcd-versal2 f10b0000.ufs: ufshcd_populate_vreg: Unable to find vcc-supply regulator, assuming enabled [ 6.700809] ufshcd-versal2 f10b0000.ufs: ufshcd_populate_vreg: Unable to find vccq-supply regulator, assuming enabled [ 6.711404] ufshcd-versal2 f10b0000.ufs: ufshcd_populate_vreg: Unable to find vccq2-supply regulator, assuming enabled [ 6.722392] scsi host0: ufshcd [ 6.737439] onboard-usb-dev f1c00000.usb:hub@1: supply vdd not found, using dummy regulator [ 6.745814] onboard-usb-dev f1c00000.usb:hub@1: supply vdd2 not found, using dummy regulator [ 6.781379] scsi 0:0:0:49488: Well-known LUN MICRON MT064GBCAV1U31AA 0302 PQ: 0 ANSI: 6 [ 6.812989] scsi 0:0:0:49476: Well-known LUN MICRON MT064GBCAV1U31AA 0302 PQ: 0 ANSI: 6 [ 6.827387] of_cfs_init [ 6.829846] of_cfs_init: OK [ 6.832672] clk: Disabling unused clocks [ 6.836904] PM: genpd: Disabling unused power domains [ 6.841994] ALSA device list: [ 6.843375] scsi 0:0:0:49456: Well-known LUN MICRON MT064GBCAV1U31AA 0302 PQ: 0 ANSI: 6 [ 6.844949] No soundcards found. [ 6.880633] Freeing unused kernel memory: 3200K [ 6.885192] Run /init as init process [ 6.894230] systemd[1]: System time before build time, advancing clock. [ 6.903791] systemd[1]: systemd 255.17^ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -TPM2 -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified) [ 6.935699] systemd[1]: Detected architecture arm64. Welcome to AMD Embedded Development Framework Linux distribution 25.05+release-73008f61d4e6c72ad4512fad0c73994186e1b247 (scarthgap)! [ 6.961896] systemd[1]: Hostname set to <amd-edf>. [ 6.966754] systemd[1]: Initializing machine ID from random generator. [ 7.054578] systemd[1]: Queued start job for default target Multi-User System. [ 7.094964] systemd[1]: Created slice Slice /system/getty. [ OK ] Created slice Slice /system/getty. [ 7.110244] systemd[1]: Created slice Slice /system/modprobe. [ OK ] Created slice Slice /system/modprobe. [ 7.126231] systemd[1]: Created slice Slice /system/serial-getty. [ OK ] Created slice Slice /system/serial-getty. [ 7.142156] systemd[1]: Created slice User and Session Slice. [ OK ] Created slice User and Session Slice. [ 7.157920] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [ OK ] Started Dispatch Password Requests to Console Directory Watch. [ 7.177886] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [ OK ] Started Forward Password Requests to Wall Directory Watch. [ 7.197893] systemd[1]: Reached target Path Units. [ OK ] Reached target Path Units. [ 7.209854] systemd[1]: Reached target Remote File Systems. [ OK ] Reached target Remote File Systems. [ 7.225848] systemd[1]: Reached target Slice Units. [ OK ] Reached target Slice Units. [ 7.237850] systemd[1]: Reached target Swaps. [ OK ] Reached target Swaps. [ 7.272768] systemd[1]: Listening on RPCbind Server Activation Socket. [ OK ] Listening on RPCbind Server Activation Socket. [ 7.289897] systemd[1]: Reached target RPC Port Mapper. [ OK ] Reached target RPC Port Mapper. [ 7.306027] systemd[1]: Listening on Syslog Socket. [ OK ] Listening on Syslog Socket. [ 7.317932] systemd[1]: Listening on initctl Compatibility Named Pipe. [ OK ] Listening on initctl Compatibility Named Pipe. [ 7.338090] systemd[1]: Listening on Journal Audit Socket. [ OK ] Listening on Journal Audit Socket. [ 7.353947] systemd[1]: Listening on Journal Socket (/dev/log). [ OK ] Listening on Journal Socket (/dev/log). [ 7.369833] random: crng init done [ 7.369986] systemd[1]: Listening on Journal Socket. [ OK ] Listening on Journal Socket. [ 7.385990] systemd[1]: Listening on Network Service Netlink Socket. [ OK ] Listening on Network Service Netlink Socket. [ 7.401993] systemd[1]: Listening on udev Control Socket. [ OK ] Listening on udev Control Socket. [ 7.417950] systemd[1]: Listening on udev Kernel Socket. [ OK ] Listening on udev Kernel Socket. [ 7.433946] systemd[1]: Listening on User Database Manager Socket. [ OK ] Listening on User Database Manager Socket. [ 7.473910] systemd[1]: Mounting Huge Pages File System... Mounting Huge Pages File System... [ 7.490728] systemd[1]: Mounting POSIX Message Queue File System... Mounting POSIX [ 7.498022] systemd[1]: Mounting Kernel Debug File System... Message Queue File System... Mounting Kernel[ 7.518041] systemd[1]: Kernel Trace File System was skipped because of an unmet condition check (ConditionPathExists=/sys/kernel/tracing). Debug File System... [ 7.534252] systemd[1]: Mounting Temporary Directory /tmp... Mounting Tempor[ 7.543030] systemd[1]: Starting Create List of Static Device Nodes... ary Directory /tmp... Starting Create[ 7.558860] systemd[1]: Starting Load Kernel Module configfs... List of Static Device Nodes... Starting Load K[ 7.578874] systemd[1]: Starting Load Kernel Module drm... ernel Module configfs... Starting Load K[ 7.598872] systemd[1]: Starting Load Kernel Module fuse... ernel Module drm... Starting Load K[ 7.618993] systemd[1]: Starting RPC Bind... ernel Module fuse... Starting RPC Bi[ 7.634060] systemd[1]: File System Check on Root Device was skipped because of an unmet condition check (ConditionPathIsReadWrite=!/). nd... [ 7.650751] systemd[1]: Starting Journal Service... Starting Journa[ 7.667073] systemd[1]: Starting Load Kernel Modules... l Service... Starting Load Kernel Modules... [ 7.687274] openvswitch: Open vSwitch switching datapath [ 7.695209] systemd[1]: Starting Generate network units from Kernel command line... [ 7.696752] systemd-journald[246]: Collecting audit messages is enabled. Starting Genera[ 7.710745] systemd[1]: Starting Remount Root and Kernel File Systems... te network units from Kernel command line... Starting Remoun[ 7.735002] systemd[1]: Starting Coldplug All udev Devices... t Root and Kernel File Systems... Starting Coldpl[ 7.751181] systemd[1]: Started RPC Bind. ug All udev Devices... [ OK ] Started RPC Bind. [ 7.774325] systemd[1]: Mounted Huge Pages File System. [ OK ] Mounted Huge Pages File System. [ 7.793991] systemd[1]: Mounted POSIX Message Queue File System. [ OK ] Mounted POSIX Message Queue File System. [ 7.809950] systemd[1]: Mounted Kernel Debug File System. [ OK ] Mounted Kernel Debug File System. [ 7.829952] systemd[1]: Mounted Temporary Directory /tmp. [ OK ] Mounted Temporary Directory /tmp. [ 7.846155] systemd[1]: Finished Create List of Static Device Nodes. [ OK ] Finished Create List of Static Device Nodes. [ 7.862105] systemd[1]: modprobe@configfs.service: Deactivated successfully. [ 7.869327] systemd[1]: Finished Load Kernel Module configfs. [ OK ] Finished Load Kernel Module configfs. [ 7.886106] systemd[1]: modprobe@drm.service: Deactivated successfully. [ 7.892882] systemd[1]: Finished Load Kernel Module drm. [ OK ] Finished Load Kernel Module drm. [ 7.910167] systemd[1]: modprobe@fuse.service: Deactivated successfully. [ 7.917040] systemd[1]: Finished Load Kernel Module fuse. [ OK ] Finished Load Kernel Module fuse. [ 7.934235] systemd[1]: Finished Load Kernel Modules. [ OK ] Finished Load Kernel Modules. [ 7.950183] systemd[1]: Finished Generate network units from Kernel command line. [ OK ] Finished Generate network units from Kernel command line. [ 7.970098] systemd[1]: Finished Remount Root and Kernel File Systems. [ OK ] Finished Remount Root and Kernel File Systems. [ 7.994103] systemd[1]: Finished Coldplug All udev Devices. [ OK ] Finished Coldplug All udev Devices. [ 8.053989] systemd[1]: Mounting NFSD configuration filesystem... Mounting NFSD configuration filesystem... [ 8.069977] systemd[1]: FUSE Control File System was skipped because of an unmet condition check (ConditionPathExists=/sys/fs/fuse/connections). [ 8.083814] systemd[1]: Mounting Kernel Configuration File System... Mounting Kernel[ 8.090447] systemd[1]: Rebuild Hardware Database was skipped because no trigger condition checks were met. Configuration File System..[ 8.103979] systemd[1]: Starting Apply Kernel Variables... . Starting Apply [ 8.122935] systemd[1]: Starting Create Static Device Nodes in /dev gracefully... Kernel Variables... Starting Create[ 8.142473] systemd[1]: Mounted NFSD configuration filesystem. Static Device Nodes in /dev gracefully... [ OK ] Mounted NFSD configuration filesystem. [ 8.170091] systemd[1]: Mounted Kernel Configuration File System. [ OK ] Mounted Kernel Configuration File System. [ 8.190147] systemd[1]: Finished Apply Kernel Variables. [ OK ] Finished Apply Kernel Variables. [ 8.206110] systemd[1]: Finished Create Static Device Nodes in /dev gracefully. [ OK ] Finished Create Static Device Nodes in /dev gracefully. [ 8.266002] systemd[1]: Starting Create System Users... Starting Create System Users... [ 8.283136] audit: type=1334 audit(1736360578.384:2): prog-id=6 op=LOAD [ 8.289755] audit: type=1334 audit(1736360578.388:3): prog-id=7 op=LOAD [ 8.296364] audit: type=1334 audit(1736360578.396:4): prog-id=8 op=LOAD [ 8.296983] systemd[1]: Starting User Database Manager... Starting User Database Manager... [ 8.326314] systemd[1]: Started User Database Manager. [ OK ] Started User Database Manager. [ 8.345301] systemd[1]: Finished Create System Users. [ OK ] Finished Create System Users. [ 8.394015] systemd[1]: Starting Create Static Device Nodes in /dev... Starting Create Static Device Nodes in /dev... [ 8.414230] systemd[1]: Finished Create Static Device Nodes in /dev. [ OK ] Finished Create Static Device Nodes in /dev. [ 8.429993] systemd[1]: Reached target Preparation for Local File Systems. [ OK ] Reached target Preparation for Local File Systems. [ 8.477909] systemd[1]: Mounting /var/volatile... Mounting /var/volatile... [ 8.490513] audit: type=1334 audit(1736360578.592:5): prog-id=9 op=LOAD [ 8.497126] audit: type=1334 audit(1736360578.596:6): prog-id=10 op=LOAD [ 8.497797] systemd[1]: Starting Rule-based Manager for Device Events and Files... Starting Rule-b[ 8.512035] systemd[1]: Mounted /var/volatile. ased Manager for Device Events and Files... [ OK ] Mounted /var/volatile. [ 8.541998] systemd[1]: Bind mount volatile /var/cache was skipped because of an unmet condition check (ConditionPathIsReadWrite=!/var/cache). [ 8.554804] systemd[1]: Bind mount volatile /var/lib was skipped because of an unmet condition check (ConditionPathIsReadWrite=!/var/lib). [ 8.568269] systemd[1]: Starting Load/Save OS Random Seed... Starting Load/S[ 8.574100] systemd[1]: Bind mount volatile /var/spool was skipped because of an unmet condition check (ConditionPathIsReadWrite=!/var/spool). ave OS Random Seed... [ 8.589715] systemd[1]: Bind mount volatile /srv was skipped because of an unmet condition check (ConditionPathIsReadWrite=!/srv). [ 8.603835] systemd[1]: Reached target Local File Systems. [ OK ] Reached target Local File Systems. [ 8.626954] systemd[1]: Starting Rebuild Dynamic Linker Cache... Starting Rebuil[ 8.633483] systemd[1]: Finished Load/Save OS Random Seed. d Dynamic Linker Cache... [ OK ] Finished Load/Save OS Random Seed. [ 8.662086] systemd[1]: First Boot Complete was skipped because of an unmet condition check (ConditionFirstBoot=yes). [ 8.672838] systemd[1]: Commit a transient machine-id on disk was skipped because of an unmet condition check (ConditionPathIsMountPoint=/etc/machine-id). [ 8.686970] systemd[1]: Finished Rebuild Dynamic Linker Cache. [ OK ] Finished Rebuild Dynamic Linker Cache. [ 8.703101] systemd[1]: Started Rule-based Manager for Device Events and Files. [ OK ] Started Rule-based Manager for Device Events and Files. [ 8.809953] memory_group_manager: loading out-of-tree module taints kernel. [ 8.817973] physical-memory-group-manager axi:physical-memory-group-manager: Memory group manager probed successfully [ 8.918908] mali_gpu_power axi:gpu@ed000000: Initializing module mode = PTM [ 8.925927] mali_gpu_power axi:gpu@ed000000: Continuing without Mali regulator control [ 8.933865] mali_gpu_power axi:gpu@ed000000: Continuing without Mali clock control [ 8.934004] mali_gpu_power axi:gpu@ed000000: Invalid operating-points in device tree. [ 8.949814] mali_gpu_power axi:gpu@ed000000: Probed with children [ 8.959275] mali_gpu_system ed700000.gpu_system: Probed [ 8.967834] mali_gpu_assign ed710000.gpu_assign: Resource Group Assignment:- [ 8.967834] RG0 BUS[A] S[0 1] P[0 1 2 3] W[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] [ 8.967834] RG1 BUS[A] S[ ] P[ ] W[ ] [ 8.967834] RG2 BUS[A] S[ ] P[ ] W[ ] [ 8.967834] RG3 BUS[A] S[ ] P[ ] W[ ] [ 9.004769] mali_gpu_assign ed710000.gpu_assign: Probed [ 9.010624] systemd[1]: Starting Virtual Console Setup... Starting Virtua[ 9.017400] mali_pm_config ed020000.gpu_partition_config: Probed l Console Setup... [ 9.017776] mali ed0e0000.gpu: Kernel DDK version r51p0-00eac0 [ 9.033110] mali ed0e0000.gpu: GPU metrics tracepoint support enabled [ 9.039662] mali ed0e0000.gpu: arbiter_if driver not available [ 9.045492] mali ed0e0000.gpu: Failed to initialise arbif module. (err = -517) [ 9.045512] mali ed0e0000.gpu: Device initialization Deferred [ 9.059013] mali ed0e0000.gpu: Kernel DDK version r51p0-00eac0 [ 9.064894] mali ed0e0000.gpu: GPU metrics tracepoint support enabled [ 9.065118] mali_pm_control ed030000.gpu_partition_control: Probed [ 9.071526] mali ed0e0000.gpu: arbiter_if driver not available [ 9.083342] mali ed0e0000.gpu: Failed to initialise arbif module. (err = -517) [ 9.083360] mali ed0e0000.gpu: Device initialization Deferred [ 9.096473] mali ed0e0000.gpu: Kernel DDK version r51p0-00eac0 [ 9.098005] systemd[1]: Finished Virtual Console Setup. [ 9.102348] mali ed0e0000.gpu: GPU metrics tracepoint support enabled [ OK ] Finished 9.114096] mali ed0e0000.gpu: arbiter_if driver not available [ 9.122778] mali ed0e0000.gpu: Failed to initialise arbif module. (err = -517) [ 9.132862] mali ed0e0000.gpu: Device initialization Deferred [ 9.142322] mali_gpu_power axi:gpu@ed000000: Clock not available for devfreq [ 9.149404] mali_gpu_resource_group ed0a0000.gpu_resource_group: Arbiter created [ 9.156863] mali_gpu_resource_group ed0a0000.gpu_resource_group: Probed [ 9.163869] mali ed0e0000.gpu: Kernel DDK version r51p0-00eac0 [ 9.164847] mali_gpu_resource_group ed0a0000.gpu_resource_group: GPU subinstance is in invalid state 1 [ 9.169735] mali ed0e0000.gpu: GPU metrics tracepoint support enabled [ 9.179021] mali_gpu_resource_group ed0a0000.gpu_resource_group: GPU subinstance is in invalid state 1 [ 9.185515] mali ed0e0000.gpu: arbiter_if driver not available [ 9.194740] mali_gpu_resource_group ed0a0000.gpu_resource_group: GPU subinstance is in invalid state 1 [ 9.200558] mali ed0e0000.gpu: Failed to initialise arbif module. (err = -517) [ 9.200576] mali ed0e0000.gpu: Device initialization Deferred [ 9.209858] mali_gpu_resource_group ed0a0000.gpu_resource_group: GPU subinstance is in invalid state 1 [ 9.232095] mali_gpu_resource_group ed0a0000.gpu_resource_group: GPU subinstance is in invalid state 1 [ 9.241616] mali_gpu_resource_group ed0a0000.gpu_resource_group: GPU subinstance is in invalid state 1 [ 9.250936] mali_gpu_resource_group ed0a0000.gpu_resource_group: GPU subinstance is in invalid state 1 [ 9.251492] mali_gpu_aw ed0fffc0.gpu_aw_message: Probed [ 9.260324] mali_gpu_resource_group ed0a0000.gpu_resource_group: GPU subinstance is in invalid state 1 [ 9.265731] mali ed0e0000.gpu: Kernel DDK version r51p0-00eac0 [ 9.280704] mali ed0e0000.gpu: GPU metrics tracepoint support enabled [ 9.280825] mali_gpu_resource_group ed0a0000.gpu_resource_group: GPU subinstance is in invalid state 1 [ 9.289872] misc dma_buf_te: dma_buf_te ready [ 9.297848] mali ed0e0000.gpu: Kbase probe Deferred after waiting 1 ms to receive GPU_GRANT [ 9.307583] systemd[1]: Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch. [ 9.307752] mali_gpu_resource_group ed0a0000.gpu_resource_group: GPU subinstance is in invalid state 1 [ 9.309168] mali ed0e0000.gpu: Early device initialization failed error = -19 [ 9.333565] mali ed0e0000.gpu: Device initialization failed [ OK ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch. [ *** ] A start job is running for Journal Service (6s / 1min 30s) [ 13.709831] xhci-hcd xhci-hcd.0.auto: Error while assigning device slot ID: Command Aborted [ 13.718185] xhci-hcd xhci-hcd.0.auto: Max number of devices this xHCI host supports is 64. [ 13.726448] usb usb1-port1: couldn't allocate usb_device [ OK ] Started Journal Service. Starting Flush Journal to Persistent Storage 13.805299] systemd-journald[246]: Received client request to flush runtime journal. m... [ OK ] Finished Flush Journal to Persistent Storage. Starting Create System Files and Directories... [ OK ] Finished Create System Files and Directories. Starting Run pending postinsts... Starting Rebuild Journal Catalog... [ 13.895447] Unloading old XRT Linux kernel modules [ 13.903358] audit: type=1334 audit(1736360584.004:7): prog-id=11 op=LOAD [ 13.903415] Loading new XRT Linux kernel modules Starting Network Name Resolution... [ 13.923603] audit: type=1334 audit(1736360584.024:8): prog-id=12 op=LOAD [ 13.927368] INFO: Creating ICD entry for Xilinx Platform Starting Network Time Synchronization... Starting Record System Boot/Shutdown in UTMP... [ OK ] Finished Rebuild Journal Catalog. Starting Update is Completed... [ OK ] Finished Record System Boot/Shutdown in UTMP. [ OK ] Started Network Time Synchronization. [ OK ] Started Network Name Resolution. [ OK ] Finished Update is Completed. [ OK ] Reached target Host and Network Name Lookups. [ OK ] Reached target System Time Set. [ 14.415380] audit: type=1334 audit(1736360584.516:9): prog-id=13 op=LOAD [ 14.422092] audit: type=1334 audit(1736360584.516:10): prog-id=12 op=UNLOAD [ 14.429046] audit: type=1334 audit(1736360584.524:11): prog-id=14 op=LOAD [ 14.435828] audit: type=1334 audit(1736360584.524:12): prog-id=6 op=UNLOAD [ 14.442695] audit: type=1334 audit(1736360584.528:13): prog-id=15 op=LOAD [ 14.449476] audit: type=1334 audit(1736360584.536:14): prog-id=16 op=LOAD [ 14.456256] audit: type=1334 audit(1736360584.536:15): prog-id=7 op=UNLOAD [ 14.463121] audit: type=1334 audit(1736360584.536:16): prog-id=8 op=UNLOAD [ OK ] Finished Run pending postinsts. [ OK ] Reached target System Initialization. [ OK ] Started Daily rotation of log files. [ OK ] Started Daily Cleanup of Temporary Directories. [ OK ] Reached target Timer Units. [ OK ] Listening on D-Bus System Message Bus Socket. Starting Docker Socket for the API... Starting sshd.socket... [ OK ] Listening on Docker Socket for the API. [ OK ] Listening on sshd.socket. [ OK ] Reached target Socket Units. [ OK ] Reached target Basic System. Starting Modem Manager... [ OK ] Started Job spooling tools. [ OK ] Started Periodic Command Scheduler. Starting D-Bus System Message Bus... Starting dfx-mgrd Dynamic Function eXchange... Starting IPv6 Packet Filtering Framework... Starting IPv4 Packet Filtering Framework... [ OK ] Started System Logging Service. Starting User Login Management... Starting OpenSSH Key Generation... [ OK ] Started D-Bus System Message Bus. [ OK ] Started dfx-mgrd Dynamic Function eXchange. [ OK ] Started User Login Management. [ OK ] Finished IPv6 Packet Filtering Framework. [ OK ] Finished IPv4 Packet Filtering Framework. [ OK ] Reached target Preparation for Network. Starting dfx-mgrd Default Firmware Load Service... Starting Network Configuration... [ OK ] Started Modem Manager. [ OK ] Started Network Configuration. [ OK ] Reached target Network. Starting containerd container runtime... Starting Wait for Network to be Configured... Starting Permit User Sessions... Starting Target Communication Framework agent... [ OK ] Started Xinetd A Powerful Replacement For Inetd. [ OK ] Finished OpenSSH Key Generation. [ OK ] Finished Permit User Sessions. [ OK ] Started Target Communication Framework agent. [ OK ] Started Getty on tty1. [ OK ] Started Serial Getty on ttyAMA1. [ OK ] Reached target Login Prompts. [ OK ] Started containerd container runtime. [ OK ] Finished dfx-mgrd Default Firmware Load Service. AMD Embedded Development Framework Linux distribution 25.05+release-73008f61d4e6c72ad4512fad0c73994186e1b247 amd-edf ttyAMA1 amd-edf login: amd-edf You are required to change your password immediately (administrator enforced). New password: Retype new password: WARNING: AMD Embedded Development Framework is a reference Yocto Project distribution that should be used for testing and development purposes only. It is recommended that you create your own distribution for production use. amd-edf:~$ sudo -i We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. For security reasons, the password you type will not be visible. Password: root@amd-edf:~# tftp tftp> con 10.10.70.101 tftp> get shell.json get ispReceived 59 bytes in 0.0 seconds tftp> _lilo_vmix_mm_2mc_rpu_pld.pdi get lilo_0521_test_1.dtbo Received 7221232 bytes in 3.1 seconds tftp> Received 11555 bytes in 0.0 seconds tftp> q root@amd-edf:~# mkdir -p /lib/firmware/xilinx/vek385_lilo root@amd-edf:~# cp shell.json isp_lilo_vmix_mm_2mc_rpu_pld.pdi lilo_0521_test_1.dtbo /lib/firmware/xilinx/vek385_lilo/ root@amd-edf:~# cd /lib/firmware/ root@amd-edf:/lib/firmware# ls ald3xx.fw ale2xx.fw isp-r52-6-firmware.elf versal2_main.elf xilinx root@amd-edf:/lib/firmware# echo isp-r52-6-firmware.elf > /sys/class/remoteproc/remoteproc0/firmware root@amd-edf:/lib/firmware# echo start > /sys/class/remoteproc/remoteproc0/state root@amd-edf:/lib/firmware# RPU_FW_START_ADDR - 0xC000000 RPU_FW_SIZE - 0x5125FFF RPU_LOAD_CALIB_START_ADDR - 0x11126000 RPU_LOAD_CALIB_SIZE - 0x28000 RPU_PRIV_MEM_START_ADDR - 0x1114E000 RPU_PRIV_MEM_SIZE - 0x1001000 RPU_MBOX_START_ADDR - 0x1829E000 RPU_MBOX_SIZE - 0x400000 RPU_SHM_SIZE - 0x40000 RPU_MBOX_RPUSHM_SIZE - 0x43FFFF RPU_LOAD_CALIB_PRIV_MEM_SIZE - 0x1028FFF Telluride_ISP_SW : Built on: May 3 2025 at 13:26:31 with sensorlib * VERSION : 0.1 Running Firmware... cpu_id-6 MBOX_start_Addr:0x1829E000 _MBOX_MEM_SIZE:0x400000 root@amd-edf:/lib/firmware# dmesg -n 8 root@amd-edf:/lib/firmware# root@amd-edf:/lib/firmware# root@amd-edf:/lib/firmware# ls ald3xx.fw ale2xx.fw isp-r52-6-firmware.elf versal2_main.elf xilinx root@amd-edf:/lib/firmware# cd root@amd-edf:~# dfx-mgr-client -load vek385_lilo [ 168.389736] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga-region/firmware-name [ 168.400140] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/misc_clk_1 [ 168.410143] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/misc_clk_0 [ 168.420137] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/misc_clk_2 [ 168.430131] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/misc_clk_7 [ 168.440129] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/misc_clk_6 [ 168.450122] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/misc_clk_4 [ 168.460116] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/misc_clk_5 [ 168.470110] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/misc_clk_3 [ 168.480104] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/frmbuf_wr_ss_frmbuf_rst_gpio [ 168.491660] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/frmbuf_wr_ss_v_frmbuf_wr_0 [ 168.503043] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/frmbuf_wr_ss_v_frmbuf_wr_1 [ 168.514426] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/visp_ss_0 [ 168.524332] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/portss00 [ 168.534152] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/visp_outvisp_ss_0 [ 168.544753] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/vcap_visp_ss_0 [ 168.555093] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/vcap_portsvisp_ss_0 [ 168.565868] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/vcap_portvisp_ss_0 [ 168.576556] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/frmbuf_wr_ss_v_frmbuf_wr_0visp_ss_0 [ 168.588720] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/visp_ss_1 [ 168.598628] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/portss01 [ 168.608447] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/visp_outvisp_ss_1 [ 168.619048] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/vcap_visp_ss_1 [ 168.629389] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/vcap_portsvisp_ss_1 [ 168.640163] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/vcap_portvisp_ss_1 [ 168.650851] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/frmbuf_wr_ss_v_frmbuf_wr_1visp_ss_1 [ 168.663015] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/visp_mbox_rpu_6 [ 168.686673] OF: /axi/gpio@b00c0000: could not get #clock-cells for /axi/spi@f1010000/flash@0 [ 168.695507] xilinx-frmbuf b0000000.v_frmbuf_wr: Xilinx AXI frmbuf DMA_DEV_TO_MEM [ 168.702950] xilinx-frmbuf b0000000.v_frmbuf_wr: Xilinx AXI FrameBuffer Engine Driver Probed!! [ 168.711680] xilinx-frmbuf b0010000.v_frmbuf_wr: Xilinx AXI frmbuf DMA_DEV_TO_MEM [ 168.719097] xilinx-frmbuf b0010000.v_frmbuf_wr: Xilinx AXI FrameBuffer Engine Driver Probed!! vek385_lilo: Loaded with slot_handle 0 root@amd-edf:~# root@amd-edf:~# root@amd-edf:~# root@amd-edf:/lib/firmware# insmod /lib/modules/6.12.10-xilinx-gc51589ffca42/updates/visp_mbox/visp_mbox.ko [ 197.335584] Initializing AMD MBox driver. [ 197.339778] visp_mbox_driver axi:visp_mbox_rpu_6: rpu_id read from device tree: 6 [ 197.347347] visp_mbox_driver axi:visp_mbox_rpu_6: Setting up mailboxes for RPU with ID 6 [ 197.355431] visp_mbox_driver axi:visp_mbox_rpu_6: Mailbox work handler initialized. [ 197.363207] reserved_memory_init: Successfully initialized reserved memory for node 'isp_mbox_buffer'. [ 197.372512] visp_mbox_driver axi:visp_mbox_rpu_6: Mailbox successfully initialized for RPU ID: 6 [ 197.381334] AMD MBox driver registered successfully. root@amd-edf:/lib/firmware# insmod /lib/modules/6.12.10-xilinx-gc51589ffca42/updates/visp_lilo/visp_lilo.ko [ 203.158108] visp-isp-subdev-lilo b1300000.visp_ss: xlnx,io_mode: lilo [ 203.164552] visp-isp-subdev-lilo b1300000.visp_ss: xlnx,num_streams: 1 [ 203.171079] visp-isp-subdev-lilo b1300000.visp_ss: xlnx,mem_inputs: 0 [ 203.177511] visp-isp-subdev-lilo b1300000.visp_ss: xlnx,rpu: 6 [ 203.183338] visp-isp-subdev-lilo b1300000.visp_ss: IBA0: ppc=4, vcid=0, frame_rate=60, data_format=12, max_width=3840, max_height=2160 [ 203.195445] visp-isp-subdev-lilo b1300000.visp_ss: visp_parse_params 2368 pa:286416896 size :163840 [ 203.204485] visp-isp-subdev-lilo b1300000.visp_ss: OBA0: ppc=4, bpp=10, data_format=YUV422 [ 203.212831] visp-isp-subdev-lilo b1300000.visp_ss: OBA1: ppc=4, bpp=10, data_format=YUV422 [ 203.221648] visp-isp-subdev-lilo b1300000.visp_ss: visp isp driver probe success [ 203.229136] visp-isp-subdev-lilo b1310000.visp_ss: xlnx,io_mode: lilo [ 203.229298] xilinx-video axi:vcap_visp_ss_0: Entity type for entity visp-isp-subdev-lilo.0 was not initialized! [ 203.235592] visp-isp-subdev-lilo b1310000.visp_ss: xlnx,num_streams: 1 [ 203.245882] xilinx-video axi:vcap_visp_ss_0: device registered [ 203.252186] visp-isp-subdev-lilo b1310000.visp_ss: xlnx,mem_inputs: 0 [ 203.252188] visp-isp-subdev-lilo b1310000.visp_ss: xlnx,rpu: 6 [ 203.252192] visp-isp-subdev-lilo b1310000.visp_ss: IBA4: ppc=4, vcid=0, frame_rate=60, data_format=12, max_width=3840, max_height=2160 [ 203.282355] visp-isp-subdev-lilo b1310000.visp_ss: visp_parse_params 2368 pa:286416896 size :163840 [ 203.291396] visp-isp-subdev-lilo b1310000.visp_ss: OBA0: ppc=4, bpp=10, data_format=YUV422 [ 203.299739] visp-isp-subdev-lilo b1310000.visp_ss: OBA1: ppc=4, bpp=10, data_format=YUV422 [ 203.308312] visp-isp-subdev-lilo b1310000.visp_ss: visp isp driver probe success [ 203.316184] xilinx-video axi:vcap_visp_ss_1: Entity type for entity visp-isp-subdev-lilo.1 was not initialized! root@amd-edf:/lib/firmware# [ 203.326406] xilinx-video axi:vcap_visp_ss_1: device registered root@amd-edf:/lib/firmware# insmod /lib/modules/6.12.10-xilinx-gc51589ffca42/updates/visp_video/visp_video.ko [ 208.841767] visp-video driver insmod success root@amd-edf:/lib/firmware# root@amd-edf:/lib/firmware# echo 0 sensor_id=2 > /proc/vsi/isp_subdev0 root@amd-edf:/lib/firmware# echo 0 sensor_id=6 > /proc/vsi/isp_subdev1 root@amd-edf:/lib/firmware# echo 0 xml=/usr/share/limo_example_jsons/OX03f10.xml > /proc/vsi/isp_subdev0 root@amd-edf:/lib/firmware# echo 0 auto_json=/usr/share/limo_example_jsons/auto.json > /proc/vsi/isp_subdev0 root@amd-edf:/lib/firmware# echo 0 manu_json=/usr/share/limo_example_jsons/manual_ext.json > /proc/vsi/isp_subdev0 root@amd-edf:/lib/firmware# echo 0 xml=/usr/share/limo_example_jsons/OX03f10.xml > /proc/vsi/isp_subdev1 root@amd-edf:/lib/firmware# echo 0 auto_json=/usr/share/limo_example_jsons/auto.json > /proc/vsi/isp_subdev1 root@amd-edf:/lib/firmware# echo 0 manu_json=/usr/share/limo_example_jsons/manual_ext.json > /proc/vsi/isp_subdev1 root@amd-edf:/lib/firmware# root@amd-edf:/lib/firmware# isp_media_server & [1] 945 root@amd-edf:/lib/firmware# [ 260.602423] visp-isp-subdev-lilo b1300000.visp_ss: visp_return_rpu_id 1291 returning RPU id: 6 for ISP : 0 [ 260.613562] visp-isp-subdev-lilo b1310000.visp_ss: visp_return_rpu_id 1291 returning RPU id: 6 for ISP : 1 root@amd-edf:/lib/firmware# ###gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" ! queue ! perf name=ISP0_MP_FS ! fakesink -v & root@amd-edf:/lib/firmware# gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" ! queue ! perf name=ISP0_MP_FS ! fakesink -v & [2] 949 root@amd-edf:/lib/firmware# ** (gst-plugin-scanner:950): CRITICAL **: 18:27:37.023: Couldn't g_module_open libpython. Reason: /usr/lib/libpython3.12.so: cannot open shared object file: No such file or directory Setting pipeline to PAUSED ... Pipeline is APU_2_RPU_MB_CMD_CREATE_INSTANCE coreid 6 HAL_RESERVED_MEM_PRIV_STAR:0x1114E000 HAL_RESERVED_MEM_PRIV_SIZE:0x1001000 live and does not need PREROLL ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSy[ 287.047452] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: parse /proc/vsi/isp_subdev0 info: stemClock [ 287.059687] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: isp : 0 [ 287.068543] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: port: 0 [ 287.076455] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: name: ox03f10 [ 287.084974] visp-isp-subdev-lilo b1300000.visp_ss: Sensor name : ox03f10 [ 287.091671] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: mode: 0 [ 287.099586] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: xml : /usr/share/limo_example_jsons/OX03f10.xml [ 287.110969] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: manu_json: /usr/share/limo_example_jsons/manual_ext.json [ 287.123134] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: auto_json: /usr/share/limo_example_jsons/auto.json [ 287.134779] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: sensor_id: 2 [ 287.143125] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: port: 0 [ 287.151036] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: buf_mode: [ 287.159207] visp-isp-subdev-lilo b1300000.visp_ss: MediaIspCalibLoadIspConfig: port: 0 APU_2_RPU_MB_CMD_SENSOR_MAPPING coreid 6 sensorDrvHandle->cameraDriverID: 5768006. sensorDrvHandle->pIsiGetSensorIss: C1D5C8C. sensorDrvHandle->cameraDevId: 0. [ 287.199434] visp-isp-subdev-lilo b1300000.visp_ss: Registering the SensorDrvHandle, this can take some time... APU_2_RPU_MB_CMD_SENSOR_DRV_HANDLE_REG coreid 6 RPU pSensorDrv->sensorDrvHandle: C49DAC8. RPU pSensorDrv->sensorDevId: 2. RPU pcamcfg->cameraDriverID: 580346. RPU pcamcfg->pIsiGetSensorIss: C1D5C8C. desId 1 pipeId:2 i2c: i2c_driver_init start In func init_MUX 760 In func IicPsInit 241 In func IicPsInit 246 In func IicPsInit 253 Config->BaseAddress:0xF1940000 instance in PSinit:0x0 In func IicPsInit 271 In func IicPsInit 277 In func init_MUX 762 IICPS init done No Mux Present i2c: i2c_driver_init done ******************************************************** FMC Init Started... Remapping I2c Address on FMC started... Remapping I2c Address on FMC Done... Reverting I2C Bus to 400KHz ..... Reverting to 400Khz Setting Running I2C Bus at 400KHz ..... FMC Init Done ******************************************************** On-Board Sensor Status==> De-serializer Sensor on link-a Sensor on link-b 1 N N 2 Y N 3 N N 4 Y N 5 N N 6 N N 7 N N Initializing De-serializer at Virtual Address = 0x68 Initialization Done. sensor: enter init_sensor 3MP Sensor Selected Programming Link-A Device Initializing Serializer(max9295-2) at Virtual Addr: 0x64 on Serial Link A Initialization Done... enter init_iic_access Malloc added g_fmc_single.iic_array[in_pipe]->readIIC 0x0, 0xC49DDB0 g_fmc_single.iic_array[in_pipe]->writeIIC 0x0, 0xC49DDB4 APU_2_RPU_MB_CMD_SENSOR_QUERY coreid 6 ParseControlCommand 782 [ 347.468955] visp-isp-subdev-lilo b1300000.visp_ss: Reserved memory 'isp0_reserve_memory' not found, defaulting to 32-bit memory RPU_debug OBA: oba_conf.isp_instance 0 , oba_conf.path_info 0 , oba_conf.isp_instance 0 instanceId:0 address:0xE8540000 RPU_debug OBA: oba_conf.isp_instance 0 , oba_conf.path_info 1 , oba_conf.isp_instance 0 instanceId:0 address:0xE8540000 /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, frameratAPU_2_RPU_MB_CMD_LOAD_CALIBRATION coreid 6 p_data:0x11126000 e=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, fRPU test the offset is 81369808 RPU test calibCfg.sensor.ccNumber is 5 ramerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(fractAPU_2_RPU_MB_CMD_SENSOR_OPEN coreid 6 ion)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstPerf:ISP0_MP_FS.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstPerf:ISP0_MP_FS.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB xml :/usr/share/limo_example_jsons/OX03f10.xml IBA inputs width 1920, input height 1080, portid - 0 APU_2_RPU_MB_CMD_SENSOR_SET_TP coreid 6 APU_2_RPU_MB_CMD_CONNECT_CAMERA coreid 6 Jsons : /usr/share/limo_example_jsons/auto.json /usr/share/limo_example_jsons/manual_ext.json RPU_2_APU_MB_CMD_REGISTER_AELIB coreid 6 APU_2_RPU_MB_CMD_REGISTER_AWB_LIB coreid 6 APU_2_RPU_MB_CMD_SENSOR_GET_MODE_INFO coreid 6 APU_2_RPU_MB_CMD reset submodule coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD_AE_SET_MODE coreid 6 APU_2_RPU_MB_CMD_AE_SET_ROI coreid 6 APU_2_RPU_MB_CMD submodule get version cmd id: 289, coreid 6 APU_2_RPU_MB_CMD_AE_SET_EXP_TBL coreid 6 APU_2_RPU_MB_CMD submodule enable, cmd id:131, coreid 6 APU_2_RPU_MB_CMD_2DNR_LUMA_DISABLE coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:101, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:351, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:296, coreid 6 APU_2_RPU_MB_CMD enable/disable EE subfunc, cmd id:267, coreid 6 APU_2_RPU_MB_CMD enable/disable EE subfunc, cmd id:265, coreid 6 APU_2_RPU_MB_CMD enable/disable EE subfunc, cmd id:263, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:261, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:303, coreid 6 APU_2_RPU_MB_CMD_GTM_BWC_DISABLE, cmd id:312, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:310, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:254, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:239, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:243, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:245, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:247, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:241, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:237, coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD submodule enable, cmd id:234, coreid 6 APU_2_RPU_MB_CMD enable/disable RGBIR subfunc, cmd id:361, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:359, coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD submodule enable, cmd id:210, coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD_WDR_HCF_DISABLE, cmd id:383, coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD submodule enable, cmd id:380, coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD submodule enable, cmd id:371, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:228, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:202, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:221, coreid 6 APU_2_RPU_MB_CMD_SENSOR_SET_FRAMERATE coreid 6 APU_2_RPU_MB_CMD_SET_OUT_FORMAT coreid 6 APU_2_RPU_MB_CMD_INIT_BUF_CHAIN coreid 6 APU_2_RPU_MB_CMD_SETUP_BUFFER_POOL coreid 6 APU_2_RPU_MB_CMD_SETUP_BUF_MGMT coreid 6 APU_2_RPU_MB_CMD_GET_PATH_STREAMING coreid 6 APU_2_RPU_MB_CMD_SET_PATH_STREAMING coreid 6 ATMENTER!INFO: perf: ISP0_MP_FS; timestamp: 0:05:55.875623490; bps: 0.000; mean_bps: 0.000; fps: 0.000; mean_fps: 0.000 Redistribute latency... INFO:10.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:05:56.903497310; bps: 1492992000.000; mean_bps: 21637565.217; fps: 30.159; mean_fps: 30.159 INFO:11.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:05:57.930629280; bps: 1492992000.000; mean_bps: 42656914.286; fps: 30.181; mean_fps: 30.170 INFO:12.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:05:58.958051770; bps: 1492992000.000; mean_bps: 63084169.014; fps: 30.173; mean_fps: 30.171 0:01:12.2 / 99:99:99. INFO:13.0 / 99:99:99.mware# 0:01:12.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:05:59.985474000; bps: 1492992000.000; mean_bps: 82944000.000; fps: 30.173; mean_fps: 30.171 0:01:13.1 / 99:99:99. 0:01:13.3 / 99:99:99.mware# 0:01:13.2 / 99:99:99. INFO:14.1 / 99:99:99.mware# 0:01:13.4 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:01.012892500; bps: 1542758400.000; mean_bps: 102941457.534; fps: 30.173; mean_fps: 30.172 0:01:14.8 / 99:99:99.01:14.5 / 99:99:99.erf name=ISP1_MP_0:01:14.4 / 99:99:99. [3] 962 root@amd-edf:/lib/firmware# Setting pipeline to PAUSED ... 0:01:14.9 / APU_2_RPU_MB_CMD_CREATE_INSTANCE coreid 6 Pipeline is live and does not need PREROLL ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... [ 362.036805] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: parse /proc/vsi/isp_subdev1 info: [ 362.048643] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: isp : 1 [ 362.056632] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: port: 0 [ 362.064541] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: name: ox03f10 [ 362.073058] visp-isp-subdev-lilo b1310000.visp_ss: Sensor name : ox03f10 [ 362.079752] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: mode: 0 [ 362.087663] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: xml : /usr/share/limo_example_jsons/OX03f10.xml [ 362.099043] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: manu_json: /usr/share/limo_example_jsons/manual_ext.json [ 362.111204] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: auto_json: /usr/share/limo_example_jsons/auto.json [ 362.122845] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: sensor_id: 6 [ 362.131187] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: port: 0 [ 362.139096] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: buf_mode: [ 362.147264] visp-isp-subdev-lilo b1310000.visp_ss: MediaIspCalibLoadIspConfig: port: 0 APU_2_RPU_MB_CMD_SENSOR_MAPPING coreid 6 sensorDrvHandle->cameraDriverID: 5768006. sensorDrvHandle->pIsiGetSensorIss: C1D5C8C. sensorDrvHandle->cameraDevId: 0. [ 362.188750] visp-isp-subdev-lilo b1310000.visp_ss: Registering the SensorDrvHandle, this can take some time... APU_2_RPU_MB_CMD_SENSOR_DRV_HANDLE_REG coreid 6 RPU pSensorDrv->sensorDrvHandle: CB2A010. RPU pSensorDrv->sensorDevId: 6. erID: 580346.cameraDriv0:01:15.1 / 99:99:99. RPU pcamcfg->pIsiGetSensorIss: C1D5C8C. desId 3 pipeId:6 FMC Already Init... Initializing De-serializer at Virtual Address = 0x4A INFO: perf: ISP0_MP_FS; timestamp: 0:06:02.040327220; bps: 1492992000.000; mean_bps: 121725924.324; fps: 30.172; mean_fps: 30.172 0:01:15.5 / 99:99:99. Initialization Done. sensor: enter init_sensor 3MP Sensor Selected Programming Link-A Device INFO:16.1 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:03.067741470; bps: 1492992000.000; mean_bps: 140009472.000; fps: 30.173; mean_fps: 30.172 Initializing Serializer(max9295-6) at Virtual Addr: 0x40 on Serial Link A Initialization Done... INFO:17.1 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:04.095164770; bps: 1492992000.000; mean_bps: 157811873.684; fps: 30.173; mean_fps: 30.172 enter init_iic_access Malloc added g_fmc_single.iic_array[in_pipe]->readIIC 0x1D4C, 0xCB2A2F8 g_fmc_single.iic_array[in_pipe]->writeIIC 0x1A6D, 0xCB2A2FC APU_2_RPU_MB_CMD_SENSOR_QUERY coreid 6 ParseControlCommand 782 [ 364.998783] visp-isp-subdev-lilo b1310000.visp_ss: Reserved memory 'isp1_reserve_memory' not found, defaulting to 32-bit memory RPU_debug OBA: oba_conf.isp_instance 1 , oba_conf.path_info 0 , oba_conf.isp_instance 1 instanceId:16 address:0xE8541000 RPU_debug OBA: oba_conf.isp_instance 1 , oba_conf.path_info 1 , oba_conf.isp_instance 1 instanceId:16 address:0xE8541000 /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, frameAPU_2_RPU_MB_CMD_LOAD_CALIBRATION coreid 6 p_data:0x11126000 rate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGBRPU test the offset is 81369808 RPU test calibCfg.sensor.ccNumber is 5 , framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(frAPU_2_RPU_MB_CMD_SENSOR_OPEN coreid 6 action)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstPerf:ISP1_MP_FS.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB /GstPipeline:pipeline0/GstPerf:ISP1_MP_FS.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)RGB, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)sRGB xml :/usr/share/limo_example_jsons/OX03f10.xml INFO:18.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:05.122587070; bps: 1542758400.000; mean_bps: 175798192.208; fps: 30.173; mean_fps: 30.172 INFO:19.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:06.150018240; bps: 1492992000.000; mean_bps: 192685292.308; fps: 30.172; mean_fps: 30.172 INFO:20.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:07.177412100; bps: 1492992000.000; mean_bps: 209144870.886; fps: 30.173; mean_fps: 30.172 INFO:21.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:08.204830350; bps: 1492992000.000; mean_bps: 225192960.000; fps: 30.173; mean_fps: 30.172 INFO:22.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:09.232235230; bps: 1492992000.000; mean_bps: 240844800.000; fps: 30.173; mean_fps: 30.172 INFO:23.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:10.259650890; bps: 1542758400.000; mean_bps: 256721795.122; fps: 30.173; mean_fps: 30.172 INFO:24.4 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:11.287104950; bps: 1492992000.000; mean_bps: 271616616.867; fps: 30.172; mean_fps: 30.172 IBA inputs width 1920, input height 1080, portid - 0 APU_2_RPU_MB_CMD_SENSOR_SET_TP coreid 6 APU_2_RPU_MB_CMD_CONNECT_CAMERA coreid 6 Jsons : /usr/share/limo_example_jsons/auto.json /usr/share/limo_example_jsons/manual_ext.json RPU_2_APU_MB_CMD_REGISTER_AELIB coreid 6 APU_2_RPU_MB_CMD_REGISTER_AWB_LIB coreid 6 APU_2_RPU_MB_CMD_SENSOR_GET_MODE_INFO coreid 6 APU_2_RPU_MB_CMD reset submodule coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD_AE_SET_MODE coreid 6 APU_2_RPU_MB_CMD_AE_SET_ROI coreid 6 APU_2_RPU_MB_CMD submodule get version cmd id: 289, coreid 6 INFO: perf: ISP0_MP_FS; timestamAPU_2_RPU_MB_CMD_AE_SET_EXP_TBL coreid 6 p: 0:06:12.314515140; bps: 1492992000.000; mean_bps: 286156800.000; fps: 30.173; mean_fps: 30.172 APU_2_RPU_MB_CMD submodule enable, cmd id:131, coreid 6 APU_2_RPU_MB_CMD_2DNR_LUMA_DISABLE coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:101, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:351, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:296, coreid 6 APU_2_RPU_MB_CMD enable/disable EE subfunc, cmd id:267, coreid 6 APU_2_RPU_MB_CMD enable/disable EE subfunc, cmd id:265, coreid 6 APU_2_RPU_MB_CMD enable/disable EE subfunc, cmd id:263, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:261, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:303, coreid 6 APU_2_RPU_MB_CMD_GTM_BWC_DISABLE, cmd id:312, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:310, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:254, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:239, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:243, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:245, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:247, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:241, coreid 6 APU_2_RPU_MB_CMD enable/disable dmsc subfunc, cmd id:237, coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD submodule enable, cmd id:234, coreid 6 APU_2_RPU_MB_CMD enable/disable RGBIR subfunc, cmd id:361, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:359, coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD submodule enable, cmd id:210, coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD_WDR_HCF_DISABLE, cmd id:383, coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD submodule enable, cmd id:380, coreid 6 APU_2_RPU_MB_CMD submodule SET_CONFIG coreid 6 APU_2_RPU_MB_CMD submodule enable, cmd id:371, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:228, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:202, coreid 6 APU_2_RPU_MB_CMD submodule disable, cmd id:221, coreid 6 APU_2_RPU_MB_CMD_SENSOR_SET_FRAMERATE coreid 6 APU_2_RPU_MB_CMD_SET_OUT_FORMAT coreid 6 APU_2_RPU_MB_CMD_INIT_BUF_CHAIN coreid 6 APU_2_RPU_MB_CMD_SETUP_BUFFER_POOL coreid 6 APU_2_RPU_MB_CMD_SETUP_BUF_MGMT coreid 6 APU_2_RPU_MB_CMD_GET_PATH_STREAMING coreid 6 APU_2_RPU_MB_CMD_SET_PATH_STREAMING coreid 6 INFO:26.4 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:13.341924060; bps: 1492992000.000; mean_bps: 300354861.176; fps: 30.173; mean_fps: 30.172 INFO:27.5 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:14.369361560; bps: 1492992000.000; mean_bps: 314222734.884; fps: 30.172; mean_fps: 30.172 INFO:28.5 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:15.396751570; bps: 1492992000.000; mean_bps: 327771806.897; fps: 30.174; mean_fps: 30.172 INFO:29.5 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:16.424175050; bps: 1542758400.000; mean_bps: 341578472.727; fps: 30.173; mean_fps: 30.172 INFO:30.6 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:17.451619450; bps: 1492992000.000; mean_bps: 354515703.371; fps: 30.172; mean_fps: 30.172 INFO:31.6 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:18.479000380; bps: 1492992000.000; mean_bps: 367165440.000; fps: 30.174; mean_fps: 30.172 INFO:32.6 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:19.506424810; bps: 1492992000.000; mean_bps: 379537160.440; fps: 30.173; mean_fps: 30.172 INFO:33.6 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:20.533845320; bps: 1492992000.000; mean_bps: 391639930.435; fps: 30.173; mean_fps: 30.172 INFO:34.7 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:21.561258980; bps: 1542758400.000; mean_bps: 404017548.387; fps: 30.173; mean_fps: 30.173 INFO:35.7 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:22.588676890; bps: 1492992000.000; mean_bps: 415602382.979; fps: 30.173; mean_fps: 30.173 INFO:36.7 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:23.616093010; bps: 1492992000.000; mean_bps: 426943326.316; fps: 30.173; mean_fps: 30.173 INFO:37.7 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:24.643513400; bps: 1492992000.000; mean_bps: 438048000.000; fps: 30.173; mean_fps: 30.173 INFO:38.8 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:25.670942480; bps: 1492992000.000; mean_bps: 448923711.340; fps: 30.172; mean_fps: 30.173 INFO:39.8 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:26.698362930; bps: 1492992000.000; mean_bps: 459577469.388; fps: 30.173; mean_fps: 30.173 INFO:40.8 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:27.725767460; bps: 1542758400.000; mean_bps: 470518690.909; fps: 30.173; mean_fps: 30.173 INFO:41.8 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:28.753190890; bps: 1492992000.000; mean_bps: 480743424.000; fps: 30.173; mean_fps: 30.173 INFO:42.9 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:29.780608960; bps: 1492992000.000; mean_bps: 490765687.129; fps: 30.173; mean_fps: 30.173 INFO:43.9 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:30.808033040; bps: 1492992000.000; mean_bps: 500591435.294; fps: 30.173; mean_fps: 30.173 INFO:44.9 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:31.835430500; bps: 1492992000.000; mean_bps: 510226392.233; fps: 30.173; mean_fps: 30.173 INFO:45.9 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:32.862852270; bps: 1542758400.000; mean_bps: 520154584.615; fps: 30.173; mean_fps: 30.173 INFO:47.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:33.890268720; bps: 1492992000.000; mean_bps: 538510007.547; fps: 30.173; mean_fps: 30.173 INFO:48.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:34.917691650; bps: 1492992000.000; mean_bps: 547430400.000; fps: 30.173; mean_fps: 30.173 INFO:49.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:35.945104500; bps: 1492992000.000; mean_bps: 556185600.000; fps: 30.173; mean_fps: 30.173 INFO:50.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:36.972521330; bps: 1542758400.000; mean_bps: 565236726.606; fps: 30.173; mean_fps: 30.173 INFO:51.1 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:37.999940520; bps: 1492992000.000; mean_bps: 573670865.455; fps: 30.173; mean_fps: 30.173 INFO:52.1 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:39.027357030; bps: 1492992000.000; mean_bps: 581953037.838; fps: 30.173; mean_fps: 30.173 INFO:53.1 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:40.054773190; bps: 1492992000.000; mean_bps: 590087314.286; fps: 30.173; mean_fps: 30.173 INFO:54.1 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:41.082192950; bps: 1492992000.000; mean_bps: 598077621.239; fps: 30.173; mean_fps: 30.173 INFO:55.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:42.109610190; bps: 1492992000.000; mean_bps: 605927747.368; fps: 30.173; mean_fps: 30.173 INFO:56.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:43.137028520; bps: 1542758400.000; mean_bps: 614074100.870; fps: 30.173; mean_fps: 30.173 INFO:57.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:44.164440580; bps: 1492992000.000; mean_bps: 621650979.310; fps: 30.173; mean_fps: 30.173 INFO:58.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:45.191861770; bps: 1492992000.000; mean_bps: 629098338.462; fps: 30.173; mean_fps: 30.173 INFO:59.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:46.219281470; bps: 1492992000.000; mean_bps: 636419471.186; fps: 30.173; mean_fps: 30.173 INFO:00.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:47.246694260; bps: 1492992000.000; mean_bps: 643617559.664; fps: 30.173; mean_fps: 30.173 INFO:01.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:48.274109630; bps: 1542758400.000; mean_bps: 651110400.000; fps: 30.173; mean_fps: 30.173 INFO:02.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:49.301535150; bps: 1492992000.000; mean_bps: 658068099.174; fps: 30.173; mean_fps: 30.173 INFO:03.4 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:50.328957330; bps: 1492992000.000; mean_bps: 664911737.705; fps: 30.173; mean_fps: 30.173 INFO:04.5 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:51.356366490; bps: 1492992000.000; mean_bps: 671644097.561; fps: 30.173; mean_fps: 30.173 INFO:05.5 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:52.383781210; bps: 1492992000.000; mean_bps: 678267870.968; fps: 30.173; mean_fps: 30.173 INFO:06.4 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:53.411198100; bps: 1492992000.000; mean_bps: 684785664.000; fps: 30.173; mean_fps: 30.173 INFO:07.5 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:54.438618740; bps: 1542758400.000; mean_bps: 691594971.429; fps: 30.173; mean_fps: 30.173 INFO:08.5 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:55.466032750; bps: 1492992000.000; mean_bps: 697905184.252; fps: 30.173; mean_fps: 30.173 INFO:09.6 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:56.493449340; bps: 1492992000.000; mean_bps: 704116800.000; fps: 30.173; mean_fps: 30.173 INFO:10.6 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:57.520865600; bps: 1492992000.000; mean_bps: 710232111.628; fps: 30.173; mean_fps: 30.173 INFO:11.7 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:58.548282820; bps: 1492992000.000; mean_bps: 716253341.538; fps: 30.173; mean_fps: 30.173 INFO:12.6 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:06:59.575694250; bps: 1542758400.000; mean_bps: 722562540.458; fps: 30.173; mean_fps: 30.173 INFO:13.7 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:00.603112580; bps: 1492992000.000; mean_bps: 728399127.273; fps: 30.173; mean_fps: 30.173 INFO:14.7 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:01.630532450; bps: 1492992000.000; mean_bps: 734147945.865; fps: 30.173; mean_fps: 30.173 INFO:15.8 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:02.657948610; bps: 1492992000.000; mean_bps: 739810961.194; fps: 30.173; mean_fps: 30.173 INFO:16.8 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:03.685364570; bps: 1492992000.000; mean_bps: 745390080.000; fps: 30.173; mean_fps: 30.173 INFO:17.8 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:04.712779920; bps: 1492992000.000; mean_bps: 750887152.941; fps: 30.173; mean_fps: 30.173 INFO:18.8 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:05.740192800; bps: 1542758400.000; mean_bps: 756667235.036; fps: 30.173; mean_fps: 30.173 INFO:19.9 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:06.767610730; bps: 1492992000.000; mean_bps: 762002921.739; fps: 30.173; mean_fps: 30.173 INFO:20.9 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:07.795027900; bps: 1492992000.000; mean_bps: 767261835.971; fps: 30.173; mean_fps: 30.173 INFO:21.9 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:08.822448700; bps: 1492992000.000; mean_bps: 772445622.857; fps: 30.173; mean_fps: 30.173 INFO:22.9 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:09.849862670; bps: 1492992000.000; mean_bps: 777555880.851; fps: 30.173; mean_fps: 30.173 INFO:24.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:10.877292740; bps: 1542758400.000; mean_bps: 782944630.986; fps: 30.172; mean_fps: 30.173 INFO:25.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:11.904699500; bps: 1492992000.000; mean_bps: 792806400.000; fps: 30.173; mean_fps: 30.173 INFO:26.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:12.932113560; bps: 1492992000.000; mean_bps: 797635266.207; fps: 30.173; mean_fps: 30.173 INFO:27.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:13.959527240; bps: 1492992000.000; mean_bps: 802397983.562; fps: 30.173; mean_fps: 30.173 INFO:28.1 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:14.986959810; bps: 1542758400.000; mean_bps: 807434448.980; fps: 30.172; mean_fps: 30.173 INFO:29.1 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:16.014363180; bps: 1492992000.000; mean_bps: 812066594.595; fps: 30.173; mean_fps: 30.173 INFO:30.1 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:17.041782400; bps: 1492992000.000; mean_bps: 816636563.758; fps: 30.173; mean_fps: 30.173 INFO:31.1 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:18.069193930; bps: 1492992000.000; mean_bps: 821145600.000; fps: 30.173; mean_fps: 30.173 INFO:32.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:19.096627150; bps: 1492992000.000; mean_bps: 825594913.907; fps: 30.172; mean_fps: 30.173 INFO:33.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:20.124036200; bps: 1492992000.000; mean_bps: 829985684.211; fps: 30.173; mean_fps: 30.173 INFO:34.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:21.151444900; bps: 1542758400.000; mean_bps: 834644329.412; fps: 30.173; mean_fps: 30.173 INFO:35.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:22.178858590; bps: 1492992000.000; mean_bps: 838919314.286; fps: 30.173; mean_fps: 30.173 INFO:36.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:23.206287400; bps: 1492992000.000; mean_bps: 843139138.065; fps: 30.172; mean_fps: 30.173 INFO:37.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:24.233697810; bps: 1492992000.000; mean_bps: 847304861.538; fps: 30.173; mean_fps: 30.173 INFO:38.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:25.261111190; bps: 1492992000.000; mean_bps: 851417518.471; fps: 30.173; mean_fps: 30.173 INFO:39.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:26.288528060; bps: 1542758400.000; mean_bps: 855793093.671; fps: 30.173; mean_fps: 30.173 ^C02:39.9 / 99:99:99. INFO:40.4 / 99:99:99.mware# 0:02:40.0 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:27.315956000; bps: 1492992000.000; mean_bps: 859800633.962; fps: 30.172; mean_fps: 30.173 INFO:41.4 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:28.343361590; bps: 1492992000.000; mean_bps: 863758080.000; fps: 30.173; mean_fps: 30.173 ^C02:42.2 / 99:99:99. INFO:42.4 / 99:99:99.mware# 0:02:42.3 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:29.370781130; bps: 1492992000.000; mean_bps: 867666365.217; fps: 30.173; mean_fps: 30.173 INFO:43.4 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:30.398191900; bps: 1492992000.000; mean_bps: 871526400.000; fps: 30.173; mean_fps: 30.173 ^C02:44.1 / 99:99:99. INFO:44.5 / 99:99:99.mware# 0:02:44.2 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:31.425623480; bps: 1492992000.000; mean_bps: 875339072.393; fps: 30.172; mean_fps: 30.173 INFO:45.5 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:32.453029840; bps: 1542758400.000; mean_bps: 879408702.439; fps: 30.173; mean_fps: 30.173 INFO::46.6 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:33.480444200; bps: 1492992000.000; mean_bps: 883127389.091; fps: 30.173; mean_fps: 30.173 0:02:47.3 / 99:99:99. gst-launch-1.0 v4l2src device=/dev/video1 io-mode=4 ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" ! queue ! perf name=ISP1_MP_FS ! fakesink -v INFO:47.5 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:34.507859960; bps: 1492992000.000; mean_bps: 886801272.289; fps: 30.173; mean_fps: 30.173 INFO:48.6 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:35.535293310; bps: 1492992000.000; mean_bps: 890431156.886; fps: 30.172; mean_fps: 30.173 INFO:49.6 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:36.562691450; bps: 1492992000.000; mean_bps: 894017828.571; fps: 30.173; mean_fps: 30.173 INFO:50.7 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:37.590112170; bps: 1542758400.000; mean_bps: 897856530.178; fps: 30.173; mean_fps: 30.173 INFO:51.7 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:38.617527650; bps: 1492992000.000; mean_bps: 901357327.059; fps: 30.173; mean_fps: 30.173 INFO:52.7 / 99:99:99. perf: ISP0_MP_FS; timestamp: 0:07:39.644959760; bps: 1492992000.000; mean_bps: 904817178.947; fps: 30.172; mean_fps: 30.173

8. Launch LIMO MCM Pipeline

  1. Ensure the LIMO overlay Images are loaded.

  2.  Verify whether the ISP Linux modules are loaded or not.

    • Use the following command to check lsmod | grep visp.

      image-20250519-050948.png
  3. Remove the auto-loaded modules and reload the modules under /lib/modules/6.*/updates/.

    #rmmod the auto-loaded modules rmmod visp_video rmmod visp rmmod visp_mbox #load the modules insmod /lib/modules/<kernel>/updates/visp_mbox/visp_mbox.ko insmod /lib/modules/<kernel>/updates/visp/visp.ko insmod /lib/modules/<kernel>/updates/visp_video/visp_video.ko
  4. For each port of the subdev being validated, specify the Sensor IDs and Input Sensor names.

    • Specify the Sensor IDs based on underlying design. 

      #usage : echo <mcm port ID> sensor_id=id > /proc/vsi/isp_subdevX -> X replace with corresponding subdev<id> echo <mcm port ID> sensor=<Sensor_name> > /proc/vsi/isp_subdevX -> X replace with corresponding subdev<id> ##command explanation mcm port ID: the ID of the mcm port of ISP being used. Sensor: sensor name =ox03f10(3MP)/ox08b40(8MP) ID : sensor id dependes on MIPI ID to which sensor is connected. /proc/vsi/isp_subdevX : X stands the subdev ID being used. ###example example : if 3MP(ox03f10) is connected via MIPI-2 to Port-0 of isp-subdev0. echo 0 sensor_id=2 > /proc/vsi/isp_subdev0 echo 0 sensor=oxO3f10 > /proc/vsi/isp_subdev0 example : if 8MP(ox08f10) is connected via MIPI-2 to Port-2 of isp-subdev0. echo 0 sensor_id=2 > /proc/vsi/isp_subdev0 echo 0 sensor=ox08b40 > /proc/vsi/isp_subdev0
  5. For each port of the subdev being used, specify the tuning files path.

    • The following example contains the default paths of tuning files present in rootfs.

      #usage : ho <port ID> <file>=<path> > /proc/vsi/isp_subdevX -> X replace with corresponding subdev<id> ##command explanation Port ID: in non-MCM mode this value is always 0. file : file type (xml/auto_json/manual_json) path : path for the file type specified. /proc/vsi/isp_subdevX : X stands the subdev ID being used. ###below is the example to set files for port 0 of isp_subdev0 echo 0 xml=/usr/share/limo_example_jsons/OX03f10.xml  > /proc/vsi/isp_subdev0 echo 0 auto_json=/usr/share/limo_example_jsons/auto.json > /proc/vsi/isp_subdev0 echo 0 manu_json=/usr/share/limo_example_jsons/manual_ext.json > /proc/vsi/isp_subdev0 below is the example to set files for port 1 of isp_subdev2 echo 1 xml=/usr/share/limo_example_jsons/OX03f10.xml  > /proc/vsi/isp_subdev2 echo 1 auto_json=/usr/share/limo_example_jsons/auto.json > /proc/vsi/isp_subdev2 echo 1 manu_json=/usr/share/limo_example_jsons/manual_ext.json > /proc/vsi/isp_subdev2
  6. Launch media_server which parses ISP filter configuration.

    isp_media_server &
  7. Launch the pipelines for the corresponding videoX.

    gst-launch-1.0  v4l2src device=/dev/video0  io-mode=4  ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" !     queue ! perf name=ISP0_MP_FS  ! fakesink -v & gst-launch-1.0  v4l2src device=/dev/video1  io-mode=4  ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" !     queue ! perf name=ISP0_MP_FS  ! fakesink -v & gst-launch-1.0  v4l2src device=/dev/video3  io-mode=4  ! "video/x-raw, width=1920, height=1080, format=RGB, framerate=30/1" !     queue ! perf name=ISP0_MP_FS  ! fakesink -v &

Only use Ctrl+C to gracefully close the gstreamer pipeline.

9. Reference Media-ctl Output

© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy