UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 69979

2017.3 PetaLinux: petalinux-config メニューでの FIT イメージ (image.ub) の名前の変更はイメージが構築されても反映されない

説明

Petalinux 2017.3 では、petalinux-config メニューで FIT イメージ (image.ub) の名前を変更すると、イメージが構築されてもその変更は反映されません。

ソリューション

これは kernel_image bootargs がアップデートしていないことが原因です。 

次のいずれかの方法で、この問題を回避できます。

方法 1: 

platform-auto.h で FIT イメージ名を変更します。この名前は petalinux-config メニューで指定されています。

  • まず extra_env_settings を <proj-proj-root>/project-spec/meta-plnx-generated/recipes-bsp/u-boot/configs/platform-auto.h から <proj-proj-root>/project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h にコピーします。
  • 次のように kernel_image を petalinux-config メニューで指定した FIT イメージ名と一致するように変更します。
#define CONFIG_EXTRA_ENV_SETTINGS \
    SERIAL_MULTI \
    CONSOLE_ARG \
    DFU_ALT_INFO \
    PSSERIAL0 \
    "nc=setenv stdout nc;setenv stdin nc;\0" \
    "ethaddr=00:0a:35:00:22:01\0" \
    "sdbootdev=0\0" \
    "bootenv=uEnv.txt\0" \
    "importbootenv=echo \"Importing environment from SD ...\"; " \
        "env import -t ${loadbootenv_addr} $filesize\0" \
    "loadbootenv=load mmc $sdbootdev:$partid ${loadbootenv_addr} ${bootenv}\0" \
    "sd_uEnvtxt_existence_test=test -e mmc $sdbootdev:$partid /uEnv.txt\0" \
    "uenvboot=" \
        "if run sd_uEnvtxt_existence_test; then " \
            "run loadbootenv; " \
            "echo Loaded environment from ${bootenv}; " \
            "run importbootenv; " \
            "fi; " \
        "if test -n $uenvcmd; then " \
            "echo Running uenvcmd ...; " \
            "run uenvcmd; " \
        "fi\0" \
    "autoload=no\0" \
    "clobstart=0x10000000\0" \
    "netstart=0x10000000\0" \
    "dtbnetstart=0x11800000\0" \
    "loadaddr=0x10000000\0" \
    "boot_img=BOOT.BIN\0" \
    "load_boot=tftpboot ${clobstart} ${boot_img}\0" \
    "update_boot=setenv img boot; setenv psize ${bootsize}; setenv installcmd \"install_boot\"; run load_boot ${installcmd}; setenv img; setenv psize; setenv installcmd\0" \
    "install_boot=mmcinfo && fatwrite mmc 0 ${clobstart} ${boot_img} ${filesize}\0" \
    "bootenvsize=0x40000\0" \
    "bootenvstart=0x1e00000\0" \
    "eraseenv=sf probe 0 && sf erase ${bootenvstart} ${bootenvsize}\0" \
    "jffs2_img=rootfs.jffs2\0" \
    "load_jffs2=tftpboot ${clobstart} ${jffs2_img}\0" \
    "update_jffs2=setenv img jffs2; setenv psize ${jffs2size}; setenv installcmd \"install_jffs2\"; run load_jffs2 test_img; setenv img; setenv psize; setenv installcmd\0" \
    "sd_update_jffs2=echo Updating jffs2 from SD; mmcinfo && fatload mmc 0:1 ${clobstart} ${jffs2_img} && run install_jffs2\0" \
    "install_jffs2=sf probe 0 && sf erase ${jffs2start} ${jffs2size} && " \
        "sf write ${clobstart} ${jffs2start} ${filesize}\0" \
    "kernel_img=myimage.ub\0" \
    "load_kernel=tftpboot ${clobstart} ${kernel_img}\0" \
    "update_kernel=setenv img kernel; setenv psize ${kernelsize}; setenv installcmd \"install_kernel\"; run load_kernel ${installcmd}; setenv img; setenv psize; setenv installcmd\0" \
    "install_kernel=mmcinfo && fatwrite mmc 0 ${clobstart} ${kernel_img} ${filesize}\0" \
    "cp_kernel2ram=mmcinfo && fatload mmc 0 ${netstart} ${kernel_img}\0" \
    "dtb_img=system.dtb\0" \
    "load_dtb=tftpboot ${clobstart} ${dtb_img}\0" \
    "update_dtb=setenv img dtb; setenv psize ${dtbsize}; setenv installcmd \"install_dtb\"; run load_dtb test_img; setenv img; setenv psize; setenv installcmd\0" \
    "sd_update_dtb=echo Updating dtb from SD; mmcinfo && fatload mmc 0:1 ${clobstart} ${dtb_img} && run install_dtb\0" \
    "loadbootenv_addr=0x00100000\0" \
    "fault=echo ${img} image size is greater than allocated place - partition ${img} is NOT UPDATED\0" \
    "test_crc=if imi ${clobstart}; then run test_img; else echo ${img} Bad CRC - ${img} is NOT UPDATED; fi\0" \
    "test_img=setenv var \"if test ${filesize} -gt ${psize}\\; then run fault\\; else run ${installcmd}\\; fi\"; run var; setenv var\0" \
    "netboot=tftpboot ${netstart} ${kernel_img} && bootm\0" \
    "default_bootcmd=run uenvboot; run cp_kernel2ram && bootm ${netstart}\0" \
""


方法 2:

petalinux-config ファイルで、次に示すように名前を変更します。

この後、PetaLinux ツールの U-Boot args で kernel_image 名がアップデートされます。

CONFIG_SUBSYSTEM_IMAGES_ADVANCED_AUTOCONFIG_KERNEL_IMAGE_NAME="myimage.ub"

AR# 69979
日付 12/18/2017
ステータス アクティブ
種類 既知の問題
デバイス
  • SoC
  • FPGA Device Families
ツール
  • PetaLinux - 2017.3
このページをブックマークに追加