0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IMAX3 on Versal プレミアム シリーズ VPK120 評価キット 環境構築

Last updated at Posted at 2025-01-07

本資料では,VPK120 評価キット上にCGLA型アクセラレータIMAX3を構築する.

前提環境

  • Ubuntu 22.04.2 LTS
  • Vivado v2024.1 (64-bit)
  • PetaLinuxツール v2024.1
  • Versal Premium Series VPK120 Evaluation Kit (EK-VPK120-G)

Block Design

image.png

あらかじめVivadoでGenerate Device Image 完了後、File→Export→Export Hardwareと進み、Include device imageを選択し、XSAファイルを出力する.

PetaLinuxツール(2024.1)のインストーラのダウンロード

https://japan.xilinx.com/member/forms/download/xef.html?filename=petalinux-v2024.1-05202009-installer.run

パッケージ群のインストール

実際に実行したコマンド

sudo apt-get install tofrodos gawk xvfb git libncurses5-dev tftpd zlib1g-dev zlib1g-dev:i386 libssl-dev flex bison chrpath socat autoconf libtool texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev screen pax libtinfo5

# エラーに従い追加でパッケージをインストールする.

Petalinuxツールのインストール

$ sudo mkdir -p /opt/pkg/petalinux/2024.1
$ sudo chown -R <account name> /opt/pkg/petalinux/2024.1
$ petalinux-v2024.1-05202009-installer.run /opt/pkg/petalinux/2024.1

ハードウェア環境のビルド

  • 既に上記関連パッケージ,ツールがインストール済みならここから始めます.

Petalinux作業環境のセットアップ

  • UG1144の「PetaLinux作業環境のセットアップ」に従って,
    source /opt/pkg/petalinux/2024.1/settings.sh を実行する.

  • 例えば,現環境では以下のように

source /opt/xilinx/PetaLinux/2024.1/settings.sh
petalinux-create -t project --template versal -n vpk120

ハードウェアコンフィギュレーションのインポート

  • UG1144の「ハードウェアコンフィギュレーションのインポート」に従い,Vivadoによって作成したハードウェア記述ファイル(.xsa)をproject directory直下に置き以下のコマンドでインポートする.
petalinux-config --get-hw-description=./

Configure subsystem level configuration

  • rootfs読み込みとUIOを有効にするため,boot argsを変更する.
DTG Settings  --->   
  () MACHINE_NAME
  	versal-vpk120-reva
  Kernel Bootargs  --->
    [ ] generate boot args automatically
    user set kernel bootargs
        console=ttyAMA0 earlycon=pl011,mmio32,0xFF000000,115200n8 clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id="generic-uio"

rootfs boot setting

  • Root filesystem type をINITRDからEXT4に変更する.
Image Packaging Configuration  ---> 
  Root filesystem type (INITRD)  ---> 
	 (X) EXT4 (SD/eMMC/SATA/USB)

device-tree編集

  • 「project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi」に変更・追加分を記述する.

最終的な system-user.dtsi の内容(MASTER)

$ cat system-user.dtsi

/include/ "system-conf.dtsi"
/ {
        reserved-memory {
                #address-cells = <2>;
                #size-cells = <2>;
                ranges;
                reserved: buffer@0 {
                        reg = <0x00000500 0x00000000 0x00000001 0x80000000>;
                };
        };

    amba_pl@0 {
        emax6@20200000000 {
            compatible = "generic-uio";
        };
        emax6@20400000000 {
            compatible = "generic-uio";
        };
        axi_chip2chip@20600000000 {
            compatible = "generic-uio";
        };
        axi_chip2chip@20800000000 {
            compatible = "generic-uio";
        };
        axi_chip2chip@20a00000000 {
            compatible = "generic-uio";
        };
        axi_chip2chip@20c00000000 {
            compatible = "generic-uio";
        };
        axi_chip2chip@20e00000000 {
            compatible = "generic-uio";
        };
        axi_chip2chip@21000000000 {
            compatible = "generic-uio";
        };
        dma@a4000000 {
            compatible = "generic-uio";
        };
        dma@a4010000 {
            compatible = "generic-uio";
        };
        dma@a4020000 {
            compatible = "generic-uio";
        };
        dma@a4030000 {
            compatible = "generic-uio";
        };
        dma@a4040000 {
            compatible = "generic-uio";
        };
        dma@a4050000 {
            compatible = "generic-uio";
        };
        dma@a4060000 {
            compatible = "generic-uio";
        };
        dma@a4070000 {
            compatible = "generic-uio";
        };
    };
    ddr_high@050000000000 {
            compatible = "generic-uio";
            reg = <0x00000500 0x00000000 0x00000001 0x80000000>;
    };
};

&gem0 {
    local-mac-address = [00 0a 35 07 dc 14];
};

システムイメージのビルドと,ブートイメージの生成

  • UG1144の「システム イメージのビルド」および「Zynq UltraScale+ MPSoC用ブート イメージの生成」に従う.
petalinux-build
  • buildが成功したら,下記のコマンドを実行する.
petalinux-package --boot --force --u-boot

SD cardへの書き込み

  • 32GBのSD cardをパーティション分割しフォーマットする.
fdisk /dev/sdx
  • 例えば以下のように分割する.
Device     Boot   Start      End  Sectors  Size Id Type
/dev/sdx1  *       2048  2099199  2097152    1G 83 Linux FAT32 (LBA)
/dev/sdx2       2099200 62357503 60258304 28.7G 83 Linux
  • それぞれフォーマットする.
mkfs.vfat -F 32 -n boot /dev/sdx1
mkfs.ext4 -L root /dev/sdx2
  • bootパーティションに, 「image/linux」内の「BOOT.BIN」「boot.scr」および「image.ub」をコピーする.
cp BOOT.BIN boot.scr image.ub <sd_card_path>/boot/
  • 64ビット版のdebianファイルシステムをダウンロード,展開する.
wget -c https://rcn-ee.com/rootfs/eewiki/minfs/debian-12.1-minimal-arm64-2023-08-22.tar.xz
tar xf debian-12.1-minimal-arm64-2023-08-22.tar.xz
  • rootパーティションにファイルシステムをロードする.
cd <sd_card_path>/root/
sudo su
tar xfvp <path>/debian-12.1-minimal-arm64-2023-08-22/arm64-rootfs-debian-bookworm.tar -C .
chmod 755 <sd_card_path>/root/
  • イメージを展開する.
cd <PetaLinux_project>/images/linux
dd bs=64 skip=1 if=rootfs.cpio.gz.u-boot of=ramdisk.cpio.gz
gunzip ramdisk.cpio.gz
mkdir ramdisk && cd ramdisk
sudo su
cpio -i -F ../ramdisk.cpio
  • rootパーティションにコピーする.
cd <sd_card_path>/root/lib/
cp -rf <PetaLinux_project>/images/linux/ramdisk/lib/modules .

RootFSの設定

  • SDカードをVPK120のスロットに挿入し,電源を入れる.
  • 初期パスワードでログイン後,ルート権限を取得する.

完成

関連

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?