2020年10月26日月曜日

petalinuxの設定内容を読むその2,plnxtool.conf

前回に続きpetalinuxの設定内容を見ていく。 今回の対象はplnxtool.conf。まずはコード。vanilla-petalinuxには無いので、custom-petalinuxのみで何を行っているか調べる。

#Add Pre-mirrors of tool
SOURCE_MIRROR_URL = "file:///opt/petalinux/components/yocto/downloads/"

#Add Pre-mirrors from petalinux-config
PREMIRRORS = " git://.*/.* http://petalinux.xilinx.com/sswreleases/rel-v2019/downloads \n \
ftp://.*/.* http://petalinux.xilinx.com/sswreleases/rel-v2019/downloads \n \
http://.*/.* http://petalinux.xilinx.com/sswreleases/rel-v2019/downloads \n \
https://.*/.* http://petalinux.xilinx.com/sswreleases/rel-v2019/downloads \n"

#Sttate mirror settings
SSTATE_MIRRORS = "file://universal/(.*) file:///opt/petalinux/components/yocto/source/aarch64/sstate-cache/universal-4.8/\1\n"
SSTATE_MIRRORS .= "\nfile://.* file:///opt/petalinux/components/yocto/source/aarch64/sstate-cache/PATH\n"
SSTATE_MIRRORS_append = "  \
file://.* http://petalinux.xilinx.com/sswreleases/rel-v2019/aarch64/sstate-cache/PATH;downloadfilename=PATH \n \
"

SIGGEN_UNLOCKED_RECIPES += "arm-trusted-firmware busybox init-ifupdown python3"
UNINATIVE_DLDIR = "/opt/petalinux/components/yocto/source/aarch64/downloads/uninative"

MACHINE = "plnx-zynqmp"
PACKAGE_CLASSES = "package_rpm"
DL_DIR = "${TOPDIR}/downloads"
SSTATE_DIR = "${TOPDIR}/sstate-cache"
XILINX_SDK_TOOLCHAIN = "/opt/petalinux/tools/xsct"
USE_XSCT_TARBALL = "0"
IMAGE_LINGUAS = " "
TMPDIR = "/home/akira/work/testprj/petalinux/build/tmp"
hostname_pn-base-files = "petalinux"
PETALINUX_PRODUCT_pn-base-files = "petalinux"
PETALINUX_VERSION_pn-base-files = "1.00"

# Add system HDF/DSA
HDF_EXT_forcevariable = "xsa"
HDF_BASE_forcevariable = "file://"
HDF_PATH_forcevariable = "/home/akira/work/testprj/petalinux/project-spec/hw-description/system.xsa"

#Add FIT Variables
KERNEL_CLASSES += "kernel-fitimage"
KERNEL_IMAGETYPES += "fitImage vmlinux"
UBOOT_ENTRYPOINT  = "0x80000"
UBOOT_LOADADDRESS = "0x80000"

EXTRA_IMAGEDEPENDS_remove = ""
UBOOT_MACHINE_forcevariable = "xilinx_zynqmp_zcu102_rev1_0_defconfig"
HAS_PLATFORM_INIT_append += "xilinx_zynqmp_zcu102_rev1_0_defconfig"
YAML_DT_BOARD_FLAGS_forcevariable = "{BOARD template}"

IMAGE_FSTYPES_forcevariable = "cpio cpio.gz cpio.gz.u-boot tar.gz jffs2"

INITRAMFS_IMAGE_BUNDLE = "1"
INITRAMFS_IMAGE = "petalinux-user-image"
INITRAMFS_MAXSIZE = "524288"

SERIAL_CONSOLE_forcevariable = "115200 ttyPS0"
SOC_VARIANT = "eg"

premirrorやsstatemirrorはビルド時間短縮のためのミラーを調べる部分だから読み飛ばす。
SIGGEN_UNLOCKED_RECIPES,UNINATIVE_DLDIRもソースビルドをするつもりだから読み飛ばす。
MACHINE = "plnx-zynqmp"は結構重要かな。project-spec/meta-plnx-generated/conf/machine/plnx-zynqmp.confがあって、ここでターゲットボード向けの設定が行われている模様。これは別途読み込む。
PACKAGE_CLASSES = "package_rpm"はパッケージ方法の指定。
DL_DIR,SSTATE_DIRはビルド時のデータ保存箇所の指定
XILINX_SDK_TOOLCHAIN = "/opt/petalinux/tools/xsct"はxsctの保存場所を指定している。Vitisのxsctを使っても良いと思われるので、petalinuxをインストールしない場合には考慮する。
USE_XSCT_TARBALL = "0"はXSCTをwebから取得して使用しない設定と思われる。
IMAGE_LINGUAS = " "は言語設定かな?英語だけにするので特に気にしない。 TMPDIR = "/home/akira/work/testprj/petalinux/build/tmp"はtmpフォルダの場所を指定しているだけなので、あまり気にしない。
hostname_pn-base-files = "petalinux"はhostnameを上書きしている模様
PETALINUX_PRODUCT_pn-base-files = "petalinux"と、PETALINUX_VERSION_pn-base-files = "1.00"はどこかのファイルに記載する情報の模様。

HDF_EXT_forcevariable,HDF_BASE_forcevariable,HDF_PATH_forcevariableはHDFのパスを指定している模様。--get-hw-descriptionで指定したxsaのデータがproject-spec/hw-description配下にsystem.xsaとして保存されており、これを指定している。HDF_PATHなど変数の使用方法はmeta-xilinx-toolsに記載があった。hw-descriptionにはpsu_init.cなどのFSBL関係と見られるものも存在しており、これらの使われ方はまだ不明。
IMAGE_INSTALL_append = " xilinx-bootbin"と、HDF_PATHなどの設定を合わせると、BOOT.binまで作成してくれそうな雰囲気。

#Add FIT Variables以降はUBOOTの設定と思われる。UBOOT_MACHINE_forcevariable,HAS_PLATFORM_INIT_append,YAML_DT_BOARD_FLAGS_forcevariableはultra96向けに変更する。avnet_ultra96_rev1_defconfigがu-bootに定義されているのでこれをベースにする。

IMAGE_FSTYPES_forcevariableはtar.gzだけでいいかな。
INITRAMFSはSDブート設定するので不要。
SERIAL_CONSOLE_forcevariable = "115200 ttyPS0"はそのまま使う。 SOC_VARIANT = "eg"もそのまま使う。

続く。

参考ページ
https://www.hiroom2.com/2014/04/18/yocto%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/
https://www.yoctoproject.org/docs/1.8/ref-manual/ref-manual.html
https://github.com/ARM-software/u-boot

0 件のコメント:

コメントを投稿