Test the Application on Hardware - 2023.2 English

Vitis Tutorials: Vitis Platform Creation (XD101)

Document ID
XD101
Release Date
2023-12-26
Version
2023.2 English
  1. Copy the sd_card.img from plaie_system/Hardware/package_no_aie_debug directory to your local system, if the project is run on a server or virtual machine.

    Note: Vitis tools will generate images with aie_debug enabled and disabled. The image with aie_debug disabled will run freely. The image with aie_debug enabled will halt AI Engine and wait for the debugger to connect to it.

  2. Program sd_card.img to the SD card. Refer to AR#73711 for detailed steps.

    Note: The programmed SD card has two partitions: FAT32 partition with boot components, and EXT4 partition with Linux root file system. Windows systems, by default, cannot see the contents of EXT4 partition.

    Note: Eject the SD card properly from the system after programming it.

  3. Insert the SD card and boot the VCK190 board with SD boot mode (SW1[4:1] = “1110”: OFF, OFF, OFF, ON) and power on.

    Note: Refer to VCK190 Evaluation Board User Guide for details about boot mode.

  4. Launch test application from UART console.

    Follow below steps to run the application

    You will need to login with user petalinux first and setup a new password (it’s then also the sudo password):

    • Log into the system

    petalinux login:petalinux
    You are required to change your password immediately (administrator enforced).
    New password:
    Retype new password:
    petalinux:~$ sudo su
    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.
    Password:
    petalinux:/home/petalinux#
    
    • Go to auto mounted FAT32 partition and run the application like below:

    petalinux:/home/petalinux# cd /run/media/sd-mmcblk0p1
    petalinux:/home/petalinux# ./plaie binary_container_1.xclbin
    
  5. Expected print on UART console.

    Show Log
    root@petalinux:/mnt/sd-mmcblk0p1# ./plaie binary_container_1.xclbin
    Initializing ADF API...
    [   39.786629] zocl-drm axi:zyxclmm_drm: zocl_create_client: created KDS client for pid(697), ret: 0
    [   39.795569] zocl-drm axi:zyxclmm_drm: zocl_destroy_client: client exits pid(697)
    [   39.813998] zocl-drm axi:zyxclmm_drm: zocl_create_client: created KDS client for pid(697), ret: 0
    [   40.245746] [drm] found kind 29(AIE_RESOURCES)
    [   40.245765] [drm] found kind 8(IP_LAYOUT)
    [   40.250535] [drm] found kind 9(DEBUG_IP_LAYOUT)
    [   40.254738] [drm] found kind 25(AIE_METADATA)
    [   40.259429] [drm] found kind 7(CONNECTIVITY)
    [   40.263937] [drm] found kind 6(MEM_TOPOLOGY)
    [   40.268417] [drm] Memory 0 is not reserved in device tree. Will allocate memory from CMA
    [   40.280809] [drm] Memory 1 is not reserved in device tree. Will allocate memory from CMA
    [   40.296964] cu_drv CU.2.auto: cu_probe: CU[0] created
    [   40.302294] cu_drv CU.3.auto: cu_probe: CU[1] created
    [   40.307630] cu_drv CU.4.auto: cu_probe: CU[2] created
    [   40.312842] cu_drv CU.2.auto:  ffff000804e4ac10 xrt_cu_intr_thread: CU[0] start
    [   40.320432] cu_drv CU.3.auto:  ffff00080271e810 xrt_cu_intr_thread: CU[1] start
    [   40.321470] [drm] zocl_xclbin_read_axlf 8e1f87ed-725e-07da-c6b3-6786f6df2f1f ret: 0
    [   40.327753] cu_drv CU.4.auto:  ffff000802696410 xrt_cu_intr_thread: CU[2] start
    XAIEFAL: INFO: Resource group Avail is created.
    XAIEFAL: INFO: Resource group Static is created.
    XAIEFAL: INFO: Resource group Generic is created.
    [   40.390527] [drm] bitstream 8e1f87ed-725e-07da-c6b3-6786f6df2f1f locked, ref=1
    [   40.390547] zocl-drm axi:zyxclmm_drm:  ffff00080085d410 kds_add_context: Client pid(697) add context Domain(0) CU(0xffffffff) shared(true)
    [   40.410331] zocl-drm axi:zyxclmm_drm:  ffff00080085d410 kds_del_context: Client pid(697) del context Domain(0) CU(0xffffffff)
    Input memory virtual addr 0x0xffffb91ea000x
    Input memory virtual addr 0x0xffffb91e9000x
    in_bohdl0 in_bohdl1 sync[   40.421650] [drm] bitstream 8e1f87ed-725e-07da-c6b3-6786f6df2f1f unlocked, ref=0
    started
    in_bohdl0 in_bohdl1 sy[   40.429988] [drm] bitstream 8e1f87ed-725e-07da-c6b3-6786f6df2f1f locked, ref=1
    nc done
    Output memory virtual a[   40.439461] zocl-drm axi:zyxclmm_drm:  ffff00080085d410 kds_add_context: Client pid(697) add context Domain(0) CU(0xffffffff) shared(true)
    ddr 0x0xffffb91e8000x
    [   40.464816] zocl-drm axi:zyxclmm_drm:  ffff00080085d410 kds_add_context: Client pid(697) add context Domain(0) CU(0x1) shared(true)
    run pl_mm2s_1
    [   40.478710] zocl-drm axi:zyxclmm_drm:  ffff00080085d410 kds_add_context: Client pid(697) add context Domain(0) CU(0x0) shared(true)
    run pl_mm2s_2
    [   40.492018] zocl-drm axi:zyxclmm_drm:  ffff00080085d410 kds_add_context: Client pid(697) add context Domain(0) CU(0x2) shared(true)
    run pl_s2mm
    graph init. This does nothing be[   40.506280] zocl-drm axi:zyxclmm_drm:  ffff00080085d410 kds_del_context: Client pid(697) del context Domain(0) CU(0x1)
    cause CDO in boot PDI already con[   40.519845] zocl-drm axi:zyxclmm_drm:  ffff00080085d410 kds_del_context: Client pid(697) del context Domain(0) CU(0x0)
    figures AIE.
    graph run
    graph end[   40.533494] zocl-drm axi:zyxclmm_drm:  ffff00080085d410 kds_del_context: Client pid(697) del context Domain(0) CU(0xffffffff)
    
    mm2s_1 completed with status(4[   40.547611] zocl-drm axi:zyxclmm_drm:  ffff00080085d410 kds_del_context: Client pid(697) del context Domain(0) CU(0x2)
    )
    mm2s_2 completed with status(4)
    s2mm completed with status(4)
    TEST PASSED
    Releasing host Buffers...
    Releasing remaining XRT objects...
    [   40.561044] [drm] bitstream 8e1f87ed-725e-07da-c6b3-6786f6df2f1f unlocked, ref=0
    [   40.578375] zocl-drm axi:zyxclmm_drm: zocl_destroy_client: client exits pid(697)