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: Change to the name of the FIT image (image.ub) in the petalinux-config menu not reflected once images are built

描述

In PetaLinux 2017.3, If I change the name of the FIT image (image.ub) in the petalinux-config menu, it is not reflected once the images are built.

解决方案

This is due to kernel_image bootargs not updating. 

You can work around this issue using one of the methods below.

Method 1: 

Modify the FIT image name in platform-auto.h which is specified in the petalinux-config menu.

  • First copy the Extra U-boot env settings from <proj-proj-root>/project-spec/meta-plnx-generated/recipes-bsp/u-boot/configs/platform-auto.h to <proj-proj-root>/project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h
  • Now modify the kernel_image to match with the FIT image name specified in the petalinux-config menu as highlighted below:
#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" \
""


Method 2:

Change the name in the petalinux-config file as shown below.

The PetaLinux tools will then update the kernel_image name in the U-Boot args.

CONFIG_SUBSYSTEM_IMAGES_ADVANCED_AUTOCONFIG_KERNEL_IMAGE_NAME="myimage.ub"

AR# 69979
日期 12/18/2017
状态 Active
Type 已知问题
器件
  • SoC
  • FPGA Device Families
Tools
  • PetaLinux - 2017.3
的页面