Steps to Import Hardware Configuration - 2020.2 English

PetaLinux Tools Documentation Reference Guide (UG1144)

Document ID
UG1144
Release Date
2020-11-24
Version
2020.2 English

Steps to import hardware configuration are:

  1. Change into the directory of your PetaLinux project.
    $ cd <plnx-proj-root>
  2. Import the hardware description with petalinux-config command by giving the path of the directory containing the .xsa file as follows:
    petalinux-config --get-hw-description <PATH-TO-XSA Directory>/<PATH-TO-XSA>
    petalinux-config --get-hw-description=<PATH-TO-XSA Directory>/<PATH-TO-XSA>
    Note: Changing the XSA file in the <PATH-TO-XSA directory> later gives an INFO: Seems like your hardware design:<PATH-TO_XSA Directory>/system.xsa has changed warning for all subsequent executions of the petalinux-config/petalinux-build commands. This means that your xsa has changed. To use the latest XSA, run petalinux-config --get-hw-description <PATH-TO-XSA Directory>/--get-hw-description=<PATH-TO_XSA Directory>/--get-hw-description=<PATH-TO-XSA> again.

This launches the top system configuration menu. When the petalinux-config --get-hw-description command runs for the PetaLinux project, the tool detects changes in the system primary hardware candidates:

Figure 1. System Configuration Menu

Ensure DTG Settings > → (template) MACHINE_NAME is selected and change the template to any of the below mentioned possible values.

Table 1. BSP and Machine Names
BSP Machine
Zcu102 zcu102-rev1.0
Zcu104 zcu104-revc
Zcu106 zcu106-reva
Zcu111 zcu111-reva
Zcu1275 zcu1275-revb
Zcu1285 zcu1285-reva
Zcu216 zcu216-reva
Zcu208 zcu208-reva
Zcu208-sdfec zcu208-reva
Ultra96 avnet-ultra96-rev1
Zcu100 zcu100-revc
Zc702 zc702
Zc706 zc706
zedboard zedboard
ac701 ac701-full
Kc705 kc705-full
Kcu105 kcu105
Vcu118 vcu118-rev2.0
Sp701 sp701-rev1.0
Vck190 versal-vck190-reva-x-ebm-01-reva
Vmk180 versal-vmk180-reva-x-ebm-01-reva
Note: These values are applicable only to Xilinx evaluation boards. For custom boards, do not change the configurations.
Tip: For details on the PetaLinux project structure, see PetaLinux Project Structure.
CAUTION:
When a PetaLinux project is created on NFS, petalinux-create automatically changes the TMPDIR to /tmp/<projname-timestamp-id>. If /tmp is on NFS, it throws an error. you can change the TMPDIR to local storage while creating the PetaLinux project by running petalinux-create -t project -s <PATH_TO_PETALINUX_PROJECT_BSP> --tmpdir <TMPDIR PATH>, or selecting petalinux-config > Yocto-settings > TMPDIR. Do not configure the same location as TMPDIR for two different PetaLinux projects. This can cause build errors. If TMPDIR is at /tmp/.., deleting the project does not work. To delete the project, run petalinux-build -x mrproper.

Ensure Subsystem AUTO Hardware Settings is selected, and go into the menu which is similar to the following:

Subsystem AUTO Hardware Settings 
System Processor (psu_cortexa53_0)  ---> 
Memory Settings  ---> 
Serial Settings  ---> 
Ethernet Settings  ---> 
Flash Settings  ---> 
SD/SDIO Settings  ---> 
RTC Settings  ---> 
[*]Advanced bootable images storage Settings  --->

The Subsystem AUTO Hardware Settings → menu allows customizing system wide hardware settings.

This step can take a few minutes to complete because the tool parses the hardware description file for hardware information required to update the device tree, PetaLinux U-Boot configuration files and the kernel config files based on the “Auto Config Settings --->” and “Subsystem AUTO Hardware Settings --->” settings.

For example, if ps7_ethernet_0 as the Primary Ethernet is selected and you enable the auto update for kernel configuration and U-Boot configuration, the tool automatically enables its kernel driver and also updates the U-Boot configuration headers for U-Boot to use the selected Ethernet controller.

Note: For more details on the Auto Config Settings menu, see the Auto Config Settings.

The --silentconfig option allows you to reuse a prior configuration. Old configurations have the file name CONFIG.old within the directory containing the specified component for unattended updates.