xilinxpetalinux

Petalinux 2021.1 doesn't recognize the machine name for ZCU106


I'm trying to create and configure a Petalinux project for the ZCU106 development board. The creation of the project is successful. The general configuration also doesn't prompt any warnings. But, when I run the kernel configuration, it prompts an error stating that the machine name I've provided is invalid. The steps are as below:

1-> Creating the project

petalinux-create --type project --template zynqMP --name project_zcu_106

2-> Configuring the project with the XSA file

petalinux-config --get-hw-description /path/to/file.xsa

3-> Then I set the DTG Settings → (template) MACHINE_NAME and Yocto Settings → YOCTO_MACHINE_NAME as zcu106-reva and exit the configuration

4-> Lastly, I try to run the configuration for the Linux kernel and it fails.

petalinux-config -c kernel

MACHINE=zcu106-reva is invalid. Please set a valid MACHINE in your local.conf, environment or other configuration file.

I was doing the same steps on Petalinux 2018.3 and 2020.2. There was no problem. What could be the problem this time? How should I advance?


Solution

  • Alright, I've found the problem.

    The DTG Settings → (template) MACHINE_NAME and Yocto Settings → YOCTO_MACHINE_NAME are two different things.

    The DTG Settings → (template) MACHINE_NAME stands for the BSP files that you adjust for different devices.

    On the other hand, the Yocto Settings → YOCTO_MACHINE_NAME represents the configuration file (<machine name>.conf) that the Yocto will use to configure the system. Here is an explanation that describes it from the Yocto Project's mailing list:

    The MACHINE is simply a pointer to a machine-specific configuration file. So if you set your MACHINE=foo, then somewhere in your bblayer path(s) you need to make sure that a conf/machine/foo.conf is available. Then it will use that.

    So, I only changed it to zynqmp-generic and it works.