Kria KV260 Vision AI Starter Kit

Preparation

Ensure you replace the <factory> placeholder below with the name of your Factory.

  1. Download necessary files from https://app.foundries.io/factories/<factory>/targets

    1. Click the latest Target with the platform-devel Trigger.

      ../../_images/generic-steps-1.png
    2. Expand the run in the Runs section which corresponds with the name of the board and download the Factory image for that machine.

      E.g: lmp-factory-image-<machine-name>.wic.gz

      ../../_images/generic-steps-2.png

Hardware Preparation

Image of Kria board

  1. Ensure that the power code is disconnected.
  2. Connect the Micro-USB cable to the J4 connector for serial console output.

Flashing and Boot

Flashing an SD Card

Note

Device names and IDs can slightly differ from the steps below.

  1. Determine the disk you want to flash by finding the device with the SIZE that matches your flash drive in the list below. Be sure to ignore partitions (where TYPE is part). Save the NAME for your flash drive to be used in a later step as the disk path. e.g: /dev/mmcblk0, /dev/sdb:

    lsblk -po +MODEL
    

    Example Output:

    $ lsblk -po +MODEL
    NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT                 MODEL
    /dev/mmcblk0     179:0    0  29.8G  0 disk
    ├─/dev/mmcblk0p1 179:1    0  41.6M  0 part /mnt/boot
    └─/dev/mmcblk0p2 179:2    0  29.8G  0 part /mnt/otaroot
    /dev/zram0       254:0    0    26G  0 disk /out
    /dev/nvme0n1     259:0    0 953.9G  0 disk                            SSDPEKKF010T8 NVMe INTEL 1024GB
    
  2. Flash the disk.

    Replace <system-image> with the path to your system image.
    Replace /dev/mmcblk<X> with your chosen disk path.
gunzip -c <system-image> | sudo dd of=/dev/mmcblk<X> bs=4M iflag=fullblock oflag=direct status=progress
  1. Determine the disk you want to flash by finding the device with the SIZE that matches your flash drive in the list below. Be sure to ignore partitions (lines without the * in the SIZE). Save the IDENTIFIER for your flash drive to be used in a later step as the disk path. e.g: /dev/disk3:

    diskutil list
    

    Example Output:

    $ diskutil list
    /dev/disk3 (internal, physical):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:     FDisk_partition_scheme                        *15.5 GB    disk3
       1:             Windows_FAT_32 boot                    45.7 MB    disk3s1
       2:                      Linux                         15.5 GB    disk3s2
    
  2. Flash the disk.

    Replace <system-image> with the path to your system image.
    Replace /dev/disk<X> with your chosen disk path.
gunzip -c <system-image> | sudo dd of=/dev/disk<X> bs=4M

Windows has no dd like tool built into the operating system to flash your image to disk. In this case, we recommend you download and use either Win32 Disk Imager or Rufus.

Note

Your system image is in a compressed wic.gz format. To follow these next steps, you must extract it using a tool like 7zip which will leave you with a .wic image file.

Using Rufus

  1. Download and run Rufus.
  2. Select your disk.
  3. SELECT your <system-image>.
  4. START the flash procedure.

Using Win32 Disk Imager

  1. Download and run Win32 Disk Imager as Administrator.
  2. Click the blue folder icon.
  3. Select your <system-image>
  4. Select your disk via the Device dropdown.
  5. Click Write
  6. Wait for the image to finish writing, and a Write Successful dialog will appear.
  1. Remove the flash drive from the host and insert/connect it into the board.
  2. Power on the board to boot the new image.

Flashing QSPI Boot Images

The SoM Starter Kits use a two stage boot process:

  • The primary boot firmware is pre-installed at the factory on the QSPI device.
  • The secondary boot device is an SD card containing the Linux kernel and system root.

The Xilinx Starter Kit carrier card hardware design sets and factory-locks the MPSoC boot mode to QSPI32. The SoM boots up to U-Boot using the QSPI contents and U-Boot then does a hand-off to the secondary boot device. To replace the boot image on QSPI device with LmP boot images, they have to be manually flashed to QSPI using pre-installed U-Boot bootloader shell, which will be automatically booted on the first boot:

> sf probe; setenv bootseq 1; mmc dev ${bootseq};
> setenv loadaddr 0x8000000;
> fatload mmc ${bootseq}:1 ${loadaddr} boot0001.bin;
> sf update ${loadaddr} 0x200000 ${filesize};
> sf update ${loadaddr} 0xF80000 ${filesize};
> fatload mmc ${bootseq}:1 ${loadaddr} u-boot0001.itb;
> sf update ${loadaddr} 0x300000 ${filesize};
> sf update ${loadaddr} 0x1080000 ${filesize};
> reset

After reboot, LmP U-Boot serial output is shown:

U-Boot SPL 2022.01+xlnx+g37fad64d18 (Apr 19 2022 - 15:29:09 +0000)
PMUFW:      v1.1
Loading new PMUFW cfg obj (2200 bytes)
Silicon version:    3
EL Level:   EL3
Multiboot:  1
Trying to boot from MMC2
SPL: Booting u-boot0001.itb
## Checking hash(es) for config config-1 ... OK
## Checking hash(es) for Image atf ... sha256+ OK
## Checking hash(es) for Image uboot ... sha256+ OK
## Checking hash(es) for Image ubootfdt ... sha256+ OK
## Checking hash(es) for Image optee ... sha256+ OK
## Checking hash(es) for Image fpga ... sha256+ OK

U-Boot 2022.01+xlnx+g37fad64d18 (Apr 19 2022 - 15:29:09 +0000)

Recovery

If boot images are eventually corrupted, Kria KV260 Vision AI Starter Kit provides a Image Recovery application. The Image Recovery application is a baremetal application that uses a web-browser-user interface. It is invoked when the FW-update (FWUEN) button is pressed at power-on, or automatically, when both image A and image B becomes un-bootable. It can be used to directly update the A/B images and persistent register states.

Read the Boot Firmware Image Recovery page for more details on this application.